Authentication

OAuth2 Client

class pypix_api.auth.oauth2.OAuth2Client(token_url, client_id=None, cert=None, pvk=None, cert_pfx=None, pwd_pfx=None, sandbox_mode=False, client_secret=None, timeout=None, client_auth='basic')[source]

Bases: object

Cliente 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, client_secret=None, timeout=None, client_auth='basic')[source]

Inicializa o cliente OAuth2

Parameters:
  • token_url (str) – URL de autenticação OAuth2

  • client_id (str | None) – Client ID para autenticação OAuth2

  • cert (str | None) – Path para o certificado PEM (opcional)

  • pvk (str | None) – Path para a chave privada PEM (opcional)

  • cert_pfx (str | bytes | BinaryIO | None) – Path ou dados do certificado PFX (opcional)

  • pwd_pfx (str | None) – Senha do certificado PFX (opcional)

  • sandbox_mode (bool) – Se True, não requer certificado (default: False)

  • client_secret (str | None) – Client Secret para autenticação via HTTP Basic (opcional). Quando informado, o token é solicitado com o header Authorization: Basic base64(client_id:client_secret), como exigido por PSPs como o Sicredi. Quando omitido, mantém o fluxo padrão (client_id no corpo, autenticação de cliente via mTLS). Mantido como último parâmetro para preservar a ordem posicional histórica da assinatura.

  • timeout (float | tuple[float, float] | tuple[float, None] | None) – Tempo limite da requisição de token, no formato aceito pelo requests: um número ou a tupla (conexão, leitura). None usa DEFAULT_TIMEOUT. Para leitura sem limite, use (5.0, None).

  • client_auth (str) – Como o client_secret é apresentado ao PSP, quando informado. 'basic' (padrão) usa o header Authorization: Basic (Sicredi); 'body' envia client_id e client_secret no corpo do form, como exige o Banco Inter. Sem client_secret, não tem efeito.

Raises:

ValueError – Se client_auth não for 'basic' nem 'body'

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:

str

mTLS Authentication

pypix_api.auth.mtls.get_session_with_mtls(cert=None, pvk=None, cert_pfx=None, pwd_pfx=None, sandbox_mode=False)[source]
Return type:

Session