> For the complete documentation index, see [llms.txt](https://docs.supefina.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.supefina.net/huan-ying-shi-yong-supefina-de-api-wen-dang/dai-fu/mo-xi-ge/spei.md).

# SPEI

### 请求地址

<table data-full-width="true"><thead><tr><th width="114">环境名称</th><th width="619">URL</th></tr></thead><tbody><tr><td>SandBox</td><td><mark style="color:blue;"><code>POST</code></mark><br>https://api.supefina.tech/api/supefina/transactions/payout</td></tr><tr><td><mark style="color:red;">正式环境</mark></td><td><mark style="color:red;"><code>POST</code></mark><br><mark style="color:red;">https://api.supefina.net/api/supefina/transactions/payout</mark></td></tr></tbody></table>

### 请求方式

#### 请求头

<table data-full-width="true"><thead><tr><th>Key</th><th>Value</th></tr></thead><tbody><tr><td><code>Content-Type</code></td><td><code>application/json</code></td></tr></tbody></table>

#### 请求体

<table data-full-width="true"><thead><tr><th width="198">变量名</th><th width="100">类型</th><th width="93">必填</th><th width="487">描述</th></tr></thead><tbody><tr><td>account</td><td>String</td><td>是</td><td><p>收款方账户号</p><p>CLABE号是18位</p><p>银行卡号大多数是16位</p></td></tr><tr><td>bankId</td><td>String</td><td>是</td><td><p>收款人银行编号</p><p>具体参照：<a href="/pages/8YRD2SP9Grp9K4fNoIZS#mo-xi-ge-yin-hang-bian-ma">下载＞墨西哥银行列表</a></p></td></tr><tr><td>callbackUrl</td><td>String</td><td>是</td><td><p>回调地址</p><p>详见<a href="/pages/mfMq4AmXGJtMyIPchGsF">通知回调说明</a></p></td></tr><tr><td>countryId</td><td>String</td><td>是</td><td>国家编号<br>参照：<a href="/pages/17IKBEvxR4cpZue8BRdD#afwzp">字典表-国家编号</a><br>墨西哥：<code>MEX</code></td></tr><tr><td>currency</td><td>String</td><td>是</td><td>币种<br>参照：<a href="/pages/17IKBEvxR4cpZue8BRdD#huo-bi-currency">字典表-货币</a><br>墨西哥比索：<code>MXN</code></td></tr><tr><td>customerName</td><td>String</td><td>是</td><td><p>收款人姓名</p><p>名字长度不能超过40个字符，首尾不得包含空格，但姓名之间可以有空格</p></td></tr><tr><td>description</td><td>String</td><td>是</td><td>订单描述<br>长度不能超过200个字符，不能包含特殊符号</td></tr><tr><td>merId</td><td>String</td><td>是</td><td>商户ID<br>商户ID获取路径：Supefina商户后台-商户管理-基本信息-商户ID</td></tr><tr><td>merOrderNo</td><td>String</td><td>是</td><td>商户订单号</td></tr><tr><td>nonceStr</td><td>String</td><td>是</td><td>随机字符串<br>长度不能超过32字符</td></tr><tr><td>orderAmount</td><td>String</td><td>是</td><td>订单金额</td></tr><tr><td>payProduct</td><td>String</td><td>是</td><td><p><a href="/pages/17IKBEvxR4cpZue8BRdD#mfocd">支付类型</a><br>Clabe号：<code>15</code></p><p>银行卡号：<code>16</code></p><p>当收款方账户号属于CLABE的时候，示例为<code>15</code></p><p>当bankId是90646-STP、90706-ARCUS FI、90684-TRANSFER、90659-ASP INTEGRA OPC时，payProduct只支持<code>15</code></p><p></p></td></tr><tr><td>sign</td><td>String</td><td>是</td><td>签名<br><a href="/pages/DR0Ieg3d88mBdWrXD882">具体参照：签名算法</a></td></tr></tbody></table>

#### 请求示例<br>

{% code fullWidth="true" %}

```json
{
	"account": "646150996402711110",
	"bankId": "40138",
	"callbackUrl": "https://test.com",
	"countryId": "MEX",
	"currency": "MXN",
	"customerName": "Test Name",
	"description": "1",
	"merId": "8302921196770572",
	"merOrderNo": "2025072420155193221792292",
	"nonceStr": "80932b4fe9e74164ba533d7384986986",
	"orderAmount": "100.00",
	"payProduct": "15",
	"sign": "2245B9ED46F8BC88E691D9D8AF8FB598"// 大写
}
```

{% endcode %}

签名组装字符串

account=646150996402711110\&bankId=40138\&callbackUrl=<https://test.com\\&countryId=MEX\\&currency=MXN\\&customerName=Test> Name\&description=1\&merId=8302921196770572\&merOrderNo=2025072420155193221792292\&nonceStr=80932b4fe9e74164ba533d7384986986\&orderAmount=100.00\&payProduct=15\&key=cf5fe06851e84cd7ab227dbbf16f4bf1

&#x20;

&#x20;

&#x20;

### 响应参数

<table data-full-width="true"><thead><tr><th width="198">变量名</th><th width="133">类型</th><th width="470">描述</th></tr></thead><tbody><tr><td>code</td><td>String</td><td>响应编码<br>具体参照：<a href="/pages/j56ENY9y4TEhx8ssOv8a">响应状态码</a></td></tr><tr><td>data</td><td>Object</td><td>响应数据</td></tr><tr><td>amount</td><td>BigDecimal</td><td>订单金额</td></tr><tr><td>fee</td><td>BigDecimal</td><td>预收手续费</td></tr><tr><td>merCode</td><td>String</td><td>商户ID</td></tr><tr><td>merOrderNo</td><td>String</td><td>商户订单号</td></tr><tr><td>supefinaOrderNo</td><td>String</td><td>supefina订单号</td></tr><tr><td>transactionStatus</td><td>String</td><td>下单状态<br>该笔订单的的发起状态是否成功，与订单真正的交易状态无关。<br><code>00</code>：下单成功<br><code>04</code>：下单失败</td></tr><tr><td>msg</td><td>String</td><td>响应信息</td></tr></tbody></table>

#### 响应示例

{% code fullWidth="true" %}

```json
{
	"code": "200",
	"msg": "success ",
	"data": {
		"merCode": "8302921196770572",
		"merOrderNo": "2025072420155193221792292",
		"supefinaOrderNo": "2025072403020005f7bbf5509a843",
		"amount": 100.0,
		"fee": 1.0,
		"transactionStatus": "00"
	}
}
```

{% endcode %}

### 回调通知

<mark style="color:red;">**注意：**</mark>SPEI代付存在两次回调的情况：代付订单收到成功回调事件后，仍然可能接收到代付状态改变的回调事件，交易状态由成功变为失败。

原因是：付款银行会进行两次账户检查：首次通过后，渠道回调成功并将款项交给发卡行，发卡行进行第二次校验。如果收款账户错误、过期或被锁定，发卡行将不付款并回调**失败**。

针对这种先成功后失败的情况，建议商户以最后一次收到的回调状态为准。

由于银行处理时间的不确定性，Supefina系统无法预测是否会有第二次回调及具体时间。历史数据显示，两次回调间隔通常为20秒至数小时，个别订单可能超过2天。

**提交方式：**`POST`

<table data-full-width="true"><thead><tr><th width="198">变量名</th><th width="142">类型</th><th width="470">描述</th></tr></thead><tbody><tr><td>amount</td><td>String</td><td>订单金额</td></tr><tr><td>countryId</td><td>String</td><td>国家编号<br>参照：字典表-国家编号<br>墨西哥：MEX</td></tr><tr><td>customerName</td><td>String</td><td>收款人姓名</td></tr><tr><td>fee</td><td>String</td><td>预收手续费</td></tr><tr><td>identifier</td><td>String</td><td>付款参考<br>Clabe</td></tr><tr><td>merId</td><td>String</td><td>商户ID</td></tr><tr><td>merOrderId</td><td>String</td><td>商户订单号</td></tr><tr><td>msg</td><td>String</td><td>消息</td></tr><tr><td>nonceStr</td><td>String</td><td>随机字符串<br>长度不能超过32位</td></tr><tr><td>realityAmount</td><td>String</td><td>实收金额</td></tr><tr><td>realityFee</td><td>String</td><td>实收手续费</td></tr><tr><td>reference</td><td>String</td><td>付款参考</td></tr><tr><td>sign</td><td>String</td><td>签名</td></tr><tr><td>status</td><td>String</td><td>交易状态<br>具体参照：<a href="/pages/17IKBEvxR4cpZue8BRdD#kxzkj">字典表——交易订单状态</a></td></tr><tr><td>successTime</td><td>String</td><td>交易成功时间</td></tr><tr><td>supefinaOrderId</td><td>String</td><td>supefina订单号</td></tr><tr><td>transactionType</td><td>String</td><td>交易类型<br><code>01</code>：代收<br><code>02</code>：代付</td></tr></tbody></table>

#### 回调通知示例

{% code fullWidth="true" %}

```json
{
	"amount": "100.00",
	"countryId": "MEX",
	"customerName": "Test Name",
	"fee": "1.00",
	"identifier": "717640140822529316",
	"merId": "8302921196770572",
	"merOrderId": "2025072420155193221792292",
	"msg": "交易成功",
	"nonceStr": "366a0040-5776-43fc-ae2c-220723",
	"realityAmount": "100.00",
	"realityFee": "1.00",
	"reference": "PTJ19GS5HJZL36LWZX1Z9K1U7OQ0US1",
	"sign": "187617174CFC0A50E26CD03B884FAE69",// 大写
	"status": "01",
	"successTime": 1753359354692,
	"supefinaOrderId": "2025072403020005f7bbf5509a843",
	"transactionType": "02"
}
```

{% endcode %}

签名组装字符串

account=646150996402711110\&bankId=40138\&callbackUrl=<https://test.com\\&countryId=MEX\\&currency=MXN\\&customerName=Test> Name\&description=1\&merId=8302921196770572\&merOrderNo=2025072420155193221792292\&nonceStr=80932b4fe9e74164ba533d7384986986\&orderAmount=100.00\&payProduct=15\&key=de53650e1a6b494087d8c472516cc1cb

**回调通知响应**

商户成功收到回调后需同步返回指定字符串：SUCCESS 不返回或返回其他内容默认通知失败\
如：

{% code fullWidth="true" %}

```java
public String test(){
	return "SUCCESS";
}
```

{% endcode %}

### 墨西哥代付银行列表

<table><thead><tr><th width="109">bankId</th><th width="330">bankName</th></tr></thead><tbody><tr><td>40138</td><td>ABC CAPITAL</td></tr><tr><td>40133</td><td>ACTINVER</td></tr><tr><td>40062</td><td>AFIRME</td></tr><tr><td>90661</td><td>Klar</td></tr><tr><td>90706</td><td>ARCUS FI</td></tr><tr><td>90659</td><td>ASP INTEGRA OPC</td></tr><tr><td>40128</td><td>AUTOFIN</td></tr><tr><td>40127</td><td>AZTECA</td></tr><tr><td>37166</td><td>BaBien</td></tr><tr><td>40030</td><td>BAJIO</td></tr><tr><td>40002</td><td>BANAMEX</td></tr><tr><td>40154</td><td>BANCO COVALTO</td></tr><tr><td>37006</td><td>BANCOMEXT</td></tr><tr><td>40137</td><td>BANCOPPEL</td></tr><tr><td>40160</td><td>BANCO S3</td></tr><tr><td>40152</td><td>BANCREA</td></tr><tr><td>37019</td><td>BANJERCITO</td></tr><tr><td>40147</td><td>BANKAOOL</td></tr><tr><td>40106</td><td>BANK OF AMERICA</td></tr><tr><td>40159</td><td>BANK OF CHINA</td></tr><tr><td>37009</td><td>BANOBRAS</td></tr><tr><td>40072</td><td>BANORTE</td></tr><tr><td>40058</td><td>BANREGIO</td></tr><tr><td>40060</td><td>BANSI</td></tr><tr><td>40129</td><td>BARCLAYS</td></tr><tr><td>40145</td><td>BBASE</td></tr><tr><td>40012</td><td>BBVA MEXICO</td></tr><tr><td>40112</td><td>BMONEX</td></tr><tr><td>90677</td><td>CAJA POP MEXICA</td></tr><tr><td>90683</td><td>CAJA TELEFONIST</td></tr><tr><td>90630</td><td>CB INTERCAM</td></tr><tr><td>90631</td><td>CI BOLSA</td></tr><tr><td>90901</td><td>CLS</td></tr><tr><td>40130</td><td>COMPARTAMOS</td></tr><tr><td>40140</td><td>CONSUBANCO</td></tr><tr><td>90652</td><td>CREDICAPITAL</td></tr><tr><td>90688</td><td>CREDICLUB</td></tr><tr><td>90680</td><td>CRISTOBAL COLON</td></tr><tr><td>90723</td><td>Cuenca</td></tr><tr><td>40151</td><td>DONDE</td></tr><tr><td>90616</td><td>FINAMEX</td></tr><tr><td>90634</td><td>FINCOMUN</td></tr><tr><td>90685</td><td>FONDO (FIRA)</td></tr><tr><td>90601</td><td>GBM</td></tr><tr><td>37168</td><td>HIPOTECARIA FED</td></tr><tr><td>40021</td><td>HSBC</td></tr><tr><td>40155</td><td>ICBC</td></tr><tr><td>40036</td><td>INBURSA</td></tr><tr><td>90902</td><td>INDEVAL</td></tr><tr><td>40150</td><td>INMOBILIARIO</td></tr><tr><td>40136</td><td>INTERCAM BANCO</td></tr><tr><td>40059</td><td>INVEX</td></tr><tr><td>40110</td><td>JP MORGAN</td></tr><tr><td>90653</td><td>KUSPIT</td></tr><tr><td>90670</td><td>LIBERTAD</td></tr><tr><td>90602</td><td>MASARI</td></tr><tr><td>90722</td><td>Mercado Pago W</td></tr><tr><td>40042</td><td>MIFEL</td></tr><tr><td>40158</td><td>MIZUHO BANK</td></tr><tr><td>90600</td><td>MONEXCB</td></tr><tr><td>40108</td><td>MUFG</td></tr><tr><td>40132</td><td>MULTIVA BANCO</td></tr><tr><td>37135</td><td>NAFIN</td></tr><tr><td>90638</td><td>NU MEXICO</td></tr><tr><td>90710</td><td>NVIO</td></tr><tr><td>40148</td><td>PAGATODO</td></tr><tr><td>90620</td><td>PROFUTURO</td></tr><tr><td>40156</td><td>SABADELL</td></tr><tr><td>40014</td><td>SANTANDER</td></tr><tr><td>40044</td><td>SCOTIABANK</td></tr><tr><td>40157</td><td>SHINHAN</td></tr><tr><td>90646</td><td>STP</td></tr><tr><td>90703</td><td>TESORED</td></tr><tr><td>90684</td><td>TRANSFER</td></tr><tr><td>90656</td><td>UNAGRA</td></tr><tr><td>90617</td><td>VALMEX</td></tr><tr><td>90605</td><td>VALUE</td></tr><tr><td>90608</td><td>VECTOR</td></tr><tr><td>40113</td><td>VE POR MAS</td></tr><tr><td>40141</td><td>VOLKSWAGEN</td></tr><tr><td>40124</td><td>CITI MEXICO</td></tr><tr><td>90699</td><td>FONDEADORA</td></tr><tr><td>90732</td><td>PEIBO</td></tr><tr><td>90728</td><td>SPIN BY OXXO</td></tr><tr><td>2001</td><td>BANXICO</td></tr><tr><td>90903</td><td>CoDi Valida</td></tr><tr><td>90734</td><td>FINCO PAY</td></tr><tr><td>40167</td><td>HEY BANCO</td></tr><tr><td>90721</td><td>ALBO</td></tr><tr><td>90729</td><td>Dep y Pag Dig</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.supefina.net/huan-ying-shi-yong-supefina-de-api-wen-dang/dai-fu/mo-xi-ge/spei.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
