Vai al contenuto principale

Inviare un Documento

In questo passaggio utilizzerai la mutazione send per inviare un documento da firmare. Questa è l'operazione più comune nelle API di Legalesign.

Prerequisiti

Ti servono:

Puoi trovare entrambi interrogando i tuoi gruppi e i loro template — vedi il passaggio precedente.

Invia il documento

index.js
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);

Se vuoi includere roleId, interroga i ruoli del template con template { roles { id signerIndex } } (vedi il passaggio precedente).

Se l'input non è valido, la mutazione restituisce immediatamente un errore.

Se la mutazione ha successo, restituisce un ID compito. Il documento viene elaborato in modo asincrono.

Verifica lo stato del compito

Interroga ripetutamente la query task per verificare quando l'invio è completato:

index.js
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));

Controlla status.data.task.report?.status nel tuo client. Quando diventa COMPLETED, la creazione del documento è terminata. Se diventa FAILED, l'invio non è andato a buon fine.

Esempio completo funzionante

Ecco il file index.js completo che combina tutti i passaggi:

index.js
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);

Passi successivi

Export This Article

Save a copy of this page as PDF or plain text.