---
title: "Errores — API v3 de AllSign"
type: reference
canonical_url: "https://allsign.io/developers/docs/errors"
api_version: "2026-07-11"
agent_rules: [error-por-code, reintento-429]
---

# Errores de la API v3

Toda respuesta no-2xx es un documento **RFC 9457 `application/problem+json`**. Los clientes programan contra `code` (estable, append-only), nunca contra `detail` (inglés técnico, puede cambiar).

## Para agentes y asistentes de IA

-   **Los errores son `application/problem+json` (RFC 9457) con un `code` estable y append-only; `detail` es texto técnico en inglés que puede cambiar.** Un cliente que decide por `code` sobrevive a cambios de redacción, y cada `code` tiene su fila en el catálogo con su status y su significado.
-   **Ante un `429`, espera los segundos de `Retry-After` antes de reintentar; si el `429` no trae `Retry-After`, no lo reintentes.** → [Rate limits](https://allsign.io/developers/docs/rate-limits)

## Estructura del error

Shape plano (sin envoltorio): 5 miembros core de RFC 9457 + extensiones de AllSign.

```
{
  "type": "https://allsign.io/developers/docs/errors#DOCUMENT_NOT_FOUND",
  "title": "Document not found",
  "status": 404,
  "detail": "No document exists with id doc_...",
  "instance": "/v3/documents/doc_...",
  "code": "DOCUMENT_NOT_FOUND",
  "requestId": "req_...",
  "errors": []
}
```

## Extensiones por código

Algunos códigos agregan campos: `DOCUMENT_NOT_SENDABLE` trae `reason`; `PERMISSION_DENIED` trae `requiredScope` y `yourScopes` cuando falta un scope; `RATE_LIMITED` trae `retryAfter` (segundos) y el header `Retry-After`, salvo el del recordatorio a firmante (ver [Rate limits](https://allsign.io/developers/docs/rate-limits#el-429)). Cada `type` enlaza al ancla de su código en esta página (`https://allsign.io/developers/docs/errors#<CODE>`).

Un `404` nombra el recurso que no existe: `DOCUMENT_NOT_FOUND`, `TEMPLATE_NOT_FOUND`, `FOLDER_NOT_FOUND`… Una ruta que no existe (un typo en el path, como `/v3/document/doc_…`) responde `RESOURCE_NOT_FOUND`, así que no la confundes con un documento borrado.

## Errores a nivel de campo

La validación semántica (`422 VALIDATION_ERROR`) puebla `errors[]` con un objeto por campo: `field` (dot/bracket), `pointer` (JSON Pointer), `code` y `detail`.

```
"errors": [
  { "field": "signers[0].email", "pointer": "/signers/0/email",
    "code": "invalid_email", "detail": "not a valid email address" }
]
```

## Catálogo de códigos

La taxonomía **completa**: 84 códigos, congelada y append-only. Cada fila tiene `id="<CODE>"` para que el `type` URI ancle aquí.

**Activo** significa que la API lo emite hoy. **Reservado** (19 de 84) significa que el código forma parte del contrato pero *ninguna ruta lo devuelve todavía*: o el caso lo cubre otro código (un JSON malformado o un `Content-Type` que no es JSON salen como `VALIDATION_ERROR`, no como `MALFORMED_JSON` ni `UNSUPPORTED_MEDIA_TYPE`; a una key sin el scope se le responde `PERMISSION_DENIED`, no `INSUFFICIENT_SCOPE`), o espera una capacidad que aún no lanzamos (los `TOKEN_*` esperan OAuth), o la política de seguridad lo colapsa a propósito (una key inválida, revocada o vencida responde `401 AUTHENTICATION_REQUIRED`, no `API_KEY_*`, para no confirmar que la key existe). Un `Accept` que no es JSON tampoco da `NOT_ACCEPTABLE`: la respuesta llega en JSON igual.

**51 de 84** códigos traen su `problem+json` real, grabado por los tests contra sandbox: ábrelo en «Así se ve». Los demás dicen por qué no lo tienen (es un código reservado, el sandbox no cobra, hace falta una caída real…): preferimos explicarlo a inventar un ejemplo.

**No programes una rama para un código reservado** — sería código muerto. Un reservado nunca cambia de nombre ni de significado al activarse, así que agregarlo después es seguro; anticiparlo, no.

| Código | Status | Título | Estado | Ejemplo real |
| --- | --- | --- | --- | --- |
| `ANNEX_OF_ANNEX_NOT_ALLOWED` | 409 | Conflict | Activo | abajo |
| `API_KEY_EXPIRED` | 401 | Unauthorized | Reservado | sin ejemplo verificado |
| `API_KEY_INVALID` | 401 | Unauthorized | Reservado | sin ejemplo verificado |
| `API_KEY_REVOKED` | 401 | Unauthorized | Reservado | sin ejemplo verificado |
| `AUTHENTICATION_REQUIRED` | 401 | Authentication required | Activo | abajo |
| `BATCH_NOT_FOUND` | 404 | Bulk-send batch not found | Activo | abajo |
| `CATALOG_TEMPLATE_NOT_FOUND` | 404 | Catalog template not found | Activo | abajo |
| `CONSTANCIA_NOT_FOUND` | 404 | Constancia not found | Activo | abajo |
| `CONTRACT_REQUIRED` | 403 | NOM-151 contract required | Activo | sin ejemplo verificado |
| `DEV_FEATURE_RESTRICTED` | 403 | Feature restricted in this environment | Activo | abajo |
| `DOCUMENT_ALREADY_SIGNED` | 409 | Document already signed | Activo | abajo |
| `DOCUMENT_ALREADY_VOIDED` | 409 | Conflict | Reservado | sin ejemplo verificado |
| `DOCUMENT_CONFLICT` | 409 | Document conflict | Activo | abajo |
| `DOCUMENT_HAS_NO_FIELDS` | 422 | Unprocessable Entity | Reservado | sin ejemplo verificado |
| `DOCUMENT_NOT_EDITABLE` | 409 | Conflict | Activo | abajo |
| `DOCUMENT_NOT_FOUND` | 404 | Document not found | Activo | abajo |
| `DOCUMENT_NOT_FULLY_SIGNED` | 409 | Conflict | Activo | abajo |
| `DOCUMENT_NOT_SENDABLE` | 409 | Document not sendable | Activo | abajo |
| `DOCUMENT_PDF_LOCKED` | 409 | Conflict | Activo | sin ejemplo verificado |
| `DOCUMENT_TOO_LARGE` | 413 | Document too large | Activo | abajo |
| `DUPLICATE_SIGNER` | 422 | Duplicate signer | Activo | abajo |
| `ENVIRONMENT_MISMATCH` | 409 | Environment mismatch | Activo | sin ejemplo verificado |
| `EVENT_NOT_FOUND` | 404 | Not Found | Reservado | sin ejemplo verificado |
| `EXPAND_DEPTH_EXCEEDED` | 400 | Expand depth exceeded | Activo | abajo |
| `EXTERNAL_ID_CONFLICT` | 409 | Conflict | Activo | abajo |
| `FEATURE_NOT_AVAILABLE` | 403 | Feature not available for this tenant | Activo | sin ejemplo verificado |
| `FIELD_CONFLICT` | 409 | Field name already taken | Activo | abajo |
| `FIELD_NOT_FOUND` | 404 | Field not found | Activo | abajo |
| `FOLDER_NOT_EMPTY` | 409 | Conflict | Activo | abajo |
| `FOLDER_NOT_FOUND` | 404 | Folder not found | Activo | abajo |
| `IDEMPOTENCY_KEY_IN_PROGRESS` | 409 | Idempotency key in progress | Activo | abajo |
| `IDEMPOTENCY_KEY_INVALID` | 400 | Idempotency key invalid | Activo | abajo |
| `IDEMPOTENCY_KEY_REQUIRED` | 400 | Idempotency key required | Activo | abajo |
| `IDEMPOTENCY_KEY_REUSED` | 409 | Idempotency key reused | Activo | abajo |
| `INSUFFICIENT_CREDITS` | 402 | Insufficient credits | Activo | sin ejemplo verificado |
| `INSUFFICIENT_SCOPE` | 403 | Forbidden | Reservado | sin ejemplo verificado |
| `INTERNAL_ERROR` | 500 | Internal server error | Activo | sin ejemplo verificado |
| `INVALID_CURSOR` | 400 | Invalid cursor | Activo | abajo |
| `INVALID_EXPAND` | 400 | Invalid expand path | Activo | abajo |
| `INVALID_FILTER` | 400 | Bad Request | Reservado | sin ejemplo verificado |
| `INVALID_ID` | 400 | Malformed identifier | Activo | abajo |
| `INVALID_SORT` | 400 | Bad Request | Reservado | sin ejemplo verificado |
| `INVALID_STATE_TRANSITION` | 409 | Conflict | Activo | abajo |
| `IP_NOT_ALLOWED` | 403 | IP address not allowed | Activo | sin ejemplo verificado |
| `LIMIT_OUT_OF_RANGE` | 400 | Bad Request | Reservado | sin ejemplo verificado |
| `MALFORMED_JSON` | 400 | Bad Request | Reservado | sin ejemplo verificado |
| `METHOD_NOT_ALLOWED` | 405 | Method Not Allowed | Activo | abajo |
| `NOT_ACCEPTABLE` | 406 | Not Acceptable | Reservado | sin ejemplo verificado |
| `NOT_YOUR_TURN` | 409 | Not this signer's turn yet | Activo | abajo |
| `OAUTH_NOT_ENABLED` | 401 | Unauthorized | Reservado | sin ejemplo verificado |
| `OAUTH_NOT_IMPLEMENTED` | 501 | Not Implemented | Activo | sin ejemplo verificado |
| `OBSERVER_IS_SIGNER` | 409 | Observer already signs | Activo | abajo |
| `OBSERVER_NOT_FOUND` | 404 | Observer not found | Activo | abajo |
| `PAYLOAD_TOO_LARGE` | 413 | Request Entity Too Large | Reservado | sin ejemplo verificado |
| `PDF_ALREADY_SIGNED` | 422 | PDF already signed | Activo | abajo |
| `PERMISSION_DENIED` | 403 | Permission denied | Activo | abajo |
| `PLAN_REQUIRED` | 403 | Plan does not include this template | Activo | sin ejemplo verificado |
| `PREVIEW_UNAVAILABLE` | 404 | Preview unavailable | Activo | abajo |
| `QUOTA_EXCEEDED` | 429 | Too Many Requests | Reservado | sin ejemplo verificado |
| `RATE_LIMITED` | 429 | Rate limited | Activo | sin ejemplo verificado |
| `RECIPIENT_NOT_SIGNER` | 422 | Recipient is not a signer | Activo | abajo |
| `RESOURCE_NOT_FOUND` | 404 | Resource not found | Activo | abajo |
| `ROLE_NOT_FOUND` | 404 | Role not found | Activo | abajo |
| `ROLE_OCCUPIED` | 409 | Role is held by a signer | Activo | abajo |
| `SEGURIDATA_UNAVAILABLE` | 503 | Constancia provider unavailable | Activo | sin ejemplo verificado |
| `SEQUENTIAL_NOT_AVAILABLE` | 403 | Signing order not available | Activo | sin ejemplo verificado |
| `SERVICE_UNAVAILABLE` | 503 | Service Unavailable | Activo | sin ejemplo verificado |
| `SIGNER_INVALID` | 422 | Signer invalid | Activo | abajo |
| `SIGNER_NOT_FOUND` | 404 | Not Found | Activo | abajo |
| `SIGNING_ORDER_INCOMPLETE` | 422 | Signing order incomplete | Activo | abajo |
| `TEMPLATE_ENDPOINT_REQUIRED` | 422 | Template endpoint required | Activo | abajo |
| `TEMPLATE_IN_USE` | 409 | Template in use | Activo | abajo |
| `TEMPLATE_NOT_FOUND` | 404 | Template not found | Activo | abajo |
| `TOKEN_AUDIENCE_MISMATCH` | 403 | Forbidden | Reservado | sin ejemplo verificado |
| `TOKEN_EXPIRED` | 401 | Unauthorized | Reservado | sin ejemplo verificado |
| `TOKEN_INVALID` | 401 | Unauthorized | Reservado | sin ejemplo verificado |
| `UNKNOWN_EVENT_TYPE` | 422 | Unknown event type | Activo | abajo |
| `UNSUPPORTED_API_VERSION` | 400 | Unsupported API version | Activo | abajo |
| `UNSUPPORTED_FORM_XFA` | 422 | Unsupported XFA form | Activo | abajo |
| `UNSUPPORTED_MEDIA_TYPE` | 415 | Unsupported Media Type | Reservado | sin ejemplo verificado |
| `VALIDATION_ERROR` | 422 | Validation failed | Activo | abajo |
| `WEBHOOK_LIMIT_EXCEEDED` | 409 | Conflict | Activo | sin ejemplo verificado |
| `WEBHOOK_NOT_FOUND` | 404 | Webhook endpoint not found | Activo | abajo |
| `WEBHOOK_URL_INVALID` | 422 | Webhook URL invalid | Activo | abajo |

**Así se ve `ANNEX_OF_ANNEX_NOT_ALLOWED`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_aa07ee47bbea45edb879fdc2ac9db8e7/annexes (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#ANNEX_OF_ANNEX_NOT_ALLOWED",
  "title": "Conflict",
  "status": 409,
  "detail": "This document is itself an annex. Attach the new annex to the root document instead.",
  "instance": "/v3/documents/doc_aa07ee47bbea45edb879fdc2ac9db8e7/annexes",
  "code": "ANNEX_OF_ANNEX_NOT_ALLOWED",
  "requestId": "req_afd05ccadf4e4d4e8c22a38f25e3d8c7"
}
```

**Así se ve `AUTHENTICATION_REQUIRED`** · verificado 8 oct 2026. Respuesta real de sandbox a GET /v3/documents (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#AUTHENTICATION_REQUIRED",
  "title": "Authentication required",
  "status": 401,
  "detail": "Provide an API key via Authorization: Bearer $ALLSIGN_API_KEY…",
  "instance": "/v3/documents",
  "code": "AUTHENTICATION_REQUIRED",
  "requestId": "req_b18d2960e68d4135ad139055bdf24f98"
}
```

**Así se ve `BATCH_NOT_FOUND`** · verificado 8 oct 2026. Respuesta real de sandbox a GET /v3/documents/bulk-sends/bat_e6282f72d60345d384d2b16cf0700624 (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#BATCH_NOT_FOUND",
  "title": "Bulk-send batch not found",
  "status": 404,
  "detail": "No bulk-send batch was found with that id.",
  "instance": "/v3/documents/bulk-sends/bat_e6282f72d60345d384d2b16cf0700624",
  "code": "BATCH_NOT_FOUND",
  "requestId": "req_7e1406b4cbd74967a85f8b8844351fe6"
}
```

**Así se ve `CATALOG_TEMPLATE_NOT_FOUND`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/templates/catalog/no-existe:copy (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#CATALOG_TEMPLATE_NOT_FOUND",
  "title": "Not Found",
  "status": 404,
  "detail": "No published catalog template was found with slug 'no-existe'.",
  "instance": "/v3/templates/catalog/no-existe:copy",
  "code": "CATALOG_TEMPLATE_NOT_FOUND",
  "requestId": "req_97a848684ace46d8bb72f456f96c237b"
}
```

**Así se ve `CONSTANCIA_NOT_FOUND`** · verificado 8 oct 2026. Respuesta real de sandbox a GET /v3/constancias/cst_6d09d152ab804645b8884b7e20337328 (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#CONSTANCIA_NOT_FOUND",
  "title": "Not Found",
  "status": 404,
  "detail": "No constancia was found with that id.",
  "instance": "/v3/constancias/cst_6d09d152ab804645b8884b7e20337328",
  "code": "CONSTANCIA_NOT_FOUND",
  "requestId": "req_c8a10a1a99bb4db09e4d9b3a9f42a9ef"
}
```

**Así se ve `DEV_FEATURE_RESTRICTED`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/bulk-sends (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#DEV_FEATURE_RESTRICTED",
  "title": "Forbidden",
  "status": 403,
  "detail": "The feature 'bulk_send' is not available with your current API key (environment: test).",
  "instance": "/v3/documents/bulk-sends",
  "code": "DEV_FEATURE_RESTRICTED",
  "requestId": "req_87e254c1249946cfbdc8516819d10deb",
  "featureRequested": "bulk_send",
  "environment": "test",
  "allowedFeatures": [
    "firma_autografa",
    "firma_simple",
    "embedded_signing"
  ],
  "allowedFeaturesDisplay": [
    "Firma Autógrafa (Wet Signature)",
    "Firma Simple (Click-to-sign)",
    "Embedded Signing Widget"
  ],
  "upgradeMessage": "This feature is only available with a production key (allsign_live_sk_…). Create a live key in your AllSign dashboard under Developers → API Keys.",
  "upgradeUrl": "https://allsign.io/pricing"
}
```

**Así se ve `DOCUMENT_ALREADY_SIGNED`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_f225e42012ba44dd853a06e460b02674/save-to-template (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#DOCUMENT_ALREADY_SIGNED",
  "title": "Document already signed",
  "status": 409,
  "detail": "A document with signatures already on it cannot be saved as a template.",
  "instance": "/v3/documents/doc_f225e42012ba44dd853a06e460b02674/save-to-template",
  "code": "DOCUMENT_ALREADY_SIGNED",
  "requestId": "req_6d22adad6f034dcb857a752eed5af7a9"
}
```

**Así se ve `DOCUMENT_CONFLICT`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_09bf1cccce9b463691037861ca4eea6f/observers (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#DOCUMENT_CONFLICT",
  "title": "Conflict",
  "status": 409,
  "detail": "The document was voided; it no longer takes observers.",
  "instance": "/v3/documents/doc_09bf1cccce9b463691037861ca4eea6f/observers",
  "code": "DOCUMENT_CONFLICT",
  "requestId": "req_77042c955bec4f2b8bd00e6388216505"
}
```

**Así se ve `DOCUMENT_NOT_EDITABLE`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_19deea649a6e421585db7e09bdc1faa4/fields:from-document (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#DOCUMENT_NOT_EDITABLE",
  "title": "Conflict",
  "status": 409,
  "detail": "This document is already in signing; its fields can no longer be imported.",
  "instance": "/v3/documents/doc_19deea649a6e421585db7e09bdc1faa4/fields:from-document",
  "code": "DOCUMENT_NOT_EDITABLE",
  "requestId": "req_1cd7885fff374f8bb522d76be322ad0e"
}
```

**Así se ve `DOCUMENT_NOT_FOUND`** · verificado 8 oct 2026. Respuesta real de sandbox a GET /v3/documents/doc_9c9f2f6749794c8c8717b0fd5458f074/file (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#DOCUMENT_NOT_FOUND",
  "title": "Document not found",
  "status": 404,
  "detail": "Document not found",
  "instance": "/v3/documents/doc_9c9f2f6749794c8c8717b0fd5458f074/file",
  "code": "DOCUMENT_NOT_FOUND",
  "requestId": "req_9099fea09e7e4822a33e00dde0d7dc14"
}
```

**Así se ve `DOCUMENT_NOT_FULLY_SIGNED`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_78e3621115ea4fbc88605ae1c3118ec6/annexes (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#DOCUMENT_NOT_FULLY_SIGNED",
  "title": "Conflict",
  "status": 409,
  "detail": "Annexes can only be attached to a fully signed document. This document's current status does not allow it.",
  "instance": "/v3/documents/doc_78e3621115ea4fbc88605ae1c3118ec6/annexes",
  "code": "DOCUMENT_NOT_FULLY_SIGNED",
  "requestId": "req_3f16b52d15ec400c8cc87067adfef964"
}
```

**Así se ve `DOCUMENT_NOT_SENDABLE`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_82fa050abbc44b9587b71c8f84e8f923/send (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#DOCUMENT_NOT_SENDABLE",
  "title": "Conflict",
  "status": 409,
  "detail": "The document requires handwritten signatures (signatureValidation.autografa=true) but has no signature fields placed, so it cannot be sent for signing. Place at least one signature field before sending.",
  "instance": "/v3/documents/doc_82fa050abbc44b9587b71c8f84e8f923/send",
  "code": "DOCUMENT_NOT_SENDABLE",
  "requestId": "req_fdb94dfd9e8e41809ba7db813e2097e4",
  "reason": "The document requires handwritten signatures (signatureValidation.autografa=true) but has no signature fields placed, so it cannot be sent for signing. Place at least one signature field before sending."
}
```

**Así se ve `DOCUMENT_TOO_LARGE`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#DOCUMENT_TOO_LARGE",
  "title": "Request Entity Too Large",
  "status": 413,
  "detail": "The file (10.0 MB decoded) exceeds the 10 MB limit for source=file.",
  "instance": "/v3/documents",
  "code": "DOCUMENT_TOO_LARGE",
  "requestId": "req_96b273bd7e82482aa0d45651aeb4631c"
}
```

**Así se ve `DUPLICATE_SIGNER`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_1dc79b7f4dd64d08ba9d3ed7a5626977/signers/sgr_ea59f1a241c543029768ecb7f38a65bb/reassign (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#DUPLICATE_SIGNER",
  "title": "Duplicate signer",
  "status": 422,
  "detail": "Esa persona ya es firmante de este documento.",
  "instance": "/v3/documents/doc_1dc79b7f4dd64d08ba9d3ed7a5626977/signers/sgr_ea59f1a241c543029768ecb7f38a65bb/reassign",
  "code": "DUPLICATE_SIGNER",
  "requestId": "req_3851c69baf2940bf874d02b256d8021a"
}
```

**Así se ve `EXPAND_DEPTH_EXCEEDED`** · verificado 8 oct 2026. Respuesta real de sandbox a GET /v3/documents/doc_8434c2beca964c7b959f96e5bbc4d1b3?expand=signers,fields,events,annexes (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#EXPAND_DEPTH_EXCEEDED",
  "title": "Bad Request",
  "status": 400,
  "detail": "At most 3 expand paths are allowed.",
  "instance": "/v3/documents/doc_8434c2beca964c7b959f96e5bbc4d1b3",
  "code": "EXPAND_DEPTH_EXCEEDED",
  "requestId": "req_df05e47a00434d8db363f5efdbd30f97"
}
```

**Así se ve `EXTERNAL_ID_CONFLICT`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/constancias (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#EXTERNAL_ID_CONFLICT",
  "title": "Conflict",
  "status": 409,
  "detail": "externalId 'pedido-muzi0on9' already identifies a constancia for another document (hash 1872a4d06486…). Use a different externalId, or send the same hash to retrieve the one already issued.",
  "instance": "/v3/constancias",
  "code": "EXTERNAL_ID_CONFLICT",
  "requestId": "req_0d782805b9534c43bd20d8468e9b3ce2"
}
```

**Así se ve `FIELD_CONFLICT`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/templates/tmpl_4a870c692ac14e2d81be7f9c134d527a/fields (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#FIELD_CONFLICT",
  "title": "Conflict",
  "status": 409,
  "detail": "A field named 'nombre' already exists in this template.",
  "instance": "/v3/templates/tmpl_4a870c692ac14e2d81be7f9c134d527a/fields",
  "code": "FIELD_CONFLICT",
  "requestId": "req_c1f5a7de743a4edb8e6969784838bc7e",
  "errors": [
    {
      "field": "name",
      "code": "DUPLICATE",
      "detail": "Field name already exists."
    }
  ]
}
```

**Así se ve `FIELD_NOT_FOUND`** · verificado 8 oct 2026. Respuesta real de sandbox a DELETE /v3/templates/tmpl_2ef548a7f8414f9abf8e0d75ca9a71df/fields/rfc (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#FIELD_NOT_FOUND",
  "title": "Not Found",
  "status": 404,
  "detail": "Field 'rfc' not found in this template.",
  "instance": "/v3/templates/tmpl_2ef548a7f8414f9abf8e0d75ca9a71df/fields/rfc",
  "code": "FIELD_NOT_FOUND",
  "requestId": "req_dc07200411324e03b6bbce3cca2ea6de"
}
```

**Así se ve `FOLDER_NOT_EMPTY`** · verificado 8 oct 2026. Respuesta real de sandbox a DELETE /v3/folders/fld_c1c3fb2ea6634f929addda83f073a00c (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#FOLDER_NOT_EMPTY",
  "title": "Conflict",
  "status": 409,
  "detail": "Folder has documents. Move or delete them before deleting the folder.",
  "instance": "/v3/folders/fld_c1c3fb2ea6634f929addda83f073a00c",
  "code": "FOLDER_NOT_EMPTY",
  "requestId": "req_0f54ba0e06d645f9adae72d71abadcc9"
}
```

**Así se ve `FOLDER_NOT_FOUND`** · verificado 8 oct 2026. Respuesta real de sandbox a GET /v3/folders/fld_c1c3fb2ea6634f929addda83f073a00c (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#FOLDER_NOT_FOUND",
  "title": "Folder not found",
  "status": 404,
  "detail": "No folder was found with that id.",
  "instance": "/v3/folders/fld_c1c3fb2ea6634f929addda83f073a00c",
  "code": "FOLDER_NOT_FOUND",
  "requestId": "req_8014888fbbde44e0845518524e2aee04"
}
```

**Así se ve `IDEMPOTENCY_KEY_IN_PROGRESS`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#IDEMPOTENCY_KEY_IN_PROGRESS",
  "title": "Conflict",
  "status": 409,
  "detail": "A request with this Idempotency-Key is still in progress.",
  "instance": "/v3/documents",
  "code": "IDEMPOTENCY_KEY_IN_PROGRESS",
  "requestId": "req_2e344a0ea69a46418d8a96c1de58ba64",
  "retryAfter": 2
}
```

**Así se ve `IDEMPOTENCY_KEY_INVALID`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#IDEMPOTENCY_KEY_INVALID",
  "title": "Bad Request",
  "status": 400,
  "detail": "Idempotency-Key must be a UUID v4.",
  "instance": "/v3/documents",
  "code": "IDEMPOTENCY_KEY_INVALID",
  "requestId": "req_e289ae908d284f7bbbdfc6abc2178d32"
}
```

**Así se ve `IDEMPOTENCY_KEY_REQUIRED`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#IDEMPOTENCY_KEY_REQUIRED",
  "title": "Bad Request",
  "status": 400,
  "detail": "POST requests that create or charge require a unique Idempotency-Key (UUID v4).",
  "instance": "/v3/documents",
  "code": "IDEMPOTENCY_KEY_REQUIRED",
  "requestId": "req_48ab6b50c363414c8d0e41850d05d5f5"
}
```

**Así se ve `IDEMPOTENCY_KEY_REUSED`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#IDEMPOTENCY_KEY_REUSED",
  "title": "Idempotency key reused",
  "status": 409,
  "detail": "This Idempotency-Key was already used with a different request.",
  "instance": "/v3/documents",
  "code": "IDEMPOTENCY_KEY_REUSED",
  "requestId": "req_7a71eb8164e14a01a6760499df342f6f"
}
```

**Así se ve `INVALID_CURSOR`** · verificado 8 oct 2026. Respuesta real de sandbox a GET /v3/documents?startingAfter=pagina-2 (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#INVALID_CURSOR",
  "title": "Bad Request",
  "status": 400,
  "detail": "The pagination cursor is malformed.",
  "instance": "/v3/documents",
  "code": "INVALID_CURSOR",
  "requestId": "req_631464956abd4a51be5d9580e50e14b8"
}
```

**Así se ve `INVALID_EXPAND`** · verificado 8 oct 2026. Respuesta real de sandbox a GET /v3/documents/doc_8434c2beca964c7b959f96e5bbc4d1b3?expand=firmantes (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#INVALID_EXPAND",
  "title": "Bad Request",
  "status": 400,
  "detail": "Unknown expand path(s): firmantes.",
  "instance": "/v3/documents/doc_8434c2beca964c7b959f96e5bbc4d1b3",
  "code": "INVALID_EXPAND",
  "requestId": "req_2042308d311a44c693926d1a9b56dea3"
}
```

**Así se ve `INVALID_ID`** · verificado 8 oct 2026. Respuesta real de sandbox a GET /v3/documents/doc_123/evidence (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#INVALID_ID",
  "title": "Malformed identifier",
  "status": 400,
  "detail": "Invalid document id.",
  "instance": "/v3/documents/doc_123/evidence",
  "code": "INVALID_ID",
  "requestId": "req_8a1bc74e22d945a6ad9358d2f8b27ec2"
}
```

**Así se ve `INVALID_STATE_TRANSITION`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_ca783e90f0444172a7fbe75400ab5ebc/signers/sgr_f70f3376d8fc450a97111874e086f6b6/remind (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#INVALID_STATE_TRANSITION",
  "title": "Conflict",
  "status": 409,
  "detail": "Document is in terminal state 'ANULADO' — cannot remind.",
  "instance": "/v3/documents/doc_ca783e90f0444172a7fbe75400ab5ebc/signers/sgr_f70f3376d8fc450a97111874e086f6b6/remind",
  "code": "INVALID_STATE_TRANSITION",
  "requestId": "req_18baf385999e4893975db73d70c38511",
  "reason": "document_terminal"
}
```

**Así se ve `METHOD_NOT_ALLOWED`** · verificado 8 oct 2026. Respuesta real de sandbox a PUT /v3/documents, una petición que el contrato no define, backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#METHOD_NOT_ALLOWED",
  "title": "Method Not Allowed",
  "status": 405,
  "detail": "Method Not Allowed",
  "instance": "/v3/documents",
  "code": "METHOD_NOT_ALLOWED",
  "requestId": "req_d9780cacad2345e8859a2ada12147116"
}
```

**Así se ve `NOT_YOUR_TURN`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_cb8538f977be47d597896fd6a71f8f17/signers/sgr_0dcad5b836254b2791fab1bb6e6995f2/remind (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#NOT_YOUR_TURN",
  "title": "Conflict",
  "status": 409,
  "detail": "Signer belongs to stage 3 and stage 1 has not finished — nothing to remind yet.",
  "instance": "/v3/documents/doc_cb8538f977be47d597896fd6a71f8f17/signers/sgr_0dcad5b836254b2791fab1bb6e6995f2/remind",
  "code": "NOT_YOUR_TURN",
  "requestId": "req_fda92aa97e3743a9805cbc1eaee1292c",
  "reason": "not_your_turn"
}
```

**Así se ve `OBSERVER_IS_SIGNER`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_5dbd1cc097404878a5668c6a00774830/observers (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#OBSERVER_IS_SIGNER",
  "title": "Conflict",
  "status": 409,
  "detail": "ana@ejemplo.com already signs this document; a signer cannot also be an observer.",
  "instance": "/v3/documents/doc_5dbd1cc097404878a5668c6a00774830/observers",
  "code": "OBSERVER_IS_SIGNER",
  "requestId": "req_68de996d2d6442b981652319043cc610"
}
```

**Así se ve `OBSERVER_NOT_FOUND`** · verificado 8 oct 2026. Respuesta real de sandbox a DELETE /v3/documents/doc_5dbd1cc097404878a5668c6a00774830/observers/rol_245aa9e7229547b5b3e5cf30afe54094 (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#OBSERVER_NOT_FOUND",
  "title": "Not Found",
  "status": 404,
  "detail": "Observer not found in this document. Organization observers are removed from Settings → Observers.",
  "instance": "/v3/documents/doc_5dbd1cc097404878a5668c6a00774830/observers/rol_245aa9e7229547b5b3e5cf30afe54094",
  "code": "OBSERVER_NOT_FOUND",
  "requestId": "req_22602288f4704ad2857ebd2b3dfa1468"
}
```

**Así se ve `PDF_ALREADY_SIGNED`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/templates (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#PDF_ALREADY_SIGNED",
  "title": "PDF already signed",
  "status": 422,
  "detail": "This PDF already carries a digital signature, and editing it would invalidate it. Upload the unsigned version or a flat PDF.",
  "instance": "/v3/templates",
  "code": "PDF_ALREADY_SIGNED",
  "requestId": "req_7ce35e2fb6a24801a7f2dcd25b07db59"
}
```

**Así se ve `PERMISSION_DENIED`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/signing-sessions/ses_ee38d79b09ad45b9ad094034c1910ecc/init (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#PERMISSION_DENIED",
  "title": "Permission denied",
  "status": 403,
  "detail": "The origin 'https://otro.ejemplo.com' is not authorized to embed this session.",
  "instance": "/v3/signing-sessions/ses_ee38d79b09ad45b9ad094034c1910ecc/init",
  "code": "PERMISSION_DENIED",
  "requestId": "req_beaface9931b45e4a4eb9e51c8b13f9c"
}
```

**Así se ve `PREVIEW_UNAVAILABLE`** · verificado 8 oct 2026. Respuesta real de sandbox a GET /v3/templates/tmpl_2a1bc982e2f04c979ff8d8c2a6468539/preview (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#PREVIEW_UNAVAILABLE",
  "title": "Not Found",
  "status": 404,
  "detail": "This template has no renderable page image.",
  "instance": "/v3/templates/tmpl_2a1bc982e2f04c979ff8d8c2a6468539/preview",
  "code": "PREVIEW_UNAVAILABLE",
  "requestId": "req_b9de17df65f64abb9601e36d7b31625a"
}
```

**Así se ve `RECIPIENT_NOT_SIGNER`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_966231febee54daeb77ff684f988b07b/send (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#RECIPIENT_NOT_SIGNER",
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "These recipients are not signers of this document: maria@ejemplo.com. Attach signers with `signers[]` when you create the document.",
  "instance": "/v3/documents/doc_966231febee54daeb77ff684f988b07b/send",
  "code": "RECIPIENT_NOT_SIGNER",
  "requestId": "req_381f6083e0434eebb1fba906d993129d",
  "errors": [
    {
      "field": "recipients[0].email",
      "code": "NOT_A_SIGNER",
      "detail": "maria@ejemplo.com is not a signer of this document."
    }
  ]
}
```

**Así se ve `RESOURCE_NOT_FOUND`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/signing-sessions (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#RESOURCE_NOT_FOUND",
  "title": "Not Found",
  "status": 404,
  "detail": "No participant with email nadie@ejemplo.com on document c2af0193-88b8-4767-be86-e9bc40106542",
  "instance": "/v3/signing-sessions",
  "code": "RESOURCE_NOT_FOUND",
  "requestId": "req_243a82a23c1a45aba4757d8ed3758d31"
}
```

**Así se ve `ROLE_NOT_FOUND`** · verificado 8 oct 2026. Respuesta real de sandbox a DELETE /v3/documents/doc_d60c6183f829411b8d033f2fc4c9477d/roles/rol_1d2abe482f0045a8b0fc16c94d49005f (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#ROLE_NOT_FOUND",
  "title": "Not Found",
  "status": 404,
  "detail": "Role not found in this document.",
  "instance": "/v3/documents/doc_d60c6183f829411b8d033f2fc4c9477d/roles/rol_1d2abe482f0045a8b0fc16c94d49005f",
  "code": "ROLE_NOT_FOUND",
  "requestId": "req_6724d101e4b248a7bd87d2f7ffd6e6ac"
}
```

**Así se ve `ROLE_OCCUPIED`** · verificado 8 oct 2026. Respuesta real de sandbox a DELETE /v3/documents/doc_d60c6183f829411b8d033f2fc4c9477d/roles/rol_00823ecb9d294d13869402400226758e (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#ROLE_OCCUPIED",
  "title": "Conflict",
  "status": 409,
  "detail": "Role 'Arrendador' is held by a signer. Remove the signer first, then delete the role.",
  "instance": "/v3/documents/doc_d60c6183f829411b8d033f2fc4c9477d/roles/rol_00823ecb9d294d13869402400226758e",
  "code": "ROLE_OCCUPIED",
  "requestId": "req_8704c255f6cf49999ae7d48dfa1ace21"
}
```

**Así se ve `SIGNER_INVALID`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_1dc79b7f4dd64d08ba9d3ed7a5626977/signers/sgr_ea59f1a241c543029768ecb7f38a65bb/reassign (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#SIGNER_INVALID",
  "title": "Signer invalid",
  "status": 422,
  "detail": "Es la misma persona; no hay nada que reasignar.",
  "instance": "/v3/documents/doc_1dc79b7f4dd64d08ba9d3ed7a5626977/signers/sgr_ea59f1a241c543029768ecb7f38a65bb/reassign",
  "code": "SIGNER_INVALID",
  "requestId": "req_922f9a91fb0c491495d387fe0f98bc12",
  "reason": "same_person"
}
```

**Así se ve `SIGNER_NOT_FOUND`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_ca783e90f0444172a7fbe75400ab5ebc/signers/sgr_8bc0129ec73d4d49b5d2c0335a209b8d/remind (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#SIGNER_NOT_FOUND",
  "title": "Not Found",
  "status": 404,
  "detail": "Signer '8bc0129e-c73d-4d49-b5d2-c0335a209b8d' not found in this document.",
  "instance": "/v3/documents/doc_ca783e90f0444172a7fbe75400ab5ebc/signers/sgr_8bc0129ec73d4d49b5d2c0335a209b8d/remind",
  "code": "SIGNER_NOT_FOUND",
  "requestId": "req_aa688e8a2b7e46ab88bb8e67a281ba61"
}
```

**Así se ve `SIGNING_ORDER_INCOMPLETE`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents/doc_2d02df9682eb4daa89e1dcf73635d684/send (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#SIGNING_ORDER_INCOMPLETE",
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Every signer is in the same stage, so signing in order would behave exactly like signing all at once. Use signingOrder 'parallel' or spread the signers across different stages.",
  "instance": "/v3/documents/doc_2d02df9682eb4daa89e1dcf73635d684/send",
  "code": "SIGNING_ORDER_INCOMPLETE",
  "requestId": "req_977bab702af14b0790961d843440acd6",
  "problems": [
    "Every signer is in the same stage, so signing in order would behave exactly like signing all at once. Use signingOrder 'parallel' or spread the signers across different stages."
  ],
  "reason": "single_stage"
}
```

**Así se ve `TEMPLATE_ENDPOINT_REQUIRED`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#TEMPLATE_ENDPOINT_REQUIRED",
  "title": "Template endpoint required",
  "status": 422,
  "detail": "Esta plantilla firma en orden y esta ruta no aplica su orden de firma: el documento nacería con todos los firmantes a la vez. Créalo con POST /v3/templates/tmpl_30cc50acf8d447c285146e8992ba3dc4/documents. No se creó ningún documento.",
  "instance": "/v3/documents",
  "code": "TEMPLATE_ENDPOINT_REQUIRED",
  "requestId": "req_9e0b14b183204b34b6c451acc11c8f23",
  "templateId": "tmpl_30cc50acf8d447c285146e8992ba3dc4"
}
```

**Así se ve `TEMPLATE_IN_USE`** · verificado 8 oct 2026. Respuesta real de sandbox a DELETE /v3/templates/tmpl_2a1bc982e2f04c979ff8d8c2a6468539 (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#TEMPLATE_IN_USE",
  "title": "Conflict",
  "status": 409,
  "detail": "Template 2a1bc982-e2f0-4c97-9ff8-d8c2a6468539 is in use by 1 document(s) and 0 chain(s). Archive or complete them before deleting.",
  "instance": "/v3/templates/tmpl_2a1bc982e2f04c979ff8d8c2a6468539",
  "code": "TEMPLATE_IN_USE",
  "requestId": "req_b63edfb7b1c9427f8ea3e6ac34f145b3"
}
```

**Así se ve `TEMPLATE_NOT_FOUND`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#TEMPLATE_NOT_FOUND",
  "title": "Template not found",
  "status": 404,
  "detail": "Template not found or has been deleted.",
  "instance": "/v3/documents",
  "code": "TEMPLATE_NOT_FOUND",
  "requestId": "req_252364b6627a443285dda69be2eb4213"
}
```

**Así se ve `UNKNOWN_EVENT_TYPE`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/webhooks (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#UNKNOWN_EVENT_TYPE",
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "One or more event types are not in the v3 catalog.",
  "instance": "/v3/webhooks",
  "code": "UNKNOWN_EVENT_TYPE",
  "requestId": "req_45571c3852cb4ac6bae34f64dc886a28",
  "errors": [
    {
      "field": "events[0]",
      "code": "UNKNOWN_EVENT_TYPE",
      "detail": "'documento.firmado' is not a valid v3 event type."
    }
  ]
}
```

**Así se ve `UNSUPPORTED_API_VERSION`** · verificado 8 oct 2026. Respuesta real de sandbox a GET /v3/documents (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#UNSUPPORTED_API_VERSION",
  "title": "Unsupported API version",
  "status": 400,
  "detail": "Unknown AllSign-Version '2020-01-01'. Supported: 2026-07-11.",
  "instance": "/v3/documents",
  "code": "UNSUPPORTED_API_VERSION",
  "requestId": "req_bef341c69ac84957ad49e9fc8f4f5a4d"
}
```

**Así se ve `UNSUPPORTED_FORM_XFA`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/templates (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#UNSUPPORTED_FORM_XFA",
  "title": "Unsupported XFA form",
  "status": 422,
  "detail": "This PDF uses an XFA (LiveCycle) form, which is not supported. Export it as a standard AcroForm PDF and try again.",
  "instance": "/v3/templates",
  "code": "UNSUPPORTED_FORM_XFA",
  "requestId": "req_fdd1b0f5006646e5a3a2894a39851d3f"
}
```

**Así se ve `VALIDATION_ERROR`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/documents (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#VALIDATION_ERROR",
  "title": "Validation failed",
  "status": 422,
  "detail": "The values are not valid. Fix the fields listed in `errors`. You can test a set of values for free with POST /v3/templates/{id}/validate-values.",
  "instance": "/v3/documents",
  "code": "VALIDATION_ERROR",
  "requestId": "req_71750d833b65413ea2c9794e81405461",
  "errors": [
    {
      "field": "templateValues.ciudad_celebracion",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.fecha_celebracion",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.folio_acuerdo",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.jurisdiccion",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.monto_pena",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.monto_pena_letra",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.objeto_relacion",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.parte_a__domicilio",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.parte_a__email",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.parte_a__representante",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.parte_a__rfc",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.parte_a__telefono",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.parte_b__domicilio",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.parte_b__email",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.parte_b__nombre",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.parte_b__representante",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.parte_b__rfc",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.parte_b__telefono",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.tipo_informacion_confidencial",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.vigencia",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    },
    {
      "field": "templateValues.vigencia_post_terminacion",
      "code": "MISSING_REQUIRED_VARIABLE",
      "detail": "This required variable is missing. Send it with a non-empty value."
    }
  ]
}
```

**Así se ve `WEBHOOK_NOT_FOUND`** · verificado 8 oct 2026. Respuesta real de sandbox a GET /v3/webhooks/whe_54c1d95de8c64a369095bc044665b5b3 (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#WEBHOOK_NOT_FOUND",
  "title": "Not Found",
  "status": 404,
  "detail": "No webhook endpoint was found with that id.",
  "instance": "/v3/webhooks/whe_54c1d95de8c64a369095bc044665b5b3",
  "code": "WEBHOOK_NOT_FOUND",
  "requestId": "req_e424fdd005fc4298b0231312f2126597"
}
```

**Así se ve `WEBHOOK_URL_INVALID`** · verificado 8 oct 2026. Respuesta real de sandbox a POST /v3/webhooks (ver la operación), backend 24c0469.

```
{
  "type": "https://allsign.io/developers/docs/errors#WEBHOOK_URL_INVALID",
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "The webhook url must be an absolute https:// URL.",
  "instance": "/v3/webhooks",
  "code": "WEBHOOK_URL_INVALID",
  "requestId": "req_4404713e03b346ffbe800e0deab820a0",
  "errors": [
    {
      "field": "url",
      "code": "INVALID_VALUE",
      "detail": "Must start with https://"
    }
  ]
}
```

## Correlación con AllSign-Request-Id

Cada respuesta trae el header `AllSign-Request-Id: req_…` y lo repite en `requestId` dentro del cuerpo del error. Cítalo al reportar un problema — es la llave para rastrear la petición en nuestros logs.
