Route Mobile · AsyncAPI Specification
Route Mobile Webhooks
Version
View Spec
View on GitHub
TelecommunicationsIndiaCPaaSMessagingSMSA2P MessagingWhatsApp BusinessRCSVoiceEmailIdentity VerificationOTPAggregatorAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-07-25'
method: searched
source: https://developer.rmlconnect.net/route-mobile-project/docs/whatsapp-client-callback-api
spec_type: none
description: >-
Route Mobile publishes NO AsyncAPI document and no event-catalog artifact — searched the
developer portal (the 300-entry llms.txt index), the routemobile GitHub organization, and
/asyncapi.yaml and /asyncapi.json on api.rmlconnect.net and apis.rmlconnect.net (404), on
api.sendclean.net (HTTP 200 but a catch-all `{"status":"error","message":"Page not found"}`
JSON body) and on developer.rmlconnect.net (HTTP 200 but the ReadMe single-page-app HTML
shell) — no AsyncAPI document exists at any of them.
It does, however, operate a real webhook/callback surface on every product: inbound messages,
delivery and read receipts, template lifecycle events and email engagement events are pushed
to a client-registered HTTPS endpoint. This file is the harvested webhook catalog that stands
in for the missing AsyncAPI.
asyncapi_published: false
webhooks_published: true
docs:
- https://developer.rmlconnect.net/route-mobile-project/docs/whatsapp-client-callback-api
- https://developer.rmlconnect.net/route-mobile-project/docs/callback-structure
- https://developer.rmlconnect.net/route-mobile-project/reference/viberclientcallback
- https://developer.rmlconnect.net/route-mobile-project/docs/webhook-calls
- https://developer.rmlconnect.net/route-mobile-project/docs/direct-send-message-callbacks-1
channels:
- product: WhatsApp Business
channel: client callback
registration: >-
Callback URL configured in the webhook settings of the Route Mobile panel; documented
delivery endpoint is POST /callbacks on https://apis.rmlconnect.net.
operation: openapi/route-mobile-whatsapp-business.yml#whatsappClientCallback
transport: HTTPS POST (JSON)
auth: none documented (client may require its own bearer token)
events:
- group: Incoming messages
types: [Incoming Text, Incoming Image, Incoming Audio, Incoming Video, Incoming Document,
Incoming Location, Incoming Interactive List, Incoming Template Quick Reply,
Incoming Session Quick Reply]
- group: Commerce
types: [Session Message Business for Single Product, Add Single Product to Cart,
Add Multi Product to Cart]
- group: Status reports
types: [Sent/Delivery Report, Read Report, Failed Delivery Report]
- group: Template status logs
types: [Template Approved, Template Paused, Template Disabled, Template Deleted]
error_codes: errors/route-mobile-error-codes.yml
- product: RCS Business Messaging
channel: callback
registration: Client callback URL registered with Route Mobile per bot/agent.
operation: openapi/route-mobile-rcs.yml#post-callback
transport: HTTPS POST (JSON)
auth: >-
Route Mobile presents a valid access token in the Authorization header when the client
endpoint requires authentication.
events:
- group: Incoming messages
types: [text_message, media_message (image/video/document), location_message]
- group: User responses
types: [Suggested Actions (URL and dialer), Suggested Replies]
- group: Status updates
types: [sent, delivered, read, failed]
payload_fields: [bot_name, event_type, request_id, session_id, timestamp, user_contact,
username, media_name, media_size, media_type, media_uri]
- product: Viber Business Messages
channel: client callback
registration: Callback URL registered in the Viber webhook configuration.
operation: openapi/route-mobile-viber.yml#viberClientCallback
transport: HTTPS POST (JSON)
auth: none documented
events:
- group: Delivery reports (service_type dlr)
types: [Sent, delivered, seen, expired]
- group: Inbound (service_type two_way/session)
types: [Incoming Text, Incoming Image/Video]
payload_fields: [phone_number, time, message.text, message.media, message.file_name,
message.tracking_data, message_status, message_time, matching_template_id, service_type,
session_id, request_id]
- product: SendClean Email
channel: email event webhook
registration: >-
Registered through the API — addWebhook / editWebhook / listWebhook / getWebhookInfo /
deleteWebhook, with keyResetWebhook for signing-key rotation.
operations:
- openapi/route-mobile-sendclean-email.yml#addWebhook
- openapi/route-mobile-sendclean-email.yml#editWebhook
- openapi/route-mobile-sendclean-email.yml#listWebhooks
- openapi/route-mobile-sendclean-email.yml#getWebhookInfo
- openapi/route-mobile-sendclean-email.yml#deleteWebhook
- openapi/route-mobile-sendclean-email.yml#keyResetWebhook
transport: HTTPS POST (JSON)
events: [send, open, click, soft_bounce, hard_bounce, spam]
validation:
handshake: >-
The registered webhook URL must respond with the exact string "God bless you, SendClean"
to pass Route Mobile's validation check.
signature:
algorithm: HMAC-SHA1
header: X-SendCleanTES-SIGNATURE
rotation: >-
keyResetWebhook issues a new signing key which SendClean begins using immediately;
return a non-200 for batches that fail verification so they are retried after the
client has picked up the new key.
options: [store_log (Enable|Disable), description]
gaps:
- No AsyncAPI/CloudEvents document for any channel.
- No signature verification on the WhatsApp, RCS or Viber callbacks — only SendClean signs.
- No published retry/backoff schedule or event-ordering guarantee for the messaging callbacks.
related:
conventions: conventions/route-mobile-conventions.yml
errors: errors/route-mobile-error-codes.yml