Route Mobile Webhooks API

Configure event webhooks for email delivery events

Operations 7

POST /settings/addWebhook Add a webhook #
POST /settings/editWebhook Edit a webhook #
POST /settings/keyResetWebhook Reset webhook authentication key #
POST /settings/listWebhook List all webhooks #
POST /settings/deleteWebhook Delete a webhook #
POST /settings/getWebhookInfo Get webhook details #
POST /callbacks WhatsApp Client Callback #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/route-mobile-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

route-mobile-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Route Mobile Webhooks API
  x-refined-note:
  - x-logo differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged Webhooks across 2 of this provider''s published API definitions: route-mobile-sendclean-email.yml, route-mobile-whatsapp-business.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.sendclean.net/v1.0
  description: Production API server
- url: https://apis.rmlconnect.net
tags:
- name: Webhooks
  description: Configure event webhooks for email delivery events
paths:
  /settings/addWebhook:
    post:
      tags:
      - Webhooks
      summary: Add a webhook
      description: 'Registers a new webhook URL to receive email event notifications.


        **Supported events:** `send`, `open`, `click`, `soft_bounce`, `hard_bounce`, `spam`


        **Important:** The webhook URL must respond with `God bless you, SendClean` to pass the validation check.


        SendClean signs webhook POST requests with an HMAC-SHA1 signature in the `X-SendCleanTES-SIGNATURE`

        header for optional verification. See the Webhook Authentication section for details.

        '
      operationId: addWebhook
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddWebhookRequest'
            example:
              owner_id: example id
              token: example token
              url: https://example.com/webhook
              event: send,open,click,soft_bounce,hard_bounce,spam
              description: My event webhook
              store_log: Enable
      responses:
        '200':
          description: Webhook added
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/SuccessResponse'
                - $ref: '#/components/schemas/ErrorResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Webhook Added
    servers:
    - url: https://api.sendclean.net/v1.0
      description: Production API server
  /settings/editWebhook:
    post:
      tags:
      - Webhooks
      summary: Edit a webhook
      description: Updates the configuration of an existing webhook.
      operationId: editWebhook
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditWebhookRequest'
            example:
              owner_id: example id
              token: example token
              webhook_id: '424353445757557577457'
              url: https://example.com/webhook-v2
              event: open,click
      responses:
        '200':
          description: Webhook updated
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/SuccessResponse'
                - $ref: '#/components/schemas/ErrorResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Webhook Edited
    servers:
    - url: https://api.sendclean.net/v1.0
      description: Production API server
  /settings/keyResetWebhook:
    post:
      tags:
      - Webhooks
      summary: Reset webhook authentication key
      description: 'Generates a new authentication/signing key for the specified webhook.


        **Note:** SendClean immediately begins using the new key. To avoid dropping webhook batches,

        return a non-200 status for any batches that fail signature verification, and update your

        application with the new key before retrying.

        '
      operationId: keyResetWebhook
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookIdRequest'
            example:
              owner_id: example id
              token: example token
              webhook_id: '424353445757557577457'
      responses:
        '200':
          description: Webhook key reset
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/KeyResetWebhookResponse'
                - $ref: '#/components/schemas/ErrorResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Webhook key reseted
                    webhook_id: '424353445757557577457'
                    key: 2fg345gy6r7
    servers:
    - url: https://api.sendclean.net/v1.0
      description: Production API server
  /settings/listWebhook:
    post:
      tags:
      - Webhooks
      summary: List all webhooks
      description: Returns all webhooks registered to the account.
      operationId: listWebhooks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthFields'
            example:
              owner_id: example id
              token: example token
      responses:
        '200':
          description: List of webhooks
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ListWebhookResponse'
                - $ref: '#/components/schemas/ErrorResponse'
    servers:
    - url: https://api.sendclean.net/v1.0
      description: Production API server
  /settings/deleteWebhook:
    post:
      tags:
      - Webhooks
      summary: Delete a webhook
      description: Permanently removes a webhook from the account.
      operationId: deleteWebhook
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookIdRequest'
            example:
              owner_id: example id
              token: example token
              webhook_id: '424353445757557577457'
      responses:
        '200':
          description: Webhook deleted
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/SuccessResponse'
                - $ref: '#/components/schemas/ErrorResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Webhook Deleted
    servers:
    - url: https://api.sendclean.net/v1.0
      description: Production API server
  /settings/getWebhookInfo:
    post:
      tags:
      - Webhooks
      summary: Get webhook details
      description: Returns detailed information about a specific webhook, including delivery stats.
      operationId: getWebhookInfo
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookIdRequest'
            example:
              owner_id: example id
              token: example token
              webhook_id: '424353445757557577457'
      responses:
        '200':
          description: Webhook info
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/WebhookInfoResponse'
                - $ref: '#/components/schemas/ErrorResponse'
    servers:
    - url: https://api.sendclean.net/v1.0
      description: Production API server
  /callbacks:
    post:
      tags:
      - Webhooks
      summary: WhatsApp Client Callback
      description: "Client Callback APIs allow you to receive real-time notifications (callbacks) for events that occur on your WhatsApp Business account. These callbacks are triggered by events that occur on the WhatsApp server, and are delivered to a URL that you specify in your webhook configuration.\n\nFor more information, see the [Route Mobile WhatsApp OpenAPI Specifications](https://routemobile.github.io/WhatsApp-Business-API/WBS.html).\n\n## Callback Error Codes\n| **Code** | **Text** | **Description** |\n| --- | --- | --- |\n| 400 | Media download error | There was an error while downloading media. |\n| 401 | Group does not exist | The specified group does not exist. |\n| 402 | Others | An unspecified error occurred. |\n| 403 | Error code for blacklisting | The given number is blacklisted. |\n| 408 | Message is not valid | The message is not valid or malformed. |\n| 410 | Message expired | The message has expired and cannot be delivered. |\n| 429 | Rate limit hit | The rate limit for API calls has been reached. |\n| 430 - 433 | Others | Unspecified errors occurred. |\n| 470 | Re-engagement message | The message is a re-engagement message. |\n| 471 | Spam Rate limit | The rate limit for sending spam messages has been reached. |\n| 472 | User's number is part of an experiment | The user's number is part of an experiment and cannot be used. |\n| 500 | Unknown Error | An unknown or unexpected error occurred. |\n| 1000 | Others | Unspecified errors occurred. |\n| 1001 | Message too long | The message exceeds the maximum length allowed. |\n| 1002 | Invalid recipient type | The recipient type specified is not valid. |\n| 1003 | Not a group participant | The user is not a participant of the group. |\n| 1004 | Resource already exists | The resource being created already exists. |\n| 1005-1006 | Others | Unspecified errors occurred. |\n| 1008 | Required parameter is missing | A required parameter for the API call is missing. |\n| 1009 | Parameter value is not valid | The value provided for a parameter is not valid. |\n| 1010 | Parameter is not required | A parameter that was provided is not required for the API call. |\n| 1011-1011 | Others | Unspecified errors occurred. |\n| 1012 | Group is unknown | The specified group is unknown. |\n| 1013 | User is not valid | The specified user is not valid. |\n| 1014 | Corrupt Image | The image provided is corrupt or invalid. |\n| 1015-1018 | Others | Unspecified errors occurred. |\n| 1019 | Not a group admin | The user is not an admin of the group. |\n| 1020 | Bad group | The specified group is invalid or bad. |\n| 1021 | Bad User | The specified user is invalid or bad. |\n| 1022-1024 | Others | Unspecified errors occurred. |\n| 1025 | Invalid Request | The API request is invalid. |\n| 1026 | Receiver Incapable | The receiver is incapable of receiving the message. |\n| 2000 | Template Param Count Mismatch | The number of parameters provided for a template does not match the required count. |\n| 2001 | Template Missing | The specified template does not exist. |\n| 2002 | Template Fetch Failed | Failed to fetch the template. |\n| 2003 | Template Pack Missing | The template pack is missing. |\n| 2004 | Template Param Length Too Long | The length of a parameter in the template is too long. |\n| 2005 | Template Hydrated Text Too Long | The length of the hydrated text in the template is too long. |\n| 2006 | Template White Space Policy Violated | The template violates the white space policy. |\n| 2007 | Template Format Character Policy Violated | The template violates the format character policy. |\n| 2008 | Template Media Format Unsupported | The media format in the template is unsupported. |\n| 2009 | Template Required Component Missing | A required component in the template is missing. |\n| 2010 | Template Invalid Hydrated URL | The hydrated URL in the template is invalid. |\n| 2011 | Template Invalid Phone Number | The phone number in the template is invalid. |\n| 2012 | Template Parameter Format Mismatch | The format of a parameter in the template is mismatched. |\n| 2013 | Template Buttons Unsupported | The buttons in the template are unsupported. |\n| 0 | AuthException | An authentication exception occurred. |\n| 3 | API Method | An error occurred with the API method. |\n| 10 | Permission Denied | The user does not have the necessary permissions to perform the requested action. |\n| 190 | Access token has expired | The access token used for authentication has expired. |\n| 200-299 | API Permission | The API call requires specific permissions, and the user does not have them. |\n| 4 | API Too Many Calls | The API call limit has been exceeded. |\n| 80007 | Rate limit issues | There are issues with the rate limits for API calls. |\n| 130429 | Rate limit hit | The rate limit for API calls has been reached. |\n| 131048 | Spam rate limit hit | The rate limit for sending spam messages has been reached. |\n| 131056 | (Business Account, Consumer Account) pair rate limit hit | The rate limit for a specific pair of business and consumer accounts has been reached. |\n| 368 | Temporarily blocked for policy violations | The user or account has been temporarily blocked due to policy violations. |\n| 131031 | Account has been locked | The user's account has been locked. |\n| 1 | API Unknown | An unknown error occurred with the API. |\n| 2 | API Service | An error occurred with the API service. |\n| 33 | Parameter value is not valid | The value provided for a parameter is not valid. |\n| 100 | Invalid parameter | The parameter specified in the API call is invalid. |\n| 131000 | Something went wrong | An unspecified error occurred. |\n| 131005 | Access denied | Access to the requested resource is denied. |\n| 131008 | Required parameter is missing | A required parameter for the API call is missing. |\n| 131009 | Parameter value is not valid | The value provided for a parameter is not valid. |\n| 131016 | Service unavailable | The requested service is currently unavailable.  |\n| 131021 | Recipient cannot be sender | The recipient of the message cannot be the sender. |\n| 131026 | Message Undeliverable | The message could not be delivered to the recipient. |\n| 131042 | Business eligibility payment issue | There is an issue with the payment for business eligibility. |\n| 131045 | Incorrect certificate | The certificate used for authentication is incorrect. |\n| 131047 | Re-engagement message | The message is a re-engagement message. |\n| 131051 | Unsupported message type | The message type is not supported. |\n| 131052 | Media download error | There was an error while downloading media. |\n| 131053 | Media upload error | There was an error while uploading media. |\n| 132000 | Template Param Count Mismatch | The number of parameters provided for a template does not match the required count. |\n| 132001 | Template does not exist | The specified template does not exist. |\n| 132005 | Template Hydrated Text Too Long | The length of the hydrated text in the template is too long. |\n| 132007 | Template Format Character Policy Violated | The template violates the format character policy. |\n| 132012 | Template Parameter Format Mismatch | The format of a parameter in the template is mismatched. |\n| 132015 | Template parameter invalid | The parameter in the template is invalid. |\n| 133000 | Incomplete Deregistration | The deregistration process is incomplete. |\n| 133004 | Server Temporarily Unavailable | The server is temporarily unavailable. |\n| 133005 | Two-step verification PIN Mismatch | The two-step verification PIN provided does not match. |\n| 133006 | Phone number re-verification needed | Phone number re-verification is required. |\n| 133008 | Too Many two-step verification PIN Guesses | Too many incorrect guesses for the two-step verification PIN. |\n| 133009 | Two-step verification PIN Guessed Too Fast | The two-step verification PIN was guessed too quickly. |\n| 133010 | Phone number Not Registered | The phone number is not registered. |\n| 135000 | Generic user error | A generic error occurred for the user. |\n## Template Status Logs\n| **Template Status**| **Logs** |\n| --- | --- | \n|Template Approved | {\"product\": \"whatsapp\", \"component\": \"whatsapp-callback-event-worker\", \"level\": \"debug\", \"timestamp\": \"2023-11-02 07:40:04.402735\", \"message\": {\"URL\": \"xxxxxxxxxxxxxxxxx\", \"data\": {\"statuses\": [{\"id\": \"xxxxxxxxxxxxxx\", \"template_name\": \"xxxxx\", \"template_id\": xxxxxxxxxxxxxx, \"template_language\": \"en\", \"reason\": \"NONE\", \"status\": \"APPROVED\", \"timestamp\": xxxxxxxx, \"type\": \"event\", \"information\": null}], \"brand_msisdn\": \"{phone}\"}, \"status\": 200, \"response_time\": 0.0xxxxxxxxxxxxxx, \"current_time\": \"xx:xx:xx.xxxxxx\", \"response\": \"{\\\"success\\\":true}\"}}|\n| Template Paused | {\"product\": \"whatsapp\", \"component\": \"whatsapp-callback-event-worker\", \"level\": \"debug\", \"timestamp\": \"2023-11-02 07:37:58.285408\", \"message\": {\"URL\": \"xxxxxxxxxxxxxxxxxxxxx\", \"data\": {\"statuses\": [{\"id\": \"xxxxxxxxxxxxxxx\", \"template_name\": \"abc__1\", \"template_id\": xxxxxxxxxxxxxxx, \"template_language\": \"en\", \"reason\": \"NONE\", \"status\": \"PAUSED\", \"timestamp\": xxxxxxxxxx, \"type\": \"event\", \"information\": {\"title\": \"FIRST_PAUSE\", \"description\": \"Your WhatsApp message template has been paused for x hours until xxx x at xx:xx AM UTC because it had issues.\"}}], \"brand_msisdn\": \"{phone}\"}, \"status\": 200, \"response_time\": 0.0xxxxxxxxxxxxxxx, \"current_time\": \"xxxx-xx-xx xx:xx:xx.xxxxxx\", \"response\": \"{\\\"success\\\":true}\"}} |\n|Template Disabled| {\"product\": \"whatsapp\", \"component\": \"whatsapp-callback-event-worker\", \"level\": \"debug\", \"timestamp\": \"2023-11-02 09:57:45.920074\", \"message\": {\"URL\": \"xxxxxxxxxxxxxxxxxxxxxx\", \"data\": {\"statuses\": [{\"id\": \"xxxxxxxxxxxxxxxxx\", \"template_name\": \"xxxxxxxxxxxxxxx\", \"template_id\": xxxxxxxxxxxxxx, \"template_language\": \"en_US\", \"reason\": \"NONE\", \"status\": \"FLAGGED\", \"timestamp\": xxxxxxxxxx, \"type\": \"event\", \"information\": null}], \"brand_msisdn\": \"{phone}\"}, \"status\": 200, \"response_time\": 0.011070728302001953, \"current_time\": \"xxxx-xx-xx xx:xx:xx.xxxxxx\", \"response\": \"{\\\"status\\\":\\\"ok\\\"}\\n\"}} |\n|Template Deleted |{\"product\": \"whatsapp\", \"component\": \"whatsapp-callback-event-worker\", \"level\": \"debug\", \"timestamp\": \"2023-11-02 10:36:44.798440\", \"message\": {\"URL\": \"xxxxxxxxxxxxxxxxxxxxxxxx\", \"data\": {\"statuses\": [{\"id\": \"xxxxxxxxxxxxxxxx\", \"template_name\": \"testing_02_2023\", \"template_id\": xxxxxxxxxxxxxx, \"template_language\": \"en_US\", \"reason\": \"NONE\", \"status\": \"PENDING_DELETION\", \"timestamp\": xxxxxxxxxxx, \"type\": \"event\", \"information\": null}], \"brand_msisdn\": \"{phone}\"}, \"status\": 200, \"response_time\": 0.0xxxxxxxxxxxxxxxxxx, \"current_time\": \"xxxx-xx-xx xx:xx:xx.xxxxxx\", \"response\": \"{\\\"status\\\":\\\"ok\\\"}\\n\"}}|"
      operationId: whatsappClientCallback
      requestBody:
        description: Webhook payload delivered by Route Mobile when events occur on your WhatsApp Business account.
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/CallbackIncomingText'
              - $ref: '#/components/schemas/CallbackIncomingImage'
              - $ref: '#/components/schemas/CallbackIncomingAudio'
              - $ref: '#/components/schemas/CallbackIncomingVideo'
              - $ref: '#/components/schemas/CallbackIncomingDocument'
              - $ref: '#/components/schemas/CallbackIncomingLocation'
              - $ref: '#/components/schemas/CallbackIncomingInteractiveList'
              - $ref: '#/components/schemas/CallbackTemplateQuickReply'
              - $ref: '#/components/schemas/CallbackIncomingQuickReply'
              - $ref: '#/components/schemas/CallbackBusinessSingleProduct'
              - $ref: '#/components/schemas/CallbackSingleProductCart'
              - $ref: '#/components/schemas/CallbackMultiProductCart'
              - $ref: '#/components/schemas/CallbackSentDeliveryReport'
              - $ref: '#/components/schemas/CallbackReadReceipt'
              - $ref: '#/components/schemas/CallbackFailedDeliveryReport'
            examples:
              Incoming Text:
                value:
                  messages:
                  - id: 6af19ee2-72d9-11ed-88f4-0a58a9fxxxx2
                    from: '{phone}'
                    type: text
                    timestamp: '1670051363'
                    text:
                      body: Hi
                    message_id: wamid.HBgMOTE3MDQ1MzQ1Mjg1FQIAEhggNEI0OUxxxxxxxxxxxzUxOEVGODBDMEE2QUFCQTg1ODkA
                  contacts:
                  - profile:
                      name: Darryl
                    wa_id: '{phone}'
                  brand_msisdn: '{phone}'
                  request_id: 6af19ee2-72d9-11ed-88f4-0a58xxxxxc02
              Incoming Image:
                value:
                  apiKey: IfgKh@jHkB5%232roUt20nhVgfb!ll*mxxxxxx
                  messages:
                  - from: 91994163xxxx
                    id: ABGGFlA5FpafAgoxxxxxxxxxmuxx
                    image:
                      file: /usr/local/wamedia/shared/b1cf38-8734-4ad3-b4a1-ef0c10d0xxxx
                      id: b1c68f38-8734-4ad3-b4a1-ef0c10xxxx
                      mime_type: image/jpeg
                      sha256: 29ed500fa64eb55fc19dc4124acb300e5dcca301ae99xxxxx
                      caption: Check out my new phone!
                      media_url: https://apis.rmlconnect.net/wba/v1/media?media_id=fc233119-733f-49c-bcbd-bxxxxxxxxxxx&username=demo
                    timestamp: '1521497954'
                    type: image
                  brand_msisdn: '{phone}'
                  request_id: aebeca32-f125-11eb-8c86-0242ac1xxxxx
              Incoming Audio:
                value:
                  messages:
                  - from: 91994163xxxx
                    id: ABGGFlA5FpafAgo6tHcNmNjxxxxx
                    timestamp: '1521827831'
                    type: voice
                    voice:
                      file: /usr/local/wamedia/shared/463e/b7ec/ff4e4d9bb11cbdxxxxx
                      id: 463eb7ec-ff4e-4d9b-b110-1879cbdxxxxx
                      mime_type: audio/ogg; codecs=opus
                      sha256: fa9e1807d936b7cebe63654ea3a7912923590521efxxxxxxx
                      media_url: https://apis.rmlconnect.net/wba/v1/media?media_id=fc233119-733f-49c-bcbd-b2f68f7xxxxx&username=demo
                  brand_msisdn: '{phone}'
                  request_id: aebeca32-f125-11eb-8c86-0242acxxxxxx
              Incoming Video:
                value:
                  messages:
                  - from: 91994163xxxx
                    id: ABGGFlA5FpafAgo6tHcNmNxxxxxx
                    timestamp: '1521827831'
                    type: voice
                    voice:
                      file: /usr/local/wamedia/shared/463e/b7ec/ff4e4d9bb11cbdxxxxx
                      id: 463eb7ec-ff4e-4d9b-b110-1879cxxxxxxx
                      mime_type: audio/ogg; codecs=opus
                      sha256: fa9e1807d936b7cebe63654ea3a7912923590521exxxxxxxx
                      media_url: https://apis.rmlconnect.net/wba/v1/media?media_id=fc233119-733f-49c-bcbd-b2f68fxxxxxx&username=demo
                  brand_msisdn: '{phone}'
                  request_id: aebeca32-f125-11eb-8c86-0242acxxxxxx
              Incoming Document:
                value:
                  apiKey: IfgKh@jHkB5%232roUt20nhVgfb!ll*mvxxxxx
                  messages:
                  - from: 91994163xxxx
                    id: ABGGFlA5FpafAgo6tHcNmNjXxxxx
                    timestamp: '1522189546'
                    type: document
                    document:
                      caption: 80skaraokesonglistaxxxst
                      file: /usr/local/wamedia/shared/fc233119-733f-49c-bcbd-b2f68f79xxxx
                      id: fc233119-733f-49c-bcbd-b2f68f7xxxxx
                      mime_type: application/pdf
                      sha256: 3b11fa6ef2bde1dd14726e09d3eda220f6484f32d5d5caa4xxx
                      media_url: https://apis.rmlconnect.net/wba/v1/media?media_id=fc233119-733f-49c-bcbd-b2f6xxxxxxxx&username=demo
                  brand_msisdn: '{phone}'
                  request_id: aebeca32-f125-11eb-8c86-0242ac1xxxxx
              Incoming Location:
                value:
                  contacts:
                  - profile:
                      name: User Name
                    wa_id: '{phone}'
                  messages:
                  - from: 91994163xxxx
                    id: ABGGFlA5FpafAgo6tHcNmNjxxxxx
                    location:
                      address: Main Street Beach, Santa Cruz, CA
                      latitude: 38.9806263495
                      longitude: -131.9428612257
                      name: Main Street Beach
                      url: https://foursquare.com/v/xxxxxxx35b5df7744
                    timestamp: '1521497875'
                    type: location
                  brand_msisdn: '{phone}'
                  request_id: aebeca32-f125-11eb-8c86-0242ac12xxxx
              Incoming Interactive List:
                value:
                  contacts:
                  - profile:
                      name: overw@tch
                    wa_id: '{phone}'
                  messages:
                  - context:
                      from: '{phone}'
                      id: gBEGkXBFJzZxAgmfF7hnuD9xxxx
                    from: '{phone}'
                    id: b398502a-eea8-11eb-ac2a-0242ac12xxxx
                    interactive:
                      list_reply:
                        description: yummy flavour
                        id: rd133
                        title: Fish Masala
                      type: list_reply
                    timestamp: '1627369389'
                    type: interactive
                  brand_msisdn: '{phone}'
                  request_id: b398502a-eea8-11eb-ac2a-0242ac12xxxx
              Incoming Template Quick Reply:
                value:
                  contacts:
                  - profile:
                      name: '@@'
                    wa_id: '{phone}'
                  messages:
                  - button:
                      text: Buy Now
                    context:
                      from: '{phone}'
                      id: b7e984f4-94ad-11ec-b1f4-0a58a9fezxxx
                    from: '{phone}'
                    id: d14b9dce-94ad-11ec-ad15-0242ac1xxxxx
                    timestamp: '1645623480'
                    type: button
                  brand_msisdn: '{phone}'
                  request_id: d14b9dce-94ad-11ec-ad15-0242ac12xxxx
              Incoming Session Quick Reply:
                value:
                  contacts:
                  - profile:
                      name: overw@tch
                    wa_id: '{phone}'
                  messages:
                  - context:
                      from: '{phone}'
                      id: gBEGkXBFJzZxAgnSloIcxxxxxxo
                    from: '{phone}'
                    id: c5e396fe-eea8-11eb-9e4e-0242ac12xxxx
                    interactive:
                      button_reply:
                        id: aaaa
                        title: 'Yes'
                      type: button_reply
                    timestamp: '1627369420'
                    type: interactive
              Session Message Business for Single Product:
                value:
                  contact_no: '{phone}'
                  data:
                    contacts:
                    - profile:
                        name: Justin Joy
                      wa_id: '{phone}'
                    messages:
                    - context:
                        referred_product:
                          catalog_id: 965968xxxxxxxx2
                          product_retailer_id: 2xxxxxx1
                      from: '{phone}'
                      id: ABEGkZgxxxxxxxxxxxxxFkqiBiDQ
                      text:
                        body: Hi
                      timestamp: '1655377850'
                      type: text
                    brand_msisdn: '{phone}'
                  time: '2022-06-16 11:10:50.560600'
                  source: FROM_CALLBACK
              Add Single Product to Cart:
                value:
                  contact_no: '{phone}'
                  data:
                    contacts:
                    - profile:
                        name: Justin Joy
                      wa_id: '{phone}'
                    messages:
                    - from: 91983302xxxx
                      id: ABEGkZgzAxxxxxxxxxxxxxxJmt4T
                      order:
                        catalog_id: 9659687340xxxxx
                        product_items:
                        - currency: AED
                          item_price: 54
                          product_retailer_id: 20214xxx
                          quantity: 1
                      timestamp: '1655377900'
                      type: order
                    brand_msisdn: '{phone}'
                  time: '2022-06-16 11:11:41.204321'
                  source: FROM_CALLBACK
              Add Multi Product to Cart:
                value:
                  contact_no: '{phone}'
                  data:
                    contacts:
                    - profile:
                        name: Justin Joy
                      wa_id: '{phone}'
                    messages:
                    - from: 91983302xxxx
                      id: ABEGkZgzAmlUAgo635UDWxqRxxxx
                      order:
                        catalog_id: 9659687340xxxxx
                        product_items:
                        - currency: AED
                          item_price: 54
                          product_retailer_id: 20xxxx01
                          quantity: 1
                        - currency: AED
                          item_price: 40
                          product_retailer_id: 206xxx00
                          quantity: 1
                      timestamp: '1655377983'
                      type: order
                    brand_msisdn: '{phone}'
                  time: '2022-06-16 11:13:03.900579'
                  source: FROM_CALLBACK
              Sent/Delivery Report:
                value:
                  statuses:
                  - conversation:
                      expiration_timestamp: 1644060900
                      id: d24f4c6e3xxxxxxxxxxxfcbd2822fa6a
                      origin:
                        type: user_initiated/business_initiated/referral_conversion
                    id: 5a9f3040-85ae-11ec-8168-0xxxxxxxxxxx
                    pricing:
                      billable: true/false
                      category: user_initiated/business_initiated/referral_conversion
                      pricing_model: CBP
                    recipient_id: '{phone}'
                    status: sent/delivered
                    timestamp: '1643974443'
                    type: message
                    extra: ''
                    message_id: wamid.HBgMOTE3MDQ1MzxxxxxxxxxxxxxxxxxxxxxxxxxxNDA5QzRGRkRFAA==
                  brand_msisdn: '{phone}'
              Read Report:
                value:
                  display_no: '{phone}'
                  statuses:
                  - id: f8c7302e-4dfe-11ed-9b08-0xxxxxxxxxx2
                    recipient_id: xxxxxxxxxxxx
                    status: read
                    timestamp: '1665999302'
                    type: message
                    conversation:
                      id: a58efe0xxxxxxxxxxx3b3015e1573769
                      origin:
                        type: user_initiated/business_initiated/referral_conversion
                    pricing:
                      billable: true/false
                      pricing_model: CBP
                      category: user_initiated/business_initiated/referral_conversion
                    extra: '{your value}'
                  brand_msisdn: '{phone}'
              Failed Delivery Report:
                value:
                  statuses:
                  - errors:
                    - code: 470
                      title: reason for failure
                    id: c58c55a6cae6d1cb43d0c37efxxxxxb
                    recipient_id: 1206400xxxx
                    status: failed
                    timestamp: '1533332775'
                    extra: qwkfm9_606hxxx05
          application/xml:
            schema:
              type: object
            examples:
              Incoming Text:
                value: "{\n  \"messages\": [\n    {\n      \"id\": \"6axxxxx2-72d9-11ed-88f4xxxxxxxxxxc02\",\n      \"from\": \"{phone}\",\n      \"type\": \"text\",\n      \"timestamp\": \"1670051363\",\n      \"text\": {\n        \"body\": \"Hi\"\n      },\n      \"message_id\":

# --- truncated at 32 KB (78 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/route-mobile/refs/heads/main/openapi/route-mobile-webhooks-api-openapi.yml