PIX 二维码:面向巴西收款的静态 BR Code
PIX 是巴西的即时支付系统,它的二维码遵循 EMV 二维码支付规范——与各地支付码相同的“字段加长度”语法。静态 PIX 码直接携带收款键,银行 App 不必先请求服务器就能组出转账。这让它印起来便宜、离线可用,但也意味着它是固定的快照。
静态 PIX 码的结构
每个字段都由两位编号、两位长度和值组成。载荷以 00 开头,以字段 63 的 CRC 收尾。字段 26 是商户账户信息块,子字段 00 标明 PIX 方案,子字段 01 放收款键。
| 字段 | 示例中的值 | 作用 |
|---|---|---|
| 00 | 01 | 载荷格式标识。 |
| 26 | br.gov.bcb.pix + 键 | 商户账户信息:PIX GUI 与 CPF、CNPJ、邮箱、手机号或随机键。 |
| 52 | 0000 | 商户类别码;类别未知时填 0000 也被接受。 |
| 53 | 986 | 币种:986 为巴西雷亚尔。 |
| 58 | BR | 国家代码。 |
| 59 | QrDeco Example | 商户名称,最多 25 个字符。 |
| 60 | Sao Paulo | 商户城市,最多 15 个字符。 |
| 62 | 05 + txid | 附加数据:交易号,没有时写 ***。 |
| 63 | 3C63 | 对本字段之前全部内容计算的 CRC16-CCITT。 |
用自己的键生成 PIX 码
- 选择账户实际登记的键类型:CPF 或 CNPJ 用纯数字,邮箱按原样,手机号用 +55 加号码,随机 EVP 键用 UUID。
- 字段 52、53、58 分别填 0000、986、BR。
- 字段 59 和 60 填银行会显示的名称与城市;两者都有长度限制,也不接受标记。
- 算出 CRC,印刷导出 SVG,支付页导出 PNG。
把金额留空
省略字段 54,金额就由付款人填写。要预填就加上 54,小数点用点号——10.50,绝不能写 10,50。留空适合小费、捐赠和先谈好总价的柜台;固定金额适合商品页或单一价格的服务。
txid 与对账
子字段 62-05 标识这笔交易。值 *** 表示“没有编号”,对匿名收款箱没问题,但店铺要核对每日流水时就毫无用处。用一个简短的发票号,最多 25 个字母数字字符,并记录哪张码是什么时候印的。
常见问题
静态 PIX 码和动态码是一回事吗?
不是。静态码直接包含收款键和固定数据;动态码包含一个由支付服务解析成账单的网址,按发票设置金额和到期日靠的就是它。
银行 App 为什么拒绝我的码?
几乎总是 CRC 的问题。任何改动——包括名称、城市或 txid——之后都要重算字段 63,并核对每个字段的长度仍与值匹配。
每次收款都能复用同一个 PIX 码吗?
金额留空的静态码可以,但除非每笔交易重新生成,txid 会完全相同。复用很方便,但它不是对账策略。