☰ Meniu · Erori
Început
Erori
Codul de status HTTP arată tipul problemei; corpul JSON spune exact ce s-a întâmplat și, dacă e vorba de un câmp, despre care este vorba.
JSON
{
"error": {
"type": "invalid_request_error",
"code": "parameter_invalid",
"message": "consent: must be true: confirm the guest agreed to data processing",
"param": "consent"
},
"request_id": "req_0d4d15b86c484738b46b"
}- error.typestring
- Clasa generală:
invalid_request_error,authentication_error,permission_error,idempotency_error,rate_limit_error,api_error. - error.codestring
- Cod stabil, pentru procesare automată, de exemplu
member_not_found. Ramifică logica după el, nu după mesaj. - error.messagestring
- O frază pentru dezvoltator. Se poate schimba; nu o parsa.
- error.paramstring
- Câmpul din cerere la care se referă eroarea, dacă există.
- request_idstring
- Apare și în antetul
X-Request-Idal fiecărui răspuns. Include-l când ne scrii.
Coduri de status
| Status | Înseamnă | Ce faci |
|---|---|---|
| 200, 201 | Succes. 201 înseamnă că s-a creat ceva nou. | |
| 400 | Cererea este malformată sau un câmp este invalid. | Corectează cererea. Același corp trimis din nou primește același răspuns. |
| 401 | Lipsește cheia, cheia este necunoscută sau revocată. | Verifică cheia. |
| 402 | Cererea este validă, dar nu poate fi executată, de exemplu sold insuficient. | Arată-i oaspetelui mesajul; detaliile sunt în corp. |
| 403 | Cheii îi lipsește permisiunea cerută de acest apel. | Folosește o cheie cu permisiunea indicată în mesaj. |
| 404 | Membrul, tranzacția, preparatul sau comanda nu există la acest local. | Verifică identificatorul. |
| 409 | Conflict: numărul cardului este ocupat, schimbarea de status nu este permisă sau soldul s-a schimbat în timpul apelului. | Citește codul. Pentru balance_conflict, reîncearcă cu același external_id. |
| 429 | Prea multe cereri. | Așteaptă Retry-After secunde. |
| 500, 502, 503 | Ceva a eșuat la noi. | Reîncearcă cu pauze crescătoare și același external_id sau Idempotency-Key. Nimic nu se aplică de două ori. |
Coduri frecvente
| Cod | Când apare |
|---|---|
| parameter_invalid | Un câmp lipsește sau are formatul greșit. Vezi param. |
| member_not_found | Niciun membru nu corespunde numărului de card, codului de bare, telefonului sau id-ului. |
| card_number_taken | Alt membru al acestui local are deja acest număr de card. |
| insufficient_balance | redeem_amount depășește soldul de cashback. Soldul este în available. |
| redeem_not_supported | Programul membrului nu are sold de cashback care să poată fi folosit. |
| visit_not_supported | S-a trimis o vizită pentru un program de cashback. Trimite în schimb un bon cu sumă. |
| no_reward_available | Membrul nu are nicio recompensă câștigată de acordat. |
| transaction_not_found | Nu există nicio tranzacție cu acest external_id. |
| invalid_status_transition | Comanda nu poate trece din statusul curent în cel trimis. |
| missing_scope | Cheia nu are permisiunea necesară. |
| hold_required | Localul acceptă plata cu cashback doar prin rezervări. Creează una cu POST /v1/holds. |
| hold_expired, hold_captured, hold_released | Rezervarea nu mai poate fi folosită. Creează una nouă. |
| register_id_required | Localul numerotează bonurile separat pentru fiecare casă, așa că register_id este obligatoriu. |
| check_too_old | closed_at este mai vechi decât acceptă localul. |
| scan_required | Localul acceptă operația doar pentru un card pe care această cheie l-a scanat cu puțin înainte. |
| refund_exceeds_check | Returul depășește ce a rămas din bon. Restul este în refundable. |
| adjustments_disabled | Localul nu a permis corecțiile soldului prin API. |
| idempotency_key_reused | Același Idempotency-Key a fost folosit cu alt corp. |
| rate_limited | Prea multe cereri de la această cheie. |