120 läsningar, 30 skrivningar och 10 operationer mot det nationella e-fakturasystemet per minut per uppgift, med X-RateLimit-*-headers.
← Tillbaka till API-dokumentationen
Din första faktura i 6 steg
- Gränserna gäller per uppgift, per minut: 120 läsningar, 30 skrivningar, 10 operationer mot det nationella e-fakturasystemet.
- Gruppen för det nationella e-fakturasystemet omfattar efactura/submit, submissions/{id}/refresh och efactura/inbox/sync.
- Varje svar bär X-RateLimit-Limit, X-RateLimit-Remaining och X-RateLimit-Reset, även 429.
- Ett 429 ger dig Retry-After i sekunder; vänta så länge innan du försöker igen.
Vad 4invoices API är
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
// Respektera Retry-After; försök aldrig igen vid ett 4xx annat än 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;
}
// Ett återförsök av en skrivning MÅSTE använda SAMMA Idempotency-Key, annars utfärdar du
// ett andra fiskalt dokument.https://api.4invoices.net/v1 · https://api.4invoices.net/v1/openapi.json
Hastighetsgränser
| Gruppgräns | Förfrågningar / minut | Betydelse |
|---|---|---|
| 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 |
Fel
| Status | Typ | Kod |
|---|---|---|
| 429 | rate_limit_error | rate_limit_exceeded |
Vanliga misstag
- Gruppen på 10 per minut är inte godtycklig: ANAF i Rumänien tillåter själv ungefär ett anrop för meddelandelistan per minut per CIF.
- Vid återförsök av en skrivning ska du använda SAMMA Idempotency-Key, annars utfärdar du ett andra dokument.
- Token-slutpunkten har en separat gräns per IP. Cachelagra token under hela dess timmes livslängd.
- GET /v1/me visar uppgiftens aktuella hastighetsgrupper — användbart i en hälsokontroll av integrationen.
- Behöver du högre tak? Skriv till oss via kontaktsidan med din förväntade dagliga volym.
Frågor och svar för utvecklare
Är gränsen per konto eller per uppgift?
Per uppgift. Om du delar upp trafiken på uppgifter per system kan en massimport inte svälta din butiks livetrafik.
Vilken backoff rekommenderar ni?
Respektera Retry-After när den finns; annars exponentiellt från 1–2 sekunder med högst 5 försök. Inga täta loopar.
Bär även 429 X-RateLimit-headers?
Ja. Vi skickar dem på själva 429:an, och det är exakt där en klient behöver dem för att räkna ut pausen.