İstek limitleri ve yeniden denemeler

Kimlik bilgisi başına dakikada 120 okuma, 30 yazma ve 10 ulusal e-fatura sistemi işlemi, X-RateLimit-* başlıklarıyla.

Kimlik bilgisi başına dakikada 120 okuma, 30 yazma ve 10 ulusal e-fatura sistemi işlemi, X-RateLimit-* başlıklarıyla.

← API dokümantasyonuna dön

6 adımda ilk fatura

  1. Sınırlar kimlik bilgisi başına, dakika başınadır: 120 okuma, 30 yazma, 10 ulusal e-fatura sistemi işlemi.
  2. Ulusal e-fatura sistemi kovası efactura/submit, submissions/{id}/refresh ve efactura/inbox/sync işlemlerini kapsar.
  3. 429 dahil her yanıt X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset taşır.
  4. 429 size saniye cinsinden Retry-After verir; yeniden denemeden önce o kadar bekleyin.

4invoices API'si nedir

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 uyun; 429 dışındaki 4xx hatalarını asla yeniden denemeyin.
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;
}

// Bir yazma yeniden denemesi AYNI Idempotency-Key'i kullanmak ZORUNDADIR, aksi hâlde
// ikinci bir mali belge kesersiniz.

https://api.4invoices.net/v1 · https://api.4invoices.net/v1/openapi.json

İstek limitleri

Bucketİstek / dakikaAnlamı
read120GET *, POST /invoices/preview-totals, POST /invoices/{id}/efactura/validate
write30POST /invoices, POST /invoices/{id}/storno, POST|DELETE /invoices/{id}/payments, POST /clients
submit10POST /invoices/{id}/efactura/submit, POST /efactura/submissions/{id}/refresh, POST /efactura/inbox/sync

Hatalar

DurumTipKod
429rate_limit_errorrate_limit_exceeded

Sık yapılan hatalar

  • Dakikada 10’luk kova keyfî değildir: Romanya’da ANAF, CIF başına dakikada yaklaşık bir mesaj listesi çağrısına izin verir.
  • Bir yazma işlemini yeniden denerken AYNI Idempotency-Key’i kullanın, aksi takdirde ikinci bir belge düzenlersiniz.
  • Token endpoint’inin IP başına ayrı bir sınırı vardır. Token’ı bir saatlik ömrünün tamamı boyunca önbellekte tutun.
  • GET /v1/me kimlik bilgisinin güncel kovalarını gösterir — bir entegrasyon sağlık kontrolünde kullanışlıdır.
  • Daha yüksek tavanlara mı ihtiyacınız var? Beklenen günlük hacminizle birlikte İletişim sayfası üzerinden bize yazın.

Geliştiriciler için soru ve cevaplar

Sınır hesap başına mı, kimlik bilgisi başına mı?

Kimlik bilgisi başına. Trafiği sistem başına ayrı kimlik bilgilerine bölmek, toplu bir içe aktarmanın mağazanızın canlı akışını aç bırakamayacağı anlamına gelir.

Hangi backoff’u öneriyorsunuz?

Varsa Retry-After’a uyun, yoksa en fazla 5 denemeyle 1–2 saniyeden başlayan üstel bir bekleme uygulayın. Sıkı döngü yok.

429 da X-RateLimit başlıklarını taşır mı?

Evet. Onları 429’un kendisinde de gönderiyoruz; bir istemcinin duraklamayı hesaplamak için tam da ihtiyaç duyduğu yer burasıdır.