Κωδικοί σφαλμάτων και ο φάκελος σφάλματος

Μία μορφή σε κάθε διαδρομή: type, code, message, param, doc_url, request_id και σφάλματα.

Μία μορφή σε κάθε διαδρομή: type, code, message, param, doc_url, request_id και σφάλματα.

← Επιστροφή στην τεκμηρίωση του API

Το πρώτο τιμολόγιο σε 6 βήματα

  1. Κάθε 4xx και 5xx επιστρέφει { "error": { type, code, message, param?, doc_url, request_id, σφάλματα? } }.
  2. Βασίστε τη διακλάδωση στο type για να αποφασίσετε αν έχει νόημα η επανάληψη, και αντιστοιχίστε το code στο δικό σας σύστημα.
  3. Το param δείχνει το προβληματικό πεδίο, π.χ. lines.0.vat_rate· το σφάλματα[] εμφανίζεται όταν είναι περισσότερα.
  4. Καταγράφετε το request_id σε κάθε σφάλμα — μας επιτρέπει να βρούμε το ακριβές αίτημα στα αρχεία καταγραφής μας.

Τι είναι το 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

Σφάλματα

ΚατάστασηΤύποςΚωδικός
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

Συχνά λάθη

  • Τα rate_limit_error και οι δύο τύποι Άπστριμ επιδέχονται επανάληψη. Τα authentication_error, permission_error και invalid_request_error δεν διορθώνονται με επανάληψη.
  • Ένα 404 επιστρέφεται επίσης για id που ανήκει σε άλλον tenant: δεν επιβεβαιώνουμε ποτέ ότι υπάρχουν δεδομένα κάποιου άλλου.
  • Το 409 idempotency_key_reuse σημαίνει ότι επαναχρησιμοποιήσατε ένα κλειδί με διαφορετικό σώμα. Μην το πιέσετε: ελέγξτε τι έχει ήδη εκδοθεί.
  • Το doc_url σε κάθε σφάλμα δείχνει απευθείας στην ενότητα σφαλμάτων αυτής της τεκμηρίωσης.
  • Τα μηνύματα είναι στα ρουμανικά επειδή το API εξυπηρετεί μια ρουμανική φορολογική ροή· μην αναλύετε το πεδίο message, βασίστε τη διακλάδωση στο code.

Ερωτήσεις και απαντήσεις για προγραμματιστές

Μπορώ να βασίζομαι στις τιμές του code μεταξύ εκδόσεων;

Ναι, το code είναι σταθερό και υπάρχει ακριβώς γι’ αυτό. Το message είναι κείμενο για ανθρώπους και μπορεί να αναδιατυπωθεί.

Τι πρέπει να κάνω σε 502 ή 503;

Επαναλάβετε με εκθετικό εκθετική καθυστέρηση. Πρόκειται για σφάλματα Άπστριμ ή προσωρινής μη διαθεσιμότητας, όχι για προβλήματα του αιτήματός σας.

Γιατί 422 και όχι 400 για μη έγκυρα δεδομένα;

Το 422 υποδηλώνει JSON συντακτικά σωστό αλλά σημασιολογικά μη έγκυρο — για παράδειγμα vat_rate ως κλάσμα. Το 400 προορίζεται για κακοσχηματισμένο αίτημα.