Send a one-time verification code with a reference. The system generates the code and sends it by SMS; the code itself is not returned in the response.
destinationstringDestination number
originstringSender Name
templatestring?The message, which must include {code} (and may include {ref})
Delivery status for each destination, at most 50 rows per request. For a send with hundreds of thousands of destinations, pass after with the uuid of the last row you received and repeat; the cost of a page does not grow with how deep you are. In that mode the response carries pagination.nextCursor, which you pass back as the next after, and pagination.hasMore, which is false on the last page. Loop until hasMore is false. summary counts statuses across the whole send, not just this page, so it comes back on the first page and is not repeated on the ones after it. offset is not a parameter here and is ignored if sent.
uuidpathThe uuid returned when the SMS was sent
afternumber?The uuid of the last row you received; returns the rows after it. Pass 0 for the first page of a walk.
pagenumber?Page number starting at 1, when not using after; slower the deeper the page
Retrieve the Sender Names your account can use, each with its approval status, its visibility, and whether it is OTP-only. Use the returned origin as the sender when sending SMS/OTP. Use privilege to tell a Sender Name you own (private) from one in the shared pool every account can use (public); no other field distinguishes the two.
Register and manage your endpoint URLs from the developer dashboard (login required; not available via API key). Once registered, every event such as send success/failure, delivery results, and low credit is POSTed to your URL. Every payload is signed with HMAC-SHA256 (X-Webhook-Signature header).
urlstringThe HTTPS endpoint that will receive events
eventsstring[]The list of events you want to receive
Request
# Webhook endpoints are registered + managed in the
# developer dashboard (logged-in). Registration is not
# available to API keys. Registration payload:
{
"url": "https://your-app.com/hooks/sepsms",
"events": ["dr.success", "dr.failed"]
}
Response
// POST sent to your URL. The event name, timestamp and
// signature travel in headers, not the body:
// X-Webhook-Event: dr.success
// X-Webhook-Timestamp: 1737020405
// X-Webhook-Signature: t=1737020405,v1=<hmac-sha256>
{
"smsUuid": "9f8b2c1e-...",
"msisdn": "66812345678",
"txId": "8f3a1c9d...",
"status": "success"
}