Jump to content

Search the Community

Showing results for tags 'santander'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

There are no results to display.

Forums

  • Fórum Aberto - ACBr
    • ACBr News
    • Equipamentos testados
    • Base de Conhecimento
    • Dúvidas Gerais sobre o ACBr
    • ACBrSerial
    • ACBrSAT
    • ACBrNFe
    • ACBrDFe
    • Dúvidas sobre TEF
    • Dúvidas sobre PIX
    • ACBrMonitor PLUS
    • ACBrTXT
    • ACBrBoleto
    • ACBrDiversos
    • ACBrTCP
    • ACBrFramework
    • ACBrLIB
  • ACBr Pro
    • Dúvidas gerais
    • ACBrMonitorPLUS
    • NFe/NFCe - Nota Fiscal Eletrônica
    • DFe - Documentos Fiscais Eletrônicos
    • SAT / MFE
    • TEF
    • Boleto
    • ACBrSPED
    • ACBrTXT
    • Paf-ECF
    • Requisitos Fiscais por UF
    • ACBrLIB
  • Outros Assuntos
    • ACBr's Pub
    • Legislação Fiscal e Tributária
    • Object Pascal - Delphi & Lazarus
    • Data Base
    • Classificados
    • Dúvidas não relacionadas ao ACBr

Categories

  • ACBr Pro
    • ACBrLib - PRO
    • ACBrMonitorPLUS - PRO
    • Utilitários - PRO
    • Dia do ACBr 1a edição
    • Dia do ACBr 2a edição
    • ACBrLib Android - Pro
  • Free Download
    • ACBrLib - DEMO
    • ACBrMonitorPLUS - DEMO
    • Demos / Testes / Utilitários
    • Apresentações - Palestras
    • ACBrLib Android - Demo

Calendars

  • Eventos - Palestras - Webinars
  • Prazos SEFAZ
  • Community Calendar
  • ACBr Papo Pro
  • Feriados Nacionais

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL

  1. Fala pessoal ! Venho comunicar uma alteração de endpoint da API para testes do Santander V1 , devido o ambiente Sandbox não ser fiel ao ambiente real (de produção) conforme instrução do próprio Santander, optamos por alterar para o uso do ambiente de HOMOLOGAÇÃO, o qual alteramos o método de envio para que seja enviado para endpoints diferentes para que possamos unificar as respostas necessária para retorno correto. Como estava Estávamos utilizando o endpoint SandBox para testes: C_URL_HOM = 'https://trust-sandbox.api.santander.com.br/collection_bill_management/v2'; C_URL_OAUTH_HOM = 'https://trust-sandbox.api.santander.com.br/auth/oauth/v2/token'; Infelizmente estava retornando dados incompletos nas consultas, quando o usuário relatou ao suporte do banco, ele nos orientou a utilizarmos o endpont de Homologação: Para se integrar com o ambiente de homologação, precisa entrar em contato com seu especialista Cash. Como ficou Quando você realiza a consulta, nós vamos realizar 3 consultas diferentes. Isso porque a API do Santander, infelizmente não está devolvendo todas informações necessárias em apenas uma consulta. (que vou explicar abaixo). Lembrando que você vai realizar apenas uma consulta e todo este processo de consultas diferentes será realizada em backend pela solução ACBrBoleto, o qual vai te devolver todas as consultas em uma reposta unificada. Você não precisa alterar nada nos seus fontes, apenas solicitar credenciais para o ambiente de homologação com o seu especialista Cash. O endpoint passou de SandBox para Homologação. Então a partir de agora, estamos utilizando como padrão este novo endpoint para testes. C_URL_HOM = 'https://trust-open-h.api.santander.com.br/collection_bill_management/v2'; C_URL_OAUTH_HOM = 'https://trust-open-h.api.santander.com.br/auth/oauth/v2/token'; Infelizmente a consulta no novo endpoint não devolve todos os dados em uma unica consulta. Na consulta padrão, não estava devolvendo corretamente os juros ou valor pago com juros. E foi necessário utilizar outra consulta conforme sugestão abaixo: Infelizmente a consulta acima, que devolve informações sobre o juros, não devolve a data credito ou data baixa. Após reportar que a consulta NN não devolve as datas credito/baixa Foi sugerido utilizar a primeira consulta que não volta juros. Em resumo para contornar a situação, estamos realizando consultas em 2 ou 3 formas diferentes para que possamos unificar os dados necessários para uso enquanto o banco não corrige as consultas. Sendo assim, atenção ! 1. só existe consulta detalhada! (não existe consulta em lista) Para a consulta devolver informações de boletos e do pix (caso exista) antes de realizar a consulta marque o indicadorPix como true; Se estiver marcado o Indicadorpix como true ele vai realizar uma consulta do boleto bankslip, caso esteja liquidado/baixado vai realizar mais 2 consultas por NN (nosso numero) para pegar o juros e Setlement para pegar as datas de credito/baixa. Se não o indicadorPix for false, vamos consultar se ele está liquidado/baixado vai realizar consulta por NN (nosso numero) para pegar o juros e Setlement para pegar as datas de credito/baixa. Como o Santander difere de outros endpoints que realizamos apenas uma consulta, pode ser que fique lento alguns segundos.. ja que precisamos enviar a primeira consulta, aguardar para disparar a segunda consulta aguardar novamente e disparar terceira e unificar as respostas. Links de referência: Usar Homologação e não sandbox: Utilizar consultas NN e Settlement:
  2. Boa tarde comunidade ! Em 4 de março, tínhamos postado aqui no fórum atualizações de endpoint p testes em homologação. mas hoje foi removido até dos manuais Santader este endpoint. (link do post anterior) O usuário @Leandro Coelho nos reportou que o SANTANDER removeu os endpoint que estávamos utilizando e voltou para SandBox. Então hoje fizemos atualização destes endpoints.: {URL Produção} C_URL = 'https://trust-open.api.santander.com.br/collection_bill_management/v2'; C_URL_OAUTH_PROD = 'https://trust-open.api.santander.com.br/auth/oauth/v2/token'; {URL Homologação open-h removido no manual 2.6 do banco santander}: //C_URL_HOM = 'https://trust-open-h.api.santander.com.br/collection_bill_management/v2'; //C_URL_OAUTH_HOM = 'https://trust-open-h.api.santander.com.br/auth/oauth/v2/token'; {URL Sandbox - Adicionado} C_URL_HOM = 'https://trust-sandbox.api.santander.com.br/collection_bill_management/v2'; C_URL_OAUTH_HOM = 'https://trust-sandbox.api.santander.com.br/auth/oauth/v2/token'; E-mails com orientação do banco, post original clique aqui primeiro email em 13/08/2024: Segundo email confirmado em 21/08/2024 Obrigado @Leandro Coelho por reportar! Commit: 35189
  3. Bom dia. Conforme anexos, está dando rejeição ao enviar o arquivo de cheque salário do Santander, no registro 1; O campo DV agência deve ser string e está como inteiro. No registro 0 está como string e funciona normalmente. Favor efetuar a correção, senão na próxima atualização vamos perder a correção. Obrigado. layout_folha_de_pagamento_CNAB_240_Santander_V11_2_2023.pdf
  4. Fala pessoal ! Recebemos uma grande contribuição do nosso amigo @Jéter Rabelo Ferreira, a integração do Banco Santander API, registro on-line de boletos. Fizemos algumas implementações baseada na documentação porém não conseguimos homologar por falta de credenciais. Agradecemos também ao amigo @Warquia pelos testes e correções. Link do tópico com as contribuições iniciais. Estamos liberando para que toda a comunidade do Projeto ACBr possa ir testando, dando sugestões, colaborando como sempre fazem. Link do Portal do Desenvolvedor: https://developer.santander.com.br/ Como Configurar: *Em breve as documentações sobre o novo banco serão atualizadas (ACBrLibBoleto, ACBrMonitorPlus)*
  5. Estou tendo problemas para registrar/consultar boletos do santander via API, estoura um acess violation nas linhas seguintes Gostaria de saber se o acbr já consegue comunicar com o SANTANDER via API e se existe alguma particularidade na configuração! Está em homologação, estou com as credenciais de homologação, coloquei o tipo cobSantander -Estou usando o demo do AcbrBoleto_Fast
  6. Pessoal, estou tentando utilizar o componente do ACBRPIX em produção no banco Santander, em específico a função ConsultarPixRecebidos, mas está retornando o seguinte erro: {"type":"","title":"","status":400,"detail":"{\"timestamp\":\"2023-03-06T14:18:44.603-03:00\",\"httpStatusCode\":\"400\",\"details\":\"O campo Data Inicio só é permitido caracteres numéricos.\"}"} Já mudei para somente número, somente data, de todas as formas e a mensagem de erro é sempre a mesma. Anexei o log de erro para vocês consultarem, mas na verdade a tentativa é encontrar alguém que esteja utilizando o Santander para recebimentos em PIX, já perguntei pro suporte AcbrPro e eles disseram que pela mensagem é algo no PSP, orientaram buscar ajuda no suporte do banco mas o único canal de comunicação que temos é o e-mail do suporte api: [email protected] e o da agência. Infelizmente não tivemos resposta. (P.S.: Somos clientes do banco, imagina senão fossemos) Agradeço qualquer tipo de ajuda/orientação. []'s logDemoAcbr.txt
  7. Olá, Bom Dia! Estou implementando o ACBrPagFor para o banco Santander e me deparei com divergências na geração do Registro do Header do Arquivo (Registro 0), Header do Lote (Registro 1) e Trailler do Arquivo (Registro 9). Layout do Banco Santander: Cash Management (santander.com.br) Ao enviar para o banco na primeira vez, tive erros a respeito do convenio no header do arquivo, no header do lote e no trailler do arquivo conforme imagem abaixo: Resolvendo o primeiro problema no Header do Arquivo constatei o seguinte: O Header do Arquivo possui 20 posições para o convenio no layout, já no código do componente, na geração da remessa, está programado para enviar só 12 posições, outra coisa que reparei é que as informações estão fora da ordem do layout. Olhando na procedure procedure TArquivoW_Santander.GeraRegistro0 do PagFor.Santander.GravarTxtRemessa, vemos que está sendo enviado somente 12 posições para o convenio, sendo que no manual do banco esta previsto 20 posições. Também se olhar o layout e comparar com o código, percebe-se que existem informações sendo enviadas fora de ordem e também sem necessidade nos demais registros citados. Tomei a liberdade de ajustar esses registros (0,1,9), de acordo com o manual, e, anexei a unit nesse tópico. Desde já agradeço e estou a disposição. Att Keiller REMPAGFOR_0000182.txt PagFor.Santander.GravarTxtRemessa.pas
  8. Uso o ACBrMonitorPlus 1.4.0.82 e estou integrando o boleto do Santander e já consigo gerar o boleto. Estou seguindo o manual em https://acbr.sourceforge.io/ACBrMonitor/ModeloTituloArquivoINI.html onde explica para fornecer o texto informativo da seguinte forma: Informativo=Informativo de Boleto1|Informativo de Boleto2|Informativo de Boleto3 O que gostaria de gerar no PDF do boleto com as 4 linhas abaixo: - Cobrar juro diario do R$ 4,20 após o vencimento - cobrar multa de 2% após o vencimento - duvidas: (66) 34xx-xxxx ou [email protected] * Protestar 10 dias apos o vencimento Já tentei usar separado por pipe (conforme o manual),por ponto-e-virgula e também tentei separado por "\n" e também não funcionou, imprimindo sempre a 1a linha apenas ! Aproveitado, achei a fonte de impressão dessas linhas que citei bem ruim. Tem como usar outra fonte/tamanho ?
  9. Olá, estamos utilizando layout cnab240 e precisando implementar o campo C010(Identificação da Distribuição) para identificar a distribuição do boleto e não encontrei essa implementação no layout do Santander.. Encontrei apenas no banco do brasil algo parecido.. Alguém chegou a implementar este registro no layout do Santander e poderia compartilhar a unit? Obrigado. Renato
  10. bom dia....preciso de um componente ou framewort p impressao de boletos santander e gerar em pdf tmbm....tem onde baixar do acbr ou de onde....alguém pode ajudar?
  11. Bom dia Atualizei meu repositório e após tivemos erros de rejeição no registro de boletos do banco Santander - 400 posições - com o erro "006-CODIGO DA CARTEIRA INVALIDO". Na configuração do sistema, anteriormente passávamos o campo CARTEIRA como 5=RAPIDA COM REGISTRO. Notei que nessa última atualização o arquivo de remessa é gerado com 0 na posição 108 (anteriormente era 5). Fiz essa modificação no arquivo do Banco Santander afim de manter a mesma regra anterior, fazendo com que a configuração de carteira = 5 (como diz manual) seja gerada a remessa com o parâmetro 5. Por favor avaliem se essa melhoria é pertinente, no meu caso resolveu. P.S.: Eu poderia simplesmente alterar o parâmetro carteira de 5 pra 101, porém creio que o melhor modo seja representar as configurações como está no manual do banco. function TACBrBancoSantander.DefineCarteira(const ACBrTitulo: TACBrTitulo): String; begin with ACBrTitulo do begin Result := PadLeft(Carteira, 1, '0' ); if ((Carteira = '101') or (Carteira = '005')) then Result:= '5' else if ((Carteira = '201') or (Carteira = '006')) then Result:= '6' else if ((Carteira = '102') or (Carteira = '004')) then Result:= '4'; end; end; ACBrBancoSantander.pas
  12. Bom dia, as regras de Carteira e Tipo de Carteira do Santander são um pouco diferentes dos demais bancos e isso está me gerando um problema! Estou utilizando o Layout CNAB 400 Consigo enviar a remessa utilizando a carteira 101 (que é equivalente a carteira 5 dentro do ACBR), o título é registrado com sucesso no banco. Ao imprimir o boleto pelo meu sistema, estou setando a propriedade Cedente.Modalidade := '101'; E a propriedade Titulo.Carteira := 101; E a propriedade TipoCarteira := tctEletronica; A minha linha digitável é impressa dessa forma: 03399.45016 61600.000006 30938.901011 3 83520000031100 que por sua vez não é reconhecida quando tento efetuar o pagamento. Já a linha digitável que está no banco é essa: 03399.45016 61600.000006 30938.901045 8 83520000031100 que por sua vez eu consigo efetuar o pagamento. Acredito que alguma propriedade não está sendo informada ou está valor incorreto! Alguma dica por favor!
  13. Bom dia. Alguém teve algum problema ou sabe o motivo que os retornos do banco Santander, CNAB240, em alguns casos, quando vem a liquidação, o valor de crédito está vindo zerado?
  14. Estou gerando uma remessa do Santander, e o sequencial do lote do segmento P parece se comportar errado. Esta começando com o lote 1, corretamente, e depois, pula para o 5, ignorando o 2, 3 e 4. Vendo os fontes, o preenchimento ocorre da seguinte forma: function TACBrBancoSantander.GerarRegistroTransacao240(ACBrTitulo: TACBrTitulo): String; ....... ISequencia := (ACBrBoleto.ListadeBoletos.IndexOf(ACBrTitulo) * 4) + 1; O mesmo acontece no trailer do lote e do arquivo, essa multiplicação por 4. Desta forma, o banco me retornou que os totais estão incorretos. "REGISTRO DETALHE - SEGMENTO P REMESSA Posição 09 - 013 Nº seqüencial do registro de lote SEQUENCIAL DEVE INICIAR EM '00001' E SOMAR '1' A CADA LINHA ATÉ O FINAL DO LOTE, LINHA 4." Para corrigir, eu removi o " * 4", do sequencial do segmento P, e do trailer do arquivo e lote. 29052020143508_000005.txt
  15. Olá pessoal trago algumas mudanças que fizemos em nossa empresa para adequar a algumas necessidades que possuíamos com os boletos.. 1 - Adicionado ao Banrisul a leitura do valor pago do boleto. Adicionado pois nesse banco a informação não era preenchida na leitura permanecendo nulo o valor. Alteração do Fonte para Adicionar a leitura do valor pago 2 - Adicionado 3 tipos de Cobrança no TACBrCaracTitulo do ACBrBoleto.pas Adicionado esses três tipos, pois ao ler os manuais dos bancos foi verificado que eles não se encontravam como opções no fonte. Alteração no fonte do ACBrBoleto.pas adicionando os 3 novos tipos. 3 - Alterado o Banco do Brasil pois um dos tipos de cobrança visto no item 2 não existia como uma opção. Manual do Bando do Brasil "Nota 22". Alteração para se adequar ao manual. 4 - Alterado o Banco do Santander pois um dos tipos de cobrança visto no item 2 não existia como uma opção. Manual do Santander "Nota 5". Fonte Alterado para se Adequar ao manual. Segue abaixo os fontes alterados... Fontes.rar
  16. Boa tarde! Estou em processo de homologação de uma carteira do Santander, a Rápida com Registro (101), e o banco precisa das seguintes configurações: Carteira a inserir na remessa: 5 – Cobrança Rápida com Registro (cliente imprime) Carteira a inserir nos boletos: RCR (corpo do boleto) / 101 (linha digitavel/código de barras) Hoje, para emitir o boleto, eu informo o valor "101" na propriedade ACBrTitulo.Carteira e "101" em ACBBoleto.Cedente.Modalidade. Desta forma, a linha digitável fica correta e o arquivo de remessa também, mas, na impressão do boleto, o banco precisa que o campo "Carteira" seja "RCR". Alguém já passou por um caso parecido? Pensei em utilizar algum outro campo do componente na impressão do boleto e informar o "RCR", mas tenho medo que comprometa outros bancos. Obrigada.
  17. Bom dia Estou homologando o boleto junto ao Santander. E percebi que após importar o arquivo retorno a linha digitável ficou diferente do esperado na remessa. Ao analisa o fonte ACBrBancoSantander.pas verifiquei que a divergência está no nosso número conforme detalhes: A Remessa: LInha 700: PadLeft(RightStr(NossoNumero,7),7,'0') + DigitoNossoNumero + // 63 a 70 O Retorno : Linha 1034: NossoNumero := Copy(Linha,63,08); Note a diferença, na remessa o nosso número tinha 8 dígitos sendo que os 7 primeiros é o nosso número e o 8º dígito é o Digito Verificador (que foi calculado anteriormente). No Retorno o fonte simplesmente lê os 8 dígitos como sendo o nosso número incorporando o dígito verificador. Sugiro a seguinte correção no retorno: Arquivo Fontes\Boleto\ACBrBancoSantander.pas Linha 1034: NossoNumero := Copy(Linha,63,07); //DigitoNossoNumero := Copy(Linha,70,01); //por hora comentando pois o digito é calculado sempre que necessário No meu caso após esta mudança a linha digitável ficou OK PS: Fonte trunk2 atualizado neste exato momento. Obrigado Márcio ACBrBancoSantander.pas
  18. Bom dia @Juliana Tamizou! Conforme orientação no tópico antigo, sugestão para remover o dígito da agência do banco Santander da montagem do campo "Agência / Código Beneficiário". Sim, o arquivo anexado está atualizado. ACBrBancoSantander.pas
  19. Boa tarde Colegas, Estou utilizando o ACBr para envio da remessa e retorno do banco Santander, mas no processamento do retorno encontrei um problema, ou talvez foi feito para ser assim (MotivoRejeicaoComando - somente motivos de rejeição). Primeiro resumidamente é que o Motivo que vem no arquivo quando é liquidação ou baixa(Ocorrência 06 ou 09) ou não está entrando na rotina Titulo.MotivoRejeicaoComando.Add. Assim não temos disponíveis os motivos das ocorrências na baixa/liquidação. Versão mais detalhada: procedure TACBrBancoSantander.LerRetorno240 Layout: Santander - CNAB 240 - Layout de Arquivo - Padrão 240 – Cobrança - Versão 2.8.3 - Setembro/2017 Nota 41 - Indica que o código de ocorrência 03(03 - Entrada rejeitada), 26(26 - instrução rejeitada) e 30(30 - alteração de dados rejeitada) estão relacionados com a nota 41-a E os códigos 06(liquidação), 09(baixa) e 17 estão relacionados com a nota 41-C - Ai temos uma relação - Códigos de rejeições de 01 a 64 associados ao códigos de movimento 03, 26 e 30 - E temos uma relação de Código de liquidação/baixa de 01 a 13 associados ao código de movimento 06, 09 e 17 Bom, analisando um arquivo de retorno do Santander, no segmento, T, na coluna 209(Motivo), quando a ocorrência vem 06(Liquidação) veio os motivos 03(No próprio banco) e 04(Compensação eletrônica). Ai analisando o arquivo do Acbr ( ACBrBancoSantander.pas ) verifiquei que na leitura do retorno na procedure TACBrBancoSantander.LerRetorno240 - DoVerOcorrencia Só tem a tratativa dos motivos das ocorrências 03, 26 e 30, as quais estão ligadas somente as rejeições. if MatchText(AOcorrencia, ['03', '26', '30']) then Mas eu preciso dos motivos das ocorrências 06, 09 e 17, principalmente da 06 e 09 Então minha sugestão de alteração do código seria: if MatchText(AOcorrencia, ['03', '06', '09', '17', '26', '30']) then begin pMotivoRejeicao:= 209; for I:= 0 to 4 do begin CodMotivo:= StrToIntDef(copy(Linha,pMotivoRejeicao,2),0); if CodMotivo > 0 then begin Titulo.MotivoRejeicaoComando.Add(copy(Linha, pMotivoRejeicao, 2)); Titulo.DescricaoMotivoRejeicaoComando.Add(CodMotivoRejeicaoToDescricao( Titulo.OcorrenciaOriginal.Tipo,CodMotivo)); end; Inc(pMotivoRejeicao, 2); end; if AOcorrencia = '03' then Tipo:= toRetornoRegistroRecusado else if AOcorrencia = '26' then Tipo := toRetornoInstrucaoRejeitada else if AOcorrencia = '30' then Tipo := toRetornoAlteracaoDadosRejeitados else if MatchText(AOcorrencia, ['06', '09']) then Tipo := CodOcorrenciaToTipo(StrToInt(AOcorrencia)) else if AOcorrencia = '17' then Tipo := toRetornoLiquidadoAposBaixaOuNaoRegistro end Ou seja incluir no primeiro if o '06', '09', '17'... E colocar no if do Tipo adicionar o 06 , 09 e 17. os quais puxei de baixo onde ele entrava antes. Ver a possibilidade de alteração para que possamos ter os motivos nas ocorrências: (09-baixa ou 06-liquidação) ou se MotivoRejeicaoComando é somente para rejeições e não tem a opção de pegar o motivo quando da baixa. Mas iria enviar o arquivo em anexo do fonte atualizado (2018.05.30) com a alteração mencionada, caso MotivoRejeicaoComando não seja somente rejeição. Mas fui testar a modificação e ai descobri que os códigos de motivos que retornam são os códigos do layout 400. Layout: PRODUTOS RECEBIMENTOS - CNAB 400 (padrão Santander) - Com Registro - Versão 2.17 – Outubro/2017 Página 22 - Nota 13: Códigos de Ocorrências - temos os códigos com 3 dígitos - e na 240 temos com dois dígitos o motivo. Então, seguindo o padrão do ACBrBancoBrasil.pas eu cadastrei os códigos dos motivos para o CNAB 240. Então tive que mudar na procedure TACBrBancoSantander.LerRetorno240 - DoVerOcorrencia Esse código : if AOcorrencia = '03' then Tipo:= toRetornoRegistroRecusado else if AOcorrencia = '26' then Tipo := toRetornoInstrucaoRejeitada else if AOcorrencia = '30' then Tipo := toRetornoAlteracaoDadosRejeitados else if MatchText(AOcorrencia, ['06', '09']) then Tipo := CodOcorrenciaToTipo(StrToInt(AOcorrencia)) else if AOcorrencia = '17' then Tipo := toRetornoLiquidadoAposBaixaOuNaoRegistro; Antes do código da rejeição, pois é necessário saber o Tipo na rotina CodMotivoRejeicaoToDescricao, então ficou assim esse trecho: if MatchText(AOcorrencia, ['03', '06', '09', '17', '26', '30']) then begin if AOcorrencia = '03' then Tipo:= toRetornoRegistroRecusado else if AOcorrencia = '26' then Tipo := toRetornoInstrucaoRejeitada else if AOcorrencia = '30' then Tipo := toRetornoAlteracaoDadosRejeitados else if MatchText(AOcorrencia, ['06', '09']) then Tipo := CodOcorrenciaToTipo(StrToInt(AOcorrencia)) else if AOcorrencia = '17' then Tipo := toRetornoLiquidadoAposBaixaOuNaoRegistro; pMotivoRejeicao:= 209; for I:= 0 to 4 do begin CodMotivo:= StrToIntDef(copy(Linha,pMotivoRejeicao,2),0); if CodMotivo > 0 then begin Titulo.MotivoRejeicaoComando.Add(copy(Linha, pMotivoRejeicao, 2)); Titulo.DescricaoMotivoRejeicaoComando.Add(CodMotivoRejeicaoToDescricao( Titulo.OcorrenciaOriginal.Tipo,CodMotivo)); end; Inc(pMotivoRejeicao, 2); end; Bom agora a mudança no procedimento CodMotivoRejeicaoToDescricao somente a parte do else para o CNAB 240: else // 240 begin case TipoOcorrencia of toRetornoComandoRecusado: //03 (Entrada rejeitada) case CodMotivo of 01: Result:='Codigo do banco invalido'; 02: Result:='Codigo do registro detalhe invalido'; 03: Result:='Codigo do segmento invalido'; 04: Result:='Codigo do movimento nao permitido para carteira'; 05: Result:='Codigo de movimento invalido'; 06: Result:='Tipo/numero de inscricao do beneficiário invalidos'; 07: Result:='Agencia/Conta/DV invalido'; 08: Result:='Nosso numero invalido'; 09: Result:='Nosso numero duplicado'; 10: Result:='Carteira invalida'; 11: Result:='Forma de cadastramento do titulo invalido'; 12: Result:='Tipo de documento invalido'; 13: Result:='Identificacao da emissao do bloqueto invalida'; 14: Result:='Identificacao da distribuicao do bloqueto invalida'; 15: Result:='Caracteristicas da cobranca incompativeis'; 16: Result:='Data de vencimento invalida'; 17: Result:='Data de vencimento anterior a data de emissao'; 18: Result:='Vencimento fora do prazo de operacao'; 19: Result:='Titulo a cargo de Bancos Correspondentes com vencimento inferior XX dias'; 20: Result:='Valor do titulo invalido'; 21: Result:='Especie do titulo invalida'; 22: Result:='Especie nao permitida para a carteira'; 23: Result:='Aceite invalido'; 24: Result:='Data da emissao invalida'; 25: Result:='Data da emissao posterior a data'; 26: Result:='Codigo de juros de mora invalido'; 27: Result:='Valor/Taxa de juros de mora invalido'; 28: Result:='Codigo do desconto invalido'; 29: Result:='Valor do desconto maior ou igual ao valor do titulo '; 30: Result:='Desconto a conceder nao confere'; 31: Result:='Concessao de desconto - ja existe desconto anterior'; 32: Result:='Valor do IOF invalido'; 33: Result:='Valor do abatimento invalido'; 34: Result:='Valor do abatimento maior ou igual ao valor do titulo'; 35: Result:='Abatimento a conceder nao confere'; 36: Result:='Concessao de abatimento - ja existe abatimento anterior'; 37: Result:='Codigo para protesto invalido'; 38: Result:='Prazo para protesto invalido'; 39: Result:='Pedido de protesto nao permitido para o titulo'; 40: Result:='Titulo com ordem de protesto emitida'; 41: Result:='Pedido de cancelamento/sustacao para titulos sem instrucao de protesto'; 42: Result:='Codigo para baixa/devolucao invalido'; 43: Result:='Prazo para baixa/devolucao invalido'; 44: Result:='Codigo da moeda invalido'; 45: Result:='Nome do pagador nao informado'; 46: Result:='Tipo/numero de inscricao do pagador invalidos'; 47: Result:='Endereco do pagador nao informado'; 48: Result:='CEP invalido'; 49: Result:='CEP sem praca de cobranca /nao localizado'; 50: Result:='CEP referente a um Banco Correspondente'; 51: Result:='CEP incompativel com a unidade da federacao'; 52: Result:='Unidade da federacao invalida'; 53: Result:='Tipo/numero de inscricao do sacador/avalista invalidos'; 54: Result:='Sacador/Avalista nao informado'; 55: Result:='Nosso numero no Banco Correspondente nao informado'; 56: Result:='Codigo do Banco Correspondente nao informado'; 57: Result:='Codigo da multa invalido'; 58: Result:='Data da multa invalida'; 59: Result:='Valor/Percentual da multa invalido'; 60: Result:='Movimento para titulo nao cadastrado'; 61: Result:='Alteracao da agencia cobradora/dv invalida'; 62: Result:='Tipo de impressao invalido'; 63: Result:='Entrada para titulo ja cadastrado'; 64: Result:='Numero da linha invalido'; 65: Result:='A espécie de título não permite a instrução'; 72: Result:='Entrada de título Sem Registro'; 90: Result:='Identificador/Quantidade de Parcelas de carnê invalido'; 92: Result:='Data de Desconto Inválida'; end; toRetornoLiquidadoSemRegistro, toRetornoLiquidado, toRetornoLiquidadoPorConta, toRetornoLiquidadoSaldoRestante, toRetornoLiquidadoEmCartorio: // 05, 06, 07, 08 e 15 (Liquidado) case CodMotivo of 01: Result:='01-Por saldo'; 02: Result:='02-Por conta'; 03: Result:='03-No próprio banco'; 04: Result:='04-Compensação eletrônica'; 05: Result:='05-Compensação convencional'; 06: Result:='06-Arquivo magnético'; 07: Result:='07-Após feriado local'; 08: Result:='08-Em cartório'; 09: Result:='09-Pagamento Parcial'; end; else Result := IntToStrZero(CodMotivo, 2) + ' - Outros Motivos'; end; //case TipoOcorrencia end; //else 240 Assim eu consegui ler código do motivo quando a ocorrência vem como liquidado. Como disse não sei se o MotivoRejeicaoComando utiliza somente rejeição, mas a julgar pelo fonte do banco do Brasil, acredito que não, assim esse correção seria interessante. Estou enviando o fonte do Acbr do Santander para análise para verificar a possível alteração. Caso precisem dos manuais também posso disponibiliza-los aqui. Nos testes que fiz aqui deram certo. Abraços, Rodrigo ACBrBancoSantander.pas
  20. Boa Tarde, Estou fazendo homologação do boleto e arquivo de remessa do banco santander com o componente ACBrBoleto. Eu enviei os arquivo para teste e o banco me retornou o seguinte: "No segmento P na posição 58 deve ser: 5, que se refere que a impressão e a emissão de entrega dos boletos feitos na própria empresa, caso for trabalhar com a carteira “1” onde é o banco que realiza o envio da entrega dos boletos via correio deve contatar o seu gerente para incluir esta modalidade em seu convênio. No segmento R na posição 66 informar o denominador “1” Valor fixo ou “2” taxa percentual" Com relação a primeira rejeição eu passei para o componente o seguinte : ResponEmissao := tbCliEmite; e na segunda eu estou informando ao componente CodigoMoraJuros := cjIsento; porém o arquivo continua sendo gerado da mesma forma. estou informando algo errado?
  21. Bom dia, estou tentado registrar remessa bancaria 240 posições carteira ECR Santander e estou com um erro na linha P (linha 3) posição 226/227 (sempre sai informado '30' ao invés de '00'). Na posição 224 coloquei o código 3 (código de baixa/devolução utilizar perfil do beneficiário), posição 225 é fixo '0' e finalmente na posição 226/227 eu teria que informar no caso de sem protesto o valor '00' mas como sempre sai '30' a homologação bancária do Santander está recusando meu arquivo. Segue abaixo gambi que fiz nos fontes para funcionar e mais abaixo o e-mail do banco. Segue comentários do banco: ID Linha Tipo Crítica Descrição 227216 3 NEGOCIO Número de dias para Baixa/Devolução invalido ou não informado Observando o Layout na posição 224 deve inserir o código de baixa No seu arquivo você inseriu o código 3 ( conta na nota 26) Porem nas posições 226-227 você inclui 30 (baixar em 30 dias) mas deve ser 00 pois escolheu perfil beneficiário Fim
  22. Olá pessoal, estou com uma duvida. Estive verificando e implementando um retorno das mensagens das ocorrências do arquivo de retorno, para que se possa saber a situação de cada registro, sendo como um exemplo caso esteja rejeitado pelos dados estarem inválidos, então estava verificando o Santander e percebi que o retorno das ocorrências difere e muito da tabela que o manual apresenta, e a função que faz esse retorno recebe como parâmetro o tipo da ocorrência e o código da ocorrência mas somente verifica o código e retorna uma mensagem, minha dúvida seria se estaria correto do jeito que esta, ou teria que ser feita uma mudança para ficar como o manual, verificando também pelo tipo de ocorrência ? Uma pensamento que me veio a mente é que nos outros bancos essa função possui um "IF" para verificar o layout do arquivo antes de verificar o Tipo de Ocorrência e o Código do Motivo, podendo estar faltando essa lógica para o Santander. Abaixo estará a imagem da Função e logo após a imagem do manual. Imagem da Função do ACBrBancoSantander Imagem da Tabela do Manual Bom minha duvida seria essa ! Acredito que saber as ocorrências do retorno ajudariam o cliente a ter em mãos mais informações sobre como esta o registro que foi gerado. Manual Santander : Layout CNAB 240 posições Ago de 2013 v2.01.pdf O Manual é o mesmo encontrado na pasta Acbr\tools\Bancos\Santander. Desde já agradeço a atenção de todos.
  23. Boa tarde, Ao fazer a leitura da remessa de cobrança, a propriedade Sacado.CNPJCPF não está salvando os números corretamente. Quando é pessoa física está pegando os zeros a esquerda. Deve-se fazer o mesmo tratamento que na leitura do Cedente. Veja a minha adaptação (método LerRetorno240, claro que essa adaptação deve se estender para os demais métodos): // Sacado if Copy(Linha, 128, 1) = '1' then begin Sacado.Pessoa := pFisica; Sacado.CNPJCPF := Trim(Copy(Linha, 133, 11)); end else begin Sacado.Pessoa := pJuridica; Sacado.CNPJCPF := Trim(Copy(Linha, 129, 15)); end; Sacado.NomeSacado := Trim(Copy(Linha, 144, 40)); Estou fazendo a leitura das remessas de cobrança para dar baixa no sistema financeiro que tenho. Os clientes estão cadastrados pelo CPF ou CNPJ, no caso de CNPJ está certo, mas quando busco por CPF o meu sistema não encontra o registro, já que o CPF está vindo com dígitos à esquerda a mais. Rodrigo.
  24. Olá pessoal Gerando Remessa Santander com carteira errado (Segmento P Coluna 58 com 1 ao inves de 5). O programa está carregando a carteira com 5! Estava com um versão antiga no meu cliente de um programa que ainda usava o trunk1 do ACBR, mas ao atualizar o programa para a versão do trunk2, e recompilar, o sistema começou a gerar remessa com 1 no lugar do 5 na coluna 58 no segmento P na Remessa de 240 do Santander. Alguém tem alguma dica??
  25. Bom dia Estou lendo o arquivo de retorno CNAB400 do Santander e estava acusando erro 'Agencia\Conta do arquivo inválido'. Observando o arquivo AcbrBancoSantander.pas verifiquei que estava sendo usando o campo fpTamanhoConta para identificar a conta do cliente: rConta := PadLeft( OnlyNumber(rConta),fpTamanhoConta,'0'); E observei que no create da classe fpTamanhoConta estava sendo atribuído 11. Como a conta do cliente possui 8 dígitos, fiz um teste, passando foTamanhoConta para 8, e neste teste a leitura do arquivo retorno foi feita corretamente. Existe alguma forma de alterar o fpTamanhoConta sem alterar o arquivo AcbrBancoSantander.pas ou a correção deve ser feita no arquivo mesmo? Obrigado
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.