https://github.com/thalesog/pix-utils
Set of tools to parse, generate and validate payments of Brazil Instant Payment System (Pix) in Javascript
https://github.com/thalesog/pix-utils
bacen emv emv-qr emvqr javascript pix pix-copia-e-cola pix-qrcode pix-tools qrcode typescript
Last synced: 5 months ago
JSON representation
Set of tools to parse, generate and validate payments of Brazil Instant Payment System (Pix) in Javascript
- Host: GitHub
- URL: https://github.com/thalesog/pix-utils
- Owner: thalesog
- License: mit
- Created: 2021-05-21T13:44:25.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2025-08-15T18:48:43.000Z (10 months ago)
- Last Synced: 2025-09-21T10:35:35.290Z (9 months ago)
- Topics: bacen, emv, emv-qr, emvqr, javascript, pix, pix-copia-e-cola, pix-qrcode, pix-tools, qrcode, typescript
- Language: TypeScript
- Homepage:
- Size: 669 KB
- Stars: 81
- Watchers: 2
- Forks: 16
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README

#
Pix-Utils
> Pix-Utils is a set of tools to parse, generate and validate payments of Brazil Instant Payment System (Pix), making fast and simple to handle charges and proccess then in your project.
# 🚀 Usage
### Install the package in your project
```sh
yarn add pix-utils
```
### Create Static Pix
```ts
import { createStaticPix, hasError } from 'pix-utils';
const pix = createStaticPix({
merchantName: 'Thales Ogliari',
merchantCity: 'Sao Paulo',
pixKey: 'nubank@thalesog.com',
infoAdicional: 'Gerado por Pix-Utils',
transactionAmount: 1,
});
if (!hasError(pix)) {
const brCode = pix.toBRCode();
// 00020126650014br.gov.bcb.pix0119nubank@thalesog.com0220Gerado por Pix-Utils52040000530398654041.005802BR5914Thales Ogliari6009Sao Paulo62070503***63046069
}
```
### Create Dynamic Pix
```ts
import { createDynamicPix, hasError } from 'pix-utils';
const pix = createDynamicPix({
merchantName: 'Thales Ogliari',
merchantCity: 'Sao Paulo',
url: 'https://pix.thalesogliari.com.br',
});
if (!hasError(pix)) {
const brCode = pix.toBRCode();
// 00020126540014br.gov.bcb.pix2532https://pix.thalesogliari.com.br5204000053039865802BR5914Thales Ogliari6009SAO PAULO62070503***63043FD3
}
```
### Throw errors
By default, pix-utils wont throw an error when parsing an invalid pix, but you can enable it by using the `throwIfError` function.
```js
import { createDynamicPix } from 'pix-utils';
const pix = createDynamicPix({
merchantName: 'Thales Ogliari',
merchantCity: 'Sao Paulo',
url: 'https://pix.thalesogliari.com.br',
}).throwIfError();
const brCode = pix.toBRCode();
// 00020126540014br.gov.bcb.pix2532https://pix.thalesogliari.com.br5204000053039865802BR5914Thales Ogliari6009SAO PAULO62070503***63043FD3
```
### Parse BRCode
```js
const pix = parsePix(
'00020126650014br.gov.bcb.pix0119nubank@thalesog.com0220Gerado por Pix-Utils52040000530398654041.005802BR5914Thales Ogliari6015SAO MIGUEL DO O62070503***6304059A'
);
// {
// type: 'STATIC',
// merchantCategoryCode: '0000',
// transactionCurrency: '986',
// countryCode: 'BR',
// merchantName: 'Thales Ogliari',
// merchantCity: 'SAO MIGUEL DO O',
// pixKey: 'nubank@thalesog.com',
// transactionAmount: 1,
// infoAdicional: 'Gerado por Pix-Utils',
// txid: '***',
// toBRCode: [Function: toBRCode],
// toImage: [Function: toImage]
// }
```
### Export to Base64 Image
```js
const pix = parsePix(
'00020126650014br.gov.bcb.pix0119nubank@thalesog.com0220Gerado por Pix-Utils52040000530398654041.005802BR5914Thales Ogliari6015SAO MIGUEL DO O62070503***6304059A'
);
pix.toImage();
// data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOQAAADkCAYAAACIV4iNAAAAAklEQVR4AewaftIAAAwHSURBVO3BQW4sy7LgQDKh/W...
```
# 🍰 Contributing
Please contribute using [GitHub Flow](https://guides.github.com/introduction/flow). Create a branch, add commits, and [open a pull request](https://github.com/thalesog/pix-utils/compare).
# 📝 License
This project is under [MIT](https://github.com/thalesog/pix-utils/blob/master/LICENSE) license.
#
Developed with 💚 by @thalesog 🇧🇷