michaeld555/sicoob-sdk

SDK para integração com a API da Sicoob

Maintainers

Package info

github.com/michaeld555/sicoob-sdk

pkg:composer/michaeld555/sicoob-sdk

Transparency log

Statistics

Installs: 48

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.3 2025-03-21 02:04 UTC

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 .crt e .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