Gerador de QR Codes para pagamentos PIX seguindo os padrões EMV.
npm install pix-qrcode-generator
- Geração de QR Codes estáticos para pagamentos PIX
- Geração de QR Codes dinâmicos (com ID de transação)
- Suporte a todos os tipos de chaves PIX (CPF, CNPJ, e-mail, telefone, chave aleatória)
- Payload gerado conforme os padrões EMV
- QR Codes em formato base64 e terminal/texto
const pixQRCode = require('pix-qrcode-generator');
// QR Code Estático
async function exemplo() {
const qrcode = await pixQRCode.generateStaticPixQRCode({
key: 'seu@email.com',
name: 'Fulano de Tal',
city: 'SAO PAULO',
description: 'Pagamento de teste',
amount: 100.50 // opcional
});
console.log(qrcode.qrCodeText); // Texto BR Code
console.log(qrcode.qrCodeImage); // Imagem Base64
}
// QR Code Dinâmico (com ID de transação)
async function exemploComTransacao() {
const qrcode = await pixQRCode.generateDynamicPixQRCode({
key: '12345678900', // CPF
name: 'Empresa LTDA',
city: 'RIO DE JANEIRO',
description: 'Pedido #123',
amount: 75.99,
transactionId: 'PEDIDO123' // obrigatório para QR dinâmico
});
console.log(qrcode.qrCodeText);
}
// QR Code para Terminal (síncrono)
function exemploTerminal() {
const qrcode = pixQRCode.generateStaticPixQRCodeSync({
key: '+5511999999999', // Telefone
name: 'Pessoa Física',
description: 'Pagamento direto'
});
console.log(qrcode.qrCodeTerminal); // ASCII QR Code
}
Gera um QR Code estático PIX.
-
options
(Objeto) - Opções para geração do QR Code:-
key
(String) - Chave PIX do recebedor -
name
(String) - Nome do recebedor -
city
(String, opcional) - Cidade do recebedor. Padrão: "SAO PAULO" -
description
(String, opcional) - Descrição do pagamento -
amount
(Number, opcional) - Valor do pagamento -
transactionId
(String, opcional) - ID da transação
-
Retorna uma Promise que resolve para um objeto contendo:
-
id
- ID único gerado para o QR Code -
key
- Chave PIX utilizada -
keyType
- Tipo da chave (email, cpf, cnpj, telefone, evp) -
description
- Descrição do pagamento -
amount
- Valor do pagamento (se fornecido) -
qrCodeImage
- Imagem do QR Code em base64 -
qrCodeText
- Payload PIX EMV -
transactionId
- ID da transação (se fornecido)
Gera um QR Code dinâmico PIX (com transactionId obrigatório).
Mesmos parâmetros e retorno do generateStaticPixQRCode
, mas o campo transactionId
é obrigatório.
Versão síncrona para geração de QR Code estático PIX, útil para exibição em terminal.
Mesmos parâmetros do generateStaticPixQRCode
, mas retorna imediatamente (sem Promise) um objeto com:
- Todos os campos de
generateStaticPixQRCode
-
qrCodeTerminal
- Representação ASCII do QR Code para terminal
O pacote também expõe algumas funções utilitárias para uso avançado:
-
utils.determinePixKeyType(pixKey)
- Determina o tipo da chave PIX -
utils.generatePixPayload(options)
- Gera apenas o payload PIX sem QR Code -
utils.generateUniqueId(prefix)
- Gera um ID único com prefixo opcional
Você pode encontrar exemplos completos no diretório examples.
- pix-payload - Geração do payload PIX
- qrcode - Geração de QR Code
MIT