Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fonini/go-pix
go-pix is a Go library for generating Pix Copy and Paste or QR codes. 💳 💰
https://github.com/fonini/go-pix
brazil brcode go go-modules golang hacktoberfest library money
Last synced: 29 days ago
JSON representation
go-pix is a Go library for generating Pix Copy and Paste or QR codes. 💳 💰
- Host: GitHub
- URL: https://github.com/fonini/go-pix
- Owner: fonini
- License: mit
- Created: 2021-02-27T01:28:59.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-10-12T11:56:55.000Z (about 1 year ago)
- Last Synced: 2024-06-19T02:59:12.242Z (6 months ago)
- Topics: brazil, brcode, go, go-modules, golang, hacktoberfest, library, money
- Language: Go
- Homepage:
- Size: 44.9 KB
- Stars: 71
- Watchers: 4
- Forks: 11
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# go-pix
[![GoDoc](https://pkg.go.dev/badge/github.com/fonini/go-pix)](https://pkg.go.dev/github.com/fonini/go-pix/pix)
[![Test Status](https://github.com/fonini/go-pix/workflows/tests/badge.svg)](https://github.com/fonini/go-pix/actions?query=workflow%3Atests)
[![codecov](https://codecov.io/gh/fonini/go-pix/branch/main/graph/badge.svg?token=9RNR32U66L&force=true)](https://codecov.io/gh/fonini/go-pix)
[![Go Report Card](https://goreportcard.com/badge/github.com/fonini/go-pix?force=true)](https://goreportcard.com/report/github.com/fonini/go-pix)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)go-pix is a Go library for generating [Pix](https://www.bcb.gov.br/estabilidadefinanceira/pix) transactions using Copy and Paste or QR codes.
## About Pix
![Generated QR code](pix.png?raw=true)
Pix is a system created by the Brazilian Central Bank to allow instant payments. The new payment method allows immediate money transfer, 24 hours a day, 7 days a week, including weekends and holidays.
The address key is a way to identify the user’s account. There are four types of address keys that users can use:
* CPF/CNPJ
* Email address
* Cellphone number
* Random key – a set of random number, letters, and symbolsThis key binds the basic information to the user’s complete account information, allowing users to send and receive money using only an address key.
## Usage
```go
import "github.com/fonini/go-pix/pix"
```### Generating a Copy and Paste code
```go
options := pix.Options{
Name: "Jonnas Fonini",
Key: "[email protected]",
City: "Marau",
Amount: 20.67, // optional
Description: "Invoice #4", // optional
TransactionID: "***", // optional
}copyPaste, err := pix.Pix(options)
if err != nil {
panic(err)
}fmt.Println(copyPaste) // will output: "00020126580014BR.GOV.BCB.PIX0122jonnasfonini@gmail.com0210Invoice #4520400005303986540520.675802BR5913Jonnas Fonini6005Marau62410503***50300017BR.GOV.BCB.BRCODE01051.0.06304CF13"
optionsFromCode, err := pix.ReadPix(copyPaste)
if err != nil {
panic(err)
}fmt.Println(optionsFromCode)
```### Generating a QR code from a Copy and Paste code
You can use the Copy and Paste code generated above to generate a QR code
```go
options := QRCodeOptions{Size: 256, Content: copyPaste}qrCode, err := pix.QRCode(options)
if err != nil {
panic(err)
}
```The ```qrCode``` is a byte array, containing a graphical representation of the Copy and Paste code in the form of a QR code.
![Generated QR code](qr.png?raw=true)
## Banks tested
* Caixa Econômica Federal
* Nubank
* PicPay
* PagSeguro
* Itaú
* Mercado Pago## Tests
```sh
go test ./pix
```## License
This open-sourced software is licensed under the [MIT license](https://opensource.org/licenses/MIT).