Sicredi - Exemplos Básicos

Este guia mostra como usar a pypix-api com o Sicredi para realizar operações PIX.

Configuração Inicial

Para usar a API do Sicredi, você precisa:

  1. Ter conta em cooperativa do Sistema Sicredi

  2. Solicitar acesso à API PIX no seu gerente/canal de desenvolvedores

  3. Obter as credenciais de API (client_id e client_secret)

  4. Baixar o certificado digital (.pfx/.p12)

Note

O Sicredi difere do BB e do Sicoob em dois pontos:

  • Autenticação HTTP Basic: o token é solicitado com Authorization: Basic base64(client_id:client_secret), então o client_secret é obrigatório no OAuth2Client.

  • Versionamento por recurso: a BASE_URL aponta para a raiz /api e a versão de cada endpoint (v1/v2/v3) é resolvida internamente pela SicrediPixAPI.

Configuração Básica

import os
from pypix_api.auth.oauth2 import OAuth2Client
from pypix_api.banks.sicredi import SicrediPixAPI

# Configure as credenciais (client_secret é obrigatório no Sicredi)
oauth_client = OAuth2Client(
    token_url=SicrediPixAPI.TOKEN_URL,
    client_id=os.getenv('SICREDI_CLIENT_ID'),
    client_secret=os.getenv('SICREDI_CLIENT_SECRET'),
    cert_pfx=os.getenv('SICREDI_CERT_PFX'),
    pwd_pfx=os.getenv('SICREDI_CERT_PASSWORD'),
)

# Crie a instância da API
api = SicrediPixAPI(oauth=oauth_client)

Note

Para testar no ambiente de homologação do Sicredi, use token_url=SicrediPixAPI.SANDBOX_TOKEN_URL (que aponta para a raiz de homologação) mantendo o certificado — o fluxo real de homologação usa mTLS, e não o sandbox_mode (token fixo) da biblioteca.

Criando uma Cobrança Simples

import uuid

def criar_cobranca_sicredi():
    """Cria uma cobrança PIX imediata no Sicredi."""

    txid = str(uuid.uuid4())

    cobranca = {
        'calendario': {
            'expiracao': 3600
        },
        'devedor': {
            'cpf': '12345678909',
            'nome': 'Francisco da Silva'
        },
        'valor': {
            'original': '37.00'
        },
        'chave': '5f84a4c5-c5cb-4599-9f13-7eb4d419dacc',
        'solicitacaoPagador': 'Pagamento de serviços.'
    }

    resultado = api.criar_cob(txid, cobranca)
    print(f"✅ Cobrança criada: {resultado['txid']}")
    return resultado

Exemplo Completo

#!/usr/bin/env python3
"""Exemplo completo integração Sicredi."""

import os
import uuid
from pypix_api.auth.oauth2 import OAuth2Client
from pypix_api.banks.sicredi import SicrediPixAPI

def main():
    """Fluxo completo com Sicredi."""

    oauth_client = OAuth2Client(
        token_url=SicrediPixAPI.TOKEN_URL,
        client_id=os.getenv('SICREDI_CLIENT_ID'),
        client_secret=os.getenv('SICREDI_CLIENT_SECRET'),
        cert_pfx=os.getenv('SICREDI_CERT_PFX'),
        pwd_pfx=os.getenv('SICREDI_CERT_PASSWORD'),
    )

    api = SicrediPixAPI(oauth=oauth_client)

    txid = str(uuid.uuid4())
    cobranca = {
        'calendario': {'expiracao': 3600},
        'devedor': {
            'cpf': '12345678909',
            'nome': 'Cooperado Teste'
        },
        'valor': {'original': '75.50'},
        'chave': '5f84a4c5-c5cb-4599-9f13-7eb4d419dacc',
        'solicitacaoPagador': 'Teste API Sicredi'
    }

    resultado = api.criar_cob(txid, cobranca)
    print(f"✅ Cobrança criada: {resultado['txid']}")

if __name__ == '__main__':
    main()

Variáveis de Ambiente

# Sicredi - Configuração
SICREDI_CLIENT_ID=your_sicredi_client_id
SICREDI_CLIENT_SECRET=your_sicredi_client_secret
SICREDI_CERT_PFX=/path/to/sicredi/certificate.pfx
SICREDI_CERT_PASSWORD=your_sicredi_cert_password