☰ 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-Id al fiecărui răspuns. Include-l când ne scrii.

Coduri de status

StatusÎnseamnăCe faci
200, 201Succes. 201 înseamnă că s-a creat ceva nou.
400Cererea este malformată sau un câmp este invalid.Corectează cererea. Același corp trimis din nou primește același răspuns.
401Lipsește cheia, cheia este necunoscută sau revocată.Verifică cheia.
402Cererea este validă, dar nu poate fi executată, de exemplu sold insuficient.Arată-i oaspetelui mesajul; detaliile sunt în corp.
403Cheii îi lipsește permisiunea cerută de acest apel.Folosește o cheie cu permisiunea indicată în mesaj.
404Membrul, tranzacția, preparatul sau comanda nu există la acest local.Verifică identificatorul.
409Conflict: 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.
429Prea multe cereri.Așteaptă Retry-After secunde.
500, 502, 503Ceva 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

CodCând apare
parameter_invalidUn câmp lipsește sau are formatul greșit. Vezi param.
member_not_foundNiciun membru nu corespunde numărului de card, codului de bare, telefonului sau id-ului.
card_number_takenAlt membru al acestui local are deja acest număr de card.
insufficient_balanceredeem_amount depășește soldul de cashback. Soldul este în available.
redeem_not_supportedProgramul membrului nu are sold de cashback care să poată fi folosit.
visit_not_supportedS-a trimis o vizită pentru un program de cashback. Trimite în schimb un bon cu sumă.
no_reward_availableMembrul nu are nicio recompensă câștigată de acordat.
transaction_not_foundNu există nicio tranzacție cu acest external_id.
invalid_status_transitionComanda nu poate trece din statusul curent în cel trimis.
missing_scopeCheia nu are permisiunea necesară.
hold_requiredLocalul acceptă plata cu cashback doar prin rezervări. Creează una cu POST /v1/holds.
hold_expired, hold_captured, hold_releasedRezervarea nu mai poate fi folosită. Creează una nouă.
register_id_requiredLocalul numerotează bonurile separat pentru fiecare casă, așa că register_id este obligatoriu.
check_too_oldclosed_at este mai vechi decât acceptă localul.
scan_requiredLocalul acceptă operația doar pentru un card pe care această cheie l-a scanat cu puțin înainte.
refund_exceeds_checkReturul depășește ce a rămas din bon. Restul este în refundable.
adjustments_disabledLocalul nu a permis corecțiile soldului prin API.
idempotency_key_reusedAcelași Idempotency-Key a fost folosit cu alt corp.
rate_limitedPrea multe cereri de la această cheie.
Întrebări despre integrare: api@loyaltyfy.io. Răspundem în cel mult o zi lucrătoare.