QRCode Dinâmico

QR codes dinâmicos permitem pagamentos únicos ou recorrentes gerando URLs únicas que podem ser usadas para processar o pagamento.

Criar um QRCode dinâmico

Para gerar um QRCode dinâmico, você pode usar a função createDynamic:

import { createDynamic } from "@pix.js/qrcode";
 
const dynamic = createDynamic({
  merchantAccountInfo: {
    url: 'qrcode.pix.celcoin.com.br/pixqrcode/v2/46403cb5cf73b90a34b05467632f9a',
  },
  merchantName: 'Meu nome de usuário',
  merchantCity: 'Minha cidade',
  additionalData: { txId: '1234567890' },
});
 
console.log(dynamic.brcode)
// >00020101021226910014br.gov.bcb.pix2569qrcode.pix.celcoin.com.br/pixqrcode/v2/46403cb5cf73b90a34b05467632f9a52070503***63042C75

Parâmetros

PropTypeDefault
merchantAccountInfo
{ gui?: string | undefined; url: string; merchantAdditionalInfo?: string | undefined; fss?: string | undefined; }
-
pointOfInitiationMethod
PointOfInitiationMethod
-
value
number
-
merchantCategoryCode
string
0000
transactionCurrency
string
986
countryCode
string
BR
merchantName
string
-
merchantCity
string
-
additionalData
{ txId?: string | undefined; }
-
postalCode
string
-
unreservedTemplate
{ gui?: string | undefined; url?: string | undefined; }
-

Métodos do QRCode dinâmico

PropTypeDefault
toBase64
() => Promise<string>
-
toDataUrl
() => Promise<string>
-
type
PixQrCodeType
-
brcode
string
-
getPayload
() => Promise<{ payload: InstantPayload | ScheduledPayload; header: Record<string, unknown>; }>
-

Analisar dados do QRCode PIX a partir de uma string

Para analisar um QRCode PIX a partir de uma string, você pode usar a função parseFromString:

import { parseFromString } from "@pix.js/qrcode";
 
const dynamicPayload = parseFromString(
  '00020101021226910014br.gov.bcb.pix2569qrcode.pix.celcoin.com.br/pixqrcode/v2/9ba4b415d68448028544e96ddcfb225204000053039865802BR5915Victor Mesquita6009Sao Paulo62070503***63042C75',
);
 
console.log(dynamic)
// ->
// {
//   merchantAccountInfo: {
//     gui: 'br.gov.bcb.pix',
//     url: 'qrcode.pix.celcoin.com.br/pixqrcode/v2/9ba4b415d68448028544e96ddcfb22',
//   },
//   pointOfInitiationMethod: 12,
//   merchantCategoryCode: '0000',
//   transactionCurrency: '986',
//   countryCode: 'BR',
//   merchantName: 'Victor Mesquita',
//   merchantCity: 'Sao Paulo',
//   additionalData: {
//     txId: '***',
//   },
// }

Você também pode analisar e criar um objeto QRCode dinâmico a partir de uma string:

const dynamic = createDynamic(parseFromString(
  '00020101021226910014br.gov.bcb.pix2569qrcode.pix.celcoin.com.br/pixqrcode/v2/9ba4b415d68448028544e96ddcfb225204000053039865802BR5915Victor Mesquita6009Sao Paulo62070503***63042C75',
));
 
console.log(await dynamic.getPayload())
// ->
// {
//   payload: {
//     ...
//   },
//   header: {
//     ...
//   },
// }

Criar uma imagem QRCode

Para criar uma imagem QRCode, você pode usar o método toDataUrl:

import { createDynamic } from "@pix.js/qrcode";
 
const dynamic = createDynamic({
  merchantAccountInfo: {
    url: 'qrcode.pix.celcoin.com.br/pixqrcode/v2/46403cb5cf73b90a34b05467632f9a',
  },
  merchantName: 'Meu nome de usuário',
  merchantCity: 'Minha cidade',
  additionalData: { txId: '1234567890' },
});
 
const dataUrl = await dynamic.toBase64();
console.log(dataUrl)
// >data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=

Verificar se uma string é um QRCode dinâmico

Use a função isDynamicPix para verificar se uma string é um QRCode dinâmico:

import { isDynamicPix } from "@pix.js/qrcode";
 
console.log(isDynamicPix('00020101021226910014br.gov.bcb.pix2569qrcode.pix.celcoin.com.br/pixqrcode/v2/9ba4b415d68448028544e96ddcfb225204000053039865802BR5919SqalaPay Pagamentos6007Barueri62070503***630469E8'))
// >true

On this page