Conexteo API - Documentation SMS & RCS
    EN
    • FR
    • EN
    • Getting started
    • auth
      • Authentication (email / password)
        POST
    • Utilisateur
      • Credits
        GET
    • Messages
      • Réponses
        • Replies - paginated
        • Replies - full extract
      • RCS
        • Send RCS
      • SMS
        • Manual send
        • Dynamic send
        • Send to contact lists
        • File send
      • Messages history
        GET
      • Message details
        GET
      • Cancel a message
        PUT
      • SMS recipients of a message
        GET
      • SMS recipients of a message
        GET
      • RCS recipients of a message
        GET
    • Modèle
      • Create a template
        POST
      • List templates
        GET
      • Update a template
        PUT
      • Template details
        GET
      • Delete
        DELETE
      • Create an RCS template
        POST
      • List RCS templates
        GET
      • Update an RCS template
        PUT
      • RCS template details
        GET
    • Webhooks
      • Rotate the signing secret
        POST
      • Webhook delivery history
        GET
      • Configured webhooks
        GET
      • Webhook configuration
        PUT
    • Stops
      • Stops list
      • Add a STOP manually
      • Add STOPs via file upload
      • Delete a STOP
    • Listes de contacts
      • Create a contact list
      • List contact lists
      • Update a contact list
      • Contact list details
      • Delete a contact list
      • Contacts of a contact list - paginated
      • Contacts of a contact list - full extract
    • Contacts
      • Add one or more contacts
      • Add contacts via file upload
      • Update a contact
      • Contact details
      • Delete a contact
    • Sous-Comptes
      • Create a sub-account
      • List sub-accounts
      • List sub-accounts - paginated
      • Sub-account details
      • SubaccountController_getUserInfo
      • Add credits to a sub-account
      • Remove credits from a sub-account
      • Change credits consumption mode
      • List a sub-account's credits
    • Schemas
      • CreditsRo
      • WebhookSecretRo
      • Messages_type
      • WebhookDeliveryRo
      • Messages
      • WebhookDeliveriesRo
      • Reponses
      • WebhookRo
      • WebhookConfigRo
      • webhookTypeDto
      • paginationMeta
      • webhookDtoUpdate
      • RepliesHistoryRo
      • MessagesHistoryRo
      • SmsStatus
      • RcsStatus
      • CreateMessageStatusTypeRCS
      • SmsResume
      • RcsResume
      • StatusResumeBeforeRCS
      • CallChoiceDto
      • TextChoiceDto
      • UrlChoiceDto
      • LocationChoiceDto
      • RcsCardDto
      • RcsCarouselDto
      • RcsTextDto
      • shortUrlDto
      • FallBack
      • RcsDtoBaseConfig
      • RcsDto
      • CreateMessageStatusType
      • statusResumeBefore
      • MessagesSimpleDto
      • MessagesDynamicDto
      • MessagesContactListDto
      • MessagesFileUploadDto
      • Messages_sms
      • MessagesDestinatairesRo
      • Messages_rcs
      • MessagesDestinatairesRcsRo
      • Stops
      • StopsListRo
      • StopsDto
      • StopsFileUploadDto
      • ContactlistsDto
      • Contactlists
      • ContactlistsRemovedRO
      • ContactsWithId
      • ContactlistsContactsRo
      • Contacts
      • ContactsInsertDto
      • ContactsAddedRo
      • ContactsInsertByFileDto
      • ContactRemovedRO
      • LoginUserDto
      • LoginResponseDto
      • ModelsDto
      • Models
      • RcsCarousel
      • RcsShorturl
      • RcsConfig
      • SubAccountCreateDto
      • subAccountWithCredentials
      • subAccount
      • SubAccountListRo
      • SubAccountCredits
      • SubAccountChangeModeCredits

    Webhooks

    Webhooks notify you in real time about events on your sends. As soon as an event occurs, Conexteo sends an HTTP request to the URL you registered for that event type.

    The three types#

    ack_sms: SMS delivery reports (delivered, failed).
    reply: incoming replies from recipients, SMS and RCS (including clicks on RCS suggestions).
    ack_rcs: RCS statuses (delivered, read, failed, SMS fallback). Available in signed mode only.

    Signed or unsigned mode#

    Unsigned: simple delivery, with no delivery guarantee (see retries below).
    Signed (recommended): every request carries an HMAC signature to verify, and benefits from retries. This mode is required for ack_rcs.

    Verifying the signature#

    Every signed webhook is sent as a POST with three headers:
    HeaderContent
    X-Conexteo-Webhook-IdUnique event identifier (see Idempotency).
    X-Conexteo-TimestampSend time, in seconds since January 1, 1970 (epoch).
    X-Conexteo-Signaturev1= followed by the HMAC-SHA256 signature, in lowercase hexadecimal.
    The signature is computed as follows:
    HMAC_SHA256(secret, timestamp + "." + raw_body)
    secret: your account's signing secret (starts with whsec_). It is shown only once, when your first signed webhook is enabled, and can be rotated via POST /webhooks/secret.
    timestamp: the exact value of the X-Conexteo-Timestamp header.
    raw_body: the request body exactly as received, before any JSON parsing. JSON that is parsed and then re-encoded will not produce the same signature.
    To verify a webhook:
    1.
    Reject the request if the timestamp differs from the current time by more than 5 minutes (replay protection).
    2.
    Compute the expected signature using the formula above.
    3.
    Compare it with the value received after v1=, using a constant-time comparison. If they differ, reject the request.
    The v1= prefix allows the algorithm to evolve without breaking existing integrations.

    Delivery and retries#

    Success or failure of an attempt
    An HTTP 2xx response from your server = delivered. Any other status code, a timeout, or a network error = failed attempt.
    Retries (signed webhooks only)
    An unsigned webhook is sent only once: if it fails, it is not retried. A signed webhook is retried up to 8 attempts in total, with an increasing delay between each:
    After failure no.Next attempt in
    130 seconds
    22 minutes
    310 minutes
    430 minutes
    51 hour
    64 hours
    712 hours
    This gives a retry window of about 18 hours. After the 8th unsuccessful attempt, delivery is abandoned (status failed).
    Idempotency
    The X-Conexteo-Webhook-Id header stays identical across all attempts of the same event. Process each identifier only once: this is your protection against duplicates.
    Monitoring
    Check the status of your deliveries via GET /webhooks/deliveries (statuses: pending, delivered, failed, cancelled).
    Modified at 2026-09-17 15:26:19
    Previous
    RCS template details
    Next
    Rotate the signing secret
    Built with