Référence de l’API

Comptes

Gestion du compte et clés API.

get/v1/accounts/{id}

Obtenir les détails du compte

Permissionaccount:r

Nécessite account:r.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Réponses

  • 200Le compte avec ses clés API actives.
    ChampTypeDescription
    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. Toujours false tant que le compte est offert gratuitement.

    rent_owed_centsobligatoireinteger

    Loyer dû (en cents CAD) pour un numéro libéré pendant sa suspension, 0 lorsque rien n’est dû. Tant que ce montant est supérieur à 0, les envois payants et les achats de numéros sont refusés avec RENT_OWED; un rechargement le paie en premier. Non appliqué tant que le compte est offert gratuitement.

    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_email_daily_mb_capinteger

    Mo facturables de courriel reçu (les Mo entamés au-delà du premier Mo de chaque message, la part facturée au Mo) que ce compte peut accepter par fenêtre glissante de 24 h ; un message qui le dépasserait est stocké refusé (daily_mb_cap) et n’est pas facturé (0 = illimité). Le remplacement propre au compte, ou la valeur par défaut de la plateforme. Présent uniquement lorsque le service de courriel est offert.

    inbound_email_mb_received_24hinteger

    Mo facturables comptabilisés dans le plafond en Mo 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 segments SMS reçus (l’unité facturée : un long texto en compte plusieurs) 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

    Segments 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.

    pushboolean

    Présent, et vaut true, lorsque le produit de notifications push est en service.

    notifyboolean

    Présent, et vaut true, lorsque Notify (/v1/notify, /v1/recipients) est en service.

    honkio_authboolean

    Présent, et vaut true, lorsque HonkIO Auth est offert à ce compte.

    compedobligatoireobject

    Présent tant que HonkIO offre ce compte gratuitement : rien n’est prélevé sur le solde, qui reste tel quel. Null autrement.

    • Peut être null
    sinceobligatoirestring

    Moment où le compte est devenu gratuit.

    • Format : date-time
    month_cost_centsobligatoireinteger

    Ce que l’utilisation de ce compte a coûté à HonkIO ce mois civil (heure de l’Est), en cents CAD.

    threshold_centsobligatoireinteger

    L’utilisation mensuelle, en cents CAD, au-delà de laquelle le propriétaire reçoit un courriel, au plus une fois par mois. L’envoi continue au-delà.

  • 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
curl https://api.honkio.ca/v1/accounts/ID \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
patch/v1/accounts/{id}

Mettre à jour le nom ou les paramètres du compte

Permissionaccount:m

name est obligatoire : une valeur omise ou vide est refusée avec 422 VALIDATION_ERROR.

Nécessite account:m.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Corps de la requête

ChampTypeDescription
namestring

Obligatoire.

  • Au moins 1 caractères
  • Au plus 200 caractères

Réponses

  • 200Le compte mis à jour.
    ChampTypeDescription
    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
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"
  }'
get/v1/accounts/me

Obtenir le compte auquel appartient la clé API

Permissionaccount:r

Renvoie 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. S’y ajoute caller : le mode de la clé qui appelle et, pour une connexion OAuth, le client auquel elle a été accordée.

Nécessite account:r.

Réponses

  • 200Le compte auquel appartient la clé API, et qui appelle.
    ChampTypeDescription
    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. Toujours false tant que le compte est offert gratuitement.

    rent_owed_centsobligatoireinteger

    Loyer dû (en cents CAD) pour un numéro libéré pendant sa suspension, 0 lorsque rien n’est dû. Tant que ce montant est supérieur à 0, les envois payants et les achats de numéros sont refusés avec RENT_OWED; un rechargement le paie en premier. Non appliqué tant que le compte est offert gratuitement.

    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_email_daily_mb_capinteger

    Mo facturables de courriel reçu (les Mo entamés au-delà du premier Mo de chaque message, la part facturée au Mo) que ce compte peut accepter par fenêtre glissante de 24 h ; un message qui le dépasserait est stocké refusé (daily_mb_cap) et n’est pas facturé (0 = illimité). Le remplacement propre au compte, ou la valeur par défaut de la plateforme. Présent uniquement lorsque le service de courriel est offert.

    inbound_email_mb_received_24hinteger

    Mo facturables comptabilisés dans le plafond en Mo 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 segments SMS reçus (l’unité facturée : un long texto en compte plusieurs) 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

    Segments 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.

    pushboolean

    Présent, et vaut true, lorsque le produit de notifications push est en service.

    notifyboolean

    Présent, et vaut true, lorsque Notify (/v1/notify, /v1/recipients) est en service.

    honkio_authboolean

    Présent, et vaut true, lorsque HonkIO Auth est offert à ce compte.

    compedobligatoireobject

    Présent tant que HonkIO offre ce compte gratuitement : rien n’est prélevé sur le solde, qui reste tel quel. Null autrement.

    • Peut être null
    sinceobligatoirestring

    Moment où le compte est devenu gratuit.

    • Format : date-time
    month_cost_centsobligatoireinteger

    Ce que l’utilisation de ce compte a coûté à HonkIO ce mois civil (heure de l’Est), en cents CAD.

    threshold_centsobligatoireinteger

    L’utilisation mensuelle, en cents CAD, au-delà de laquelle le propriétaire reçoit un courriel, au plus une fois par mois. L’envoi continue au-delà.

    callerobligatoireobject

    Qui appelle : le mode de la clé et, pour une connexion OAuth, son client.

    modeobligatoirestring

    Le mode de la clé qui a fait cette requête. Une clé TEST est un bac à sable : rien de ce qu’elle envoie n’est transmis à un opérateur ni facturé.

    • Une valeur parmi : LIVE | TEST
    oauth_clientobligatoireobject

    Le client OAuth auquel le jeton d’accès de cette requête a été accordé ; null quand la requête utilise une clé API.

    • Peut être null
    idobligatoirestring

    L’identifiant du client : l’URL de son document de métadonnées, ou un identifiant dcr_ pour un client qui s’est inscrit lui-même.

    nameobligatoirestring

    Le nom du client affiché sur la page de consentement quand la connexion a été approuvé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.
  • 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
curl https://api.honkio.ca/v1/accounts/me \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
get/v1/accounts/{id}/topup-allowance

Allocation de recharge (plafond de solde et plafond sur 30 jours glissants)

Permissionaccount:r

Nécessite account:r.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Réponses

  • 200Montant qu’il est possible d’ajouter maintenant. Les montants sont en cents CAD.
    ChampTypeDescription
    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
curl https://api.honkio.ca/v1/accounts/ID/topup-allowance \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
get/v1/accounts/{id}/usage

Obtenir le résumé d’utilisation d’une période de facturation

Permissionaccount:r

Nombre de messages (tous, réels et de test), coût facturé et parties SMS pour la période (par défaut, le mois civil en cours), le nombre de courriels réels de la période et leur prix en millièmes de cent CAD (emailCostMillicents) lorsque le courriel est offert, 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ètreTypeDescription
fromrequêtestring

Date de début (AAAA-MM-JJ)

  • Format : date
torequêtestring

Date de fin (AAAA-MM-JJ)

  • Format : date
idobligatoirecheminstring

Réponses

  • 200Utilisation pour la période. Les noms de champs sont en camelCase, contrairement au reste de l’API.
    ChampTypeDescription
    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
    liveOutboundMessagesobligatoireinteger

    La part LIVE de outboundMessages.

    liveInboundMessagesobligatoireinteger

    La part LIVE de inboundMessages.

    totalCostCentsobligatoireinteger

    Coût des messages LIVE, en cents CAD. Les courriels, les numéros de téléphone et les forfaits HonkIO Auth n’y sont pas inclus.

    segmentCountobligatoireinteger

    Segments SMS facturés en mode LIVE.

    emailsSentinteger

    Courriels LIVE remis au fournisseur pendant la période (envoyés, livrés, rejetés ou signalés comme pourriel). Présent uniquement lorsque le courriel est offert.

    emailsReceivedinteger

    Courriels LIVE reçus et remis au compte pendant la période (sans ceux refusés au-delà du plafond de réception). Présent uniquement lorsque le courriel est offert.

    emailCostMillicentsinteger

    Prix de emailsSent et emailsReceived, en millièmes de cent CAD. Présent uniquement lorsque le courriel est offert.

    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
curl https://api.honkio.ca/v1/accounts/ID/usage \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
get/v1/accounts/{id}/transactions

Lister les transactions du solde (grand livre), des plus récentes aux plus anciennes

Permissionaccount:r

Tous 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ètreTypeDescription
limitrequêteinteger
  • Minimum : 1
  • Maximum : 100
  • Par défaut : 50
beforerequêtestring

Identifiant de la plus ancienne transaction déjà consultée. Renvoie la page suivante (plus ancienne).

idobligatoirecheminstring

Réponses

  • 200Registre paginé des transactions du solde
    ChampTypeDescription
    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
curl https://api.honkio.ca/v1/accounts/ID/transactions \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
post/v1/accounts/{id}/api-keys

Émettre une nouvelle clé API

Permissionapi_keys:w

Nécessite api_keys:w.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
X-Step-Up-Tokenen-têtestring

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

ChampTypeDescription
modestring

Par défaut, le mode de la clé appelante. Une clé de test ne peut créer que des clés de test.

  • Une valeur parmi : live | test
labelstring
  • Au plus 100 caractères
permissionsobject

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 api_keys:elevate (X-Step-Up-Token). Une clé de test ne peut créer que des clés de test. Une clé de session du tableau de bord (celle que crée la connexion) a toujours besoin de cette confirmation pour créer une clé, même une clé dont les permissions ne dépassent pas les siennes.

email_domain_idsstring[]

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.
    ChampTypeDescription
    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), 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) ou ACCOUNT_EMAIL_NOT_VERIFIED (le compte n’a pas encore vérifié son adresse courriel ; aucune clé, de production ou de test, n’est créée avant cela).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
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"
  }'
post/v1/accounts/{id}/api-keys/{keyId}/rotate

Renouveler une clé API (émettre une clé de remplacement et révoquer l’ancienne de façon atomique)

Permissionapi_keys:w

Les 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. Les courriels planifiés et en file d’attente de la clé sont conservés : ils partent comme prévu, sous la clé de remplacement. Pour les arrêter aussi, par exemple quand une clé a été divulguée, révoquez plutôt la clé (DELETE).

Nécessite api_keys:w.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
keyIdobligatoirecheminstring
X-Step-Up-Tokenen-têtestring

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.
    ChampTypeDescription
    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), 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) ou ACCOUNT_EMAIL_NOT_VERIFIED (le compte n’a pas encore vérifié son adresse courriel).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
curl -X POST https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID/rotate \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
delete/v1/accounts/{id}/api-keys/{keyId}

Révoquer une clé API

Permissionapi_keys:d

Révoque la clé immédiatement. Les courriels qu’elle a planifiés ou mis en file d’attente qui ne sont pas encore partis ne sont pas envoyés : chacun échoue avec le failure_code API_KEY_REVOKED et est remboursé à son échéance. C’est ainsi qu’on contient une clé divulguée; le renouvellement les conserve.

Nécessite api_keys:d.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
keyIdobligatoirecheminstring

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
curl -X DELETE https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
patch/v1/accounts/{id}/api-keys/{keyId}/default-deny

Activer ou désactiver le mode de refus par défaut d’une clé API

Permissionapi_keys:m

Lorsque 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ètreTypeDescription
idobligatoirecheminstring
keyIdobligatoirecheminstring

Corps de la requête

ChampTypeDescription
default_denyobligatoireboolean

Réponses

  • 200Le nouveau paramètre de refus par défaut de la clé.
    ChampTypeDescription
    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
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
  }'
get/v1/accounts/{id}/api-keys/{keyId}/lists

Obtenir les listes d’autorisation et de blocage attribuées à une clé API

Permissionapi_keys:r

Nécessite api_keys:r.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
keyIdobligatoirecheminstring

Réponses

  • 200Les listes d’autorisation et de blocage de la clé, null si aucune n’est attribuée.
    ChampTypeDescription
    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
curl https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID/lists \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
put/v1/accounts/{id}/api-keys/{keyId}/lists/{mode}

Assigner une liste d’autorisation ou de blocage à une clé API

Permissionapi_keys:m

La liste doit être du mode de la clé (les contacts, groupes et listes sont tenus séparément pour chaque mode de clé) : une clé de test prend une liste de test et une clé de production une liste de production, et une liste de l’autre mode répond CONTACT_LIST_NOT_FOUND.

Nécessite api_keys:m.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
keyIdobligatoirecheminstring
modeobligatoirecheminstring
  • Une valeur parmi : allow | deny

Corps de la requête

ChampTypeDescription
list_idobligatoirestring

Réponses

  • 200La liste désormais attribuée.
    ChampTypeDescription
    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 (liste inexistante, ou liste de l’autre mode : une clé ne prend que des listes de son propre mode).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
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": "..."
  }'
delete/v1/accounts/{id}/api-keys/{keyId}/lists/{mode}

Retirer une liste d’autorisation ou de blocage d’une clé API

Permissionapi_keys:m

Nécessite api_keys:m.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
keyIdobligatoirecheminstring
modeobligatoirecheminstring
  • Une valeur parmi : allow | deny

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
curl -X DELETE https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID/lists/MODE \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
post/v1/accounts/{id}/phone-verification

Démarrer la vérification du numéro du propriétaire du compte

Permissionaccount:m

Nécessite account:m.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Corps de la requête

ChampTypeDescription
phoneobligatoirestring

Numéro canadien ou américain du NANP au format E.164, p. ex. +14165551234

Réponses

  • 200Le code a été envoyé par SMS.
    ChampTypeDescription
    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. CARRIER_THROTTLED : l’opérateur nous a demandé de ralentir et n’a pas pris le SMS ; redemandez après le délai Retry-After.Le corps d’erreur standard.

Exemple

cURL
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"
  }'
post/v1/accounts/{id}/phone-verification/confirm

Confirmer le code de vérification (NPU) pour terminer la vérification du numéro de téléphone

Permissionaccount:m

Nécessite account:m.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Corps de la requête

ChampTypeDescription
codeobligatoirestring

Le code à 6 chiffres envoyé par SMS

Réponses

  • 200Vérifié : les envois réels sont débloqués.
    ChampTypeDescription
    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
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"
  }'
get/v1/auto-topup

Vos paramètres de rechargement automatique

Indique si le rechargement automatique est activé, le solde qui le déclenche et le montant qu’il ajoute, un résumé de la carte enregistrée, s’il est en pause et pourquoi, ainsi que les 10 tentatives les plus récentes. available vaut false lorsque le rechargement automatique ne peut pas être utilisé sur cette plateforme pour le moment. On l’active par une recharge depuis le tableau de bord, qui enregistre la carte ; il ne peut pas être modifié avec une clé d’API.

Nécessite account:r.

Réponses

  • 200Paramètres du rechargement automatique, résumé de la carte enregistrée, état de pause et tentatives récentes.
    ChampTypeDescription
    availableobligatoireboolean

    Vaut false lorsque le rechargement automatique ne peut pas être utilisé sur cette plateforme pour le moment. Les autres champs décrivent toujours vos paramètres.

    enabledobligatoireboolean

    Indique si le rechargement automatique est activé. Il peut être activé et en pause (paused_at).

    threshold_centsobligatoireinteger

    Lorsque votre solde passe sous ce seuil, en cents CAD, votre carte est débitée. Null avant la première activation du rechargement automatique.

    • Peut être null
    amount_centsobligatoireinteger

    Le crédit ajouté par chaque rechargement automatique, en cents CAD, avant taxes. Toujours au moins égal à threshold_cents, de sorte qu’un seul rechargement ramène le solde à ce niveau. Null avant la première activation du rechargement automatique.

    • Peut être null
    cardobligatoireobject | any

    La carte enregistrée que débite le rechargement automatique. Null lorsqu’aucune carte n’est enregistrée.

    paused_atobligatoirestring

    Moment où le rechargement automatique a été mis en pause. Rien n’est débité pendant la pause. Vous le reprenez avec « Recharger pour reprendre » dans la section Rechargement automatique de la page Facturation du tableau de bord, ce qui crée une nouvelle recharge qui enregistre de nouveau votre carte. Une pause pour ACCOUNT_REVIEW ne peut pas être reprise de cette façon (voir paused_reason).

    • Format : date-time
    • Peut être null
    paused_reasonobligatoirestring

    Raison de la pause : la carte a été refusée, exigeait une authentification, a expiré ou a été retirée ; l’adresse de facturation n’a pas pu servir au calcul des taxes ; un paiement a été remboursé et retiré du solde (REFUND) ; la limite de 3 prélèvements en 24 heures a été atteinte (CHARGE_LIMIT) ; le compte est en cours d’examen ; ou le personnel de HonkIO l’a mis en pause. Vous pouvez reprendre pour toutes les raisons sauf ACCOUNT_REVIEW, avec « Recharger pour reprendre » dans le tableau de bord. Vous ne pouvez pas reprendre vous-même après ACCOUNT_REVIEW. L’événement webhook account.auto_topup_paused porte la même valeur dans reason.

    • Une valeur parmi : DECLINED | AUTHENTICATION_REQUIRED | EXPIRED_CARD | CARD_REMOVED | BILLING_ADDRESS | ACCOUNT_REVIEW | ADMIN | REFUND | CHARGE_LIMIT
    • Peut être null
    cap_blockedobligatoireboolean

    Vaut true tant que le rechargement automatique ignore les prélèvements parce qu’un prélèvement dépasserait votre solde maximal ou votre limite de rechargement sur 30 jours.

    setup_pendingobligatoireboolean

    Vaut true lorsqu’une configuration a été commencée sans être terminée : les paramètres ont été choisis dans le tableau de bord et la recharge qui enregistre la carte n’est pas encore terminée. Ils ne prennent effet qu’à ce moment. Vaut false une fois la recharge terminée, ainsi qu’après la modification des paramètres ou la désactivation du rechargement automatique.

    monthly_rent_centsobligatoireinteger

    Loyer mensuel des numéros que vous détenez, en cents CAD. Le rechargement automatique recharge aussi à l’avance lorsqu’un loyer est dû dans la journée.

    attempts[]obligatoireobject[]

    Les 10 tentatives les plus récentes, de la plus récente à la plus ancienne.

    idobligatoirestring

    ata_…

    triggerobligatoirestring

    threshold : le solde est passé sous threshold_cents. rent : le solde était inférieur au loyer des numéros dû dans les 24 heures.

    • Une valeur parmi : threshold | rent
    statusobligatoirestring

    skipped_cap : aucun prélèvement, car la recharge aurait dépassé votre solde maximal ou votre limite de rechargement sur 30 jours.

    • Une valeur parmi : pending | succeeded | failed | skipped_cap
    amount_centsobligatoireinteger

    Le crédit ajouté à votre solde, en cents CAD.

    tax_centsobligatoireinteger

    Taxe de vente ajoutée à amount_cents, en cents CAD. Null lorsqu’aucune taxe n’a été calculée.

    • Peut être null
    total_centsobligatoireinteger

    Le montant débité sur la carte, en cents CAD : amount_cents plus tax_cents. Null avant le prélèvement.

    • Peut être null
    failure_codeobligatoirestring

    Raison de l’échec d’une tentative : un code de carte comme card_declined ou expired_card, ou platform_error lorsque l’échec vient de HonkIO (le rechargement automatique n’est pas mis en pause et réessaie). Les tentatives qui n’ont rien débité ni rien mis en pause (abandoned, not_needed) ne sont jamais affichées.

    • Peut être null
    created_atobligatoirestring
    • Format : date-time
    settled_atobligatoirestring
    • Format : date-time
    • Peut être null
  • 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

const { data, error } = await honkio.autoTopup.get()
if (error) throw new Error(error.message)
console.log(data.enabled, data.paused_at)
get/v1/send-limit

Vos limites d’envoi et votre utilisation actuelle

La 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. La limite et l’usage de premier niveau portent sur les envois depuis des numéros locaux ; toll_free contient l’allocation distincte des envois depuis des numéros sans frais, sans probation. number_queues montre la file d’attente de chacun de vos numéros chez l’opérateur : les segments envoyés par minute, les segments en attente et le moment où ils devraient tous être partis (une estimation).

Nécessite account:r.

Réponses

  • 200Limites d’envoi, utilisation et demandes de volume antérieures.
    ChampTypeDescription
    daily_limitobligatoireinteger

    Envois réels depuis des numéros locaux autorisés sur une période mobile de 24 heures. null quand le compte n’a pas de limite quotidienne.

    • Peut être null
    sent_last_24hobligatoireinteger
    remainingobligatoireinteger

    null quand le compte n’a pas de limite quotidienne.

    • Peut être null
    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
    verify_pauseobligatoireany | object

    Codes de vérification réels suspendus par la détection du pompage de SMS (POST /v1/verify répond 403 SENDING_PAUSED avec details.channel « verify ») ; les messages ne sont pas touchés. null quand rien n’est suspendu. DELETE /v1/verify/pause lève la suspension.

    toll_freeobligatoireobject

    L’allocation distincte des envois depuis des numéros sans frais. Les envois depuis des numéros locaux ne comptent que dans les chiffres de premier niveau.

    daily_limitobligatoireinteger

    Envois réels depuis des numéros sans frais autorisés sur une période mobile de 24 heures. Il n’y a pas de probation. null quand le compte n’a pas de limite quotidienne.

    • Peut être null
    sent_last_24hobligatoireinteger

    Envois réels depuis des numéros sans frais au cours des 24 dernières heures.

    remainingobligatoireinteger

    null quand le compte n’a pas de limite quotidienne.

    • Peut être null
    fanout_max_recipientsobligatoireinteger

    Destinataires distincts qu’un même corps de message peut atteindre depuis des numéros sans frais en 24 heures.

    broadcast_max_recipientsobligatoireinteger

    Membres qu’une diffusion de groupe de contacts depuis un numéro sans frais peut atteindre.

    broadcasts_per_dayobligatoireinteger

    Diffusions de groupe de contacts depuis des numéros sans frais par période mobile de 24 heures.

    number_queues[]obligatoireobject[]

    La file d’attente de chacun de vos numéros actifs chez l’opérateur : l’opérateur envoie les segments de message d’un numéro à un rythme fixe, si bien qu’une liste prend du temps. Une estimation, d’après les segments déjà transmis.

    phone_numberobligatoirestring
    parts_per_minuteobligatoireinteger

    Segments de message que l’opérateur envoie depuis ce numéro par minute (10 pour un numéro local).

    queued_partsobligatoireinteger

    Parties en attente en ce moment. Un envoi est refusé avec NUMBER_RATE_LIMITED tant qu’une minute de parties est en attente.

    clears_atobligatoirestring

    Le moment où les segments en attente devraient tous être partis ; null quand rien n’attend.

    • Format : date-time
    • 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

const { data, error } = await honkio.sendLimit.get()
if (error) throw new Error(error.message)
// daily_limit and remaining are null when the account has no daily limit.
if (data.daily_limit === null) console.log('no daily limit')
else console.log(data.remaining, 'of', data.daily_limit, 'left')
for (const q of data.number_queues) console.log(q.phone_number, q.queued_parts, q.clears_at)
get/v1/send-limit/requests

Lister vos demandes de volume

Permissionaccount:r

Nécessite account:r.

Réponses

  • 200Les demandes de volume du compte, des plus récentes aux plus anciennes.
    ChampTypeDescription
    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
curl https://api.honkio.ca/v1/send-limit/requests \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
post/v1/send-limit/requests

Demander un volume d’envoi quotidien plus élevé

Permissionaccount:w

Exige une entreprise vérifiée (BUSINESS_VERIFICATION_REQUIRED d’ici là ; voir /v1/business-verification) et n’est accessible qu’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

ChampTypeDescription
requested_limitinteger

Nombre de messages par jour souhaité (et non une augmentation). Omettez-le pour obtenir le volume approuvé standard.

  • Minimum : 1
  • Maximum : 1000000
reasonobligatoirestring

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.
    ChampTypeDescription
    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.
  • 403BUSINESS_VERIFICATION_REQUIRED (vérifiez d’abord votre entreprise), SEND_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
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": "..."
  }'
get/v1/business-verification

Obtenir votre vérification d’entreprise

Votre profil d’entreprise et l’état de son examen, ou null avant qu’un profil soit enregistré. Une entreprise vérifiée peut demander davantage de numéros de téléphone, un volume d’envoi plus élevé, des limites de rechargement plus élevées et la vérification de numéro sans frais.

Nécessite account:r.

Réponses

  • 200Votre profil de vérification d’entreprise, ou null avant qu’un profil soit enregistré.
  • 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

const { data: profile, error } = await honkio.businessVerification.get()
if (error) throw new Error(error.message)
console.log(profile?.status ?? 'not started')
put/v1/business-verification

Enregistrer votre profil de vérification d’entreprise

Crée le profil, ou le remplace tant qu’il est DRAFT, VERIFIED, CHANGES_REQUESTED ou DECLINED (BUSINESS_VERIFICATION_NOT_EDITABLE sinon). Chaque champ est vérifié. L’état ne change pas, sauf qu’un profil VERIFIED revient à DRAFT : soumettez le profil lorsqu’il est prêt. Les modifications d’une entreprise vérifiée sont de nouveau examinées par HonkIO, et le compte reste vérifié (verified vaut true) entre-temps, tel qu’il a été vérifié : c’est verified_details, et non les champs modifiés, qui compte jusqu’à ce que HonkIO vérifie les modifications. Une clé de test peut enregistrer un profil qui n’a jamais été vérifié, mais la modification d’une entreprise vérifiée exige une clé de production (LIVE_KEY_REQUIRED).

Nécessite account:m.

Corps de la requête

Votre entreprise et une personne-ressource.

ChampTypeDescription
business_nameobligatoirestring

La dénomination sociale : telle qu’enregistrée auprès de l’ARC ou de votre province, ou votre propre nom pour une entreprise individuelle.

  • Au moins 1 caractères
  • Au plus 255 caractères
doing_business_asstring

Le nom commercial de l’entreprise, s’il diffère de sa dénomination légale.

  • Au plus 255 caractères
  • Peut être null
entity_typeobligatoirestring

Le type d’organisation. GET /v1/toll-free-verifications/options liste les valeurs avec leurs libellés.

  • Une valeur parmi : SOLE_PROPRIETOR | PRIVATE_PROFIT | PUBLIC_PROFIT | NON_PROFIT | GOVERNMENT
business_registration_numberstring

Le numéro d’entreprise de l’ARC : 9 chiffres, suivis au besoin d’un compte de programme comme RC0001. Les espaces et les traits d’union sont ignorés. Obligatoire sauf si entity_type est SOLE_PROPRIETOR.

  • Au plus 40 caractères
  • Peut être null
business_addressobligatoireobject

L’adresse où l’entreprise est enregistrée ou exerce ses activités, au Canada. line2 (bureau, unité ou étage) est facultatif.

line1obligatoirestring
  • Au moins 1 caractères
  • Au plus 255 caractères
cityobligatoirestring
  • Au moins 1 caractères
  • Au plus 100 caractères
provinceobligatoirestring

Code de province ou de territoire à deux lettres.

  • Une valeur parmi : AB | BC | MB | NB | NL | NS | NT | NU | ON | PE | QC | SK | YT
postal_codeobligatoirestring

Code postal canadien, p. ex. K1A 0B1.

  • Au plus 10 caractères
line2string
  • Au plus 255 caractères
  • Peut être null
websiteobligatoirestring

Un lien https qui montre l’entreprise : son site Web ou, pour une entreprise individuelle, un profil public comme LinkedIn ou une fiche dans une boutique d’applications.

  • Au plus 2048 caractères
business_descriptionobligatoirestring

Ce que fait l’entreprise et à qui elle s’adresse, de 20 à 500 caractères.

  • Au moins 20 caractères
  • Au plus 500 caractères
contactobligatoireobject

La personne que l’équipe de HonkIO peut joindre au sujet de l’examen.

first_nameobligatoirestring
  • Au moins 1 caractères
  • Au plus 100 caractères
last_nameobligatoirestring
  • Au moins 1 caractères
  • Au plus 100 caractères
emailobligatoirestring
  • Format : email
  • Au plus 254 caractères
phoneobligatoirestring

Un numéro de téléphone nord-américain, p. ex. +14165550100.

  • Au plus 32 caractères

Réponses

  • 200Le profil enregistré.
    ChampTypeDescription
    idobligatoirestring
    statusobligatoirestring

    DRAFT, puis IN_REVIEW (équipe de HonkIO), puis VERIFIED. Un profil CHANGES_REQUESTED ou DECLINED peut être modifié et soumis de nouveau ; seul le personnel de HonkIO peut rétablir un profil REVOKED. Un profil VERIFIED modifié revient à DRAFT pour un nouvel examen.

    • Une valeur parmi : DRAFT | IN_REVIEW | VERIFIED | CHANGES_REQUESTED | DECLINED | REVOKED
    verifiedobligatoireboolean

    Indique si l’entreprise est considérée comme vérifiée. La valeur reste true pendant le nouvel examen des renseignements modifiés d’une entreprise vérifiée (état DRAFT, IN_REVIEW ou CHANGES_REQUESTED), et passe à false lorsque l’équipe de HonkIO refuse les modifications ou révoque la vérification.

    verified_atobligatoirestring

    Date de la dernière vérification de l’entreprise par l’équipe de HonkIO ; null lorsqu’elle n’est pas vérifiée.

    • Format : date-time
    • Peut être null
    verified_detailsobligatoireobject | any

    L’entreprise telle que l’équipe HonkIO l’a vérifiée la dernière fois. Pendant qu’un nouvel examen porte sur des modifications, les champs ci-dessous montrent les modifications et celui-ci garde ce qui a été vérifié : la vérification de numéro sans frais lit son numéro d’entreprise. Null quand l’entreprise n’est pas vérifiée.

    business_nameobligatoirestring
    doing_business_asobligatoirestring
    • Peut être null
    entity_typeobligatoirestring
    • Une valeur parmi : SOLE_PROPRIETOR | PRIVATE_PROFIT | PUBLIC_PROFIT | NON_PROFIT | GOVERNMENT
    business_registration_numberobligatoirestring
    • Peut être null
    business_addressobligatoireobject | any
    websiteobligatoirestring
    • Peut être null
    business_descriptionobligatoirestring
    • Peut être null
    contactobligatoireobject
    first_nameobligatoirestring
    • Peut être null
    last_nameobligatoirestring
    • Peut être null
    emailobligatoirestring
    • Peut être null
    phoneobligatoirestring
    • Peut être null
    reviewer_noteobligatoirestring

    Ce que l’équipe de HonkIO a demandé de modifier, ou pourquoi elle a refusé le profil.

    • Peut être null
    revoked_reasonobligatoirestring

    Pourquoi l’équipe de HonkIO a révoqué la vérification.

    • Peut être null
    submitted_atobligatoirestring
    • Format : date-time
    • Peut être null
    reviewed_atobligatoirestring
    • Format : date-time
    • Peut être null
    revoked_atobligatoirestring
    • Format : date-time
    • Peut être null
    created_atobligatoirestring
    • Format : date-time
    updated_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.
  • 403LIVE_KEY_REQUIRED : une clé de test ne peut pas modifier le profil d’une entreprise vérifiée, y compris lorsque ses modifications sont en cours d’examen. Elle peut enregistrer un profil qui n’a jamais été vérifié. Aussi FORBIDDEN lorsque la clé ne dispose pas de la permission requise par cette opération, ou lorsque le compte est suspendu ou fermé.Le corps d’erreur standard.
  • 409BUSINESS_VERIFICATION_NOT_EDITABLE : le profil est en cours d’examen ou révoqué.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

const { error } = await honkio.businessVerification.save({
  businessName: 'Acme Clinics Inc.',
  entityType: 'PRIVATE_PROFIT',
  businessRegistrationNumber: '123456789RC0001', // optional for a sole proprietor
  businessAddress: { line1: '100 King St W', city: 'Toronto', province: 'ON', postalCode: 'M5X 1A9' },
  website: 'https://acme.ca',
  businessDescription: 'Three clinics in Toronto that text patients appointment reminders.',
  contact: { firstName: 'Ada', lastName: 'Lovelace', email: 'ada@acme.ca', phone: '+1416XXXXXXX' },
})
if (error) throw new Error(`${error.name}: ${error.message}`)
post/v1/business-verification/submit

Soumettre votre entreprise pour vérification

Transmet le profil enregistré à l’équipe de HonkIO pour examen (IN_REVIEW). Elle le compare aux registres publics et à votre site Web, puis le vérifie, demande des modifications ou le refuse ; vous recevez un courriel dans tous les cas. Une entreprise vérifiée qui a modifié ses renseignements reste vérifiée pendant l’examen ; le refus des modifications retire la vérification. Clés de production seulement (LIVE_KEY_REQUIRED).

Nécessite account:w.

Réponses

  • 200Le profil, maintenant IN_REVIEW.
    ChampTypeDescription
    idobligatoirestring
    statusobligatoirestring

    DRAFT, puis IN_REVIEW (équipe de HonkIO), puis VERIFIED. Un profil CHANGES_REQUESTED ou DECLINED peut être modifié et soumis de nouveau ; seul le personnel de HonkIO peut rétablir un profil REVOKED. Un profil VERIFIED modifié revient à DRAFT pour un nouvel examen.

    • Une valeur parmi : DRAFT | IN_REVIEW | VERIFIED | CHANGES_REQUESTED | DECLINED | REVOKED
    verifiedobligatoireboolean

    Indique si l’entreprise est considérée comme vérifiée. La valeur reste true pendant le nouvel examen des renseignements modifiés d’une entreprise vérifiée (état DRAFT, IN_REVIEW ou CHANGES_REQUESTED), et passe à false lorsque l’équipe de HonkIO refuse les modifications ou révoque la vérification.

    verified_atobligatoirestring

    Date de la dernière vérification de l’entreprise par l’équipe de HonkIO ; null lorsqu’elle n’est pas vérifiée.

    • Format : date-time
    • Peut être null
    verified_detailsobligatoireobject | any

    L’entreprise telle que l’équipe HonkIO l’a vérifiée la dernière fois. Pendant qu’un nouvel examen porte sur des modifications, les champs ci-dessous montrent les modifications et celui-ci garde ce qui a été vérifié : la vérification de numéro sans frais lit son numéro d’entreprise. Null quand l’entreprise n’est pas vérifiée.

    business_nameobligatoirestring
    doing_business_asobligatoirestring
    • Peut être null
    entity_typeobligatoirestring
    • Une valeur parmi : SOLE_PROPRIETOR | PRIVATE_PROFIT | PUBLIC_PROFIT | NON_PROFIT | GOVERNMENT
    business_registration_numberobligatoirestring
    • Peut être null
    business_addressobligatoireobject | any
    websiteobligatoirestring
    • Peut être null
    business_descriptionobligatoirestring
    • Peut être null
    contactobligatoireobject
    first_nameobligatoirestring
    • Peut être null
    last_nameobligatoirestring
    • Peut être null
    emailobligatoirestring
    • Peut être null
    phoneobligatoirestring
    • Peut être null
    reviewer_noteobligatoirestring

    Ce que l’équipe de HonkIO a demandé de modifier, ou pourquoi elle a refusé le profil.

    • Peut être null
    revoked_reasonobligatoirestring

    Pourquoi l’équipe de HonkIO a révoqué la vérification.

    • Peut être null
    submitted_atobligatoirestring
    • Format : date-time
    • Peut être null
    reviewed_atobligatoirestring
    • Format : date-time
    • Peut être null
    revoked_atobligatoirestring
    • Format : date-time
    • Peut être null
    created_atobligatoirestring
    • Format : date-time
    updated_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.
  • 403LIVE_KEY_REQUIRED : les clés de test ne peuvent pas accéder ici aux ressources de production. Aussi FORBIDDEN lorsque la clé ne dispose pas de la permission requise par cette opération, ou lorsque le compte est suspendu ou fermé.Le corps d’erreur standard.
  • 404NOT_FOUND : aucun profil n’a encore été enregistré.Le corps d’erreur standard.
  • 409BUSINESS_VERIFICATION_NOT_EDITABLE : seul un profil DRAFT, CHANGES_REQUESTED ou DECLINED peut être soumis.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

const { data, error } = await honkio.businessVerification.submit()
if (error) throw new Error(error.message)
console.log(data.status) // 'IN_REVIEW'
get/v1/account/topup-cap-requests

Lister vos demandes de limites de rechargement

Nécessite account:r.

Réponses

  • 200Les demandes de limites de rechargement du compte, des plus récentes aux plus anciennes.
    ChampTypeDescription
    data[]obligatoireobject[]
    idobligatoirestring
    requested_max_balance_centsobligatoireinteger

    Le solde maximal demandé, en cents CAD ; null s’il n’a pas été demandé.

    • Peut être null
    requested_max_30d_centsobligatoireinteger

    Le maximum sur 30 jours consécutifs demandé, en cents CAD ; null s’il n’a pas été demandé.

    • Peut être null
    reasonobligatoirestring
    statusobligatoirestring
    • Une valeur parmi : PENDING | APPROVED | DECLINED
    granted_max_balance_centsobligatoireinteger
    • Peut être null
    granted_max_30d_centsobligatoireinteger
    • Peut être null
    decision_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

const { data, error } = await honkio.topupCapRequests.list()
if (error) throw new Error(error.message)
for (const r of data.data) console.log(r.status, r.decision_note)
post/v1/account/topup-cap-requests

Demander des limites de rechargement plus élevées

Demande à l’équipe de HonkIO d’augmenter le solde maximal de votre compte (requested_max_balance_cents), le montant maximal que vous pouvez ajouter sur toute période de 30 jours (requested_max_30d_cents), ou les deux. Chaque montant indiqué doit dépasser la limite actuelle (GET /v1/accounts/{id}/topup-allowance). Exige une entreprise vérifiée (BUSINESS_VERIFICATION_REQUIRED). Une seule demande peut être en attente à la fois ; vous recevez un courriel lorsqu’elle est tranchée. Clés de production seulement.

Nécessite account:w.

Corps de la requête

Les limites souhaitées et pourquoi.

ChampTypeDescription
requested_max_balance_centsinteger

Le solde maximal souhaité, en cents CAD (de 100 à 99999999). Doit dépasser la limite actuelle.

  • Minimum : 100
  • Maximum : 99999999
requested_max_30d_centsinteger

Le montant maximal de rechargement souhaité sur 30 jours consécutifs, en cents CAD (de 100 à 99999999). Doit dépasser la limite actuelle.

  • Minimum : 100
  • Maximum : 99999999
reasonobligatoirestring

À quoi serviront les limites plus élevées. L’équipe décide en fonction de ce texte. De 10 à 1000 caractères.

  • Au moins 10 caractères
  • Au plus 1000 caractères

Réponses

  • 201La demande, en attente d’examen.
    ChampTypeDescription
    idobligatoirestring
    requested_max_balance_centsobligatoireinteger

    Le solde maximal demandé, en cents CAD ; null s’il n’a pas été demandé.

    • Peut être null
    requested_max_30d_centsobligatoireinteger

    Le maximum sur 30 jours consécutifs demandé, en cents CAD ; null s’il n’a pas été demandé.

    • Peut être null
    reasonobligatoirestring
    statusobligatoirestring
    • Une valeur parmi : PENDING | APPROVED | DECLINED
    granted_max_balance_centsobligatoireinteger
    • Peut être null
    granted_max_30d_centsobligatoireinteger
    • Peut être null
    decision_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.
  • 403BUSINESS_VERIFICATION_REQUIRED : vérifiez d’abord votre entreprise (PUT /v1/business-verification, puis soumettez-la). Aussi LIVE_KEY_REQUIRED pour une clé de test, ou FORBIDDEN lorsque la clé ne dispose pas de la permission requise par cette opération.Le corps d’erreur standard.
  • 409TOPUP_CAP_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

const { data: request, error } = await honkio.topupCapRequests.create({
  requestedMaxBalanceCents: 100_000, // $1,000.00
  reason: 'Appointment reminders for our three clinics.',
})
if (error) throw new Error(`${error.name}: ${error.message}`)
console.log(request.status) // 'PENDING'