Chybové kódy

Všetky chyby majú jednotný tvar JSON s machine-readable code, ľudsky čitateľnou message a voliteľnými details (napr. validačné chyby polí).

Tvar chyby

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Neplatné vstupné údaje",
    "details": [
      { "field": "items", "message": "Musí obsahovať aspoň jednu položku" }
    ]
  }
}

Referencia kódov

HTTPKódVýznam / riešenie
400VALIDATION_ERRORNeplatný vstup. Pozrite details na úroveň poľa.
401UNAUTHORIZEDChýbajúci/neplatný X-API-Key alebo expirovaná session.
403FORBIDDENKľúč nemá prístup k danej organizácii alebo operácii.
403PLAN_LIMIT_REACHEDDosiahnutý limit plánu (napr. počet kľúčov).
403PLAN_FEATURE_UNAVAILABLEFunkcia nie je v aktuálnom pláne.
404NOT_FOUNDZdroj neexistuje alebo k nemu nemáte prístup.
409CONFLICTKonflikt (napr. duplicitné číslo faktúry).
409PARTNER_CLAIM_COLLISIONpeppol-claim/confirm: pre to isté IČO existuje ďalšia reálna org — firmu nemožno automaticky priradiť. Kontaktujte podporu.
429RATE_LIMITEDPrekročený rate limit — rešpektujte Retry-After.
402INSUFFICIENT_CREDITNedostatok Peppol kreditu pri live odoslaní (POST /agent/peppol/send/*). Doplňte kredit.
402SEAT_PAYMENT_FAILEDPlatba za navýšenie zlyhala.
500INTERNAL_ERRORChyba na strane servera — skúste neskôr / kontaktujte podporu.
Dva endpointy vracajú neštandardný tvar (nie obálku { "error": { … } }):
  • POST /agent/peppol/send/* pri nedostatku kreditu vráti 402 s plochým telom { "error": "INSUFFICIENT_CREDIT", "message": "…" } — tu je error reťazec, nie objekt.
  • POST /agent/organizations/{id}/peppol-claim vracia stav priamo: { "organization_id": "…", "status": "…", "reason": "…" } (napr. status: "collision" s reason: "real_org_exists_for_ico"), nie v obálke error.

Odporúčania

Pri 4xx chybu neopakujte bez úpravy požiadavky. Pri 429 a 5xx použite exponenciálny backoff. Pri vystavovaní faktúr odporúčame ukladať siid vytvoreného dokladu, aby ste predišli duplicitám pri opakovaní.