Skip to content

Implementar a validação de boletos #433

@ramiroluz

Description

@ramiroluz

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 boleto3 ou a pyboleto.
  • 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions