Référence de l’API

Conformité / LCAP

Gestion du consentement LCAP et des désabonnements.

get/v1/compliance/consents

Lister les enregistrements de consentement des abonnés du compte

Permissioncompliance:rSDK Node.jshonkio.consents.list()

Nécessite compliance:r.

Paramètres

ParamètreTypeDescription
phone_numberrequêtestring
email_addressrequêtestring

Limiter aux consentements par courriel de cette adresse. Le consentement par courriel sera offert au lancement du produit courriel.

statusrequêtestring
  • Une valeur parmi : ACTIVE | EXPIRED | REVOKED
pagerequêteinteger
  • Minimum : 1
  • Par défaut : 1
limitrequêteinteger
  • Minimum : 1
  • Maximum : 100
  • Par défaut : 20

Réponses

  • 200Une page d’enregistrements de consentement, du plus récent au plus ancien. Aucun total n’est renvoyé.
    ChampTypeDescription
    data[]obligatoireobject[]
    idobligatoirestring
    accountIdobligatoirestring
    channelobligatoirestring
    • Une valeur parmi : SMS | EMAIL
    phoneNumberobligatoirestring
    • Peut être null
    emailAddressobligatoirestring
    • Peut être null
    consentTypeobligatoirestring
    • Une valeur parmi : EXPRESS | IMPLIED
    statusobligatoirestring
    • Une valeur parmi : ACTIVE | EXPIRED | REVOKED
    sourceDescriptionobligatoirestring
    • Peut être null
    sourceIpobligatoirestring
    • Peut être null
    sourceUrlobligatoirestring
    • Peut être null
    relationshipTypeobligatoirestring
    • Peut être null
    expiresAtobligatoirestring
    • Format : date-time
    • Peut être null
    grantedAtobligatoirestring
    • Format : date-time
    revokedAtobligatoirestring
    • Format : date-time
    • Peut être null
    revokedReasonobligatoirestring
    • 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.
  • 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.
  • 501EMAIL_COMING_SOON : le consentement par courriel sera offert au lancement du produit courriel (renvoyé uniquement pour une requête email_address).Le corps d’erreur standard.

Exemple

const { data, error } = await honkio.consents.list({ status: 'ACTIVE', limit: 50 })
if (error) throw new Error(error.message)
console.log(data.data.length)
post/v1/compliance/consents

Enregistrer le consentement LCAP pour un numéro de téléphone ou une adresse courriel

Enregistre un consentement exprès ou tacite conformément aux articles 6 à 10 de la LCAP. Obligatoire avant d’envoyer des messages commerciaux.

Nécessite compliance:w.

Corps de la requête

ChampTypeDescription
phone_numberstring

Numéro de téléphone E.164 de l’abonné

email_addressstring

Adresse courriel de l’abonné (canal courriel). Le consentement par courriel sera offert au lancement du produit courriel.

  • Au plus 254 caractères
consent_typeobligatoirestring
  • Une valeur parmi : express | implied
source_descriptionstring

Comment et où le consentement a été obtenu (obligatoire pour le consentement exprès)

  • Au plus 1000 caractères
source_ipstring

Adresse IP de l’abonné au moment du consentement

  • Au plus 45 caractères
source_urlstring

URL où le consentement a été obtenu

  • Au plus 2048 caractères
relationship_typestring

Type de relation d’affaires (requis pour le type implied, soit le consentement tacite ; p. ex. "purchase")

  • Au plus 100 caractères
last_transaction_datestring

Date de la dernière transaction (consentement tacite : l’expiration est calculée à partir de cette date)

  • Format : date
expires_atstring

Date d’expiration explicite (date ou date-heure ISO 8601) d’un consentement tacite. Remplace l’expiration calculée à partir de last_transaction_date. Refusée pour le consentement exprès, qui n’expire jamais (LCAP, art. 10).

Réponses

  • 201Réponse par défaut
    ChampTypeDescription
    statusstring
    phone_numberstring
    email_addressstring
    expires_atstring

    Moment où ce consentement expire (consentement tacite seulement) ; null pour un consentement exprès.

    • 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.
  • 422INVALID_PHONE_NUMBER, EMAIL_INVALID_ADDRESS ou VALIDATION_ERROR (fournissez exactement un seul des champs phone_number ou email_address ; le consentement exprès exige source_description et n’accepte pas expires_at ; le consentement tacite exige relationship_type).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.
  • 501EMAIL_COMING_SOON : le consentement par courriel sera offert au lancement du produit courriel (renvoyé uniquement pour une requête email_address).Le corps d’erreur standard.

Exemple

const { error } = await honkio.consents.create({
  phoneNumber: '+1613XXXXXXX',
  consentType: 'express',
  sourceDescription: 'Website opt-in form',
})
if (error) throw new Error(error.message)
get/v1/compliance/consents/check

Vérifier si un numéro de téléphone ou une adresse courriel dispose d’un consentement LCAP valide

Un consentement que cette vérification trouve expiré est marqué EXPIRED par la vérification elle-même, et pas seulement par une tâche en arrière-plan : cet appel peut donc écrire, et non seulement lire.

Nécessite compliance:r.

Paramètres

ParamètreTypeDescription
phone_numberrequêtestring
email_addressrequêtestring

Vérifier une adresse courriel plutôt qu’un numéro de téléphone. Le consentement par courriel sera offert au lancement du produit courriel.

Réponses

  • 200Indique si un envoi au numéro de téléphone ou à l’adresse courriel franchirait le contrôle de la LCAP. Un seul des champs phone_number/email_address est présent, selon le sujet interrogé. consentType et reason sont en camelCase et mutuellement exclusifs.
    ChampTypeDescription
    phone_numberstring
    email_addressstring
    allowedobligatoireboolean
    consentTypestring

    Présent si l’opération est autorisée.

    • Une valeur parmi : EXPRESS | IMPLIED
    reasonstring

    Présent si l’opération n’est pas autorisée.

    • Une valeur parmi : OPT_OUT | NO_CONSENT | CONSENT_EXPIRED
  • 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.
  • 422INVALID_PHONE_NUMBER, EMAIL_INVALID_ADDRESS ou VALIDATION_ERROR (fournissez exactement un seul des champs phone_number ou email_address).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.
  • 501EMAIL_COMING_SOON : le consentement par courriel sera offert au lancement du produit courriel (renvoyé uniquement pour une requête email_address).Le corps d’erreur standard.

Exemple

const { data, error } = await honkio.consents.check({ phoneNumber: '+1613XXXXXXX' })
if (error) throw new Error(error.message)
console.log(data.allowed, data.reason)
delete/v1/compliance/consents/{phone}

Révoquer le consentement LCAP pour un numéro de téléphone

Révoque les enregistrements de consentement pour le numéro donné. Remarque : les désabonnements sont distincts. Utilisez POST /opt-outs pour bloquer également les envois futurs.

Nécessite compliance:m ou compliance:d (l’une ou l’autre).

Paramètres

ParamètreTypeDescription
phoneobligatoirecheminstring

Réponses

  • 204Tous les consentements actifs du numéro sont révoqués.
  • 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 : aucun consentement actif pour le numéro.Le corps d’erreur standard.
  • 422INVALID_PHONE_NUMBER.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.consents.revoke({ phoneNumber: '+1613XXXXXXX' })
if (error) throw new Error(error.message)
delete/v1/compliance/consents/email/{address}

Révoquer le consentement LCAP pour une adresse courriel

Révoque les consentements courriel ACTIVE de l’adresse. Les désabonnements et les entrées de la liste de suppression sont distincts.

Nécessite compliance:m ou compliance:d (l’une ou l’autre).

Paramètres

ParamètreTypeDescription
addressobligatoirecheminstring

Réponses

  • 204Tous les consentements actifs de l’adresse courriel sont révoqués.
  • 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 : aucun consentement actif pour l’adresse courriel.Le corps d’erreur standard.
  • 422EMAIL_INVALID_ADDRESS.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.
  • 501EMAIL_COMING_SOON : le consentement par courriel sera offert au lancement du produit courriel.Le corps d’erreur standard.

Exemple

const { error } = await honkio.consents.revoke({ emailAddress: 'sam@example.com' })
if (error) throw new Error(error.message)
get/v1/compliance/opt-outs

Lister les enregistrements de désabonnement

Permissioncompliance:r

Nécessite compliance:r.

Paramètres

ParamètreTypeDescription
phone_numberrequêtestring
from_numberrequêtestring
pagerequêteinteger
  • Minimum : 1
  • Par défaut : 1
limitrequêteinteger
  • Minimum : 1
  • Maximum : 100
  • Par défaut : 20

Réponses

  • 200Une page d’enregistrements de désabonnement, du plus récent au plus ancien. Aucun total n’est renvoyé.
    ChampTypeDescription
    data[]obligatoireobject[]
    idobligatoirestring
    accountIdobligatoirestring
    channelobligatoirestring
    • Une valeur parmi : SMS | EMAIL
    phoneNumberobligatoirestring
    • Peut être null
    fromNumberobligatoirestring

    Le numéro d’envoi à partir duquel l’abonné s’est désabonné (SMS).

    • Peut être null
    fromAddressobligatoirestring
    • Peut être null
    emailAddressobligatoirestring
    • Peut être null
    keywordUsedobligatoirestring

    STOP, UNSUBSCRIBE, etc. ; null pour un désabonnement enregistré au moyen de l’API.

    • Peut être null
    optedOutAtobligatoirestring
    • Format : date-time
    reinstatedAtobligatoirestring
    • Format : date-time
    • Peut être null
    reinstateKeywordobligatoirestring
    • 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.
  • 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/compliance/opt-outs \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
post/v1/compliance/opt-outs

Enregistrer manuellement un désabonnement pour un numéro de téléphone

Permissioncompliance:w

Nécessite compliance:w.

Corps de la requête

ChampTypeDescription
phone_numberobligatoirestring

Numéro qui se désabonne (abonné)

from_numberobligatoirestring

Votre numéro d’envoi visé par leur désabonnement

Réponses

  • 201Désabonné.
    ChampTypeDescription
    statusobligatoirestring
    • Une valeur parmi : opted_out
  • 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.
  • 403PHONE_NUMBER_NOT_OWNED : une clé de production a enregistré un désabonnement à partir d’un numéro que le compte ne détient pas.Le corps d’erreur standard.
  • 422INVALID_PHONE_NUMBER ou VALIDATION_ERROR.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/compliance/opt-outs \
  -H "Authorization: Bearer mk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "+1613XXXXXXX",
    "from_number": "+1416XXXXXXX"
  }'