Saltar al contenido principal

Enviar un Documento

En este paso usarás la mutación send para enviar un documento para firmar. Esta es la operación más común en la API de Legalesign.

Prerrequisitos

Necesitas:

Puedes encontrar ambos consultando tus grupos y sus plantillas — consulta el paso anterior.

Enviar el 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);

Si quieres incluir roleId, consulta los roles de la plantilla con template { roles { id signerIndex } } (consulta el paso anterior).

Si la entrada es inválida, la mutación devuelve un error inmediatamente.

Si la mutación tiene éxito, devuelve un ID de tarea. El documento se procesa de forma asíncrona.

Verificar el estado de la tarea

Realiza polling a la consulta task para comprobar cuándo se completa el envío:

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));

Inspecciona status.data.task.report?.status en tu cliente. Cuando sea COMPLETED, la creación del documento ha finalizado. Si es FAILED, el envío no se completó con éxito.

Ejemplo completo funcionando

Aquí está el index.js completo que combina todos los pasos:

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);

Próximos pasos

Export This Article

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