Send a Failover OTP message

Send an OTP with a flow of steps (e.g. ViberOtp then Sms). Each step carries its own content.
Optional callback.url receives webhooks with the same JSON shape as tracking.

Response status: Succeeded (single-step flow), InProgress (multi-step — first channel accepted, failover may follow),
or Failed (no channel accepted). HTTP 200 is returned even when status is Failed.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

RESPONSE PARAMETERS

KEYDESCRIPTION
flowIdFlow UUID. Use for tracking (GET /otp/failover/{flowId}). Null when status is Failed.
statusInProgress (multi-step — first channel accepted), Succeeded (single-step), or Failed.
typeViber or Sms — channel that succeeded. Null when Failed.
flowEcho of request steps; the sent step includes trackingId (message token).
createdAtISO-8601 timestamp.
errorPresent when status is Failed.
statusCodeWhen Failed: 0 server error, 1 insufficient balance, 2 no next step, 3 failover not triggered.
Body Params
flow
array of objects
required
length ≥ 1
flow*
string
enum
required

ViberOtp or Sms

Allowed:
required

E.164 recipient (Sms)

integer
required
≥ 1

Step order in the flow (1, 2, …). Must be unique.

integer
required
≥ 0

Time to live in seconds (message validity and failover timing)

string | null

Set in response on the step that was sent (message token)

boolean
Defaults to false

ViberOtp only. When true, trigger next channel ttl seconds after Viber Delivered

string

Campaign or tracking label

string

Sms sender ID

message
object

Sms step — required with at least body

string

ViberOtp — Routee Viber OTP sender tracking id

string

ViberOtp — template UUID from GET /otp/templates

string
Defaults to en
string

ViberOtp — OTP code (4–10 characters)

string

Required for non-basic templates (e.g. with_business_name, with_validity)

string
string
string
string
string
callback
object
Responses

401

Invalid or expired Bearer token

403

Missing Bearer credentials

422

Request validation failed

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json