Coduri de eroare
Dacă o cerere eșuează, verifică codul de eroare din răspuns. Extinde-l în lista de mai jos pentru a afla ce s-a întâmplat și ce poți face. Fiecare eroare include și un exemplu de răspuns, precum și indicații pentru repetarea cererii.
400request.malformedCererea nu poate fi interpretată.
- Ce trebuie făcut
- Verificați sintaxa JSON, codificarea URL-ului și structura cererii.
- Reguli de reîncercare
- Reîncercați după corectarea cererii.
{
"error": {
"code": "request.malformed",
"fields": null,
"message": "The request could not be read."
},
"meta": {
"request_id": "example-request"
}
}
401authentication.invalid_credentialsCheia API sau tokenul de acces este invalid, a expirat ori a fost revocat.
- Ce trebuie făcut
- Verificați URL-ul magazinului și credențialul. Obțineți un token nou folosind o cheie API activă.
- Reguli de reîncercare
- Reîncercați după corectarea autentificării; evitați cererile repetate cu tokenuri invalide.
{
"error": {
"code": "authentication.invalid_credentials",
"fields": null,
"message": "The credentials are invalid."
},
"meta": {
"request_id": "example-request"
}
}
401authentication.requiredAntetul Authorization necesar lipsește sau folosește o schemă incorectă.
- Ce trebuie făcut
- Pentru a emite sau revoca un token, folosește cheia API cu
ApiKeyîn antetulAuthorization. Pentru celelalte cereri, folosește tokenul de acces cuBearer. - Reguli de reîncercare
- Reîncercați după furnizarea antetului corect.
{
"error": {
"code": "authentication.required",
"fields": null,
"message": "Authentication is required."
},
"meta": {
"request_id": "example-request"
}
}
403authorization.client_ip_unverifiedServiciul nu a putut stabili o adresă IP de client de încredere.
- Ce trebuie făcut
- Verifică adresa IP de la care integrarea se conectează la API. Dacă eroarea persistă, contactează asistența tehnică Shopently.
- Reguli de reîncercare
- Încearcă din nou după rezolvarea problemei de identificare a adresei IP.
{
"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_allowedAdresa IP sursă nu se află în lista adreselor permise pentru cheie.
- Ce trebuie făcut
- Folosiți o adresă sursă aprobată sau cereți unui administrator autorizat să editeze lista IP a cheii.
- Reguli de reîncercare
- Reîncercați numai după ce adresa este permisă.
{
"error": {
"code": "authorization.ip_not_allowed",
"fields": null,
"message": "Access from this IP address is not allowed."
},
"meta": {
"request_id": "example-request"
}
}
403authorization.scope_deniedCheia nu are o permisiune efectivă necesară acestei operații.
- Ce trebuie făcut
- Verificați permisiunile obligatorii și condiționale ale operației, permisiunile cheii și accesul emitentului.
- Reguli de reîncercare
- Reîncercați după ce un administrator autorizat acordă accesul necesar.
{
"error": {
"code": "authorization.scope_denied",
"fields": null,
"message": "The required permission has not been granted."
},
"meta": {
"request_id": "example-request"
}
}
403entitlements.api_disabledAccesul API este dezactivat pentru acest magazin.
- Ce trebuie făcut
- Cereți proprietarului magazinului să verifice planul activ și disponibilitatea API.
- Reguli de reîncercare
- Nu reîncercați până la activarea accesului API.
{
"error": {
"code": "entitlements.api_disabled",
"fields": null,
"message": "API access is disabled for this store."
},
"meta": {
"request_id": "example-request"
}
}
403entitlements.limit_exceededModificarea ar depăși o limită a planului curent.
- Ce trebuie făcut
- Verificați limita aplicabilă resursei și adaptați modificarea dorită sau planul.
- Reguli de reîncercare
- Reîncercați după rezolvarea limitei; folosiți o cheie de idempotență nouă dacă cererea se schimbă.
{
"error": {
"code": "entitlements.limit_exceeded",
"fields": null,
"message": "The operation exceeds a plan limit."
},
"meta": {
"request_id": "example-request"
}
}
403entitlements.operation_disabledPlanul curent nu include această operație.
- Ce trebuie făcut
- Verificați planul minim indicat pentru operație.
- Reguli de reîncercare
- Reîncercați după ce planul permite operația și cheia are permisiunile necesare.
{
"error": {
"code": "entitlements.operation_disabled",
"fields": null,
"message": "The current plan does not allow this operation."
},
"meta": {
"request_id": "example-request"
}
}
403entitlements.resource_blockedO limită a planului blochează această resursă.
- Ce trebuie făcut
- Cereți proprietarului să rezolve restricția impusă resursei de plan.
- Reguli de reîncercare
- Nu repetați aceeași cerere cât timp resursa rămâne blocată.
{
"error": {
"code": "entitlements.resource_blocked",
"fields": null,
"message": "A plan limit blocks access to this resource."
},
"meta": {
"request_id": "example-request"
}
}
404resource.not_foundResursa lipsește, a fost ștearsă sau nu este disponibilă sub identificatorul furnizat.
- Ce trebuie făcut
- Verificați magazinul, calea resursei și identificatorul. Folosiți identificatori returnați de acest magazin.
- Reguli de reîncercare
- Reîncercați numai după corectarea destinației sau confirmarea existenței acesteia.
{
"error": {
"code": "resource.not_found",
"fields": null,
"message": "The resource was not found."
},
"meta": {
"request_id": "example-request"
}
}
405request.method_not_allowedEndpointul nu acceptă această metodă HTTP.
- Ce trebuie făcut
- Folosiți metoda documentată; antetul Allow indică metodele acceptate.
- Reguli de reîncercare
- Nu reîncercați metoda neacceptată.
{
"error": {
"code": "request.method_not_allowed",
"fields": null,
"message": "This method is not supported for this resource."
},
"meta": {
"request_id": "example-request"
}
}
409idempotency.key_reusedAceastă cheie de idempotență aparține unei alte cereri.
- Ce trebuie făcut
- Identificați operația originală. Folosiți o cheie nouă numai pentru o operație logică nouă, intenționată.
- Reguli de reîncercare
- Nu reîncercați date modificate folosind cheia aflată în conflict.
{
"error": {
"code": "idempotency.key_reused",
"fields": null,
"message": "This idempotency key was used with a different request."
},
"meta": {
"request_id": "example-request"
}
}
409resource.already_existsO valoare unică intră în conflict cu o resursă existentă.
- Ce trebuie făcut
- Citiți resursa existentă și decideți dacă o folosiți sau alegeți o altă valoare unică.
- Reguli de reîncercare
- Nu repetați aceeași creare aflată în conflict.
{
"error": {
"code": "resource.already_exists",
"fields": null,
"message": "A resource with these unique values already exists."
},
"meta": {
"request_id": "example-request"
}
}
409resource.in_useAlte resurse depind încă de această resursă.
- Ce trebuie făcut
- Verificați dependențele și eliminați-le sau modificați-le prin operațiile acceptate înainte de ștergere.
- Reguli de reîncercare
- Reîncercați după rezolvarea dependențelor.
{
"error": {
"code": "resource.in_use",
"fields": null,
"message": "The resource is still in use."
},
"meta": {
"request_id": "example-request"
}
}
409resource.state_conflictStarea comercială curentă împiedică această modificare.
- Ce trebuie făcut
- Citiți starea curentă și alegeți o tranziție comercială validă.
- Reguli de reîncercare
- Nu forțați automat și nu retrimiteți repetat modificarea aflată în conflict.
{
"error": {
"code": "resource.state_conflict",
"fields": null,
"message": "The current resource state does not allow this operation."
},
"meta": {
"request_id": "example-request"
}
}
409resource.version_conflictO altă scriere a modificat resursa după versiunea pe care ați citit-o.
- Ce trebuie făcut
- Citiți starea cea mai recentă, adaptați modificarea și trimiteți noua valoare expected_version.
- Reguli de reîncercare
- Folosiți o cheie de idempotență nouă pentru operația revizuită; nu suprascrieți fără verificare.
{
"error": {
"code": "resource.version_conflict",
"fields": null,
"message": "The resource version has changed."
},
"meta": {
"request_id": "example-request"
}
}
409storage.limit_reachedLimita de stocare pentru imagini și fișiere a fost atinsă. Eliberează spațiu sau mărește limita.
- Ce trebuie făcut
- Limita de stocare pentru imagini și fișiere a fost atinsă. Eliberează spațiu sau mărește limita.
- Reguli de reîncercare
- Reîncercați operații mai mici și valide, fiecare cu propria cheie de idempotență.
{
"error": {
"code": "storage.limit_reached",
"fields": null,
"message": "The upload storage limit is reached."
},
"meta": {
"request_id": "example-request"
}
}
413request.too_largeCererea depășește limita de dimensiune.
- Ce trebuie făcut
- Reduceți datele trimise sau împărțiți operația în operații individuale acceptate.
- Reguli de reîncercare
- Reîncercați operații mai mici și valide, fiecare cu propria cheie de idempotență.
{
"error": {
"code": "request.too_large",
"fields": null,
"message": "The request exceeds the size limit."
},
"meta": {
"request_id": "example-request"
}
}
415request.unsupported_media_typeTipul media sau codificarea conținutului nu este acceptată.
- Ce trebuie făcut
- Pentru scrieri JSON, folosiți Content-Type: application/json și un corp necomprimat acceptat.
- Reguli de reîncercare
- Reîncercați după corectarea tipului media sau a codificării.
{
"error": {
"code": "request.unsupported_media_type",
"fields": null,
"message": "The request media type or encoding is not supported."
},
"meta": {
"request_id": "example-request"
}
}
416request.range_not_satisfiableRestricții: Range
- Ce trebuie făcut
- Range: bytes=0-(size_bytes-1)
- Reguli de reîncercare
- Reîncercați după corectarea cererii.
{
"error": {
"code": "request.range_not_satisfiable",
"fields": null,
"message": "The requested byte range is unavailable."
},
"meta": {
"request_id": "example-request"
}
}
422request.validation_failedUnul sau mai multe câmpuri ori parametri nu trec validarea.
- Ce trebuie făcut
- Consultați error.fields, apoi verificați câmpurile obligatorii, acceptarea valorii null, identificatorii și valorile permise.
- Reguli de reîncercare
- Reîncercați o cerere corectată; o scriere modificată reprezintă o operație logică nouă.
{
"error": {
"code": "request.validation_failed",
"fields": null,
"message": "Some request parameters are invalid."
},
"meta": {
"request_id": "example-request"
}
}
429capacity.queue_fullCoada scurtă a API-ului este plină; executarea cererii nu a început.
- Ce trebuie făcut
- Puneți cererile într-o coadă și respectați antetul de răspuns Retry-After.
- Reguli de reîncercare
- Așteaptă cel puțin numărul de secunde indicat în
Retry-After. Dacă repeți o scriere, păstrează același corp al cererii și aceeași valoareIdempotency-Key.
{
"error": {
"code": "capacity.queue_full",
"fields": null,
"message": "The API is busy. Please retry shortly."
},
"meta": {
"request_id": "example-request"
}
}
429capacity.wait_timeoutTimpul de așteptare în coada API-ului a expirat; executarea cererii nu a început.
- Ce trebuie făcut
- Puneți cererile într-o coadă și respectați antetul de răspuns Retry-After.
- Reguli de reîncercare
- Așteaptă cel puțin numărul de secunde indicat în
Retry-After. Dacă repeți o scriere, păstrează același corp al cererii și aceeași valoareIdempotency-Key.
{
"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.exceededFrecvența cererilor depășește limita aplicabilă.
- Ce trebuie făcut
- Puneți cererile într-o coadă și respectați antetul de răspuns Retry-After.
- Reguli de reîncercare
- Așteaptă cel puțin numărul de secunde indicat în
Retry-After. Dacă repeți o scriere, păstrează același corp al cererii și aceeași valoareIdempotency-Key.
{
"error": {
"code": "rate_limit.exceeded",
"fields": null,
"message": "The request rate limit has been exceeded."
},
"meta": {
"request_id": "example-request"
}
}
500internal.errorA apărut o eroare neașteptată a serviciului.
- Ce trebuie făcut
- Așteaptă puțin înainte să repeți cererea. Dacă eroarea 500 apare din nou, contactează asistența tehnică Shopently și include identificatorul cererii.
- Reguli de reîncercare
- Poți încerca din nou să citești datele după o scurtă pauză. Când repeți o scriere, folosește aceeași valoare
Idempotency-Keyși păstrează corpul cererii neschimbat.
{
"error": {
"code": "internal.error",
"fields": null,
"message": "An unexpected error occurred."
},
"meta": {
"request_id": "example-request"
}
}
502gateway.bad_responseGateway-ul nu a primit un răspuns API valid.
- Ce trebuie făcut
- Păstrați identificatorul cererii. Un răspuns nereușit nu dovedește că scrierea nu a fost aplicată.
- Reguli de reîncercare
- Folosiți reîncercări limitate, cu întârzieri progresive; repetați aceeași scriere logică folosind valoarea Idempotency-Key și datele originale.
{
"error": {
"code": "gateway.bad_response",
"fields": null,
"message": "The API gateway could not obtain a valid response."
},
"meta": {
"request_id": "example-request"
}
}
504gateway.timeoutGateway-ul a depășit timpul de așteptare pentru API.
- Ce trebuie făcut
- Dacă cererea modifica date, verifică dacă modificările au fost salvate în magazin. Lipsa unui răspuns nu înseamnă că scrierea a eșuat. Dacă eroarea persistă, contactează asistența tehnică Shopently și include identificatorul cererii.
- Reguli de reîncercare
- Poți încerca din nou să citești datele după o scurtă pauză. Când repeți o scriere, folosește aceeași valoare
Idempotency-Keyși păstrează corpul cererii neschimbat.
{
"error": {
"code": "gateway.timeout",
"fields": null,
"message": "The API gateway timed out."
},
"meta": {
"request_id": "example-request"
}
}