Ir para conteúdo
  • Cadastre-se

dev botao

Banco Safra CNAB 400 - Divergencia - (Agencia + Conta) ou (CodigoCedente)


ubaltino
  • Este tópico foi criado há 1037 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia.

Conforme conversa ontem com José Junior, um cliente que já estava em produção com Banco Safra a mais de ano, após atualização do componente, o banco passou a reclamar do Header 400 e Trailler 400 na parte da conta + agencia.

No manual, item 6.1 consta que é agencia + conta com 14 dígitos. Se informarmos no componente agencia com 4 dígitos + DV e conta com 7 Dígitos + DV isso totalizam 13 dígitos. E são necessários 14 dígitos. Nesse caso o componente esta preenchendo com ZERO a esquerda, para completar 14 dígitos. Motivo pelo qual o banco acionou nosso cliente.

No componente, existe a propriedade CodigoCedente, que usamos com esses 14 dígitos, conforme o banco solicita no manual. Fiz essa alteração na Unit, que esta em anexo para avaliação e manual também, que o banco enviou hoje.

Outra opção seria informar a conta com 8 dígitos + DV para o componente. Não tive tempo para testar isso.

Já olhei vários tópicos aqui e sei que esse Banco é complicado. Então fica as duas sugestões aqui.

Obrigado.

 

ACBrBancoSafra.pas Layout Cobrança atualizado.pdf

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia,

A especificação do Manual do banco define como código do beneficiário a a Agencia com (5 dígitos) e Conta com (8 dígitos) + Dígito da conta (1 dígito). 

Aparentemente o pessoal está homologando dessa forma. No seu caso se o banco estiver recusando seria importante questionar eles sobre a especificação do próprio manual... No caso o código do Cedente que eles estão solicitando nesse campo é diferente de Agencia e Conta? 

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

bom dia,

esta bem confuso isso dai. Meu sistema estava homologado. Com as ultimas alteração o banco começou a rejeitar.

antes estava assim:

function TACBrBancoSafra.MontarCodigoBarras(const ACBrTitulo: TACBrTitulo): string;
var
  CodigoBarras, FatorVencimento, DigitoCodBarras ,
  valorDocumento, agencia, agenciaDigito, conta,
  ContaDigito, NossoNumero: string;
begin
  with ACBrTitulo.ACBrBoleto do
  begin
    FatorVencimento  := CalcularFatorVencimento(ACBrTitulo.Vencimento);
    valorDocumento   := IntToStrZero(Round(ACBrTitulo.ValorDocumento * 100), 10);
    agencia          := PadLeft(RightStr(Cedente.Agencia,4), 4, '0');
    agenciaDigito    := PadLeft(Cedente.AgenciaDigito, 1, '0');
    conta            := PadLeft(Cedente.Conta, 9, '0');
    ContaDigito      := PadLeft(Cedente.ContaDigito, 1, '0');
    NossoNumero      := PadLeft(RightStr(ACBrTitulo.NossoNumero,9),9,'0');

    CodigoBarras := IntToStr(Banco.Numero) + '9' + FatorVencimento +
                    valorDocumento +
                    '7' + agencia +  Trim(agenciaDigito) + trim(conta) + ContaDigito +
                    NossoNumero +  '2';

    DigitoCodBarras := CalcularDigitoCodigoBarras(CodigoBarras);
  end;

  Result := IntToStr(Numero) + '9' + DigitoCodBarras + Copy(CodigoBarras, 5, 39);

end;

 

 

Editado por Joas Vilas Boas Fernandes
Link para o comentário
Compartilhar em outros sites

  • Moderadores
4 horas atrás, Joas Vilas Boas Fernandes disse:

esta bem confuso isso dai. Meu sistema estava homologado. Com as ultimas alteração o banco começou a rejeitar.

Boa tarde, 

O trecho de código vinculado não tem haver com o relacionado na primeira contribuição, qual seria a rejeição no seu caso?

  • Curtir 1
Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Código de barras inválido.
Linha digital gerada depois da atualização 42297.00093 00058.258435 00000.069724 3 86190000003500
Linha digital gerada pelo Banco 42297.00903 00058.258435 00000.069724 86190000003500

Agencia : 0090-0
CC : 00582584-3 

 

image.png.9df8a8aa8f0f8f1cd277c72cd6a3cf0e.png

(05) Agência do cliente  mas não fala se é com o digito ou não. Entao o acbr esta pegando só o numero da agencia (0090) e formatando para 5 casas (00090image.png.60243119b318550abd7d0dae4f57c90e.png).

aqui ele pega os quatros primeiro dígitos da agencia que em vez de 0090 pega 0009. 

image.png

Editado por Joas Vilas Boas Fernandes
Link para o comentário
Compartilhar em outros sites

On 5/24/2021 at 8:47 AM, José M. S. Junior said:

Bom dia,

A especificação do Manual do banco define como código do beneficiário a a Agencia com (5 dígitos) e Conta com (8 dígitos) + Dígito da conta (1 dígito). 

Aparentemente o pessoal está homologando dessa forma. No seu caso se o banco estiver recusando seria importante questionar eles sobre a especificação do próprio manual... No caso o código do Cedente que eles estão solicitando nesse campo é diferente de Agencia e Conta? 

Boa noite.

Vou tentar explicar diferente.

A agência é 1970 e Dv 0.

A conta é 0008541 Dv 7.

No componente como esta, ele monta como 01970000085417. Para ficar com 14 dígitos, inclui um zero a esquerda.

E o banco solicitou que fosse preenchido com 19700000085717. Também com 14 dígitos.

Ou seja, seria muito mais claro se isso fosse dois campos separados. Evitaria essa confusão.

Então para mim, apesar que no manual esta Agencia + Conta, na prática para eles é CodigoCedente, apenas um campo que pode ser formatado como eles pedirem. 

Link para o comentário
Compartilhar em outros sites

13 horas atrás, ubaltino disse:

Boa noite.

Vou tentar explicar diferente.

A agência é 1970 e Dv 0.

A conta é 0008541 Dv 7.

No componente como esta, ele monta como 01970000085417. Para ficar com 14 dígitos, inclui um zero a esquerda.

E o banco solicitou que fosse preenchido com 19700000085717. Também com 14 dígitos.

Ou seja, seria muito mais claro se isso fosse dois campos separados. Evitaria essa confusão.

Então para mim, apesar que no manual esta Agencia + Conta, na prática para eles é CodigoCedente, apenas um campo que pode ser formatado como eles pedirem. 

exatamente.

O que acho confuso é no manual dizer:
1) A agência e conta para teste são as mesmas de produção, sendo 5 posições para a agência (sem dígito) e nove posições para a conta (com dígito).

logo 1970 sem agencia  o componente ira colocar 01970. 

 

Editado por Joas Vilas Boas Fernandes
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1037 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.