Webhooks

Sécurité

Lors de la configuration des points de terminaison webhook, vous pouvez sécuriser votre application contre les requêtes non désirées en configurant un secret webhook. Chaque signature de requête est générée en utilisant l'algorithme de hachage HMAC_SHA256. L'algorithme signe le payload du webhook avec le secret que vous avez fourni. Le hachage résultant est inclus dans l'en-tête de signature de la requête dans le format suivant :

X-TopMessage-Signature: {TOPMESSAGE_HMAC_SIGNATURE}
Gérez vos points de terminaison webhook

ici

Recevoir le rapport de livraison

Le rapport de livraison des messages sortants est envoyé à votre point de terminaison webhook, indiquant si chaque message a été livré avec succès ou a échoué.

NomTaperDescription
donnéesobjetContient les détails ci-dessous du message envoyé.
Objet de données
NomTaperDescription
idstringIdentifiant unique de votre message.
statusstringStatut initial de votre message.
Valeurs possibles: PENDING, FAILED, DELIVERED, SEEN
channelstringLe canal de communication par lequel votre message est envoyé.
Valeurs possibles: SMS et WHATSAPP
Par défaut: SMS
Recevoir les messages entrants

Les messages entrants reçus sur votre numéro de téléphone SMS ou WhatsApp sont transférés en temps réel vers le point de terminaison webhook spécifié.

NomTaperDescription
donnéesobjetContient les détails ci-dessous du message envoyé.
Objet de données
NomTaperDescription
account_idstringIdentifiant unique de votre compte.
fromstringNom d'affichage à partir duquel votre message sera envoyé.
sender_codestringVotre numéro de téléphone SMS ou WhatsApp TopMessage.
textstringLe texte de votre message à envoyer au(x) destinataire(s).
channelstringLe canal de communication par lequel votre message est envoyé.
Valeurs possibles: SMS et WHATSAPP
Par défaut: SMS
sender_namestringVotre nom d'expéditeur SMS ou WhatsApp TopMessage.
request_idstringIdentifiant unique de la demande générée par vous pour suivre les requêtes.
Par défaut: NULL
POST
https://{yourDomain}/your/webhook/path
X-Topmessage-Signature: {TOPMESSAGE_HMAC_SIGNATURE}
Content-Type: application/json
Exemple de demande (rapport de livraison)

Payload

Java

Python

{
    "data":
        {
            "id":"b04fc4d3-f232-46b7-b66b-538c0d4b3404",
            "channel":"SMS",
            "status":"DELIVERED"
        }
    }
public class TopMessageDeliveryReport {
    private String id;
    private String requestId;
    private String channel;
    private String status;
}
class TopMessageDeliveryReport:
    id: str
    request_id: str
    channel: str
    status: str
Exemple de demande (message entrant)

Payload

Java

Python

{
    "data": {
        "id":"e3fc3b55-807f-41cf-93cf-cd365fef8515",
        "channel":"WHATSAPP",
        "account_id":"0d1f7f1c-27df-41bf-8bdc-5666608a4285",
        "sender_details":
        {
            "sender_id":"476c7381-ca60-4e98-9657-a4af98ec032b",
            "sender_name":"TopMessage",
            "sender_code":"19134216816"},
            "Number":"491511234567",
            "text":"Received"
        }
    }
}
public class TopMessageIncomingMessage {
    private String id;
    private String channel;
    private String accountId;
    private SenderDetails senderDetails;
    private String number;
    private String referenceMessageId;
    private String text;
    private String mediaId;
    private Location location;

    public static class SenderDetails {
        private String id;
        private String name;
        private String code;
    }

    public static class Location {
        private String name;
        private String address;
        private String latitude;
        private String longitude;
    }
}
class SenderDetails:
    id: str
    name: str
    code: str

class Location:
    name: str
    address: str
    latitude: str
    longitude: str

class TopMessageIncomingMessage:
    id: str
    channel: str
    account_id: str
    sender_details: SenderDetails
    number: str
    reference_message_id: str
    text: str
    media_id: str
    location: Location