Implementar a validação de boletos
Validar boletos.
Implementação da função is_valid_boleto:
- Diversidade de formatos: Boletos podem ter diferentes formatos e layouts, dependendo do banco emissor e do sistema utilizado.
- Informações essenciais: A função precisa criar um objeto boleto e validar a linha digitável, para isso serão necessárias informações relevantes como:
- Data do documento
- Data de vencimento
- Data de processamento
- Valor do documento
- Agencia cedente
- Conta cedente
- Convenio
- Nosso número
- Número do documento
A função deve:
- Validar: Verificar se a entrada é um boleto válido, utilizando os dígitos verificadores e a estrutura padrão.
- Considerar:
- Diversidade de formatos: A função deve ser capaz de lidar com diferentes formatos de boletos.
- Validação robusta: A validação deve ser completa e abranger todos os aspectos relevantes.
- Flexibilidade: A função deve ser flexível para atender a diferentes necessidades.
Exemplo de uso:
from brutils.boleto import Boleto, is_valid_boleto
boleto = Boleto(
data_documento = datetime.date(2000, 7, 4)
data_vencimento = datetime.date(2000, 7, 4)
data_processamento = datetime.date(2012, 7, 11)
valor_documento = 550
agencia_cedente = '1102'
conta_cedente = '9000150'
convenio = 7777777
nosso_numero = str(22832563 + i)
numero_documento = str(22832563 + i)
)
resultado = is_valid_boleto(boleto.linha_digitavel)
print(resultado)
# Output:
# True
Considerações adicionais:
- Biblioteca externa: Podemos considerar a utilização de uma biblioteca externa especializada em tratamento de boletos, como a
boleto3ou apyboleto. - Documentação: A documentação da função deve ser clara e completa, explicando todos os parâmetros e o formato da saída.
- Testes: É fundamental criar testes unitários abrangentes para garantir a qualidade da implementação.
Exemplos de utilização de boletos de vários bancos: https://github.com/Trust-Code/python-boleto/tree/master3/tests
Exemplo do banco banrisul: https://github.com/Trust-Code/python-boleto/blob/master3/tests/test_banco_banrisul.py#L14C13-L24C33
bora!
Issue 433 atribuida a renata-machado :rocket:" "Verifique o guia de contribuição para mais informações sobre como submeter sua Pull Request."
:warning: [PT-BR] Esta issue está inativa há 90 dias. Os assignees serão removidos em 7 dias caso não haja atualizações.
:warning: [EN] This issue has been inactive for 90 days. The assignees will be removed in 7 days if there are no updates.
Bora!
🇧🇷 Português ✅ Issue #433 atribuída a @morais90. Verifique o guia de contribuição para instruções sobre como submeter sua Pull Request.
🇬🇧 English ✅ Issue #433 assigned to @morais90. Check the contributing guide for instructions on submitting your Pull Request.
Sugestão, criar teste para um boleto e fazer o teste passar.
Boa noite pessoal! Vou deixar essa mensagem como info pois vou fechar essa issue pra gente pesquisar um pouco melhor a regra de negócio e evitar de criar algo que não esteja de acordo e pra que ninguém puxe essa issue até que a gente tenha tudo documentado certinho sobre a regra, beleza? Obrigado galera 🫶
¡Buenas @niltonpimentel02 !
A referência é a seguinte -> Documento da Febraban tem as especificações do boleto de arrecacação (Taxas munícipais, luz, água, esgoto, energia)
https://cmsarquivos.febraban.org.br/Arquivos/documentos/PDF/Layout%20-%20C%C3%B3digo%20de%20Barras%20-%20Vers%C3%A3o%207%20-%2001_03_2023_mn.pdf
Daí as regras de boleto bancário a gente pode usar do Itaú e outros bancos.
https://download.itau.com.br/bankline/sispag_cnab.pdf -> Anexo A
Vai faltar boletos de operadoras de cartão de crédito que diferem dessas regras aí, mas não é tão comum. Também nunca consegui achar a especificação