Sicoob.Cobranca
0.0.2-alpha
See the version list below for details.
dotnet add package Sicoob.Cobranca --version 0.0.2-alpha
NuGet\Install-Package Sicoob.Cobranca -Version 0.0.2-alpha
<PackageReference Include="Sicoob.Cobranca" Version="0.0.2-alpha" />
paket add Sicoob.Cobranca --version 0.0.2-alpha
#r "nuget: Sicoob.Cobranca, 0.0.2-alpha"
// Install Sicoob.Cobranca as a Cake Addin #addin nuget:?package=Sicoob.Cobranca&version=0.0.2-alpha&prerelease // Install Sicoob.Cobranca as a Cake Tool #tool nuget:?package=Sicoob.Cobranca&version=0.0.2-alpha&prerelease
APIs Sicoob
Repositório para comunicação via API com o banco Sicoob
Link da documentação oficial: https://developers.sicoob.com.br
Para comunicação com o Sicoob é necessário um "Cadastro de Aplicativo" em developers.sicoob.com.br. Para isso é necessário ter os dados bancarios da conta a ser automatizada e de um certificado ICP-Brasil em arquivo.
Cada conta bancária a ser automatizada deve ter um cadastro como Aplicaitvo
É necessário ter o certificado em dois formatos:
- *.PFX (padrão quando um certificado A1 é adiquirido) com a senha e;
- *.CER (apenas a chave pública em formato Base-64)
Durante o cadastro será informado os dados da conta bancária sendo automatizada e o certificado no formato PEM. Será gerado um ClientId
.
O Sicoob possui APIs para:
- PIX
- Cobrança Bancária (Boleto)
- Conta Corrente
- Conta Poupança
Badges:
API Conta Corrente e Poupança:
A documentação do Sicoob é falha, imcompleta e em alguns tópicos é completamente ausente. O Gerente não tem acesso à documentação, o WhatsApp das APIs manda solicitar via e-mail, e o e-mails não são respondidos. Farei o póssível para documentar aqui as funções não documentadas lá, porém sob o risco de errar alguma funcionalidade
Sicoob.PIX
APIs do Sicoob para funções PIX
Funcionalidades da API:
- Consultar e Devolver PIX recebidos no período (com e sem txId)
- Criar, Consultar e revisar Pix-Cobrança imediato
- Criar, Consultar e revisar Pix-Cobrança com vencimento
- Criar, Consultar e revisar lotes de Pix-Cobrança com vencimento
- Criar, Consultar e revisar PayloadLocation de Pix (cria um acesso público para dados de uma cobrança)
- Criar, consultar e cancelar Webhook
Exemplos de uso
Criação do objeto API
// Cria configuração
var cfg = new ConfiguracaoAPI()
{
ClientId = "00000000-0000-0000-0000-000000000000", // Id do "Aplicativo" cadastrado em https://developers.sicoob.com.br
Scope = AuthorizationScope.ReadOnly(),
UrlCertificadoPFX = "caminho/do/pfx/com/chave/privada.pfx",
CertificadoSenha = "SenhaCertificado",
};
// cria o objeto de comunicação com as APIs de PIX
var sicoob = new SicoobPIX(cfg);
// Inicializa o acesso das APIs
await sicoob.SetupAsync();
// A autenticação dura 300 segundos (5min) e é auto renovado pela biblioteca
// Cada chamada verifica e, se necessário, atualiza o token
// Chame AtualizarCredenciaisAsync() para renovar manualmente
// É possível consultar dados da vigência do Token nas propriedades:
// * sicoob.ExpiresIn
// * sicoob.ExpiresAtUTC
// * sicoob.Expired
Funções Cobrança
var cobs = await sicoob.ListarCobrancasAsync(new Sicoob.PIX.Models.Cobranca.ConsultaRequest
{
inicio = DateTime.UtcNow.Date.AddDays(-1),
fim = DateTime.UtcNow.AddDays(1).Date,
});
Funções PIX
/* PIX */
var pixPeriodo = await sicoob.ListarPIXAsync(new Sicoob.PIX.Models.Pix.ConsultaRequest()
{
inicio = DateTime.UtcNow.Date.AddDays(-1),
fim = DateTime.UtcNow.AddDays(1).Date,
});
Webhook
A documentação do Webhook é um dos casos aonde só há informações parciais
Existe a documentação dos endpoints para criar e gerenciar o cadastro de Webhooks, porém não há nenhuma documentação da requisição que será feita pelo Sicoob no endpoint.
Ao consultar o suporte do sicoob no setor de APIs, fomos informados que não há documentação e devemos trabalhar por tentativa e erro (veja abaixo), portanto a documentação pode estar incompleta ou errada.
Após registrar o Webhook, todo PIX recebido que tenha TransactionId será notificado através de uma chamada Webhook, aonde os servidores do Sicoob farão uma chamada REST na aplicação com informações sobre o PIX.
Exemplo:
É registrado um Webhook para a chave: "12.345.678/0001-00":
await sicoob.CriarWebHook("12345678000100", "https://meu.site.com.br/api/");
O Sicoob vai fazer um POST para ttps://meu.site.com.br/api/pix
, repare que é feito um POST para o endereço registrado adicionado de /pix
no final.
Caso seja registrado como https://meu.site.com.br/api/pix
, será feito um POST para https://meu.site.com.br/api/pix/pix
(repare o duplo pix
).
O POST não tem nenhum header especial, e contém um array de dados do PIX no payload conforme model: Sicoob.PIX.Models.Webhook.WebhookPostRequest
// Exemplo de um Endpoint em ASP
[HttpPost]
[Route("cuidado com sua rota aqui/pix")] // não esquecer do /pix
public IActionResult Webhook_Pix([FromBody] Sicoob.PIX.Models.Webhook.WebhookPostRequest payload){
// Processa o payload
return Ok();
}
Dump de uma requisição do sicoob capturada
{
"method": "POST",
"uri": "/api/pix",
"headers": {
"Via": "1.1 wsap501.sicoob.com.br:80 (Cisco-WSA/12.0.3-007)",
"X-Imforwards": "20",
"Content-Length": "164",
"User-Agent": "axios/0.21.4",
"Content-Type": "application/json",
"Accept": "application/json, text/plain, */*",
"Connection": "close"
},
"body": "{\"pix\":[{\"endToEndId\":\"xxxxxxxxxxx\",\"txid\":\"xxxxxxxxxxx\",\"valor\":\"xxx.xx\",\"horario\":\"2020-01-01T00:00:00.000Z\",\"devolucoes\":[]}]}",
}
Segue o Contato com a equipe do suporte ao desenvolvedor do Sicoob em JAN/2023:
Nós:
Eu estou lendo a documentação sobre o registro, consulta e edição de WebHook
Mas não achei o protocolo da chamada que o Sicoob vai fazer
Não achei COMO o sicoob vai bater no meu endpoint
Qual método? (POST/GET?), não tem se vai mandar parâmetros, headers, qual o payload ....
Como eu faço para saber o que vou receber?
Sicoob ([NOME REMOVIDO]):
Você será notificado na URL cadastrada do Webhook e poderá identificar pelos IPs do Webhook PIX do Sicoob.
Infelizmente não temos exemplos disponíveis, será necessário testar sua aplicação.
Protocolo do Atendimento: [REMOVIDO]
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Sicoob.Shared (>= 1.0.0)
- Simple.API (>= 1.6.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 100 | 10/3/2024 |
0.0.2-alpha | 147 | 1/24/2023 |
0.0.1-alpha | 141 | 1/24/2023 |
See examples and documentation on the GitHub page
https://github.com/SharpSistemas/SicoobAPI