Channels
Seven channel types behind one endpoint
OmniMessage is a bring-your-own-channel gateway. You connect senders you already own, and every one of them is addressed, tracked and billed the same way.
Bring your own channel
Connect once, in the console or by API
A connected sender becomes a channel with an ID. That ID is the only channel-specific value in a send request.
You own the sender
The number, bot or account is registered to you with the provider. Leaving OmniMessage does not mean leaving your sender behind.
Two separate bills
OmniMessage charges a gateway fee per outbound message. Whatever Meta, Twilio or another provider charges for the channel is billed by them, to you.
Sign in or paste credentials
WhatsApp, Messenger and Instagram are authorised by signing in with Facebook in the console, and TikTok by signing in with TikTok. Telegram, SMS and SMS OTP take credentials, in the console or through the API, and so can a WhatsApp number that is already on the Cloud API.
Credentials are write-only
Tokens, codes and credentials are passed to the delivery layer when you connect a channel. They are not stored by the gateway and the API never returns them.
curl https://api.omnimessage.co/v1/channels \
-H "Authorization: Bearer om_live_..." \
-H "Content-Type: application/json" \
-d '{
"type": "whatsapp",
"name": "Support line",
"identifier": "+971800123456",
"credentials": {
"wab_account_id": "...",
"phone_number_id": "...",
"access_token": "..."
}
}'{
"id": "ch_7Hq2mN5vB8cX1zL0pK3j",
"object": "channel",
"mode": "live",
"type": "whatsapp",
"name": "Support line",
"identifier": "+971800123456",
"status": "active",
"connection_status": "pending",
"capabilities": ["text", "attachments", "template", "button", "list", "location", "contacts", "cta_url"],
"created_at": "2026-10-01T08:00:00.000Z"
}For WhatsApp, Telegram, SMS and SMS OTP. Requires the channels:write scope. Subscribe to channel.connected and channel.disconnected to follow the connection status.
WhatsApp Business
Send from a WhatsApp Business Platform (Cloud API) phone number that you own. OmniMessage forwards your messages to the Cloud API and reports sent, delivered, read and failed statuses back to you.
$0.001 per outbound message, or one package credit
- What you need
- A Facebook login with access to your Meta business portfolio. Continue with Facebook in the console and Meta Embedded Signup sets up the WhatsApp Business account and the number. A number already on the Cloud API can also be connected with its IDs and a system user access token, in the console or through the API.
- API credentials
wab_account_idphone_number_idaccess_token- Channel type
whatsapp- Sender identifier
- Sender phone number in E.164 format, for example
+971800123456. - Recipient (
to) - Phone number in E.164 format.
- Good to know
- Outside the 24-hour customer service window, WhatsApp only accepts approved template messages.
- List the approved templates of a channel with
GET /v1/channels/:id/templates. - Meta conversation fees are charged by Meta to your WhatsApp Business account. They are separate from the gateway fee.
SMS
Send SMS from a Twilio phone number in your own Twilio account. Use it for notifications, reminders and two-way conversations, with inbound messages delivered to your webhook.
$0.0005 per outbound message, or one package credit
- What you need
- A Twilio account and a phone number that is enabled for messaging.
- API credentials
account_sidphone_number_sidauth_token- Channel type
sms- Sender identifier
- Sender phone number in E.164 format.
- Recipient (
to) - Phone number in E.164 format.
- Message types
- TextAttachments
- Good to know
- Media attachments depend on what your number and the destination network support.
- Carrier and Twilio fees are charged by Twilio to your Twilio account. They are separate from the gateway fee.
SMS OTP
A dedicated channel type for verification codes. It accepts plain text only, so a login flow cannot accidentally send anything else through it.
$0.0005 per outbound message, or one package credit
- What you need
- An account with your OTP SMS provider and its API key.
- API credentials
api_key- Channel type
sms_otp- Sender identifier
- The sender ID or number registered with your provider.
- Recipient (
to) - Phone number in E.164 format.
- Message types
- Text
- Good to know
- Text only. Attachments and interactive types are rejected with
unsupported_message_type. - Provider fees are charged by your provider. They are separate from the gateway fee.
- Text only. Attachments and interactive types are rejected with
Telegram
Send through a Telegram bot that you created. The bot token is the only credential, and people who message the bot arrive as message.received events.
$0.0003 per outbound message, or one package credit
- What you need
- A Telegram bot and its token from
@BotFather. The bot username is read from Telegram when you connect. - API credentials
access_token- Channel type
telegram- Sender identifier
- The bot username, read from Telegram with the token.
- Recipient (
to) - Telegram chat ID.
- Message types
- TextAttachmentsReply buttonsLocationContactsPoll
- Good to know
- A bot can only message a person who has started a conversation with it.
- The chat ID of each person is included in the
message.receivedevents they trigger.
Messenger
Reply to people who contact your Facebook Page, with text, media and reply buttons. Inbound messages reach your webhook with the sender ID you need to answer.
$0.0005 per outbound message, or one package credit
- What you need
- A Facebook Page and a Facebook login with full control of it.
- How to connect
- In the console, continue with Facebook and pick the Page to send from.There are no credentials to copy for this channel type, and it cannot be created with an API key.
- Channel type
messenger- Sender identifier
- The Page the channel sends from.
- Recipient (
to) - Page-scoped user ID.
- Message types
- TextAttachmentsReply buttons
- Good to know
- Page-scoped IDs are issued per Page. You receive them in
message.receivedevents. - Meta messaging policies apply to what you can send and when.
- Page-scoped IDs are issued per Page. You receive them in
Answer direct messages sent to your Instagram professional account with text, media and reply buttons, through the same endpoint as every other channel.
$0.0005 per outbound message, or one package credit
- What you need
- An Instagram professional account that is linked to a Facebook Page you manage.
- How to connect
- In the console, continue with Facebook and pick the Page your Instagram account is linked to. Pages without a linked professional account cannot be connected.There are no credentials to copy for this channel type, and it cannot be created with an API key.
- Channel type
instagram- Sender identifier
- The Instagram account the channel sends from.
- Recipient (
to) - Page-scoped user ID.
- Message types
- TextAttachmentsReply buttons
- Good to know
- Scoped IDs are issued per account. You receive them in
message.receivedevents. - Meta messaging policies apply to what you can send and when.
- Scoped IDs are issued per account. You receive them in
TikTok
Reply to people who message your TikTok business account with text, media and reply buttons, and track each message with the same statuses and webhooks.
$0.0005 per outbound message, or one package credit
- What you need
- A TikTok Business account you can sign in to.
- How to connect
- In the console, continue with TikTok and approve access to the messages of your business account.There are no credentials to copy for this channel type, and it cannot be created with an API key.
- Channel type
tiktok- Sender identifier
- The TikTok account the channel sends from.
- Recipient (
to) - The sender ID from a
message.receivedevent. - Message types
- TextAttachmentsReply buttons
- Good to know
- TikTok messaging policies apply to what you can send and when.
Connect your first channel
Create an account, add a sender you already own and send through it with the same request you tested in the sandbox.