Aller au contenu principal
← Référence de l’API

Erreurs

Chaque erreur a la même enveloppe : { "error": "<code>", "message": "…", "details": { … } }. Branchez-vous sur error, jamais sur message ; details.path désigne le champ lorsqu’un champ est en cause.

Les chemins, noms de champs, codes d’erreur, noms d’en-têtes et exemples de code restent en anglais : ils font partie du contrat.

Quand réessayer

429 et 503 arrivent avec un en-tête Retry-After : attendez ce nombre de secondes et renvoyez la même requête. 504 solve_timeout peut réussir à la nouvelle tentative avec une tâche plus petite. Tout 4xx autre que 429 signale un problème de la requête elle-même et échoue de nouveau si elle est inchangée.

Codes

CodeStatutSignification
invalid_request400Le corps ou un paramètre est mal formé : pas du JSON, pas un objet, ou un champ de forme incorrecte.
idempotency_key_required400L’appel de commande n’a pas d’en-tête Idempotency-Key valide.
quote_invalid400Le jeton de devis n’appartient pas à ce devis, a expiré ou a été modifié, ou test et production ont été mélangés.
unknown_workflow400La boutique n’a aucun workflow avec cet identifiant.
workflow_disabled400Le workflow existe mais est désactivé.
mode_mismatch400Le mode envoyé n’est pas celui de ce workflow.
unknown_mode400Le mode envoyé n’est pas un mode connu.
unsupported_mode400Le mode du workflow n’est pas encore disponible sur ce service.
limit_exceeded400Trop ou trop peu de lignes, trop de pièces, ou une pièce hors des limites de taille de la boutique.
outside_catalog_slice400Un matériau n’est pas proposé dans ce workflow.
unknown_reference400Un matériau, un chant ou un autre article du catalogue est inconnu ou désactivé.
required_field_missing400Un champ que la boutique a marqué comme obligatoire est manquant.
unauthorized401La clé est absente, mal formée, inconnue ou révoquée, ou une clé de test a expiré.
project_token_required401Un appel de projet exige l’en-tête du jeton de projet.
project_token_invalid401L’en-tête du jeton de projet est mal formé ou a été envoyé deux fois.
quota_exceeded402Le quota mensuel de devis de la boutique est épuisé.
customer_context_required403Un groupe de clients autre que celui par défaut exige la clé secrète, donc un appel depuis votre serveur.
origin_not_allowed403L’origine de la page ne figure pas dans la liste de la clé publique.
sandbox_expired403La boutique bac à sable a expiré et est en lecture seule.
not_found404Aucune route, aucun devis, aucune commande ni aucun projet de ce type, ou un élément qui appartient à une autre boutique.
not_configured404La boutique n’a pas encore publié de configuration.
idempotency_conflict409Cette Idempotency-Key a déjà été utilisée pour un autre devis.
quote_already_redeemed409Ce devis a déjà été commandé.
quote_requote409Le devis a été signé avec une clé qui a depuis fait l’objet d’une rotation : demandez un nouveau devis.
too_large413Le corps de la requête est plus grand que ce que la route accepte.
unsupported_media_type415Le corps n’a pas été envoyé en application/json.
plan_incomplete400 / 422Certaines pièces ne tiennent sur aucun panneau, il n’y a donc rien à chiffrer.
project_not_reorderable422Le projet enregistré ne contient aucune liste de découpe pouvant être chiffrée.
rate_limited429Une limite de débit a été atteinte : attendez le nombre de secondes indiqué dans Retry-After.
busy429La file du solveur est pleine : réessayez après le nombre de secondes indiqué dans Retry-After.
test_limit429Les clés de test ont atteint leur plafond quotidien de devis ou de commandes.
sandbox_order_limit429La boutique bac à sable a atteint son plafond de commandes pour la période.
project_limit429La boutique stocke déjà le nombre ou la taille maximum de projets enregistrés.
internal500Une erreur inattendue de notre côté.
service_unavailable503Une partie du service n’a pas répondu : réessayez plus tard.
config_invalid503La configuration de la boutique ne peut pas être chargée.
tenant_unconfigured503La boutique n’a aucune clé de signature de devis active.
final_engine_unavailable503Ce workflow chiffre avec le moteur max, qui n’est pas disponible ici.
solve_timeout504Le calcul du plan a pris trop de temps.

Codes de tarification

Ces codes viennent du moteur de tarification. Ils répondent 400 sur POST /cfg/v1/quote et sur une recommande ; sur POST /cfg/v1/preview, l’appel réussit et le code arrive dans priceError, de sorte que l’aperçu en direct peut montrer le plan alors que le prix ne peut pas être calculé.

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

Il n’y a volontairement pas de bouton « essayer » ici : la clé secrète appartient à votre serveur, jamais à un navigateur. La boutique de démonstration montre l’intégration et la transmission de la commande de bout en bout.

Mentions légalesConditions du configurateur (EN) ·Accord de traitement des données (EN) ·Notice de confidentialité pour les acheteurs ·Licences tierces (EN)