Ir al contenido

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.

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.

insufficient_scope

403

Esta 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

organization_not_found_or_not_granted

404

No 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

resource_not_found

404

No existe ese recurso.

La API devuelveNo such resource.

Qué endpoints lo devuelven

wildcard_not_supported

400

El 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

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.

already_exists

409

Ya existe un recurso con este identificador.

La API devuelveA resource with this identifier already exists.

Qué endpoints lo devuelven

gtin_in_use

409

Este 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.

Qué endpoints lo devuelven

variant_limit_reached

422

Este 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

409

Este 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

409

Las 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

412

El 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.

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

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

Al añadir estas unidades, la organización superaría las unidades de batería que puede añadir en este periodo. details contiene limit, current, requested, bought_remaining y plan_year_ends.

La API devuelveAdding these units would take the organization over the battery units it can add this plan year. details carries limit, current, requested, bought_remaining and plan_year_ends.

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

document_feeds_extraction

409

Este 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

409

Este 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

400

El cuerpo de la solicitud no superó la validación.

La API devuelveThe request body failed validation.

Qué endpoints lo devuelven

invalid_observed_on

400

El cuerpo de la solicitud no superó la validación.

La API devuelveThe request body failed validation.

Qué endpoints lo devuelven

invalid_source

400

El cuerpo de la solicitud no superó la validación.

La API devuelveThe request body failed validation.

Qué endpoints lo devuelven

invalid_field

400

El cuerpo de la solicitud no superó la validación.

La API devuelveThe request body failed validation.

Qué endpoints lo devuelven

invalid_note

400

El cuerpo de la solicitud no superó la validación.

La API devuelveThe request body failed validation.

Qué endpoints lo devuelven

invalid_value

400

El cuerpo de la solicitud no superó la validación.

La API devuelveThe request body failed validation.

Qué endpoints lo devuelven

invalid_document_id

400

El cuerpo de la solicitud no superó la validación.

La API devuelveThe request body failed validation.

Qué endpoints lo devuelven

unit_status_required

400

Esta 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

409

Una 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

409

Este 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

unit_reading_document_unavailable

400

No existe ese recurso.

La API devuelveNo such resource.

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

example_passport_not_fileable

409

Los pasaportes demo del Espacio de demostración no se pueden presentar.

La API devuelveExample passports from the Playground cannot be filed.

Qué endpoints lo devuelven

human_approval_required

202

El 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

409

El conector de agente solo puede modificar un borrador directamente. Para un pasaporte que el público ya ve, envía una propuesta que una persona aprueba.

La API devuelveThis product is already visible to the public, so an assistant cannot change it directly. To change its fields, or the file behind a field, use propose_changes; a person approves the proposal before the public page changes. For anything else, give a person the editor link in `details.review_url`.

Qué endpoints lo devuelven

proposal_requires_assistant

403

Solo un asistente conectado a través de PassportCraft puede proponer un cambio. Esta clave puede modificar el pasaporte directamente.

La API devuelveOnly an assistant connected through PassportCraft can propose a change. This key can change the passport directly.

Qué endpoints lo devuelven

no_changes

422

Nada en la propuesta difiere de lo que el pasaporte ya contiene.

La API devuelveNothing in the proposal differs from what the passport already holds.

Qué endpoints lo devuelven

unit_status_not_allowed

422

Elija 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.

portal_unavailable

502

El portal francés no respondió a tiempo. Su declaración puede haberse registrado o no. Vuelva a enviar la petición con una nueva Idempotency-Key: nada se declara dos veces. Reutilizar la misma clave solo devuelve este mismo error.

La API devuelveThe French affichage portal did not answer. If the declaration had already been sent, it may still have been recorded — check the passport before filing it again.

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

scope_exceeds_key

422

La 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

403

Todaví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

403

La 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

409

La 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

409

La 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

live_key_playground_only

403

Ninguno de sus clientes tiene un plan de pago Pro o Scale, así que esta clave live solo accede a su Espacio de demostración. No puede recibir acceso a un cliente. Una clave live que todavía accede a un cliente no se puede rotar. Una clave de prueba sí puede acceder a sus clientes.

La API devuelveThis live key acts on your Playground only. It can act on a client once one of your clients is on a paid Pro or Scale plan.

Qué endpoints lo devuelven

rate_limited

429

Demasiadas solicitudes.

La API devuelveToo many requests in a short time. Wait a moment, then try again.

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.

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. El partner decide qué puede hacer aquí, por lo que usted no puede cambiarlo. El propietario o los administradores del propio espacio de trabajo pueden eliminarla.

La API devuelveThe partner sets what its staff can do in this workspace.

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

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 de cliente solo se abre después de que el socio confirme su periodo de facturación anual para ese cliente.

La API devuelveThe partner has not confirmed the yearly billing period for this client; record its confirmation before opening the 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_unavailable

La vista previa del precio no está disponible. Vuelva a cargarla antes de crear al cliente. No se ha creado ningún cliente.

La API devuelveThe price is unavailable. No client was created. Try the review again later.

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.

creation_unavailable

La revisión previa a la creación no está disponible. Inténtelo más tarde. Si desconoce el resultado de una solicitud de creación, compruebe su estado en lugar de enviarla de nuevo.

La API devuelveCreation review is unavailable. Try again later; check the status of any creation already started.

client_creation_undone

No se ha creado nada ni se ha cobrado nada. Revise el pago e inténtelo de nuevo.

La API devuelveThe client could not be created and nothing was charged. Review the payment again.

client_vat_unverified

Un espacio de trabajo solo asume la facturación una vez que ha indicado su país.

La API devuelveGive the workspace's country before you add a card.

client_authority_required

Un espacio de trabajo de cliente solo se crea con la confirmación del socio de que el cliente lo autorizó a aceptar los Términos del Servicio y el Acuerdo de tratamiento de datos.

La API devuelveThe client's authority confirmation is missing. Tick the confirmation on the review step, then create the client.

client_details_required

Un espacio de trabajo de cliente necesita la razón social del cliente y una dirección de correo electrónico para nuestros avisos.

La API devuelveThe client's legal name and an email address for notices are required.

terms_acceptance_required

Un espacio de trabajo solo acepta la solicitud de un socio, o compra un plan de pago, junto con los Términos del Servicio y el Acuerdo de tratamiento de datos vigentes.

La API devuelveAccept the current Terms of Service and Data Processing Agreement together with the request.

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

partner_agreement_required

El socio no ha aceptado el acuerdo de socio actual, o su acuerdo ha terminado. Acepta el acuerdo en su página Condiciones para socios.

La API devuelveThis partner has not accepted the current partner agreement, or its agreement has ended. It must accept the agreement on its Partner terms page first.

agreement_unpublished

El acuerdo de socio aún no está publicado, por lo que no se puede aceptar.

La API devuelveThe partner agreement is not published yet

agreement_text_changed

El acuerdo cambió mientras la página estaba abierta. Recargue Condiciones para socios y acepte la versión mostrada.

La API devuelveThe agreement changed after it was shown. Reload the page and accept the version shown.

discount_unavailable

No pudimos leer el descuento de socio, por lo que no se aceptó nada. Inténtelo de nuevo.

La API devuelveThe partner discount could not be read. Nothing was accepted; try again.

partner_admin_access_fixed

Esta persona es propietaria o administradora en el partner, por lo que trabaja con todos sus clientes. Un propietario siempre trabaja con todos los clientes. Para elegir los clientes de un administrador, asígnele primero el rol Editor o Lector en el partner.

La API devuelveOwners and administrators work on every client. To limit an administrator's clients, make them an editor or viewer on your Team page first.

seat_removed_by_client

El cliente eliminó a esta persona de su espacio de trabajo. El partner no puede volver a añadirla. El propietario o un administrador del cliente puede permitirle el acceso de nuevo desde la página Equipo del cliente.

La API devuelveThe client removed this person from its workspace. Only the client can allow them again.

partner_staff_managed_by_partner

El personal de un partner no puede eliminarse entre sí del espacio de trabajo de un cliente. El partner elige los clientes de su personal desde su propia página Equipo. El propietario o los administradores del propio cliente pueden eliminar a cualquier persona.

La API devuelveOnly this workspace's own owner or administrators can remove a partner's staff here. The partner can change its staff's clients from its own Team page.

member_not_found

Esta persona ya no forma parte del equipo. Vuelva a cargar la lista e inténtelo de nuevo.

La API devuelveMember not found

playground_has_no_plans

El espacio de trabajo es el Espacio de demostración de un partner. Sus límites son fijos y no hay ningún plan que comprar. Por eso el proceso de pago, los cambios de plan y la compra de números de serie se rechazan todos con este código. Un partner compra el plan de un cliente al añadir ese cliente.

La API devuelveYour Playground has fixed limits and no plan to buy. To buy a plan for a client, use Add client on the Clients page. Client billing, under Partner settings, shows what you pay.

client_not_partner_paid

El partner no paga el plan de este cliente, la relación con el partner está finalizando o el plan del cliente está configurado para cancelarse. Cambiar al cliente a un plan superior y añadir números de serie para ese cliente se rechazan ambos con este código.

La API devuelveYour organization does not pay for this client's plan, or the client is leaving or set to cancel.

partner_agreement_ended

El acuerdo de socio ha terminado. Por eso ya no se puede cambiar a ningún cliente a un plan superior.

La API devuelveYour partner agreement has ended, so a client's plan cannot move to a larger plan.

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ón

El 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 guardar

El 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 guardar

El 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ón

El 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ón

El 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ón

El 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ón

El 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ón

El 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ón

El valor no es una URL válida.

Cómo corregirloEnvíe una URL absoluta con https:// o http://.

invalid_option

impide la publicación

El 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ón

El 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ón

El 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ón

El 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

aviso

El 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ón

El 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ón

El 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.

Límites de los datos de un pasaporte

Los datos de un pasaporte tienen un tamaño limitado. Una creación, una actualización o una propuesta que dejara los datos por encima de uno de esos límites se rechaza con un 422 validation_failed. El endpoint de validación responde con el mismo 422 cuando nuestra comprobación detecta que los datos superan un límite. Cerca del límite en bytes, la base de datos aún puede rechazar los datos al guardar, aunque esa comprobación los haya aceptado. Un único problema dentro de error.details.issues nombra la regla. Una fila de importación masiva que hiciera lo mismo falla con field_wrong_shape. El mismo problema figura dentro de error.detail.issues de la fila. Cada problema lleva source.pointer, rule, limit y received. Base su código en la regla, nunca en el mensaje.

source.pointer indica el campo de nivel superior que contiene el problema, tal como quedaría el pasaporte después de su cambio. En una actualización, una propuesta o una solicitud al endpoint de validación puede ser un campo que usted no envió. El JSON Pointer empieza en /data en una creación, una actualización y una solicitud al endpoint de validación, y en /fields en una propuesta. En una fila de importación masiva empieza en /rows/<n>/data, donde n es el índice de la fila en la importación. Una regla que afecta a todo el pasaporte, como too_many_fields, apunta solo a ese comienzo.

received cuenta las entradas en list_too_long y too_many_entries, y los campos de nivel superior en too_many_fields. En data_too_large es un tamaño en bytes. Cuando la base de datos detecta ese exceso, cuenta el texto JSON almacenado, que puede ser algo mayor que el JSON que usted envió. En number_out_of_range, limit y received valen null, porque la respuesta nunca repite el número.

list_too_long

Una lista de los datos del pasaporte contiene más de 500 entradas. Una lista cuenta esté donde esté, incluso dentro de otra lista o dentro de un objeto.

Cómo corregirloReduzca a 500 entradas o menos la lista más larga del campo que indica source.pointer. Un PATCH sustituye una lista entera, así que envíe la lista acortada.

La API devuelve"limit": 500

too_many_entries

Las listas de los datos del pasaporte contienen juntas más de 5000 entradas. Cada lista cuenta, incluidas las listas dentro de otras listas.

Cómo corregirloElimine entradas hasta que las listas contengan 5000 o menos en total. source.pointer indica el campo con más entradas.

La API devuelve"limit": 5000

data_too_large

Los datos del pasaporte ocupan más de 262.144 bytes como texto JSON. Los bytes se cuentan en UTF-8, así que un carácter puede ocupar hasta cuatro.

Cómo corregirloAcorte el texto del campo más grande, el que indica source.pointer, o elimine los valores que el pasaporte no necesita.

La API devuelve"limit": 262144

number_out_of_range

Un número de los datos del pasaporte está fuera del rango que acepta el pasaporte. El cero se acepta. Cualquier otro número debe ser, en valor absoluto, al menos 1e-30 y menor que 1e30.

Cómo corregirloLocalice el número en el campo que indica source.pointer y envíe uno dentro de ese rango.

La API devuelve"limit": null

too_many_fields

Los datos del pasaporte tienen más de 1000 campos de nivel superior.

Cómo corregirloElimine los campos de nivel superior que el pasaporte no necesita. El esquema de categoría enumera los campos que define una categoría.

La API devuelve"limit": 1000

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 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.