marciamagall
Membro Verificado-
Total de ítens
53 -
Registro em
-
Última visita
Sobre marciamagall

Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
marciamagall's Achievements
-
[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?
