Crear Documento Asíncrono
Crear Documento Asíncrono
Sección titulada «Crear Documento Asíncrono»A diferencia del método síncrono, este endpoint acepta lotes masivos en una sola llamada y responde inmediatamente con un código 202 Accepted y un ingest_token. El sobre se arma en segundo plano (background) descargando los archivos en paralelo.
curl -X POST https://api.firmeasy.legal/api/v1/documents/envelopes/async \
-H "Authorization: Bearer TU_TOKEN_AQUI" \
-H "Content-Type: application/json" \
-d '{
"name": "Contrato de Servicios",
"documents": [{
"ref_id": "main",
"source_type": "url",
"file_format": "pdf",
"role": "sign",
"source_payload": { "url": "https://files.example.com/contrato.pdf" }
}],
"signers": [{
"name": "John Doe",
"email": "[email protected]",
"country_code": "+51",
"phone": "900000001"
}]
}'Límites de Ingesta Asíncrona
Sección titulada «Límites de Ingesta Asíncrona»| Límite | Valor |
|---|---|
| Documentos máximos por sobre | 100 |
| Peso máximo por documento | ~100 MB |
| Peso máximo total del sobre | 1 GB |
| Fuente soportada (V1) | Solo URL |
Cabecera Opcional (Idempotencia)
Sección titulada «Cabecera Opcional (Idempotencia)»Para evitar duplicados en caso de fallas de red, puedes enviar una llave de idempotencia. Si reintentas la misma llamada, el servidor devolverá la misma respuesta cacheada (TTL de 30 minutos).
Idempotency-KeyCuerpo de la solicitud
Sección titulada «Cuerpo de la solicitud»namedocumentsdocuments[].ref_iddocuments[].source_typedocuments[].file_formatdocuments[].roledocuments[].source_payload.urlcallback_urlcallback_secretexternal_idmetadataConfiguración del sobre (opcional)
Sección titulada «Configuración del sobre (opcional)»El endpoint asíncrono acepta los mismos campos de configuración que el endpoint síncrono:
folder_tokenlangsignature_deadlineis_signature_order_activeis_rejection_allowedis_original_download_alloweddisable_owner_notificationsdisable_signer_notificationssend_automatic_invitationssend_automatic_invitations_bysend_signed_document_by_whatsappreminder_every_n_daysobserversredirect_linkcreated_bysender_namereply_to_emailRespuesta de Ingesta
Sección titulada «Respuesta de Ingesta»Si la solicitud es válida, el sistema responde inmediatamente con un token de ingesta. El tiempo estimado se calcula como min(1800, 10 + n·5) segundos, donde n es el número de documentos.
Si la solicitud es válida, el sistema responderá que ha comenzado el proceso.
{ "ingest_token": "01234567-89ab-cdef-0123-456789abcdef", "status": "ingesting", "documents_total": 2, "credits_cost": 2, "status_url": "[https://api.firmeasy.legal/api/v1/documents/envelopes/01234567-89ab-cdef-0123-456789abcdef/status](https://api.firmeasy.legal/api/v1/documents/envelopes/01234567-89ab-cdef-0123-456789abcdef/status)", "estimated_processing_time_seconds": 20}ingest_tokenstatusdocuments_totalcredits_coststatus_urlestimated_processing_time_secondsNota sobre facturación: Se cobra 1 crédito por documento recién al finalizar exitosamente el armado. Si la ingesta falla, no se descuentan créditos. Si el saldo de la organización es firmas_disponibles < -500, la operación se rechaza con código 402.
Consultar Estado de la Ingesta
Sección titulada «Consultar Estado de la Ingesta»Permite verificar el progreso del armado del sobre. Cuando alcanza el estado ready, el sistema te devolverá el document_token real definitivo.
Consulta la página dedicada para más detalle: Estado de la ingesta.
Endpoint: GET /v1/documents/envelopes/{{ingest_token}}/status
Estados posibles: ingesting → assembling → ready (éxito) | failed | cancelled.
Códigos de error adicionales: 402 si la organización tiene saldo insuficiente (firmas_disponibles < -500).
Cancelar Ingesta en Curso
Sección titulada «Cancelar Ingesta en Curso»Si el documento aún está en proceso, puedes enviar la orden de abortar.
Consulta la página dedicada para más detalle: Cancelar ingesta.
Endpoint: POST /v1/documents/envelopes/{{ingest_token}}/cancel
Responderá con código 200 si se cancela correctamente. Si el sobre ya está en estado terminal (ready, failed o cancelled), devolverá un error 409.
Objeto Documento (Respuesta Final / Webhooks)
Sección titulada «Objeto Documento (Respuesta Final / Webhooks)»Una vez que el documento es procesado, el sistema consolida el sobre completo. Esta es la estructura que obtendrás al consultar el documento mediante la API (o a través de Webhooks de creación).
{ "external_id": "ERP-123", "token": "abcdef01-2345-6789-abcd-ef0123456789", "name": "CONTRATO_LOTE_MASIVO.pdf", "folder": { "token": "uuid", "name": "Carpeta" }, "status": "pending", "lang": "es", "size": 245100, "original_file": "https://.../files/...?intent=view&signature=...", "signed_file": null, "original_download_file": "https://.../files/...?intent=download&...", "signed_download_file": null, "signatures_made": 0, "signature_deadline": "2026-12-31T23:59:59.000Z", "extra_docs_count": 2, "extra_docs": [ { "token": "anexo-token", "name": "Anexo 1 - Tarifario 2026.pdf", "original_file": "https://.../?intent=view&...", "signed_file": null, "original_download_file": "https://.../?intent=download&...", "signed_download_file": null, } ], "signers": [ { "external_id": null, "token": "signer-api-id", "status": "pending", "rejection_reason": null, "order": 1, "name": "Jane Doe", "phone": "900000001", "country_code": "+51", "document_type": "dni", "document_number": "900000003", "role": "signer", "link": "[https://app.firmeasy.legal/](https://app.firmeasy.legal/)...", "placements": [ { "document_ref": "main", "type": "signature", "page_number": 1, "relative_position_left": 36.5, "relative_position_top": 39.25, "relative_size_width": 25, "relative_size_height": 8 } ], "standard_flow": [ { "state": "pending", "flow_name": "Firma Holográfica", "flow_key": "holographic_signature" } ], "advanced_flow": [] } ], "created_through": "api", "created_at": "2026-06-23T10:00:00.000000Z", "updated_at": "2026-06-23T10:00:00.000000Z"}tokenexternal_idnamestatusoriginal_fileoriginal_download_filesigned_filesignatures_madeextra_docs_countextra_docssignerscreated_at