Linha digitável SICREDI

Nov 25, 2013 at 8:31 PM
Boa tarde a todos,

Estou implementando a emissão de boletos em meu sistema, utilizando a dll do projeto Boleto.Net.
Ao emitir um boleto do banco SICREDI, observei que o código da linha digitável não está correto.

Para um boleto com o valor de R$19,99 com vencimento para 25/12/2013 a linha gerada é:
74899.91112 32000.014095 11109.431012 6 89592300000019

observe que o valor está sendo considerado como R$0,19 e não R$19,99

Alguém já passou esse problema, ou tem alguma dica?

desde já agradeço a atenção.

Ivan Meirelles.
Developer
Nov 26, 2013 at 11:59 AM
Edited Nov 26, 2013 at 11:59 AM
Olá,

Veja com a agência do Sicredi, eles tem um Excel ao qual você consegue validar a linha digitável.

Qualquer coisa me mande seu e-mail que te envio este excel;

Sidnei Klein
Nov 26, 2013 at 12:05 PM
Olá Sidnei,

segue meu email: igmeirelles@gmail.com Obrigado por compartilhar,
Um abraço.
Jan 24 at 1:17 PM
Olá Igmeirelles,

Você conseguiu emitir o boleto sicredi corretamente? Também estou encontrando dificuldades.
Oct 10 at 11:25 AM
Isto aconteceu comigo também. Resolvi o problema passando o Nº do Posto na propriedade Cedente.ContaBancaria.OperacaoConta.

Veja o método abaixo, na mantagem do campo livre coloquei os Strings.Right que mostram qual deve ser o tamanho exato de cada campo:
 public override void FormataCodigoBarra(Boleto boleto)
        {
            string valorBoleto = boleto.ValorBoleto.ToString("f").Replace(",", "").Replace(".", "");
            valorBoleto = Utils.FormatCode(valorBoleto, 10);

            string cmp_livre = Strings.Right(boleto.Carteira,1) + "1" + Strings.Right(boleto.NossoNumero,9) + Strings.Right(boleto.Cedente.ContaBancaria.Agencia,4) + Strings.Right(boleto.Cedente.ContaBancaria.OperacaoConta,2) + Strings.Right(boleto.Cedente.Codigo,5);
            if (boleto.ValorBoleto == 0 || boleto.Carteira == "3") //Carteira 3 - Sem Registro
                cmp_livre += "00";
            else
                cmp_livre += "10";

            string dv_cmpLivre = digSicredi(cmp_livre).ToString();

            boleto.CodigoBarra.Codigo = string.Format("{0}{1}{2}{3}{4}{5}", Utils.FormatCode(Codigo.ToString(), 3), boleto.Moeda, FatorVencimento(boleto), valorBoleto, cmp_livre, digSicredi(cmp_livre).ToString());

            int _dacBoleto = digSicredi(boleto.CodigoBarra.Codigo);

            if (_dacBoleto == 0 || _dacBoleto > 9)
                _dacBoleto = 1;


            boleto.CodigoBarra.Codigo = Strings.Left(boleto.CodigoBarra.Codigo, 4) + _dacBoleto + Strings.Right(boleto.CodigoBarra.Codigo, 39);
        }