Foutcodes en de foutenvelop

Eén vorm op elke route: type, code, message, param, doc_url, request_id en errors.

Eén vorm op elke route: type, code, message, param, doc_url, request_id en errors.

← Terug naar de API-documentatie

Je eerste factuur in 6 stappen

  1. Elke 4xx en 5xx geeft { "error": { type, code, message, param?, doc_url, request_id, errors? } } terug.
  2. Vertak op type om te bepalen of opnieuw proberen zin heeft, en map code in uw eigen systeem.
  3. param wijst naar het foutieve veld, bijv. lines.0.vat_rate; errors[] verschijnt wanneer er meerdere zijn.
  4. Registreer request_id bij elke fout — daarmee vinden we het exacte verzoek in onze logboeken.

Wat de 4invoices-API is

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

Fouten

StatusTypeCode
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

Veelgemaakte fouten

  • rate_limit_error en de twee upstream-typen mogen opnieuw worden geprobeerd. authentication_error, permission_error en invalid_request_error worden niet opgelost door opnieuw te proberen.
  • Ook voor een id die bij een andere tenant hoort, wordt een 404 teruggegeven: we bevestigen nooit dat gegevens van iemand anders bestaan.
  • 409 idempotency_key_reuse betekent dat u een sleutel hebt hergebruikt met een andere body. Forceer het niet: controleer wat al is uitgegeven.
  • De doc_url in elke fout verwijst rechtstreeks naar het foutenhoofdstuk van deze documentatie.
  • Berichten zijn in het Roemeens omdat de API een Roemeense fiscale flow bedient; parse message niet, maar vertak op code.

Vragen en antwoorden voor ontwikkelaars

Kan ik over versies heen op code-waarden vertrouwen?

Ja, code is stabiel en bestaat precies daarvoor. message is tekst voor mensen en kan worden geherformuleerd.

Wat moet ik doen bij een 502 of 503?

Probeer het opnieuw met exponentiële backoff. Dat zijn upstream-fouten of fouten door tijdelijke onbeschikbaarheid, geen problemen met uw request.

Waarom 422 en niet 400 voor ongeldige gegevens?

422 staat voor JSON die goed gevormd maar semantisch ongeldig is — bijvoorbeeld vat_rate als breuk. 400 is voorbehouden aan een misvormd request.