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 diferentEnvia la clau a la capçalera X-B2B-API-Key i assegura’t que coincideix amb l’entorn (sandbox, staging o producció).
missing_api_key401Aquesta clau d’API no s’ha proporcionat a la capçaleraEnvia la clau a la capçalera X-B2B-API-Key i assegura’t que coincideix amb l’entorn (sandbox, staging o producció).
invalid_api_key401La clau d’API proporcionada no és vàlidaEnvia una clau vàlida a la capçalera X-B2B-API-Key i assegura’t que coincideix amb l’entorn (sandbox, staging o producció).
expired_api_key401La clau d’API proporcionada ha caducatEnvia una clau vàlida i activa a la capçalera X-B2B-API-Key
no_account_group403Clau vàlida però sense grup/permisos vinculatsDemana 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 teu tenantRevisa l’endpoint i l’ID que estàs enviant.
invalid_request_params400JSON mal format, tipus incorrectes o estructura inesperadaValida el payload abans d’enviar-lo.
invalid_api_version ¹400La versió d’API {api_version} no és compatibleValida el payload abans d’enviar-lo.
missing_api_version ¹400La versió de l’API no s’especifica ni a la capçalera ni al IntegrationGroupValida 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’APICanvia el subdomini a un de correcte. Usa app.b2brouter o app-staging.b2brouter per a la versió legacy (v2025-01-01). Usa api.b2brouter o api-staging.b2brouter per a totes les versions des de v2025-10-13.
parameter_blank, parameter_empty422Camps requerits absents/en blancOmple els camps requerits i torna a enviar.
parameter_inclusion422El valor no es troba al catàleg permès (per exemple, un scheme no vàlid)Comprova els valors permesos (consulta la Guia d’Esquemes / llistes) i corregeix.
parameter_taken422Un valor únic ja existeix (per exemple, número de factura)Usa un valor nou o fes un GET primer per evitar duplicats.
parameter_cannot_change422Intent d’editar un camp immutableElimina el camp de l’actualització o crea un nou recurs.
conflict409L’estat actual del recurs rebutja l’operacióResol el conflicte d’estat i torna a intentar-ho.
(sense codi)429Has superat el límit de velocitatImplementa backoff exponencial, fes cache i prefereix 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"
}
}

Assegura’t d’utilitzar la clau correcta per al teu 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 pots 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. Pots 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 teus 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ó: mantén claus separades per entorn i sempre envia X-B2B-API-Key.
  • Limitació de velocitat: usa backoff exponencial, fes cache de les respostes i prefereix webhooks al polling sempre que sigui possible.
  • Vocabularis controlats: quan un valor ha de provenir d’un catàleg (per exemple, scheme), comprova primer l’API/guia d’Esquemes.