Kufijtë e kërkesave dhe riprovimet

120 leximë, 30 shkrime dhe 10 operacione e-faturimi në minutë për kredencial, me header-at X-RateLimit-*.

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

  1. Kufijtë janë për kredencial, për minutë: 120 leximë, 30 shkrime, 10 operacione e-faturimi.
  2. Grupi i e-faturimit mbulon efactura/submit, submissions/{id}/refresh dhe efactura/inbox/sync.
  3. Çdo përgjigje mban X-RateLimit-Limit, X-RateLimit-Remaining dhe X-RateLimit-Reset, përfshirë 429.
  4. 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

GrupiKërkesa / minutëÇfarë do të thotë
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

Gabimet

StatusiLlojiKodi
429rate_limit_errorrate_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.