Référence
Erreurs
Chaque erreur de l’API a un statut HTTP et un code stable. Les codes généraux peuvent venir de n’importe quel appel ; les autres sont propres à un produit.
Codes d’erreur généraux
Chaque erreur est un objet JSON plat : code, message (suit Accept-Language), messageEn, messageFr, statusCode, et un champ details facultatif précisant la cause. Une requête mal formée, comme un champ manquant ou une valeur hors des limites documentées, retourne 422 VALIDATION_ERROR avec details qui nomme le champ. Une requête que le framework rejette lui-même avant que votre code ne s’exécute, comme un JSON invalide (400), un corps dépassant la limite de taille (413) ou un type de contenu non pris en charge (415), retourne un code Fastify FST_ERR_* avec un message uniquement en anglais.
| HTTP | Code | Signification |
|---|---|---|
| 401 | UNAUTHORIZED | Clé API manquante ou invalide |
| 401 | API_KEY_REVOKED | Cette clé API a été révoquée. Utilisez une autre clé. |
| 402 | INSUFFICIENT_BALANCE | Solde du compte insuffisant |
| 402 | RENT_OWED | Un loyer est dû pour un numéro libéré pendant sa suspension. Les envois payants et les demandes de numéro sont refusés jusqu'à ce qu'un rechargement le paie |
| 402 | PAYMENT_REQUIRED | Le compte n’a pas encore effectué sa première recharge. Les clés de production sont bloquées jusque-là, sauf quelques lectures de compte et de tarifs ; les clés de test ne sont pas concernées. |
| 403 | FORBIDDEN | La clé API n’a pas la permission requise, skip_consent_check a été envoyé avec une clé de production, le compte est suspendu ou fermé (voir details.reason), ou l’identifiant dans le chemin appartient à un autre compte |
| 403 | LIVE_KEY_REQUIRED | Une clé de test a été utilisée pour une action réservée aux clés de production. |
| 403 | PERMISSION_ESCALATION | Une clé nouvelle ou renouvelée a demandé des permissions plus étendues que celles de l’appelant, sans confirmation par mot de passe. |
| 403 | KEY_FENCED | Cette clé est restreinte par ses propres listes d’autorisation ou de blocage ou par le refus par défaut ; elle ne peut donc pas modifier ces listes ni les groupes et contacts qu’elles incluent, changer les réglages de listes d’une clé, créer de clés, ni renouveler une autre clé qu’elle-même. |
| 403 | ACCOUNT_NOT_VERIFIED | Le compte n’a pas encore vérifié de numéro de téléphone propriétaire, requis avant un envoi réel. |
| 403 | ACCOUNT_EMAIL_NOT_VERIFIED | Le compte n’a pas encore vérifié son adresse courriel, requise avant de créer ou de renouveler une clé d’API, réelle ou de test, ou de connecter une application en mode réel. |
| 403 | BUSINESS_VERIFICATION_REQUIRED | Les demandes de numéros supplémentaires, de volume d’envoi plus élevé, de limites de rechargement plus élevées et de vérification de numéro sans frais exigent une entreprise vérifiée. |
| 403 | SENDING_PAUSED | L’envoi réel est suspendu sur ce compte (les détails indiquent la reprise et la raison) |
| 404 | NOT_FOUND | Aucune ressource ne correspond à l’identifiant donné. |
| 409 | DEAD_LETTER_ALREADY_REPLAYED | Cet événement a déjà été rejoué, ou un rejeu est en cours. Rien n’a été envoyé, et réessayer n’y changera rien. |
| 409 | CONFLICT | Une ressource avec cet identifiant existe déjà, ou le renouvellement d’une clé a échoué parce qu’elle était déjà révoquée, est une clé de session, ou qu’une autre requête l’a renouvelée en premier |
| 409 | BUSINESS_VERIFICATION_NOT_EDITABLE | Le profil de vérification d’entreprise est en cours d’examen, vérifié ou révoqué ; il ne peut donc pas être modifié ni soumis. |
| 409 | TOPUP_CAP_REQUEST_PENDING | Une demande de limites de rechargement est déjà en attente. |
| 422 | VALIDATION_ERROR | Échec de la validation du corps ou de la requête (voir details) |
| 422 | IDEMPOTENCY_KEY_RESERVED | L'Idempotency-Key commence par notify:, un préfixe que HonkIO réserve à ses propres envois. Utilisez une clé avec un autre préfixe. |
| 422 | SIGNUP_CHALLENGE_REQUIRED | L’inscription exige un défi d’inscription résolu et inutilisé, obtenu avec GET /v1/accounts/signup-challenge et envoyé dans altcha (details.reason : missing, invalid ou reused) |
| 422 | WEBHOOK_LIMIT_REACHED | Limite de 10 points de terminaison webhook par compte atteinte. Supprimez-en un avant d’en enregistrer un autre |
| 422 | TEMPLATE_CHANNEL_MISSING | Un envoi a nommé un modèle qui n’a aucune partie pour son canal, dans aucune langue. details.channel indique le canal. Une traduction manquante ne la cause jamais : la partie de la langue par défaut sert à la place. |
| 422 | EMAIL_TEMPLATE_NOT_PUBLISHED | Le modèle n’a pas encore de version publiée. Publiez-le avant de l’utiliser pour un envoi avec une clé de production. Une clé de test envoie le brouillon et ne reçoit jamais cette erreur. |
| 422 | EMAIL_TEMPLATE_VARIABLE_MISSING | Une variable du modèle n’a ni valeur ni valeur de repli. details.keys énumère celles qui manquent. |
| 422 | EMAIL_RENDER_FAILED | Le contenu n’a pas pu être généré : une variable utilise une autre syntaxe que la forme simple entre doubles accolades, ou le texte a dépassé sa taille maximale une fois les variables remplies. |
| 422 | TEMPLATE_LIMIT_REACHED | Ce compte a atteint la limite de 200 modèles. Supprimez-en un pour en créer un autre. |
| 422 | LIVE_MODE_REQUIRED | Cette action exige une clé de production. La vérification sans frais, par exemple, n’existe qu’en mode réel. |
| 429 | RATE_LIMITED | Trop de requêtes. Veuillez ralentir |
| 500 | INTERNAL_ERROR | Une erreur serveur inattendue s’est produite. Réessayez |
| 502 | WEBHOOK_REPLAY_FAILED | Le point de terminaison n’a pas accepté le rejeu. L’évènement reste dans la file des lettres mortes |
| 503 | SERVICE_UNAVAILABLE | Les nouvelles inscriptions sont temporairement désactivées (POST /v1/accounts), ou la vérification téléphonique est temporairement indisponible (POST /v1/accounts/:id/phone-verification). Réessayez plus tard |
Les codes propres à un produit ont leurs propres sections plus bas : codes d’erreur SMS et codes d’erreur du courriel.
Des réponses 500 ou 503 inexpliquées ? status.honkio.ca montre en direct l’état de l’API et des envois, et tout incident que nous sommes en train de régler.
Codes d’erreur SMS
Les codes ci-dessous sont propres aux SMS, aux numéros de téléphone, à la vérification et à la LCAP. Tout appel peut aussi répondre avec les codes de la section générale ci-dessus, comme VALIDATION_ERROR, INSUFFICIENT_BALANCE et NOT_FOUND.
| HTTP | Code | Signification |
|---|---|---|
| 403 | NUMBER_LIMIT_REACHED | Le compte a atteint sa limite de numéros de téléphone |
| 403 | PHONE_NUMBER_NOT_OWNED | Le numéro from n’est pas provisionné sur ce compte. |
| 403 | ALLOW_LIST_BLOCKED | Le destinataire ne figure pas sur la liste ALLOW de cette clé API |
| 403 | DENY_LIST_BLOCKED | Le destinataire figure sur la liste DENY de cette clé API |
| 403 | SEND_LIMIT_REQUEST_TOO_EARLY | Les demandes de volume s’ouvrent une fois la période probatoire du compte terminée. |
| 403 | TOLL_FREE_NOT_VERIFIED | Le numéro sans frais n’est pas encore vérifié pour les SMS. Demandez la vérification, puis envoyez une fois qu’elle est approuvée. |
| 403 | BUSINESS_NUMBER_REQUIRED | La vérification de numéro sans frais exige un numéro d’entreprise de l’ARC dans votre profil d’entreprise vérifié. |
| 404 | VERIFICATION_NOT_FOUND | Identifiant de vérification introuvable ou non associé à ce compte |
| 404 | CONTACT_NOT_FOUND | Contact introuvable |
| 404 | CONTACT_GROUP_NOT_FOUND | Groupe de contacts introuvable |
| 404 | CONTACT_GROUP_MEMBER_NOT_FOUND | Ce contact n’est pas membre de ce groupe |
| 404 | CONTACT_LIST_NOT_FOUND | Liste de contacts introuvable |
| 404 | CONTACT_LIST_ENTRY_NOT_FOUND | Entrée de liste introuvable |
| 409 | VERIFICATION_ALREADY_VERIFIED | Ce numéro a déjà été vérifié |
| 409 | PURCHASE_IN_PROGRESS | Un autre achat de numéro est en cours. Réessayez sous peu |
| 409 | ALLOWANCE_REQUEST_PENDING | Une demande d'allocation est déjà en attente d'examen |
| 409 | PHONE_NUMBER_SUSPENDED | Les frais mensuels de ce numéro n’ont pas pu être prélevés. Rechargez votre solde pour le réactiver. |
| 409 | CONSENT_REVOKED_BY_REVIEW | Consentement non enregistré : HonkIO a révoqué le consentement de ce destinataire après examen du téléversement dont il provenait. Il ne peut plus être enregistré, par aucune voie, à moins que HonkIO ne lève le blocage. |
| 409 | SEND_LIMIT_REQUEST_PENDING | Une demande de volume est déjà en attente d’examen. |
| 409 | NUMBER_IN_OPEN_VERIFICATION | Le numéro fait déjà partie d’une autre demande de vérification sans frais en cours. |
| 409 | COMPED_TOLL_FREE | Les numéros sans frais ne sont pas offerts pour ce compte. |
| 409 | VERIFICATION_NOT_EDITABLE | La demande de vérification sans frais ne peut pas être modifiée ni soumise dans son état actuel. |
| 409 | IDEMPOTENCY_KEY_REUSED | La même clé Idempotency-Key a été envoyée avec un to, from ou body différent. |
| 409 | CONTACT_ALREADY_EXISTS | Un contact avec ce numéro de téléphone ou ce courriel existe déjà |
| 409 | CONTACT_IN_USE | Retirez le contact de ses groupes et de ses listes avant d’effacer son numéro de téléphone |
| 409 | CONTACT_GROUP_ALREADY_EXISTS | Un groupe de contacts avec ce nom existe déjà |
| 409 | CONTACT_GROUP_MEMBER_EXISTS | Le contact est déjà membre de ce groupe |
| 409 | CONTACT_LIST_ALREADY_EXISTS | Une liste de contacts avec ce nom existe déjà |
| 409 | CONTACT_LIST_ENTRY_EXISTS | Cette entrée existe déjà dans la liste |
| 410 | VERIFICATION_EXPIRED | Le code de vérification a expiré |
| 422 | NON_CANADIAN_NUMBER | Numéro E.164 canadien invalide |
| 422 | UNDELIVERABLE_NUMBER | Le numéro a échoué trois fois de suite chez l’opérateur (tous clients confondus) ; refusé sans frais pendant 90 jours. |
| 422 | NOT_A_MOBILE_NUMBER | Le numéro de destination est une ligne fixe ou un numéro VoIP. L’opérateur le refuse avant l’envoi ; rien n’est facturé. |
| 422 | RESERVED_DESTINATION | Le numéro de destination appartient à un central réservé (555-XXXX, N11, codes de test des opérateurs). Refusé avant tout envoi ; rien n’est facturé. |
| 422 | MESSAGE_TOO_LONG | Le texte dépasserait la limite de 10 segments SMS de l'opérateur (≈1 530 caractères GSM-7 ou 670 caractères Unicode). Rien n'est facturé |
| 422 | MESSAGE_NOT_SCHEDULED | Seul un message SCHEDULED peut être déplacé ou annulé. details.current_status indique son statut actuel |
| 422 | VERIFICATION_INVALID_CODE | Code incorrect. attempts_remaining indique le nombre de tentatives restantes |
| 422 | INVALID_ALLOWANCE_REQUEST | L'allocation demandée doit dépasser votre limite actuelle |
| 422 | LINK_SHORTENER_BLOCKED | Les raccourcisseurs de liens sont refusés car les opérateurs les filtrent. Utilisez l’URL complète |
| 422 | BROADCAST_TOO_LARGE | Groupe de contacts trop grand pour une seule diffusion (250 membres par défaut). Divisez-le et envoyez par lots |
| 422 | CANNOT_ERASE_OWN_NUMBER | Ce numéro appartient à votre compte. L’effacement vise uniquement le numéro d’un abonné |
| 422 | TOO_MANY_AREA_CODES | Recherchez au plus 25 indicatifs régionaux à la fois |
| 422 | INVALID_PHONE_NUMBER | Numéro de téléphone E.164 invalide |
| 422 | CONTACT_LIST_ENTRY_INVALID | Chaque entrée doit spécifier exactement l’un des champs phone_number, contact_id ou contact_group_id |
| 422 | CONTACT_HAS_NO_PHONE | Le contact n’a pas de numéro de téléphone ; il ne peut donc pas être ajouté à un groupe ou à une liste SMS |
| 422 | NOT_A_TOLL_FREE_NUMBER | Le numéro n’est pas l’un de vos numéros sans frais : il ne peut ni être vérifié ni envoyer de confirmations de consentement. |
| 429 | RECIPIENT_RATE_LIMITED | Plus de 30 messages vers un même destinataire en une heure ou 100 en une journée ; réessayez après l’en-tête Retry-After. |
| 429 | VERIFICATION_MAX_ATTEMPTS | Trop de tentatives incorrectes. Cette vérification est verrouillée |
| 429 | DAILY_LIMIT_REACHED | Limite d’envoi quotidienne atteinte (les détails indiquent votre limite et le compte). Demandez un volume plus élevé une fois admissible |
| 429 | FANOUT_LIMIT_REACHED | Ce message identique a déjà atteint le nombre maximal de destinataires distincts autorisé sur 24 heures |
| 429 | NUMBER_RATE_LIMITED | Ce numéro d’envoi a déjà une minute complète de segments de message en attente chez l’opérateur. Réessayez après le délai Retry-After |
| 429 | NUMBER_QUEUE_FULL | Une diffusion dépasserait la file d’attente de l’opérateur pour un numéro d’envoi local (1 200 segments de message; les numéros sans frais n’ont pas ce plafond). Retry-After est fourni quand attendre libérerait de la place; sinon, divisez le groupe ou raccourcissez le message |
| 429 | BROADCAST_LIMIT_REACHED | Limite de diffusions atteinte pour ce compte au cours des 24 dernières heures |
| 429 | SCHEDULED_LIMIT_REACHED | Le compte a déjà 10 000 messages réels programmés ou 1 000 messages de test programmés (details contient mode, limit, scheduled et requested). Rien n’a été programmé ni facturé ; annulez-en, ou attendez qu’ils partent |
| 429 | OPT_IN_CONFIRMATION_LIMIT | Déjà 3 confirmations de consentement envoyées à ce destinataire au cours des dernières 24 heures. Réessayez plus tard. |
| 451 | OPT_OUT_BLOCKED | Le destinataire s’est désabonné. L’envoi est donc bloqué par la loi. |
| 451 | NO_CONSENT | Pas de consentement LCAP valide en dossier |
| 451 | CONSENT_EXPIRED | Consentement tacite expiré (LCAP, par. 10(10)) |
| 451 | DOUBLE_OPT_IN_REQUIRED | Envoi sans frais à un destinataire qui n’a pas confirmé son double consentement. Envoyez une confirmation et attendez son OUI. |
| 501 | DNCL_COMING_SOON | Les points de terminaison /v1/compliance/dncl ne sont pas en service. Les textos relèvent du consentement LCAP, pas de la LNNTE, qui vise les appels et les télécopies de télémarketing. |
| 501 | TOLLFREE_800_COMING_SOON | Les numéros 1-800 ne sont pas encore disponibles. Choisissez un autre préfixe sans frais ou un numéro local. |
| 502 | CARRIER_ERROR | L’opérateur a renvoyé une erreur lors de l’envoi. |
| 502 | PROVISIONING_FAILED | L’opérateur n’a pas pu compléter cet achat de numéro. Rien n’a été facturé. |
| 502 | NUMBER_SEARCH_FAILED | La recherche de numéros est temporairement indisponible. |
| 502 | RELEASE_FAILED | L’opérateur n’a pas accepté la libération. Le numéro vous appartient toujours ; réessayez sous peu |
| 503 | CARRIER_UNAVAILABLE | L’opérateur est injoignable ; rien n’a été envoyé ni facturé. Réessayez sous peu. |
| 503 | CARRIER_THROTTLED | L’opérateur nous a demandé de ralentir et n’a pas pris le message. Rien n’a été facturé; réessayez après le délai Retry-After avec la même Idempotency-Key. Comme error_code d’un message FAILED, il signifie que l’opérateur a pris le message puis l’a abandonné parce que la file était pleine : ce message est remboursé, et le renvoyer demande une nouvelle Idempotency-Key |
| 503 | CARRIER_TIMEOUT | L’opérateur n’a pas répondu à temps : le message a peut-être été envoyé, ou non. Son montant est retenu, puis remboursé dès que les relevés de l’opérateur montrent qu’il n’a pas été envoyé. Vérifiez le statut du message avant de l’envoyer de nouveau : une nouvelle tentative avec la même Idempotency-Key renvoie le message en échec au lieu de l’envoyer une seconde fois. |
Codes d’erreur du courriel
Les appels de courriel peuvent aussi répondre avec les codes de la section générale ci-dessus, comme VALIDATION_ERROR, INSUFFICIENT_BALANCE et NOT_FOUND.
| HTTP | Code | Signification |
|---|---|---|
| 403 | EMAIL_DOMAIN_NOT_ALLOWED | La clé API est restreinte à certains domaines d’envoi, et celui-ci n’en fait pas partie. |
| 403 | TEST_KEY_REQUIRED | Seule une clé de test peut appeler ce point de terminaison. |
| 404 | RECEIVED_EMAIL_NOT_FOUND | Aucun courriel reçu avec cet identifiant. |
| 409 | EMAIL_DOMAIN_ALREADY_EXISTS | Le domaine est déjà sur ce compte. |
| 409 | EMAIL_DOMAIN_IN_USE | Un autre compte détient ce domaine. details.retry_after indique quand une revendication non vérifiée expire ; un domaine vérifié reste à son propriétaire. |
| 409 | EMAIL_DOMAIN_HAS_INFLIGHT | Le domaine a encore des courriels en file, programmés ou en cours d’envoi. |
| 409 | EMAIL_IDEMPOTENCY_IN_PROGRESS | Une requête utilisant cette clé Idempotency-Key est encore en cours de traitement. Réessayez la même clé sous peu plutôt que d’en utiliser une nouvelle. |
| 409 | EMAIL_SUPPRESSION_NOT_REMOVABLE | L'adresse s'est désabonnée ou a signalé votre courriel comme pourriel. Seul le destinataire peut revenir sur cette décision, qui ne peut donc pas être retirée par l'API. |
| 409 | EMAIL_TEMPLATE_ALIAS_TAKEN | Un autre modèle de ce compte utilise déjà cet alias. |
| 409 | EMAIL_TEMPLATE_IN_USE | Un courriel programmé utilise ce modèle. Annulez-le, ou attendez qu’il soit envoyé, puis supprimez le modèle. |
| 409 | RECEIVING_REQUIRES_VERIFIED_DOMAIN | Le domaine doit être vérifié pour l’envoi avant que la réception puisse être activée. |
| 410 | ATTACHMENT_EXPIRED | La pièce jointe ou le message brut a dépassé sa fenêtre de conservation de 40 jours. |
| 413 | EMAIL_ATTACHMENT_TOO_LARGE | Les pièces jointes dépassent 25 Mo. |
| 422 | EMAIL_INVALID_ADDRESS | Une adresse n’est pas une adresse courriel valide. |
| 422 | EMAIL_DOMAIN_NOT_VERIFIED | Le domaine de l’expéditeur n’est pas un domaine d’envoi vérifié de ce compte. |
| 422 | EMAIL_DOMAIN_INVALID | Nom de domaine invalide. |
| 422 | EMAIL_DOMAIN_LIMIT_REACHED | Ce compte a atteint sa limite de domaines d’envoi (5 par défaut ; les domaines en échec ne comptent pas). Répondu à l’ajout d’un domaine, ou à la vérification d’un domaine en échec qui reprendrait une place. Retirez-en un ou demandez au soutien de l’augmenter. |
| 422 | EMAIL_TEST_ADDRESS_LIVE_KEY | Une clé réelle ne peut pas envoyer à une adresse sur test.honkio.ca ; ces adresses sont réservées aux clés de test. |
| 422 | EMAIL_HEADER_INVALID | L’adresse d’expéditeur ou un en-tête est mal formé, ou est un en-tête que honkio définit lui-même. |
| 422 | EMAIL_ATTACHMENT_FETCH_FAILED | Une pièce jointe fournie par path n’a pas pu être récupérée. details.reason indique pourquoi : blocked_address, http_status, timeout, too_large ou network. |
| 422 | EMAIL_ATTACHMENT_TYPE_BLOCKED | La pièce jointe est un exécutable ou un script (.exe, .js, .bat, .jar et similaires), un type que les serveurs de courriel destinataires refusent. details.filename l’identifie. Rien n’est facturé. |
| 422 | EMAIL_BATCH_TOO_LARGE | Trop de destinataires dans un seul appel. |
| 422 | EMAIL_COMMERCIAL_MULTI_RECIPIENT | Un courriel commercial va à un seul destinataire. Utilisez un envoi groupé pour en joindre plusieurs. |
| 422 | EMAIL_NOT_SCHEDULED | Seul un courriel programmé peut être déplacé ou annulé. |
| 422 | EMAIL_TEMPLATE_UNDECLARED_VARIABLE | Le corps du modèle utilise une variable qu’il ne déclare pas. Ajoutez-la à variables ; details.keys les énumère. |
| 422 | EMAIL_TEMPLATE_LIMIT_REACHED | Ce compte a atteint la limite de 200 modèles, y compris ceux créés par /v1/templates. Supprimez-en un pour en créer un autre. |
| 422 | SIMULATE_RECIPIENT_NOT_OWNED | Chaque destinataire simulé doit être votre adresse de test ou un domaine que ce compte possède en mode test. |
| 422 | INBOUND_ADDRESS_DISABLED | Votre adresse entrante gérée est désactivée. Réactivez-la avant d’y envoyer. |
| 429 | EMAIL_DAILY_LIMIT_REACHED | Le courriel réel d'un nouveau compte a atteint sa limite de destinataires pour les 24 dernières heures. Les détails indiquent la limite et sa date de levée. |
| 429 | TEST_EMAIL_QUOTA_EXCEEDED | Une clé de test a créé 200 courriels, ou simulé 200 courriels reçus, au cours des 24 dernières heures. Les clés réelles ne sont pas touchées. |
| 451 | EMAIL_SUPPRESSED | Le destinataire figure sur votre liste de suppression. |
| 451 | EMAIL_NO_CONSENT | Le courriel commercial exige un consentement LCAP enregistré pour le destinataire. |
| 451 | EMAIL_OPT_OUT_BLOCKED | Le destinataire s’est désabonné de cet expéditeur. |
| 503 | EMAIL_ATTACHMENTS_UNCONFIGURED | Le stockage des pièces jointes n’est pas configuré, donc les courriels avec pièces jointes ne peuvent pas être envoyés pour le moment. |
Codes d’échec de livraison
Ces codes ne sont jamais une réponse HTTP : l’appel a déjà répondu 201 avant que SES tente l’envoi. Si la livraison échoue quand même, l’un d’eux apparaît comme failure_code sur le webhook email.failed ou email.rejected, et les frais sont remboursés. Un courriel planifié est vérifié de nouveau à son échéance : si le compte a été suspendu ou fermé entre-temps, ou ne détient plus le domaine d’expéditeur vérifié, le courriel échoue avec ACCOUNT_SUSPENDED, ACCOUNT_CLOSED ou EMAIL_DOMAIN_NOT_VERIFIED et est remboursé de la même façon.
| Code | Signification |
|---|---|
| SES_THROTTLING | SES a limité le débit d’envoi ; le courriel a échoué et a été remboursé ; renvoyez-le. |
| SES_MESSAGE_REJECTED | SES a rejeté le message d’emblée, par exemple un contenu mal formé ; le courriel a échoué et a été remboursé ; corrigez le contenu et renvoyez-le. |
| SES_DOMAIN_NOT_VERIFIED | SES n’avait pas terminé de vérifier le domaine d’expéditeur, même si la vérification de honkio avait réussi ; le courriel a échoué et a été remboursé ; attendez la fin de la vérification, puis renvoyez-le. |
| SES_ERROR | Une erreur SES qui ne correspond à aucun autre code ; le courriel a échoué et a été remboursé ; renvoyez-le. |
| EMAIL_ATTACHMENTS_UNAVAILABLE | Les octets de la pièce jointe stockée n’ont pas pu être lus au moment de l’envoi ; le courriel a échoué et a été remboursé ; renvoyez-le. |
Codes de HonkIO Auth
Les codes de l’API de gestion HonkIO Auth (/v1/auth-apps). Elle renvoie aussi les codes généraux.
| HTTP | Code | Signification |
|---|---|---|
| 409 | AUTH_APP_HOSTNAME_TAKEN | Une autre application détient déjà ce nom d’hôte. |
| 422 | AUTH_APP_HOSTNAME_INVALID | Ce nom d’hôte ne peut pas servir de page de connexion : utilisez un sous-domaine qui vous appartient, pas un domaine racine ni un domaine de HonkIO. |
| 422 | AUTH_APP_REDIRECT_INVALID | Un URI de redirection n’est pas valide : HTTPS, exact, sans caractère générique, fragment ni identifiants; localhost sur les applications de test seulement. |
| 422 | AUTH_APP_NAME_INVALID | Le nom de l’application ou la couleur de marque n’est pas valide. |
| 422 | AUTH_APP_NAME_PROTECTED | Le nom de l’application est trop proche d’une marque protégée. |
| 422 | AUTH_APP_PUBLIC_CLIENT | L’application est un client public et n’a pas de secret à remplacer. |
| 422 | AUTH_APP_FREE_LIMIT | Le compte a déjà une application gratuite en direct. Passez celle-ci à un forfait payant, ou faites de celle-ci une application de test. |
| 422 | AUTH_APP_LIMIT | Le compte a déjà le nombre maximal d’applications dans ce mode : 10 applications de test, 25 en direct. Supprimez-en une dont vous ne vous servez plus. |
| 422 | AUTH_APP_HOSTNAME_LIMIT | Le nom d’hôte a besoin d’un certificat, et les applications du compte en détiennent déjà le maximum à la fois : 3 pour les applications de test, 25 en direct. Supprimez une application dont vous ne vous servez plus. |
| 503 | AUTH_APP_DOMAIN_UNAVAILABLE | La configuration du domaine et du certificat est brièvement indisponible. Réessayez sous peu. |
| 422 | AUTH_APP_PLAN_FEATURE | Le forfait de l’application ne comprend pas cette méthode de connexion. Changez d’abord de forfait. |
| 422 | AUTH_APP_METHODS_INVALID | Les réglages de méthodes ne sont pas valides : gardez au moins une méthode activée et, pour une application en direct, choisissez un numéro d’envoi avant d’activer la connexion par texto. |
| 422 | AUTH_APP_NUMBER_INVALID | Ce numéro ne peut pas envoyer de textos de connexion. Utilisez un numéro actif de ce compte qui peut envoyer des SMS. |
| 422 | AUTH_APP_SEND_FROM_INVALID | Le courriel de connexion ne peut venir que d’un domaine de courriel vérifié et en direct de ce compte que la clé peut utiliser. |
| 422 | AUTH_APP_HOSTNAME_CHANGE_NEEDS_FALLBACK | Passer à ce nom d’hôte empêcherait les clés d’accès de fonctionner, et les clés d’accès sont la seule méthode de connexion de l’application. Activez d’abord la connexion par courriel ou par texto. |
| 422 | AUTH_APP_LOGO_INVALID | Le logo doit être un PNG, JPEG, WebP ou GIF d’au moins 16 × 16 pixels, dans la partie multipart nommée logo. Le SVG n’est pas accepté. |
| 413 | AUTH_APP_LOGO_TOO_LARGE | Le logo dépasse 1 Mo. |
| 503 | AUTH_APP_LOGO_UNAVAILABLE | Le téléversement du logo est brièvement indisponible. Réessayez sous peu. |
| 403 | AUTH_SECURITY_FEATURE_UNAVAILABLE | Ce réglage de sécurité exige un forfait que l’application n’a pas. Le blocage des numéros VoIP commence au forfait Pro. |
| 409 | AUTH_SECURITY_BLOCKLIST_DUPLICATE | La valeur figure déjà dans la liste de blocage de l’application. |
| 422 | AUTH_SECURITY_BLOCKLIST_INVALID | La valeur de la liste de blocage ne correspond pas à son type. Les détails indiquent la forme attendue. |
| 422 | AUTH_SECURITY_BLOCKLIST_FULL | L’application compte déjà 1 000 entrées dans sa liste de blocage. Retirez-en, ou bloquez plutôt un domaine, un préfixe ou une plage entière. |
| 403 | AUTH_SECURITY_TEXTS_PAUSED_BY_HONKIO | Les textos de connexion de l’application sont suspendus par HonkIO. Seul HonkIO peut les reprendre; communiquez avec le soutien. |
| 409 | AUTH_SECURITY_TEXTS_PAUSE_CHANGED | Les textos de connexion de l’application ont été suspendus de nouveau pendant leur reprise. Vérifiez pourquoi ils sont suspendus, puis réessayez. |
| 402 | AUTH_PLAN_INSUFFICIENT_BALANCE | Le solde ne couvre pas le changement de forfait et les montants de connexion impayés. Rechargez, puis réessayez. |
| 404 | AUTH_PLAN_NO_SCHEDULED_CHANGE | L’application n’a aucun changement de forfait prévu à annuler. |
| 422 | AUTH_PLAN_DOWNGRADE_OVER_LIMIT | L’application compte plus d’utilisateurs actifs que le forfait gratuit n’en inclut (dans ce cycle de facturation ou le précédent) : elle ne peut donc pas y passer. details.active_users et details.limit donnent les nombres. |
| 403 | AUTH_ORG_PLAN_REQUIRED | Les organisations, les rôles et les invitations à une organisation exigent le forfait Affaires. |
| 403 | AUTH_ORG_TWO_STEP_PLAN_REQUIRED | Le forfait n’inclut pas ce réglage de vérification en deux étapes : elle exige le forfait Pro, et l’exiger par organisation ou par rôle exige le forfait Affaires. |
| 409 | AUTH_ORG_SLUG_TAKEN | Une autre organisation de l’application utilise déjà cet identifiant court. |
| 409 | AUTH_ORG_ROLE_IN_USE | Un membre ou une invitation en attente a encore ce rôle. Changez d’abord leur rôle. |
| 409 | AUTH_ORG_MEMBERSHIP_EXISTS | L’utilisateur est déjà membre de l’organisation. |
| 422 | AUTH_ORG_NAME_INVALID | Le nom ou l’identifiant court de l’organisation n’est pas valide : un nom simple d’au plus 100 caractères sans lien (ni adresse Web, ni / ni :), et un identifiant court en lettres minuscules, chiffres et tirets. |
| 422 | AUTH_ORG_ROLE_INVALID | Le rôle n’est pas valide ici : utilisez admin, member ou un rôle créé pour l’organisation. Les rôles intégrés ne peuvent pas être supprimés. |
| 422 | AUTH_ORG_SIGN_UP_DOMAINS_INVALID | Les domaines d’inscription doivent être au plus 50 noms de domaine, et le mode par domaines en exige au moins un. |
| 409 | AUTH_INVITATION_NOT_PENDING | L’invitation a déjà été acceptée, révoquée, ou a expiré. |
| 422 | AUTH_INVITATION_INVALID | Une invitation exige exactement un courriel ou un numéro de mobile valide, un rôle seulement avec une organisation, et un redirect_url sur l’une des origines de redirection de l’application. |
| 409 | AUTH_USER_IDENTIFIER_TAKEN | Un autre utilisateur de l’application a déjà cette adresse courriel ou ce numéro de mobile. |
| 422 | AUTH_USER_IDENTIFIER_REQUIRED | Un utilisateur doit garder une adresse courriel ou un numéro de mobile. |
| 422 | AUTH_USER_IDENTIFIER_INVALID | L’adresse courriel ou le numéro de mobile n’est pas valide. Les numéros de mobile doivent être canadiens. |
| 403 | STEP_UP_REQUIRED | Cette action exige une nouvelle confirmation de votre identité : obtenez un jeton de confirmation pour la portée indiquée dans details.scope, puis réessayez avec ce jeton. La suppression d’utilisateurs en lot en exige toujours un (auth_users:bulk_delete); une exportation en exige un depuis une session du tableau de bord. |
| 403 | AUTH_APP_STEP_UP_REQUIRED | Remplacer le secret client, changer le nom d’hôte, changer le courriel ou le numéro d’un utilisateur, supprimer un utilisateur ou lui retirer une clé d’accès depuis une session du tableau de bord exige une nouvelle confirmation de votre identité. Les clés API n’en ont pas besoin. |
| 403 | AUTH_EXPORT_STEP_UP_REQUIRED | Une exportation exige un jeton de vérification renforcée auth_users:export dans l’en-tête X-Step-Up-Token. |
| 409 | AUTH_EXPORT_IN_PROGRESS | Une exportation de l’application est déjà en préparation. Attendez qu’elle soit terminée. |
| 409 | AUTH_EXPORT_NOT_READY | L’exportation est encore en préparation. Réessayez le lien dans une minute. |
| 410 | AUTH_EXPORT_LINK_INVALID | Le lien de téléchargement a expiré ou a déjà servi. Lancez une nouvelle exportation. |
| 503 | AUTH_EXPORT_UNAVAILABLE | Les exportations sont brièvement indisponibles. Réessayez plus tard. |
Codes d’erreur push
Erreurs propres au push, en plus des erreurs habituelles de validation et d'authentification :
| HTTP | Code | Signification |
|---|---|---|
| 403 | PUSH_DISABLED | Les notifications sont désactivées pour ce compte. Rien n’a été envoyé ni facturé; contactez le soutien. |
| 404 | PUSH_APP_NOT_FOUND | Aucune application push avec cet identifiant dans ce compte, ou l'application a été supprimée. L'envoi avec son app_id, l'enregistrement d'un appareil et sa gestion renvoient tous ce code. |
| 404 | PUSH_DEVICE_NOT_FOUND | Aucun appareil push avec cet identifiant dans le mode de cette clé. |
| 409 | PUSH_IDEMPOTENCY_IN_PROGRESS | La même Idempotency-Key a été rejouée alors que le premier appel était encore en cours d'acceptation. Réessayez sous peu avec la même clé. |
| 409 | PUSH_DEVICE_LIMIT | À l'enregistrement d'un appareil : l'application a déjà son maximum d'appareils actifs dans ce mode (1 000 000 en production, 1 000 en test). Désinscrivez les appareils auxquels vous n'envoyez plus. |
| 409 | DPA_PUSH_ACCEPTANCE_REQUIRED | À la création d’une application push : le compte a accepté l’entente sur le traitement des renseignements personnels de HonkIO avant qu’elle couvre les notifications push. Acceptez la version en vigueur dans Paramètres, Entente sur le traitement des renseignements personnels. Un compte qui n’a jamais accepté l’entente n’est pas visé. |
| 422 | PUSH_NO_TARGET | Indiquez exactement un champ parmi to.user_id et to.device_id. |
| 422 | PUSH_PAYLOAD_TOO_LARGE | La charge finale dépasse 4096 octets. details.bytes_over indique de combien. Rien n'est facturé. |
| 422 | PUSH_NO_CREDENTIAL | L'application n'a aucun identifiant pour la plateforme des appareils visés, et il n'y a pas de repli. |
| 422 | PUSH_CREDENTIAL_INVALID | À l'ajout ou au remplacement d'un identifiant : Apple ou Google l'a refusé, ou ce n'est pas le type de clé qu'ils émettent. details indique le fournisseur, l'environnement s'il est connu, et la raison. |
| 422 | PUSH_NOT_SCHEDULED | Seule une notification programmée peut être déplacée ou annulée. |
| 429 | PUSH_DAILY_CAP | Le compte a atteint sa limite quotidienne de notifications. |
| 501 | PUSH_COMING_SOON | Les notifications push ne sont pas encore activées pour la plateforme. |
| 503 | PUSH_PROVIDER_UNAVAILABLE | Renvoyé quand vous téléversez ou remplacez un identifiant et qu'Apple ou Google n'a pas pu être joint pour le vérifier. Réessayez sous peu. |
Codes d’erreur de Notify
Les refus reviennent dans le corps d'erreur habituel. Ces codes appartiennent à Notify; les autres sont dans la référence des erreurs.
| HTTP | Code | Signification |
|---|---|---|
| 404 | RECIPIENT_NOT_FOUND | Aucun profil avec ce user_id dans le mode de la clé, et aucun appareil push actif pour lui. |
| 409 | RECIPIENT_LIMIT_REACHED | Le compte a déjà son maximum de profils dans ce mode : 1 000 000 en direct, 1 000 en test. details.limit l'indique. |
| 422 | NOTIFY_SENDER_REQUIRED | Un canal qui peut joindre la personne n'a pas d'expéditeur. details.channel le nomme. |
| 422 | NOTIFY_CONTENT_REQUIRED | Rien à envoyer : indiquez text (et un subject pour le courriel), ou un template. details.field indique ce qui manque. |
| 422 | NOTIFY_CONTENT_TOO_LARGE | Ce que la notification enverrait sur les canaux qui peuvent joindre la personne, une fois rendu, dépasse 2 Mo. details.bytes et details.limit indiquent les tailles. |
| 501 | NOTIFY_COMING_SOON | Notify n'est pas encore activé pour la plateforme. |
HonkIO