Scopes

OAuth2 Scopes Management

Base Scopes

Classe base para definição de escopos bancários.

class pypix_api.scopes.base.ScopeGroup(name, scopes, description)[source]

Bases: object

Grupo de escopos para uma funcionalidade específica.

name: str
scopes: list[str]
description: str
as_string()[source]

Retorna os escopos como string separada por espaços.

Return type:

str

__contains__(scope)[source]

Verifica se um escopo específico está no grupo.

Return type:

bool

__add__(other)[source]

Combina dois grupos de escopos.

Return type:

ScopeGroup

__init__(name, scopes, description)
class pypix_api.scopes.base.BankScopesBase[source]

Bases: ABC

Classe base para definição de escopos bancários.

BANK_NAME: str = ''
BANK_CODE: str = ''
BANK_CODES: list[str] = []
abstractmethod classmethod get_pix_scopes()[source]

Retorna os escopos PIX do banco.

Return type:

ScopeGroup

classmethod get_scope_group(name)[source]

Obtém um grupo de escopos pelo nome.

Return type:

ScopeGroup

classmethod list_available_groups()[source]

Lista todos os grupos de escopos disponíveis.

Return type:

list[str]

classmethod combine_scopes(*groups)[source]

Combina múltiplos grupos de escopos em uma string.

Return type:

str

classmethod get_bank_info()[source]

Retorna informações do banco.

Return type:

dict[str, Any]

Banco do Brasil Scopes

Definição de escopos para a API do Banco do Brasil.

class pypix_api.scopes.bb.BBScopes[source]

Bases: BankScopesBase

Definição de escopos para a API do Banco do Brasil.

BANK_NAME: str = 'Banco do Brasil'
BANK_CODE: str = '001'
BANK_CODES: list[str] = ['001', 'bb', 'banco_do_brasil']
PIX = ScopeGroup(name='pix', scopes=['pix.read', 'pix.write'], description='Funcionalidades do PIX do Banco do Brasil')
COB = ScopeGroup(name='cob', scopes=['cob.read', 'cob.write'], description='Cobranças imediatas do PIX')
COBV = ScopeGroup(name='cobv', scopes=['cobv.read', 'cobv.write'], description='Cobranças com vencimento do PIX')
COBR = ScopeGroup(name='cobr', scopes=['cobr.read', 'cobr.write'], description='Cobranças recorrentes do PIX')
LOTECOBV = ScopeGroup(name='lotecobv', scopes=['lotecobv.read', 'lotecobv.write'], description='Lote de cobranças com vencimento do PIX')
REC = ScopeGroup(name='rec', scopes=['rec.read', 'rec.write'], description='Recorrências do PIX')
SOLICREC = ScopeGroup(name='solicrec', scopes=['solicrec.read', 'solicrec.write'], description='Solicitações de recorrência do PIX')
LOCATION = ScopeGroup(name='location', scopes=['payloadlocation.read', 'payloadlocation.write'], description='Locations de payload (QR Code) do PIX')
WEBHOOK = ScopeGroup(name='webhook', scopes=['webhook.read', 'webhook.write'], description='Webhooks do PIX')
WEBHOOK_COBR = ScopeGroup(name='webhook_cobr', scopes=['webhookcobr.read', 'webhookcobr.write'], description='Webhooks de cobranças recorrentes do PIX')
WEBHOOK_REC = ScopeGroup(name='webhook_rec', scopes=['webhookrec.read', 'webhookrec.write'], description='Webhooks de recorrências do PIX')
CONTA_CORRENTE = ScopeGroup(name='conta_corrente', scopes=['cco_extrato', 'cco_consulta'], description='Funcionalidades de conta corrente')
BOLETO = ScopeGroup(name='boleto', scopes=['boletos_inclusao', 'boletos_consulta', 'boletos_alteracao', 'webhooks_alteracao', 'webhooks_consulta', 'webhooks_inclusao'], description='Funcionalidades de boleto bancário')
classmethod get_pix_scopes()[source]

Retorna os escopos PIX do Banco do Brasil.

Return type:

ScopeGroup

Sicoob Scopes

Definição de escopos para a API do Sicoob.

Este módulo contém as definições de escopos necessários para diferentes funcionalidades da API do Sicoob, organizados por categoria.

class pypix_api.scopes.sicoob.SicoobScopes[source]

Bases: BankScopesBase

Definição de escopos para a API do Sicoob.

BANK_NAME: str = 'Sicoob'
BANK_CODE: str = '756'
BANK_CODES: list[str] = ['756', 'sicoob']
SCOPE_COB_WRITE = 'cob.write'
SCOPE_COB_READ = 'cob.read'
SCOPE_COBV_WRITE = 'cobv.write'
SCOPE_COBV_READ = 'cobv.read'
SCOPE_LOTECOBV_WRITE = 'lotecobv.write'
SCOPE_LOTECOBV_READ = 'lotecobv.read'
SCOPE_PIX_WRITE = 'pix.write'
SCOPE_PIX_READ = 'pix.read'
SCOPE_WEBHOOK_READ = 'webhook.read'
SCOPE_WEBHOOK_WRITE = 'webhook.write'
SCOPE_PAYLOADLOCATION_WRITE = 'payloadlocation.write'
SCOPE_PAYLOADLOCATION_READ = 'payloadlocation.read'
PIX = ScopeGroup(name='pix', scopes=['cob.write', 'cob.read', 'cobv.write', 'cobv.read', 'lotecobv.write', 'lotecobv.read', 'pix.write', 'pix.read', 'webhook.read', 'webhook.write', 'payloadlocation.write', 'payloadlocation.read'], description='Funcionalidades completas do PIX incluindo cobranças, webhooks e payload location')
PIX_COB = ScopeGroup(name='pix_cob', scopes=['cob.write', 'cob.read'], description='Cobranças imediatas PIX')
PIX_COBV = ScopeGroup(name='pix_cobv', scopes=['cobv.write', 'cobv.read'], description='Cobranças com vencimento PIX')
PIX_LOTE_COBV = ScopeGroup(name='pix_lote_cobv', scopes=['lotecobv.write', 'lotecobv.read'], description='Lote de cobranças com vencimento PIX')
PIX_BASIC = ScopeGroup(name='pix_basic', scopes=['pix.write', 'pix.read'], description='Operações básicas PIX')
PIX_WEBHOOK = ScopeGroup(name='pix_webhook', scopes=['webhook.read', 'webhook.write'], description='Webhooks PIX')
PIX_PAYLOAD = ScopeGroup(name='pix_payload', scopes=['payloadlocation.write', 'payloadlocation.read'], description='Payload location PIX')
BOLETO = ScopeGroup(name='boleto', scopes=['boletos_inclusao', 'boletos_consulta', 'boletos_alteracao', 'webhooks_alteracao', 'webhooks_consulta', 'webhooks_inclusao'], description='Funcionalidades completas de boleto bancário')
BOLETO_BASIC = ScopeGroup(name='boleto_basic', scopes=['boletos_inclusao', 'boletos_consulta', 'boletos_alteracao'], description='Operações básicas de boleto')
BOLETO_WEBHOOK = ScopeGroup(name='boleto_webhook', scopes=['webhooks_alteracao', 'webhooks_consulta', 'webhooks_inclusao'], description='Webhooks de boleto')
CONTA_CORRENTE = ScopeGroup(name='conta_corrente', scopes=['cco_consulta', 'cco_transferencias', 'openid'], description='Funcionalidades de conta corrente')
PIX_COMPLETO = ScopeGroup(name='pix_completo', scopes=['cob.write', 'cob.read', 'cobv.write', 'cobv.read', 'lotecobv.write', 'lotecobv.read', 'pix.write', 'pix.read', 'webhook.read', 'webhook.write', 'payloadlocation.write', 'payloadlocation.read'], description='Todas as funcionalidades PIX')
TODOS_ESCOPOS = ScopeGroup(name='todos', scopes=['cob.write', 'cob.read', 'cobv.write', 'cobv.read', 'lotecobv.write', 'lotecobv.read', 'pix.write', 'pix.read', 'webhook.read', 'webhook.write', 'payloadlocation.write', 'payloadlocation.read', 'boletos_inclusao', 'boletos_consulta', 'boletos_alteracao', 'webhooks_alteracao', 'webhooks_consulta', 'webhooks_inclusao', 'cco_consulta', 'cco_transferencias', 'openid'], description='Todos os escopos disponíveis')
classmethod get_pix_scopes()[source]

Retorna os escopos PIX do Sicoob.

Return type:

ScopeGroup

classmethod get_scope_group(name)[source]

Obtém um grupo de escopos pelo nome.

Parameters:

name (str) – Nome do grupo de escopos

Returns:

Grupo de escopos correspondente

Return type:

ScopeGroup

Raises:

AttributeError – Se o grupo não existir

classmethod list_available_groups()[source]

Lista todos os grupos de escopos disponíveis.

Return type:

list[str]

classmethod combine_scopes(*groups)[source]

Combina múltiplos grupos de escopos em uma string.

Parameters:

*groups (ScopeGroup) – Grupos de escopos a serem combinados

Returns:

Escopos combinados separados por espaço

Return type:

str

Registry System

Registry para gerenciar escopos de diferentes bancos.

class pypix_api.scopes.registry.ScopeRegistry[source]

Bases: object

Registry centralizado para escopos de bancos.

classmethod register(bank_code, scope_class)[source]

Registra uma classe de escopos para um código de banco.

Parameters:
  • bank_code (str) – Código do banco (ex: ‘001’, ‘756’, ‘bb’, ‘sicoob’)

  • scope_class (type[BankScopesBase]) – Classe que define os escopos do banco

Return type:

None

classmethod get_scopes(bank_code)[source]

Obtém a classe de escopos para um código de banco.

Parameters:

bank_code (str) – Código do banco

Returns:

Classe de escopos do banco

Return type:

Type[BankScopesBase]

Raises:

ValueError – Se o banco não estiver registrado

classmethod get_pix_scopes(bank_code)[source]

Obtém os escopos PIX para um código de banco.

Parameters:

bank_code (str) – Código do banco

Returns:

Escopos PIX do banco

Return type:

ScopeGroup

classmethod get_scope_group(bank_code, group_name)[source]

Obtém um grupo específico de escopos para um banco.

Parameters:
  • bank_code (str) – Código do banco

  • group_name (str) – Nome do grupo de escopos

Returns:

Grupo de escopos solicitado

Return type:

ScopeGroup

classmethod list_banks()[source]

Lista todos os bancos registrados.

Return type:

list[str]

classmethod list_scope_groups(bank_code)[source]

Lista todos os grupos de escopos disponíveis para um banco.

Parameters:

bank_code (str) – Código do banco

Returns:

Lista de nomes dos grupos de escopos

Return type:

List[str]

classmethod combine_scopes(bank_code, *group_names)[source]

Combina múltiplos grupos de escopos de um banco.

Parameters:
  • bank_code (str) – Código do banco

  • *group_names (str) – Nomes dos grupos a serem combinados

Returns:

Escopos combinados separados por espaço

Return type:

str

pypix_api.scopes.registry.get_bank_scopes(bank_code)[source]

Função de conveniência para obter escopos de um banco.

Return type:

type[BankScopesBase]

pypix_api.scopes.registry.get_pix_scopes(bank_code)[source]

Função de conveniência para obter escopos PIX como string.

Return type:

str