michaeld555 / sicoob-sdk
SDK para integração com a API da Sicoob
v1.0.3
2025-03-21 02:04 UTC
Requires
- php: >=8.0
- chillerlan/php-qrcode: 5.0.1
- guzzlehttp/guzzle: ^7.0.1
- ramsey/uuid: ^4.7.6
- vlucas/valitron: >= 1.4.11
This package is auto-updated.
Last update: 2026-07-03 04:59:25 UTC
README
SDK PHP para integração com a API do Sicoob, oferecendo suporte completo a boletos bancários, PIX (cobrança imediata e com vencimento) e webhooks.
Requisitos
- PHP >= 8.0
- Extensão
json - Extensão
openssl(para autenticação SSL em produção)
Instalação
composer require michaeld555/sicoob-sdk
Configuração
Credenciais
Acesse o Portal do Desenvolvedor Sicoob para obter:
- client_id e client_secret (sandbox)
- Certificado SSL (arquivos
.crte.key) para o ambiente de produção
Modos de operação
| Modo | Autenticação |
|---|---|
| Sandbox | Client credentials simples (client_id + client_secret) |
| Produção | Client credentials via certificado SSL |
Uso
Boleto
use Michaeld555\SicoobBoleto; $sicoob = new SicoobBoleto(); $sicoob->setClientId('seu-client-id') ->setClientSecret('seu-client-secret') // apenas sandbox ->setCertificateCrt('/caminho/certificado.crt') // apenas produção ->setCertificateKey('/caminho/chave.key') // apenas produção ->setSandbox(true); // true para sandbox $boleto = $sicoob->boleto(); // Incluir boleto $boleto->incluir([ 'numeroBoleto' => '123456', 'valor' => 150.00, // ... demais campos conforme documentação Sicoob ]); // Consultar $boleto->consultar('123456'); // Segunda via $boleto->segundaVia('123456'); // Atualizar $boleto->atualizar('123456', ['valor' => 200.00]); // Baixar (cancelar) $boleto->baixar('123456', [ 'motivoCancelamento' => 'ACERTOS' ]);
Webhook de Boleto
$webhook = $sicoob->webhook(); $webhook->criar([ 'webhookUrl' => 'https://meusite.com/webhook', 'tipo' => 'BOLETO' ]); $webhook->consultar(); $webhook->atualizar(['webhookUrl' => 'https://meusite.com/novo-webhook']); $webhook->deletar(); $webhook->reativar(); $webhook->solicitacoes(['dataInicio' => '2024-01-01', 'dataFim' => '2024-12-31']);
PIX
use Michaeld555\SicoobPix; $sicoob = new SicoobPix(); $sicoob->setClientId('seu-client-id') ->setClientSecret('seu-client-secret') ->setCertificateCrt('/caminho/certificado.crt') ->setCertificateKey('/caminho/chave.key') ->setSandbox(true); // Cobrança Imediata (COB) $cob = $sicoob->cob(); $cob->criar([ 'calendario' => ['expiracao' => 3600], 'devedor' => ['cpf' => '12345678909', 'nome' => 'João Silva'], 'valor' => ['original' => '100.00'], 'chave' => 'chave-pix-aqui', 'solicitacaoPagador' => 'Pagamento referente ao pedido 123' ]); $cob->consultar('txid-gerado'); $cob->atualizar('txid-gerado', ['valor' => ['original' => '150.00']]); $cob->cancelar('txid-gerado'); // QR Code $qrCode = $cob->gerarQRCode('brcode-pix-aqui'); // Retorna QRCodeInterface do chillerlan/php-qrcode // Cobrança com Vencimento (COBV) $cobv = $sicoob->cobv(); $cobv->criar([ 'calendario' => [ 'dataDeVencimento' => '2025-12-31', 'validadeAposVencimento' => 30 ], 'devedor' => ['cpf' => '12345678909', 'nome' => 'João Silva'], 'valor' => ['original' => '500.00'], 'chave' => 'chave-pix-aqui' ]); $cobv->consultar('txid-ou-txid-gerado-automaticamente'); $cobv->atualizar('txid', [...]); $cobv->cancelar('txid'); $cobv->gerarQRCode('brcode-pix-aqui');
Webhook de PIX
$webhook = $sicoob->webhook(); $webhook->criar('chave-pix', 'https://meusite.com/webhook-pix'); $webhook->consultar('chave-pix'); $webhook->atualizar('chave-pix', 'https://meusite.com/novo-webhook-pix'); $webhook->deletar('chave-pix');
QR Code
use Michaeld555\Helpers\QRCodeGenerator; $qrCode = QRCodeGenerator::generate('brcode-pix-aqui'); // Retorna uma imagem QR Code (SVG/PNG)
Estrutura do Projeto
src/
├── Formater/
│ ├── RequestBoletoMaker.php # Construtor de requisições HTTP para boletos
│ └── RequestPixMaker.php # Construtor de requisições HTTP para PIX
├── Helpers/
│ ├── QRCodeGenerator.php # Geração de QR Code a partir de brcode
│ └── TxidGenerator.php # Geração de TXID (UUID v4)
├── Options/
│ └── EnvironmentUrls.php # URLs dos ambientes (produção/sandbox)
├── Services/
│ ├── Boleto.php # CRUD de boletos bancários
│ ├── Cob.php # Cobrança PIX imediata
│ ├── CobV.php # Cobrança PIX com vencimento
│ ├── WebhookBoleto.php # Gerenciamento de webhooks de boleto
│ └── WebhookPix.php # Gerenciamento de webhooks de PIX
├── Validators/
│ ├── CobValidator.php # Validação de payloads COB
│ ├── CobVValidator.php # Validação de payloads COBV
│ └── WebhookPixValidator.php # Validação de payloads de webhook PIX
├── SicoobBoleto.php # Fachada principal para boletos
└── SicoobPix.php # Fachada principal para PIX
Tratamento de Erros
Os métodos retornam um array com a estrutura abaixo em caso de erro na API:
[
'message' => 'Descrição do erro',
'violacoes' => ['Campo X é obrigatório', ...]
]
Licença
MIT © Michael Douglas