PHPackages                             crtlmota/banco-sicredi-connector - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. crtlmota/banco-sicredi-connector

ActivePackage[API Development](/categories/api)

crtlmota/banco-sicredi-connector
================================

Abstração de comunicação rest com a API do Banco Sicredi v3.3, apenas curl

1.0.0(1y ago)0341LGPL-3.0-or-laterPHPPHP &gt;=7.4

Since Jul 8Pushed 1y ago1 watchersCompare

[ Source](https://github.com/Ctrl-Mota/banco-sicredi-connector-php)[ Packagist](https://packagist.org/packages/crtlmota/banco-sicredi-connector)[ Docs](https://github.com/Ctrl-Mota/banco-sicredi-connector-php)[ RSS](/packages/crtlmota-banco-sicredi-connector/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (6)Versions (2)Used By (0)

[![Sicredi Logo](https://camo.githubusercontent.com/2be11ebd0f8136c76591b6deb874c6d00db3d619937045647cdf8bef533b6bb4/68747470733a2f2f6465762d736963726564692e7a656e6465736b2e636f6d2f68632f7468656d696e675f6173736574732f3031485a48314d3831393433583631415852433350454a414d48)](https://camo.githubusercontent.com/2be11ebd0f8136c76591b6deb874c6d00db3d619937045647cdf8bef533b6bb4/68747470733a2f2f6465762d736963726564692e7a656e6465736b2e636f6d2f68632f7468656d696e675f6173736574732f3031485a48314d3831393433583631415852433350454a414d48)

Conecte o Banco Sicredi com seu projeto PHP
===========================================

[](#conecte-o-banco-sicredi-com-seu-projeto-php)

[![contributions welcome](https://camo.githubusercontent.com/9e93e892d0685e1bf7a1d0bd7c8410d6ecf2086a0a7b48dd58a6b96fa556ea2a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f6e747269627574696f6e732d77656c636f6d652d627269676874677265656e2e7376673f7374796c653d666c6174)](https://camo.githubusercontent.com/9e93e892d0685e1bf7a1d0bd7c8410d6ecf2086a0a7b48dd58a6b96fa556ea2a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f6e747269627574696f6e732d77656c636f6d652d627269676874677265656e2e7376673f7374796c653d666c6174)[![GitHub CI](https://github.com/Ctrl-Mota/banco-sicredi-connector-php/actions/workflows/ci.yml/badge.svg)](https://github.com/Ctrl-Mota/banco-sicredi-connector-php/actions/workflows/ci.yml/badge.svg)

Abstração de comunicação rest com API v3.3 fornecida pelo Banco Sicredi (748).

Inicialmente apenas a scopo de cobranças(crud de boleto + webhook) foi desenvolvido

Como usar:
----------

[](#como-usar)

### 1. Instalação

[](#1-instalação)

Para utilizar a biblioteca através do composer:

#### Versão estável

[](#versão-estável)

```
composer require "crtlmota/banco-sicredi-connector"

```

### 2. [Solicite acesso ao sandbox do SICREDI](https://dev-sicredi.zendesk.com/hc/pt-br/requests/new)

[](#2-solicite-acesso-ao-sandbox-do-sicredi)

### 3. Configure as credenciais

[](#3-configure-as-credenciais)

Esses exemplos são com dados padrão de teste, se possuir acesso ao sandbox / homologação basta executar e ver a mágica acontecer

```
$banco = new SicrediCobranca(
	new CredencialsManager(
		'123456789', // USERNAME
		'teste123', // PASSWORD
		'API_KEY_0000000000000', // api key fornecida pela sicredi
		'cobranca', // scope
		'6789', // COOPERATIVA
		'03', // POSTO
		'12345', // CODIGO_BENEFICIARIO
		//(opcional) Também é possível adicionar cache  de token embutido para diminuir o tempo de processamento eliminando logins desnecessários
		function (string $tokenJson) { //new token callback
                    if ($tokenFile = fopen('sicredi-oauth-token.txt', 'w')) {
                        fwrite($tokenFile, $tokenJson);
                        fclose($tokenFile);
                    }
                },
                function () { //get token callback
                    $oAuthTokenData = null;
                    // uso do @ para evitar o warning se o arquivo não existe
                    if (($tokenFile = @fopen('sicredi-oauth-token.txt', 'r')) !== false) {
                        // se tiver arquivo com token, carrega ele e retorna
                        $tokenJson = fread($tokenFile, 8192);
                        $oAuthTokenData = json_decode($tokenJson, true);
                        fclose($tokenFile);
                        return $oAuthTokenData;
                    } else {
                        // retorno "falso" força a emissão de novo token
                        return false;
                    }
                }
	),
	"https://api-parceiro.sicredi.com.br/sb" // URL do sandbox
);
```

- Sem cache de token

```
root@f660e935d737:/app# php vendor/bin/phpunit tests
Time: 00:00.553, Memory: 8.00 MB
OK (5 tests, 5 assertions)
```

- Com cache de token

```
root@f660e935d737:/app# php vendor/bin/phpunit tests
Time: 00:00.249, Memory: 8.00 MB
OK (5 tests, 5 assertions)
```

### 4. Registre um boleto

[](#4-registre-um-boleto)

```
    $fakerB = \Faker\Factory::create();
	$fakerB->addProvider(new \Faker\Provider\pt_BR\Person($fakerB));

	$fakerP = \Faker\Factory::create();
	$fakerP->addProvider(new \Faker\Provider\pt_BR\Person($fakerP));

	$beneficiario = (new Beneficiario())
		->setTipoPessoa(Pessoa::TIPO_PESSOA_FISICA)
		->setDocumento($fakerB->cpf(false))
		->setNome($fakerB->name)
		->setLogradouro($fakerB->streetName)
		->setNumeroEndereco($fakerB->numberBetween(10, 999))
		->setCidade($fakerB->city)
		->setUf($fakerB->stateAbbr())
		->setCep($fakerB->numerify("########"));

	$pagador = (new Pagador())
		->setTipoPessoa(Pessoa::TIPO_PESSOA_FISICA)
		->setDocumento($fakerP->cpf(false))
		->setNome($fakerP->name)
		->setLogradouro($fakerP->streetName)
		->setNumeroEndereco($fakerP->numberBetween(10, 999))
		->setCidade($fakerP->city)
		->setUf($fakerP->stateAbbr())
		->setCep($fakerP->numerify("########"));

	$dataVencimento = (new DateTime())->modify("+30 day");
	$boleto = new Boleto();
	$boleto->setPagador($pagador);
	$boleto->setBeneficiario($beneficiario);
	$boleto->setSeuNumero("TESTE");
	$boleto->setValor(500.00);
	$boleto->setDataVencimento($dataVencimento->format("Y-m-d"));
	$boleto->setDesconto1((clone $dataVencimento)->modify('-20 days')->format("Y-m-d"), 200.00);
	$boleto->setDesconto2((clone $dataVencimento)->modify('-10 days')->format("Y-m-d"), 150.00);
	$boleto->setDesconto3((clone $dataVencimento)->modify('-5 days')->format("Y-m-d"), 100.00);
	$boleto->setJuros(1);
	$boleto->setMulta(12.00);
	$boleto->addMensagem('APÓS O VENCIMENTO, COBRAR MULTA DE ' . $boleto->getMulta() . '%');
	$boleto->addMensagem('APÓS O VENCIMENTO, COBRAR JUROS DE ' . $boleto->getJuros() . '% AO MÊS');
	$boleto->setTipoCobranca('HIBRIDO');
	$boletoResponse = $banco->createBoleto($boleto);
	// OU defina false no segundo parametro para não aplicar a pré validação dos dados

	//Pode-se aplicar a pŕe validação localmente de forma manual, para executar um job de envio em massa mais tarde
	$boleto->validarBoleto();
	$job[] = $boleto;

/*
	exemplo de body esperado $boletoResponse:
	{
		TODOS OS TIPOS DE COBRANÇA CONTÉM
			"linhaDigitavel": "74891125110061420512803153351030188640000009990",
			"codigoBarras": "74891886400000099901125100614205120315335103",
			"cooperativa": "0512",
			"posto": "03",
			"nossoNumero": "251006142"
		IF (tipoCobranca:HIBRIDO)
			"txid": "f69d2a0076fb4ea2bddd7babd1200525",
			"qrCode": "00020101021226930014br.gov.bcb.pix2571pix-qrcodeh.sicredi.com.br/qr/v2/cobv/6946459e4b6e4c19ab5c9689fe0df30a520400005303986540599.905802BR5921OLIVEIRA MULTI MARCAS6008BRASILIA62070503***6304E5E1",

		IF (tipoCobranca:SPLIT)
			"splitBoleto": {
				"repasseAutomaticoSplit": "SIM",
				"tipoValorRateio": "PERCENTUAL",
				"regraRateio": "VALOR_COBRADO",
				"destinatarios":
					[
						{
							"codigoBanco": "237",
							"codigoAgencia": "0434",
							"numeroContaCorrente": "2323232323",
							"numeroCpfCnpj": "02738306004",
							"nomeDestinatario": "DECIO OLIVEIRA",
							"parcelaRateio": "1",
							"valorPercentualRateio": 24.22,
							"floatSplit": 20
						}
					]
			}
	}

*/
```

#### Conte também com outros métodos

[](#conte-também-com-outros-métodos)

```
	$findedBoleto = $banco->getBoleto($boletoResponse['nossoNumero']); //'busca Boleto pelo nossoNumero'

	$findedBoletoPdfTempFilepath = $banco->getBoletoPdf($boletoResponse['linhaDigitavel']);

	$findedBoletoEncodedPdf = $banco->getBoletoEncoded($boletoResponse['linhaDigitavel']);

	$updatedBoleto = $banco->updateVencimento($boletoResponse['nossoNumero'], $dataVencimento->modify("+5 days")->format("Y-m-d"));

	$boletosPagos = $banco->listBoletosPagosByDay($dataVencimento->modify("+5 days"));

	$banco->baixaBoleto($boletoResponse['nossoNumero']);
```

### 5. Go to production

[](#5-go-to-production)

Mude as credencias para o ambiente de produção e pronto sua aplicação estará integrada ao banco.

### Documentação

[](#documentação)

[Segue link da documentação em pdf](https://drive.google.com/file/d/1J5GTvKWM_Mjs2mn_3DW3gM-wn1yvjS1j/view?usp=sharing)Exemplos:

- Manipulação de cobranças [HandleBoleto.php](example/HandleBoleto.php)
- Contrato de webwook [ContratarWebhook.php](example/ContratarWebhook.php)

fornece o básico para a utilização das classes.

Os parâmetros para a execução do exemplo devem ser salvos no arquivo com o nome `.env`, exemplos de configuração encontram-se no arquivo `.env.example`

Facilitou sua vida?
-------------------

[](#facilitou-sua-vida)

Se o código do projeto ajudou você em uma tarefa complexa, considere fazer uma doação ao autor pelo PIX abaixo.

Chave Pix: d8ea7c17-2f20-492f-b45b-1913bf9d5819

> **ATENÇÃO:**
>
> Todos os dados verificáveis precisam ser válidos Utilize sempre CPF/CNPJ, CEP, Cidade e Estado válidos Para evitar importunar estranhos utilize seus próprios dados ou de alguma pessoa que esteja ciente, pois as cobranças sempre são cadastradas no sistema quente do banco central e aparecerão no DDA dos sacados. Os dados de exemplo NÃO SÃO VÁLIDOS e se não forem alterados o script de exemplo não funcionará.

Usando o atributo `others`
--------------------------

[](#usando-o-atributo-others)

O atributo `others` permite adicionar dados adicionais à sua requisição, que não estão definidos como propriedades da classe. Isso é útil para enviar informações personalizadas ou campos específicos que não estão mapeados na estrutura padrão da API.

**Exemplo:**

```
use crtlmota\BancoSicrediConnector\Boleto;

// Crie um objeto Serializable
$serializable = new Boleto();

// Adicione dados adicionais ao atributo `others`
$serializable->addOthers('custom_field_1', 'valor_do_campo_1');
$serializable->addOthers('custom_field_2', 'valor_do_campo_2');

// Converta o objeto para JSON
$json = json_encode($serializable);

// Exemplo de saída
{
    ... outros dados
    "valor": 100,
    "dataEmissao": '2024-07-01',
    "dataVencimento": '2024-07-01'
    "custom_field_1": "valor_do_campo_1",
    "custom_field_2": "valor_do_campo_2"
}
```

Licença
-------

[](#licença)

Todo o código deste projeto está licensiado sob a GNU Lesser General Public License versão 3.

Pode ser utilizado inalterado em qualquer projeto fechado ou open source, alterações efetuadas precisam ser fornecidas em código aberto aos usuários do sistema.

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance33

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

674d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7ba07ba7c124a5e50e1a26f590e628e4878d729d926b23e04fb3a7499d209f58?d=identicon)[Ctrl-Mota](/maintainers/Ctrl-Mota)

---

Top Contributors

[![Ctrl-Mota](https://avatars.githubusercontent.com/u/55929969?v=4)](https://github.com/Ctrl-Mota "Ctrl-Mota (8 commits)")

---

Tags

Banco Sicredi Boletos Cobrança webhook

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/crtlmota-banco-sicredi-connector/health.svg)

```
[![Health](https://phpackages.com/badges/crtlmota-banco-sicredi-connector/health.svg)](https://phpackages.com/packages/crtlmota-banco-sicredi-connector)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
