# PIX

### 支付流程

<figure><img src="/files/2DkPH5pdCGdkqNSAZhuw" alt=""><figcaption></figcaption></figure>

1、用户在商户网站进行下单选择PIX付款；

&#x20;2、商户向Supefina发起PIX支付请求；

&#x20;3、Supefina返回PIX付款URL信息。

&#x20;4、商户将该支付URL展示给用户；

&#x20;5、用户打开URL展示二维码按照页面提示进行付款；

6、付款成功；

&#x20;7、Supefina通知商户订单成功。

### 支付视频

{% file src="/files/7oPykiXxtr8yfzTjE8uc" %}

### 收银台链接请求地址

<table data-full-width="true"><thead><tr><th width="138">环境名称</th><th width="800">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 width="479">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="217">变量名</th><th width="96">类型</th><th width="115">必填</th><th width="641">描述</th></tr></thead><tbody><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>BRA</code></td></tr><tr><td>currency</td><td>String</td><td>是</td><td>币种<br>参照：<a href="/pages/17IKBEvxR4cpZue8BRdD#huo-bi-currency">字典表-货币</a><br>雷亚尔：<code>BRL</code></td></tr><tr><td>customerPhone</td><td>String</td><td>否</td><td>手机号</td></tr><tr><td>customerEmail</td><td>String</td><td>是</td><td>用户邮箱</td></tr><tr><td>customerIdentification</td><td>String</td><td>否</td><td>用户证件号（CPF）</td></tr><tr><td>customerName</td><td>String</td><td>是</td><td>用户姓名</td></tr><tr><td>description</td><td>String</td><td>是</td><td>订单描述<br>不能带特殊符号</td></tr><tr><td>expireTimeL</td><td>Long</td><td>否</td><td><p>过期时间<br>单位：秒</p><p>此过期时间不生效，默认2小时<br></p></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>订单金额<br>支持两位小数；<br>20 &#x3C;= <code>orderAmount</code> &#x3C;= 50000</td></tr><tr><td>payProduct</td><td>String</td><td>是</td><td><a href="/pages/17IKBEvxR4cpZue8BRdD#mfocd">支付类型</a><br>PIX：<code>24</code></td></tr><tr><td>sign</td><td>String</td><td>是</td><td>签名<br><a href="/pages/DR0Ieg3d88mBdWrXD882">具体参照：签名算法</a></td></tr></tbody></table>

### 请求示例

{% code fullWidth="true" %}

```json
{
	"callbackUrl": "https://test.com",
	"countryId": "BRA",
	"currency": "BRL",
	"customerEmail": "9064@outlook.com",
	"customerIdentification": "123456789-09",
	"customerName": "test name",
	"description": "test description",
	"merId": "8302996847200585",
	"merOrderNo": "2025072513271752690740186",
	"nonceStr": "1da5c04f026549968b4c393be2287ac2",
	"orderAmount": "10.00",
	"payProduct": "24",
	"sign": "70A1D73AAC2B243689D395CCD8D3D272"// 大写
}
```

{% endcode %}

签名组装字符串

callbackUrl=<https://test.com\\&countryId=BRA\\&currency=BRL\\&customerEmail=9064@outlook.com\\&customerIdentification=123456789-09\\&customerName=test> name\&description=test description\&merId=8302996847200585\&merOrderNo=2025072513271752690740186\&nonceStr=1da5c04f026549968b4c393be2287ac2\&orderAmount=10.00\&payProduct=24\&key=9dbb958a68f04252bae26a6b6d98e0ab

### 响应参数

<table data-full-width="true"><thead><tr><th width="217">变量名</th><th width="136">类型</th><th width="736">描述</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>channelName</td><td>String</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>referenceCode</td><td>String</td><td>收款二维码（5分钟失效）</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>url</td><td>String</td><td>交易链接（收银台5分钟倒计时失效）</td></tr><tr><td>msg</td><td>String</td><td>消息</td></tr><tr><td>orderExpirationTime</td><td>String</td><td>订单过期时间 （UTC 0时区时间）</td></tr></tbody></table>

#### 响应示例

{% code fullWidth="true" %}

```json
{
	"code": "200",
	"msg": "success ",
	"data": {
		"merCode": "8302996847200585",
		"merOrderNo": "2025072513271752690740186",
		"supefinaOrderNo": "20250725052717925000038423",
		"amount": 10.0,
		"fee": 5.5,
		"transactionStatus": "00",
		"url": "https://h5.supefina.tech/brazil?token=20250725052717925000038423",
		"referenceCode": "",
		"channelName": "brpix",
		"orderExpirationTime": "2025-07-27T05:27:28.083"
	}
}
```

{% endcode %}

### 回调通知

提交方式：`POST`

<table data-full-width="true"><thead><tr><th width="217">变量名</th><th width="96">类型</th><th width="746">描述</th></tr></thead><tbody><tr><td>amount</td><td>String</td><td>订单金额</td></tr><tr><td>countryId</td><td>String</td><td>国家编号</td></tr><tr><td>customerName</td><td>String</td><td>付款人姓名</td></tr><tr><td>fee</td><td>String</td><td>预收手续费</td></tr><tr><td>merId</td><td>String</td><td>商户编号</td></tr><tr><td>merOrderId</td><td>String</td><td>商户订单号</td></tr><tr><td>msg</td><td>String</td><td>信息</td></tr><tr><td>identifier</td><td>String</td><td>付款参考<br>Clabe</td></tr><tr><td>nonceStr</td><td>String</td><td>随机字符串</td></tr><tr><td>payerIdNumber</td><td>String</td><td>付款人CPF</td></tr><tr><td>payerName</td><td>String</td><td>付款人姓名</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>Date</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": "10.00",
	"countryId": "BRA",
	"customerName": "test name",
	"fee": "5.50",
	"identifier": "8d0f2d03-2c86-4b",
	"merId": "8302996847200585",
	"merOrderId": "2025072513271752690740186",
	"msg": "SUCCESS",
	"nonceStr": "c5c9eb58-751e-491f-9b1a-5b9261",
	"payerIdNumber": "123456789-09",
	"payerName": "test",
	"realityAmount": "10.00",
	"realityFee": "5.50",
	"sign": "57512911FB88A2C77566F61BB274F56D",// 大写
	"status": "01",
	"successTime": 1753421243000,
	"supefinaOrderId": "20250725052717925000038423",
	"transactionType": "01"
}
```

{% endcode %}

签名组装字符串

amount=10.00\&countryId=BRA\&customerName=test name\&fee=5.50\&identifier=8d0f2d03-2c86-4b\&merId=8302996847200585\&merOrderId=2025072513271752690740186\&msg=SUCCESS\&nonceStr=c5c9eb58-751e-491f-9b1a-5b9261\&payerIdNumber=123456789-09\&payerName=test\&realityAmount=10.00\&realityFee=5.50\&status=01\&successTime=1753421243000\&supefinaOrderId=20250725052717925000038423\&transactionType=01\&key=9dbb958a68f04252bae26a6b6d98e0ab

**回调通知响应**

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

{% code fullWidth="true" %}

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

{% endcode %}


---

# Agent Instructions: 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:

```
GET https://docs.supefina.net/huan-ying-shi-yong-supefina-de-api-wen-dang/dai-shou/ba-xi/pix.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
