SAPI-SK — chybové kódy

Všetky chyby na /sapi majú jednotnú obálku so štruktúrovaným objektom error: strojovo čitateľný code a category, explicitný príznak retryable a correlation_id na dohľadanie v logoch a podpore.

Tvar chyby

{
  "error": {
    "category": "VALIDATION",
    "code": "SAPI-VAL-001",
    "message": "Invalid send request",
    "details": [
      { "field": "metadata.documentId", "issue": "Required" }
    ],
    "retryable": false,
    "correlation_id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

Pole details je voliteľné (napr. validácia na úrovni poľa). category nadobúda hodnoty AUTH, VALIDATION, PROCESSING, TEMPORARY a PERMANENT.

Katalóg kódov

HTTPKódKategóriaRetryableVýznam
401SAPI-AUTH-001AUTHnieNeplatné prihlasovacie údaje klienta.
401SAPI-AUTH-002AUTHnieAccess token je neplatný alebo expirovaný.
403SAPI-AUTH-003AUTHnieKlient nemá prístup k danej organizácii / Peppol účastníkovi.
403SAPI-AUTH-004AUTHnieIP adresa nie je na allowliste klienta.
423SAPI-AUTH-005AUTHánoKlient dočasne zamknutý po 5 neúspešných pokusoch (15 min).
400SAPI-VAL-001VALIDATIONnieChybná požiadavka — zlý JSON, chýbajúce pole alebo povinná hlavička (Idempotency-Key, X-Peppol-Participant-Id).
400SAPI-VAL-002VALIDATIONnieX-Peppol-Participant-Id sa nezhoduje s metadata.senderParticipantId.
400SAPI-VAL-003VALIDATIONnieSHA-256 checksum sa nezhoduje s payloadom.
400SAPI-VAL-004VALIDATIONniePayload prekračuje limit 10 MB.
400SAPI-VAL-005VALIDATIONnieDokument neprešiel Peppol validáciou, alebo číslo koliduje s natívne vystavenou faktúrou (nič sa neodoslalo).
404SAPI-VAL-006VALIDATIONnieDokument neexistuje alebo k nemu nemáte prístup.
409SAPI-PROC-001PROCESSINGnieIdempotency-Key už bol použitý s iným telom požiadavky.
422SAPI-PROC-002PERMANENTnieNedostatok kreditu na odoslanie.
500SAPI-PROC-003PROCESSINGnieInterná chyba pri spracovaní.
429SAPI-TMP-001TEMPORARYánoPrekročený rate limit — rešpektujte Retry-After.
502SAPI-TMP-002TEMPORARYánoPeppol sieť dočasne nedostupná — opakujte s exponenciálnym backoffom.
Retry robte iba pri retryable: true (kategórie TEMPORARY a zamknutie SAPI-AUTH-005) a vždy s exponenciálnym backoffom. Pri 429 rešpektujte hlavičku Retry-After.

Odporúčania

Chyby 4xx (okrem 429 a zamknutia 423) neopakujte bez úpravy požiadavky — pole retryable je false. Pri 423 počkajte 15 minút a zopakujte tú istú požiadavku. Pri odosielaní si ukladajte providerDocumentId a používajte stabilný Idempotency-Key, aby ste pri opakovaní predišli duplicitám. correlation_id priložte pri kontakte s podporou.