eduardocereto / pyboleto

A Python module to create Brazilian "Boletos de Cobrança" for multiple banks
http://pypi.python.org/pypi/pyboleto/
BSD 3-Clause "New" or "Revised" License
166 stars 126 forks source link

Arquivos de remessa / retorno #13

Open jdahlin opened 12 years ago

jdahlin commented 12 years ago

@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.

jdahlin commented 12 years ago

https://github.com/TracyWebTech/cnab240 é a biblioteca

eduardocereto commented 12 years ago

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.

arloc commented 12 years ago

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.

jdahlin commented 12 years ago

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.

eduardocereto commented 12 years ago

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.

jdahlin commented 12 years ago

É, 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.

arloc commented 12 years ago

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)

arloc commented 12 years ago

A é a outra versão é a Cnab400, porém ela é uma versão antiga que acredito que deixará de ser suportada em breve

jdahlin commented 12 years ago

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.

dalembertian commented 12 years ago

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.

arloc commented 12 years ago

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.

dalembertian commented 12 years ago

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"! :-)