Codis d'error i el sobre d'error

Una sola forma a totes les rutes: type, code, message, param, doc_url, request_id i errors.

Una sola forma a totes les rutes: type, code, message, param, doc_url, request_id i errors.

← Torna a la documentació de l'API

La teva primera factura en 6 passos

  1. Cada 4xx i 5xx retorna { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
  2. Decideix segons type si té sentit reintentar, i mapeja code al teu propi sistema.
  3. param apunta al camp que falla, p. ex. lines.0.vat_rate; errors[] apareix quan n'hi ha diversos.
  4. Registra request_id a cada error — ens permet trobar la petició exacta als nostres registres.

Què és l'API de 4invoices

json
{
  "error": {
    "type": "invalid_request_error",
    "code": "validation_failed",
    "message": "Datele trimise nu sunt valide.",
    "param": "lines.0.vat_rate",
    "doc_url": "https://4invoices.net/ro/api-dezvoltatori#errors",
    "request_id": "req_8a893f2f33d4472da8d6e144",
    "errors": [
      { "param": "lines.0.vat_rate", "message": "VAT rate must be a percent (21), not a fraction", "type": "value_error" }
    ]
  }
}

https://api.4invoices.net/v1 · https://api.4invoices.net/v1/openapi.json

Errors

EstatTipusCodi
401authentication_errormissing_bearer_token
401authentication_errorunauthorized
403permission_errorforbidden
404not_found_errornot_found
409conflict_erroridempotency_key_reuse
409conflict_erroridempotency_in_progress
422invalid_request_errorvalidation_failed
422invalid_request_errorinvalid_json_number
502upstream_errorupstream_error
503service_unavailable_errorservice_unavailable

Errors habituals

  • rate_limit_error i els dos tipus upstream es poden reintentar. authentication_error, permission_error i invalid_request_error no es corregeixen reintentant.
  • També es retorna un 404 per a un id que pertany a un altre client: mai no confirmem que existeixen dades d'un altre.
  • 409 idempotency_key_reuse vol dir que has reutilitzat una clau amb un cos diferent. No ho forcis: revisa què s'ha emès ja.
  • El doc_url de cada error apunta directament a la secció d'errors d'aquesta documentació.
  • Els missatges són en romanès perquè l'API serveix un flux fiscal romanès; no analitzis message, decideix segons code.

Preguntes i respostes per a desenvolupadors

Puc fiar-me dels valors de code entre versions?

Sí, code és estable i existeix precisament per això. message és text per a humans i es pot reformular.

Què he de fer davant d'un 502 o un 503?

Reintenta amb backoff exponencial. Són errors upstream o de disponibilitat temporal, no problemes de la teva petició.

Per què 422 i no 400 per a dades no vàlides?

422 marca un JSON ben format però semànticament no vàlid — per exemple, vat_rate com a fracció. El 400 es reserva per a una petició malformada.