Skip to main content
The Fallback API is part of the OmniChannel Send API. It lets you send messages with fallback across primary channels — SMS, RCS, and WhatsApp — in a single API call. If the primary channel fails to deliver within the configured wait time, the platform retries on the fallback channel(s) you define.

Endpoint

The Fallback API uses the same endpoint as the OmniChannel send API. Fallback behavior is activated by including the fallback object in the request body.

Headers

string
required
API key issued by OneXtel, used for authentication.

Request body

The request body is a JSON object. Each top-level key represents a messaging channel. You may use any one of sms, wa, or rcs as your primary channel, plus a fallback object defining the fallback behavior.

sms — SMS channel (array of objects)

string
required
SMS sender ID.
string
required
Recipient phone number.
string
required
Message type. Verified accepted on the SMS send API: SI, OTP, SE. Case-sensitive.
Neither TXN nor TRANS is a valid message type, despite both having appeared in earlier example payloads. Live testing of the SMS send API (Aug 2026) accepts only SI, OTP, and SE; TXN, TRANS, and Promo are rejected as invalid type.This matters more in fallback than in a direct send: an invalid type here is rejected at the fallback stage, long after the primary send returned 200, so the symptom is a successful API response and no SMS. Use SI or SE for service messages — see DLT template types.
The accepted set was verified on the send API, not on the fallback object specifically. If a fallback SMS is still not arriving with a valid type, confirm the fallback validator uses the same set.
string
required
Message content.
string
DLT template ID. Optional only when template auto-match is enabled on the API key; otherwise required for DLT-registered SMS in India.
string
DLT entity ID. Optional only when template auto-match is enabled on the API key; otherwise required for DLT-registered SMS in India.
With template auto-match enabled on the API key, OneXtel matches messageBody against your registered DLT templates and fills in templateId and entityId. When you do pass both, they are used as sent.
number
0 or 1 — enable Unicode encoding. Optional.
object
Optional custom reference fields for tracking or tagging (e.g. CustomReference1, CustomReference2).

wa — WhatsApp channel (array of objects)

string
required
Always "whatsapp".
string
required
Always "individual".
array
required
Array of recipient phone numbers.
string
required
WhatsApp sender number. A Pool ID can also be passed.
string
required
Always "template".
object
required
Object with name, language.code (the template language), and components. Uses the same payload structure as the WhatsApp Template Message API.
string
Custom reference fields for tracking: custref1 through custref5. Optional.

rcs — RCS channel (array of objects)

string
required
RCS sender ID.
string
required
Message type.
string
required
Recipient phone number.
object
required
Contains templateMessage, an object with templateCode and customParams. Uses the same payload structure as the RCS Template Message API.
string
Custom reference fields for tracking: custref1 through custref5. Optional.

fallback — fallback configuration (object)

Defines fallback behavior when the primary channel fails to deliver.
string
required
Fallback configuration ID.
boolean
required
Set to true to enable fallback.
string
required
Maximum time (in seconds) to wait for Delivery / Failure before triggering fallback. If the primary message carries a ttl longer than this wait time, the wait time overrides the TTL, so the primary attempt ends when fallback fires and the recipient does not get both messages.
object
SMS fallback object: sender, type, messageBody plus optional unicode, templateId, entityId, and custRef1–custRef5. Include as per your fallback configuration. templateId and entityId follow the same auto-match rule as the sms channel above.
object
WhatsApp fallback object: sender, template, languageCode, templateComponents (same payload structure as the WhatsApp Template Message API) plus optional custref1–custref5. Include as per your fallback configuration.
object
RCS fallback object: sender, messageType, templateCode, customParams (same payload structure as the RCS Template Message API) plus optional custref1–custref5. Include as per your fallback configuration.
Fallback Channel 1 and Fallback Channel 2 details can be added as per your fallback configuration. If a third-party fallback is used, dynamic keys can be added with the specific channel name.

Optional top-level fields

string
Phone number prefix, e.g. "+91". Optional.
string
Campaign identifier string. Optional.
object
Object with flag (set to 1 — mandatory if a URL shortener is required in the message body) and a urlDetails array. Each urlDetails item contains longUrl (mandatory when flag is 1), domain (optional), and track_user (optional).

Example request

The example below sends a WhatsApp template message as the primary channel with SMS configured as the fallback channel.
Include only the channel array (sms, wa, or rcs) that you want as the primary channel, and only the fallback channel objects that match your fallback configuration. The example under “Request body (all channels)” shows every supported block in one payload for reference.