Parcourir la documentation

Référence des erreurs

Toute erreur a la même forme : {"error": {"code", "message", "docs"}}. Branchez votre code sur code, jamais sur message.

Un même marqueur peut porter deux statuts selon la route. Les tableaux ci-dessous le précisent.

Clé et accès

MarqueurStatutQuandConduite
API_KEY_MISSING401en-tête Authorization absent ou videenvoyez Authorization: Bearer fpk_...
API_KEY_INVALID401secret inconnuvérifiez le secret. Il a peut-être été renouvelé
API_KEY_REVOKED403la clé a été révoquéecréez-en une nouvelle
API_KEY_EXPIRED403la clé a passé sa datecréez-en une nouvelle. Une clé expirée ne se renouvelle pas
API_KEY_IP_NOT_ALLOWED403appel hors de la liste d'adressesajoutez l'adresse, ou vérifiez d'où part l'appel
API_ACCOUNT_DISABLED403le compte n'est plus disponiblecontactez le support
API_SCOPE_MISSING:<scope>403la clé n'a pas cette permissionajoutez la permission nommée par le suffixe
API_ACTION_NOT_ALLOWED:<action>403action fournisseur inconnue de la plateforme, ou sans permission publiquevoir la table des actions dans Gérer vos services
API_KEY_SPENDING_CAP_EXCEEDED403le débit dépasserait le plafond sur 30 joursrelevez le plafond, puis réessayez avec une nouvelle clé d'idempotence
API_RATE_LIMITED429un compteur de débit est pleinattendez Retry-After secondes
API_HEADER_NOT_ALLOWED400en-tête X-Acting-Account envoyéretirez-le
API_KEY_IN_QUERY400clé passée dans l'URLenvoyez-la dans l'en-tête, et renouvelez-la : l'URL est déjà dans des journaux

Requête

MarqueurStatutQuand
VALIDATION_ERROR:<champ>400champ ou paramètre absent, mal typé ou hors énumération. Le suffixe le nomme
IDEMPOTENCY_KEY_REQUIRED400en-tête absent sur une route qui l'exige
IDEMPOTENCY_KEY_INVALID400clé vide ou au-delà de 128 caractères
IDEMPOTENCY_KEY_REUSED409même clé, requête différente
IDEMPOTENCY_IN_PROGRESS409même clé pendant que le premier appel tourne. Retry-After
INTERNAL_ERROR500de notre côté. Citez le X-Request-Id au support

Les suffixes de VALIDATION_ERROR employés sur la surface : limit, cursor, status, page, action, command, method, subject, message, category, priority, payment.method, customerNote, lines.product, lines.quantity, lines.addons.quantity.

Services

MarqueurStatutRoutesQuand
SERVICE_NOT_FOUND404toutes les routes de servicecode inconnu, service d'un autre compte, ou hors de la restriction de la clé
SERVICE_NOT_ACTIVE409/power, /console/command, /actions/{action}, /renewservice suspendu ou résilié
SERVICE_NOT_ACTIVE400/backups, /backups/restore, /reinstallidem, sur les routes déléguées
SERVICE_IN_DUNNING400/backups, /backups/restore, /reinstallfacture impayée en recouvrement
INSTANCE_NOT_PROVISIONED409/status, /metrics/history, /power, /actions/{action}l'infrastructure n'existe pas encore
INSTANCE_NOT_PROVISIONED400/backups, /backups/restore, /reinstallidem, sur les routes déléguées
ACTION_UNSUPPORTED400/power, /console/commandkill sur un VPS, console sur un VPS
INVALID_ACTION400/actions/{action}action vide ou commençant par _
CUSTOM_NAME_TOO_LONG400PATCH /services/{code}au-delà de 32 caractères
RENEWAL_CANCELLATION_NOT_AVAILABLE_VIA_API400PATCH /services/{code}autoRenew: false
NOTE_TOO_LONG400POST /backupsnote au-delà de 200 caractères
MISSING_FIELDS400/backups/restore, /reinstallun champ obligatoire manque
BACKUP_NOT_FOUND400DELETE /backups/{id}, /backups/restoreidentifiant de sauvegarde inconnu
BACKUP_IN_PROGRESS400/backups, /backups/restoreune opération de sauvegarde tourne déjà
LIMIT_REACHED409POST /backupsquota de sauvegardes atteint
INVALID_OS, OS_FAMILY_MISMATCH400/reinstallos hors catalogue, ou famille et version incompatibles
INVALID_AUTH_TYPE400/reinstallauthType hors de PASSWORD et SSH_KEY

Paiements, commandes et renouvellements

MarqueurStatutQuandConduite
INSUFFICIENT_BALANCE402le solde ne couvre pas le montantrechargez, puis réessayez avec la même clé d'idempotence
NO_PAYMENT_METHOD402account_default sans moyen utilisableenregistrez un moyen, puis réessayez avec la même clé
PAYMENT_METHOD_ID_REQUIRED400saved_method sans paymentMethodIdcorrigez le corps, réessayez avec la même clé
PAYMENT_METHOD_NOT_FOUND404ce moyen n'est pas sur le compteidem
PAYMENT_METHOD_NOT_ACTIVE400commandes et facturesmoyen expiré ou bloqué
PAYMENT_METHOD_NOT_ACTIVE402/renewle même cas, sur le renouvellement
PAYMENT_METHOD_DECRYPTION_FAILED, PAYMENT_METHOD_VAULT_ID_MISSING400le moyen enregistré est inutilisablecontactez le support
PAYMENT_DENIED402la banque a refuséchangez de moyen. Le rejeu de la même clé rendra le même refus
RENEWAL_FAILED402/renewle débit a échoué pour une autre raison
PAYMENT_FAILED400échec de règlement sans code plus précis
PAYMENT_RECORDED_MISMATCH409anomalie de rapprochementne réessayez pas. Contactez le support avec le X-Request-Id
PAYMENT_IN_PROGRESS409un autre paiement du même document tourneattendez, puis réessayez avec la même clé
PAYMENT_METHOD_REQUIRED400le document exige un moyen de paiement
ORDER_NOT_FOUND404numéro de commande inconnu
ORDER_NOT_PAYABLE, ORDER_ALREADY_SETTLED, ORDER_ALREADY_PAID, AMOUNT_INVALID400il n'y a rien à payer sur cette commande
ORDER_CONCURRENT_UPDATE409la commande a changé pendant l'écritureréessayez
NO_ITEMS, TOO_MANY_ITEMS4000 ligne, ou plus de 20
PRODUCT_NOT_FOUND:<x>, PRODUCT_NOT_ORDERABLE:<x>, RECURRENCE_REQUIRED:<x>, RECURRENCE_NOT_OFFERED:<x>400la ligne ne correspond pas au cataloguerelisez GET /catalog/products
MISSING_REQUIRED:<clé>, INVALID_METADATA_KEY:<clé>, INVALID_METADATA_VALUE:<clé>400la configuration de la lignerelisez characteristics du produit
ADDON_NOT_AVAILABLE:<x>, ADDON_MAX_QUANTITY:<x>400l'option demandéerelisez addons du produit
RENEWAL_IN_PROGRESS409un renouvellement du même service tourneattendez, puis réessayez avec la même clé
RENEWAL_TOO_FREQUENT429moins d'une minute depuis le précédentattendez une minute, réessayez avec la même clé

Facturation

MarqueurStatutQuand
INVOICE_NOT_FOUND404code de facture inconnu
CREDIT_NOTE_NOT_FOUND404code d'avoir inconnu
INVOICE_ALREADY_PAID, INVOICE_VOID, INVOICE_REFUNDED, INVOICE_NOT_ISSUED, INVOICE_BALANCE_ZERO400rien à payer sur ce document
CURRENCY_UNSUPPORTED400devise non prise en charge
PDF_NOT_AVAILABLE503le PDF n'est pas encore rendu. Retry-After: 5

Support et compte

MarqueurStatutQuand
TICKET_NOT_FOUND404numéro de ticket inconnu
SUBJECT_TOO_SHORT400sujet trop court
TICKET_REJECTED, MESSAGE_REJECTED400le support a refusé la création ou le message
SSH_KEY_NOT_FOUND404identifiant de clé SSH inconnu
SSH_KEY_FORMAT_INVALID400ce n'est pas une ligne de clé publique
DUPLICATE_KEY:<id>400la clé est déjà sur le compte
PRODUCT_NOT_FOUND404GET /catalog/products/{shortname} sur un shortname inconnu

Fournisseur

La passerelle d'actions relaie les refus de l'infrastructure.

RéponseStatutSens
un marqueur du fournisseur, ex. FIREWALL_INVALID_ARGUMENT, RDNS_INVALID_ARGUMENT409le fournisseur a compris la demande et l'a refusée. Le marqueur est propre à lui
ACTION_FAILED502le fournisseur a échoué, ou n'a rien renvoyé d'exploitable
PROVIDER_TIMEOUT502le fournisseur n'a pas répondu à temps

Que faire selon le statut

StatutRéessayer ?
400, 404non avant d'avoir corrigé la requête
401, 403non. C'est la clé ou ses permissions
402après avoir levé la cause. Voir la colonne « conduite » ci-dessus
409selon le marqueur : PAYMENT_IN_PROGRESS et ORDER_CONCURRENT_UPDATE oui, PAYMENT_RECORDED_MISMATCH non
429oui, après Retry-After
500, 502, 503oui, avec un recul exponentiel. Sur une route idempotente, gardez la même clé