For the complete documentation index, see llms.txt. This page is also available as Markdown.

消息(Message)

发送消息(Send Message)

请求接口​地址

POST

https://api.innopaas.com/api/whatsapp/v3/msg/submit

​ 请求参数

字段
数据类型
是否必填
描述

wabaId

String

WhatsApp商业账户唯一标识

messageType

String

消息内容类型:template:模板**(首次发送,必须使用模板消息来触达用户)​以下类型:​在用户回复后的24小时内,可以使用**text:文本image:图片video:视频audio:音频location:定位document:文档sticker:贴图contacts:联系人​interactive:互动消息

uid

String

客户批次号,不超过32字符

sendNumber

String

发送号码,格式:国家码+手机号

recipientNumber

String

接收号码,格式:国家码+手机号多个号码使用逗号分隔,最多1000个号码

body

String

消息体,messageType=text时必填

language

String

消息语言(需要传语言缩写编码),详见 附1,Language Code ListmessageType=template时必填

templateName

String

模板名称。允许小写字母、数字、字符和下划线,必须唯一。messageType=template时必填

templateGroupId

String

模板组ID,当使用模板组发送时,必填. 当使用模板组时,有限从模板组中获取一个模板,如果没有匹配到可用模板,可以配置templateName来兜底发送

header

Object

模板的消息头信息。详见 HeaderDto

bodyParams

String[]

模板正文中有变量时必填

buttonParams

Object[]

模板按钮类型是动态链接时必填详见 ParameterDto

media

Object

详见媒体消息:media消息

location

Object

详见媒体消息:location消息

contacts

Object[]

详见媒体消息:contacts消息

interactive

Object

详见媒体消息:interactive消息

namedParams

Object[]

按变量名自定义变量,当模版的变量格式parameterFormat=named时使用。格式:[{"name":"变量名1","vakue":"值1"},{"name":"变量名2","vakue":"值2"},]

请求示例(验证码)

非验证码示例

响应示例

多媒体消息

media 消息

当messageType为(image、video、audio、document)时,可以发送媒体消息。

字段
数据类型
是否必填
描述

link

String

是

资源访问地址,改地址必须可以外网访问

caption

String

否

标题或描述,当messageType=audio,该属性不能填写

filename

String

否

messageType=document时必填填

location 消息

当messageType为 location 时,可以发送位置消息。

字段
数据类型
是否必填
描述

latitude

String

是

纬度 eg:31.23593

longitude

String

是

经度 eg:31.23593

name

String

是

位置名称,Pizz Hut

address

String

是

地址xxxx Road No.666

contacts 消息

当messageType为 contacts 时,可以发送联系人消息。

字段
数据类型
是否必填
描述

name

Object[]

是

姓名

├─formattedName

String

是

全名

├─firstName

String

否

姓

├─lastName

String

否

名

├─middleName

String

否

中间名

├─suffix

String

否

前缀

├─prefix

String

否

后缀

phones

Object[]

否

手机号码

├─type

String

是

类型:HOME/WORK

├─phone

String

是

手机号码

├─waID

String

是

WhatsApp商业账户唯一标识

org

Object[]

否

组织/部门

├─company

String

是

公司名称

├─department

String

是

部门

├─title

String

是

职位

addresses

Object[]

否

地址

├─type

String

否

类型:HOME/WORK

├─street

String

否

街道信息:XX街道XX号

├─city

String

否

城市:北京

├─state

String

否

州缩写,Contact's State

├─zip

String

否

邮政编码:000001

├─country

String

否

国家

├─countryCode

String

否

国家码

birthday

String

否

生日

emails

Object[]

否

电子邮件

├─type

String

是

类型:HOME/WORK

├─email

String

是

邮箱地址xxxxx@gmail.com

urls

Object[]

否

网址

├─type

String

是

类型:HOME/WORK

├─url

String

是

网址 https://www.chuanglan.com/

interactive 消息

当messageType为 interactive 时,可以发送交互消息。

字段
数据类型
是否必填
描述

type

String

是

互动消息类型:list/button/product/product_list

header

String

否

互动消息请求头:product_list 类型时候必要、 product类型不能设置header 其他类型可选详见:InteractiveHeader

├─type

媒体类型:text/image/video/document

├─link

媒体链接type不是text时必填

├─caption

标题type不是text时有效

├─paramValue

变量type=text时有效,仅支持一个变量

body

是

类型为product时可选,其他消息类型必需 详见:Body

├─text

文本内容

footer

否

页脚详见:Footer

├─text

文本内容

action

是

操作

├─catalogId

type=product/product_type时必填:链接到您的WhatsApp商业帐户的Facebook目录的唯一标识符。这个ID可以通过Commerce Manager检索

├─productRetailerId

type=product/product_type时必填: 产品在目录中的唯一标识符。单产品和多产品消息最多100个字符。

├─buttons

按钮对象: 详见:Button

├─button

按钮内容: type=list时必填,不能为空字符串

├─sections

清单消息(type=list)和多产品消息(type=product_list)必填。详见:Section

Button参数

字段
数据类型
是否必填
描述

type

String

是

按钮类型:当前可选值:reply

title

String

是

按钮标题:不能为空字符串、当前消息中必须唯一,支持表情符号,不支持markdown。最大长度:20个字符

id

String

是

按钮的唯一标识符。当用户单击按钮时,在webhook中返回此ID。最大长度:256个字符

sections参数

字段
数据类型
是否必填
描述

title

String

否

section标题,最大不超过24字符

rows

String

否

消息类型为list时必填, 一个Row的list对象,最多为10个详见:Row

productItems

String

否

type=product_list时必填, 产品对象的数组。每个部分至少有1个产品,所有部分最多有30个产品。详见:ProductItem

Row参数

字段
数据类型
是否必填
描述

title

String

是

标题:最大长度24个字符

id

String

是

唯一Id标识,最大长度200个字符

description

String

否

描述

ProductItem参数

字段
数据类型
是否必填
描述

productRetailerId

String

是

产品在目录中的唯一标识符

button 消息

product 消息

product_list 消息

模板消息

无参数模板消息(通知/营销)

带Header、按钮(call,visit website)(通知/营销)

带Header、无按钮(通知/营销)

无Header、无按钮、变量(通知/营销)

无Header,带按钮(2个快捷回复)(通知/营销)

发送 MMLite 消息

MMLite 需要授权MMLite API权限后才可以使用,并且仅支持发送模版营销消息

请求接口地址

POST

https://api.innopaas.com/api/whatsapp/v3/lite/submit

请求参数

字段
数据类型
是否必填
描述

wabaId

String

WhatsApp商业账户唯一标识

messageType

String

消息内容类型:template:模板

uid

String

客户批次号,不超过32字符

sendNumber

String

发送号码,格式:国家码+手机号

recipientNumber

String

接收号码,格式:国家码+手机号多个号码使用逗号分隔,最多1000个号码

body

String

消息体,messageType=text时必填

language

String

消息语言(需要传语言缩写编码),详见 附1,Language Code ListmessageType=template时必填

templateName

String

模板名称。允许小写字母、数字、字符和下划线,必须唯一。messageType=template时必填

header

Object

模板的消息头信息。详见 HeaderDto

bodyParams

String[]

模板正文中有变量时必填

buttonParams

Object[]

模板按钮类型是动态链接时必填详见 ParameterDto

请求示例

响应示例

查询消息日志

请求接口地址

POST

https://api.innopaas.com/api/whatsapp/v3/message/log

​ 请求参数

字段
数据类型
是否必填
描述

messageId

String

否

消息ID

sender

String

否

下发显示号码

direction

Integet

是

消息发送方式,1-下行发送;2-上行用户发送,默认:1

recipientNumber

String

否

用户WhatsApp号码

wabaId

String

否

WhatsApp商业账户唯一标识

templateId

String

否

模板ID

templateName

String

否

模板名称

status

String

否

消息状态sending(待发送)delivered(已送达)read-(已读)failed-(发送失败)

category

String

否

模板类型。marketing:营销utility:通知authentication:验证

sendStartTime

String

是

开始时间 格式:yyyy-MM-dd HH:mm:ss

sendEndTime

String

是

结束时间 格式:yyyy-MM-dd HH:mm:ss

page

Integer

是

当前页,默认:1

pageSize

Integer

是

每页查询数量:默认:10

请求示例

响应参数

字段
数据类型
是否必填
描述

messageId

String

是

消息ID

remoteMessageId

String

否

Meta 返回的消息ID

sender

String

是

下发显示号码

direction

Integet

是

消息发送方式,1-下行发送;2-上行用户发送,默认:1

recipientNumber

String

否

用户WhatsApp号码

wabaId

String

否

WhatsApp商业账户唯一标识

templateId

String

否

模板ID

templateName

String

否

模板名称

status

String

是

消息状态sending(待发送)delivered(已送达)read-(已读)failed-(发送失败)

category

String

是

模板类型。marketing:营销utility:通知authentication:验证service:服务自由消息

sendTime

String

是

发送时间格式:yyyy-MM-dd HH:mm:ss

updateTime

String

是

更新时间 ​格式:yyyy-MM-dd HH:mm:ss

messageType

String

是

消息内容类型:template:模板text:文本image:图片video:视频audio:音频location:定位document:文档sticker:贴图contacts:联系人​interactive:互动消息

content

JSON

否

根据messageType 返回不同的内容

errorCode

String

否

错误码

errorMessage

String

否

错误描述

响应示例

当 messageType = text 时,content 的数据格式

当 messageType = template 时,content 的数据格式,详见发送消息时提交的数据

当messageType为多媒体类型时,content 的数据格式,详见发送消息时提交的数据

消息回执(Read)

请求接口地址

POST

https://api.innopaas.com/api/whatsapp/v3/chat/message/status/read

请求参数

字段
数据类型
是否必填
描述

sendNumberId

String

否

下发Sender的号码ID**( sendNumberId 和 sendNumber 二选一必填一个 )**

sendNumber

String

否

下发Sender

wamid

String

是

Meta 的消息ID

typing

Bool

否

是否显示正在输入中,为 true 可以在客户端显示正在输入中效果。默认:false

请求示例

响应参数

字段
数据类型
是否必填
描述

code

String

是

状态码,0 成功,其他失败

success

String

是

请求状态

message

String

否

下发显示号码

响应示例

小组(Group)

创建群组(Create Group)

请求接口​地址

POST

https://api.innopaas.com/api/whatsapp/v3//groups

请求参数

字段
数据类型
是否必填
描述

messaging_product

String

是

消息产品类型,固定值:whatsapp

subject

String

是

群组主题。最长 128 字符,首尾空白字符会被去除

description

String

否

群组描述。最长 2048 字符

join_approval_mode

String

否

用户点击邀请链接后的加入方式:approval_required(需经加入请求审批后才能入群);auto_approve(无需审批直接入群)。缺省时默认为 auto_approve

invite_config

Object

否

邀请配置,JSON 对象。建群成功后平台自动向配置的目标发送群组邀请链接模板消息(异步)。不传或 send_invite 为 false 时不发送;配置异常不影响建群受理。整体序列化后最长 4096 字符。子字段见下表

invite_config 子字段

字段
数据类型
是否必填
描述

send_invite

Boolean

否

建群成功后是否自动发送群组邀请链接模板消息。缺省为 false

notify_language

String

否

邀请通知模板语言(如 zh_CN、en)见文档附1语言编码。send_invite 为 true 时必填 邀请模板不存在时 系统自动创建邀请模板

wa_ids

String

否

手动号码邀请目标数组,元素为手机号 String

template_id

String

否

模板id,群组邀请链接模板消息优先发送该模板,如果模板不存在,则降级创建notify_language语言的模板

请求示例

响应说明

删除群组(Delete Group)

请求接口​地址

DELETE

https://api.innopaas.com/api/whatsapp/v3/

请求参数

字段
数据类型
是否必填
描述

GROUP_ID

String

是

要删除的群组 ID

响应说明

获取加入请求列表(Get Join Requests)

请求接口​地址

GET

https://api.innopaas.com/api/whatsapp/v3//join_requests

请求参数

字段
数据类型
是否必填
描述

GROUP_ID

String

是

群组 ID

响应示例

响应参数

字段
数据类型
是否必填
描述

data[].join_request_id

String

是

加入请求 ID

data[].wa_id

String

是

WhatsApp 用户 ID

data[].creation_timestamp

Integer

是

加入请求创建时间的 Unix 时间戳

paging.cursors

Object

是

分页游标(before / after),用于翻页查询

批准加入请求(Approve Join Requests)

批准用户的加入请求。被批准的用户点击群组邀请链接即可进入群组。批准成功会触发 group_participants_update webhook(用户接受加入请求)。

请求接口​地址

POST

https://api.innopaas.com/api/whatsapp/v3//join_requests

请求参数

字段
数据类型
是否必填
描述

messaging_product

String

是

消息产品类型,固定值:whatsapp

join_requests

Array

是

要批准的加入请求 ID 列表,支持批量批准

请求示例

响应示例

响应参数

字段
数据类型
是否必填
描述

approved_join_requests

Array

是

批准成功的加入请求 ID 列表

failed_join_requests[].join_request_id

String

否

无法批准的加入请求 ID

errors[].code

Integer

否

错误码,如 131203(用户未接受新的服务条款和隐私政策)

errors[].message

String

否

错误信息,如 (#131203) Recipient has not accepted our new Terms of Service and Privacy Policy.

errors[].title

String

否

错误标题,如 Unable to add participant to group

errors[].error_data.details

String

否

错误详情

拒绝加入请求(Reject Join Requests)

拒绝用户的加入请求。被拒绝的用户再次访问群组邀请链接时,会重新看到"申请加入"(Request to join)按钮。拒绝操作不触发任何 webhook。

请求接口​地址

DELETE

https://api.innopaas.com/api/whatsapp/v3//join_requests

请求参数

字段
数据类型
是否必填
描述

messaging_product

String

是

消息产品类型,固定值:whatsapp

join_requests

Array

是

要拒绝的加入请求 ID 列表,支持批量拒绝

请求示例

响应示例

群组创建时会自动生成邀请链接,本接口用于获取当前有效的群组邀请链接。返回的 invite_link 固定以 https://chat.whatsapp.com/ 为前缀,唯一变化部分为 <LINK_ID>。

请求接口地址

GET

https://api.innopaas.com/api/whatsapp/v3//invite_link

请求参数

字段
数据类型
是否必填
描述

GROUP_ID

String

是

要获取邀请链接的群组 ID

响应示例

重置群组邀请链接。注意:邀请链接重置后,之前的所有邀请链接将全部失效。

请求接口​地址

POST

https://api.innopaas.com/api/whatsapp/v3//invite_link

请求参数

字段
数据类型
是否必填
描述

messaging_product

String

是

消息产品类型,固定值:whatsapp

请求示例

响应示例

向 WhatsApp 用户发送携带群组邀请链接的模板消息,分两步完成:第一步在模板库中添加群组邀请链接模板;第二步发送该模板消息。在请求中提供 group_id,消息送达时会自动转换为对应的群组邀请链接。用户通过邀请链接加入群组时会触发 webhook。

第一步:添加群组邀请链接模板(二选一)

方式一(WhatsApp Manager 操作):进入 Template Library,点击 Group invite link 下拉框,勾选 Group invite upon request,选择所需模板、命名后提交审批。模板审批最多需要 24 小时,审批通过后即可使用该模板发送消息。

方式二(API 查询模板库):

GET

https://api.innopaas.com/api/whatsapp/v3//message_template_library?category=utility&topic=group_invite_link&language=en

第二步:发送模板消息

POST

https://api.innopaas.com/api/whatsapp/v3//messages

请求参数

字段
数据类型
是否必填
描述

messaging_product

String

是

消息产品类型,固定值:whatsapp

to

String

是

接收方 WhatsApp 用户手机号

type

String

是

消息类型,固定值:template

template.name

String

是

模板名称(第一步中命名的模板名)

template.language.code

String

是

模板语言代码,如 en_US

template.components[].type

String

是

组件类型,固定值:body

template.components[].parameters[].type

String

是

参数类型,固定值:group_id

template.components[].parameters[].group_id

String

是

群组 ID,消息送达时自动转换为对应的群组邀请链接

请求示例

移除群组成员(Remove Group Participants)

从群组中移除成员。注意:成员被移除后,将无法再通过该群组的邀请链接加入。创建群组的商家号码始终以创建者(creator)和管理员(admin)身份留在群组中,不可通过本接口移除。移除操作会触发 group_participants_update webhook。

请求接口地址

DELETE

https://api.innopaas.com/api/whatsapp/v3//participants

请求参数

字段
数据类型
是否必填
描述

messaging_product

String

是

消息产品类型,固定值:whatsapp

participants

Array

是

要移除的成员数组,元素格式为 {"user": "<手机号或 WhatsApp ID>"}。单次最多移除 8 名成员;数组不能为空

请求示例

响应说明

获取群组信息(Get Group Info)

获取单个群组的元数据。注意:不指定 fields 查询参数时,仅返回群组 ID 和 messaging_product。

请求接口地址

GET

https://api.innopaas.com/api/whatsapp/v3/?fields=

请求参数

字段
数据类型
是否必填
描述

GROUP_ID

String

是

要查询的群组 ID

fields

String

否

逗号分隔的返回字段列表,如 "subject,description,participants,join_approval_mode";不传时仅返回群组 ID

可用字段(fields)说明

字段
数据类型
是否必填
描述

join_approval_mode

String

否

用户点击邀请链接后的加入方式:approval_required(需经加入请求审批);auto_approve(无需审批直接入群)

subject

String

否

群组主题

description

String

否

群组描述(创建群组时设置的描述)

suspended

Boolean

否

群组是否已被 WhatsApp 暂停

creation_timestamp

Integer

否

群组创建时间的 Unix 时间戳(秒)

participants

Array

否

群组成员列表,对象数组,格式 [{"wa_id": ""}]

total_participant_count

Integer

否

群组成员总数(不含商家号码)

响应示例

获取活跃群组(Get Active Groups)

获取商家号码下所有活跃群组的列表。

请求接口地址

GET

https://api.innopaas.com/api/whatsapp/v3//groups?limit=&after=&before=

请求参数

字段
数据类型
是否必填
描述

limit

Integer

否

每次请求返回的群组数量。最小 1,默认 25,最大 1024

after

String

否

指向某一页数据末尾的分页游标

before

String

否

指向某一页数据开头的分页游标

响应示例

响应参数

字段
数据类型
是否必填
描述

data.groups[]

Array

是

群组列表,每个元素包含 id(群组 ID)、subject(群组主题)、created_at(群组创建时间的 Unix 时间戳)

paging

Object

是

分页对象,包含 cursors(before / after 游标)及 previous / next 翻页链接

更新群组设置(Update Group Settings)

更新群组的主题、描述和头像。更新成功会触发 group_settings_update webhook。

请求接口地址

POST

https://api.innopaas.com/api/whatsapp/v3/

请求参数

字段
数据类型
是否必填
描述

messaging_product

String

是

消息产品类型,固定值:whatsapp

subject

String

否

新的群组主题。最长 128 字符;若提供则不能为空

description

String

否

新的群组描述。最长 2048 字符

profile_picture_file

String

否

群组头像的本地图片文件路径。仅支持 image/jpeg;最大 5MB;须为正方形(高=宽);最小尺寸 192 x 192。文件上传遵循与 Upload Media 端点相同的请求结构

请求示例

响应示例

群组消息(Group Messaging)

在群组中收发消息。支持的消息类型包括:文本消息、媒体消息、文本模板、媒体模板。

发送群组消息(Send Group Message)

请求接口地址

POST

https://api.innopaas.com/api/whatsapp/v3//messages

请求参数

字段
数据类型
是否必填
描述

messaging_product

String

是

消息产品类型,固定值:whatsapp

recipient_type

String

是

接收方类型,群组消息固定值:group(普通消息为 individual)

to

String

是

目标群组 ID,通过小组(Group)系列接口获取

type

String

是

消息类型。群组消息支持:text(文本);image / video / audio / document / sticker(媒体);template(模板,含文本模板与媒体模板)

text.body

String

type=text 时必填

文本消息内容,最长 4096 字符

text.preview_url

Boolean

否

type=text 时可选。是否在消息中预览文本内的链接,链接须以 http:// 或 https:// 开头

请求示例

响应示例

接收群组消息(Receive Group Messages)

Webhook 示例(接收群组消息)

群组消息状态 Webhook(Group Message Status Webhooks)

置顶 / 取消置顶群组消息(Pin and Unpin Group Message)

请求接口地址

POST

https://api.innopaas.com/api/whatsapp/v3//messages

请求参数

字段
数据类型
是否必填
描述

messaging_product

String

是

消息产品类型,固定值:whatsapp

recipient_type

String

是

接收方类型,固定值:group

to

String

是

目标群组 ID

type

String

是

消息类型,固定值:pin

pin.type

String

是

置顶操作类型:pin(置顶)或 unpin(取消置顶)

pin.message_id

String

是

要置顶或取消置顶的消息 ID

pin.expiration_days

Integer

pin.type=pin 时必填

置顶时长,单位天,取值范围 1~30

请求示例

响应示例

最后更新于