Boleto Banco do Brasil - Carteira 16
peruzzo opened this issue · comments
Estou com um problema na geração de um boleto usando a carteira 16 e um convênio de 6 posições, que nesse caso o nosso número deveria ter 17 posições e está gerando com 11 posições, pois o método getNossoNumeroDoEmissorFormatado só retorna 17 posições para a carteira 18.
A regra abaixo está descrito no link http://www.bb.com.br/docs/pub/emp/empl/dwn/Doc5175Bloqueto.pdf
"A utilização do campo “Nosso-Número” com 17 posições livres somente pode ser utilizada por
clientes cadastrados com convênio de cobrança de 6 posições, nas Modalidades de Cobrança
Sem Registro – Carteira 16 e 18.
O “Nosso-Número”, neste caso, não possui dígito verificador.
É obrigatório a impostação do Código “21” na posição 43 a 44 do Código de Barras para indicar
a utilização do “Nosso-Número” com 17 posições livres.
Se o código “21” não for informado, o Sistema de Cobrança interpretará o Código de
Barras/Linha Digitável como “nosso-número” de 11 posições."
Oi @peruzzo
Pode postar um trecho de código de exemplo onde o problema aconteça? A correção parece simples, mas queria testar com certeza.
Abraços
@mariofts segue abaixo o trecho de código, copiei do exemplo que tem no projeto e só alterei os dados do emissor, ao executar é lançada uma execução de erro na geração do código de barras, pois é diferente de 44 posições.
Datas datas = Datas.novasDatas().comDocumento(1, 5, 2008)
.comProcessamento(1, 5, 2008).comVencimento(2, 5, 2008);
Emissor emissor = Emissor.novoEmissor()
.comCedente("Fulano de Tal")
.comAgencia(3415).comDigitoAgencia('0')
.comContaCorrente(7406)
.comNumeroConvenio(820402)
.comDigitoContaCorrente('3')
.comCarteira(16)
.comNossoNumero(9000206);
Banco banco = new BancoDoBrasil();
Boleto boleto = Boleto.novoBoleto()
.comBanco(banco)
.comDatas(datas)
.comEmissor(emissor)
.comSacado(Sacado.novoSacado())
.comValorBoleto("200.00")
.comNumeroDoDocumento("1234");
System.out.println(banco.geraCodigoDeBarrasPara(boleto));
@mariofts funcionou!!! Muito Obrigado pela ajuda.