Crear Documento Síncrono
Crear Documento Síncrono
Sección titulada «Crear Documento Síncrono»Este endpoint permite registrar un nuevo documento principal y, opcionalmente, anexos, firmantes y posiciones de firma en una sola llamada. Responde 201 con el sobre completo.
¿Sync o Async?
Sección titulada «¿Sync o Async?»Síncrono POST /v1/documents |
Asíncrono POST /v1/documents/envelopes/async |
|
|---|---|---|
| Documentos por sobre | hasta 5 (principal + 4 anexos) | hasta 100 |
| Peso | 50 MB total del sobre | ~100 MB por doc · 1 GB total |
| Fuente del archivo | base64, URL, DOCX o key temporal | solo URL (primer release) |
| Respuesta | 201 con el sobre completo | 202 con ingest_token (se arma en background) |
| Cuándo | caso interactivo / pocos docs | lotes grandes / archivos pesados |
curl -X POST https://api.firmeasy.legal/api/v1/documents \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Contrato de Servicios",
"document_pdf_url": "https://files.example.com/contrato.pdf",
"signers": [{
"name": "John Doe",
"email": "[email protected]",
"country_code": "+51",
"phone": "900000001"
}]
}'Autenticación
Sección titulada «Autenticación»El token de acceso obtenido en el proceso de login debe enviarse en cada solicitud:
AuthorizationContent-TypeLos campos marcados con un asterisco (*) son obligatorios y deben ser proporcionados en la solicitud. Los demás campos son opcionales.
Límites del Sobre
Sección titulada «Límites del Sobre»| Límite | Valor |
|---|---|
| Documentos por sobre (principal + anexos) | 5 |
| Peso TOTAL del sobre | 50 MB |
Anexos (extra_docs) |
Máximo 4 (= total − 1) |
| Un documento individual | ≤ peso total (50 MB) |
Fuente del documento principal
Sección titulada «Fuente del documento principal»Se debe elegir estrictamente UNA de las siguientes opciones (son excluyentes entre sí, enviar dos causará un error 422):
document_pdf_urldocument_pdf_base64document_temporal_keydocument_docx_urldocument_docx_base64Identidad y referencia
Sección titulada «Identidad y referencia»nameref_idConfiguración del sobre
Sección titulada «Configuración del sobre»external_idfolder_tokentemplate_tokencreated_bycreated_throughsignature_deadlinesender_namereply_to_emaildisable_owner_notificationsdisable_signer_notificationssend_automatic_invitationssend_automatic_invitations_bysend_signed_document_by_whatsappis_signature_order_activeis_rejection_allowedis_original_download_allowedreminder_every_n_dayslangobserversredirect_linkmetadataPermite añadir hasta un máximo de 4 documentos complementarios en la misma llamada.
extra_docs[].ref_idextra_docs[].nameextra_docs[].pdf_urlextra_docs[].pdf_base64extra_docs[].temporal_keyextra_docs[].fileLos campos marcados con un asterisco (*) son obligatorios y deben ser proporcionados en la solicitud. Los demás campos son opcionales.
Firmantes
Sección titulada «Firmantes»Define los actores del documento. Campos mínimos requeridos por elemento: name, country_code (ej. ‘+51’), phone y email.
signers[].rolesigners[].document_typesigners[].document_numbersigners[].standard_flowsigners[].advanced_flowPosicionamiento de Firma (Formatos Excluyentes)
Sección titulada «Posicionamiento de Firma (Formatos Excluyentes)»Opción A) Estructura Recomendada: placements[] (Porcentajes)
Sección titulada «Opción A) Estructura Recomendada: placements[] (Porcentajes)»Se configura dentro del arreglo de cada firmante (signers[].placements[]). Permite posicionar firmas e iniciales de forma fluida en múltiples documentos a la vez.
document_reftypepage_numberrelative_position_leftrelative_position_toprelative_position_bottomrelative_size_widthrelative_size_height"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 }]Opción B) Legacy: Puntos PDF Absolutos (Solo principal)
Sección titulada «Opción B) Legacy: Puntos PDF Absolutos (Solo principal)»Se configura a nivel raíz del firmante (fuera de placements). No se puede mezclar con placements o arrojará 422.
| Campo | Tipo | Notas |
|---|---|---|
position_x |
número | Coordenada X exacta en puntos absolutos del PDF (origen top-left). |
position_y |
número | Coordenada Y exacta en puntos absolutos del PDF. |
page |
int | Número de página (mayor o igual a 1). |
Ejemplo de solicitud mínima (Payload JSON)
Sección titulada «Ejemplo de solicitud mínima (Payload JSON)»{ "name": "Contrato de Prestación de Servicios N°9", "document_pdf_base64": "JVBERi0xLjQKJdPr6goxIDAgb2JqCjw8L0xlbmd0aCAyIDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGU+PnN0cmVhbQp4nDMwVTAwULAwMDIxUzAFAAZ3A2Y5CmVuZHN0cmVhbQplbmRvYmoKMiAwIG9iagozMAplbmRvYmoKMyAwIG9iago8PC9UeXBlL1BhZ2VzL0NvdW50IDEvS2lkc1s0IDAgUl0+PgplbmRvYmoKNDAwIFJGST0=", "signers": [ { "name": "Jane Doe", "country_code": "+51", "phone": "900000001", "standard_flow": ["digital_certificate_local"], "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 } ] } ]}Respuesta exitosa (201 Created)
Sección titulada «Respuesta exitosa (201 Created)»{ "external_id": "ERP-123", "token": "abcdef01-2345-6789-abcd-ef0123456789", "name": "Acuerdo_Comercial_2025.pdf", "folder": { "token": "uuid", "name": "Carpeta" }, "status": "pending", "lang": "es", "size": 245100, "original_file": "https://api.firmeasy.legal/files/...?intent=view&signature=...", "signed_file": null, "original_download_file": "https://api.firmeasy.legal/files/...?intent=download&...", "signed_download_file": null, "signatures_made": 0, "signature_deadline": "2026-12-31T23:59:59.000Z", "extra_docs_count": 0, "extra_docs": [], "signers": [ { "external_id": null, "token": "signer-api-id", "status": "pending", "rejection_reason": null, "order": 1, "name": "Carl Smith", "phone": "900000002", "country_code": "+51", "document_type": null, "document_number": null, "role": "signer", "link": "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_madesignersextra_docs_countcreated_atErrores posibles
Sección titulada «Errores posibles»| Código | Estado | Descripción |
|---|---|---|
400 |
Bad Request | Request inválido (parámetros de cuerpo con sintaxis incorrecta o faltantes). |
401 |
Unauthorized | No autorizado (Token JWT inválido, expirado o ausente en las cabeceras). |
422 |
Unprocessable Entity | Error de validación de negocio (múltiples fuentes de archivo, flujos incompatibles). |
500 |
Server Error | Error interno de los servidores de FirmEasy. |
