logo
logo
请输入关键词搜索产品或者文档
中国

中国站

创蓝云智

国际站

Innopaas

短信发送

更新时间:2026-07-31 09:59:04

接口概述

接口说明

国际短信发送接口,支持单条 / 批量短信提交。用于向一个或多个海外及港澳台手机号提交短信发送请求。调用该接口后,平台会返回提交结果;短信最终是否送达用户,需要通过状态报告确认。

节点域名

节点域名
上海节点intapi.tig253.com
新加坡节点sg-intapi.tig253.com
印尼节点id-api.tig253.com

归属节点查询操作指引

💡 重要提示:请根据控制台账号归属节点,选择对应节点域名拼接接口地址

基本信息

  • 接口地址https://节点域名/intsms/v2/sms/submit

  • Content-Typeapplication/json;charset=utf-8

  • 请求方式:POST,请求体为 JSON 格式封装的字符串

  • 编码格式:UTF-8

完整公共请求头、CheckSum 验签算法统一参考:API调用说明

接入指南

注意事项

  1. 单次调用最多支持 2000 个手机号,手机号之间用英文逗号间隔

  2. 手机号支持 6~20 位纯数字,国内号码无需添加区号或 + 号,直接填写 11 位手机号即可

  3. 短信内容长度限制为 3000 字符

  4. 服务端时间戳有效期为 5 分钟,即服务端接收到请求的时间与请求中的 CurTime 相差不能超过 5 分钟,超时返回 120504 错误码

  5. 建议每次请求都生成新的 Nonce 和 CheckSum,同时请确认发起请求的服务器与标准 UTC 时间同步

  6. 验签失败会返回 120001 错误码

  7. 若请求头携带 X-Custom-TraceId,会自动作为本次请求交易 id 使用

接口请求

请求体参数(Body)

名称类型必填描述
productTypeString短信类型:notify(验证码)、marketing(营销)等
messageString短信内容,长度≤3000 字符
phoneNumbersString接收手机号,支持带国家码,多个用英文逗号分隔
senderString接入号 / SenderId,长度≤20
uidString业务方流水号/交易id,长度≤128
callBackUrlString短信状态报告异步回调地址
tdFlagInteger退订标识:1 = 开启,0 或 null = 关闭
validityPeriodString短信过期时间,相对格式:[+-]YYMMDDhhmm

请求示例

POST /intsms/v2/sms/submit HTTP/1.1
Host: api.xxx.com
Content-Type: application/json;charset=utf-8
AppID: APP_xxxx
Nonce: a8f3d92cb1
CurTime: 1748419200
CheckSum: A1B2C3D4E5F67890
X-Custom-TraceId: trace_2026052912514

{
  "productType": "notify",
  "message": "Your verification code is 123456",
  "phoneNumbers": "+8613800138000,+8613800138001",
  "sender": "Brand",
  "callBackUrl": "https://yourdomain.com/cb",
  "validityPeriod": "+000000050000000R"
}

接口响应

响应头(Header)

名称类型描述
Content-TypeString响应体数据类型
X-TimestampString创蓝服务器接收请求的时间,毫秒级 UTC
X-Custom-TraceIdString请求头中的自定义追踪 ID

响应体参数(Body)

名称类型是否返回描述
codeString6 位状态码,000000 表示成功
msgString提示信息,成功时固定为 success
requestIdString请求id,提交成功时返回
dataObject业务返回数据,请求失败时不返回
- messageIdString-单发:单条消息 ID;批量:批量消息 ID
- errorPhoneArray<String>-仅批量发送返回,提交失败的手机号列表

响应示例

单条发送成功

{
  "code": "000000",
  "msg": "success",
  "requestId": "20260527150000xxxx",
  "data": {
    "messageId": "754398108056510464"
  }
}

批量发送成功(含失败号码)

{
  "code": "000000",
  "msg": "success",
  "requestId": "20260527150000xxxx",
  "data": {
    "messageId": "BATCH-20260424160000",
    "errorPhone": [
      "+8613800138999"
    ]
  }
}

调用失败

{
  "code": "120001",
  "message": "signature verification failed"
}
{
  "code": "120504",
  "msg": "signature expired"
}

错误码说明

通用状态码

code说明HTTP 触发场景
000000成功请求成功
190001请求失败服务端处理失败
190002非法状态资源状态不允许执行该操作
190003回调失败状态报告 / 上行回调失败
190004参数错误Body 必填项缺失或格式错误
190403没有权限通用权限不足
190500服务器未捕获异常服务端异常,请稍后重试或联系客服
190504请求超时服务端处理超时

认证状态码

code说明
120001验签失败
120301消息头缺少 AppID 或 AppID 不存在
120302消息头参数缺失(Nonce / CurTime / CheckSum),或 CurTime 格式错误
120401无效 Token
120403应用分配的权限不足
120504签名过期(与服务器时差 > 5min)

短信业务码

code说明排查建议
202101账号不存在检查 AppID 是否正确、账号是否分配
202102密码错误联系客服确认账号密码
202106短信内容长度超过 3000 字符缩短 message 内容
202108手机号码格式错误检查手机号码有效性
202112产品配置错误联系客服人员
202114客户端 IP 不在白名单在控制台配置发送 IP 白名单
202115没有开通短信权限联系客服开通对应短信业务权限
202116账号已删除或禁用联系客服恢复账号

附录

Java 签名生成工具类

import org.apache.commons.codec.digest.DigestUtils;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

public class UnifiedSmsSignUtils {
    /**
     * 生成完整的请求头签名信息
     * @param appSecret 应用密钥(控制台获取)
     * @return 包含所有请求头参数的Map
     */
    public static Map<String, String> generateRequestHeaders(String appSecret) {
        String nonce = UUID.randomUUID().toString().replace("-", "");
        String curTime = String.valueOf(System.currentTimeMillis() / 1000); // 秒级时间戳
        String checkSum = DigestUtils.sha1Hex(appSecret + nonce + curTime).toUpperCase(); // 大写
        
        Map<String, String> headers = new HashMap<>();
        headers.put("Content-Type", "application/json;charset=utf-8");
        headers.put("AppID", "你的AppID");
        headers.put("Nonce", nonce);
        headers.put("CurTime", curTime);
        headers.put("CheckSum", checkSum);
        return headers;
    }
}

24小时热线 400-9669-253