You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Gere e valide pagamentos do Sistema de Pagamentos Instantâneo (Pix) do Banco Central de forma simples. Além da biblioteca, este repositório inclui um CLI e um serviço REST para gerar payloads Pix estáticos ou dinâmicos, bem como seus códigos QR.
6
10
7
11
## Funcionalidades
@@ -24,7 +28,7 @@ Requer Go 1.17 ou superior.
24
28
25
29
## Guia rápido
26
30
27
-
### CLI – gerar payload no terminal
31
+
### CLI - gerar payload no terminal
28
32
29
33
```bash
30
34
make cli
@@ -36,10 +40,13 @@ bin/pixgen generate \
36
40
--merchant-city ARARANGUA \
37
41
--amount 10.00 \
38
42
--description "Pedido 123" \
39
-
--txid PEDIDO-123
43
+
--txid PEDIDO-123 \
44
+
--ascii-scale 1
40
45
```
41
46
42
-
A saída inclui o código copia-e-cola, campos relevantes e o QR Code em base64.
47
+
A saída inclui o código copia-e-cola, campos relevantes, o QR Code em base64 e a versão em ASCII. Use `--ascii-scale` (>=1), `--ascii-quiet=true` para recolocar a borda de silêncio e `--ascii-black/--ascii-white` para personalizar o render em terminal.
48
+
49
+
Para QR Codes dinâmicos, lembre-se de informar `--url https://...` e um `--txid` alfanumérico (até 25 caracteres); o payload emitido trará a URL (tag `25`) e `***` no campo TxID conforme o manual.
-`pix.New(opts...) (*pix.Pix, error)` – cria um gerador Pix configurável.
160
-
-`(*Pix).GenPayload()` – retorna o payload EMV e o mantém em cache para `GenQRCode()`.
161
-
-`pix.ParsePayload(string) (*ParsedPayload, error)` – faz o parsing do payload e valida o CRC.
162
-
-`(*Pix).FetchDynamicPayload(ctx, client)` – baixa, valida e parseia payloads dinâmicos remotos.
163
-
-`(*Pix).Validates()` – valida os parâmetros (chaves, tamanho de campos, etc.).
177
+
-`pix.New(opts...) (*pix.Pix, error)` - cria um gerador Pix configurável.
178
+
-`(*Pix).GenPayload() (string, error)` - retorna o payload EMV e o mantém em cache para `GenQRCode()`.
179
+
-`pix.ParsePayload(string) (*ParsedPayload, error)` - faz o parsing do payload e valida o CRC.
180
+
-`(*Pix).FetchDynamicPayload(ctx, client)` - baixa, valida e parseia payloads dinâmicos remotos.
181
+
-`(*Pix).Validates()` - valida os parâmetros (chaves, tamanho de campos, etc.).
182
+
-`(*Pix).GenQRCodeASCII() (string, error)` - renderiza o QR Code em ASCII para uso direto no terminal.
183
+
-`pix.OptQRCodeScale`, `pix.OptASCIIQuietZone`, `pix.OptASCIICharset` - controlam escala, borda e caracteres usados no QR ASCII.
164
184
165
185
### Formatos aceitos de chave Pix
166
186
167
-
- EVP (UUID) – normalizado para minúsculo.
168
-
- Telefone (`+55DDDNÚMERO`) – aceita apenas dígitos com ou sem `+55`.
169
-
- CPF/CNPJ – somente dígitos, com validação dos dígitos verificadores.
170
-
- E-mail – validado via `net/mail`.
187
+
- EVP (UUID) - normalizado para minúsculo.
188
+
- Telefone (`+55DDDNÚMERO`) - aceita apenas dígitos com ou sem `+55`.
189
+
- CPF/CNPJ - somente dígitos, com validação dos dígitos verificadores.
190
+
- E-mail - validado via `net/mail`.
171
191
172
192
### Valor e TxID
173
193
174
194
- Valor suporta até 13 dígitos antes da vírgula e 2 casas decimais (`9999999999999.99` limite).
175
-
- TxID permite letras, números, `.` e `-` até 35 caracteres e é armazenado em maiúsculas.
195
+
- TxID (estático ou dinâmico) deve ser alfanumérico (A-Z, 0-9) e ter no máximo 25 caracteres. No caso estático, deixe em branco para que o payload utilize `***`; no dinâmico, o QR Code continua transportando `***` enquanto a URL carrega os dados da cobrança.
0 commit comments