Πήγαινε στο κύριο περιεχόμενο

Αποστολή Εγγράφου

Σε αυτό το βήμα θα χρησιμοποιήσετε τη μετάλλαξη send για να στείλετε ένα έγγραφο για υπογραφή. Αυτή είναι η πιο συνηθισμένη λειτουργία στο Legalesign API.

Προαπαιτούμενα

Χρειάζεστε:

  • Ένα token ή κλειδί API από το Authenticate with the API
  • Το βοήθημα graphql από το GraphQL Quickstart
  • Ένα group ID — η ομάδα στην οποία ανήκει το έγγραφο
  • Ένα template ID — το πρότυπο PDF που θα σταλεί

Μπορείτε να βρείτε και τα δύο κάνοντας ερώτημα στα groups σας και τα πρότυπά τους — δείτε το προηγούμενο βήμα.

Αποστολή του εγγράφου

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

Αν θέλετε να συμπεριλάβετε roleId, κάντε ερώτημα στους ρόλους του προτύπου με template { roles { id signerIndex } } (δείτε το προηγούμενο βήμα).

Αν η είσοδος είναι άκυρη, η μετάλλαξη επιστρέφει αμέσως σφάλμα.

Αν η μετάλλαξη είναι επιτυχής, επιστρέφει ένα task ID. Το έγγραφο επεξεργάζεται ασύγχρονα.

Έλεγχος της κατάστασης task

Κάντε ερωτήματα στη task για να ελέγξετε πότε ολοκληρώθηκε η αποστολή:

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

Επιθεωρήστε την status.data.task.report?.status στον πελάτη σας. Όταν γίνει COMPLETED, η δημιουργία του εγγράφου έχει ολοκληρωθεί. Αν γίνει FAILED, η αποστολή δεν ολοκληρώθηκε επιτυχώς.

Πλήρες λειτουργικό παράδειγμα

Ορίστε το ολοκληρωμένο index.js που συνδυάζει όλα τα βήματα:

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

Επόμενα βήματα

  • Προσθέστε περισσότερες επιλογές στην αποστολή σας — δείτε το DocumentSendSettingsInput για όλα τα διαθέσιμα πεδία
  • Στείλτε σε πολλαπλούς παραλήπτες ή σειριακά — δείτε τα sending methods explained
  • Στείλτε πολλά έγγραφα ταυτόχρονα — δείτε τα sendBatch και sendBulk
  • Περιηγηθείτε σε περισσότερα mutation examples