Hitelesítő adatonként percenként 120 olvasás, 30 írás és 10 e-számlázási művelet, X-RateLimit-* fejlécekkel.
← Vissza az API dokumentációhoz
Az első számla 6 lépésben
- A korlátok hitelesítő adatonként és percenként értendők: 120 olvasás, 30 írás, 10 e-számlázási művelet.
- Az e-számlázási műveletek kerete az efactura/submit, a submissions/{id}/refresh és az efactura/inbox/sync hívásokra vonatkozik.
- Minden válasz tartalmazza az X-RateLimit-Limit, X-RateLimit-Remaining és X-RateLimit-Reset fejléceket, a 429-et is beleértve.
- A 429 Retry-After értéket ad másodpercben; ennyit várjon az újrapróbálás előtt.
Mi a 4invoices API
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
// Tartsa be a Retry-After értéket; a 429-en kívüli 4xx hibát soha ne ismételje meg.
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;
}
// Egy írási újrapróbálkozásnál UGYANAZT az Idempotency-Key-t KELL használni, különben kiállít
// egy második fiskális bizonylatot.https://api.4invoices.net/v1 · https://api.4invoices.net/v1/openapi.json
Kéréslimitek
| Bucket | Kérés / perc | Jelentése |
|---|---|---|
| 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 |
Hibák
| Státusz | Típus | Kód |
|---|---|---|
| 429 | rate_limit_error | rate_limit_exceeded |
Gyakori hibák
- A percenkénti 10-es keret nem önkényes: Romániában maga az ANAF is nagyjából percenként egy üzenetlista-hívást enged CIF-enként.
- Írás újrapróbálásakor UGYANAZT az Idempotency-Key kulcsot használja, különben második bizonylatot állít ki.
- A token-végpontnak külön, IP-címenkénti korlátja van. Gyorsítótárazza a tokent a teljes, egyórás élettartama alatt.
- A GET /v1/me megmutatja a hitelesítő adat aktuális kereteit — hasznos egy integrációs állapotellenőrzésben.
- Magasabb korlátokra van szüksége? Írjon nekünk a Kapcsolat oldalon keresztül, megadva a várható napi volument.
Kérdések és válaszok fejlesztőknek
A korlát fiókonként vagy hitelesítő adatonként érvényes?
Hitelesítő adatonként. Ha a forgalmat rendszerenkénti hitelesítő adatok között osztja meg, egy tömeges import nem tudja kiéheztetni a webshop élő forgalmát.
Milyen backoffot javasolnak?
Ha jelen van, tartsa be a Retry-After értéket, egyébként exponenciálisan, 1–2 másodpercről indulva, legfeljebb 5 próbálkozással. Szoros ciklusok nélkül.
A 429 is tartalmazza az X-RateLimit fejléceket?
Igen. Magában a 429-es válaszban is küldjük őket, pontosan ott, ahol a kliensnek szüksége van rájuk a szünet kiszámításához.