Ako postupovať
- Vetvenie programu založte na stave HTTP a error.code, nie na texte error.message.
- Stav 401 vyžaduje platné overenie; 403 zmenu prístupu alebo plánu; 409 kontrolu konfliktnej operácie alebo verzie zdroja.
Odmietnutý prístup a opakovanie
- 401
- 401 neznamená vždy vypršanie tokenu. Ak vypršal, získajte nový a čítanie zopakujte najviac raz. Ak získanie tokenu vráti 401, skontrolujte kľúč a zastavte automatické pokusy.
- 403
- Pri 403 skontrolujte oprávnenia, obmedzenia IP a plán. Nový token neobnoví odobratý prístup.
Pravidlá opakovania
- Pri dočasných chybách používajte obmedzený počet opakovaní s predlžovaním oneskorenia a náhodným rozptylom.
- Ak odpoveď obsahuje Retry-After, rešpektujte ho.
- Pri vypršaní časového limitu zápisu nemusí byť výsledok známy: pri opakovaní rovnakej logickej operácie zachovajte Idempotency-Key aj nezmenenú požiadavku.
- Nasledujúci katalóg vysvetľuje všetky zverejnené kódy chýb.
422 / 409
- Pri cenách vracia neplatný formát meny alebo presnosť sumy chybu 422 request.validation_failed.
- Platný kód meny, ktorý nezodpovedá vybranému cenníku, vracia 409 resource.version_conflict.
- Pred opakovaním skontrolujte kontext a verzie.
Katalóg chýb
400request.malformedPožiadavku nemožno spracovať pre nesprávnu syntax.
- Ako postupovať
- Skontrolujte syntax JSON, kódovanie URL a štruktúru požiadavky.
- Pravidlá opakovania
- Opakujte po oprave požiadavky.
{
"error": {
"code": "request.malformed",
"fields": null,
"message": "The request could not be read."
},
"meta": {
"request_id": "example-request"
}
}
401authentication.invalid_credentialsKľúč API alebo prístupový token je neplatný, vypršal alebo bol odvolaný.
- Ako postupovať
- Skontrolujte URL obchodu a prístupový údaj. Pomocou aktívneho kľúča API získajte nový token.
- Pravidlá opakovania
- Opakujte až po oprave overenia; neposielajte opakovane požiadavky s neplatným tokenom.
{
"error": {
"code": "authentication.invalid_credentials",
"fields": null,
"message": "The credentials are invalid."
},
"meta": {
"request_id": "example-request"
}
}
401authentication.requiredChýba požadovaná hlavička Authorization alebo používa nesprávny spôsob overenia.
- Ako postupovať
- Pri získavaní tokenu použite ApiKey a pri operáciách so zdrojmi Bearer.
- Pravidlá opakovania
- Opakujte po doplnení správnej hlavičky.
{
"error": {
"code": "authentication.required",
"fields": null,
"message": "Authentication is required."
},
"meta": {
"request_id": "example-request"
}
}
403authorization.client_ip_unverifiedSlužba nedokázala spoľahlivo určiť IP adresu klienta.
- Ako postupovať
- Požiadajte prevádzkovateľa obchodu o kontrolu vstupnej sieťovej cesty. Hlavičky odovzdávania adries nevkladajte sami.
- Pravidlá opakovania
- Opakujte po obnovení dôveryhodnej cesty pripojenia.
{
"error": {
"code": "authorization.client_ip_unverified",
"fields": null,
"message": "The client IP address could not be verified."
},
"meta": {
"request_id": "example-request"
}
}
403authorization.ip_not_allowedZdrojová IP adresa nie je v zozname adries povolených pre tento kľúč.
- Ako postupovať
- Použite schválenú zdrojovú adresu alebo požiadajte oprávneného správcu o úpravu zoznamu IP adries kľúča.
- Pravidlá opakovania
- Opakujte až po povolení adresy.
{
"error": {
"code": "authorization.ip_not_allowed",
"fields": null,
"message": "Access from this IP address is not allowed."
},
"meta": {
"request_id": "example-request"
}
}
403authorization.scope_deniedKľúč nemá účinné oprávnenie vyžadované pre túto operáciu.
- Ako postupovať
- Skontrolujte požadované a podmienené oprávnenia operácie, oprávnenia kľúča a prístup jeho vydavateľa.
- Pravidlá opakovania
- Opakujte, keď oprávnený správca udelí potrebný prístup.
{
"error": {
"code": "authorization.scope_denied",
"fields": null,
"message": "The required permission has not been granted."
},
"meta": {
"request_id": "example-request"
}
}
403entitlements.api_disabledPrístup k API je pre tento obchod vypnutý.
- Ako postupovať
- Požiadajte vlastníka obchodu o kontrolu aktívneho plánu a dostupnosti API.
- Pravidlá opakovania
- Neopakujte, kým nebude prístup k API zapnutý.
{
"error": {
"code": "entitlements.api_disabled",
"fields": null,
"message": "API access is disabled for this store."
},
"meta": {
"request_id": "example-request"
}
}
403entitlements.limit_exceededZmena by prekročila limit aktuálneho plánu.
- Ako postupovať
- Skontrolujte príslušný limit zdroja a upravte zamýšľanú zmenu alebo plán.
- Pravidlá opakovania
- Opakujte po vyriešení limitu; pri zmene požiadavky použite nový kľúč idempotencie.
{
"error": {
"code": "entitlements.limit_exceeded",
"fields": null,
"message": "The operation exceeds a plan limit."
},
"meta": {
"request_id": "example-request"
}
}
403entitlements.operation_disabledAktuálny plán túto operáciu nezahŕňa.
- Ako postupovať
- Skontrolujte minimálny plán uvedený pri operácii.
- Pravidlá opakovania
- Opakujte, keď plán operáciu umožní a kľúč získa potrebné oprávnenia.
{
"error": {
"code": "entitlements.operation_disabled",
"fields": null,
"message": "The current plan does not allow this operation."
},
"meta": {
"request_id": "example-request"
}
}
403entitlements.resource_blockedTento konkrétny zdroj blokuje limit plánu.
- Ako postupovať
- Požiadajte vlastníka o vyriešenie obmedzenia zdroja vyplývajúceho z plánu.
- Pravidlá opakovania
- Rovnakú požiadavku neopakujte, kým zdroj zostáva blokovaný.
{
"error": {
"code": "entitlements.resource_blocked",
"fields": null,
"message": "A plan limit blocks access to this resource."
},
"meta": {
"request_id": "example-request"
}
}
404resource.not_foundZdroj chýba, bol zmazaný alebo nie je dostupný pod zadaným identifikátorom.
- Ako postupovať
- Skontrolujte obchod, cestu zdroja a identifikátor. Používajte identifikátory vrátené týmto obchodom.
- Pravidlá opakovania
- Opakujte až po oprave cieľa alebo overení jeho existencie.
{
"error": {
"code": "resource.not_found",
"fields": null,
"message": "The resource was not found."
},
"meta": {
"request_id": "example-request"
}
}
405request.method_not_allowedKoncový bod nepodporuje túto metódu HTTP.
- Ako postupovať
- Použite dokumentovanú metódu; hlavička Allow uvádza podporované metódy.
- Pravidlá opakovania
- Nepodporovanú metódu neopakujte.
{
"error": {
"code": "request.method_not_allowed",
"fields": null,
"message": "This method is not supported for this resource."
},
"meta": {
"request_id": "example-request"
}
}
409idempotency.key_reusedTento kľúč idempotencie patrí inej požiadavke.
- Ako postupovať
- Vyhľadajte pôvodnú operáciu. Nový kľúč použite iba pre zámerne novú logickú operáciu.
- Pravidlá opakovania
- Neopakujte zmenený obsah požiadavky s konfliktným kľúčom.
{
"error": {
"code": "idempotency.key_reused",
"fields": null,
"message": "This idempotency key was used with a different request."
},
"meta": {
"request_id": "example-request"
}
}
409resource.already_existsJedinečná hodnota je v konflikte s existujúcim zdrojom.
- Ako postupovať
- Načítajte existujúci zdroj a rozhodnite, či ho použiť alebo zvoliť inú jedinečnú hodnotu.
- Pravidlá opakovania
- Neopakujte rovnaké konfliktné vytvorenie.
{
"error": {
"code": "resource.already_exists",
"fields": null,
"message": "A resource with these unique values already exists."
},
"meta": {
"request_id": "example-request"
}
}
409resource.in_useOd tohto zdroja stále závisia iné zdroje.
- Ako postupovať
- Skontrolujte závislosti a pred zmazaním ich odstráňte alebo zmeňte pomocou podporovaných operácií.
- Pravidlá opakovania
- Opakujte po vyriešení závislostí.
{
"error": {
"code": "resource.in_use",
"fields": null,
"message": "The resource is still in use."
},
"meta": {
"request_id": "example-request"
}
}
409resource.state_conflictAktuálny obchodný stav túto zmenu neumožňuje.
- Ako postupovať
- Načítajte aktuálny stav a vyberte platný prechod medzi stavmi.
- Pravidlá opakovania
- Konfliktnú zmenu automaticky nevynucujte ani opakovane neodosielajte.
{
"error": {
"code": "resource.state_conflict",
"fields": null,
"message": "The current resource state does not allow this operation."
},
"meta": {
"request_id": "example-request"
}
}
409resource.version_conflictPo načítaní vašej verzie zdroj zmenil iný zápis.
- Ako postupovať
- Načítajte najnovší stav, zosúlaďte s ním svoju zmenu a odošlite novú expected_version.
- Pravidlá opakovania
- Pre upravenú operáciu použite nový kľúč idempotencie; údaje slepo neprepisujte.
{
"error": {
"code": "resource.version_conflict",
"fields": null,
"message": "The resource version has changed."
},
"meta": {
"request_id": "example-request"
}
}
413request.too_largePožiadavka prekračuje limit veľkosti.
- Ako postupovať
- Zmenšite obsah alebo rozdeľte prácu na podporované samostatné operácie.
- Pravidlá opakovania
- Opakujte menšie platné operácie s ich vlastnými kľúčmi idempotencie.
{
"error": {
"code": "request.too_large",
"fields": null,
"message": "The request exceeds the size limit."
},
"meta": {
"request_id": "example-request"
}
}
415request.unsupported_media_typeTyp média alebo kódovanie obsahu nie je podporované.
- Ako postupovať
- Pre zápisy JSON použite Content-Type: application/json a podporované nekomprimované telo.
- Pravidlá opakovania
- Opakujte po oprave typu média alebo kódovania.
{
"error": {
"code": "request.unsupported_media_type",
"fields": null,
"message": "The request media type or encoding is not supported."
},
"meta": {
"request_id": "example-request"
}
}
422request.validation_failedJedno alebo viac polí či parametrov neprešlo validáciou.
- Ako postupovať
- Prezrite error.fields a potom skontrolujte povinné polia, možnosť null, identifikátory a povolené hodnoty.
- Pravidlá opakovania
- Opakujte opravenú požiadavku; zmenený zápis je nová logická operácia.
{
"error": {
"code": "request.validation_failed",
"fields": null,
"message": "Some request parameters are invalid."
},
"meta": {
"request_id": "example-request"
}
}
429capacity.queue_fullKrátky rad API je plný; požiadavka sa ešte nezačala vykonávať.
- Ako postupovať
- Zaraďte požiadavky do frontu a rešpektujte hlavičku odpovede Retry-After.
- Pravidlá opakovania
- Počkajte aspoň počet sekúnd z Retry-After a pridajte náhodné oneskorenie. Pri opakovaní zápisu zachovajte pôvodný kľúč a obsah požiadavky.
{
"error": {
"code": "capacity.queue_full",
"fields": null,
"message": "The API is busy. Please retry shortly."
},
"meta": {
"request_id": "example-request"
}
}
429capacity.wait_timeoutUplynul čas čakania v rade API; požiadavka sa ešte nezačala vykonávať.
- Ako postupovať
- Zaraďte požiadavky do frontu a rešpektujte hlavičku odpovede Retry-After.
- Pravidlá opakovania
- Počkajte aspoň počet sekúnd z Retry-After a pridajte náhodné oneskorenie. Pri opakovaní zápisu zachovajte pôvodný kľúč a obsah požiadavky.
{
"error": {
"code": "capacity.wait_timeout",
"fields": null,
"message": "The API could not start this request in time. Please retry shortly."
},
"meta": {
"request_id": "example-request"
}
}
429rate_limit.exceededFrekvencia požiadaviek prekračuje platný limit.
- Ako postupovať
- Zaraďte požiadavky do frontu a rešpektujte hlavičku odpovede Retry-After.
- Pravidlá opakovania
- Počkajte aspoň počet sekúnd z Retry-After a pridajte náhodné oneskorenie. Pri opakovaní zápisu zachovajte pôvodný kľúč a obsah požiadavky.
{
"error": {
"code": "rate_limit.exceeded",
"fields": null,
"message": "The request rate limit has been exceeded."
},
"meta": {
"request_id": "example-request"
}
}
500internal.errorDošlo k neočakávanej chybe služby.
- Ako postupovať
- Zaznamenajte identifikátor požiadavky a pri pretrvávajúcej chybe kontaktujte prevádzkovateľa; do protokolov nezapisujte prístupové údaje.
- Pravidlá opakovania
- Použite obmedzený počet opakovaní s rastúcim oneskorením. Pri zápise zachovajte pôvodný kľúč idempotencie a nezmenený obsah požiadavky.
{
"error": {
"code": "internal.error",
"fields": null,
"message": "An unexpected error occurred."
},
"meta": {
"request_id": "example-request"
}
}
502gateway.bad_responseBrána nedostala platnú odpoveď API.
- Ako postupovať
- Uchovajte identifikátor požiadavky. Chybná odpoveď nedokazuje, že zápis nebol vykonaný.
- Pravidlá opakovania
- Použite obmedzený počet opakovaní s rastúcim oneskorením; rovnaký logický zápis opakujte s pôvodným Idempotency-Key a obsahom požiadavky.
{
"error": {
"code": "gateway.bad_response",
"fields": null,
"message": "The API gateway could not obtain a valid response."
},
"meta": {
"request_id": "example-request"
}
}
504gateway.timeoutBráne pri čakaní na API vypršal časový limit.
- Ako postupovať
- Uchovajte identifikátor požiadavky a výsledok zápisu považujte za neznámy.
- Pravidlá opakovania
- Použite obmedzený počet opakovaní s rastúcim oneskorením; pri zápise zachovajte pôvodný kľúč idempotencie a nezmenený obsah požiadavky.
{
"error": {
"code": "gateway.timeout",
"fields": null,
"message": "The API gateway timed out."
},
"meta": {
"request_id": "example-request"
}
}