达信通云通信 · 让企业与用户保持连接服务热线:400-118-6878
语音通知
达信通 · API 文档

一个 HTTP 接口,
把语音通知接入业务。

在服务端提交已审核的通知内容,获取流水号,并通过回执追踪呼叫结果。

免费注册
HTTPS / POSTUTF-8 编码单次一个号码五种语言示例
API 文档示意插画
业务发生 · 语音传达

接口简介

通过 HTTPS 调用语音通知服务,支持 GET / POST,采用 UTF-8 编码。以下示例使用 POST 表单请求与 .json 接口地址。

涵盖发送、余额查询、模板管理和回执推送。

Content-Type: application/x-www-form-urlencoded

请求体使用 URL 编码的表单参数;JSON 是响应格式,不是请求体格式。

接入准备

  1. 注册账户并按要求完成认证。
  2. 在用户中心获取语音通知产品的 API ID / API KEY。
  3. 报备实际通知模板,确认审核通过后,用授权测试号码联调发送与回执。

认证与动态密码

参数类型必填说明
accountstring是语音通知产品的 API ID,在用户中心「云语音 → 语音通知 → 产品总览」查看。
passwordstring是API KEY,或按下方规则生成的动态密码。
timestring条件必填使用动态密码时必填;10 位 Unix 时间戳,单位秒。

可直接使用 API KEY,也可使用动态密码。将以下字段按顺序直接拼接(不加分隔符),以 UTF-8 编码计算 MD5,结果作为 password,并同时提交 time。

操作动态密码计算规则
发送通知MD5(account + APIKEY + mobile + content + time)
余额查询 / 提交模板 / 删除模板MD5(account + APIKEY + time)

发送时,参与签名的 content 必须与实际提交的完整内容或变量字符串一致。凭据仅保存在服务端,勿写入前端页面。

发送语音通知

POST https://api.ihuyi.com/vm/Submit.json

支持全天 24 小时提交。先确定完整内容或模板变量发送方式,再填写对应参数。

请求参数

参数类型必填说明
accountstring是语音通知产品的 API ID,在用户中心「云语音 → 语音通知 → 产品总览」查看。
passwordstring是API KEY,或按下方规则生成的动态密码。
mobilestring是中国内地 11 位手机号码或带区号的固话号码;每次仅提交一个号码。
contentstring否完整内容方式填写已审核模板对应的完整通知内容;模板变量方式只填写变量值,多个变量用英文竖线 | 按模板顺序分隔。
templateidint条件必填模板变量方式必填。调试可使用系统模板 ID 1361。
timestring条件必填使用动态密码时必填;10 位 Unix 时间戳,单位秒。

完整内容方式

提交已审核模板对应的完整语音内容;固定文字、标点及变量须符合模板设置。

content=已审核模板对应的完整通知内容

模板变量方式

系统调试模板 1361:您的订单号是:【变量】。已由【变量】发出,请注意查收。

templateid=1361
content=9633|顺风快递

这里 content 填写两项变量值,按模板顺序以 | 分隔。POST 时仍需对表单参数进行 URL 编码。

多语言代码示例

在服务端设置账户环境变量,替换为授权测试号码和已审核模板对应的完整内容。以下代码只作展示,页面不会发起呼叫。

import os
import requests

url = "https://api.ihuyi.com/vm/Submit.json"
data = {
    "account": os.environ["DXT_API_ID"],
    "password": os.environ["DXT_API_KEY"],
    "mobile": "YOUR_TEST_MOBILE",
    "content": "已审核模板对应的通知内容",
}

response = requests.post(
    url,
    data=data, timeout=10
)
response.raise_for_status()
print(response.json())
# 提交成功不等于呼叫成功,结果请结合回执判断。
达信通语音通知接口示例Python 3 · requests

发送响应

字段类型说明
codeint2 表示提交成功;其他值结合 msg 排查。
msgstring本次请求的结果描述。
voiceidstring提交成功时的发送流水号;失败时可能为 0、空或不返回。
{
  "code": 2,
  "msg": "提交成功",
  "voiceid": "16236437872836"
}

提交成功仅表示平台接受请求,不代表用户已接听。保存 voiceid,通过发送回执关联最终呼叫结果。

余额查询

POST https://api.ihuyi.com/vm/GetNum.json
参数类型必填说明
accountstring是语音通知产品的 API ID,在用户中心「云语音 → 语音通知 → 产品总览」查看。
passwordstring是API KEY,或按下方规则生成的动态密码。
timestring条件必填使用动态密码时必填;10 位 Unix 时间戳,单位秒。
字段类型说明
codeint2 表示查询成功。
msgstring查询结果描述。
numint账户余额值,成功时返回。
{
  "code": 2,
  "msg": "提交成功",
  "num": 123456
}

模板管理

提交模板

POST https://api.ihuyi.com/vm/AddTemplate.json
参数类型必填说明
accountstring是语音通知产品的 API ID,在用户中心「云语音 → 语音通知 → 产品总览」查看。
passwordstring是API KEY,或按下方规则生成的动态密码。
contentstring是模板内容,长度为 15–500 个字符;可用 【变量】 标记可替换内容。
timestring条件必填使用动态密码时必填;10 位 Unix 时间戳,单位秒。

响应包含 code、msg;添加成功(code=2)时还返回整数类型 templateid。添加成功后,仍需等待审核结果再发送。

删除模板

POST https://api.ihuyi.com/vm/DelTemplate.json
参数类型必填说明
accountstring是语音通知产品的 API ID,在用户中心「云语音 → 语音通知 → 产品总览」查看。
passwordstring是API KEY,或按下方规则生成的动态密码。
templateidint是需要删除的模板 ID。
timestring条件必填使用动态密码时必填;10 位 Unix 时间戳,单位秒。

响应字段为 code、msg;code=2 表示删除成功。

发送回执推送

提供并绑定服务端接收 URL。平台向该地址 POST 表单数据,采用 UTF-8 编码。

Content-Type: application/x-www-form-urlencoded
字段类型说明
codeint呼叫结果;2 表示成功,其余为失败状态。
msgstring呼叫状态描述。
mobilephonestring接收号码。
voiceidstring与发送响应对应的流水号。
report_timestring回执时间,例如 2017-08-02 14:31:51。
talktimeint通话时长,单位秒。

接收端记录数据后应及时输出纯文本 success(不含引号),复杂业务异步处理。未确认接收时,每个回执最多推送 3 次,每次间隔叠加 60 秒;需处理重复推送。

呼叫状态码

code含义
2成功
0未知错误
-1关机
-2停机
-3暂时无法接通
-4正在通话
-5空号
-6无人接听
-8呼入限制
-9网络忙
-10呼出限制
-11线路忙
-12用户拒接
-13被叫忙

模板审核状态推送

同样通过 POST 表单推送到绑定的接收 URL,UTF-8 编码。

字段类型说明
codeint2 表示审核成功;0 表示驳回。
msgstring审核状态描述;驳回时查看具体原因。
templateidstring本次审核的模板 ID。

成功接收后输出纯文本 success。未确认接收时最多推送 3 次,每次间隔叠加 60 秒。

接口状态与错误码

发送接口

code含义
0提交失败
2提交成功
400访问 IP 不合法
401账户未填写
402密码未填写
403接收号码未填写
4030接收号码在黑名单中
404缺少语音内容
405账户或密码校验失败
4050账户被冻结
40505尚未签订合同
4051剩余条数不足
4052请求 IP 与备案 IP 不一致
406接收号码格式不正确
407语音内容包含敏感字符
4071尚未报备模板
4072发送内容与已报备模板不匹配
40722变量长度超过模板设置
4077发送内容尚未在运营商报备
408单个号码当日累计发送超过 50 条,被自动冻结;需调整请联系客服
4080同一号码一秒内发送超过 1 条
4081同一号码一分钟内发送超过 10 条
4086提交失败

余额与模板接口

适用接口code含义
余额 / 模板接口400 / 401 / 402访问 IP 不合法 / 未填写账户 / 未填写密码
余额 / 模板接口405 / 4050凭据校验失败 / 账户被冻结
余额 / 模板接口40501 / 40502动态密码已过期 / 动态密码校验失败
提交模板404 / 4041缺少模板内容 / 内容长度不在 15–500 字符范围内
提交模板406 / 4066未充值不能提交模板 / 添加频率超限(每分钟最多 10 次)
提交模板407 / 408模板包含敏感字符 / 模板已存在
删除模板404模板 ID 未填写或不存在

以上为接口业务 code,应与 HTTP 状态码分别处理。完整定义见官方接口文档。

给重要的业务通知,增加一条声音通道。

从你的使用场景出发,了解测试、接入与报价方案。

免费注册
达信通 · 客户服务

聊聊你的语音通知需求

提供使用场景与预计通知量,获取适合的接入和报价方案。

企业微信咨询二维码微信扫码联系客户经理
服务热线400-118-6878

工作日 9:00–21:00

上海互亿文化传播有限公司
上海市浦东新区纳贤路800号A座401

打开二维码原图