/pix-charge

Library to generate BCB's Pix Payment BR Code

Primary LanguageTypeScriptMIT LicenseMIT

pix-charge

bundle size

pixLogo

Library to generate BCB's Pix Payment BR Code 💸

Install 📦

#NPM
npm i pix-charge

#YARN
yarn add pix-charge

Usage ✍️

import { staticPix } from "pix-charge";

// Payer will set transfer value
let brCode = staticPix({
  merchantKey: "gjmolter.1997@gmail.com",
  merchantName: "Gabriel Molter",
});

// Transfer value is pre-defined.
let brCodeWithValue = staticPix({
  merchantKey: "gjmolter.1997@gmail.com",
  merchantName: "Gabriel Molter",
  amount: 500,
});

// Transfer value is pre-defined and has charge description
let brCodeWithDescription = staticPix({
  merchantKey: "gjmolter.1997@gmail.com",
  merchantName: "Gabriel Molter",
  amount: 1.99,
  description: "Candy Bar", // Will show up as a label describing to the payer what they are being charged for
});

This last one will generate the following payment screen when read:

PixNubank

QRCode 🤳

This lib was created with the goal of being as small and simple as possible, therefore, it only creates the BR Code. If you need to transform it into a QR Code, there are many ways to do it. I recommend using the qrcode lib. Here is an example:

First, install the qrcode lib:

#NPM
npm i qrcode

#YARN
yarn add qrcode

Then import it into your application:

import QRCode from "qrcode";

On your HTML, create a Canvas element with an id

<canvas id="canvas"></canvas>

Then use .toCanvas to create a QR Code from the BR Code

import { dinamicPix, staticPix } from "pix-charge";

let brCode = staticPix({
  merchantKey: "gjmolter.1997@gmail.com",
  merchantName: "Gabriel Molter",
});

QRCode.toCanvas(document.getElementById("canvas"), brCode, (error) => {
  if (error) {
    console.error(error);
  } else {
    console.log("success!");
  }
});

Params 🎛️

staticPix()

staticPix({ object }):

object key type required
merchantKey string
merchantName string
amount number
merchantCity string
merchantCep string
description string
identifier string
isUnique boolean

dinamicPix()

dinamicPix({ object }):

object key type required
merchantName string
location string
amount number
merchantCity string
merchantCep string
identifier string
isUnique boolean

merchantKey

The merchantKey can be any DICT key:

  • Email: gjmolter.1997@gmail.com (regular email string)

  • CPF: 12345678900 (11 characters, no separators)

  • CNPJ: 00038166000105 (14 characters, no separators)

  • Telephone: +5561912345678 (string starting with +, then country code, area code and actual phone number)

  • EVP: 123e4567-e12b-12d1-a456-426655440000 (string with lowercase characters with separators)

Wanna buy me a beer?

If this lib has helped you and you want to support further development, you can do a Pix transfer using this QR Code:

Donation QRCode

or copying-and-pasting this BR Code:

00020126450014br.gov.bcb.pix0123gjmolter.1997@gmail.com5204000053039865802BR5914GABRIEL MOLTER63044E95

More info from BCB

BCB - Iniciação do Pix

License

MIT © gjmolter