pypix_api package
pypix-api: Biblioteca Python para integracao com APIs bancarias do PIX.
Esta biblioteca facilita a integracao com APIs de bancos brasileiros, fornecendo uma interface simples e consistente para operacoes PIX.
- class pypix_api.BBPixAPI(oauth, sandbox_mode=False)[source]
Bases:
PixBBMethods,BankPixAPIBaseImplementação da API PIX do Banco do Brasil.
- Parameters:
oauth (
OAuth2Client) – Instância configurada de OAuth2Client para autenticaçãosandbox_mode (
bool) – Se True, usa ambiente de sandbox (default: False)
- BASE_URL
URL da API de produção
- SANDBOX_BASE_URL
URL da API de sandbox
- TOKEN_URL
URL para obtenção de token OAuth2
- SCOPES
Scopes necessários para autenticação
- BASE_URL: str | None = 'https://api-pix.bb.com.br/pix/v2'
- SANDBOX_BASE_URL = 'https://api-pix.hm.bb.com.br/pix/v2'
- TOKEN_URL: str | None = 'https://oauth.bb.com.br/oauth/token'
- class pypix_api.OAuth2Client(token_url, client_id=None, cert=None, pvk=None, cert_pfx=None, pwd_pfx=None, sandbox_mode=False)[source]
Bases:
objectCliente OAuth2 para autenticação com a API
- __init__(token_url, client_id=None, cert=None, pvk=None, cert_pfx=None, pwd_pfx=None, sandbox_mode=False)[source]
Inicializa o cliente OAuth2
- get_token(scope=None)[source]
Obtém ou renova o token de acesso para o escopo especificado
- Parameters:
scope (
str|None) – Escopo(s) necessário(s) para a API. Exemplos: - Cobrança por Boleto: “boletos_inclusao boletos_consulta boletos_alteracao webhooks_alteracao webhooks_consulta webhooks_inclusao” - Conta Corrente: “cco_consulta cco_transferencias openid” - Recebimento no PIX: “cob.write cob.read cobv.write cobv.read lotecobv.write lotecobv.read pix.write pix.read webhook.read webhook.write payloadlocation.write payloadlocation.read”- Returns:
Token de acesso válido para o escopo solicitado
- Return type:
- class pypix_api.PixCobranca(txid, valor, status, chave)[source]
Bases:
object- __init__(txid, valor, status, chave)
- class pypix_api.SicoobPixAPI(oauth, sandbox_mode=False)[source]
Bases:
BankPixAPIBaseImplementação da API PIX do Sicoob.
- Parameters:
oauth (
OAuth2Client) – Instância configurada de OAuth2Client para autenticaçãosandbox_mode (
bool) – Se True, usa ambiente de sandbox (default: False)
- BASE_URL
URL da API de produção
- SANDBOX_BASE_URL
URL da API de sandbox
- TOKEN_URL
URL para obtenção de token OAuth2
- SCOPES
Scopes necessários para autenticação
- BASE_URL: str | None = 'https://api.sicoob.com.br/pix/api/v2'
- SANDBOX_BASE_URL = 'https://sandbox.sicoob.com.br/sicoob/sandbox/pix/api/v2'
- TOKEN_URL: str | None = 'https://auth.sicoob.com.br/auth/realms/cooperado/protocol/openid-connect/token'
- exception pypix_api.APIError(message, status_code=None, response_body=None, **kwargs)[source]
Bases:
PIXErrorRaised when API call fails.
- exception pypix_api.AuthenticationError(message='Authentication failed', **kwargs)[source]
Bases:
PIXErrorRaised when authentication fails.
- class pypix_api.MetricsCollector[source]
Bases:
objectColetor central de metricas.
- exception pypix_api.PIXError(message, error_code=None, details=None, cause=None)[source]
Bases:
ExceptionBase exception class for pypix-api errors.
- class pypix_api.PIXLogger(name='pypix_api')[source]
Bases:
objectLogger principal para operacoes PIX.
- exception pypix_api.ValidationError(message='Validation failed', field=None, **kwargs)[source]
Bases:
PIXErrorRaised when data validation fails.
- pypix_api.setup_logging(level='INFO', log_file=None, structured=False)[source]
Configure global logging for pypix-api.
Subpackages
- pypix_api.scopes package
BBScopesBBScopes.BANK_CODEBBScopes.BANK_CODESBBScopes.BANK_NAMEBBScopes.BOLETOBBScopes.COBBBScopes.COBRBBScopes.COBVBBScopes.CONTA_CORRENTEBBScopes.LOCATIONBBScopes.LOTECOBVBBScopes.PIXBBScopes.RECBBScopes.SOLICRECBBScopes.WEBHOOKBBScopes.WEBHOOK_COBRBBScopes.WEBHOOK_RECBBScopes.get_pix_scopes()
ScopeRegistrySicoobScopesSicoobScopes.BANK_CODESicoobScopes.BANK_CODESSicoobScopes.BANK_NAMESicoobScopes.BOLETOSicoobScopes.BOLETO_BASICSicoobScopes.BOLETO_WEBHOOKSicoobScopes.CONTA_CORRENTESicoobScopes.PIXSicoobScopes.PIX_BASICSicoobScopes.PIX_COBSicoobScopes.PIX_COBVSicoobScopes.PIX_COMPLETOSicoobScopes.PIX_LOTE_COBVSicoobScopes.PIX_PAYLOADSicoobScopes.PIX_WEBHOOKSicoobScopes.SCOPE_COBV_READSicoobScopes.SCOPE_COBV_WRITESicoobScopes.SCOPE_COB_READSicoobScopes.SCOPE_COB_WRITESicoobScopes.SCOPE_LOTECOBV_READSicoobScopes.SCOPE_LOTECOBV_WRITESicoobScopes.SCOPE_PAYLOADLOCATION_READSicoobScopes.SCOPE_PAYLOADLOCATION_WRITESicoobScopes.SCOPE_PIX_READSicoobScopes.SCOPE_PIX_WRITESicoobScopes.SCOPE_WEBHOOK_READSicoobScopes.SCOPE_WEBHOOK_WRITESicoobScopes.TODOS_ESCOPOSSicoobScopes.combine_scopes()SicoobScopes.get_pix_scopes()SicoobScopes.get_scope_group()SicoobScopes.list_available_groups()
get_bank_scopes()get_pix_scopes()- Submodules
- pypix_api.scopes.base module
- pypix_api.scopes.bb module
BBScopesBBScopes.BANK_NAMEBBScopes.BANK_CODEBBScopes.BANK_CODESBBScopes.PIXBBScopes.COBBBScopes.COBVBBScopes.COBRBBScopes.LOTECOBVBBScopes.RECBBScopes.SOLICRECBBScopes.LOCATIONBBScopes.WEBHOOKBBScopes.WEBHOOK_COBRBBScopes.WEBHOOK_RECBBScopes.CONTA_CORRENTEBBScopes.BOLETOBBScopes.get_pix_scopes()
- pypix_api.scopes.registry module
- pypix_api.scopes.sicoob module
SicoobScopesSicoobScopes.BANK_NAMESicoobScopes.BANK_CODESicoobScopes.BANK_CODESSicoobScopes.SCOPE_COB_WRITESicoobScopes.SCOPE_COB_READSicoobScopes.SCOPE_COBV_WRITESicoobScopes.SCOPE_COBV_READSicoobScopes.SCOPE_LOTECOBV_WRITESicoobScopes.SCOPE_LOTECOBV_READSicoobScopes.SCOPE_PIX_WRITESicoobScopes.SCOPE_PIX_READSicoobScopes.SCOPE_WEBHOOK_READSicoobScopes.SCOPE_WEBHOOK_WRITESicoobScopes.SCOPE_PAYLOADLOCATION_WRITESicoobScopes.SCOPE_PAYLOADLOCATION_READSicoobScopes.PIXSicoobScopes.PIX_COBSicoobScopes.PIX_COBVSicoobScopes.PIX_LOTE_COBVSicoobScopes.PIX_BASICSicoobScopes.PIX_WEBHOOKSicoobScopes.PIX_PAYLOADSicoobScopes.BOLETOSicoobScopes.BOLETO_BASICSicoobScopes.BOLETO_WEBHOOKSicoobScopes.CONTA_CORRENTESicoobScopes.PIX_COMPLETOSicoobScopes.TODOS_ESCOPOSSicoobScopes.get_pix_scopes()SicoobScopes.get_scope_group()SicoobScopes.list_available_groups()SicoobScopes.combine_scopes()
Submodules
pypix_api.error_handling module
Sistema avancado de tratamento de erros para pypix-api.
Este modulo fornece classes de erro especializadas, context managers para tratamento robusto de erros e utilitarios para debugging avancado.
- exception pypix_api.error_handling.APIError(message, status_code=None, response_body=None, **kwargs)[source]
Bases:
PIXErrorRaised when API call fails.
- exception pypix_api.error_handling.AuthenticationError(message='Authentication failed', **kwargs)[source]
Bases:
PIXErrorRaised when authentication fails.
- exception pypix_api.error_handling.AuthorizationError(message='Authorization failed', **kwargs)[source]
Bases:
PIXErrorRaised when authorization/permission fails.
- exception pypix_api.error_handling.BankSpecificError(message, bank_code=None, bank_error_code=None, **kwargs)[source]
Bases:
PIXErrorRaised for bank-specific errors.
- exception pypix_api.error_handling.CertificateError(message='Certificate error', **kwargs)[source]
Bases:
PIXErrorRaised when certificate handling fails.
- exception pypix_api.error_handling.ConfigurationError(message='Configuration error', **kwargs)[source]
Bases:
PIXErrorRaised when configuration is invalid.
- class pypix_api.error_handling.ErrorContext(operation, context=None, handler=None, reraise=True)[source]
Bases:
objectContext manager for robust error handling.
- class pypix_api.error_handling.ErrorHandler(logger=None)[source]
Bases:
objectAdvanced error handler with logging and metrics integration.
- class pypix_api.error_handling.ErrorRecovery[source]
Bases:
objectUtilities for error recovery and retry logic.
- static should_retry(error, max_retries=3)[source]
Determine if an operation should be retried.
- Return type:
- exception pypix_api.error_handling.NetworkError(message='Network communication failed', **kwargs)[source]
Bases:
PIXErrorRaised when network communication fails.
- exception pypix_api.error_handling.PIXError(message, error_code=None, details=None, cause=None)[source]
Bases:
ExceptionBase exception class for pypix-api errors.
- exception pypix_api.error_handling.PIXTransactionError(message, txid=None, operation=None, **kwargs)[source]
Bases:
PIXErrorRaised when PIX transaction fails.
- exception pypix_api.error_handling.RateLimitError(message='Rate limit exceeded', retry_after=None, **kwargs)[source]
Bases:
PIXErrorRaised when API rate limit is exceeded.
- exception pypix_api.error_handling.ValidationError(message='Validation failed', field=None, **kwargs)[source]
Bases:
PIXErrorRaised when data validation fails.
pypix_api.logging module
Sistema de logging estruturado para pypix-api.
Este modulo fornece funcionalidades de logging estruturado com suporte a diferentes formatos de saida, contexto e metricas de performance.
- class pypix_api.logging.APICallLogger(logger=None)[source]
Bases:
objectLogger especializado para chamadas de API.
- class pypix_api.logging.PIXLogger(name='pypix_api')[source]
Bases:
objectLogger principal para operacoes PIX.
- class pypix_api.logging.StructuredFormatter(include_trace=True)[source]
Bases:
FormatterFormatador para logs estruturados em JSON.
- pypix_api.logging.log_authentication(client_id, scope, success, **kwargs)[source]
Log authentication attempt.
- Return type:
- pypix_api.logging.log_bank_operation(operation, bank, **kwargs)[source]
Log bank operation with context.
- Return type:
- pypix_api.logging.log_performance(logger=None, threshold=1.0)[source]
Decorator para medir e logar performance de funcoes.
- pypix_api.logging.log_pix_transaction(txid, operation_type, amount=None, **kwargs)[source]
Log PIX transaction with context.
- Return type:
pypix_api.metrics module
Sistema de metricas e telemetria para pypix-api.
Este modulo coleta e reporta metricas de uso da biblioteca para monitoramento e otimizacao de performance.
- class pypix_api.metrics.APICallMetric(method, endpoint, status_code, response_time, timestamp, bank, error=None)[source]
Bases:
objectMetrica para chamadas de API.
- __init__(method, endpoint, status_code, response_time, timestamp, bank, error=None)
- class pypix_api.metrics.MetricEntry(name, value, timestamp, tags=<factory>, unit='count')[source]
Bases:
objectEntrada de metrica individual.
- __init__(name, value, timestamp, tags=<factory>, unit='count')
- class pypix_api.metrics.MetricsCollector[source]
Bases:
objectColetor central de metricas.
- class pypix_api.metrics.PerformanceTracker(operation_name, tags=None)[source]
Bases:
objectContext manager para tracking de performance.
- pypix_api.metrics.export_metrics(file_path=None)[source]
Export metrics to file or console.
- Return type:
- pypix_api.metrics.timed_function(metric_name=None, tags=None)[source]
Decorator to automatically time function execution.
- pypix_api.metrics.track_api_call(method, endpoint)[source]
Track API call performance.
- Return type:
pypix_api.observability module
Modulo de observabilidade integrado para pypix-api.
Este modulo combina logging, metricas e tratamento de erros em uma interface unificada para monitoramento completo da biblioteca.
- class pypix_api.observability.HealthCheck[source]
Bases:
objectHealth check utilities for monitoring system status.
- class pypix_api.observability.ObservabilityConfig[source]
Bases:
objectConfiguracao centralizada de observabilidade.
- class pypix_api.observability.ObservabilityMixin(*args, **kwargs)[source]
Bases:
objectMixin para adicionar observabilidade a classes da API.
- pypix_api.observability.configure_observability(config=None)[source]
Configure global observability settings.
- pypix_api.observability.create_observability_report()[source]
Create comprehensive observability report.