Klaidų apdorojimas
Partnerių API (Partner API) naudoja standartinius HTTP būsenos kodus ir grąžina nuoseklius JSON klaidų atsakymus.
Klaidų atsakymo formatas
Visos klaidos atitinka šią struktūrą:
{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}
Būsenos kodai
| Kodas | Klaida | Aprašymas |
|---|---|---|
400 | Bad Request | Netinkamas užklausos turinys, trūkstami privalomi laukai arba validacijos klaida |
401 | Unauthorized | Trūkstami, neteisingi arba pasibaigę autentifikacijos kredencialai |
403 | Forbidden | Teisingi kredencialai, bet nepakankamos teisės šiam veiksmui |
404 | Not Found | Prašomas išteklius neegzistuoja |
409 | Conflict | Aptikta dubliuota užklausa (pvz., dubliuotas idempotency raktas su skirtingais duomenimis) |
429 | Too Many Requests | Viršytas užklausų limitas |
500 | Internal Server Error | Serveryje įvyko netikėta klaida |
Validacijos klaidos
400 klaidoms, kurias sukelia užklausos validacija, message laukas gali turėti informaciją apie tai, kurie laukai nepraeina validacijos:
{
"statusCode": 400,
"message": [
"products.0.productId must be a UUID",
"products.0.startAt must be a valid ISO 8601 date",
"payment.type must be one of: CARD, GOOGLE_PAY, APPLE_PAY, IDEAL, REVOLUT, BANCONTACT"
],
"error": "Bad Request"
}
Geriausia praktika
- Visada tikrinkite
statusCodelauką, kad nustatytumėte klaidos kategoriją. 401klaidoms patikrinkite savo API raktą, laiko žymos aktualumą (ne senesnė nei 5 minutės), nonce unikalumą ir parašo skaičiavimą.409klaidoms kuriant užsakymą — pradinis užsakymas jau buvo apdorotas. Gaukite jį naudodami idempotency raktą arba išorinę nuorodą.500klaidoms bandykite pakartotinai su eksponentiniu atsitraukimu (exponential backoff). Jei klaida kartojasi, kreipkitės į palaikymo tarnybą.