Skip to content

efipay/pix-qr-code-detail

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pix-qr-code-detail

Node.js

Pacote Node.js minimalista que realiza todo o fluxo de inspeção de um BR Code do PIX:

  1. Faz o parsing TLV do código QR/BR Code;
  2. Localiza a Merchant Account Information (tags 26–51) e extrai a URL do payload;
  3. Baixa o payload via HTTP/HTTPS;
  4. Decodifica o JWT e devolve { header, payload, signature }.

Ideal para validação, auditoria ou integração de sistemas de pagamento que precisem inspecionar rapidamente BR Codes sem depender de bibliotecas pesadas.


O repositório no GitHub inclui exemplos prontos em JavaScript (.js) e TypeScript (.ts). O mesmo código está publicado no NPM e pode ser usado em projetos CommonJS (require) ou ES Modules (import) — o funcionamento é idêntico em ambos os casos.


Instalação

npm i pix-qr-code-detail

O pacote publica CJS e ESM automaticamente, basta usar:

// CommonJS
const { getDecodedPixJwt } = require("pix-qr-code-detail");

// ESM / TypeScript
import { getDecodedPixJwt } from "pix-qr-code-detail";

Além da função getDecodedPixJwt são exportadas também parseTLV e extractPixUrl

parseTLV: Converte a string do BR Code em um array de objetos TLV. Cada item traz: tag, length, value, tagName (nome oficial segundo o manual do BR Code) e, quando aplicável, children com TLVs aninhados.

extractPixUrl: Varre o BR Code e devolve apenas o valor da sub‑tag 25 (URL do Payload) dentro do Merchant Account Information (tags 26‑51). Se não existir, devolve undefined.

getDecodedPixJwt: Usa extractPixUrl para obter a URL, baixa o token JWT (GET + Accept: application/jwt) e devolve o header, o payload e a signature já decodificados via jsonwebtoken.decode() (opção { complete: true }).

Exemplo

import { parseTLV, extractPixUrl, getDecodedPixJwt } from 'pix-qr-code-detail';

const brcode = '00020101021226830014BR.GOV.BCB.PIX2561qrcodespix.sejaefi.com.br/v2/ff719c748dc244a294adee9174ace3795204000053039865802BR5905EFISA6008SAOPAULO62070503***6304BAC4';

// 1. Listar campos do QR‑Code
console.dir(parseTLV(brcode), { depth: null });

// 2. Pegar só a URL do payload
console.log('URL:', extractPixUrl(brcode));

// 3. Baixar e decodificar o JWT Pix
(async () => {
  const { payload } = await getDecodedPixJwt(brcode);
  console.log('Payload JWT:', payload);
})();

About

Converta QR Codes Pix em detalhes claros de cobrança com um utilitário Node.js.

Resources

License

Stars

Watchers

Forks

Packages

No packages published