marciamagall
Membro Verificado-
Total de ítens
53 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que marciamagall postou
-
[ACBR-9418] API Cobrança Bradesco - Registro de Boleto
marciamagall replied to Rafaelbudag 's tópico in ACBrBoleto
Bom dia Juliomar, resolveu sim. Hoje eu estou enviando boletos bradesco com qrcode e sem. Funciona perfeitamente. Só a parte de alteração de boleto que não estou conseguindo fazer, mas o envio, está normal. -
[ACBR-9418] API Cobrança Bradesco - Registro de Boleto
marciamagall replied to Rafaelbudag 's tópico in ACBrBoleto
Pode ser algo com o cnpj do beneficiário. Vc está enviando nroCpfCnpjBenef":"615050001","filCpfCnpjBenef":"0","digCpfCnpjBenef":"70", eu acho q está errado. Tem q ser divido em: nroCpfCnpjBenef(8 primeiros dígitos) , filCpfCnpjBenef (4digitos) e digCpfCnpjBenef (2 últimos dígitos). -
[ACBR-9418] API Cobrança Bradesco - Registro de Boleto
marciamagall replied to Rafaelbudag 's tópico in ACBrBoleto
E vc está enviando o bearer no envio do boleto? Pq se fosse algo errado com o json do boleto, deveria vir um 400 bad resquest. No seu caso, está vindo o 403 forbidden. Eu acho q é o token que está errado. -
[ACBR-9418] API Cobrança Bradesco - Registro de Boleto
marciamagall replied to Rafaelbudag 's tópico in ACBrBoleto
Bom dia, vc está conseguindo obter o access_token antes do envio do boleto? Na requisição https://openapi.bradesco.com.br/auth/server-mtls/v2/token está vindo 200? -
[ACBR-9418] API Cobrança Bradesco - Registro de Boleto
marciamagall replied to Rafaelbudag 's tópico in ACBrBoleto
Não está funcional o bradesco no acbr. Eu tive que fazer muitas alterações para conseguir utilizar o bradesco. Ainda assim, não consigo fazer alterações na data de vencimento por exemplo. Só consigo enviar boletos, tanto com qrcode, como sem. Estou enviando as duas units que eu mexi pra funcionar. ACBrBoletoW_Bradesco.pas ACBrBoletoRet_Bradesco.pas -
Boa tarde, vou atualizar meu componente acbr e testar. Só que como era um erro intermitente, vamos ter que aguardar um tempo pra ter certeza que resolveu.
-
[ACBR-9418] API Cobrança Bradesco - Registro de Boleto
marciamagall replied to Rafaelbudag 's tópico in ACBrBoleto
Obrigada Rafael, com o seu .pas consegui emitir o boleto. Só tive que fazer um ajuste. Retirei o StrToIntDef dessa linha: LJsonObject.AddPair('nuCpfcnpjPagador', OnlyNumber(ATitulo.Sacado.CNPJCPF)); pois com cnpj esse campo ficava zerado no json. -
[ACBR-9418] API Cobrança Bradesco - Registro de Boleto
marciamagall replied to Rafaelbudag 's tópico in ACBrBoleto
Boa tarde, mais uma coisa a respeito do número do logradouro. Não seria melhor passar o número mesmo ao invés de mandar o zero fixo? Hoje está assim: LJsonObject.AddPair('logradouroPagador', Copy(TiraAcentos(ATitulo.Sacado.Logradouro) + ' ' +ATitulo.Sacado.Numero, 1, 40)); LJsonObject.AddPair('NuLogradouroPagador', 0);//FIXO Minha sugestão é alterar para: LJsonObject.AddPair('logradouroPagador', Copy(TiraAcentos(ATitulo.Sacado.Logradouro), 1, 40)); LJsonObject.AddPair('nuLogradouroPagador', ATitulo.Sacado.Numero); -
[ACBR-9418] API Cobrança Bradesco - Registro de Boleto
marciamagall replied to Rafaelbudag 's tópico in ACBrBoleto
Boa tarde, eu estou tentando enviar o valor da forma que o banco bradesco exige e não consigo. Preciso enviar da seguinte forma: "vlNominalTitulo":1.00. Enviando assim: "vlNominalTitulo":"1.00", dá erro de conversão (ErrorCode=422 Result=Erro na convers o de campos). Enviando assim (do jeito que está hoje no acbr): "vlNominalTitulo":1, dá o seguinte erro: ErrorCode=400 Result={ "errors" : [ "Campo (vlNominalTitulo) deve conter somente n meros com duas casas decimais (Ex 1000.00)." ]} Como resolver isso? Alguém já conseguiu? -
Bom dia, eu estou com o mesmo problema com o Cnab Santander API. Me parece que o retorno do banco vem com vazio, só com um enter. ArqBoletoWS.log
-
Existe o banco 197 - Stone configurado para impressão de boletos?
marciamagall replied to marciamagall 's tópico in ACBrBoleto
Juliomar, bom dia. Mas como foi impresso utilizando o acbr, um boleto do banco stone, com logo e tudo? Eu também procurei e não encontrei nada nos fontes. Boleto.pdf -
Existe o banco 197 - Stone configurado para impressão de boletos?
um tópico no fórum postou marciamagall ACBrBoleto
Bom dia, É possível utilizar o banco 197 Stone na impressão de boletos hoje pelo componente ACBr? Não sei o que houve, mas aconteceu de imprimir um boleto com banco errado, e estou procurando nos fontes do acbr e não estou encontrando o banco 197. -
Ele volta sim, peguei a parte do log que retorna o valor correto pago com multa: 30/05/25 10:59:06:800 - Retorno Envio: TBoletoW_Santander_API 30/05/25 10:59:06:800 - C digo do Envio: 200 1.1 OK 30/05/25 10:59:06:801 - Retorno Envio: {"_pageable":{"_moreElements":false},"_content":[{"returnCode":"000 - Consulta realizada com sucesso","documentNumber":"05441657000108","beneficiaryCode":45485,"bankNumber":15290,"clientNumber":"00478162A","dueDate":"2025-05-20","nominalValue":483.01,"issueDate":"2025-04-22","participantCode":"","status":"Baixado","statusComplement":"Via Pagamento Pix","interestValue":0.00,"discountValue":0.00,"deductionValue":0.00,"paidValue":492.83}]}
-
Dúvida sobre método LerRetorno do Santander CnabAPi com boleto pago com pix
um tópico no fórum postou marciamagall ACBrBoleto
Boa tarde. Estou com uma dúvida no método LerRetorno da unit ACBrBoletoRet_Santander_API. Estou testando boletos pagos com MULTA, onde o valor pago é maior que o valor original do boleto. Nos testes com boletos pagos pelo código de barras, o retorno é processado corretamente e o valor pago vem correto. Nos boletos pagos com o qrcode, via pix, o valor pago, quando existe a multa, volta com o valor original do boleto, e não vem o valor pago com multa. Vou colocar um pedaço do json de retorno como exemplo. { "_pageable": { "_moreElements": false }, "_content": [ { "returnCode": "000 - Consulta realizada com sucesso", "documentNumber": "05441657000108", "beneficiaryCode": 45485, "bankNumber": 15290, "clientNumber": "00478162A", "dueDate": "2025-05-20", "nominalValue": 483.01, "issueDate": "2025-04-22", "participantCode": "", "status": "Baixado", "statusComplement": "Via Pagamento Pix", "interestValue": 0.0, "discountValue": 0.0, "deductionValue": 0.0, "paidValue": 492.83 } ] }, Essa é a parte que volta o valor com multa e esse bloco não está sendo lido na function LerRetorno. Abaixo a parte do código de deveria ser corretamente o paidValue mas não está lendo: ( debugando o LExisteBankSlip é true, e o nindiceobj fica com o valor 1, que é exatamente esse bloco acima q coloquei do json, mas o paidvalue está dentro de um _content e isso não está no bloco de código . if LExisteBankSlip then nIndiceOBJ := strtoint(IfThen(LTotalObjetos>1,'1','0')) else nIndiceOBJ := 0; LJSONObject := LJsonArray.ItemAsJSONObject[nIndiceOBJ]; if nIndiceOBJ = 0 then begin ARetornoWS.DadosRet.TituloRet.NossoNumero := LJSONObject.AsString['bankNumber']; ARetornoWS.DadosRet.TituloRet.SeuNumero := LJSONObject.AsString['clientNumber']; if ARetornoWS.DadosRet.TituloRet.Vencimento = 0 then ARetornoWS.DadosRet.TituloRet.Vencimento := StringToDateTimeDef(LJSONObject.AsString['dueDate'], 0, 'yyyy-mm-dd'); if ARetornoWS.DadosRet.TituloRet.DataDocumento = 0 then ARetornoWS.DadosRet.TituloRet.DataDocumento := StringToDateTimeDef(LJSONObject.AsString['issueDate'], 0, 'yyyy-mm-dd'); if ARetornoWS.DadosRet.TituloRet.ValorDocumento = 0 then ARetornoWS.DadosRet.TituloRet.ValorDocumento := LJSONObject.AsFloat['nominalValue']; if NaoEstaVazio(ARetornoWS.DadosRet.TituloRet.EstadoTituloCobranca) then ARetornoWS.DadosRet.TituloRet.CodigoEstadoTituloCobranca := RetornaCodigoOcorrencia(LJSONObject.AsString['status']); end; if EstaVazio(ARetornoWS.DadosRet.TituloRet.CodigoEstadoTituloCobranca) then ARetornoWS.DadosRet.TituloRet.CodigoEstadoTituloCobranca := RetornaCodigoOcorrencia(LJSONObject.AsString['status']); ARetornoWS.DadosRet.TituloRet.ValorDesconto := LJSONObject.AsFloat['discountValue']; ARetornoWS.DadosRet.TituloRet.ValorPago := LJSONObject.AsFloat['paidValue']; ARetornoWS.DadosRet.TituloRet.ValorMoraJuros := LJSONObject.AsFloat['interestValue']; ARetornoWS.DadosRet.TituloRet.ValorAbatimento := LJSONObject.AsFloat['deductionValue']; No caso do boleto pago com codigo de barras, o valor está em outra parte do json e a função busca corretamente. A leitura do valor pago está nesse bloco abaixo para o boleto pago com código de barras: //settlementData consulta para pegar data do pagamento if (LJsonArray.ItemAsJSONObject[nIndiceOBJ].AsJSONArray['settlementData'].Count > 0) then begin if LJsonArray.ItemAsJSONObject[nIndiceOBJ].ValueExists('settlementData') then begin LJSONObject := LJsonArray.ItemAsJSONObject[nIndiceOBJ].AsJSONArray['settlementData'].ItemAsJSONObject[0]; if ARetornoWS.DadosRet.TituloRet.DataCredito = 0 then ARetornoWS.DadosRet.TituloRet.DataCredito := StringToDateTimeDef(LJSONObject.AsString['settlementCreditDate'], 0, 'yyyy-mm-dd'); if ARetornoWS.DadosRet.TituloRet.DataMovimento = 0 then ARetornoWS.DadosRet.TituloRet.DataMovimento := StringToDateTimeDef(LJSONObject.AsString['settlementDate'], 0, 'yyyy-mm-dd'); if ARetornoWS.DadosRet.TituloRet.DataBaixa = 0 then ARetornoWS.DadosRet.TituloRet.DataBaixa := StringToDateTimeDef(LJSONObject.AsString['settlementDate'], 0, 'yyyy-mm-dd'); ARetornoWS.DadosRet.TituloRet.ValorPago := LJSONObject.AsCurrency['settlementCreditedValue']; if EstaVazio(ARetornoWS.DadosRet.TituloRet.CodigoEstadoTituloCobranca) then ARetornoWS.DadosRet.TituloRet.CodigoEstadoTituloCobranca := RetornaCodigoOcorrencia(LJSONObject.AsString['status']); if EstaVazio(ARetornoWS.DadosRet.TituloRet.EstadoTituloCobranca) then ARetornoWS.DadosRet.TituloRet.EstadoTituloCobranca := LJSONObject.AsString['status']; ARetornoWS.DadosRet.TituloRet.ValorTarifa := LJSONObject.AsFloat['settlementDutyValue']; end; end; Preciso de uma ajuda, alguém já passou por isso? -
Boa tarde, ok Juliomar, vou fazer isso. Obrigada!
-
Existe uma forma de imprimir um boleto itau sem o qrCode? Eu enviei o boleto via api, e quero imprimir sem o qrcode, pois por enquanto não vou querer que os clientes façam o pagamento utilizando o qrcode. Tentei limpar o emv, url e txId mas o componente não deixa limpar. Mesmo limpando as propriedades, elas voltam. Tentei mudar o layout para lPadrao mas também é impresso o qrcode. Tentei alterar o ACBrBoleto.Cedente.CedenteWS.IndicadorPix para False, somente na hora de imprimir e também não deu certo. Vou explicar pq ainda não quero que paguem utilizando o qrcode. Na consulta do boleto (view=specific), os dados (pagamentos_cobranca) não são retornados. Somente os pagamentos via código de barras retornam o valor pago, valor da multa, e data do pagamento. Se eu conseguir imprimir o boleto sem o qrcode seria melhor.
-
Juliomar, bom dia. Desculpe a demora pelo retorno, mas eu precisei aguardar pra atualizar o acbr. Agora que atualizei e testei novamente, continuo com o mesmo problema. A única forma de resolver o erro que estou tendo, foi mexendo na unidade ACBrBoleto.pas. A alteração que eu fiz foi a seguinte: procedure TACBrWebService.SetCertificado(const Value: AnsiString); begin FCertificado := Value; if Value<>'' then //adicionado if FArquivoCRT := EmptyStr; end; procedure TACBrWebService.SetChavePrivada(const Value: AnsiString); begin FChavePrivada := Value; if Value<>'' then //adicionado if FArquivoKEY := EmptyStr; end; Feito isso, o boleto pix é enviado normalmente sem erros.
-
Bom dia. Estou fazendo exatamente igual o que está nesse link enviado. Essa parte que perde o conteúdo dos arquivos key e crt ocorre debugando dentro do fonte do acbr. Vou colocar dois prints para melhor entendimento. No meu entendimento, nem teria lógica setar as propriedades ArquivoCRT e ArquivoKEY, sabendo que nas linhas abaixo elas serão obrigatoriamente limpas, não é? Isso dentro do método DefinirCertificado.
-
Não estou usando PIX, é um boleto com qrcode. (bolecode) Eu acredito que preenchi no componente somente o que é necessário. Sempre preciso enviar os arquivos .key e o .crt em todos os envios de boleto do banco itaú. Mas nesse ponto do código que passei, ele limpa os arquivos. Isso porque: procedure TACBrWebService.SetChavePrivada(const Value: AnsiString); begin FChavePrivada := Value; FArquivoKEY := EmptyStr; end;
-
Bom dia. Estou com uma dúvida nessa parte do fonte do ACBR. { TBoletoWSREST } procedure TBoletoWSREST.DefinirCertificado; begin BoletoWS.ArquivoCRT := Boleto.Configuracoes.WebService.ArquivoCRT; BoletoWS.ArquivoKEY := Boleto.Configuracoes.WebService.ArquivoKEY; BoletoWS.ChavePrivada := Boleto.Configuracoes.WebService.ChavePrivada; BoletoWS.Certificado := Boleto.Configuracoes.WebService.Certificado; Estou tentando registrar um bolecode no banco itaú, e passei os arquivos CRT e KEY. Consigo pegar o acess_token normalmente, mas quando vou enviar o boleto, passa por esse código acima, e a ChavePrivada e Certificado estão vazios. Ao passar por essas linhas, o ArquivoCRT, e ArquivoKey ficam limpos, pois no set dessas propriedades, obrigatoriamente limpa o ArquivoCRT e ArquivoKey. Como sempre vai passar por essas linhas, é inútil eu setar o arquivoCRT e ArquivoKey pois elas estão sendo apagadas no set da ChavePrivada e Certificado. O que estou fazendo de errado? Porque preciso enviar o ArquivoCRT e ArquivoKey no envio do bolecode.
-
Bom dia. Descobri porque dava o erro "Falha Envio: "CarregarCertificadoDeNumeroSerie" não suportado em: TDFeSSLCryptClass" ao tentar enviar o boleto para o banco Credisis. Tem que setar a propriedade ABoleto.Configuracoes.WebService.UseCertificateHTTP para False. Fazendo isso, o certificado não é mais solicitado. Obrigada!
-
Tem o banco sim, só não sei como implementar. Vi que existe o exemplo dos outros bancos, mas do credisis não achei. Não sei porque está pedindo o arquivo PFX. Talvez alguma propriedade do componente que não alimentei.
-
Juliomar, boa tarde. Tanto nesse link, que eu já tinha visto, como também no arquivo configWebService.txt que está na pasta do exemplo ACBr, não tem sobre o banco credisis.
-
Bom dia! Gostaria de saber se alguém tem alguma configuração exemplo do componente ACBrBoleto para o envio via api do cnab para o banco Credisis. Precisa parametrizar as propriedades do arquivo PFX? Fiz a programação para o banco do brasil e não necessitou do certificado. Estou tendo o retorno: "Falha Envio: DadosPFX, ArquivoPFX, URLPFX ou NumeroSerie não especificados !" Tentei enviar só o Numero de Série e não funcionou, deu esse outro erro: "Falha Envio: "CarregarCertificadoDeNumeroSerie" não suportado em: TDFeSSLCryptClass". Obrigada!
