Utils
Identificadores
Geração de identificadores da API Pix que possuem regra de formação semântica, onde um valor aleatório passa na validação de formato do schema e mesmo assim é recusado pelo PSP. Veja Pix Automático (Recorrência) para o contexto de uso.
pypix_api.utils.identificadores
Geração de identificadores da API Pix que possuem regra de formação semântica.
O idRec do Pix Automático não é um identificador livre: além de ter 29
caracteres alfanuméricos, ele codifica no próprio valor a política de
retentativa, o ISPB do participante e a data de criação. Um valor aleatório
passa na validação de formato do schema (pattern: [a-zA-Z0-9]{29}) e mesmo
assim é recusado pelo PSP — daí a necessidade de um gerador.
- Exemplo de uso:
from pypix_api.models.enums import PoliticaRetentativa from pypix_api.utils.identificadores import gerar_id_rec
id_rec = gerar_id_rec(‘12345678’, PoliticaRetentativa.PERMITE_3R_7D) # ‘RR12345678’ + data + sequencial
- pypix_api.utils.identificadores.gerar_id_rec(ispb, politica_retentativa, data_criacao=None, sequencial=None)[source]
Gera um
idRecválido para criação de recorrência (Pix Automático).Monta o identificador conforme a regra de formação do schema
RecId:RAxxxxxxxxyyyyMMddkkkkkkkkkkk (29 caracteres, case sensitive) R fixo, recorrência criada dentro do Pix A 'R' permite retentativa pós-vencimento, 'N' não permite xxxxxxxx ISPB do participante (8 dígitos) yyyyMMdd data de criação da recorrência kkkkkkkkkkk sequencial alfanumérico (11 caracteres)
O segundo caractere é derivado de
politica_retentativa, garantindo que o identificador e o campopoliticaRetentativado corpo da recorrência não fiquem contraditórios — uma inconsistência que o schema não detecta.- Parameters:
ispb (
str) – ISPB do participante direto/indireto ou os 8 primeiros dígitos do CNPJ do prestador de serviço de iniciação. 8 dígitos em[0-9].politica_retentativa (
PoliticaRetentativa|str) – Política de retentativa da recorrência. Aceita um membro dePoliticaRetentativaou a string equivalente. Deve ser o mesmo valor enviado no corpo.data_criacao (
date|None) – Data de criação da recorrência. Padrão: data corrente.sequencial (
str|None) – Sequencial de 11 caracteres em[a-zA-Z0-9], único dentro da data de criação. Padrão: gerado aleatoriamente.
- Returns:
identificador de 29 caracteres.
- Return type:
- Raises:
ValueError – Se o ISPB não tiver 8 dígitos em
[0-9], se a política de retentativa for desconhecida ou se o sequencial informado não tiver 11 caracteres em[a-zA-Z0-9].
- Nota:
O sequencial gerado automaticamente é aleatório (62^11 combinações), o que torna a colisão dentro de um mesmo dia improvável, mas não impossível. Quando houver controle transacional do lado da aplicação, informe
sequencialexplicitamente.
Demais utilitários
As outras funções auxiliares estão integradas às classes principais:
Autenticação: Authentication
Utilitários específicos por banco: Banks
Gerenciamento de escopos: Scopes