Distribuir un sobre
Distribuye el sobre a sus destinatarios según el método configurado.
/envelope/distributeURL base: https://business.digito.do/api/v2.
Ejemplos
Configura DIGITO_API_TOKEN en el servidor. Sustituye los IDs y archivos de ejemplo por los de tu equipo. TypeScript usa fetch y FormData de Node.js.
curl --fail-with-body \
--request POST \
--url 'https://business.digito.do/api/v2/envelope/distribute' \
--header "Authorization: $DIGITO_API_TOKEN" \
--header 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"envelopeId": "sobre_de_ejemplo",
"meta": {
"subject": "Tu contrato está listo para firmar",
"message": "Revisa el documento y firma con Digito ID.",
"distributionMethod": "EMAIL",
"language": "es"
}
}
JSONAutenticación
Envía el token de la API en el encabezado Authorization. El acceso corresponde al equipo y a los permisos del token. Conserva el token en tu servidor.
Authorization: api_TU_TOKENAntes de cada acción de firma, el firmante debe autenticarse de nuevo con Digito ID. Una sesión previa de Business, un token de destinatario o un token de la API no sustituye este requisito.
Parámetros
Esta operación no declara parámetros de ruta ni de consulta.
Cuerpo de la solicitud
El cuerpo es obligatorio.
Tipo de contenido: application/json.
Objeto de ejemplo
{
"envelopeId": "sobre_de_ejemplo",
"meta": {
"subject": "Tu contrato está listo para firmar",
"message": "Revisa el documento y firma con Digito ID.",
"distributionMethod": "EMAIL",
"language": "es"
}
}Los valores muestran una solicitud posible; no son valores predeterminados del servidor.
| Propiedad | Tipo | Obligatoria | Restricciones |
|---|---|---|---|
envelopeId | string | Sí | Sin restricciones adicionales en este nivel. |
meta | object | No | Sin restricciones adicionales en este nivel. |
Ver el esquema completo de la solicitud
{
"type": "object",
"properties": {
"envelopeId": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"subject": {
"type": "string",
"maxLength": 254
},
"message": {
"type": "string",
"maxLength": 5000
},
"timezone": {
"type": "string"
},
"dateFormat": {
"type": "string",
"enum": [
"yyyy-MM-dd hh:mm a",
"yyyy-MM-dd",
"dd/MM/yyyy",
"dd-MM-yyyy",
"MM/dd/yyyy",
"yy-MM-dd",
"MMMM dd, yyyy",
"EEEE, MMMM dd, yyyy",
"dd/MM/yyyy hh:mm a",
"dd/MM/yyyy HH:mm",
"dd-MM-yyyy hh:mm a",
"dd-MM-yyyy HH:mm",
"MM/dd/yyyy hh:mm a",
"MM/dd/yyyy HH:mm",
"dd.MM.yyyy",
"dd.MM.yyyy HH:mm",
"yyyy-MM-dd HH:mm",
"yy-MM-dd hh:mm a",
"yy-MM-dd HH:mm",
"yyyy-MM-dd HH:mm:ss",
"MMMM dd, yyyy hh:mm a",
"MMMM dd, yyyy HH:mm",
"EEEE, MMMM dd, yyyy hh:mm a",
"EEEE, MMMM dd, yyyy HH:mm",
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
]
},
"distributionMethod": {
"type": "string",
"enum": [
"EMAIL",
"NONE"
]
},
"redirectUrl": {
"type": "string"
},
"language": {
"type": "string",
"enum": [
"en",
"es"
]
},
"emailId": {
"type": "string",
"nullable": true
},
"emailReplyTo": {
"type": "string",
"nullable": true,
"pattern": "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~\\u{0080}-\\u{FFFF}-]+@[a-zA-Z0-9\\u{0080}-\\u{FFFF}](?:[a-zA-Z0-9\\u{0080}-\\u{FFFF}-]{0,61}[a-zA-Z0-9\\u{0080}-\\u{FFFF}])?(?:\\.[a-zA-Z0-9\\u{0080}-\\u{FFFF}](?:[a-zA-Z0-9\\u{0080}-\\u{FFFF}-]{0,61}[a-zA-Z0-9\\u{0080}-\\u{FFFF}])?)*$"
},
"emailSettings": {
"type": "object",
"nullable": true,
"properties": {
"recipientSigningRequest": {
"type": "boolean",
"default": true
},
"recipientRemoved": {
"type": "boolean",
"default": true
},
"recipientSigned": {
"type": "boolean",
"default": true
},
"documentPending": {
"type": "boolean",
"default": true
},
"documentCompleted": {
"type": "boolean",
"default": true
},
"documentDeleted": {
"type": "boolean",
"default": true
},
"ownerDocumentCompleted": {
"type": "boolean",
"default": true
},
"ownerRecipientExpired": {
"type": "boolean",
"default": true
},
"ownerDocumentCreated": {
"type": "boolean",
"default": true
}
},
"default": {
"recipientSigningRequest": true,
"recipientRemoved": true,
"recipientSigned": true,
"documentPending": true,
"documentCompleted": true,
"documentDeleted": true,
"ownerDocumentCompleted": true,
"ownerRecipientExpired": true,
"ownerDocumentCreated": true
}
}
}
}
},
"required": [
"envelopeId"
]
}Respuesta de éxito
signingUrl representa la URL que devuelve la API. Usa ese valor directamente; no construyas una ruta a partir del token. El marcador del ejemplo no es un link de firma.
Este objeto sintético ilustra la estructura completa de una respuesta 200. Los identificadores, fechas, estados y tokens son datos de ejemplo.
{
"success": true,
"id": "sobre_de_ejemplo",
"recipients": [
{
"id": 501,
"name": "Ana Ejemplo",
"email": "ana@example.com",
"token": "token_de_destinatario_ejemplo",
"role": "SIGNER",
"signingOrder": null,
"signingUrl": "URL_DE_FIRMA_DEVUELTA_POR_LA_API"
}
]
}Respuestas y errores
| Estado | Descripción | Contenido y esquema |
|---|---|---|
200 | Respuesta correcta. | application/json |
400 | Datos de entrada inválidos. | application/json |
401 | No se proporcionó autorización. | application/json |
403 | Permisos insuficientes. | application/json |
500 | Error interno del servidor. | application/json |
Los esquemas enlazados incluyen propiedades anidadas, campos obligatorios, variantes, enumeraciones, nulabilidad y restricciones. Consulta errores y reintentos para manejar respuestas no exitosas.
Identificador de operación: envelope-distribute.