Référence de l’API
Comptes
Gestion du compte et clés API.
/v1/accounts/{id}Obtenir les détails du compte
account:rNécessite account:r.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string |
Réponses
200Le compte avec ses clés API actives.
Champ Type Description accountobligatoireobject Un compte, tel que le renvoient l’inscription et PATCH /v1/accounts/{id}.
idobligatoirestring nameobligatoirestring emailobligatoirestring stripe_customer_idobligatoirestring - Peut être null
email_verified_atobligatoirestring - Format : date-time
- Peut être null
statusobligatoirestring - Une valeur parmi : PENDING_PAYMENT | ACTIVE | SUSPENDED | CLOSED
balance_centsobligatoireinteger Solde de crédit en cents CAD.
verified_phoneobligatoirestring - Peut être null
phone_verified_atobligatoirestring - Format : date-time
- Peut être null
email_undeliverableobligatoireboolean Vaut true lorsque les courriels de la plateforme envoyés à cette adresse rebondissent ou sont signalés comme pourriels.
email_undeliverable_atobligatoirestring Le rebond ou la plainte qui a rendu l’adresse injoignable.
- Format : date-time
- Peut être null
email_undeliverable_reasonobligatoirestring BOUNCE ou COMPLAINT.
- Peut être null
terms_accepted_atobligatoirestring Moment où le propriétaire a accepté les Conditions d’utilisation et la Politique de confidentialité.
- Format : date-time
- Peut être null
terms_versionobligatoirestring La version des Conditions (date de dernière mise à jour) qui a été acceptée.
- Peut être null
created_atobligatoirestring - Format : date-time
monthly_rent_centsobligatoireinteger Loyer mensuel dû pour chaque numéro non encore libéré (ACTIVE et SUSPENDED).
low_balanceobligatoireboolean Vaut true lorsque le solde créditeur ne suffirait pas à couvrir le loyer des numéros de téléphone du mois prochain.
phone_number_limitobligatoireinteger Nombre maximal de numéros de téléphone que ce compte peut détenir.
phone_numbers_usedobligatoireinteger Numéros actuellement détenus (ACTIVE et SUSPENDED).
email_domain_limitinteger Nombre maximal de domaines d’envoi de production que ce compte peut détenir. Présent uniquement lorsque le courriel est offert.
email_domains_usedinteger Domaines d’envoi de production détenus (tous les statuts sauf FAILED). Présent uniquement lorsque le courriel est offert.
inbound_email_daily_capinteger Nombre de courriels reçus que ce compte peut accepter par période glissante de 24 h avant que les courriels suivants soient stockés comme rejetés, sans facturation (0 = illimité) ; la valeur propre au compte, ou la valeur par défaut de la plateforme. Présent uniquement lorsque le service de courriel est offert.
inbound_email_received_24hinteger Courriels reçus comptabilisés dans le plafond ci-dessus, pour la fenêtre glissante actuelle de 24 h. Présent uniquement lorsque le service de courriel est offert.
inbound_sms_daily_capobligatoireinteger Nombre de SMS reçus que ce compte peut accepter par période glissante de 24 h avant que les SMS suivants soient stockés sans facturation et ne soient pas transmis en tant que message.received (0 = illimité) ; la valeur propre au compte, ou la valeur par défaut de la plateforme.
inbound_sms_received_24hobligatoireinteger SMS reçus comptabilisés dans le plafond ci-dessus, pour la fenêtre glissante actuelle de 24 h.
api_keys[]obligatoireobject[] Les clés USER actives du compte (les clés de session du tableau de bord ne sont pas listées).
idobligatoirestring keyPrefixobligatoirestring Préfixe non secret, pour l’affichage et l’identification.
modeobligatoirestring - Une valeur parmi : LIVE | TEST
labelobligatoirestring - Peut être null
createdAtobligatoirestring - Format : date-time
lastUsedAtobligatoirestring - Format : date-time
- Peut être null
defaultDenyobligatoireboolean Présent dans GET /v1/accounts/me et /v1/accounts/{id} ; absent de la réponse de connexion.
permissionsobligatoireobject Permissions par ressource. Chaque clé de l’objet est le nom d’une ressource ; la valeur est une chaîne de lettres désignant les opérations permises : r=lecture, w=écriture/création, m=modification/mise à jour, d=suppression. Si une ressource est absente, tout accès à celle-ci est refusé.
email_domain_idsobligatoirestring[] Les domaines de courriel à partir desquels cette clé peut envoyer (identifiants provenant de /v1/email-domains) : null en l’absence de restriction, [] lorsqu’elle n’est autorisée pour aucun domaine (ses domaines ont été supprimés). Présent dans GET /v1/accounts/me et /v1/accounts/{id} ; absent de la réponse de connexion.
- Peut être null
oauth_grantobligatoireboolean Vaut true lorsqu’une connexion OAuth détient cette clé : elle peut être révoquée, mais pas renouvelée (409 CONFLICT, details.reason "oauth_grant"). Présent sur GET /v1/accounts/me et /v1/accounts/{id} ; absent de la réponse de connexion.
featuresobligatoireobject Fonctionnalités de la plateforme actuellement offertes à ce compte.
emailobligatoireboolean Vaut true lorsque le produit courriel est offert ; false tant que son accès est encore restreint.
- 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403FORBIDDEN : l’identifiant n’appartient pas au compte de la clé appelante, ou la clé n’a pas l’autorisation requise par cette opération.Le corps d’erreur standard.
- 404NOT_FOUND : aucune ressource correspondante sur ce compte.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl https://api.honkio.ca/v1/accounts/ID \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/accounts/{id}Mettre à jour le nom ou les paramètres du compte
account:mname est obligatoire : une valeur omise ou vide est refusée avec 422 VALIDATION_ERROR.
Nécessite account:m.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string |
Corps de la requête
| Champ | Type | Description |
|---|---|---|
name | string | Obligatoire.
|
Réponses
200Le compte mis à jour.
Champ Type Description idobligatoirestring nameobligatoirestring emailobligatoirestring stripe_customer_idobligatoirestring - Peut être null
email_verified_atobligatoirestring - Format : date-time
- Peut être null
statusobligatoirestring - Une valeur parmi : PENDING_PAYMENT | ACTIVE | SUSPENDED | CLOSED
balance_centsobligatoireinteger Solde de crédit en cents CAD.
verified_phoneobligatoirestring - Peut être null
phone_verified_atobligatoirestring - Format : date-time
- Peut être null
email_undeliverableobligatoireboolean Vaut true lorsque les courriels de la plateforme envoyés à cette adresse rebondissent ou sont signalés comme pourriels.
email_undeliverable_atobligatoirestring Le rebond ou la plainte qui a rendu l’adresse injoignable.
- Format : date-time
- Peut être null
email_undeliverable_reasonobligatoirestring BOUNCE ou COMPLAINT.
- Peut être null
terms_accepted_atobligatoirestring Moment où le propriétaire a accepté les Conditions d’utilisation et la Politique de confidentialité.
- Format : date-time
- Peut être null
terms_versionobligatoirestring La version des Conditions (date de dernière mise à jour) qui a été acceptée.
- Peut être null
created_atobligatoirestring - Format : date-time
- 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403FORBIDDEN : l’identifiant n’appartient pas au compte de la clé appelante, ou la clé n’a pas l’autorisation requise par cette opération.Le corps d’erreur standard.
- 422VALIDATION_ERROR : la requête n’a pas passé la validation ; details indique les champs en cause.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl -X PATCH https://api.honkio.ca/v1/accounts/ID \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Clinics"
}'/v1/accounts/meObtenir le compte auquel appartient la clé API
account:rRenvoie le même document que GET /v1/accounts/{id}, en déterminant le compte à partir de la clé API ; aucun identifiant n’est donc nécessaire.
Nécessite account:r.
Réponses
200Le compte auquel appartient la clé API.
Champ Type Description accountobligatoireobject Un compte, tel que le renvoient l’inscription et PATCH /v1/accounts/{id}.
idobligatoirestring nameobligatoirestring emailobligatoirestring stripe_customer_idobligatoirestring - Peut être null
email_verified_atobligatoirestring - Format : date-time
- Peut être null
statusobligatoirestring - Une valeur parmi : PENDING_PAYMENT | ACTIVE | SUSPENDED | CLOSED
balance_centsobligatoireinteger Solde de crédit en cents CAD.
verified_phoneobligatoirestring - Peut être null
phone_verified_atobligatoirestring - Format : date-time
- Peut être null
email_undeliverableobligatoireboolean Vaut true lorsque les courriels de la plateforme envoyés à cette adresse rebondissent ou sont signalés comme pourriels.
email_undeliverable_atobligatoirestring Le rebond ou la plainte qui a rendu l’adresse injoignable.
- Format : date-time
- Peut être null
email_undeliverable_reasonobligatoirestring BOUNCE ou COMPLAINT.
- Peut être null
terms_accepted_atobligatoirestring Moment où le propriétaire a accepté les Conditions d’utilisation et la Politique de confidentialité.
- Format : date-time
- Peut être null
terms_versionobligatoirestring La version des Conditions (date de dernière mise à jour) qui a été acceptée.
- Peut être null
created_atobligatoirestring - Format : date-time
monthly_rent_centsobligatoireinteger Loyer mensuel dû pour chaque numéro non encore libéré (ACTIVE et SUSPENDED).
low_balanceobligatoireboolean Vaut true lorsque le solde créditeur ne suffirait pas à couvrir le loyer des numéros de téléphone du mois prochain.
phone_number_limitobligatoireinteger Nombre maximal de numéros de téléphone que ce compte peut détenir.
phone_numbers_usedobligatoireinteger Numéros actuellement détenus (ACTIVE et SUSPENDED).
email_domain_limitinteger Nombre maximal de domaines d’envoi de production que ce compte peut détenir. Présent uniquement lorsque le courriel est offert.
email_domains_usedinteger Domaines d’envoi de production détenus (tous les statuts sauf FAILED). Présent uniquement lorsque le courriel est offert.
inbound_email_daily_capinteger Nombre de courriels reçus que ce compte peut accepter par période glissante de 24 h avant que les courriels suivants soient stockés comme rejetés, sans facturation (0 = illimité) ; la valeur propre au compte, ou la valeur par défaut de la plateforme. Présent uniquement lorsque le service de courriel est offert.
inbound_email_received_24hinteger Courriels reçus comptabilisés dans le plafond ci-dessus, pour la fenêtre glissante actuelle de 24 h. Présent uniquement lorsque le service de courriel est offert.
inbound_sms_daily_capobligatoireinteger Nombre de SMS reçus que ce compte peut accepter par période glissante de 24 h avant que les SMS suivants soient stockés sans facturation et ne soient pas transmis en tant que message.received (0 = illimité) ; la valeur propre au compte, ou la valeur par défaut de la plateforme.
inbound_sms_received_24hobligatoireinteger SMS reçus comptabilisés dans le plafond ci-dessus, pour la fenêtre glissante actuelle de 24 h.
api_keys[]obligatoireobject[] Les clés USER actives du compte (les clés de session du tableau de bord ne sont pas listées).
idobligatoirestring keyPrefixobligatoirestring Préfixe non secret, pour l’affichage et l’identification.
modeobligatoirestring - Une valeur parmi : LIVE | TEST
labelobligatoirestring - Peut être null
createdAtobligatoirestring - Format : date-time
lastUsedAtobligatoirestring - Format : date-time
- Peut être null
defaultDenyobligatoireboolean Présent dans GET /v1/accounts/me et /v1/accounts/{id} ; absent de la réponse de connexion.
permissionsobligatoireobject Permissions par ressource. Chaque clé de l’objet est le nom d’une ressource ; la valeur est une chaîne de lettres désignant les opérations permises : r=lecture, w=écriture/création, m=modification/mise à jour, d=suppression. Si une ressource est absente, tout accès à celle-ci est refusé.
email_domain_idsobligatoirestring[] Les domaines de courriel à partir desquels cette clé peut envoyer (identifiants provenant de /v1/email-domains) : null en l’absence de restriction, [] lorsqu’elle n’est autorisée pour aucun domaine (ses domaines ont été supprimés). Présent dans GET /v1/accounts/me et /v1/accounts/{id} ; absent de la réponse de connexion.
- Peut être null
oauth_grantobligatoireboolean Vaut true lorsqu’une connexion OAuth détient cette clé : elle peut être révoquée, mais pas renouvelée (409 CONFLICT, details.reason "oauth_grant"). Présent sur GET /v1/accounts/me et /v1/accounts/{id} ; absent de la réponse de connexion.
featuresobligatoireobject Fonctionnalités de la plateforme actuellement offertes à ce compte.
emailobligatoireboolean Vaut true lorsque le produit courriel est offert ; false tant que son accès est encore restreint.
- 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403La clé API ne dispose pas de la permission requise pour cette opération, ou le compte est suspendu ou fermé.Le corps d’erreur standard.
- 404NOT_FOUND : aucune ressource correspondante sur ce compte.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl https://api.honkio.ca/v1/accounts/me \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/accounts/{id}/topup-allowanceAllocation de recharge (plafond de solde et plafond sur 30 jours glissants)
account:rNécessite account:r.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string |
Réponses
200Montant qu’il est possible d’ajouter maintenant. Les montants sont en cents CAD.
Champ Type Description max_topup_now_centsobligatoireinteger La recharge la plus élevée acceptée actuellement : la plus petite des deux marges disponibles.
headroom_balance_centsobligatoireinteger Marge restante sous le plafond de solde.
headroom_30d_centsobligatoireinteger Marge restante sous le plafond glissant de 30 jours.
max_balance_centsobligatoireinteger max_30d_centsobligatoireinteger balance_centsobligatoireinteger topped_up_30d_centsobligatoireinteger - 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403FORBIDDEN : l’identifiant n’appartient pas au compte de la clé appelante, ou la clé n’a pas l’autorisation requise par cette opération.Le corps d’erreur standard.
- 404NOT_FOUND : aucune ressource correspondante sur ce compte.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl https://api.honkio.ca/v1/accounts/ID/topup-allowance \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/accounts/{id}/usageObtenir le résumé d’utilisation d’une période de facturation
account:rNombre de messages, coût facturé et parties SMS pour la période (par défaut, le mois civil en cours), ainsi que l’état de la livraison réelle : "delivery" { liveOutbound, delivered, failed, undelivered, pending, failureRatePct } sur les messages sortants réels (réponses automatiques exclues) et "byNumber", les mêmes chiffres par numéro d’envoi, du plus actif au moins actif. Un failureRatePct en hausse signale généralement de mauvais numéros, des lignes fixes ou un script qui relance sans cesse le même destinataire ; au-delà de 10 % sur vos 50 derniers envois, vous recevez un courriel et l’événement account.delivery_warning est déclenché.
Nécessite account:r.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
fromrequête | string | Date de début (AAAA-MM-JJ)
|
torequête | string | Date de fin (AAAA-MM-JJ)
|
idobligatoirechemin | string |
Réponses
200Utilisation pour la période. Les noms de champs sont en camelCase, contrairement au reste de l’API.
Champ Type Description totalMessagesobligatoireinteger Tous les messages de la période, y compris les messages entrants et ceux en mode test.
testMessagesobligatoireinteger Nombre de messages, parmi totalMessages, qui étaient des simulations en mode test, sans aucuns frais.
outboundMessagesobligatoireinteger inboundMessagesobligatoireinteger totalCostCentsobligatoireinteger Coût des messages LIVE, en cents CAD.
segmentCountobligatoireinteger Parties SMS facturées en mode LIVE.
deliveryobligatoireobject liveOutboundobligatoireinteger deliveredobligatoireinteger failedobligatoireinteger undeliveredobligatoireinteger pendingobligatoireinteger Accepté, aucun verdict de l’opérateur pour l’instant.
failureRatePctobligatoirenumber (failed + undelivered) / liveOutbound x 100, arrondi à une décimale ; 0 en l’absence de trafic.
byNumber[]obligatoireobject[] Les mêmes statistiques de livraison par numéro d’envoi, du plus actif au moins actif.
fromobligatoirestring liveOutboundobligatoireinteger deliveredobligatoireinteger failedobligatoireinteger undeliveredobligatoireinteger failureRatePctobligatoirenumber periodobligatoireobject fromobligatoirestring - Format : date-time
toobligatoirestring Fin exclusive de la période.
- Format : date-time
- 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403FORBIDDEN : l’identifiant n’appartient pas au compte de la clé appelante, ou la clé n’a pas l’autorisation requise par cette opération.Le corps d’erreur standard.
- 422VALIDATION_ERROR : date mal formée, ou to antérieur à from.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl https://api.honkio.ca/v1/accounts/ID/usage \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/accounts/{id}/transactionsLister les transactions du solde (grand livre), des plus récentes aux plus anciennes
account:rTous les mouvements de solde non liés aux messages : recharges, remboursements et litiges Stripe, loyer des numéros, frais de provisionnement et suppléments de vérification, paginés du plus récent au plus ancien. Les coûts par message SMS ou courriel n’y sont PAS inclus ; consultez la liste des messages ou des courriels pour les obtenir.
Nécessite account:r.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
limitrequête | integer |
|
beforerequête | string | Identifiant de la plus ancienne transaction déjà consultée. Renvoie la page suivante (plus ancienne). |
idobligatoirechemin | string |
Réponses
200Registre paginé des transactions du solde
Champ Type Description transactions[]object[] idstring amount_centsinteger Valeur signée : positive = crédit, négative = débit
balance_after_centsinteger reasonstring Raison du mouvement de solde : topup, refund, dispute, phone_rent, provisioning, activation, verification et leurs annulations *_refund ; admin_adjustment pour les modifications faites par notre équipe. Les frais SMS par message n’apparaissent pas ici : ils figurent sur les messages eux-mêmes. Les corrections ponctuelles portent leurs propres raisons (inbound_backfill, overcharge_refund, sweep_reversal).
tax_centsinteger Recharges seulement, lorsque des taxes de vente ont été perçues : la TPS/TVH facturée en sus de amount_cents. amount_cents correspond toujours au crédit, avant taxes. Absent dans les autres cas.
charged_centsinteger Recharges seulement, lorsque des taxes de vente ont été perçues : le montant débité de la carte, soit amount_cents plus tax_cents. Absent dans les autres cas.
created_atstring - Format : date-time
has_moreboolean - 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403La clé API ne dispose pas de la permission requise pour cette opération, ou le compte est suspendu ou fermé.Le corps d’erreur standard.
- 404NOT_FOUND : également lorsque l’id n’est pas celui du compte de la clé appelante (404 plutôt que 403, afin de ne pas confirmer l’existence du grand livre).Le corps d’erreur standard.
- 422VALIDATION_ERROR : la requête n’a pas passé la validation ; details indique les champs en cause.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl https://api.honkio.ca/v1/accounts/ID/transactions \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/accounts/{id}/api-keysÉmettre une nouvelle clé API
api_keys:wNécessite api_keys:w.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string | |
X-Step-Up-Tokenen-tête | string | Un jeton obtenu par POST /v1/auth/step-up avec la portée api_keys:elevate. Nécessaire uniquement pour demander des permissions plus étendues que celles de la clé appelante, ou lorsque la clé appelante est une clé de session du tableau de bord. |
Corps de la requête
| Champ | Type | Description |
|---|---|---|
mode | string | Par défaut, le mode de la clé appelante. Une clé de test ne peut créer que des clés de test.
|
label | string |
|
permissions | object | Permissions par ressource. Chaque clé de l’objet est le nom d’une ressource ; la valeur est une chaîne des opérations permises : r=lecture, w=écriture, m=modification, d=suppression. Omettez une ressource pour en refuser tout accès. Exemple : { "messages": "rw", "contacts": "r" }. Si ce champ est omis, la nouvelle clé reçoit les permissions de la clé appelante. Une clé ne peut accorder que les permissions qu’elle détient elle-même, sauf si la requête comporte un jeton de confirmation |
email_domain_ids | string[] | Restreint la clé à l’envoi de courriels depuis ces domaines (identifiants provenant de /v1/email-domains). Si ce champ est omis, la clé hérite de la restriction de la clé appelante, le cas échéant. Une clé restreinte ne peut créer que des clés restreintes à un sous-ensemble de ses propres domaines, sauf si la requête comporte un jeton de confirmation api_keys:elevate. |
Réponses
201Clé API émise. La clé brute n’est affichée qu’une seule fois : conservez-la en lieu sûr.
Champ Type Description keystring Clé API complète (affichée une seule fois)
prefixstring Préfixe non secret pour l’affichage et l’identification
modestring - Une valeur parmi : live | test
permissionsobject Permissions par ressource.
email_domain_idsstring[] - Peut être null
noticestring - 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403FORBIDDEN (ce n’est pas votre compte), LIVE_KEY_REQUIRED (une clé de test a demandé une clé de production), KEY_FENCED (la clé appelante est restreinte par une liste d’autorisation ou de blocage) ou PERMISSION_ESCALATION (autorisations ou domaines courriel plus étendus que ceux de la clé appelante, ou clé de session du tableau de bord, sans confirmation par mot de passe api_keys:elevate).Le corps d’erreur standard.
- 422VALIDATION_ERROR : la requête n’a pas passé la validation ; details indique les champs en cause.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl -X POST https://api.honkio.ca/v1/accounts/ID/api-keys \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"mode": "live",
"label": "Production server"
}'/v1/accounts/{id}/api-keys/{keyId}/rotateRenouveler une clé API (émettre une clé de remplacement et révoquer l’ancienne de façon atomique)
api_keys:wLes clés de session (celles créées lors de la connexion au tableau de bord) ne peuvent pas être renouvelées : elles expirent toujours d’elles-mêmes, et tenter d’en renouveler une renvoie 409 CONFLICT avec details.reason "session_key". Renouvelez plutôt une clé USER. Une clé détenue par une connexion OAuth (oauth_grant dans la liste des clés) ne peut pas non plus être renouvelée : la clé de remplacement n’appartiendrait pas à la connexion, et l’application cesserait de fonctionner. Cela renvoie 409 CONFLICT avec details.reason "oauth_grant" ; révoquez plutôt la connexion, puis reconnectez-la.
Nécessite api_keys:w.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string | |
keyIdobligatoirechemin | string | |
X-Step-Up-Tokenen-tête | string | Un jeton obtenu par POST /v1/auth/step-up avec la portée api_keys:elevate. Nécessaire uniquement pour renouveler une clé en une clé détenant plus de permissions que la clé appelante, ou lorsque la clé appelante est une clé de session du tableau de bord. |
Réponses
201La clé de remplacement, affichée une seule fois. L’ancienne clé est révoquée dans la même opération ; la nouvelle conserve son mode, son libellé, ses permissions, son paramètre de refus par défaut, ses listes et sa restriction de domaines de courriel.
Champ Type Description keyobligatoirestring La nouvelle clé API complète (affichée une seule fois).
prefixobligatoirestring modeobligatoirestring - Une valeur parmi : live | test
revoked_idobligatoirestring L’identifiant de la clé que celle-ci a remplacée.
noticeobligatoirestring - 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403FORBIDDEN (ce n’est pas votre compte), LIVE_KEY_REQUIRED (une clé de test tente de renouveler une clé de production), KEY_FENCED (une clé restreinte par une liste d’autorisation ou de blocage tente de renouveler une autre clé qu’elle-même) ou PERMISSION_ESCALATION (la clé cible détient plus d’autorisations que la clé appelante, ou l’appelant est une clé de session du tableau de bord, sans confirmation par mot de passe api_keys:elevate).Le corps d’erreur standard.
- 404NOT_FOUND : aucune ressource correspondante sur ce compte.Le corps d’erreur standard.
- 409CONFLICT : la clé est déjà révoquée, est en cours de renouvellement par une autre requête, est une clé de session du tableau de bord (details.reason vaut session_key) ou est détenue par une connexion OAuth (details.reason vaut oauth_grant).Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl -X POST https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID/rotate \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/accounts/{id}/api-keys/{keyId}Révoquer une clé API
api_keys:dNécessite api_keys:d.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string | |
keyIdobligatoirechemin | string |
Réponses
- 204Révocation effectuée.
- 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403FORBIDDEN (ce n’est pas votre compte) ou LIVE_KEY_REQUIRED (une clé de test tente de révoquer une clé de production).Le corps d’erreur standard.
- 404NOT_FOUND : aucune ressource correspondante sur ce compte.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl -X DELETE https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/accounts/{id}/api-keys/{keyId}/default-denyActiver ou désactiver le mode de refus par défaut d’une clé API
api_keys:mLorsque default_deny vaut true, les messages envoyés avec cette clé sont bloqués, sauf si le destinataire figure dans une liste ALLOW attribuée.
Nécessite api_keys:m.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string | |
keyIdobligatoirechemin | string |
Corps de la requête
| Champ | Type | Description |
|---|---|---|
default_denyobligatoire | boolean |
Réponses
200Le nouveau paramètre de refus par défaut de la clé.
Champ Type Description api_key_idobligatoirestring default_denyobligatoireboolean - 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403FORBIDDEN (ce n’est pas votre compte), LIVE_KEY_REQUIRED (une clé de test tente de modifier une clé de production) ou KEY_FENCED (une clé restreinte tente de modifier son propre refus par défaut ou celui d’une autre clé).Le corps d’erreur standard.
- 404NOT_FOUND : aucune ressource correspondante sur ce compte.Le corps d’erreur standard.
- 422VALIDATION_ERROR : la requête n’a pas passé la validation ; details indique les champs en cause.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl -X PATCH https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID/default-deny \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"default_deny": false
}'/v1/accounts/{id}/api-keys/{keyId}/listsObtenir les listes d’autorisation et de blocage attribuées à une clé API
api_keys:rNécessite api_keys:r.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string | |
keyIdobligatoirechemin | string |
Réponses
200Les listes d’autorisation et de blocage de la clé, null si aucune n’est attribuée.
Champ Type Description allow_listobligatoireobject | any deny_listobligatoireobject | any - 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403FORBIDDEN : l’identifiant n’appartient pas au compte de la clé appelante, ou la clé n’a pas l’autorisation requise par cette opération.Le corps d’erreur standard.
- 404NOT_FOUND : aucune ressource correspondante sur ce compte.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID/lists \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/accounts/{id}/api-keys/{keyId}/lists/{mode}Assigner une liste d’autorisation ou de blocage à une clé API
api_keys:mNécessite api_keys:m.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string | |
keyIdobligatoirechemin | string | |
modeobligatoirechemin | string |
|
Corps de la requête
| Champ | Type | Description |
|---|---|---|
list_idobligatoire | string |
Réponses
200La liste désormais attribuée.
Champ Type Description api_key_idobligatoirestring modeobligatoirestring - Une valeur parmi : ALLOW | DENY
list_idobligatoirestring - 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403FORBIDDEN (ce n’est pas votre compte), LIVE_KEY_REQUIRED (une clé de test tente de modifier une clé de production) ou KEY_FENCED (une clé restreinte tente de modifier ses propres listes ou celles d’une autre clé).Le corps d’erreur standard.
- 404NOT_FOUND (clé inexistante) ou CONTACT_LIST_NOT_FOUND.Le corps d’erreur standard.
- 422VALIDATION_ERROR : la requête n’a pas passé la validation ; details indique les champs en cause.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl -X PUT https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID/lists/MODE \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"list_id": "..."
}'/v1/accounts/{id}/api-keys/{keyId}/lists/{mode}Retirer une liste d’autorisation ou de blocage d’une clé API
api_keys:mNécessite api_keys:m.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string | |
keyIdobligatoirechemin | string | |
modeobligatoirechemin | string |
|
Réponses
- 204Attribution retirée (également lorsque rien n’était attribué).
- 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403FORBIDDEN (ce n’est pas votre compte), LIVE_KEY_REQUIRED (une clé de test tente de modifier une clé de production) ou KEY_FENCED (une clé restreinte tente de modifier ses propres listes ou celles d’une autre clé).Le corps d’erreur standard.
- 404NOT_FOUND : aucune ressource correspondante sur ce compte.Le corps d’erreur standard.
- 422VALIDATION_ERROR : la requête n’a pas passé la validation ; details indique les champs en cause.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl -X DELETE https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID/lists/MODE \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/accounts/{id}/phone-verificationDémarrer la vérification du numéro du propriétaire du compte
account:mNécessite account:m.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string |
Corps de la requête
| Champ | Type | Description |
|---|---|---|
phoneobligatoire | string | Numéro canadien ou américain du NANP au format E.164, p. ex. +14165551234 |
Réponses
200Le code a été envoyé par SMS.
Champ Type Description sentobligatoireboolean - Une valeur parmi : true
expires_in_secondsobligatoireinteger - 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403FORBIDDEN (ce n’est pas votre compte) ou LIVE_KEY_REQUIRED (la vérification du propriétaire nécessite une clé de production).Le corps d’erreur standard.
- 422VALIDATION_ERROR : la requête n’a pas passé la validation ; details indique les champs en cause.Le corps d’erreur standard.
- 429RATE_LIMITED : 3 codes par heure et par compte.Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
- 502CARRIER_ERROR : l’opérateur n’a pas accepté le SMS.Le corps d’erreur standard.
- 503SERVICE_UNAVAILABLE : la vérification du numéro du propriétaire n’est pas configurée.Le corps d’erreur standard.
Exemple
curl -X POST https://api.honkio.ca/v1/accounts/ID/phone-verification \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone": "+1613XXXXXXX"
}'/v1/accounts/{id}/phone-verification/confirmConfirmer le code de vérification (NPU) pour terminer la vérification du numéro de téléphone
account:mNécessite account:m.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string |
Corps de la requête
| Champ | Type | Description |
|---|---|---|
codeobligatoire | string | Le code à 6 chiffres envoyé par SMS |
Réponses
200Vérifié : les envois réels sont débloqués.
Champ Type Description verifiedobligatoireboolean - Une valeur parmi : true
verified_phoneobligatoirestring verified_atobligatoirestring - Format : date-time
- 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403FORBIDDEN (ce n’est pas votre compte) ou LIVE_KEY_REQUIRED (la vérification du propriétaire nécessite une clé de production).Le corps d’erreur standard.
- 422VALIDATION_ERROR, VERIFICATION_EXPIRED (aucun code en attente ; statusCode 422 dans le corps) ou VERIFICATION_INVALID_CODE.Le corps d’erreur standard.
- 429VERIFICATION_MAX_ATTEMPTS : cinq codes erronés ; demandez-en un nouveau.Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl -X POST https://api.honkio.ca/v1/accounts/ID/phone-verification/confirm \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"code": "123456"
}'/v1/send-limitVos limites d’envoi et votre utilisation actuelle
account:rLa limite quotidienne (sur 24 heures glissantes), la part déjà utilisée, la limite par destinataire, le statut de probation qui conditionne « demander un volume plus élevé », toute pause en cours et vos demandes antérieures.
Nécessite account:r.
Réponses
200Limites d’envoi, utilisation et demandes de volume antérieures.
Champ Type Description daily_limitobligatoireinteger Envois réels autorisés sur une période mobile de 24 heures.
sent_last_24hobligatoireinteger remainingobligatoireinteger window_hoursobligatoireinteger approved_daily_limitobligatoireinteger Le volume standard accordé par défaut à une demande.
probation_daysobligatoireinteger recipient_rate_per_hourobligatoireinteger Messages qu’un même destinataire peut recevoir du compte par heure.
recipient_rate_per_dayobligatoireinteger Messages qu’un même destinataire peut recevoir du compte par jour.
probationobligatoireobject started_atobligatoirestring Le premier envoi réel ; null avant celui-ci.
- Format : date-time
- Peut être null
ends_atobligatoirestring - Format : date-time
- Peut être null
eligible_to_requestobligatoireboolean paused_untilobligatoirestring Défini pendant que l’envoi est en pause.
- Format : date-time
- Peut être null
pause_reasonobligatoirestring Raison de la pause des envois : OPT_OUT_RATE, FAILURE_RATE ou MANUAL.
- Peut être null
requests[]obligatoireobject[] idobligatoirestring requested_limitobligatoireinteger Nombre de messages par jour demandé ; null demande le volume approuvé standard.
- Peut être null
limit_at_requestobligatoireinteger sent_last_30d_at_requestobligatoireinteger reasonobligatoirestring statusobligatoirestring - Une valeur parmi : PENDING | APPROVED | DENIED
granted_limitobligatoireinteger - Peut être null
staff_noteobligatoirestring - Peut être null
decided_atobligatoirestring - Format : date-time
- Peut être null
created_atobligatoirestring - Format : date-time
- 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403La clé API ne dispose pas de la permission requise pour cette opération, ou le compte est suspendu ou fermé.Le corps d’erreur standard.
- 404NOT_FOUND : aucune ressource correspondante sur ce compte.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl https://api.honkio.ca/v1/send-limit \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/send-limit/requestsLister vos demandes de volume
account:rNécessite account:r.
Réponses
200Les demandes de volume du compte, des plus récentes aux plus anciennes.
Champ Type Description data[]obligatoireobject[] idobligatoirestring requested_limitobligatoireinteger Nombre de messages par jour demandé ; null demande le volume approuvé standard.
- Peut être null
limit_at_requestobligatoireinteger sent_last_30d_at_requestobligatoireinteger reasonobligatoirestring statusobligatoirestring - Une valeur parmi : PENDING | APPROVED | DENIED
granted_limitobligatoireinteger - Peut être null
staff_noteobligatoirestring - Peut être null
decided_atobligatoirestring - Format : date-time
- Peut être null
created_atobligatoirestring - Format : date-time
- 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403La clé API ne dispose pas de la permission requise pour cette opération, ou le compte est suspendu ou fermé.Le corps d’erreur standard.
- 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl https://api.honkio.ca/v1/send-limit/requests \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/send-limit/requestsDemander un volume d’envoi quotidien plus élevé
account:wAccessible une fois que le compte a terminé sa période probatoire (comptée à partir de son premier envoi réel). Omettez requested_limit pour demander le volume approuvé standard, ou indiquez une cible. Une seule demande peut être en attente à la fois ; vous recevez un courriel lorsqu’une décision est rendue.
Nécessite account:w.
Corps de la requête
| Champ | Type | Description |
|---|---|---|
requested_limit | integer | Nombre de messages par jour souhaité (et non une augmentation). Omettez-le pour obtenir le volume approuvé standard.
|
reasonobligatoire | string | Ce que vous envoyez et à qui. Notre équipe en tient compte pour décider. De 10 à 1 000 caractères. |
Réponses
201La demande, en attente d’examen.
Champ Type Description idobligatoirestring requested_limitobligatoireinteger Nombre de messages par jour demandé ; null demande le volume approuvé standard.
- Peut être null
limit_at_requestobligatoireinteger sent_last_30d_at_requestobligatoireinteger reasonobligatoirestring statusobligatoirestring - Une valeur parmi : PENDING | APPROVED | DENIED
granted_limitobligatoireinteger - Peut être null
staff_noteobligatoirestring - Peut être null
decided_atobligatoirestring - Format : date-time
- Peut être null
created_atobligatoirestring - Format : date-time
- 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
- 403SEND_LIMIT_REQUEST_TOO_EARLY (période probatoire non terminée ; details.eligible_at) ou LIVE_KEY_REQUIRED.Le corps d’erreur standard.
- 404NOT_FOUND : aucune ressource correspondante sur ce compte.Le corps d’erreur standard.
- 409SEND_LIMIT_REQUEST_PENDING : une demande est déjà en attente.Le corps d’erreur standard.
- 422VALIDATION_ERROR : la requête n’a pas passé la validation ; details indique les champs en cause.Le corps d’erreur standard.
- 429RATE_LIMITED : 3 requêtes par jour et par compte.Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
Exemple
curl -X POST https://api.honkio.ca/v1/send-limit/requests \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "..."
}'
HonkIO