Référence API
Webhooks
Enregistrez et gérez les points de terminaison auxquels SMSend livre les événements.
Cette page couvre les points de terminaison. Pour la forme des charges utiles, l’algorithme de signature et la politique de reprise, lisez le guide des webhooks.
Lister les points de terminaison webhook
/public/v1/webhooksRenvoie tous les points de terminaison enregistrés sur le compte, du plus récent au plus ancien, avec leur santé actuelle.
Requête
Réponses
Erreurs possibles
| Code | Statut | Signification |
|---|---|---|
UNAUTHORIZED | 401 | Aucune clé, une clé malformée, un mauvais secret, une clé révoquée ou expirée, ou un compte suspendu. Tous indiscernables par construction. |
INSUFFICIENT_SCOPE | 403 | La clé est valide mais ne porte pas la portée exigée par ce point de terminaison. La portée est nommée dans le detail. |
RATE_LIMITED | 429 | La limite de requêtes de la clé a été dépassée. Attendez l’intervalle indiqué dans Retry-After. |
INTERNAL_ERROR | 500 | Une défaillance inattendue du côté de SMSend. Citez l’identifiant de requête à l’assistance. |
Créer un point de terminaison webhook
/public/v1/webhooksEnregistre un point de terminaison et émet son secret de signature. C’est la seule réponse qui contienne jamais le secret.
Paramètres du corps
urlstringObligatoireOù livrer les événements. Doit être en HTTPS et ne doit pas se résoudre vers une adresse privée, de bouclage ou de lien local. Un nom d’hôte dont le DNS n’a pas encore propagé est accepté.
max 2048 characters, must be HTTPS, no private or loopback address
descriptionstringOptionnelUn libellé pour votre propre usage, affiché dans l’espace client.
max 255 characters
eventsarrayOptionnelQuels événements livrer. Les doublons sont supprimés ; un tableau vide retombe sur la valeur par défaut.
default ["MESSAGE_TERMINAL", "BATCH_SETTLED"]
Requête
Réponses
Erreurs possibles
| Code | Statut | Signification |
|---|---|---|
VALIDATION_FAILED | 422 | La requête était malformée : un paramètre manquant ou invalide, une longueur de clé d’idempotence incorrecte, une URL de webhook rejetée, ou une méthode ou un type de contenu non pris en charge. |
UNAUTHORIZED | 401 | Aucune clé, une clé malformée, un mauvais secret, une clé révoquée ou expirée, ou un compte suspendu. Tous indiscernables par construction. |
INSUFFICIENT_SCOPE | 403 | La clé est valide mais ne porte pas la portée exigée par ce point de terminaison. La portée est nommée dans le detail. |
RATE_LIMITED | 429 | La limite de requêtes de la clé a été dépassée. Attendez l’intervalle indiqué dans Retry-After. |
INTERNAL_ERROR | 500 | Une défaillance inattendue du côté de SMSend. Citez l’identifiant de requête à l’assistance. |
Renouveler le secret de signature
/public/v1/webhooks/{webhook_id}/rotateÉmet un nouveau secret et garde le précédent valide pendant 24 heures. Les deux permettent la vérification pendant la fenêtre, tandis que SMSend signe avec le nouveau : vous pouvez donc déployer sans perdre de livraisons.
Paramètres de chemin
webhook_idstringObligatoireL’identifiant du point de terminaison, renvoyé à sa création.
26-character ULID
Requête
Réponses
Erreurs possibles
| Code | Statut | Signification |
|---|---|---|
NOT_FOUND | 404 | Ressource inexistante — y compris une ressource appartenant à un autre compte, délibérément indiscernable d’une ressource qui n’a jamais existé. |
UNAUTHORIZED | 401 | Aucune clé, une clé malformée, un mauvais secret, une clé révoquée ou expirée, ou un compte suspendu. Tous indiscernables par construction. |
INSUFFICIENT_SCOPE | 403 | La clé est valide mais ne porte pas la portée exigée par ce point de terminaison. La portée est nommée dans le detail. |
RATE_LIMITED | 429 | La limite de requêtes de la clé a été dépassée. Attendez l’intervalle indiqué dans Retry-After. |
INTERNAL_ERROR | 500 | Une défaillance inattendue du côté de SMSend. Citez l’identifiant de requête à l’assistance. |
Activer un point de terminaison
/public/v1/webhooks/{webhook_id}/enableRéactive un point de terminaison désactivé et remet son compteur d’échecs à zéro, pour qu’un point de terminaison rétabli ne soit pas de nouveau coupé par le premier échec suivant son retour.
Paramètres de chemin
webhook_idstringObligatoireL’identifiant du point de terminaison, renvoyé à sa création.
26-character ULID
Requête
Réponses
Erreurs possibles
| Code | Statut | Signification |
|---|---|---|
NOT_FOUND | 404 | Ressource inexistante — y compris une ressource appartenant à un autre compte, délibérément indiscernable d’une ressource qui n’a jamais existé. |
UNAUTHORIZED | 401 | Aucune clé, une clé malformée, un mauvais secret, une clé révoquée ou expirée, ou un compte suspendu. Tous indiscernables par construction. |
INSUFFICIENT_SCOPE | 403 | La clé est valide mais ne porte pas la portée exigée par ce point de terminaison. La portée est nommée dans le detail. |
RATE_LIMITED | 429 | La limite de requêtes de la clé a été dépassée. Attendez l’intervalle indiqué dans Retry-After. |
INTERNAL_ERROR | 500 | Une défaillance inattendue du côté de SMSend. Citez l’identifiant de requête à l’assistance. |
Désactiver un point de terminaison
/public/v1/webhooks/{webhook_id}/disableArrête la livraison vers un point de terminaison sans le supprimer. Les événements créés pendant sa désactivation ne sont pas mis en file d’attente pour plus tard — récupérez-les depuis le flux des messages.
Paramètres de chemin
webhook_idstringObligatoireL’identifiant du point de terminaison, renvoyé à sa création.
26-character ULID
Requête
Réponses
Erreurs possibles
| Code | Statut | Signification |
|---|---|---|
NOT_FOUND | 404 | Ressource inexistante — y compris une ressource appartenant à un autre compte, délibérément indiscernable d’une ressource qui n’a jamais existé. |
UNAUTHORIZED | 401 | Aucune clé, une clé malformée, un mauvais secret, une clé révoquée ou expirée, ou un compte suspendu. Tous indiscernables par construction. |
INSUFFICIENT_SCOPE | 403 | La clé est valide mais ne porte pas la portée exigée par ce point de terminaison. La portée est nommée dans le detail. |
RATE_LIMITED | 429 | La limite de requêtes de la clé a été dépassée. Attendez l’intervalle indiqué dans Retry-After. |
INTERNAL_ERROR | 500 | Une défaillance inattendue du côté de SMSend. Citez l’identifiant de requête à l’assistance. |
Statuts de point de terminaison
Les deux états désactivés sont distingués à dessein : l’un est une décision que vous avez prise, l’autre un échec sur lequel vous devez enquêter, et ils appellent des réactions différentes.
| Valeur | Signification |
|---|---|
ENABLED | Reçoit les livraisons. |
DISABLED_BY_USER | Mis en pause par le compte. Réactivez-le quand vous êtes prêt. |
DISABLED_AFTER_FAILURES | Coupé par SMSend après 20 échecs consécutifs. Réparez le point de terminaison, puis réactivez-le explicitement. |
Pas sur cette surface
Modifier l’URL d’un point de terminaison, ses abonnements aux événements ou sa description, et supprimer complètement un point de terminaison, se font dans l’espace client plutôt que par l’API. La création et la révocation des clés API sont de même réservées à l’espace client — un point de terminaison public de création de clés transformerait une seule clé divulguée en accès permanent.