Ir para conteúdo
  • Cadastre-se

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

  1. 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.
  2. 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).
  3. 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.
  4. 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?
  5. 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
  6. 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.
  7. 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.
  8. 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);
  9. 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?
  10. 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
  11. 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
  12. 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.
  13. Bom dia, modifiquei a unit e testei tanto com boleto pago via pix como para boleto pago via código de barras. ACBrBoletoRet_Santander_API.pas
  14. 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}]}
  15. 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?
×
×
  • 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.

The popup will be closed in 10 segundos...