Hər kredensial üçün dəqiqədə 120 oxu, 30 yazı və 10 elektron qaimə əməliyyatı, X-RateLimit-* başlıqları ilə.
6 addımda ilk fakturanız
- Limitlər hər kredensial üçün, hər dəqiqə: 120 oxu, 30 yazı, 10 elektron qaimə əməliyyatı.
- Elektron qaimə qrupu efactura/submit, submissions/{id}/refresh və efactura/inbox/sync-i əhatə edir.
- Hər cavabda X-RateLimit-Limit, X-RateLimit-Remaining və X-RateLimit-Reset var, 429 daxil olmaqla.
- 429 sizə saniyələrlə Retry-After verir; təkrar cəhddən əvvəl həmin müddət gözləyin.
4invoices API nədir
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-a əməl edin; 429-dan başqa 4xx-i heç vaxt təkrar cəhd etməyin.
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;
}
// Yazının təkrar cəhdi MƏCBURƏN eyni Idempotency-Key-dən istifadə etməlidir, əks halda verirsiniz
// ikinci fiskal sənədi.https://api.4invoices.net/v1 · https://api.4invoices.net/v1/openapi.json
Sorğu limitləri
| Qrup | Sorğu / dəqiqə | Nəyi bildirir |
|---|---|---|
| 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 |
Xətalar
| Status | Növ | Kod |
|---|---|---|
| 429 | rate_limit_error | rate_limit_exceeded |
Ümumi səhvlər
- Dəqiqədə 10 qrupu təsadüfi deyil: Rumıniyada ANAF özü hər CIF üçün dəqiqədə təxminən bir mesaj siyahısı çağırışına icazə verir.
- Yazını təkrar cəhd edəndə EYNİ Idempotency-Key-dən istifadə edin, əks halda ikinci sənəd yaradırsınız.
- Token son nöqtəsinin ayrıca IP limiti var. Tokeni bir saatlıq ömrü boyunca keşdə saxlayın.
- GET /v1/me kredensialın cari qruplarını göstərir — inteqrasiyanın sağlamlıq yoxlamasında faydalıdır.
- Daha yüksək limit lazımdır? Gözlənilən gündəlik həcminizlə Əlaqə səhifəsindən bizə yazın.
İnkişafçılar üçün suallar və cavablar
Limit hesab üzrədir, yoxsa kredensial üzrə?
Kredensial üzrə. Trafiki sistem üzrə kredensiallara bölmək o deməkdir ki, kütləvi idxal mağazanızın canlı axınını aclıqdan öldürə bilməz.
Hansı backoff tövsiyə edirsiniz?
Retry-After olduqda ona əməl edin; əks halda 1–2 saniyədən başlayaraq eksponensial, ən çox 5 cəhd. Sıx dövrələr olmadan.
429 də X-RateLimit başlıqları daşıyırmı?
Bəli. Onları 429-un özündə göndəririk — məhz müştərinin fasiləni hesablamaq üçün ehtiyac duyduğu yerdə.