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:
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, client_secret=None, timeout=None, client_auth='basic')[source]
Inicializa o cliente OAuth2
- Parameters:
token_url (
str) – URL de autenticação OAuth2cert_pfx (
str|bytes|BinaryIO|None) – Path ou dados 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 headerAuthorization: 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 pelorequests: um número ou a tupla(conexão, leitura).NoneusaDEFAULT_TIMEOUT. Para leitura sem limite, use(5.0, None).client_auth (
str) – Como oclient_secreté apresentado ao PSP, quando informado.'basic'(padrão) usa o headerAuthorization: Basic(Sicredi);'body'enviaclient_ideclient_secretno corpo do form, como exige o Banco Inter. Semclient_secret, não tem efeito.
- Raises:
ValueError – Se
client_authnã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: