120 leximë, 30 shkrime dhe 10 operacione e-faturimi në minutë për kredencial, me header-at X-RateLimit-*.
← Kthehu te dokumentacioni i API-t
Fatura jote e parë në 6 hapa
- Kufijtë janë për kredencial, për minutë: 120 leximë, 30 shkrime, 10 operacione e-faturimi.
- Grupi i e-faturimit mbulon efactura/submit, submissions/{id}/refresh dhe efactura/inbox/sync.
- Çdo përgjigje mban X-RateLimit-Limit, X-RateLimit-Remaining dhe X-RateLimit-Reset, përfshirë 429.
- Një 429 të jep Retry-After në sekonda; prit kaq përpara se të riprovosh.
Çfarë është API e 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
// Respekto Retry-After; mos riprovo kurrë një 4xx tjetër përveç 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;
}
// Riprovimi i një shkrimi DUHET të ripërdorë të NJËJTIN Idempotency-Key, përndryshe lëshon
// një dokument të dytë fiskal.https://api.4invoices.net/v1 · https://api.4invoices.net/v1/openapi.json
Kufijtë e kërkesave
| Grupi | Kërkesa / minutë | Çfarë do të thotë |
|---|---|---|
| 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 |
Gabimet
| Statusi | Lloji | Kodi |
|---|---|---|
| 429 | rate_limit_error | rate_limit_exceeded |
Gabimet e zakonshme
- Grupi 10 për minutë s'është arbitrar: në Rumani vetë ANAF lejon afërsisht një thirrje listimi mesazhesh në minutë për CIF.
- Kur riprovon një shkrim, ripërdor të NJËJTIN Idempotency-Key, përndryshe lëshon një dokument të dytë.
- Pika fundore e tokenit ka një kufi të veçantë për IP. Ruaje tokenin në memorie të përkohshme për gjithë jetën e tij një orë.
- GET /v1/me tregon grupet aktuale të kredencialit — e dobishme në një kontroll shëndetësor të integrimit.
- Të duhen tavane më të larta? Na shkruaj nga faqja e Kontaktit me vëllimin tënd ditor të pritshëm.
Pyetje dhe përgjigje për zhvilluesit
A është kufiri për llogari apo për kredencial?
Për kredencial. Ndarja e trafikut në kredenciale për sistem do të thotë që një import masiv s'mund ta lërë pa burime rrjedhën e drejtpërdrejtë të dyqanit tënd.
Cilin backoff rekomandoni?
Respekto Retry-After kur ekziston; përndryshe eksponencial nga 1–2 sekonda, me të shumtën 5 përpjekje. Pa cikle të ngushta.
A mban 429 edhe header-at X-RateLimit?
Po. I dërgojmë vetë në 429, ku klienti i ka nevojë për të llogaritur pauzën.