-
Notifications
You must be signed in to change notification settings - Fork 6
SAAS WhatsApp API send
zjc1750514326 edited this page Mar 10, 2025
·
43 revisions
通过API发起WhatsApp号码消息发送服务
- URL:
https://api.nxcloud.com/saas/wa/send
- Method:
POST
- Content-Type:
application/json
- 需要鉴权:
是
参数名 | 类型 | 必选 | 示例值 | 说明 |
---|---|---|---|---|
accessKey | String | 是 | fme2na3kdi3ki | 用户身份标识 |
ts | String | 是 | 1655710885431 | 当前请求的时间戳(单位是毫秒),牛信服务端允许用户端请求最大时间误差为60秒 |
bizType | String | 是 | 2 | WhatsApp业务类型,取固定值“2” |
action | String | 是 | mt | WhatsApp业务操作,取固定值“mt” |
sign | String | 是 | 6e9506557d1f289501d333ee2c365826 | API入参参数签名,公共约定 |
参数名 | 类型 | 必选 | 示例值 | 说明 |
---|---|---|---|---|
tenant_id | Long | 是 | 1 | 租户ID |
appkey | String | 是 | pem28kje | 应用appkey |
business_phone | String | 是 | 86158xxxx1795 | 消息发送方的WhatsApp号码,需要带国码。如86158xxxx1795 |
messaging_product | String | 是 | 发送消息的通道,应用于WhatsApp消息的发送时,值必须为“whatsapp” | |
recipient_type | String | 是 | individual | 消息接收方类型,应用于WhatsApp消息的发送时,值必须为“individual” |
to | String | 是 | 86158xxxx1795 | 消息接收方的WhatsApp号码,需要带国码。如86158xxxx1795 |
type | String | 是 | template | 支持以下消息类型的发送: template 模板 |
template | JsonObject | 是 | - | 仅type= template时为必须,模板消息内容 |
模板消息参数:
参数名 | 类型 | 必选 | 示例值 | 说明 |
---|---|---|---|---|
template | JsonObject | 否 | 参照请求示例 | 模板消息内容,type=template必填 |
- template object参数:
参数名 | 类型 | 必选 | 示例值 | 说明 |
---|---|---|---|---|
name | String | 是 | - | 模板名称。 |
language | JsonObject | 是 | - | 模板语言设置信息。 |
components | array[component JsonObject] | 否 | - | 模板内组件的变量设置信息序列。 |
- language object参数:
参数名 | 类型 | 必选 | 示例值 | 说明 |
---|---|---|---|---|
code | String | 是 | - | 语言代码,参照支持的模板语言。 |
policy | String | 是 | - | 固定值为deterministic。 |
- component object参数:
参数名 | 类型 | 必选 | 示例值 | 说明 |
---|---|---|---|---|
type | String | 是 | - | 组件类,可以是header,body,button, 1)当type=header时,设置模板头部的变量信息; 2)当type=body时,设置模板内容的变量信息; |
parameters | array[parameter JsonObject] | 否 | - | 组件参数列表。 |
- parameter object参数:
参数名 | 类型 | 必选 | 示例值 | 说明 |
---|---|---|---|---|
type | String | 是 | - | 其中: 1)当component object的 type=header时,可以为image; 2)当component object的 type=body时,取值为text; 3)当component object的 type=button且sub_type=URL时,取值为text; 4)当component object的 type=button且sub_type= COPY_CODE时,取值为coupon_code |
sub_type | String | 否 | - | 所创建的按钮类型,type=button时必须, 可以是URL,COPY_CODE。 type为其它类型时无该项。 |
text | String | 否 | - | 仅type= text时为必须,设置对应参数的文本内容。type为其它类型时无该项 |
image | JsonObject | 否 | - | 仅type= image时为必须,设置对应参数的图片内容,image object定义参照图片消息。type为其它类型时无该项 |
coupon_code | String | 否 | - | 仅type= coupon_code时为必须,设置对应参数的负载内容,coupon_code object定义COPY_CODE消息。type为其它类型时无该项 |
- image object参数:
参数名 | 类型 | 必选 | 示例值 | 说明 |
---|---|---|---|---|
link | String | 是 | - | 图片的URL链接。必须是 HTTP/HTTPS URLs。 |
- component object参数:
参数名 | 类型 | 必选 | 示例值 | 说明 |
---|---|---|---|---|
index | int | 否 | - | type=button且sub_type=url时并且url带有变量时必填,位置必须要和创建模板的位置保持一致; |
- 模板消息1(参数模板消息)
body(application/json) 参数:
{
"tenant_id" : 1,
"appkey": "f543ertg",
"business_phone": "185xxxx8399",
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "86136xxxx9759",
"type": "template",
"template": {
"name": "text_template",
"language": {
"code": "en_US",
"policy": "deterministic"
},
"components": [
{
"type": "header",
"parameters": [{
"type": "image",
"image": {
"link": "https://imglink"
}
}]
}
{
"type": "body",
"parameters": [ // 严格按照变量顺序填写参数,重复多次的变量也须多次赋值
{
"type": "text",
"text": "David" // {{First Name}}
},
{
"type": "text",
"text": "China" // {{国家}}
},
{
"type": "text",
"text": "China" // {{国家}}
},
{
"type": "text",
"text": "86138XXX" // {{手机号码}}
}
]
}
]
}
}
模板消息2(参数模板消息)
body(application/json) 参数:
{
"tenant_id" : 1,
"appkey": "f543ertg",
"business_phone": "185xxxx8399",
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "86136xxxx9759",
"type": "template",
"template": {
"name": "test_00045",
"language": {
"code": "pt_BR",
"policy": "deterministic"
},
"components": [
{
"type": "button",
"sub_type": "url",
"index": 0,
"parameters": [
{
"type": "text",
"text": "85xxxx"
}
]
},
{
"type": "button",
"sub_type": "url",
"index": 1,
"parameters": [
{
"type": "text",
"text": "Firstxxxx"
}
]
}
]
}
}
模板消息3(参数模板消息)
{
"tenant_id": 123,
"appkey": "8exxxxyos",
"business_phone": "852xxxx867",
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "86136xxxx759",
"type": "template",
"template": {
"name": "ten_btn4",
"language": {
"code": "en_US",
"policy": "deterministic"
},
"components": [
{
"type": "button",
"sub_type": "COPY_CODE",
"index": 3,
"parameters": [
{
"type": "coupon_code",
"coupon_code": "123123"
}
]
}
]
}
}
参数名 | 类型 | 说明 |
---|---|---|
code | Integer | 结果编码 |
data | JsonObject | 请求结果 |
message | String | 请求结果说明 |
traceId | String | 链路追踪ID |
- data object参数:
参数名 | 类型 | 说明 |
---|---|---|
message_id | String | 消息ID |
{
"code": 0,
"message": "",
"data": {
"message_id": "gBGGhSNXV1dfAglVQ0RRuE3YWhc"
},
"traceId": "56bf81643292cd6a89ecde64ae00db13"
}
code | message | 解决办法 |
---|---|---|
0 | 请求成功 | |
-1 | 请求失败 | 请联系技术人员排除问题 |
1000~100X | 鉴权问题 | 详情查看API鉴权部分 |
21058 | 参数异常 | tenant_id 必填 |
21059 | 参数异常 | app_key 必填 |
21060 | 参数异常 | business_phone 必填 |
21061 | 参数异常 | to (接受方号码) 必填 |
21062 | 参数异常 | type 必填,可选值[template] |
21063 | 参数异常 | template 必填 |
22020 | 业务异常 | 客户不存在 |
22041 | 业务异常 | 云平台发送失败 |
22042 | 业务异常 | 发送WhatsApp信息失败 |
22049 | 业务异常 | business_phone={0}的商户不存在 |
22089 | 业务异常 | 号码不可用(No Core App) |
22090 | 业务异常 | 非法的号码 |
22091 | 业务异常 | 非WhatsApp用户 |
22092 | 业务异常 | 不存在语言包: {0} |
22093 | 业务异常 | 模板不存在 |
22123 | 业务异常 | 商户手机号错误 |
22124 | 业务异常 | 应用不存在/不可用 |
22122 | 业务异常 | 应用没有对应国家报价 |
22125 | 业务异常 | 账号余额不足 |
22126 | 业务异常 | 该whatsapp号码未绑定应用 |
22141 | 业务异常 | WhatsApp发送失败,具体看message字段 |
语言 | 代码 | 语言 | 代码 | 语言 | 代码 | ||
---|---|---|---|---|---|---|---|
Afrikaans | af | Greek | el | Portuguese (BR) | pt_BR | ||
Albanian | sq | Gujarati | gu | Portuguese (POR) | pt_PT | ||
Arabic | ar | Hebrew | he | Punjabi | pa | ||
Azerbaijani | az | Hindi | hi | Romanian | ro | ||
Bengali | bn | Hungarian | hu | Russian | ru | ||
Bulgarian | bg | Indonesian | id | Serbian | sr | ||
Catalan | ca | Irish | ga | Slovak | sk | ||
Chinese (CHN) | zh_CN | Italian | it | Slovenian | sl | ||
Chinese (HKG) | zh_HK | Japanese | ja | Spanish | es | ||
Chinese (TAI) | zh_TW | Kannada | kn | Spanish (ARG) | es_AR | ||
Croatian | hr | Kazakh | kk | Spanish (SPA) | es_ES | ||
Czech | cs | Korean | ko | Spanish (MEX) | es_MX | ||
Danish | da | Lao | lo | Swahili | sw | ||
Dutch | nl | Latvian | lv | Swedish | sv | ||
English | en | Lithuanian | lt | Tamil | ta | ||
English (UK) | en_GB | Macedonian | mk | Telugu | te | ||
English (US) | en_US | Malay | ms | Thai | th | ||
Estonian | et | Marathi | mr | Turkish | tr | ||
Filipino | fil | Norwegian | nb | Ukrainian | uk | ||
Finnish | fi | Persian | fa | Urdu | ur | ||
French | fr | Polish | pl | Uzbek | uz | ||
German | de | Vietnamese | vi |
简介
短信
语音
- 上传语音录音文件
- 上传语音录音文件_v1
- 已上传录音文件查询
- 发送语音群呼
- 发送语音通知
- 发送语音验证码
- 语音验证码回填上报
- 语音回执回调
- 语音记录查询
- 上传语音录音文件-旧版本已废弃
- 发送语音群呼‐旧版已废弃
- 发送语音通知‐旧版已废弃
- 发送语音验证码‐旧版已废弃
- 语音回执回调‐旧版已废弃
云呼叫中心(NXLink)
- Web SDK
- Iframe集成
- 手动拨号通话记录查询
- 通过orderId查询
- 手动拨号记录回调
- 坐席信息查询
- 坐席状态查询
- 坐席状态信息查询
- 坐席组查询
- 坐席可用主叫查询
- 坐席组成员查询
- 坐席组更新成员
- 坐席效率统计
- 创建AICC外呼任务
- Webhook-手动外呼
云呼叫中心(AI自动外呼)
- Callbot API概述
- Callbot API鉴权
- Callbot 接口探活
- 创建自动拨号任务
- 批量添加拨打名单
- 创建自动拨号任务并添加拨打名单
- 任务控制(启动/暂停)
- 更新任务
- 获取通话列表
- 获取任务列表
- 获取拨打订单列表
- 停止订单拨打
- 查询订单维度拨打详情
- 通话维度回调
- 订单维度拨打回调
- 任务状态回调
- 批次-导出最新批次数据
- 批次-导入最新批次数据
Flash Call
短链
邮件验证码
DID号码
- DID号码进行短信下行V2
- DID短信结果回调(加签)
- DID短信结果回调(无加签)
- DID号码短信记录查询(新接口,未启用)
- DID号码通话记录查询
- DID呼出并转接到Amazon坐席
- DID呼出前与Connect号码绑定
通用
号码检测
- 发送消息
- 发送otp消息
- webhook
- 标记入站消息已读
- 上传媒体文件
- 获取媒体文件
- 删除媒体文件
- 查询号码信息
- 查询消息模板
- 创建消息模板
- 异步创建消息模板
- 编辑消息模板
- 删除消息模板
- 上传模板示例文件
- 嵌入式页面登录
- 创建客户应用
- 客户应用的号码列表
- 获取验证码
- 核验验证码
- flows-创建流
- flows-更新流
- flows-根据流ID查询流信息
- flows-根据whatsapp号码查询流列表
- flows-根据流ID查询流预览地址
- flows-查询流JSON
- flows-发布流
- flows-删除流草稿
- flows-废弃已发布的流
- flows-更新流JSON
- flows-上传业务公钥
- ads-根据公共主页ID查询绑定的数据集列表
- ads-根据数据集ID上报CAPI广告数据
Viber
Zalo ZNS
Super Message API
隐私号(旧)
PNS
坐席(旧版)
- NXphone PC 使用说明
- NXphone Android 使用说明
- NXphone Android SDK 接入文档
- 呼叫挂断原因解释
- 话单CDR查询接口
- 话单CDR回调接口说明(V1.0)
- 坐席API调用接口说明(V1.0)
- 根据orderid查询话单CDR接口
- 坐席系统sip链接调用方式(推荐)
- 号码脱敏处理
- 修改话机密码接口
- 查询审批单
- 查询话机
- WebRTC SDK使用说明
AI Agent