Boleto Santander - Como obter o código de barras gerado?

Apr 14, 2013 at 2:23 AM
Boa Noite

Enviei alguns boletos e arquivo de remessa para o Santander para homologação e retornaram informando que existem alguns inconsistências que devo acertar.

Uma delas diz que "Cálculo da representação numérica do código de barras não está de acordo". A analista enviou a divergência:

Representação numérica do código de barras
03398567700002094009378045700000025207960101 - Enviado
03393567700002094009378045700000025207961101 - Esperado

Fiz algumas alterações no meu aplicativo e tentei utiliizar:
Dim b As Boleto = New Boleto(vencimento, strValorDocumento, strCarteira, strPedido, c)
"b.CodigoBarra.Codigo" mais retorna vazio.

O que quero fazer é obter a representação numérica do código de barras para comparar com o que é esperado pelo Santander conforme exemplo acima.

Alguém tem alguma idéia de como fazer isso?

Obrigado

José Roberto Siqueira
Apr 14, 2013 at 1:40 PM
Oi, vi que você está tendo problemas com o santander também. Qual a DLL você está usando? Vi em um outro post que o DV de uma DLL mais antiga está ok e agora está com problema (e é bem esse problema que estou tendo). Você pode me ajudar?
Apr 14, 2013 at 4:27 PM
nurdagniriel wrote:
Oi, vi que você está tendo problemas com o santander também. Qual a DLL você está usando? Vi em um outro post que o DV de uma DLL mais antiga está ok e agora está com problema (e é bem esse problema que estou tendo). Você pode me ajudar?
Bom Dia nurdagniriel

Em outro post o colega pleaseWait informa que após atualizar a DLL está tudo ok.
Eu baixei a última versão do código disponibilizado.
Fiz o teste com a última versão da DLL e o dígito está ok.

O pessoal do Santander enviou-me as inconsistências encontradas nos arquivos que enviei e nela havia um exemplo de nosso número e qual deveria ser o dígito verificador. Apliquei o mesmo teste em cima deste nosso número e o dígito bateu com o do Santander.

Abaixo estou colocando o roteiro retirado do manual do Santander para se calcular o dígito verificador.
Você poderá criar uma rotina e fazer os testes com o exemplo de nosso número que consta neste manual.

Image
Coordinator
Apr 14, 2013 at 11:58 PM
Oi José,

pelo o que vi o que tá dando diferença é o fator diferença que é calculado pela data de vencimento.

Para eu conseguir debugar esse código de barras é necessário informar todos os parametros para gerar o boleto, tais como: agencia, conta, nosso numero, etc...

Eu ainda não criei os testes unitários para o Santader carteira 102.

Me envie esses parâmetros para que eu possa implementar.

Abs,

Stiven
Apr 15, 2013 at 1:23 PM
Bom Dia Stiven

Vou enviar os dados que solicita para seu email juntamente com um PDF do boleto que gero para Santander.

Obrigado

Abraço

José Roberto Siqueira
Apr 15, 2013 at 2:52 PM
Bom Dia Stiven

Fiz o envio via email dos dados solicitados bem como um exemplo que boleto que gerei para Santander

Se precisar de algo mais me avise por favor.

Abraço

José Roberto Siqueira
Coordinator
Apr 15, 2013 at 4:39 PM
Pessoal,

acho que descobri o problema para o calculo do Mod11.

Foi criado um método"Mod11Santander" novo que substituía a versão que estava funcionando, por isso o problema de uma versão anterior estaria funcionando.

Estou disponibilizando em http://www.callas.com.br/boleto.net.dll para que possam fazer testes. Se funcionar eu atualizo a versão do projeto.

Espero respostas.

Abs,

Stiven
Apr 17, 2013 at 12:37 PM
Bom Dia Stiven

Hoje recebi o retorno do Santander dos boletos e arquivo remessa que enviei para homologação.
Ainda existe um erro na posição 5 do código de barras referente ao dígito verificador.
Agora pouco enviei para seu email a descrição detalhada do problema juntamente com um boleto com informações para testar e o manual do Santander que recebi para confecção dos boletos, espero que ajude.
Se precisar de algo mais estou a disposição.

Abraço

José Roberto Siqueira
Apr 17, 2013 at 3:25 PM

Caramba, Stiven, que trabalhão hein?

Olha, eu desconhecia totalmente esta informação que passou.

Vou atualizar a DLL, informar o IOF e gerar novos boletos e arquivo remessa e enviar ao Santander.

Acredito que na sexta eu tenha o retorno e te aviso.

Muito obrigado!!!

Sem mais,

José Roberto Siqueira

------------------------

0 xx 11 98612-8287 Tim

0 xx 11 97612-1268 Claro

0 xx 11 97119-1634 Vivo

---------------------------------+----------------------------------

Mail: [email removed] | Gtalk..: [email removed]

MSN.: [email removed] | SkypeID: jrsiqueira

---------------------------------+----------------------------------

De: Stiven Câmara [email removed]
Enviada em: quarta-feira, 17 de abril de 2013 11:11
Para: [email removed]; [email removed]
Assunto: RE: Boleto Santander - Como obter o código de barras gerado? [boletonet:440201]

Bom dia Jose Roberto,

tudo bem?

perdi um bom tempo tentando descobrir o problema do DV. Depois de fazer vários testes percebi que o calculo do DV está correto o que está errado é uma variável chamada IOS.

O que a IOS representa? Conforme a documentação:

IOS – Seguradoras (Se 7% informar 7. Limitado a 9%)
Demais clientes usar 0 (zero)

Acredito que no seu caso seja 8% porque foi exigido 8 no seu código de barras. "Cara, apanhei pra descobrir isso."

Compare os códigos:

Enviado - 03394567700001052509378045700000025208420101

Esperado - 03398567700001052509378045700000025208428101


Percebi a diferença?

o Calculo do DV é feito com base nesse código:

Enviado - 0339567700001052509378045700000025208420101 - Demais Clientes

Esperado - 0339567700001052509378045700000025208428101 - Seu Caso

Aí o problema! Agora como contornar?

Tem uma solução, no caso do Santander informar o percentual do IOF no boleto.

Implementei essa solução, basta informar o boleto.PercentualIOF = 8;

Procure saber em que IOS você se encaixa.

Agora acredito que seu problema foi resolvido. Fiz todos os testes e ficou certinho.

Homologue novamente e me avise, que irei atualizar o projeto.

Abs,

Stiven


Apr 23, 2013 at 8:10 PM
Edited Apr 23, 2013 at 8:11 PM
Boa Tarde Stiven

Acabei de receber o retorno do Santander referente aos arquivos enviados.

A resposta é:

__Conforme análise dos arquivos encaminhados, informo que não foram encontradas inconsistências, solicito que envie os arquivos de remessa através do Internet Banking para verificarmos se será apresentado algum tipo de rejeição, para que possamos dar continuidade ao processo de homologação.
Ressalto que o ambiente da empresa se encontra em “Teste” para que possamos verificar o processamento do arquivo, após o processamento correto dos arquivos o ambiente será alterado para “Produção”.__

Hoje a noite irei gerar 5 (cinco) boletos com valores de R$ 5,00 e gerar o arquivo de remessa e enviar pelo site do Santander. Amanhã farei o pagamento destes boletos através do internet banking, casa lotérica, no boca do caixa do banco e caixa eletrônico.

Desta forma saberei se todos os boletos estão corretos em todas as formas de pagamento e terei o cruzamento destes pagamentos com o arquivo remessa do banco de enviei.

A primeira parte dos testes deram certo ok?

Se desejar esperar por este retorno aí teremos a certeza absoluta de que tudo está funcionando.

Obrigado pela grande ajuda.
Developer
May 3, 2013 at 8:55 PM
Fala Galera, blza?
Só para complementar o Feedback. Eu voltei a ter problemas com DV do boleto Santander no dia 28/04. Porém ao atualizar o package e gerar novas amostrar a equipe do Santander assinalou que o DV estava OK porém as leitoras não estavam conseguindo ler os códigos de boletos.

Fiz testes direto no Internet Banking e todos os boletos passaram. Segundo o suporte Santander, algumas interfaces trabalham com a representação numérica dos boletos e não o código do boleto.
Estou lendo a documentação que tenho em mãos para gerar um algoritmo para construir tal representação numérica dos boleto para concluir a validação. Qualquer novidade, volto aqui. Caso alguém já tenha passado por isto, por favor, expõe a solução.


Vlww
Coordinator
May 3, 2013 at 9:51 PM
Oi pleaseWait,

hoje eu fiz uma atualização, justamente essas alterações do JRSIQUEIRA que foram homologadas por ele. Infelizmente só hoje eu pude atualizar o nuget.


Atualize seu pacote por favor.

Abs,

Stiven
Developer
May 7, 2013 at 4:56 PM
Obrigado pela resposta Stiven.
A ultima atualização disponível para o Boleto.NET é datada como dia 29/04. Por favor, confirme a disponibilidade das mudanças no nuget.


Att, Caio.
Developer
May 10, 2013 at 2:35 PM
Galera! Realizando novos testes no meu ambiente de homologação eu identifiquei novos problemas com o DV.
A versão atual ainda não é estável.
May 10, 2013 at 2:45 PM
pleaseWait wrote:
Galera! Realizando novos testes no meu ambiente de homologação eu identifiquei novos problemas com o DV.
A versão atual ainda não é estável.
Bom Dia pleaseWait

Bem estranho porque utilizei a DLL que o Stivem enviou na época com as modificações e o mesmo foi homologado com sucesso pelo Santander.
Inclusive está em produção há uns 15 dias.

José Roberto Siqueira
Developer
May 13, 2013 at 6:22 PM
Estou executando a homologação dos arquivos juntamente com o suporte do Santander e com auxilo do documento validador de nosso número que é responsável por garantir a integridade e validade do DV.

Segue arquivos (caso não o tenha) : https://skydrive.live.com/redir?resid=BB63326F63D0DBBD!304
Developer
May 13, 2013 at 6:38 PM
pleaseWait wrote:
Estou executando a homologação dos arquivos juntamente com o suporte do Santander e com auxilo do documento validador de nosso número que é responsável por garantir a integridade e validade do DV.

Segue arquivos (caso não o tenha) : https://skydrive.live.com/redir?resid=BB63326F63D0DBBD!304
Seguindo as especificações da documentação do Santander, há um problema no método public static int Mod11(string, int, int), linha 511 na classe abstrata AbstractBanco.

O problema em questão dá-se pelo fato que o if apontado na linha faz uma validação errada.
Segundo a documentação do Santander o ndig só deve ser 1 se o resto da divisão for 10.
Se o resto da divisão foi 1 ou 0 o ndig deve ser 0
Se o resto da divisão for diferente de 1/0/10 deve-se então subtrair 11 do resto da divisão.

Se eu adicionar por exemplo ao nosso numero o valor 50021937 ou 50026524 a DLL ira definir um valor errado para o DV (no caso o valor ser 1 quando deveria ser 0)

Esta linha deve ser corrigida, segundo a documentação do Santander.

Att, Caio.
Developer
May 15, 2013 at 9:23 PM
pleaseWait wrote:
pleaseWait wrote:
Estou executando a homologação dos arquivos juntamente com o suporte do Santander e com auxilo do documento validador de nosso número que é responsável por garantir a integridade e validade do DV.

Segue arquivos (caso não o tenha) : https://skydrive.live.com/redir?resid=BB63326F63D0DBBD!304
Seguindo as especificações da documentação do Santander, há um problema no método public static int Mod11(string, int, int), linha 511 na classe abstrata AbstractBanco.

O problema em questão dá-se pelo fato que o if apontado na linha faz uma validação errada.
Segundo a documentação do Santander o ndig só deve ser 1 se o resto da divisão for 10.
Se o resto da divisão foi 1 ou 0 o ndig deve ser 0
Se o resto da divisão for diferente de 1/0/10 deve-se então subtrair 11 do resto da divisão.

Se eu adicionar por exemplo ao nosso numero o valor 50021937 ou 50026524 a DLL ira definir um valor errado para o DV (no caso o valor ser 1 quando deveria ser 0)

Esta linha deve ser corrigida, segundo a documentação do Santander.

Att, Caio.
Só um adendo. Nesta classe, todos os if's que se encaixam na condição deve ser corrigidos.
Developer
Jun 17, 2013 at 2:07 PM
JRSIQUEIRA / Stiven
De nada.
Coordinator
Jun 17, 2013 at 2:20 PM
Oi pleaseWait,

Você chegou a corrigir o método Mod11?

Stiven
Developer
Jun 17, 2013 at 3:04 PM
Eu apontei o erro, sugeri a solução, porém não implementei a mesma.
Outra pessoa deve ter realizado tal alteração.
Coordinator
Jun 17, 2013 at 3:59 PM
Porque? Foi Corrigido?
Jun 19, 2013 at 11:47 PM
pleaseWait wrote:
Eu apontei o erro, sugeri a solução, porém não implementei a mesma.
Outra pessoa deve ter realizado tal alteração.
Olá pleaseWait

Você fez novos testes e esta situação foi resolvida?

Qual versão da DLL que está usando?

José Roberto Siqueira