Kode error dan amplop error

Satu bentuk di setiap rute: type, code, message, param, doc_url, request_id, dan errors.

Satu bentuk di setiap rute: type, code, message, param, doc_url, request_id, dan errors.

← Kembali ke dokumentasi API

Faktur pertama Anda dalam 6 langkah

  1. Setiap 4xx dan 5xx mengembalikan { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
  2. Cabangkan berdasarkan type untuk memutuskan apakah percobaan ulang masuk akal, dan petakan code ke sistem Anda sendiri.
  3. param menunjuk ke field yang bermasalah, misalnya lines.0.vat_rate; errors[] muncul jika ada beberapa.
  4. Catat request_id di setiap kesalahan — dengan itu kami dapat menemukan permintaan tepat di log kami.

Apa itu API 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

Error

StatusTipeKode
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

Kesalahan umum

  • rate_limit_error dan dua tipe upstream dapat dicoba ulang. authentication_error, permission_error, dan invalid_request_error tidak diperbaiki dengan mencoba ulang.
  • 404 juga dikembalikan untuk id yang milik tenant lain: kami tidak pernah mengonfirmasi bahwa data orang lain ada.
  • 409 idempotency_key_reuse berarti Anda memakai ulang kunci dengan isi yang berbeda. Jangan memaksanya: periksa apa yang sudah diterbitkan.
  • doc_url di setiap error langsung menunjuk ke bagian error dalam dokumentasi ini.
  • Pesan berbahasa Rumania karena API melayani alur fiskal Rumania; jangan mengurai message, cabangkan berdasarkan code.

Tanya jawab untuk pengembang

Bisakah saya mengandalkan nilai code di berbagai versi?

Bisa, code stabil dan memang ada untuk itu. message adalah teks untuk manusia dan dapat diubah redaksinya.

Apa yang harus saya lakukan saat mendapat 502 atau 503?

Coba lagi dengan backoff eksponensial. Itu adalah error upstream atau ketersediaan sementara, bukan masalah pada permintaan Anda.

Mengapa 422 dan bukan 400 untuk data yang tidak valid?

422 menandai JSON yang berbentuk benar tetapi tidak valid secara semantik — misalnya vat_rate sebagai pecahan. 400 disediakan untuk permintaan yang rusak formatnya.