120 αναγνώσεις, 30 εγγραφές και 10 λειτουργίες με το εθνικό σύστημα ηλεκτρονικής τιμολόγησης το λεπτό ανά διαπιστευτήριο, με κεφαλίδες X-RateLimit-*.
← Επιστροφή στην τεκμηρίωση του API
Το πρώτο τιμολόγιο σε 6 βήματα
- Τα όρια ισχύουν ανά σύνολο διαπιστευτηρίων, ανά λεπτό: 120 αναγνώσεις, 30 εγγραφές, 10 λειτουργίες με το εθνικό σύστημα ηλεκτρονικής τιμολόγησης.
- Ο κουβάς του εθνικού συστήματος ηλεκτρονικής τιμολόγησης καλύπτει τα efactura/submit, submissions/{id}/refresh και efactura/inbox/sync.
- Κάθε απόκριση περιέχει X-RateLimit-Limit, X-RateLimit-Remaining και X-RateLimit-Reset, συμπεριλαμβανομένου του 429.
- Ένα 429 σας δίνει Retry-After σε δευτερόλεπτα· περιμένετε τόσο πριν επαναλάβετε.
Τι είναι το API 4invoices
http
HTTP/2 429
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1785312000
Retry-After: 17
Content-Type: application/json
{"error":{"type":"rate_limit_error","code":"rate_limit_exceeded",
"message":"...","doc_url":"https://4invoices.net/ro/api-dezvoltatori#errors",
"request_id":"req_..."}}javascript
// Τηρείτε το Retry-After· μην επαναλαμβάνετε ποτέ 4xx εκτός του 429.
async function call(url, init, attempt = 0) {
const res = await fetch(url, init);
if (res.status === 429 || res.status >= 500) {
if (attempt >= 5) return res;
const retryAfter = Number(res.headers.get("Retry-After")) || 2 ** attempt;
await new Promise((r) => setTimeout(r, retryAfter * 1000));
return call(url, init, attempt + 1);
}
return res;
}
// Μια επανάληψη εγγραφής ΠΡΕΠΕΙ να επαναχρησιμοποιήσει το ΙΔΙΟ Idempotency-Key, αλλιώς εκδίδετε
// ένα δεύτερο φορολογικό παραστατικό.https://api.4invoices.net/v1 · https://api.4invoices.net/v1/openapi.json
Όρια αιτημάτων
| Bucket | Αιτήματα / λεπτό | Τι σημαίνει |
|---|---|---|
| read | 120 | GET *, POST /invoices/preview-totals, POST /invoices/{id}/efactura/validate |
| write | 30 | POST /invoices, POST /invoices/{id}/storno, POST|DELETE /invoices/{id}/payments, POST /clients |
| submit | 10 | POST /invoices/{id}/efactura/submit, POST /efactura/submissions/{id}/refresh, POST /efactura/inbox/sync |
Σφάλματα
| Κατάσταση | Τύπος | Κωδικός |
|---|---|---|
| 429 | rate_limit_error | rate_limit_exceeded |
Συχνά λάθη
- Ο κουβάς των 10 ανά λεπτό δεν είναι αυθαίρετος: στη Ρουμανία η ANAF επιτρέπει περίπου μία κλήση λίστας μηνυμάτων ανά λεπτό ανά CIF.
- Όταν επαναλαμβάνετε μια εγγραφή, χρησιμοποιήστε το ΙΔΙΟ Idempotency-Key, αλλιώς εκδίδετε δεύτερο παραστατικό.
- Το τόκεν Ένδποιντ έχει ξεχωριστό όριο ανά IP. Κρατήστε το τόκεν στην κρυφή μνήμη για ολόκληρη τη μίας ώρας διάρκεια ζωής του.
- Το GET /v1/me δείχνει τους τρέχοντες κουβάδες των διαπιστευτηρίων — χρήσιμο σε έλεγχο υγείας της ενσωμάτωσης.
- Χρειάζεστε υψηλότερα όρια; Γράψτε μας μέσω της σελίδας Επικοινωνία, αναφέροντας τον αναμενόμενο ημερήσιο όγκο.
Ερωτήσεις και απαντήσεις για προγραμματιστές
Το όριο ισχύει ανά λογαριασμό ή ανά διαπιστευτήρια;
Ανά διαπιστευτήρια. Ο διαχωρισμός της κίνησης σε διαπιστευτήρια ανά σύστημα σημαίνει ότι μια μαζική εισαγωγή δεν μπορεί να στερήσει πόρους από τη ζωντανή ροή του καταστήματός σας.
Ποιο εκθετική καθυστέρηση προτείνετε;
Τηρήστε το Retry-After όταν υπάρχει, διαφορετικά εκθετικό από 1–2 δευτερόλεπτα με το πολύ 5 απόπειρες. Χωρίς σφιχτούς βρόχους.
Περιέχει και το 429 τις κεφαλίδες X-RateLimit;
Ναι. Τις εκπέμπουμε στο ίδιο το 429, που είναι ακριβώς εκεί όπου ένας πελάτης τις χρειάζεται για να υπολογίσει την παύση.