Saltar al contenido principal

Catálogo de errores

Todos los errores devuelven un objeto JSON con el mismo formato:

{
"name": "partner_api_key.not_found",
"message": "descripción legible del error"
}

Usa el campo name para la lógica de tu integración — es estable entre versiones. El campo message puede cambiar.

Errores de autenticación (401)

nameCausa
partner_api_key.not_foundLa cabecera X-API-Key está ausente, el valor no corresponde a ninguna clave activa, o la clave ha sido revocada.
partner_api_key.expiredLa clave existe pero ha superado su fecha de expiración (expires_at).

Errores de autorización (403)

nameCausa
partner_api_key.forbiddenLa clave es válida pero no tiene permisos sobre el recurso solicitado.

Errores de validación (400)

Estos errores indican un problema con el payload enviado. No son retriables — corrígelos en la integración.

nameCampo afectadoCausa
authorization.validation_error.external_id_emptyexternalIdEl campo está vacío o contiene solo espacios.
authorization.invalid_quantityquantityLa cantidad es cero o negativa. Debe ser mayor que 0.
authorization.invalid_plate_formattractorPlate / trailerPlatesLa matrícula contiene caracteres no permitidos (solo alfanuméricos, 1–8 caracteres).
authorization.validation_error.product_emptyproductEl campo está vacío o contiene solo espacios.
authorization.validation_error.product_owner_name_emptyproductOwner.nameEl nombre del propietario está vacío.
authorization.validation_error.product_owner_cif_emptyproductOwner.cifEl CIF del propietario está vacío.
authorization.validation_error.product_owner_phone_emptyproductOwner.phoneEl teléfono del propietario está vacío.
authorization.validation_error.product_owner_email_emptyproductOwner.emailEl email del propietario está vacío.
authorization.validation_error.business_partner_name_emptysender.name / receiver.nameEl nombre del expedidor o destinatario está vacío.
authorization.validation_error.business_partner_cif_emptysender.cif / receiver.cifEl CIF del expedidor o destinatario está vacío.
authorization.validation_error.business_partner_phone_emptysender.phone / receiver.phoneEl teléfono del expedidor o destinatario está vacío.
authorization.validation_error.business_partner_address_emptysender.address / receiver.addressLa dirección del expedidor o destinatario está vacía.
authorization.validation_error.business_partner_warehouse_code_emptysender.warehouseCode / receiver.warehouseCodeEl código de almacén está vacío.

Errores de servidor (500)

nameCausa
internal_server_errorError interno de DigiAnt. No es un problema de tu integración.

Estrategia de retry

Código HTTPRetriableAcción recomendada
400Corrige el payload antes de reintentar. Loguea el name del error para identificar el campo problemático.
401Verifica la API Key. Si expiró, rota la clave.
403Contacta con soporte de DigiAnt.
500Reintenta con backoff exponencial. Si el error persiste más de 5 minutos, contacta con soporte.
tip

Implementa una cola de reintentos para errores 5xx con backoff exponencial (por ejemplo: 1s, 2s, 4s, 8s). Los errores 4xx nunca se deben reintentar sin corregir el payload.

Ejemplos de payloads que disparan errores 400

Cantidad negativa:

{
"externalId": "GOF-2026-001",
"quantity": -100,
...
}

authorization.invalid_quantity

Matrícula con guión:

{
"tractorPlate": "1234-ABC",
...
}

authorization.invalid_plate_format

externalId vacío:

{
"externalId": "",
...
}

authorization.validation_error.external_id_empty