Erori
Fiecare eroare are același format: { "error": "<code>", "message": "…", "details": { … } }. Ramificați după error, niciodată după message; details.path indică câmpul când un câmp este de vină.
Căile, numele câmpurilor, codurile de eroare, numele anteturilor și exemplele de cod rămân în engleză: ele sunt contractul.
Când să reîncercați
429 și 503 vin cu un antet Retry-After: așteptați atâtea secunde și trimiteți din nou aceeași cerere. 504 solve_timeout poate reuși la o reîncercare cu o sarcină mai mică. Orice 4xx în afară de 429 este o problemă a cererii în sine și eșuează din nou dacă rămâne neschimbată.
Coduri
| Cod | Stare | Semnificație |
|---|---|---|
| invalid_request | 400 | Corpul sau un parametru este malformat: nu este JSON, nu este un obiect sau un câmp are forma greșită. |
| idempotency_key_required | 400 | Apelul de comandă nu are un antet Idempotency-Key valid. |
| quote_invalid | 400 | Tokenul ofertei nu aparține acestei oferte, a expirat sau a fost modificat, ori test și live au fost amestecate. |
| unknown_workflow | 400 | Magazinul nu are niciun flux cu acest id. |
| workflow_disabled | 400 | Fluxul există, dar este dezactivat. |
| mode_mismatch | 400 | Modul trimis nu este modul acestui flux. |
| unknown_mode | 400 | Modul trimis nu este un mod cunoscut. |
| unsupported_mode | 400 | Modul fluxului nu este încă disponibil pe acest serviciu. |
| limit_exceeded | 400 | Prea multe sau prea puține rânduri, prea multe piese sau o piesă în afara limitelor de dimensiune ale magazinului. |
| outside_catalog_slice | 400 | Un material nu este oferit în acest flux. |
| unknown_reference | 400 | Un material, un cant sau alt articol din catalog este necunoscut sau dezactivat. |
| required_field_missing | 400 | Lipsește un câmp pe care magazinul l-a marcat ca obligatoriu. |
| unauthorized | 401 | Cheia lipsește, este malformată, necunoscută sau revocată, ori o cheie de test a expirat. |
| project_token_required | 401 | Un apel de proiect are nevoie de antetul tokenului de proiect. |
| project_token_invalid | 401 | Antetul tokenului de proiect este malformat sau a fost trimis de două ori. |
| quota_exceeded | 402 | Cota lunară de oferte a magazinului a fost epuizată. |
| customer_context_required | 403 | Un grup de clienți diferit de cel implicit necesită cheia secretă, deci un apel de pe serverul dumneavoastră. |
| origin_not_allowed | 403 | Originea paginii nu se află în lista cheii publice. |
| sandbox_expired | 403 | Magazinul sandbox a expirat și este doar pentru citire. |
| not_found | 404 | Nu există o astfel de rută, ofertă, comandă sau proiect, sau aparține altui magazin. |
| not_configured | 404 | Magazinul nu a publicat încă o configurație. |
| idempotency_conflict | 409 | Această Idempotency-Key a fost deja folosită pentru o altă ofertă. |
| quote_already_redeemed | 409 | Această ofertă a fost deja comandată. |
| quote_requote | 409 | Oferta a fost semnată cu o cheie care a fost între timp rotită: cereți o ofertă nouă. |
| too_large | 413 | Corpul cererii este mai mare decât acceptă ruta. |
| unsupported_media_type | 415 | Corpul nu a fost trimis ca application/json. |
| plan_incomplete | 400 / 422 | Unele piese nu încap pe nicio placă, deci nu există nimic de ofertat. |
| project_not_reorderable | 422 | Proiectul salvat nu conține nicio listă de tăiere care să poată fi evaluată. |
| rate_limited | 429 | A fost atinsă o limită de cereri: așteptați secundele din Retry-After. |
| busy | 429 | Coada solverului este plină: reîncercați după secundele din Retry-After. |
| test_limit | 429 | Cheile de test au atins plafonul zilnic de oferte sau comenzi. |
| sandbox_order_limit | 429 | Magazinul sandbox a atins plafonul de comenzi pentru perioadă. |
| project_limit | 429 | Magazinul stochează deja numărul sau dimensiunea maximă de proiecte salvate. |
| internal | 500 | O eroare neașteptată din partea noastră. |
| service_unavailable | 503 | O parte a serviciului nu a răspuns: încercați din nou mai târziu. |
| config_invalid | 503 | Configurația magazinului nu poate fi încărcată. |
| tenant_unconfigured | 503 | Magazinul nu are nicio cheie activă de semnare a ofertelor. |
| final_engine_unavailable | 503 | Acest flux ofertează pe motorul max, care nu este disponibil aici. |
| solve_timeout | 504 | Planul a durat prea mult. |
Coduri de preț
Aceste coduri vin de la motorul de calcul al prețului. Răspund cu 400 la POST /cfg/v1/quote și la o recomandă; la POST /cfg/v1/preview apelul reușește, iar codul ajunge în priceError, astfel că previzualizarea live poate arăta planul chiar dacă prețul nu poate fi calculat.
invalid_config · invalid_job · invalid_request · unknown_workflow · workflow_disabled · unknown_mode · mode_unavailable · unsupported_mode · unknown_reference · item_disabled · outside_catalog_slice · unpriced_item · no_strategy · unpriced_sheet · cut_length_unattributable · plan_incomplete · bonded_unpriced · bonded_not_allowed · template_value_invalid · machining_length_missing · machining_invalid · unknown_customer_group · shipping_unavailable · delivery_below_minimum · weight_unavailable · rule_budget · amount_overflow
Aici nu există intenționat un buton „încearcă”: cheia secretă aparține serverului dumneavoastră, niciodată unui browser. Magazinul demo arată integrarea și predarea comenzii funcționând de la cap la coadă.
JuridicTermenii configuratorului (EN) ·Acord de prelucrare a datelor (EN) ·Notă de confidențialitate pentru cumpărători ·Licențe terțe (EN)