Senden eines Dokuments
In diesem Schritt verwenden Sie die send Mutation, um ein Dokument zum Unterzeichnen zu senden. Dies ist die häufigste Operation in der Legalesign API.
Voraussetzungen
Sie benötigen:
- Ein Token oder API-Schlüssel von Authentifizieren mit der API
- Den
graphqlHelfer aus dem GraphQL Quickstart - Eine Gruppen-ID — das Team, zu dem das Dokument gehört
- Eine Vorlagen-ID — die zu sendende PDF-Vorlage
Sie können beides durch Abfragen Ihrer Gruppen und deren Vorlagen herausfinden — siehe den vorherigen Schritt.
Dokument senden
const sendResult = await graphql(token, `
mutation SendDocument($input: DocumentSendSettingsInput!) {
send(input: $input)
}
`, {
input: {
groupId: '<your-group-id>',
templateId: '<your-template-id>',
title: 'Test Document',
recipients: [
{
firstName: 'Jane',
lastName: 'Smith',
email: 'jane@example.com',
order: 0
}
]
}
});
console.log('Task ID:', sendResult.data.send);
Wenn Sie roleId einschließen möchten, fragen Sie die Rollen der Vorlage ab mit template { roles { id signerIndex } } (siehe den vorherigen Schritt).
Wenn die Eingabe ungültig ist, gibt die Mutation sofort einen Fehler zurück.
Wenn die Mutation erfolgreich ist, gibt sie eine Task-ID zurück. Das Dokument wird asynchron verarbeitet.
Status der Aufgabe prüfen
Fragen Sie die task Abfrage ab, um zu überprüfen, wann das Senden abgeschlossen ist:
const taskId = sendResult.data.send;
const status = await graphql(token, `
query CheckTask($id: ID!) {
task(id: $id) {
data
report {
status
batchId
documents
errors
}
}
}
`, { id: taskId });
console.log(JSON.stringify(status, null, 2));
Überprüfen Sie status.data.task.report?.status in Ihrem Client. Wenn es COMPLETED wird, ist die Dokumenterstellung abgeschlossen. Wenn es FAILED wird, war das Senden nicht erfolgreich.
Vollständiges Beispiel
Hier ist die komplette index.js, die alle Schritte kombiniert:
const GRAPHQL_ENDPOINT = 'https://graphql.uk.legalesign.com/graphql';
const TOKEN = '<token-or-api-key>';
async function graphql(token, query, variables = {}) {
const response = await fetch(GRAPHQL_ENDPOINT, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({ query, variables })
});
const result = await response.json();
if (result.errors) console.error('GraphQL errors:', result.errors);
return result;
}
async function main() {
const result = await graphql(TOKEN, `
mutation SendDocument($input: DocumentSendSettingsInput!) {
send(input: $input)
}
`, {
input: {
groupId: '<your-group-id>',
templateId: '<your-template-id>',
title: 'Test Document',
recipients: [
{
firstName: 'Jane',
lastName: 'Smith',
email: 'jane@example.com',
order: 0
}
]
}
});
console.log('Task ID:', result.data.send);
}
main().catch(console.error);
Nächste Schritte
- Fügen Sie weitere Optionen zu Ihrem Senden hinzu — siehe DocumentSendSettingsInput für alle verfügbaren Felder
- Senden an mehrere Empfänger oder nacheinander — siehe Erklärung der Versandmethoden
- Viele Dokumente auf einmal senden — siehe sendBatch und sendBulk
- Durchsuchen Sie weitere Mutationsbeispiele