Ir al contenido
Log in

Códigos de error

error.codeHTTPCausa habitualQué hacer
unauthorized401Clave API ausente/inválida, o clave de un entorno diferenteEnvíe la clave en la cabecera X-B2B-API-Key y asegúrese de que coincida con el entorno (sandbox, staging o producción).
missing_api_key401No se ha proporcionado esa clave API en la cabeceraEnvíe la clave en la cabecera X-B2B-API-Key y asegúrese de que coincida con el entorno (sandbox, staging o producción).
invalid_api_key401La clave API proporcionada no es válidaEnvíe una clave válida en la cabecera X-B2B-API-Key y asegúrese de que coincida con el entorno (sandbox, staging o producción).
expired_api_key401La clave API proporcionada ha caducadoEnvíe una clave válida y activa en la cabecera X-B2B-API-Key.
no_account_group403Clave válida pero sin grupo/permisos vinculados a ellaSolicite habilitar/asignar permisos para esta clave (las cuentas de staging requieren una solicitud de soporte; los permisos de sandbox son automáticos).
resource_missing404El ID del recurso no existe o no es accesible en su tenantVerifique el endpoint y el ID que está enviando.
invalid_request_params400JSON malformado, tipos incorrectos o estructura inesperadaValide el payload antes de enviarlo.
invalid_api_version ¹400La versión de API {api_version} no es compatibleValide el payload antes de enviarlo.
missing_api_version ¹400La versión de API no está especificada ni en la cabecera ni en IntegrationGroupValide el payload antes de enviarlo.
api_version_subdomain_mismatch ¹400El subdominio no coincide con la versión de API especificada en la cabecera X-B2B-API-Version o la asociada a la clave APICambie el subdominio por uno correcto. Use app.b2brouter o app-staging.b2brouter para la versión heredada (v2025-01-01). Use api.b2brouter o api-staging.b2brouter para todas las demás versiones a partir de v2025-10-13.
parameter_blank, parameter_empty422Campos requeridos ausentes o en blancoRellene los campos requeridos y reenvíe.
parameter_inclusion422El valor no está en el catálogo permitido (p. ej., un scheme inválido)Compruebe los valores permitidos (consulte la Guía de Esquemas / listas) y corríjalo.
parameter_taken422Ya existe un valor único (p. ej., número de factura)Use un nuevo valor o realice un GET primero para evitar duplicados.
parameter_cannot_change422Intento de editar un campo inmutableElimine el campo de la actualización o cree un nuevo recurso.
conflict409El estado actual del recurso rechaza la operaciónResuelva el conflicto de estado y vuelva a intentarlo.
(sin código)429Ha superado el límite de velocidadImplemente retroceso exponencial, use caché y prefiera los webhooks frente al polling.

1) 401 No autorizado (clave API incorrecta/ausente o entorno incorrecto)

Sección titulada «1) 401 No autorizado (clave API incorrecta/ausente o entorno incorrecto)»

Ejemplo de solicitud:

Ventana de terminal
curl --request GET \
--url 'https://api-staging.b2brouter.net/accounts?offset=0&limit=25' \
--header 'X-B2B-API-Key: {YOUR_API_KEY}' \
--header 'X-B2B-API-Version: {YOUR_API_VERSION}' \
--header 'accept: application/json'

Respuesta de ejemplo:

{
"error": {
"code": "unauthorized",
"message": "Invalid API Key provided, or the API key might not have the necessary permissions for this action.",
"type": "invalid_request_error"
}
}

Asegúrese de usar la clave correcta para su entorno (sandbox test_…, staging o producción) y enviarla en X-B2B-API-Key.


2) 404 No encontrado (el recurso no existe o no es accesible)

Sección titulada «2) 404 No encontrado (el recurso no existe o no es accesible)»

Ejemplo de solicitud:

Ventana de terminal
curl --request GET \
--url https://api-staging.b2brouter.net/directory/es/ES1234567890 \
--header 'X-B2B-API-Key: {YOUR_API_KEY}' \
--header 'X-B2B-API-Version: {YOUR_API_VERSION}' \
--header 'accept: application/json'

Respuesta de ejemplo:

{
"error": "Not found"
}

3) 422 Entidad no procesable (errores de validación)

Sección titulada «3) 422 Entidad no procesable (errores de validación)»

Ejemplo de solicitud:

Ventana de terminal
curl --request POST \
--url https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/transports \
--header 'X-B2B-API-Key: {YOUR_API_KEY}' \
--header 'X-B2B-API-Version: {YOUR_API_VERSION}' \
--header 'accept: application/json' \
--header 'content-type: application/json'
'

Respuesta de ejemplo:

{
"error": {
"code": "parameter_taken",
"message": "Transport type code has already been taken and Peppol Endpoint ID has already been taken",
"param": "transport_type_code",
"request_log_url": "https://api-staging.b2brouter.net/api_requests/123456",
"type": "invalid_request_error"
}
}

Los errores de validación devuelven HTTP 422 (Entidad no procesable) con detalles de error a nivel de campo, para que pueda corregir la entrada y reenviar la solicitud si es necesario.


Cada respuesta de API registrada incluye la cabecera X-B2B-API-Request-Id con el identificador único del registro de solicitud almacenado. Puede usar este valor para:

  • Correlacionar una respuesta con su entrada de registro en el servidor.
  • Referenciarlo en tickets de soporte para una investigación más rápida.
  • Incluirlo en sus propios registros de aplicación para trazabilidad de extremo a extremo.

Las respuestas de error también incluyen un campo request_log_url en el cuerpo JSON que enlaza directamente al registro de la solicitud.


  • Autenticación: mantenga claves separadas por entorno y envíe siempre X-B2B-API-Key.
  • Limitación de velocidad: use retroceso exponencial, almacene en caché las respuestas y prefiera los webhooks frente al polling siempre que sea posible.
  • Vocabularios controlados: cuando un valor debe provenir de un catálogo (p. ej., scheme), consulte primero la API/guía de Esquemas.