Open jdahlin opened 12 years ago
https://github.com/TracyWebTech/cnab240 é a biblioteca
Será que não é melhor manter como uma biblioteca separada? Acho que um não depende do outro. Apesar que é bem capaz que um usuário va usar os dois. Acho que o mais importante pro futuro é tentar fazer com que eles se conversem bem se for o caso.
Estou trabalhando nesta integração logo vou mandar um push. Por enquanto estou fazendo como Eduardo disse, fazendo as duas conversarem mas mantendo elas separadas.
Eu não acho que faz sentido separar cnab240 e pyboleto. O fato que eu quero um boleto registrado não deveria mudar nada do ponto de vista do usuario final e quem está desenvolvendo. Quero dizer, quem está integrando pyboleto no projeto dele não deveria ter que baixar outras dependencias para poder gerar boletos registrados.
A verdade é que eu não entendo nada de boletos registrados, então vc obrigatoriamente precisa mandar pro banco uma mensagem CNAB qdo quer emitir boletos registrados? Eu não sabia disso. Nesse caso acho que faz sentido sim.
É, boleto com registro significa que o banco gerencia a data de vencimento e se não for pago ele manda para SERASA ou algo assim. sem registro não tem nenhum incentivo de forçar cliente pagar o boleto, ele pode simplesmente ignorar. No banco do brasil sem registros custa R$5 e com registro R$10 ou algo assim.
Boletos com registro também tem um arquivo de retorno/resposta, mas não sei exatamente quais dados tem lá dentro.
Os bancos utilizam dois padrões para intercâmbio de arquivos. A parte de boletos é apenas uma das partes dessa integração, porém pode ser feito pagamentos, inclusão de débito automático, extrato de conta e outras diversas coisas. Então boletos é apenas uma parte da Cnab240.
A documentação da versão mais recente da Cnab240 (8.6) está disponível em: http://www.febraban.org.br/p5a_52gt34++5cv8_4466+ff145afbb52ffrtg33fe36455li5411pp+e/sitefebraban/subcpadr12-layout%20padrao%20V%2008%2006.pdf
Lembrando que os bancos não utilizam as versão mais recentes: HSBC(1.0), Itau(4.0) e BB(8.5)
A é a outra versão é a Cnab400, porém ela é uma versão antiga que acredito que deixará de ser suportada em breve
Uma opção é aumentar o escopo do projeto para incluir todo que precisa para comunicar com os bancos brasileiros; geração boleto, debito automático, extratos (OFX), etc.
Parece que a questão do formato dos CNABs depende também da carteira. Até onde consegui descobrir, o Itaú usa 3 formatos (400, 240, 150), todos ativos, em todas as combinações possíveis: tem carteiras que podem usar mais de um deles, outras que exigem um especificamente, etc.
Eu implementei uma app Django para lidar com arquivos de remessa e retorno, e no nosso caso usamos a carteira 173, que exige (ou exigia, na época) o formato 400, e em particular um tal anexo A! Está bem hierarquizada para eventuais expansões, eu estava mesmo pensando em publicar. Poderia ser parte deste projeto, acho que tem tudo a ver deixar junto, PDF e arquivo CNAB são duas possíveis "views" de um boleto", por assim dizer.
Pelo que eu estudei recentemente os padrões 400 e 150 deixaram de ser "suportados" pela Febraban. Os bancos ainda implementam eles por questão das aplicações já existentes. O padrão 240 veio para substituir todos os outros modelos e "padronizar" em um modelo só. Ainda sim temos alguns problema de compatibilidade dentro do padrão 240, pois cada banco está implementando uma versão: Caixa: 1.0 Itau: 4.0 BB: 8.5 E assim por diante. Pelo que li nas especificações febraban, itaú, hsbc e bb com o padrão 240 é possível emitir qualquer tipo de boleto.
Ah que bom, tomara que fique um padrão só! Agora, o Itaú está longe de saber informar tudo isto! Quando comecei a implementar debito automático, no site constavam duas possibilidades: cnab 150 ou 240. Perguntei qual devia usar. Cada pessoa respondeu uma coisa, e um disse "você é que escolhe"! :-)
@seocam escreveu uma biblioteca para isso. Acho que faz sentido juntar pyboleto/cnab240 para estar no mesmo projeto. Talvez podia ser o começo de um biblioteca python business brazil.