BoletoNet / boleto2net

Nova versão do Boleto.Net
Apache License 2.0
161 stars 139 forks source link

Dúvida de como funciona o processo em si #89

Open RodolphoChagas opened 6 years ago

RodolphoChagas commented 6 years ago

Primeiramente queria parabenizar aos desenvolvedores pelo projeto.

Minha dúvida é mais na parte do processo de gerar um boleto, vou explicar.. A minha empresa já trabalha a anos com um sistema em que cria o arquivo de REMESSA(toda segunda) e envia ao banco(Bradesco), logo no dia seguinte recebe o arquivo de RETORNO e da entrada desse arquivo no mesmo sistema, para que os 'boletos' recebam o status de "registrado" ou "pago". Obs.: O banco fica responsável de gerar os boletos e enviar via Correio...

Mas agora o banco apenas vai fazer o registro e nós(empresa) teremos que criar um sistema para emissão dos boletos(PDF ou html) para envio por e-mail. Estou fazendo em C# windows.Forms, e consegui aparentemente gerar o boleto..

O processo de gerar um boleto é só isso ? Assim que eu confirmar que a remessa foi registrada pelo banco, é só gerar os boletos e disparar para os clientes ?? Ou estou deixando passar algo ?

Sei que agora vai ficar responsável a nós gerar o Nosso Número e vincular a cada boleto, mas minha dúvida é realmente no processo em si desde o arquivo de Remessa, recebimento do Retorno e emissão dos boletos..

Desculpa por qualquer ignorancia minha.. Desde já agradeço a qualquer ajuda

rafd75 commented 6 years ago

@RodolphoChagas - boa noite...

Vou resumir o que eu faço aqui:

1 - para emitir um boleto, reservo o nosso número, e faço a emissão. Gravo o nosso número no banco de dados...

2 - gero a remessa para o banco e informo o nosso número no layout. Envio para o banco.

3 - no dia seguinte, analiso o retorno... a quantidade de títulos e valor total das "entradas confirmadas" deve bater com o gerado no dia anterior...

sobre a emissão dos boletos - eu tenho 2 opções: gero o PDF e envio por email, ou mando o PDF para a impressora e entrego o boleto impresso para o cliente... (esse é o passo 1 acima)... depois remessa / retorno... e nos dias seguintes, sempre analisar o retorno, para interceptar as baixas, liquidações, cartório, protesto, etc... você trata cada ocorrência como achar melhor.

RodolphoChagas commented 6 years ago

@rafd75 você sanou todas as minhas dúvidas, muito obrigado mesmo !!! Foi o ponta pé inicial que eu precisava para iniciara a aplicação..

Mas me pintou mais um dúvida, espero que voce possa me ajudar mais uma vez hahah Em relação ao nosso número, ele é sequencial e nunca se repete certo ? Igual ao número de Nota Fiscal...

Se houver 1 Nota com 3 boletos(parcelado), então seria um Nosso Número para cada um ?

Aqui o financeiro quando recebe o arquivo de retorno com algum título nele "errado", eles simplesmente corrigem o erro, deletam esse boleto do sistema e na próxima remessa é enviado novamente para ser registrado. Então eu sou obrigado a repetir o Nosso Número que foi vinculado a ele antes de ser deletado do sistema ou tenho que gerar um novo e vincular a ele nessa nova remessa ?

rafd75 commented 6 years ago

isso mesmo...

3 parcelas, 3 números diferentes...

aqui, eu uso sequencial... mas - salvo engano - em algumas aplicações, ele é único (talvez isso acabe agora, com a obrigatoriedade de registro do boleto)... Ex: cartão de crédito, eu acho que o número é sempre o mesmo... Uma vez, liguei para a atendente e pedi a segunda via... ela me disse que eu podia usar o boleto do mês passado (no caso, cartão de crédito não tem vencimento, nem valor, então a linha digitável não muda... )... entendeu?

Voltando ao nosso sistema --- cada parcela (cada boleto), um nosso número... (aqui usamos sequencial)...

Veja no banco, pois alguns casos, existe uma "faixa" permitida para o cliente... SEMPRE faça a homologação com o banco, para evitar dor de cabeça...

No caso de você receber a faixa 0000000001 até 9999999999... vc também poderia usar uma lógica do tipo:

Primeira posição, identifica o documento que gerou a parcela: 1 - NFe 2 - NFSe

da segunda, até a nona posição, número do documento

e nas últimas duas posições, a parcela...

ou seja

100000012301 -> NFe, número 123, parcela 01 100000012302 -> NFe, número 123, parcela 02 etc... deve funcionar... mas eu não uso assim.

Obs: o exemplo acima não está levando em conta o código da carteira, nem o dígito... na prática (chutando um exemplo aqui - bradesco, carteira 09), ficaria assim:

009/100000012301-4 -> NFe, número 123, parcela 01 009/100000012302-X -> NFe, número 123, parcela 02

etc....

RodolphoChagas commented 6 years ago

Opa, entendi, seu exemplo ficou perfeito!!

Liguei para o banco semana passada e me informaram que eu teria que alterar o layout do arquivo de Remessa na posição 093 a 093 que seria Condições para Emissão do Boleto de Cobrança. Nessa posição eu informaria o número 2, que seria "o Cliente emite o Boleto e o Banco somente processa o registro! .Neste caso, será obrigatório informar o Nosso Número formatado na posição 71 a 82 do registro de transação tipo 1"

Até ai entendi perfeitamente juntando com tudo o que voce me explicou agora, porém na parte que voce falou "Veja no banco, pois alguns casos, existe uma "faixa" permitida para o cliente... SEMPRE faça a homologação com o banco, para evitar dor de cabeça..."

Acho que a faixa que você citou foi o que a atendente me indicou sobre onde informar o Nosso Numero, só a parte da homologação que não entendi. O banco aqui é Bradesco carteira 09.

rafd75 commented 6 years ago

Aqui tb é bradesco 09... uso sequencial... tem um código de convênio...

Minha sugestão... alinha com o suporte do banco, desenvolve, e faz os testes... melhor jeito de aprender é na prática mesmo.

RodolphoChagas commented 6 years ago

Perfeito, farei isso!! Obrigado mesmo pela ajuda

RodolphoChagas commented 6 years ago

@rafd75 poderia me ajudar mais um vez ? Já iniciei o software, me alinhei com o suporte do bradesco, e hoje enviarei arquivos de remessa e boletos para validação. Minha dúvida pode parecer boba, mas sempre me esforço pra tentar fazer o melhor! É em relação a guardar no banco de dados o Nosso Número, como voce trabalha com esse sistema a um tempo, gostaria de saber se voce guarda esse valor com o digito verificador dele... E se voce usa alguma regra ao gerar ele, ou apenas sequencial mesmo

rafd75 commented 6 years ago

@RodolphoChagas , bom dia.

Eu guardo o nosso número completo... Observe que, no Boleto2Net, eu padronizei algo assim:

Carteira / Nosso Número - Dígito - Ex Bradesco: 009/123456778-9

Esse formato acima, vai no NossoNumeroFormatado.

Se eu preciso só do "Nosso Número", eu tiro tudo que vem antes da barra e tudo que vem depois do traço... assim pego só o nosso número.

No meu sistema, tenho apenas 1 campo, e guardo tudo... Outra forma (considero até melhor) seria ter 3 campos (no seu banco de dados)... Neste caso, guarda 009 em carteira, 12345678 em nosso número e 9 em dígito verificador...

RodolphoChagas commented 6 years ago

Interessante! Aqui tem uma tabela chamada 'Banco', onde cada linha é um banco diferente e seus respectivos dados nas colunas, como agencia, conta, carteira.. e agora inseri outra coluna chamada NossoNumero onde guardo o último valor gerado para ter um controle.

E tenho outra tabela chamada 'Boleta' onde guardo as informações dos boletos, como código da ocorrência, vencimento, banco, valor, valor pago e por ai vai.. e agora também inseri a coluna NossoNumero onde vinculo para cada boleto gerado o numero dele.

Talvez agora vou salvar o NossoNumero do boleto já com o digito verificador dele, ou crio uma nova coluna para ele, acho até melhor dessa forma como voce indicou.

Obrigado pela atenção mais uma vez!!!