canonical: https://jentic.com/apis/nexmo.com/nexmo-dispatch

# Nexmo Dispatch API

Jentic publishes the only available OpenAPI specification for Nexmo Dispatch API, keeping it validated and agent-ready. The Dispatch API orchestrates multi-channel message workflows on top of Nexmo's Messages API. The current template is failover: an ordered list of message attempts (for example WhatsApp, then SMS) where Dispatch automatically tries the next channel if the previous one fails immediately or does not reach the configured condition_status within a time window. The whole API is one POST endpoint that accepts a workflow definition.

## For AI agents

Send a message that automatically falls over from one channel to another (e.g., WhatsApp then SMS) until one succeeds. Single POST endpoint that defines a failover workflow.

## Scope

Does not send single-channel messages directly, manage WhatsApp templates, or expose per-channel analytics - use only to define multi-channel failover workflows that delegate sending to the Messages API.

## Capabilities

- Define a failover workflow that tries WhatsApp, Viber, Messenger, MMS, or SMS in sequence until a configured condition_status is reached
- Set a per-step timeout (failover_expiry) after which Dispatch advances to the next channel if no read or delivery event fires
- Specify the condition (delivered or read) that counts as success for each step in the workflow
- Receive status webhooks from the underlying Messages API for every delivery and read event triggered by the workflow
- Authenticate workflows with either basic auth (api_key/api_secret) or a JWT bearer token tied to a Nexmo application

## Use cases

### WhatsApp-to-SMS failover for transactional alerts

Businesses that prefer cheaper, richer WhatsApp delivery but cannot accept silent failures use Dispatch to define a two-step workflow: WhatsApp first with a delivered condition and a 600-second expiry, SMS second as the fallback. A single POST to / submits the whole template; Nexmo handles the retry logic and emits status webhooks for both legs.

Example prompt: POST to / with a failover workflow containing a WhatsApp message step (condition delivered, expiry 600) and an SMS fallback step using a JWT bearer token.

### Read-receipt-driven OTP escalation

For 2FA where the user must actually open the message, the workflow can require a read condition on the first step. If WhatsApp does not register a read event within the expiry window, Dispatch falls over to SMS automatically. The whole behaviour is described in one workflow body without the application running its own retry timers.

Example prompt: POST to / with template=failover, step 1 WhatsApp with condition=read and failover_expiry=300, step 2 SMS, then poll status webhook for the dispatch_uuid.

### Agent-driven cross-channel notification

An AI agent that needs reliable user contact can issue a single Dispatch call instead of orchestrating multiple Messages API sends. Through Jentic, the agent searches for 'send a multi-channel failover message', loads the operation schema, and submits the full workflow body in one call - no retry or timer logic in the agent.

Example prompt: Search Jentic for 'send a failover multichannel message', load POST / on the Dispatch API, and execute it with a two-step workflow targeting the user's WhatsApp number then SMS number.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | / | Create a failover workflow that sends across multiple channels in order |

## Key resources

- **Workflow** — The single Dispatch resource - submit a failover template via POST /

## Why Jentic

- **Setup:** Wiring the Nexmo Dispatch API by hand means supporting both HTTP basic and JWT bearer auth, minting per-call JWTs from your Application signing key, and posting failover workflows to the api.nexmo.com/v0.1/dispatch host. Through Jentic you install once, import the Dispatch API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** The Dispatch API exposes a single failover-workflow endpoint and takes the message template in the request body, so scoping is by operation rather than by resource: limit the agent to the operation it needs, which is posting a multi-channel failover workflow. That single dispatch call is the only thing it can run.
- **Credential handling:** Your Nexmo basic credentials and Application signing key are stored once, encrypted, by your own Jentic One instance and used to mint per-call JWTs at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send a failover multichannel message', and Jentic returns the POST / operation with its full workflow body schema, including the nested failover template fields, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Nexmo Messages API** — Underlying single-channel send API that Dispatch orchestrates across multiple channels
- **Twilio API** — Twilio's Notify and Conversations services offer comparable multi-channel orchestration
- **MessageBird SMS API** — MessageBird's Flow Builder provides drag-and-drop multi-channel routing as an alternative to Dispatch's JSON template

## FAQ

### Why is there no official OpenAPI spec for Nexmo Dispatch API?

Vonage (formerly Nexmo) does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Nexmo Dispatch API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Nexmo Dispatch API use?

Either HTTP basic auth using api_key and api_secret or HTTP bearer with a JWT signed by an application's private key. Through Jentic both options are stored encrypted and selected per request, so the agent never handles the raw secret or the JWT signing flow.

### What workflow templates are supported by Dispatch?

The current 0.3.4 spec exposes the failover template only - an ordered list of channel attempts where each step has a condition (delivered or read) and a failover_expiry in seconds. New templates would appear as additional shapes in the same POST / request body.

### What are the rate limits for the Nexmo Dispatch API?

The OpenAPI spec does not declare rate limits. Account-level throttles apply, and because Dispatch fans out to the underlying Messages API, the per-channel limits of WhatsApp, SMS, Viber and Messenger also apply to the workflow.

### How do I create a WhatsApp-to-SMS failover workflow through Jentic?

Search Jentic for 'send a failover multichannel message', load the POST / operation on the Dispatch API, and execute it with template=failover and a workflow array containing your WhatsApp step and SMS fallback step.

### How do I know which step of the workflow actually delivered?

Dispatch returns a dispatch_uuid on creation. Status webhooks from the Messages API fire for each leg of the workflow with the message_uuid linked to that dispatch_uuid, letting the application track which channel succeeded.

### Can I limit what my agent is allowed to do with the Nexmo Dispatch API?

Yes. The Dispatch API exposes a single endpoint that posts a multi-channel failover workflow, so with Jentic One, which you self-host, your own rules decide which operations and credentials the agent may use. You can restrict the agent to just that one operation, posting a failover workflow across channels such as WhatsApp and SMS, and nothing else. Your Nexmo basic credentials and Application signing key stay stored by your instance and are applied per request, so the agent never gains broader access than the single dispatch call you allow.
