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, los códigos de error y los nombres de las reglas de validación 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.
{
"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
401La clave de API indicada no es válida.
La API devuelveThe API key provided is not valid.
Cualquier endpoint puede devolverlo.
key_revoked
401Esta clave de API ha sido revocada.
La API devuelveThis API key has been revoked.
Cualquier endpoint puede devolverlo.
key_expired
401Esta clave de API ha caducado.
La API devuelveThis API key has expired.
Cualquier endpoint puede devolverlo.
key_rotated
401Esta 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
400El 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.
insufficient_scope
403Esta credencial no lleva el ámbito que exige esta operación.
La API devuelveThis credential does not carry the scope required for this operation.
Qué endpoints lo devuelven
- post
/organizations/{organization}/grants - delete
/organizations/{organization}/grants/{keyId} - get
/organizations/{organization}/capabilities - get
/organizations/{organization}/events - get
/organizations/{organization}/passports - post
/organizations/{organization}/passports - get
/organizations/{organization}/publish-approvals/{id} - get
/organizations/{organization}/passports/{id} - patch
/organizations/{organization}/passports/{id} - post
/organizations/{organization}/passports/{id}/publish - post
/organizations/{organization}/passports/{id}/unpublish - post
/organizations/{organization}/passports/{id}/trash - post
/organizations/{organization}/passports/{id}/restore - post
/organizations/{organization}/passports/{id}/validate - get
/organizations/{organization}/passports/{id}/links - get
/organizations/{organization}/passports/{id}/affichage - post
/organizations/{organization}/passports/{id}/affichage - get
/organizations/{organization}/passports/{id}/variants - post
/organizations/{organization}/passports/{id}/variants - delete
/organizations/{organization}/passports/{id}/variants/{variantId} - post
/organizations/{organization}/passports/{id}/variants/remove - get
/organizations/{organization}/passports/{id}/variants/review - get
/organizations/{organization}/passports/{id}/units - post
/organizations/{organization}/passports/{id}/units - get
/organizations/{organization}/passports/{id}/units/{unitId}/readings - post
/organizations/{organization}/passports/{id}/units/{unitId}/readings - get
/organizations/{organization}/documents - get
/organizations/{organization}/passports/{id}/documents - post
/organizations/{organization}/passports/{id}/documents - delete
/organizations/{organization}/passports/{id}/documents/{documentId} - post
/organizations/{organization}/imports - get
/organizations/{organization}/imports - get
/organizations/{organization}/imports/{id}
organization_not_found_or_not_granted
404No existe esa organización, o esta clave no tiene concesión sobre ella. Una concesión termina cuando alguien la revoca o cuando termina la colaboración de la organización con su partner; la organización deja entonces de aparecer en GET /organizations.
La API devuelveNo such organization.
Qué endpoints lo devuelven
- post
/organizations/{organization}/grants - delete
/organizations/{organization}/grants/{keyId} - get
/organizations/{organization}/capabilities - get
/organizations/{organization}/events - get
/organizations/{organization}/passports - post
/organizations/{organization}/passports - get
/organizations/{organization}/publish-approvals/{id} - get
/organizations/{organization}/passports/{id} - patch
/organizations/{organization}/passports/{id} - post
/organizations/{organization}/passports/{id}/publish - post
/organizations/{organization}/passports/{id}/unpublish - post
/organizations/{organization}/passports/{id}/trash - post
/organizations/{organization}/passports/{id}/restore - post
/organizations/{organization}/passports/{id}/validate - get
/organizations/{organization}/passports/{id}/links - get
/organizations/{organization}/passports/{id}/affichage - post
/organizations/{organization}/passports/{id}/affichage - get
/organizations/{organization}/passports/{id}/variants - post
/organizations/{organization}/passports/{id}/variants - delete
/organizations/{organization}/passports/{id}/variants/{variantId} - post
/organizations/{organization}/passports/{id}/variants/remove - get
/organizations/{organization}/passports/{id}/variants/review - get
/organizations/{organization}/passports/{id}/units - post
/organizations/{organization}/passports/{id}/units - get
/organizations/{organization}/passports/{id}/units/{unitId}/readings - post
/organizations/{organization}/passports/{id}/units/{unitId}/readings - get
/organizations/{organization}/documents - get
/organizations/{organization}/passports/{id}/documents - post
/organizations/{organization}/passports/{id}/documents - delete
/organizations/{organization}/passports/{id}/documents/{documentId} - post
/organizations/{organization}/imports - get
/organizations/{organization}/imports - get
/organizations/{organization}/imports/{id}
resource_not_found
404No existe ese recurso.
La API devuelveNo such resource.
Qué endpoints lo devuelven
- get
/categories/{category}/schema - post
/organizations/{organization}/grants - delete
/organizations/{organization}/grants/{keyId} - get
/organizations/{organization}/publish-approvals/{id} - get
/organizations/{organization}/passports/{id} - patch
/organizations/{organization}/passports/{id} - post
/organizations/{organization}/passports/{id}/publish - post
/organizations/{organization}/passports/{id}/unpublish - post
/organizations/{organization}/passports/{id}/trash - post
/organizations/{organization}/passports/{id}/restore - post
/organizations/{organization}/passports/{id}/validate - get
/organizations/{organization}/passports/{id}/links - get
/organizations/{organization}/passports/{id}/affichage - post
/organizations/{organization}/passports/{id}/affichage - get
/organizations/{organization}/passports/{id}/variants - post
/organizations/{organization}/passports/{id}/variants - delete
/organizations/{organization}/passports/{id}/variants/{variantId} - post
/organizations/{organization}/passports/{id}/variants/remove - get
/organizations/{organization}/passports/{id}/variants/review - get
/organizations/{organization}/passports/{id}/units - post
/organizations/{organization}/passports/{id}/units - get
/organizations/{organization}/passports/{id}/units/{unitId}/readings - post
/organizations/{organization}/passports/{id}/units/{unitId}/readings - get
/organizations/{organization}/passports/{id}/documents - post
/organizations/{organization}/passports/{id}/documents - delete
/organizations/{organization}/passports/{id}/documents/{documentId} - get
/organizations/{organization}/imports/{id}
wildcard_not_supported
400El comodín de organización "-" está reservado y todavía no se admite.
La API devuelveThe "-" organization wildcard is reserved and not yet supported.
Qué endpoints lo devuelven
- post
/organizations/{organization}/grants - delete
/organizations/{organization}/grants/{keyId} - get
/organizations/{organization}/capabilities - get
/organizations/{organization}/events - get
/organizations/{organization}/passports - post
/organizations/{organization}/passports - get
/organizations/{organization}/publish-approvals/{id} - get
/organizations/{organization}/passports/{id} - patch
/organizations/{organization}/passports/{id} - post
/organizations/{organization}/passports/{id}/publish - post
/organizations/{organization}/passports/{id}/unpublish - post
/organizations/{organization}/passports/{id}/trash - post
/organizations/{organization}/passports/{id}/restore - post
/organizations/{organization}/passports/{id}/validate - get
/organizations/{organization}/passports/{id}/links - get
/organizations/{organization}/passports/{id}/affichage - post
/organizations/{organization}/passports/{id}/affichage - get
/organizations/{organization}/passports/{id}/variants - post
/organizations/{organization}/passports/{id}/variants - delete
/organizations/{organization}/passports/{id}/variants/{variantId} - post
/organizations/{organization}/passports/{id}/variants/remove - get
/organizations/{organization}/passports/{id}/variants/review - get
/organizations/{organization}/passports/{id}/units - post
/organizations/{organization}/passports/{id}/units - get
/organizations/{organization}/passports/{id}/units/{unitId}/readings - post
/organizations/{organization}/passports/{id}/units/{unitId}/readings - get
/organizations/{organization}/documents - get
/organizations/{organization}/passports/{id}/documents - post
/organizations/{organization}/passports/{id}/documents - delete
/organizations/{organization}/passports/{id}/documents/{documentId} - post
/organizations/{organization}/imports - get
/organizations/{organization}/imports - get
/organizations/{organization}/imports/{id}
validation_failed
422El cuerpo de la solicitud no superó la validación.
La API devuelveThe request body failed validation.
Qué endpoints lo devuelven
- post
/organizations/{organization}/grants - post
/organizations/{organization}/passports - patch
/organizations/{organization}/passports/{id} - post
/organizations/{organization}/passports/{id}/publish - post
/organizations/{organization}/passports/{id}/unpublish - post
/organizations/{organization}/passports/{id}/trash - post
/organizations/{organization}/passports/{id}/restore - post
/organizations/{organization}/passports/{id}/validate - post
/organizations/{organization}/passports/{id}/affichage - post
/organizations/{organization}/passports/{id}/variants - post
/organizations/{organization}/passports/{id}/variants/remove - post
/organizations/{organization}/passports/{id}/units - post
/organizations/{organization}/passports/{id}/units/{unitId}/readings - post
/organizations/{organization}/passports/{id}/documents - post
/organizations/{organization}/imports
invalid_request
400No se ha podido interpretar la solicitud.
La API devuelveThe request could not be understood.
Cualquier endpoint puede devolverlo.
method_not_allowed
405El 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
413El 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.
unsupported_media_type
415El cuerpo de la solicitud no llegó como application/json.
La API devuelveThe request body must be sent as application/json.
Qué endpoints lo devuelven
- post
/organizations/{organization}/grants - post
/organizations/{organization}/passports - patch
/organizations/{organization}/passports/{id} - post
/organizations/{organization}/passports/{id}/publish - post
/organizations/{organization}/passports/{id}/unpublish - post
/organizations/{organization}/passports/{id}/trash - post
/organizations/{organization}/passports/{id}/restore - post
/organizations/{organization}/passports/{id}/validate - post
/organizations/{organization}/passports/{id}/affichage - post
/organizations/{organization}/passports/{id}/variants - post
/organizations/{organization}/passports/{id}/variants/remove - post
/organizations/{organization}/passports/{id}/units - post
/organizations/{organization}/passports/{id}/units/{unitId}/readings - post
/organizations/{organization}/passports/{id}/documents - post
/organizations/{organization}/imports
idempotency_conflict
409Esta Idempotency-Key ya se usó con un cuerpo de solicitud distinto.
La API devuelveThis Idempotency-Key was already used with a different request body.
Qué endpoints lo devuelven
- post
/organizations/{organization}/passports - patch
/organizations/{organization}/passports/{id} - post
/organizations/{organization}/passports/{id}/publish - post
/organizations/{organization}/passports/{id}/unpublish - post
/organizations/{organization}/passports/{id}/trash - post
/organizations/{organization}/passports/{id}/restore - post
/organizations/{organization}/passports/{id}/affichage - post
/organizations/{organization}/passports/{id}/variants - delete
/organizations/{organization}/passports/{id}/variants/{variantId} - post
/organizations/{organization}/passports/{id}/variants/remove - post
/organizations/{organization}/passports/{id}/units - post
/organizations/{organization}/passports/{id}/units/{unitId}/readings - post
/organizations/{organization}/passports/{id}/documents - post
/organizations/{organization}/imports
already_exists
409Ya existe un recurso con este identificador.
La API devuelveA resource with this identifier already exists.
gtin_in_use
409Este GTIN pertenece a otro pasaporte. details indica passport, product_name y role (lead o variant). Use ese pasaporte u otro GTIN.
La API devuelveThis GTIN belongs to another passport. Use that passport or choose a different GTIN.
variant_limit_reached
422Este pasaporte ha alcanzado su límite de variantes. details contiene limit, current y requested. Cree un segundo pasaporte para añadir más. El límite no depende del plan.
La API devuelveThis passport has reached its variant limit. Create a second passport to add more.
Qué endpoints lo devuelven
variant_review_required
409Este pasaporte contiene tallas y colores introducidos por un asistente. Una persona los revisa primero: lea GET …/variants/review y publique con su huella. details contiene agent_written_count y la URL de la revisión.
La API devuelveThis passport carries sizes and colours an assistant wrote. A person reviews them first: read the review, then publish with its fingerprint.
Qué endpoints lo devuelven
variant_review_changed
409Las tallas y colores cambiaron después de la revisión que designa esta huella. Vuelva a leer la revisión y publique con su huella actual. details contiene agent_written_count.
La API devuelveThe sizes and colours changed after the review this fingerprint names. Read the review again and publish with its current fingerprint.
Qué endpoints lo devuelven
precondition_failed
412El recurso cambió: o bien desde la versión que usted indicó, o bien mientras su solicitud estaba en curso. El current_version que indicamos es la versión que leímos, no necesariamente la almacenada ahora: vuelva a leer el pasaporte en lugar de calcular a partir de ella.
La API devuelveThe resource changed since the version you supplied.
resource_busy
409Otra 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
400El 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
- get
/organizations/{organization}/events - get
/organizations/{organization}/passports - get
/organizations/{organization}/passports/{id}/variants - get
/organizations/{organization}/passports/{id}/units - get
/organizations/{organization}/passports/{id}/units/{unitId}/readings - get
/organizations/{organization}/documents - get
/organizations/{organization}/passports/{id}/documents - get
/organizations/{organization}/imports
no_subscription
402Esta organización no tiene una suscripción activa.
La API devuelveThis organization has no active subscription.
Qué endpoints lo devuelven
- post
/organizations/{organization}/passports - patch
/organizations/{organization}/passports/{id} - post
/organizations/{organization}/passports/{id}/publish - post
/organizations/{organization}/passports/{id}/unpublish - post
/organizations/{organization}/passports/{id}/trash - post
/organizations/{organization}/passports/{id}/restore - post
/organizations/{organization}/passports/{id}/affichage - post
/organizations/{organization}/passports/{id}/variants - delete
/organizations/{organization}/passports/{id}/variants/{variantId} - post
/organizations/{organization}/passports/{id}/variants/remove - post
/organizations/{organization}/passports/{id}/units - post
/organizations/{organization}/passports/{id}/units/{unitId}/readings - post
/organizations/{organization}/passports/{id}/documents - delete
/organizations/{organization}/passports/{id}/documents/{documentId} - post
/organizations/{organization}/imports
plan_required
402El plan de esta organización no incluye esta operación.
La API devuelveThis organization’s plan does not include this operation.
Qué endpoints lo devuelven
- post
/organizations/{organization}/passports - patch
/organizations/{organization}/passports/{id} - post
/organizations/{organization}/passports/{id}/publish - post
/organizations/{organization}/passports/{id}/unpublish - post
/organizations/{organization}/passports/{id}/trash - post
/organizations/{organization}/passports/{id}/restore - post
/organizations/{organization}/passports/{id}/affichage - post
/organizations/{organization}/passports/{id}/variants - delete
/organizations/{organization}/passports/{id}/variants/{variantId} - post
/organizations/{organization}/passports/{id}/variants/remove - post
/organizations/{organization}/passports/{id}/units - post
/organizations/{organization}/passports/{id}/units/{unitId}/readings - post
/organizations/{organization}/passports/{id}/documents - delete
/organizations/{organization}/passports/{id}/documents/{documentId} - post
/organizations/{organization}/imports
payment_overdue
402La publicación está desactivada mientras haya un pago pendiente.
La API devuelvePublishing is disabled while payment is overdue.
Qué endpoints lo devuelven
- post
/organizations/{organization}/passports - patch
/organizations/{organization}/passports/{id} - post
/organizations/{organization}/passports/{id}/publish - post
/organizations/{organization}/passports/{id}/unpublish - post
/organizations/{organization}/passports/{id}/trash - post
/organizations/{organization}/passports/{id}/restore - post
/organizations/{organization}/passports/{id}/affichage - post
/organizations/{organization}/passports/{id}/variants - delete
/organizations/{organization}/passports/{id}/variants/{variantId} - post
/organizations/{organization}/passports/{id}/variants/remove - post
/organizations/{organization}/passports/{id}/units - post
/organizations/{organization}/passports/{id}/units/{unitId}/readings - post
/organizations/{organization}/passports/{id}/documents - delete
/organizations/{organization}/passports/{id}/documents/{documentId} - post
/organizations/{organization}/imports
gtin_required
422Hace falta un GTIN antes de poder publicar este pasaporte.
La API devuelveA GTIN is required before this passport can be published.
wrong_status
409El pasaporte no está en un estado que permita esta operación.
La API devuelveThe passport is not in a status that allows this operation.
Qué endpoints lo devuelven
not_trashed
409Solo 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
402Esta 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
402Este pasaporte lleva más unidades de las que permite el plan.
La API devuelveThis passport carries more units than the plan allows.
document_missing
422Un 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
document_feeds_extraction
409Este documento es el registro del origen de los valores de un pasaporte, por lo que se mantiene mientras ese pasaporte exista. No se ha desvinculado nada.
La API devuelveThis document is the record of where a passport’s values came from, so it stays while that passport exists. Nothing was detached.
Qué endpoints lo devuelven
document_feeds_reading
409Este documento respalda valores de batería registrados y no se puede eliminar mientras existan esos registros. Abra el modelo de batería para revisarlos.
La API devuelveThis document supports recorded battery values and cannot be deleted while those battery records exist. Open the battery model to review those records.
invalid_input
400El cuerpo de la solicitud no superó la validación.
La API devuelveThe request body failed validation.
Qué endpoints lo devuelven
invalid_observed_on
400El cuerpo de la solicitud no superó la validación.
La API devuelveThe request body failed validation.
Qué endpoints lo devuelven
invalid_source
400El cuerpo de la solicitud no superó la validación.
La API devuelveThe request body failed validation.
Qué endpoints lo devuelven
invalid_field
400El cuerpo de la solicitud no superó la validación.
La API devuelveThe request body failed validation.
invalid_note
400El cuerpo de la solicitud no superó la validación.
La API devuelveThe request body failed validation.
Qué endpoints lo devuelven
invalid_value
400El cuerpo de la solicitud no superó la validación.
La API devuelveThe request body failed validation.
Qué endpoints lo devuelven
invalid_document_id
400El cuerpo de la solicitud no superó la validación.
La API devuelveThe request body failed validation.
Qué endpoints lo devuelven
unit_status_required
400Esta batería ya tiene un estado. Elija un estado en lugar de borrarlo.
La API devuelveThis battery already has a status. Choose a status instead of clearing it.
Qué endpoints lo devuelven
unit_status_transition_forbidden
409Una batería no puede volver a Original después de otro estado ni cambiar de estado después de Residuo.
La API devuelveThis battery’s status cannot return to Original or change after Waste.
Qué endpoints lo devuelven
unit_status_history_conflict
409Este estado entraría en conflicto con el historial registrado de la batería. Compruebe la fecha y el estado.
La API devuelveThis status would conflict with the battery’s recorded history. Check the date and status.
Qué endpoints lo devuelven
delegation_required
403La 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
403Esta 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
403Las credenciales de modo de prueba no pueden realizar esta operación.
La API devuelveTest-mode credentials cannot perform this operation.
Qué endpoints lo devuelven
human_approval_required
202El conector solicitó una publicación. Una persona de la organización debe aprobarla, y no se publicó nada.
La API devuelveA person at your organization must approve this publish. The request was recorded and is waiting for them — give them the link in `details.review_url`. Nothing has been published.
connector_writes_drafts_only
409El conector de agente solo puede modificar un borrador. Un pasaporte que el público ya ve requiere una persona.
La API devuelveThis product is already visible to the public, so an assistant cannot change it. A person has to make the change — give them the editor link in `details.review_url`.
unit_status_not_allowed
422Elija uno de los cinco estados de batería permitidos indicados en los detalles.
La API devuelveChoose one of the five permitted battery statuses in `details.allowed`, or leave the status empty.
scope_exceeds_key
422La concesión pide un ámbito que la clave no tiene en su propia organización. Lo que se concede para un cliente nunca supera lo que tiene la propia clave.
La API devuelveA grant cannot carry a scope the key does not hold on its own organization
Qué endpoints lo devuelven
france_mandate_required
403Todavía no se puede conceder filings:write para este cliente. Antes, una persona de su organización debe confirmar, en el espacio de trabajo del cliente, que cuenta con la autorización escrita del cliente para presentar declaraciones en Francia.
La API devuelvefilings:write needs the client's written authorisation, affirmed in its workspace, before it can be granted
Qué endpoints lo devuelven
grantor_not_seated
403La persona que creó la clave con la que se hace esta llamada ya no ocupa ninguna plaza en el espacio de trabajo de este cliente, así que no se puede registrar a nadie como quien otorga la concesión. Cree una clave nueva en la configuración.
La API devuelveThe person who created this key no longer holds a seat in this organization
Qué endpoints lo devuelven
key_not_grantable
409La clave indicada en key_id está revocada, caducada, en proceso de sustitución o es la conexión de un asistente. En ninguno de estos casos puede recibir una concesión.
La API devuelveThis key cannot be granted: it is revoked, expired, being replaced, or an assistant connection
Qué endpoints lo devuelven
grant_conflict
409La clave ya tiene aquí una concesión con otros ámbitos. Revoque esa concesión y, después, conceda una nueva con los ámbitos que desee.
La API devuelveThis key already holds a grant here with different scopes; revoke it, then grant again
Qué endpoints lo devuelven
rate_limited
429Demasiadas solicitudes.
La API devuelveToo many requests in a short time. Wait a moment, then try again.
Cualquier endpoint puede devolverlo.
internal_error
500Algo ha fallado por nuestra parte.
La API devuelveSomething went wrong on our side.
Cualquier endpoint puede devolverlo.
configuration_error
500El 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.
Rechazos de la aplicación PassportCraft
La aplicación en la que ha iniciado sesión llama a sus propias rutas, y esas rutas rechazan con los códigos siguientes. No forman parte del contrato /v1 y pueden cambiar en cualquier momento. Se enumeran aquí para que un mensaje que vea en la aplicación, o un artículo de ayuda, tenga a qué apuntar.
billing_managed_by_partner
El partner del espacio de trabajo gestiona su facturación. El proceso de pago, el portal de facturación y los cambios de plan se rechazan todos con este código.
La API devuelveBilling for this workspace is managed by the partner that pays for it
partner_role_fixed
Esta persona trabaja para el partner del espacio de trabajo. Su rol aquí sigue su rol en el partner y no se puede cambiar; un propietario o administrador puede eliminarla.
La API devuelveA partner member's role follows their role at the partner
home_members_only
Solo el propietario o los administradores del propio espacio de trabajo pueden hacer esto, como aceptar, rechazar o detener a un partner. El personal de un partner no puede, sea cual sea su rol. Solo puede rotar una clave creada por el personal de su partner en este espacio de trabajo y que actúe únicamente sobre este espacio de trabajo.
La API devuelveOnly the workspace's own owner or administrator can do this
client_already_linked
Este espacio de trabajo ya tiene un partner, o una solicitud de un partner que aún no ha respondido.
La API devuelveThis workspace already has a partner, or a request it has not answered
partner_chain_not_allowed
El espacio de trabajo ya gestiona clientes o ya está gestionado por un partner. Una organización puede ser un partner o el cliente de un partner, pero nunca ambas cosas, por lo que esta colaboración no puede comenzar.
La API devuelveAn organization can manage clients or be managed by a partner, not both
not_a_partner
La organización indicada en X-Organization no gestiona ningún cliente.
La API devuelveThis organization does not manage clients
partner_staff_only
Solo el propio personal del partner gestor puede hacer esto, como confirmar la autorización escrita de un cliente para las declaraciones francesas de coût environnemental.
La API devuelveOnly the partner's staff can do this
link_not_found
No existe ninguna relación de partner con ese id para este espacio de trabajo.
La API devuelveLink not found
link_not_pending
Esa solicitud ya ha sido respondida.
La API devuelveThis request has already been answered
link_not_accepted
La relación con el partner no está activa: todavía espera respuesta, o ha finalizado.
La API devuelveThis link is not active
same_organization
Una organización no puede gestionarse a sí misma.
La API devuelveAn organization cannot manage itself
organization_not_found
Ningún espacio de trabajo coincide con la dirección o el correo electrónico indicado.
La API devuelveOrganization not found
organization_header_required
La solicitud no indicó ningún espacio de trabajo. Envíe el slug del espacio de trabajo en el encabezado X-Organization.
La API devuelveThe X-Organization header is required
organization_not_a_member
La persona que ha iniciado sesión no es miembro del espacio de trabajo indicado en X-Organization.
La API devuelveNot a member of this organization
continuity_pending
El plan que pagó el partner todavía está vigente. La facturación de este espacio de trabajo cambia en la fecha hasta la que se pagó.
La API devuelveThe current plan runs to the date it was paid to; billing for this workspace changes after that
partner_terms_missing
Todavía no hay condiciones de facturación registradas para este partner, así que no se puede abrir ningún plan en su cuenta.
La API devuelveThis partner has no billing terms recorded
partner_customer_missing
El partner todavía no tiene cuenta de pago.
La API devuelveThis partner has no payment account yet
partner_card_missing
El partner no tiene ningún método de pago registrado. Lo añade en su propia página de Facturación.
La API devuelveThis partner organization has no payment method on file
client_already_subscribed
Este espacio de trabajo ya paga su propia suscripción.
La API devuelveThis workspace already has its own subscription
plan_below_current
El plan elegido es más pequeño que aquel en el que está actualmente este espacio de trabajo.
La API devuelveThat plan is smaller than the one this workspace is on
continuity_not_available
No hay ningún periodo pagado por un partner anterior que continuar para este espacio de trabajo.
La API devuelveThere is nothing to continue on this workspace
yearly_not_accepted
Un plan anual en la cuenta de un partner necesita primero que el partner acepte por escrito el plazo anual.
La API devuelveThis partner has not accepted the annual term in writing; record it before opening a yearly plan
stripe_refused
El proveedor de pago rechazó la solicitud.
La API devuelveStripe refused the request
payment_pending
Aún se desconoce el resultado del pago. Compruebe el estado de la solicitud existente; no cree otro cliente ni envíe otro pago.
La API devuelveThe payment result is not yet known. Check its status before starting another payment.
price_changed
El precio confirmado difiere de la última vista previa. Revise el precio actualizado antes de volver a enviar la solicitud. No se ha creado ningún cliente.
La API devuelveThe price changed. Review the current amount before creating the client.
price_changed_after_create
El cliente se creó en el plan gratuito. El precio cambió y el intento de pago sin abonar se cerró de forma segura. Contacte con soporte para activar su plan; no vuelva a crear al cliente.
La API devuelveThe client was added on Free. The reviewed payment did not proceed. Contact support to activate the plan.
creation_token_invalid
Esta revisión no coincide con el usuario, el espacio de trabajo o los datos del cliente. Revise los datos correctos de nuevo. Si ya envió una solicitud de creación y desconoce su resultado, contacte con soporte en lugar de empezar de nuevo.
La API devuelveThis creation review is invalid. If creation has already started, check its status or contact support.
creation_token_expired
La autorización de creación ha caducado. Compruebe primero cualquier solicitud de creación existente; si no envió ninguna, revise el pago de nuevo.
La API devuelveThis creation review expired. Check any existing operation before reviewing a new creation.
creation_operation_expired
El estado conservado de esta solicitud de creación ya no está disponible. Contacte con soporte antes de realizar otra acción; no vuelva a crear al cliente.
La API devuelveThis operation status is no longer available. Contact support before creating another client.
creation_conflict
Esta solicitud de creación ya está vinculada a otros datos. Compruebe la solicitud original o contacte con soporte; no inicie otra creación.
La API devuelveThis operation belongs to different creation details. Check the original operation or contact support.
client_not_managed
La organización indicada no es un cliente que gestione su organización.
La API devuelveThat organization is not a client your organization manages
keys_admin_partner_only
keys:admin solo se puede dar a una clave que pertenezca a una organización que gestione clientes.
La API devuelvekeys:admin can only be granted on the own keys of an organization that manages clients
grant_not_found
Ninguna clave de otra organización tiene acceso a este espacio de trabajo con ese id.
La API devuelveNo key from another organization holds a grant here under that id
Reglas de validación
Estas son las reglas que el propio contenido del pasaporte puede incumplir, en cualquier categoría. Un nombre de regla le llega en tres lugares: dentro de error.details.issues en un 422, dentro de issues en el 200 del endpoint de validación y dentro de error.detail.issues en una fila de importación masiva. La creación, la actualización y la importación solo rechazan un valor dentro de data en las dos marcadas como rechazadas al guardar; además, la creación devuelve required para una categoría que no atiende. Las demás llegan desde la publicación o desde el endpoint de validación. La publicación devuelve la lista completa, avisos incluidos, por lo que también nombra reglas que no causaron el rechazo. Base su código en la regla, nunca en el mensaje.
required
impide la publicaciónEl campo es obligatorio para esta categoría y llegó vacío, ausente o como una lista vacía. Crear un pasaporte bajo una categoría que no atendemos también devuelve esta regla, en el JSON Pointer /category.
Cómo corregirloEnvíe un valor. Un campo url que documenta un archivo también se cumple si adjunta ese documento en su lugar.
type_array
impide la publicacióntambién se rechaza al guardarEl campo contiene una lista y el valor no lo era: lo más habitual es una lista enviada como cadena JSON.
Cómo corregirloEnvíe un array JSON real, no una cadena que lo contenga.
type_array_items
impide la publicacióntambién se rechaza al guardarEl campo contiene una lista de valores de texto simple y al menos una entrada era un objeto, un número o un booleano.
Cómo corregirloEnvíe cada entrada como cadena. El campo lleva item_type en el esquema de categoría cuando lo exige.
type_number
impide la publicaciónEl campo contiene un número y el valor no lo era: lo más habitual es un número enviado como cadena.
Cómo corregirloEnvíe un número JSON, sin comillas.
type_text
impide la publicaciónEl campo contiene texto y el valor no lo era: lo más habitual es un número, un booleano o una lista enviados a un campo que el esquema de categoría declara como texto, o a un campo de selección que además admite una respuesta libre.
Cómo corregirloEnvíe el valor como cadena JSON. Consulte type en el campo del esquema de categoría. Un select que ofrece una opción other también admite la respuesta libre como cadena.
number_min
impide la publicaciónEl valor es inferior al número más pequeño que acepta el campo.
Cómo corregirloConsulte min en el campo dentro del esquema de categoría y envíe un valor igual o superior.
number_max
impide la publicaciónEl valor es superior al número más grande que acepta el campo.
Cómo corregirloConsulte max en el campo dentro del esquema de categoría y envíe un valor igual o inferior.
format_date
impide la publicaciónEl valor no es una fecha ISO 8601 válida. Una fecha que no existe, como 2025-02-30, se rechaza aquí.
Cómo corregirloEnvíe YYYY-MM-DD o una marca de tiempo ISO 8601 en UTC, terminada en Z. Se rechaza un desfase que sitúe la marca de tiempo en otra fecha.
format_url
impide la publicaciónEl valor no es una URL válida.
Cómo corregirloEnvíe una URL absoluta con https:// o http://.
invalid_option
impide la publicaciónEl campo acepta un conjunto fijo de valores y el valor no era ninguno de ellos. Un campo que ofrece una opción other queda exento: guarda texto libre en su lugar.
Cómo corregirloConsulte options en el campo dentro del esquema de categoría y envíe una de las entradas value que enumera.
format_gtin
impide la publicaciónEl GTIN no es real: llegó como cadena vacía, contiene caracteres que no son dígitos, tiene una longitud incorrecta, tiene un dígito de control que no coincide o es un ejemplo de documentación.
Cómo corregirloEnvíe un GTIN-8, GTIN-12, GTIN-13 o GTIN-14 que le haya asignado GS1. El mensaje indica cuál es el problema.
format_eori
impide la publicaciónEl número EORI no coincide con el formato que acepta el campo.
Cómo corregirloEnvíe dos letras mayúsculas de país y después de 1 a 15 letras mayúsculas o cifras. Se rechazan las minúsculas.
format_country_code
impide la publicaciónEl país no son dos letras mayúsculas. Se rechaza un código en minúsculas: de en lugar de DE.
Cómo corregirloEnvíe un código ISO 3166-1 alfa-2 en mayúsculas, por ejemplo DE.
format_commodity_code
avisoEl código de mercancía no coincide con el formato SA, NC o TARIC.
Cómo corregirloEnvíe 6, 8 o 10 dígitos. También puede publicar el pasaporte con el valor tal como está.
format_email
impide la publicaciónEl valor no es una dirección de correo electrónico válida.
Cómo corregirloEnvíe una dirección completa.
category_exists
impide la publicaciónEl pasaporte nombra una categoría de producto que esta API no atiende.
Cómo corregirloEnviar otra categoría no lo resuelve: el pasaporte almacenado nombra una categoría que ya no atendemos. Vuelva a crearlo bajo una categoría que devuelva el endpoint que lista las categorías.
Otras tres cosas llevan un nombre de regla. Una categoría de producto añade reglas propias, que leen varios campos a la vez: por ejemplo, porcentajes de materiales que deben sumar 100. Un endpoint informa igual de un problema con la propia solicitud, bajo nombres como not_writable. Y el control de publicación reutiliza required para un valor que la publicación necesita, como un GTIN, en un campo que la categoría en sí no exige. En cada caso, el mensaje de la respuesta explica la regla.
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
200El pasaporte contiene afirmaciones medioambientales, detectadas en su redacción o en campos que la marca ha señalado como información medioambiental. 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.