PIX QR-код: статический BR Code для платежей в Бразилии
PIX — бразильская система мгновенных платежей, и её QR-коды следуют спецификации EMV QR Code Payment Specification: та же грамматика «идентификатор — длина — значение», что и у платёжных кодов в других странах. Статический PIX-код несёт получательский ключ напрямую, поэтому банковское приложение может собрать перевод без предварительного запроса к серверу. Это делает печать дешёвой, а код пригодным офлайн — но и превращает его в жёсткий снимок.
Как устроен статический PIX-код
Каждое поле записывается как двузначный идентификатор, двузначная длина и значение. Payload начинается с 00 и заканчивается CRC в поле 63. Поле 26 — блок счёта получателя, где подполе 00 определяет схему PIX, а подполе 01 хранит ключ.
| Поле | Значение в примере | Назначение |
|---|---|---|
| 00 | 01 | Индикатор формата payload. |
| 26 | br.gov.bcb.pix + ключ | Данные счёта получателя: GUI PIX и ключ CPF, CNPJ, email, телефона или EVP. |
| 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 цифрами, email как есть, телефон с +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-код — то же самое, что динамический?
Нет. Статический код содержит ключ и фиксированные данные; динамический содержит URL, который платёжный сервис превращает в счёт, — так работают суммы и сроки оплаты для каждого отдельного счёта.
Почему банковское приложение отвергает мой код?
Почти всегда дело в CRC. Пересчитайте поле 63 после любой правки — включая изменение имени, города или txid — и проверьте, что длина каждого поля по-прежнему совпадает со значением.
Можно ли переиспользовать один PIX-код для всех продаж?
Для статического кода с открытой суммой — да, но txid будет одинаковым для каждого платежа, если не создавать новый код на каждую продажу. Переиспользование удобно, но это не стратегия сверки.
Другие платёжные и ссылочные рецепты.