1. 接口描述
接口请求域名: sms.tencentcloudapi.com 。
本接口 (SendSms) 用于发送验证码、通知类短信和营销短信。支持国内短信与国际/港澳台短信。
- 当前接口属于 2021-01-11 版本,如果您仍在使用 2019-07-11 版本,建议您使用当前最新版本的接口,版本差异可参考版本描述。
默认接口请求频率限制:3000次/秒。
推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
Action | 是 | String | 公共参数,本接口取值:SendSms。 |
Version | 是 | String | 公共参数,本接口取值:2021-01-11。 |
Region | 是 | String | 公共参数,详见产品支持的 地域列表。 |
PhoneNumberSet.N | 是 | Array of String | 下发手机号码,采用 E.164 标准,格式为+[国家或地区码][手机号],单次请求最多支持200个手机号且要求全为境内手机号或全为境外手机号。 例如:+8618501234444, 其中前面有一个+号 ,86为国家码,18501234444为手机号。 注:发送国内短信格式还支持0086、86或无任何国家或地区码的11位手机号码,前缀默认为+86。 示例值:["+8618501234444"] |
SmsSdkAppId | 是 | String | 短信 SdkAppId,在 短信控制台 添加应用后生成的实际 SdkAppId,示例如1400006666。 示例值:1400006666 |
TemplateId | 是 | String | 模板 ID,必须填写已审核通过的模板 ID。模板 ID 可前往 国内短信 或 国际/港澳台短信 的正文模板管理查看,若向境外手机号发送短信,仅支持使用国际/港澳台短信模板。 示例值:1110 |
SignName | 否 | String | 短信签名内容,使用 UTF-8 编码,必须填写已审核通过的签名,例如:腾讯云,签名信息可前往 国内短信 或 国际/港澳台短信 的签名管理查看。
示例值:腾讯云 |
TemplateParamSet.N | 否 | Array of String | 模板参数,若无模板参数,则设置为空。
示例值:["4370"] |
ExtendCode | 否 | String | 短信码号扩展号,默认未开通,如需开通请联系 腾讯云短信小助手。 示例值:10 |
SessionContext | 否 | String | 用户的 session 内容,可以携带用户侧 ID 等上下文信息,server 会原样返回。注意长度需小于512字节。 示例值:outsid_1729495320_1011 |
SenderId | 否 | String | 国内短信无需填写该项;国际/港澳台短信已申请独立 SenderId 需要填写该字段,默认使用公共 SenderId,无需填写该字段。 注:月度使用量达到指定量级可申请独立 SenderId 使用,详情请联系 腾讯云短信小助手。 示例值:Qsms |
3. 输出参数
参数名称 | 类型 | 描述 |
---|---|---|
SendStatusSet | Array of SendStatus | 短信发送状态。 示例值:[{"SerialNo":"5000:1045710669157053657849499619","PhoneNumber":"+8618501234444","Fee":1,"SessionContext":"outsid_1729495320_1011","Code":"Ok","Message":"send success","IsoCode":"CN"}] |
RequestId | String | 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 |
4. 示例
示例1 请求示例
输入示例
POST / HTTP/1.1
Host: sms.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: SendSms
<公共请求参数>
{
"PhoneNumberSet": [
"+8618501234444",
"+8618501234445"
],
"SmsSdkAppId": "1400006666",
"SignName": "腾讯云",
"TemplateId": "1110",
"TemplateParamSet": [
"4370"
],
"SessionContext": "outsid_1729495320_1011"
}
输出示例
{
"Response": {
"SendStatusSet": [
{
"SerialNo": "5000:1045710669157053657849499619",
"PhoneNumber": "+8618501234444",
"Fee": 1,
"SessionContext": "outsid_1729495320_1011",
"Code": "Ok",
"Message": "send success",
"IsoCode": "CN"
},
{
"SerialNo": "5000:1045710669157053657849499718",
"PhoneNumber": "+8618501234445",
"Fee": 1,
"SessionContext": "outsid_1729495320_1011",
"Code": "Ok",
"Message": "send success",
"IsoCode": "CN"
}
],
"RequestId": "a0aabda6-cf91-4f3e-a81f-9198114a2279"
}
}
5. 开发者资源
腾讯云 API 平台
腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。
API Inspector
用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。
SDK
云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。
- Tencent Cloud SDK 3.0 for Python: GitHub Gitee
- Tencent Cloud SDK 3.0 for Java: GitHub Gitee
- Tencent Cloud SDK 3.0 for PHP: GitHub Gitee
- Tencent Cloud SDK 3.0 for Go: GitHub Gitee
- Tencent Cloud SDK 3.0 for Node.js: GitHub Gitee
- Tencent Cloud SDK 3.0 for .NET: GitHub Gitee
- Tencent Cloud SDK 3.0 for C++: GitHub Gitee
- Tencent Cloud SDK 3.0 for Ruby: GitHub Gitee
命令行工具
签名demo
下面提供了各个语言生成签名的过程,demo 只是起到演示的作用,不具备通用性,在实际的开发中还是推荐使用 SDK。
Signature V1:
- Signature V1 demo for Python
- Signature V1 demo for Java
- Signature V1 demo for PHP
- Signature V1 demo for Go
- Signature V1 demo for NodeJS
- Signature V1 demo for .NET
Signature V3
- Signature V3 demo for Python
- Signature V3 demo for Java
- Signature V3 demo for PHP
- Signature V3 demo for Go
- Signature V3 demo for NodeJS
- Signature V3 demo for .NET
- Signature V3 demo for C++
- Signature V3 demo for Ruby
6. 错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
错误码 | 描述 |
---|---|
FailedOperation.ContainSensitiveWord | 短信内容中含有敏感词,请联系 腾讯云短信小助手。 |
FailedOperation.FailResolvePacket | 请求包解析失败,通常情况下是由于没有遵守 API 接口说明规范导致的,请参考 请求包体解析1004错误详解。 |
FailedOperation.InsufficientBalanceInSmsPackage | 套餐包余量不足,请 购买套餐包。 |
FailedOperation.JsonParseFail | 解析请求包体时候失败。 |
FailedOperation.MarketingSendTimeConstraint | 营销短信发送时间限制,为避免骚扰用户,营销短信只允许在8点到22点发送。 |
FailedOperation.PhoneNumberInBlacklist | 手机号在免打扰名单库中,通常是用户退订或者命中运营商免打扰名单导致的,可联系 腾讯云短信小助手 解决。 |
FailedOperation.SignatureIncorrectOrUnapproved | 签名未审批或格式错误。(1)可登录 短信控制台,核查签名是否已审批并且审批通过;(2)核查是否符合格式规范,签名只能由中英文、数字组成,要求2 - 12个字,若存在疑问可联系 腾讯云短信小助手。 |
FailedOperation.TemplateIncorrectOrUnapproved | 模板未审批或内容不匹配。(1)可登录 短信控制台,核查模板是否已审批并审批通过;(2)核查是否符合 格式规范,若存在疑问可联系 腾讯云短信小助手。 |
FailedOperation.TemplateParamSetNotMatchApprovedTemplate | 请求内容与审核通过的模板内容不匹配。请检查请求中模板参数的个数是否与申请的模板一致。若存在疑问可联系 腾讯云短信小助手。 |
FailedOperation.TemplateUnapprovedOrNotExist | 模板未审批或不存在。可登录 短信控制台,核查模板是否已审批并审批通过。若存在疑问可联系 腾讯云短信小助手。 |
InternalError.OtherError | 其他错误,请联系 腾讯云短信小助手 并提供失败手机号。 |
InternalError.RequestTimeException | 请求发起时间不正常,通常是由于您的服务器时间与腾讯云服务器时间差异超过10分钟导致的,请核对服务器时间及 API 接口中的时间字段是否正常。 |
InternalError.RestApiInterfaceNotExist | 不存在该 RESTAPI 接口,请核查 REST API 接口说明。 |
InternalError.SendAndRecvFail | 接口超时或短信收发包超时,请检查您的网络是否有波动,或联系 腾讯云短信小助手 解决。 |
InternalError.SigFieldMissing | 后端包体中请求包体没有 Sig 字段或 Sig 为空。 |
InternalError.SigVerificationFail | 后端校验 Sig 失败。 |
InternalError.Timeout | 请求下发短信超时,请参考 60008错误详解。 |
InternalError.UnknownError | 未知错误类型。 |
InvalidParameterValue.ContentLengthLimit | 请求的短信内容太长,短信长度规则请参考 国内短信内容长度计算规则。 |
InvalidParameterValue.IncorrectPhoneNumber | 手机号格式错误。 |
InvalidParameterValue.ProhibitedUseUrlInTemplateParameter | 禁止在模板变量中使用 URL。您可以参考正文模板审核标准下关于 变量规范 的描述 |
InvalidParameterValue.SdkAppIdNotExist | SdkAppId 不存在。 |
InvalidParameterValue.TemplateParameterFormatError | 验证码模板参数格式错误,验证码类模板,模板变量只能传入0 - 6位(包括6位)纯数字。 |
InvalidParameterValue.TemplateParameterLengthLimit | 单个模板变量字符数超过规定的限制数。您可以参考 正文模板审核标准下变量规范中关于长度的描述,对于长期未使用的账号及2024年1月25日后开通新账号默认最长支持6个字符,您的账号具体可支持字符长度以控制台显示为准。更多疑问可联系 腾讯云短信小助手 。 |
LimitExceeded.AppCountryOrRegionDailyLimit | 业务短信国家/地区日下发条数超过设定的上限,可自行到控制台应用管理>基础配置下调整国际港澳台短信发送限制。 |
LimitExceeded.AppCountryOrRegionInBlacklist | 业务短信国家/地区不在国际港澳台短信发送限制设置的列表中而禁发,可自行到控制台应用管理>基础配置下调整国际港澳台短信发送限制。 |
LimitExceeded.AppDailyLimit | 业务短信日下发条数超过设定的上限 ,可自行到控制台调整短信频率限制策略。 |
LimitExceeded.AppGlobalDailyLimit | 业务短信国际/港澳台日下发条数超过设定的上限,可自行到控制台应用管理>基础配置下调整发送总量阈值。 |
LimitExceeded.AppMainlandChinaDailyLimit | 业务短信中国大陆日下发条数超过设定的上限,可自行到控制台应用管理>基础配置下调整发送总量阈值。 |
LimitExceeded.DailyLimit | 短信日下发条数超过设定的上限 (国际/港澳台),如需调整限制,可联系 腾讯云短信小助手。 |
LimitExceeded.DeliveryFrequencyLimit | 下发短信命中了频率限制策略,可自行到控制台调整短信频率限制策略,如有其他需求请联系 腾讯云短信小助手。 |
LimitExceeded.PhoneNumberCountLimit | 调用接口单次提交的手机号个数超过200个,请遵守 API 接口输入参数 PhoneNumberSet 描述。 |
LimitExceeded.PhoneNumberDailyLimit | 单个手机号日下发短信条数超过设定的上限,可自行到控制台调整短信频率限制策略。 |
LimitExceeded.PhoneNumberOneHourLimit | 单个手机号1小时内下发短信条数超过设定的上限,可自行到控制台调整短信频率限制策略。 |
LimitExceeded.PhoneNumberSameContentDailyLimit | 单个手机号下发相同内容超过设定的上限,可自行到控制台调整短信频率限制策略。 |
LimitExceeded.PhoneNumberThirtySecondLimit | 单个手机号30秒内下发短信条数超过设定的上限,可自行到控制台调整短信频率限制策略。 |
MissingParameter.EmptyPhoneNumberSet | 传入的号码列表为空,请确认您的参数中是否传入号码。 |
UnauthorizedOperation.IndividualUserMarketingSmsPermissionDeny | 个人用户没有发营销短信的权限,请参考 权益区别。 |
UnauthorizedOperation.RequestIpNotInWhitelist | 请求 IP 不在白名单中,您配置了校验请求来源 IP,但是检测到当前请求 IP 不在配置列表中,如有需要请联系 腾讯云短信小助手。 |
UnauthorizedOperation.RequestPermissionDeny | 请求没有权限,请联系 腾讯云短信小助手。 |
UnauthorizedOperation.SdkAppIdIsDisabled | 此 SdkAppId 禁止提供服务,如有需要请联系 腾讯云短信小助手。 |
UnauthorizedOperation.ServiceSuspendDueToArrears | 欠费被停止服务,可自行登录腾讯云充值来缴清欠款。 |
UnauthorizedOperation.SmsSdkAppIdVerifyFail | SmsSdkAppId 校验失败,请检查 SmsSdkAppId 是否属于 云API密钥 的关联账户。 |
UnsupportedOperation | 操作不支持。 |
UnsupportedOperation.ChineseMainlandTemplateToGlobalPhone | 国内短信模板不支持发送国际/港澳台手机号。发送国际/港澳台手机号请使用国际/港澳台短信正文模板。 |
UnsupportedOperation.ContainDomesticAndInternationalPhoneNumber | 群发请求里既有国内手机号也有国际手机号。请排查是否存在(1)使用国内签名或模板却发送短信到国际手机号;(2)使用国际签名或模板却发送短信到国内手机号。 |
UnsupportedOperation.GlobalTemplateToChineseMainlandPhone | 国际/港澳台短信模板不支持发送国内手机号。发送国内手机号请使用国内短信正文模板。 |
UnsupportedOperation.UnsupportedRegion | 不支持该地区短信下发。 |