Send voice notification
Send voice notification
curl -X POST "https://api.example.com/open/v1/voice/notify/batch" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"bulkId": "order-notify-20261110-001",
"messages": [
{
"taskName": "Shipping Notification - Example",
"scheduling": {
"type": "IMMEDIATE"
},
"templateId": "Tpl_0001",
"destinations": [
{
"to": "<PHONE>",
"variables": [
"John",
"A12345"
]
}
]
}
]
}'Business envelope. code=000000 accepted; data contains bulkId (echo), callId (task identifier), acceptedCount. Failure codes follow the platform six-digit scheme.
{
"code": "000000",
"data": {
"bulkId": "string",
"callId": "string",
"acceptedCount": 0
},
"message": "success"
}Documented response example from the spec, not a real request result.
Place voice notification calls (TTS template playback) to one or more recipients. Auth: Authorization: Bearer {API_KEY}; JSON request/response. Structured payload: messages[1] with destinations[{to, variables[]}]; scheduling / retry / hangupSms are nested objects. The call country is derived from the template (bound at template creation) — no country code is required in the request. Scheduled times use ISO 8601 with timezone offset. Business error codes follow the platform six-digit scheme (PPNNNN): 000000 success; 010003 invalid parameter, 010005 template not found, 120004 template not approved, 120005 no route for country, 030001/030002 insufficient balance/credit, 050001 internal error, 050002 service unavailable. Field-level constraint violations return a plain HTTP 400 error body. Sending may place real calls and incur charges.
Use the InnoPaaS AppKey as a Bearer token. Create or manage keys in Console. API key guide
Authorization
Authorizationstring<bearer>requiredBody
application/jsonbulkIdstringoptionalCaller-defined request ID, echoed in the response for reconciliation (not an idempotency key)
64messagesarray<object>requiredMessage list; currently only one message per request
Show child attributes
fromstringoptionalCaller number (E.164); omit for country default route, must be a bound caller when present
retryobjectoptionalRedial policy; defaults 1 attempt / 60 minutes / redial on unanswered & unconnected
Show child attributes
maxCountintegeroptional1Minimum0Maximum3noAnswerbooleanoptionalRedial when the recipient does not answer
truenoConnectedbooleanoptionalRedial when the call cannot be connected
trueintervalMinutesintegeroptional60Minimum1Maximum360taskNamestringoptionalTask name; generated by the server when omitted
50hangupSmsobjectoptionalHang-up SMS; presence of the object enables it — omit entirely when not needed
Show child attributes
sendTypestringoptionalON_CONNECTED send after answered ≥1s (default); ALL send to all; ON_UNANSWERED send when unanswered; BY_DURATION by answered duration
ON_CONNECTEDtemplateIdstringrequiredHang-up SMS template ID (required when enabled)
durationLimitSecondsintegeroptionalAnswered-duration threshold in seconds; required for BY_DURATION
1playTimesintegeroptionalPlayback count; defaults to template config (then 1)
1Maximum3schedulingobjectoptionalSend scheduling; omit for immediate send
Show child attributes
typestringoptionalIMMEDIATE (default) or SCHEDULED (start/end required; times allowed only when scheduled)
endTimestringoptionalWindow end, must be after startTime
startTimestringoptionalWindow start, ISO 8601 with timezone (e.g. 2026-11-20T09:00:00+08:00); must be in the future; window ≤ 8 days
templateIdstringrequiredApproved voice template ID; the call country is derived from the template
destinationsarray<object>requiredRecipient destinations
Show child attributes
tostringrequiredRecipient number (E.164 with country code, 6-20 digits)
^\d{6,20}$variablesarray<string>optionalTemplate variable values, in order of placeholders {1}…{n}; omit for templates without variables
Response
application/jsonBusiness envelope. code=000000 accepted; data contains bulkId (echo), callId (task identifier), acceptedCount. Failure codes follow the platform six-digit scheme.
codestringoptionaldataobjectnulloptionalmessagestringoptional{
"code": "000000",
"data": {
"bulkId": "string",
"callId": "string",
"acceptedCount": 0
},
"message": "success"
}Documented response example from the spec, not a real request result.