Salta al contingut
Log in

Codis d'error

error.codeHTTPCausa típicaQuè cal fer
unauthorized401Clau d’API absent/no vàlida, o clau d’un entorn diferentEnvieu la clau a la capçalera X-B2B-API-Key i assegureu-vos que coincideix amb l’entorn (sandbox, staging o producció).
missing_api_key401Aquesta clau d’API no s’ha proporcionat a la capçaleraEnvieu la clau a la capçalera X-B2B-API-Key i assegureu-vos que coincideix amb l’entorn (sandbox, staging o producció).
invalid_api_key401La clau d’API proporcionada no és vàlidaEnvieu una clau vàlida a la capçalera X-B2B-API-Key i assegureu-vos que coincideix amb l’entorn (sandbox, staging o producció).
expired_api_key401La clau d’API proporcionada ha caducatEnvieu una clau vàlida i activa a la capçalera X-B2B-API-Key
no_account_group403Clau vàlida però sense grup/permisos vinculatsDemaneu que s’habilitin/assignin permisos per a aquesta clau (els comptes de staging requereixen una sol·licitud de suport; els permisos de sandbox són automàtics).
resource_missing404L’ID del recurs no existeix o no és accessible al vostre tenantReviseu l’endpoint i l’ID que esteu enviant.
invalid_request_params400JSON mal format, tipus incorrectes o estructura inesperadaValideu el payload abans d’enviar-lo.
invalid_api_version ¹400La versió d’API {api_version} no és compatibleValideu el payload abans d’enviar-lo.
missing_api_version ¹400La versió de l’API no s’especifica ni a la capçalera ni al IntegrationGroupValideu el payload abans d’enviar-lo.
api_version_subdomain_mismatch ¹400El subdomini no coincideix amb la versió d’API especificada a la capçalera X-B2B-API-Version o la associada a la clau d’APICanvieu el subdomini a un de correcte. Useu app.b2brouter o app-staging.b2brouter per a la versió legacy (v2025-01-01). Useu api.b2brouter o api-staging.b2brouter per a totes les versions des de v2025-10-13.
parameter_blank, parameter_empty422Camps requerits absents/en blancOmpliu els camps requerits i torneu a enviar.
parameter_inclusion422El valor no es troba al catàleg permès (per exemple, un scheme no vàlid)Comproveu els valors permesos (vegeu la Guia d’Esquemes / llistes) i corregiu.
parameter_taken422Un valor únic ja existeix (per exemple, número de factura)Useu un valor nou o feu un GET primer per evitar duplicats.
parameter_cannot_change422Intent d’editar un camp immutableElimineu el camp de l’actualització o creeu un nou recurs.
conflict409L’estat actual del recurs rebutja l’operacióResoleu el conflicte d’estat i torneu a intentar-ho.
(sense codi)429Heu superat el límit de velocitatImplementeu backoff exponencial, feu cache i preferiu webhooks en lloc de polling.

1) 401 Unauthorized (clau d’API incorrecta/absent o entorn incorrecte)

Section titled “1) 401 Unauthorized (clau d’API incorrecta/absent o entorn incorrecte)”

Exemple de petició:

Finestra del 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'

Resposta d’exemple:

{
"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"
}
}

Assegureu-vos d’utilitzar la clau correcta per al vostre entorn (sandbox test_…, staging o producció) i d’enviar-la a X-B2B-API-Key.


2) 404 Not Found (El recurs no existeix o no és accessible)

Section titled “2) 404 Not Found (El recurs no existeix o no és accessible)”

Exemple de petició:

Finestra del 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'

Resposta d’exemple:

{
"error": "Not found"
}

3) 422 Unprocessable Entity (errors de validació)

Section titled “3) 422 Unprocessable Entity (errors de validació)”

Exemple de petició:

Finestra del 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'
'

Resposta d’exemple:

{
"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"
}
}

Els errors de validació retornen HTTP 422 (Unprocessable Entity) amb detalls d’errors a nivell de camp, de manera que podeu corregir l’entrada i tornar a enviar la petició si és necessari.


Cada resposta d’API registrada inclou la capçalera X-B2B-API-Request-Id amb l’identificador únic del log de la petició emmagatzemada. Podeu utilitzar aquest valor per:

  • Correlacionar una resposta amb la seva entrada de log del servidor.
  • Referenciar-lo en tiquets de suport per a una investigació més ràpida.
  • Incloure’l als vostres propis logs d’aplicació per a la traçabilitat d’extrem a extrem.

Les respostes d’error també inclouen un camp request_log_url al cos JSON que enllaça directament al log de la petició.


  • Autenticació: mantingueu claus separades per entorn i sempre envieu X-B2B-API-Key.
  • Limitació de velocitat: useu backoff exponencial, feu cache de les respostes i preferiu webhooks al polling sempre que sigui possible.
  • Vocabularis controlats: quan un valor ha de provenir d’un catàleg (per exemple, scheme), comproveu primer l’API/guia d’Esquemes.