Esta biblioteca foi desenvolvida com o intuito de auxiliar na implementação de PIX em aplicações .NET. Baseada em .NETStandard 2.0 para que possa funcionar com qualquer versão do .NET.
- Newtonsoft (13.0.1) - Biblioteca para trabalhar com JSON.
- Banco do Brasil (Homologação e Produção)
- Santander (Homologação e Produção)
- Itaú (Homologação e Produção)
- Sicoob (Homologação e Produção)
- Bradesco (Homologação e Produção)
- Sicredi (Homologação e Produção)
A primeira coisa que deve-se atentar, é sobre a classe Model.ProvedorToken. Esta classe é do tipo enum, representando os bancos disponíveis com seus respectivos códigos:
- NONE = 0,
- SICOOB = 756,
- Santander = 33,
- BancoBrasil = 1,
- Itau = 341,
- Bradesco = 237
- Sicredi = 748
ProvedorToken psp = (ProvedorToken)Enum.Parse(typeof(ProvedorToken), "33");
PixPayload payload = new PixPayload
{
calendario = new Calendario
{
expiracao = 3600
},
chave = "suachavepix@email.com",
valor = new Valor
{
original = "1122.43"
},
txid = "TESTE000000000000000000000000000001",
solicitacaoPagador = "Descrição da transação",
devedor = new Devedor {
nome = "Fulano de tal",
cpf = "00000000000" //cnpj
},
infoAdicionais = new List<InfoAdicionais>
{
new InfoAdicionais
{
nome = "Info 1",
valor = "Valor info 1"
}
}
};
📝 NOTE: Vale ressaltar que a classe Devedor() aceita tanto o atributo cpf quanto cnpj.
Credentials credentials = new Credentials
{
clientId = "xxxxxxxxxxxxxx",
clientSecret = "yyyyyyyyyyyy",
developerKey = "zzzzzzzzzzzzzzzzzzz"
};
📝 NOTE: O Atributo developerKey deve ser setado para os bancos:
- Banco do Brasil
byte[] cer = System.IO.File.ReadAllBytes("Path do arquivo PFX");
string password = "password";
Com async/await:
using PIX pix = new PIX(payload, credentials, psp, cer, password, PixAmbiente.Homologacao);
pix.SetNomeRazaoSocial("Nome da empresa proprietária da chave");
pix.SetCidade("Cidade Sede");
PixPayload cob = await pix.CreateCobrancaAsync();
Sem async:
using PIX pix = new PIX(payload, credentials, psp, cer, password, PixAmbiente.Homologacao);
pix.SetNomeRazaoSocial("Nome da empresa proprietária da chave");
pix.SetCidade("Cidade Sede");
PixPayload cob = pix.CreateCobranca();
Com async/await:
PixPayload cob = await pix.ConsultaCobrancaAsync("txid");
Sem async/await:
PixPayload cob = pix.ConsultaCobranca("txid");
Com async/await:
PixRecebidosPayload payload = new PixRecebidosPayload
{
fim = DateTime.Now.Date,
inicio = DateTime.Now.Date,
};
using PIX pix = new PIX(payload, credentials, psp, cer, request.password, request.ambiente);
var lista = await pix.ConsultaPixRecebidosAsync();
Sem async/await:
PixRecebidosPayload payload = new PixRecebidosPayload
{
fim = DateTime.Now.Date,
inicio = DateTime.Now.Date,
};
using PIX pix = new PIX(payload, credentials, psp, cer, request.password, request.ambiente);
var lista = pix.ConsultaPixRecebidos();
- Autor: Eduardo Carvalho Costa
- Email: eduardoccosta@outlook.com
- Analista de sistemas: Quality Systems
❗ Dúvidas somente pelo GitHub
MIT