Library to generate BCB's Pix Payment BR Code 💸
#NPM
npm i pix-charge
#YARN
yarn add pix-charge
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:
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!");
}
});
staticPix({ object })
:
object key | type | required |
---|---|---|
merchantKey | string | ✅ |
merchantName | string | ✅ |
amount | number | ❌ |
merchantCity | string | ❌ |
merchantCep | string | ❌ |
description | string | ❌ |
identifier | string | ❌ |
isUnique | boolean | ❌ |
dinamicPix({ object })
:
object key | type | required |
---|---|---|
merchantName | string | ✅ |
location | string | ✅ |
amount | number | ✅ |
merchantCity | string | ❌ |
merchantCep | string | ❌ |
identifier | string | ❌ |
isUnique | boolean | ❌ |
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)
If this lib has helped you and you want to support further development, you can do a Pix transfer using this QR Code:
or copying-and-pasting this BR Code:
00020126450014br.gov.bcb.pix0123gjmolter.1997@gmail.com5204000053039865802BR5914GABRIEL MOLTER63044E95
MIT © gjmolter