Errores

Errores

Cada fallo lleva un código estable. Ramifique por el código y nunca por el mensaje: la redacción puede cambiar en cualquier momento, el código no.

Las rutas, los métodos, los ámbitos, los nombres de campo y los códigos de error se publican en inglés, porque el inglés es el idioma de la propia interfaz: es lo que quien llama escribe o compara. Lo mismo ocurre con cada ejemplo de código, cada carga JSON y la frase exacta que lleva una respuesta de error: /v1 no lee Accept-Language, y traducir lo que la API envía realmente sería describirla mal. Todo lo que se escribe sobre ello sigue el idioma de esta página.

El sobre de error

Toda respuesta fuera de 2xx tiene la misma forma. documentation_url apunta directamente a la entrada correspondiente más abajo, y request_id es el valor que hay que citar en una consulta de soporte. details lleva contexto legible por máquina: para un cuerpo rechazado son los issues, cada uno un JSON Pointer al campo defectuoso.

Respuesta
{
  "error": {
    "code": "validation_failed",
    "message": "The request body failed validation.",
    "documentation_url": "https://passportcraft.com/docs/api/errors#validation_failed",
    "request_id": "req_9Fv2KpQ0aXbT4Lmn",
    "details": {
      "issues": [
        { "source": { "pointer": "/data/product_name" }, "rule": "required" }
      ]
    }
  }
}

Códigos

Cada código está enlazado desde la respuesta que lo lleva, así que a esta página se suele llegar directamente en la entrada que hace falta.

invalid_key

401

La clave de API indicada no es válida.

La API devuelveThe API key provided is not valid.

Cualquier endpoint puede devolverlo.

key_revoked

401

Esta clave de API ha sido revocada.

La API devuelveThis API key has been revoked.

Cualquier endpoint puede devolverlo.

key_expired

401

Esta clave de API ha caducado.

La API devuelveThis API key has expired.

Cualquier endpoint puede devolverlo.

key_rotated

401

Esta clave de API se sustituyó en una rotación y su ventana de solapamiento ya se cerró.

La API devuelveThis API key was replaced by a rotation and its overlap window has closed.

Cualquier endpoint puede devolverlo.

mode_mismatch

400

El prefijo de la clave no coincide con la credencial. Compruebe si quería una clave de prueba o una de producción.

La API devuelveThe key prefix does not match the credential. Check whether you meant a test or a live key.

Cualquier endpoint puede devolverlo.

invalid_request

400

No se ha podido interpretar la solicitud.

La API devuelveThe request could not be understood.

Cualquier endpoint puede devolverlo.

method_not_allowed

405

El endpoint existe, pero no responde a este método HTTP. La cabecera Allow del rechazo enumera los métodos a los que sí responde.

La API devuelveThis endpoint does not support that HTTP method. The Allow header lists the ones it does.

payload_too_large

413

El cuerpo de la solicitud supera lo que acepta este endpoint. details.limit_bytes indica el tope aplicado.

La API devuelveThe request body is larger than this endpoint accepts.

Cualquier endpoint puede devolverlo.

precondition_failed

412

El recurso cambió desde la versión que usted indicó.

La API devuelveThe resource changed since the version you supplied.

Qué endpoints lo devuelven

resource_busy

409

Otra petición está modificando este recurso. Espere el tiempo indicado en la cabecera Retry-After y vuelva a intentarlo.

La API devuelveAnother request is modifying this resource. Wait for the Retry-After header, then retry.

Qué endpoints lo devuelven

cursor_invalid

400

El cursor de paginación no es válido, ha caducado o se envió con otros filtros.

La API devuelveThe pagination cursor is invalid, expired, or was sent with different filters.

Qué endpoints lo devuelven

gtin_required

422

Hace falta un GTIN antes de poder publicar este pasaporte.

La API devuelveA GTIN is required before this passport can be published.

Qué endpoints lo devuelven

not_trashed

409

Solo se puede restaurar un pasaporte que esté en la papelera.

La API devuelveOnly a trashed passport can be restored.

Qué endpoints lo devuelven

publish_limit_reached

402

Esta organización ha agotado todas las plazas de publicación que permite su plan.

La API devuelveThis organization has used every publish slot its plan allows.

Qué endpoints lo devuelven

unit_limit_reached

402

Este pasaporte lleva más unidades de las que permite el plan.

La API devuelveThis passport carries more units than the plan allows.

Qué endpoints lo devuelven

document_missing

422

Un campo obligatorio se cubre únicamente con un documento que ya no está adjunto.

La API devuelveA required field is satisfied only by a document that is no longer attached.

Qué endpoints lo devuelven

delegation_required

403

La presentación exige una delegación activa, verificada contra el portal en el momento de la llamada.

La API devuelveFiling requires an active delegation, verified against the portal at call time.

Qué endpoints lo devuelven

attestation_required

403

Esta operación exige una declaración responsable aceptada por una persona identificada de la marca.

La API devuelveThis operation requires an attestation accepted by a named person at the brand.

Qué endpoints lo devuelven

test_mode_refused

403

Las credenciales de modo de prueba no pueden realizar esta operación.

La API devuelveTest-mode credentials cannot perform this operation.

Qué endpoints lo devuelven

portal_unavailable

502

No se pudo contactar con el portal francés de affichage, así que no se presentó nada.

La API devuelveThe French affichage portal could not be reached, so nothing was filed.

Qué endpoints lo devuelven

storage_unavailable

503

No hemos podido confirmar si los archivos subidos están en el almacenamiento, así que no se ha publicado nada. Su petición no tiene ningún error: vuelva a intentarlo tras el tiempo indicado en la cabecera Retry-After.

La API devuelveWe could not confirm whether the uploaded files are in storage, so nothing was published. Nothing is wrong with your request — retry after the delay in the Retry-After header.

Qué endpoints lo devuelven

entitlement_unavailable

503

No hemos podido confirmar los derechos de esta organización, así que no se ha presentado nada. No es una afirmación sobre el plan: vuelva a intentarlo tras el tiempo indicado en la cabecera Retry-After.

La API devuelveWe could not confirm this organization’s entitlement, so nothing was filed. This is not a statement about the plan — retry after the delay in the Retry-After header.

Qué endpoints lo devuelven

rate_limited

429

Demasiadas solicitudes.

La API devuelveToo many requests.

Cualquier endpoint puede devolverlo.

internal_error

500

Algo ha fallado por nuestra parte.

La API devuelveSomething went wrong on our side.

Cualquier endpoint puede devolverlo.

configuration_error

500

El servicio está mal configurado. No es un problema de su solicitud.

La API devuelveThe service is misconfigured. This is not a problem with your request.

Cualquier endpoint puede devolverlo.

Avisos

Un aviso no es un rechazo. Llega junto a un 200, en una llamada que salió bien, y señala algo que conviene atender.

environmental_claim_detected

200

El pasaporte contiene lenguaje de alegación ambiental. La publicación salió bien y el pasaporte está en línea. Desde el 27 de septiembre de 2026, la Directiva (UE) 2024/825 exige que el comerciante que introduce el producto en el mercado disponga de justificación para esas afirmaciones.

Errores — API de PassportCraft | PassportCraft