Envoyer un Document
Dans cette étape, vous allez utiliser la mutation send pour envoyer un document à signer. C'est l'opération la plus courante dans l'API Legalesign.
Prérequis
Vous avez besoin de :
- Un jeton ou une clé API depuis Authentifier avec l'API
- L'aide
graphqldu Démarrage rapide GraphQL - Un ID de groupe — l'équipe à laquelle le document appartient
- Un ID de modèle — le modèle PDF à envoyer
Vous pouvez trouver les deux en interrogeant vos groupes et leurs modèles — voir l’étape précédente.
Envoyer le document
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);
Si vous souhaitez inclure roleId, interrogez les rôles du modèle avec template { roles { id signerIndex } } (voir l’étape précédente).
Si l’entrée est invalide, la mutation renvoie immédiatement une erreur.
Si la mutation réussit, elle renvoie un ID de tâche. Le document est traité de manière asynchrone.
Vérifier le statut de la tâche
Interrogez régulièrement la requête task pour vérifier quand l'envoi est terminé :
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));
Inspectez status.data.task.report?.status dans votre client. Lorsqu’il devient COMPLETED, la création du document est terminée. S’il devient FAILED, l’envoi n’a pas abouti avec succès.
Exemple complet fonctionnel
Voici le fichier complet index.js combinant toutes les étapes :
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);
Étapes suivantes
- Ajoutez plus d’options à votre envoi — voir DocumentSendSettingsInput pour tous les champs disponibles
- Envoyez à plusieurs destinataires ou en séquence — voir explication des méthodes d’envoi
- Envoyez plusieurs documents à la fois — voir sendBatch et sendBulk
- Parcourez plus d’exemples de mutations