> 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-shou-ju-he-shou-yin-tai/mo-xi-ge.md).

# 墨西哥

### 目前支持的支付产品

1. Cash
2. SPEI
3. Card
4. OXXO

### 支付流程（具体支付方式的流程请查看代收列表中的文档）

1. 用户在商户网站进行下单付款.
2. 商户向Supefina发起API支付请求.
3. Supefina返回聚合收银台地址以及相关单号数据.
4. 用户在收银台上选择相关的支付方式并进行付款操作.
5. Supefina通知商户订单成功.

### 请求地址

<table data-full-width="true"><thead><tr><th width="135">环境名称</th><th>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/payin</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/payin</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="188">变量名</th><th width="157">类型</th><th width="85">必填</th><th width="506">描述</th></tr></thead><tbody><tr><td>merOrderNo</td><td>String</td><td>是</td><td>商户订单号</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>customerName</td><td>String</td><td>是</td><td>客户姓名</td></tr><tr><td>orderAmount</td><td>BigDecimal</td><td>是</td><td><strong>订单金额(只支持固额付款)</strong><br><strong>1. 如果用户付款金额与下单金额不一致，我们进行相关的退款操作，如果无法退款会有相关运营联系。</strong><br><strong>2. 如果用户在收银台有效期外进行付款操作，我们也会进行相关的退款操作，如果无法退款会有相关运营联系。</strong><br><strong>3. 退款操作针对不同的支付方式会收取相关的手续费，请知悉。</strong><br><strong>4. 手续费金额可联系运营人员。</strong></td></tr><tr><td>merId</td><td>String</td><td>是</td><td>商户ID<br>商户ID获取路径：Supefina商户后台-商户管理-基本信息-商户I</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>checkOut</td><td>Boolean</td><td>是</td><td>拉取聚合收银台条件<br><strong>此模式下只支持传入true</strong></td></tr><tr><td>description</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>sign</td><td>String</td><td>是</td><td>签名<br><a href="/pages/DR0Ieg3d88mBdWrXD882">具体参照：签名算法</a></td></tr><tr><td>payProduct</td><td>String</td><td>否</td><td><a href="/pages/17IKBEvxR4cpZue8BRdD#mfocd">支付类型</a><br>如果不传入则拉取商户配置下全部支付方式的收银台。<br>如果传入相关支付方式，则收银台上只展示对应的支付方式。<br><strong>注意：</strong><br><strong>如果此时传入没有配置的支付方式会返回异常信息。</strong></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>expireTimeL</td><td>Long</td><td>否</td><td>收银台过期时间（单位秒）<br><strong>1. 如果不传入默认12H</strong><br><strong>2.如果传入的时间小于3分钟或者大于7天，我们也会默认为12H</strong></td></tr><tr><td>requestData</td><td>Object</td><td>否</td><td>额外参数<br><strong>注意：如果商户配置了Cash的支付方式，此参数必传</strong>。</td></tr><tr><td>businessUnit</td><td>Object</td><td>是</td><td>业务单位</td></tr><tr><td>name</td><td>String</td><td>是</td><td>业务单位的名称</td></tr><tr><td>key</td><td>String</td><td>是</td><td>业务单位的唯一标识</td></tr><tr><td>showHtmlFlag</td><td>String</td><td>是</td><td><p>展示html收款页</p><p> 收款页URL：<code>1</code> </p></td></tr><tr><td>repeat</td><td>Boolean</td><td>否</td><td>Clabe是否重复使用<br><strong>注意：如果指定payProduct为15(SPEI)，此参数必传</strong><br><code>true</code>：多次使用</td></tr><tr><td>productName</td><td>String</td><td>是</td><td>商品名称<br>最大50个字符<br><strong>如果商户配置了Card的支付方式，此参数必传</strong></td></tr><tr><td>email</td><td>String</td><td>否</td><td>顾客邮箱<br>3-256个字符<br><strong>如果商户配置了Card的支付方式，此参数必传</strong></td></tr><tr><td>receiverAddressMain</td><td>String</td><td>否</td><td>收件地址，街道<br>0-50个字符<br><strong>如果商户配置了Card的支付方式，此参数必传</strong></td></tr><tr><td>receiverAddressExtra</td><td>String</td><td>否</td><td>收件地址，小区，门牌号<br>0-50个字符<br><strong>如果商户配置了Card的支付方式，此参数必传</strong></td></tr><tr><td>receiverCity</td><td>String</td><td>否</td><td>收件人城市<br>0-50个字符，可包括空格、连字符、撇号、逗号和点<br><strong>如果商户配置了Card的支付方式，此参数必传</strong></td></tr><tr><td>receiverProvince</td><td>String</td><td>否</td><td>收件人所在省<br>0-40个字符<br>参数：<a href="https://en.wikipedia.org/wiki/ISO_3166-2">https://en.wikipedia.org/wiki/ISO_3166-2</a> 例：NY<br><strong>如果商户配置了Card的支付方式，此参数必传</strong></td></tr><tr><td>receiverCountry</td><td>String</td><td>否</td><td>收件人国家<br>参照：<a href="https://docs.supefina.net/huan-ying-shi-yong-supefina-de-api-wen-dang/zi-dian-he-zi-yuan/zi-dian-biao#afwzp">字典表-国家编号</a> 例：BRA<br><strong>如果商户配置了Card的支付方式，此参数必传</strong></td></tr><tr><td>receiverZipCode</td><td>String</td><td>否</td><td>邮政编码<br>0-12个字母或数字<br><strong>如果商户配置了Card的支付方式，此参数必传</strong></td></tr><tr><td>receiverPhone</td><td>String</td><td>否</td><td>收件人电话<br>5-20个字符，区添加区号。如：+1 111111111<br><strong>如果商户配置了Card的支付方式，此参数必传</strong></td></tr></tbody></table>

### 请求示例

1. 开通全部支付方式 — 不传入payProduct

<pre class="language-json"><code class="lang-json">{
    "merOrderNo": "20240920195501",
    "sign": "xxxx",
    "requestData": {
        "businessUnit": {
            "key": "11",
            "name": "123456"
        },
        "showHtmlFlag": "1"
    },
    "countryId": "MEX",
    "nonceStr": "20240920195501",
    "customerName": "xx",
    "orderAmount": 100,
    "merId": "xxxxx",
    "checkOut": "true",
    "currency": "MXN",
    "callbackUrl": "xxxx",
    "productName": "test1",
    "email": "xxxx",
    "receiverAddressMain": "xxxx",
    "receiverAddressExtra": "xx",
    "receiverCity": "xxxx",
    "receiverCountry": "MEX",
    "receiverPhone": "+86123456789012345",
    "receiverProvince": "Example city",
    "receiverZipCode": "xxx",
    "description": "supefina",
    "expireTimeL": 3600
<strong>}
</strong></code></pre>

2. 开通部分支付方式(Cash和SPEI) — 不传入payProduct

```json
{
    "merOrderNo": "20240920195501",
    "sign": "xxxx",
    "requestData": {
        "businessUnit": {
            "key": "1098345673212",
            "name": "epay"
        },
        "showHtmlFlag": "1"
    },
    "countryId": "MEX",
    "nonceStr": "20240920195501",
    "customerName": "xxx",
    "orderAmount": 100,
    "merId": "xxxxx",
    "checkOut": "true",
    "currency": "MXN",
    "callbackUrl": "xxxx",
    "description": "supefina",
    "expireTimeL": 3600
}
```

3. 开通部分支付方式(Cash和Card) — 不传入payProduct

```json
{
    "merOrderNo": "20240920195501",
    "sign": "xxxx",
    "requestData": {
        "businessUnit": {
            "key": "11",
            "name": "123456"
        },
        "showHtmlFlag": "1"
    },
    "countryId": "MEX",
    "nonceStr": "20240920195501",
    "customerName": "xx",
    "orderAmount": 100,
    "merId": "xxxxx",
    "checkOut": "true",
    "currency": "MXN",
    "callbackUrl": "xxxx",
    "productName": "test1",
    "email": "xxxx",
    "receiverAddressMain": "xxxx",
    "receiverAddressExtra": "xx",
    "receiverCity": "xxxx",
    "receiverCountry": "MEX",
    "receiverPhone": "+86123456789012345",
    "receiverProvince": "Example city",
    "receiverZipCode": "xxx",
    "description": "supefina",
    "expireTimeL": 3600
}
```

4. 传入指定的支付方式

* payProduct：03

```json
{
    "merOrderNo": "20240920195501",
    "sign": "xxxxxx",
    "requestData": {
        "businessUnit": {
            "key": "111",
            "name": "123456"
        },
        "showHtmlFlag": "1"
    },
    "payProduct":"03",
    "countryId": "MEX",
    "nonceStr": "20240920195501",
    "customerName": "xxx",
    "orderAmount": 100,
    "merId": "xxxxx",
    "checkOut": "true",
    "currency": "MXN",
    "callbackUrl": "xxxxxx",
    "description": "supefina",
    "expireTimeL": 3600
}
```

* payProduct：15

```json
{
    "merOrderNo": "20240920195501",
    "sign": "xxxxx",
    "payProduct":"15",
    "repeat":true,
    "countryId": "MEX",
    "nonceStr": "20240920195501",
    "customerName": "xxxx",
    "orderAmount": 100,
    "merId": "xxxxx",
    "checkOut": "true",
    "currency": "MXN",
    "callbackUrl": "xxxxxx",
    "description": "supefina",
    "expireTimeL": 3600
}
```

* payProduct：18

```json
{
    "merOrderNo": "20240920195501",
    "sign": "xxxxxxx",
    "payProduct":"18",
    "countryId": "MEX",
    "nonceStr": "20240920195501",
    "customerName": "xxxx",
    "orderAmount": 100,
    "merId": "xxxxx",
    "checkOut": "true",
    "currency": "MXN",
    "callbackUrl": "xxxxx",
    "productName": "test1",
    "email": "xxxxxx",
    "receiverAddressMain": "xxxxxx",
    "receiverAddressExtra": "xxxxx",
    "receiverCity": "Example city",
    "receiverCountry": "MEX",
    "receiverPhone": "+86123456789012345",
    "receiverProvince": "Example city",
    "receiverZipCode": "xxxxx",
    "description": "supefina",
    "expireTimeL": 3600
}
```

### 响应参数

<table data-full-width="true"><thead><tr><th width="215">变量名</th><th width="119">类型</th><th width="355">描述</th></tr></thead><tbody><tr><td>code</td><td>String</td><td>响应编码<br>具体参照：<a href="/pages/j56ENY9y4TEhx8ssOv8a">响应状态码</a></td></tr><tr><td>msg</td><td>String</td><td>响应描述</td></tr><tr><td>data</td><td>Object</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>amount</td><td>BigDecimal</td><td>订单金额</td></tr><tr><td>url</td><td>String</td><td>交易链接</td></tr><tr><td>currency</td><td>String</td><td>币种</td></tr></tbody></table>

### 响应示例 — 成功

```json
{
    "code": "200",
    "msg": "success ",
    "data": {
        "merCode": "xxxxx",
        "merOrderNo": "20240920195501",
        "supefinaOrderNo": "2025011877286055912513536",
        "amount": 100,
        "url": "http://h5.supefina.tech/combineCashier?token=3eeec61dc9544b41b9086e953b52571c",
        "currency": "MXN"
    }
}
```

### 响应示例 — 失败

```json
{
    "code": "400",
    "msg": "param error : requestData is null"
}

```

### 回调通知 — 提交方式：`POST`

<table data-full-width="true"><thead><tr><th width="220">变量名</th><th width="119">类型</th><th width="406.25">描述</th></tr></thead><tbody><tr><td>amount</td><td>String</td><td>订单金额</td></tr><tr><td>countryId</td><td>String</td><td>国家编号<br>参照：<a href="/pages/17IKBEvxR4cpZue8BRdD#afwzp">字典表-国家编号</a><br>墨西哥：MEX</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><a href="/pages/17IKBEvxR4cpZue8BRdD#kxzkj">交易状态</a><br>具体参照：<a href="/pages/17IKBEvxR4cpZue8BRdD#kxzkj">字典表——交易订单状态</a></td></tr><tr><td>successTime</td><td>Date</td><td>交易成功时间<br>UTC时间</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>：代收</td></tr></tbody></table>

#### 回调通知示例

```json
{
    "amount": "30.00",
    "countryId": "MEX",
    "fee": "3.30",
    "identifier": "706180968985601627",
    "merId": "8302636872670229",
    "merOrderId": "P1790641845848850466",
    "msg": "SUCCESS",
    "nonceStr": "03aeeb11-0ad8-42dd-9f00-be1aae",
    "realityAmount": "30.00",
    "realityFee": "3.30",
    "reference": "3843CP03202405190062858560",
    "sign": "27C5933E426DD7A9EABD5C9D50F6BEBE",
    "status": "01",
    "successTime": 1715757366244,
    "supefinaOrderId": "202405150301469d1e0b38e7fdc46",
    "transactionType": "01"
}
```

**回调通知响应**

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

{% code fullWidth="true" %}

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

{% endcode %}


---

# 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-shou-ju-he-shou-yin-tai/mo-xi-ge.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.
