luizduesoft Postado 2 Julho Postado 2 Julho Bom dia, galera! Estou enfrentando um erro ao tentar enviar boletos pela API do Bradesco usando o ACBrMonitor. Já realizei o cadastro na plataforma Bradesco Developers, onde recebi o ClientID, ClientSecret e também o certificado .cer. No entanto, ao tentar realizar a transmissão do boleto, o ACBrMonitor retorna o seguinte erro: ERRO: Falha ao Enviar Boleto. Erro: Error loading Private Key Error: 151584876 - error:0909006C:PEM routines:get_name:no start line Pelo que entendi, o ACBr está tentando carregar a chave privada (.key), mas não recebi esse arquivo no processo de cadastro na API. Alguém já passou por isso? Sabem como gerar ou obter o arquivo .key necessário para configurar corretamente o certificado no ACBrMonitor? Desde já, agradeço qualquer ajuda!
Moderadores Juliomar Marchetti Postado 2 Julho Moderadores Postado 2 Julho é junto com o banco lá em developer. mas já indico pra entrar em contato seja com o banco ou o gerente da conta Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
João vitor Batista Postado 17 Julho Postado 17 Julho Bom dia Estou com esse erro Falha Envio: Error loading Private Key mais já tenho os certificados {$REGION 'BRADESCO'} if Boleto.Banco.TipoCobranca = cobBradesco then begin if QrContas.FieldByName('AMBIENTE').Value = 2 then begin Boleto.Homologacao := True; Boleto.Configuracoes.WebService.Ambiente := tawsHomologacao; end else begin Boleto.Homologacao := false; Boleto.Configuracoes.WebService.Ambiente := tawsProducao; end; Boleto.Configuracoes.WebService.UseCertificateHTTP := true; Boleto.Configuracoes.Arquivos.NomeArquivoLog := RxContaCorrente.Text + 'LoggBoletoBradesco.txt' ; Boleto.Configuracoes.Arquivos.PathGravarRegistro := frmPrincipal.QrMpadraoPASTA_PUBLICA.AsString; Boleto.Cedente.CedenteWS.ClientID := CLIENT_ID; Boleto.Cedente.CedenteWS.ClientSecret := CLIENT_SECRET; Boleto.Configuracoes.WebService.ArquivoCRT := frmPrincipal.QrMpadraoPASTA_PUBLICA.AsString + '\remessa' + QrContas.FieldByName('PASTAR').Value + '\parceiro.homologacao.cert.pem'; Boleto.Configuracoes.WebService.ArquivoKEY := frmPrincipal.QrMpadraoPASTA_PUBLICA.AsString + '\remessa' + QrContas.FieldByName('PASTAR').Value + '\parceiro.homologacao.key.pem'; end; {$ENDREGION} pelo que estava vendo o ArquivoKEY está sendo limpo na hora da requisição. Em 10/03/2025 at 19:49, Juliomar Marchetti disse: em princípio seria esse. pois ele não consegue retornar o token e dai não ocorre mais nada consegue conferir que está certo as credenciais?
Moderadores Juliomar Marchetti Postado 17 Julho Moderadores Postado 17 Julho 4 horas atrás, João vitor Batista disse: Bom dia Estou com esse erro Falha Envio: Error loading Private Key mais já tenho os certificados {$REGION 'BRADESCO'} if Boleto.Banco.TipoCobranca = cobBradesco then begin if QrContas.FieldByName('AMBIENTE').Value = 2 then begin Boleto.Homologacao := True; Boleto.Configuracoes.WebService.Ambiente := tawsHomologacao; end else begin Boleto.Homologacao := false; Boleto.Configuracoes.WebService.Ambiente := tawsProducao; end; Boleto.Configuracoes.WebService.UseCertificateHTTP := true; Boleto.Configuracoes.Arquivos.NomeArquivoLog := RxContaCorrente.Text + 'LoggBoletoBradesco.txt' ; Boleto.Configuracoes.Arquivos.PathGravarRegistro := frmPrincipal.QrMpadraoPASTA_PUBLICA.AsString; Boleto.Cedente.CedenteWS.ClientID := CLIENT_ID; Boleto.Cedente.CedenteWS.ClientSecret := CLIENT_SECRET; Boleto.Configuracoes.WebService.ArquivoCRT := frmPrincipal.QrMpadraoPASTA_PUBLICA.AsString + '\remessa' + QrContas.FieldByName('PASTAR').Value + '\parceiro.homologacao.cert.pem'; Boleto.Configuracoes.WebService.ArquivoKEY := frmPrincipal.QrMpadraoPASTA_PUBLICA.AsString + '\remessa' + QrContas.FieldByName('PASTAR').Value + '\parceiro.homologacao.key.pem'; end; {$ENDREGION} pelo que estava vendo o ArquivoKEY está sendo limpo na hora da requisição. Então faz o debug e veja em que momento ocorre isso e tente mudar ou pular para não remover o certificado e dai retorna aqui se resolveu Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
João vitor Batista Postado 21 Julho Postado 21 Julho pelo que eu estava vendo essa nova api esta diferente das configurações da atual. curl --location 'https://openapisandbox.prebanco.com.br/auth/server-mtls/v2/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Cookie: ak_bmsc=E3BCE9AC5B817EFEF3735977ABFB0C28~000000000000000000000000000000~YAAQCmwQAl7RXhaYAQAAo3EDLRwOVGXHvyj08G7XwrkQVFaCohna1nvWF/zpkCP2o2xrwwRFnt1lyukC00q6PVo1PTRTBR7QuUB9atDYygVYm58jDKTmBMxxq4Y8UJ7FCHW8qwsRjfaz9Cv27hvdPsTl+pMNbhQ0274W7Vz1WlX8lRKKQKDwfFAfBw5Gt9hQnByyIEPxLE9KLUDZamKy8QAsw+ggSfCZ+sLGHR/twVI7S+C9TAtG4+AhsJoP+YgC08Mzu+sGlayUnaK+pphyF6EXmCciWdYzcpUFd64r6qUkW0F/g2aaCKmgHBKWudhjUEtvmjX7ePQxwpgdbPDSg5BSx9n/h1+zfFufQdnRjuXqSbQIpkI2o7v0qZIs5XN0aw+wpuRm7N3Z; bm_sv=2519296BDC24C5403C781F4D28A9B0C6~YAAQC2wQAou3bPiXAQAANj8HLRwoRevktYdbRKnoSG7PqVTXW+SWrtsvQEkVTBbo9hMqkQCgtPxbSXBTUyG5ysK1020BWxOHTh6oylCYjwtS0iClQYqNCrNQa/YU0Vka2eUG1R8+R9sXP+2uhQf4d5NfZuxGioLzNr0RysO4h+74hOD6H8ih767Ifzijzxiqueh8jNBEwwh2qlEBgIA6iqeXgk2ECPitgb3Icj/fneofqZAPrhIc8qQ7z9oLr+NjgXv0lfo=~1; f0ee00a3c6086fde9072d03fe06f4365=29718e221b30149c658bd884744f6547' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id=&' \ --data-urlencode 'client_secret=&' hoje esta assim aqui nessa unit ACBrBoletoW_Bradesco; Em 17/07/2025 at 17:11, Juliomar Marchetti disse: Então faz o debug e veja em que momento ocorre isso e tente mudar ou pular para não remover o certificado e dai retorna aqui se resolveu function TBoletoW_Bradesco.GerarTokenAutenticacao: string; const PARAMS_OAUTH = ''; var LVersao : String; LJSonObject : TACBrJSONObject; begin OAuth.Payload := True; result:= ''; //FUnixTime := DateTimeToUnix(Now, False); FUnixTime := DateTimeToUnix(ACBrUtil.DateTime.DateTimeUniversal(ACBrUtil.DateTime.GetUTCSistema,Now)); if OAuth.Ambiente = tawsProducao then begin OAuth.URL.URLProducao := C_URL_OAUTH_PROD; LVersao := '1.1'; end else if OAuth.Ambiente = tawsHomologacao then begin OAuth.URL.URLHomologacao := C_URL_OAUTH_HOM; if Boleto.Cedente.CedenteWS.IndicadorPix then LVersao := '1.2' else LVersao := '1.1'; end; case Boleto.Configuracoes.WebService.Ambiente of tawsProducao: OAuth.URL.URLProducao := Format(OAuth.URL.URLProducao,['1.1']); //página 7; tawsHomologacao: OAuth.URL.URLHomologacao := Format(OAuth.URL.URLHomologacao,[LVersao]); end; if Assigned(OAuth) then begin OAuth.AuthorizationType := atJWT; OAuth.GrantType := 'urn:ietf:params:oauth:grant-type:jwt-bearer'; try LJSonObject := TACBrJSONObject.Create .AddPair('aud',OAuth.URL.GetURL) .AddPair('sub',Trim(Boleto.Cedente.CedenteWS.ClientID)) .AddPair('iat',FUnixTime - 3600 ) .AddPair('exp',FUnixTime + 3600) .AddPair('jti',FUnixTime * 1000) .AddPair('ver',LVersao); OAuth.ParamsOAuth := LJSonObject.ToJSON; finally LJSonObject.Free; end; OAuth.AddHeaderParam('Accept-Encoding', C_ACCEPT_ENCODING); OAuth.AddHeaderParam('Accept-Charset' , C_ACCEPT_CHARSET); OAuth.AddHeaderParam('Accept','*/*'); if OAuth.GerarToken then result := OAuth.Token else raise EACBrBoletoWSException.Create(ClassName + Format( S_ERRO_GERAR_TOKEN_AUTENTICACAO, [OAuth.ErroComunicacao] )); end; end;
Moderadores Juliomar Marchetti Postado 21 Julho Moderadores Postado 21 Julho Desculpe mas não entendi nada. está errado ou mudado. lembrando que será modificado pelo que pude notar em outros tópicos sobre o bradesco Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
João vitor Batista Postado 21 Julho Postado 21 Julho deu certo eu fiz uma nova classe , 21/07/25 13:34:53:896 -03:00 - Body Resposta (payload):{ "access_token" : "eyJhbGciOiJQUzI1NiJ9.ew0KICAgICJ2ZXIiOiAiMi4wIiwNCiAgICAic3ViIjogImU2OGFiMzUwLWZjZjctNDA3ZC1hNTFmLWU1N2NmYWMzOTZlNiIsDQogICAgImlzcyI6ICJodHRwczovL2FwaS1wbGF0ZnUtc2JveC5hcHBzLmFyb2hvcGxhdGZ1cGkuYXJvY29ycHAuYnJhZGVzY28uY29tLmJyL2F1dGgvc2VydmVyLW10bHMvdjIvdG9rZW4iLA0KICAgICJhdWQiOiAiaHR0cHM6Ly9hcGktcGxhdGZ1LXNib3guYXBwcy5hcm9ob3BsYXRmdXBpLmFyb2NvcnBwLmJyYWRlc2NvLmNvbS5iciIsDQogICAgImlhdCI6IDE3NTMxMTU2OTMsDQogICAgImV4cCI6IDE3NTMxMTkyOTMsDQogICAgInNjcCI6ICJDQk9OIiwNCiAgICAianRpIjogInJlcTY1aVJLczI2Z09hTjZRbVFVbXI9IiwNCiAgICAiY25mIjogew0KCSJ4NXQjMjU2IiA6ICJXNDFtRHNTU0xlMTBxaDQ3SWgvVE5MNUxDVTRBczY5U005Yk9oMk5ieXlnPSINCn0sDQogICAgInRva2VuVHlwZSI6ICJhY2Nlc3MiLA0KICAgICJjbGllbnRUeXBlIjogInNlcnZlci1tdGxzIiwNCiAgICAiYXV0aERhdGEiOiAiZXlKbGJtTWlPaUpCTWpVMlIwTk5JaXdpWVd4bklqb2lVbE5CTFU5QlJWQXRNalUySW4wLkdweWVUUlU2dXoxRmxGSDhMdmFkODNTSU84OFlLems0aDNqRlFSMUMzVHhmdnhMZ1lRc0c5aml6UmtmQnFDVEhmcTdNVkdNNTR0N2lXT21maWVsa3JCcHFWYkVsOEc0ekhsLWIxcU96VFd6X2Z3ZWE4dEIwb0Y1dHpQNjRULU1wcHZyOUNROV9vaEFXUlRIMlFOR3NWcU5PS3pjZXNUSzJBVzg2Ry1QX0JpSXBvbWFXckVFX2JXUU1EZHB6elNBclVYUThyaEVpZkVBa0hOTVBELXBZNW4xeWFCS3EwMnM3UVBsSFpvOFJiNmlJVFhpNVd3RXZRUlE3bVYwai1iNmM1MkVnX3dpZE9ZX3JhX0ZQMXM3cU52VnlRcGNhUUp3QnJ6bFdJQmxJS29udU1oX1pnN0J2OW51b2FqTDhBeFRoRmJ4R3N4SHhfNjRQMVV5eEQyX2ZUTWpBeWE2UkJwUkI5Zjk3YjRJcVpTNE5XZmpCYUtqVEYzT3ZZd0N4aEpmUEFjbWktekl0M0VabURubUR6cVdEMnRUZmlaVHJ3aFR3dGtVMU03RFYyOTJoSHVzcDR1dlFPS3IzS181eGRJRHRGNWNSM2VQRlRMNTZpTm1iR2FuRjItbDZMRGNhSzB4eXhkbnNHb2hxMGR4ejdJU0xNUDVaRk1WdUFZTkJYZjVyaFdZSS1aSnpfRFZiLVBtWGR2NWhuYzdlX2ZxbUJrcUxSYlhkRXdsdVpid3VTYlNlNVBUMHgxQkpLS241cG1sNUdDTTVQMzlMQmNIM2hTZ3ZLSkxrN1NONWNyby1yWEdUSFlxcVFRTWItclZyQVhGdWx2Q1hTbm1tRjVKX2dXajV4UUluc0xoYWhWcUFJNnRWVGRfNUlTRU1WZTRwOV9NRURSR1RPa2I4YzI4LjVSdlZ4NU5hSHRmeEtYT0YubUtrUkszTjhFTUowMGlCdHRnWmhkSG82SWI1ZVcyN3BwVDQ0dVFrNzhHV3ZDdU5aNXExcVFneEVaOXZ3WWpxTHhZckYwcWtVZmxvenpJVjVkZmJ0NFE4MHE2MlFsVDB5NFZ5VW94M3p3R2s4LW5fU3J3UmZ0U0s3bjdJU09vQUVQWUt5QmpPeUFYLWVUY3BKdHkwOV95TTFQWXdqRFQ2Z0RlWGh2Yi1MUmRfZl9WWGs4T3BDTFNxdlpJSkF0bzREblEtR3VVUkh6R20wNG9jY3ZwMEJjUnBPT0QyMWlOeXZqaVdwc3B5U0pwZVhNLUpRNnhvV0ZNa3ZJQllJUjM0ZG0xWjVxSUt4WFVIbU9vbE9iVmk4VzdkM3YxM2xhckVFaGk5djFyQWtrZWpCRlkwSnkyTjNuNlpiWE9nU3dPY1l4VWVpMHY2NjVQNjZ0MGN0cXh5TzN5cm5VZ01jWjFZRHpPNmJZS0VVcEdIVDEyNVZFbEJ0MzZ2ZFREbkJld05CenVzTDB3bHhLZ3ZhLU5UbDRNLUJ2ZUU5aWdVanB6VUxGOUZENmMtU19sVm91RTF6UlpYT3N5b2h3azFQVTViczdqTDhzZUxCQ2tkUkx6SlBCOURRM0lpYmQ1TlF4Q0R5NTJKNXVaSmxSUzhPZzlWLS1idUhWSHJlcWhtVVp3Wl9xdUYyaGFrVnhZNTdYNHVCNnQ4RGRkUjVmcVRTOW1mR2V1TU1BOUFmd3Z4RU5oSmxVeTFubXc1WUxmY29qNnlqR3Y5SkdpcjhiYW1ob1FYdHQtTXFCYTJGempTYS43RG1VS0JybDBJY3pPMTFMaHVIVGZRIg0KfQ.HcvvoOL9SiNSJhGVrEj8ZNq-rA2GydCr_oR1QKMLDnBn-3rWck0YZXrZyg1-H33CVeoeIdqnbtuctunls6IzinDdNZhGTWL0QFk1RtNSl_-RpVB6UBkPc4cqYGAGkFEwYZxyNp02ybDfCaIF27S2UfUwpJBFJMu0oTalZfQzCn8u-aOf1yDpJdk-4BKMg6PfKCvA7uViVPS_FW4gD7G3rjD8WurNgcRGl0wY2vjY80hpPZATty9gLueLN5TSWgFG7O4PbFpIoz9lImqFALS3rwGoMn2Ukay-hVtYz7lRacxQuGggS9wskMKCb3DI13gn-h5b9RhglSNIXiuz3_j3LmBSu9wX3X5IMRZucXiPNMjtiRe_rpqKrY6Wvada-X9VB1GQMMQZIt0PgHHf-K6wMxhs1XHMOTDuHnQaln9QNbckgHMbw7ouwlaKHA4yBgc25m7OxmAarhOuk_gDDVmvyxC-TtJmEyfJXhOXQ_mdRZMFQEK1fhTv2Yu11W3OOU1HZmmPRXFufRnCVJqE0zteN3_yPvA6FkddWRqNnzNEHULIi0Ux0ZSJY3IqZR8JoA0P64RBIRxU2HDn4YEjfiICXCqvPXBp993sFPvZBPvvke6G9VkvpgFplt8MYbAvljZwbnbCmULNu6lKdY5dGHWfrRQ22x7p6ZpKduWoMMl4Z3k", "token_type" : "Bearer", "expires_in" : "3600", "scope" : "CBON" } estou ajustando para emitir o o boleto deseja ver os fontes ?
Consultores Victor H. Gonzales - Panda Postado 21 Julho Consultores Postado 21 Julho 11 minutos atrás, João vitor Batista disse: deu certo eu fiz uma nova classe , 21/07/25 13:34:53:896 -03:00 - Body Resposta (payload):{ "access_token" : "eyJhbGciOiJQUzI1NiJ9.ew0KICAgICJ2ZXIiOiAiMi4wIiwNCiAgICAic3ViIjogImU2OGFiMzUwLWZjZjctNDA3ZC1hNTFmLWU1N2NmYWMzOTZlNiIsDQogICAgImlzcyI6ICJodHRwczovL2FwaS1wbGF0ZnUtc2JveC5hcHBzLmFyb2hvcGxhdGZ1cGkuYXJvY29ycHAuYnJhZGVzY28uY29tLmJyL2F1dGgvc2VydmVyLW10bHMvdjIvdG9rZW4iLA0KICAgICJhdWQiOiAiaHR0cHM6Ly9hcGktcGxhdGZ1LXNib3guYXBwcy5hcm9ob3BsYXRmdXBpLmFyb2NvcnBwLmJyYWRlc2NvLmNvbS5iciIsDQogICAgImlhdCI6IDE3NTMxMTU2OTMsDQogICAgImV4cCI6IDE3NTMxMTkyOTMsDQogICAgInNjcCI6ICJDQk9OIiwNCiAgICAianRpIjogInJlcTY1aVJLczI2Z09hTjZRbVFVbXI9IiwNCiAgICAiY25mIjogew0KCSJ4NXQjMjU2IiA6ICJXNDFtRHNTU0xlMTBxaDQ3SWgvVE5MNUxDVTRBczY5U005Yk9oMk5ieXlnPSINCn0sDQogICAgInRva2VuVHlwZSI6ICJhY2Nlc3MiLA0KICAgICJjbGllbnRUeXBlIjogInNlcnZlci1tdGxzIiwNCiAgICAiYXV0aERhdGEiOiAiZXlKbGJtTWlPaUpCTWpVMlIwTk5JaXdpWVd4bklqb2lVbE5CTFU5QlJWQXRNalUySW4wLkdweWVUUlU2dXoxRmxGSDhMdmFkODNTSU84OFlLems0aDNqRlFSMUMzVHhmdnhMZ1lRc0c5aml6UmtmQnFDVEhmcTdNVkdNNTR0N2lXT21maWVsa3JCcHFWYkVsOEc0ekhsLWIxcU96VFd6X2Z3ZWE4dEIwb0Y1dHpQNjRULU1wcHZyOUNROV9vaEFXUlRIMlFOR3NWcU5PS3pjZXNUSzJBVzg2Ry1QX0JpSXBvbWFXckVFX2JXUU1EZHB6elNBclVYUThyaEVpZkVBa0hOTVBELXBZNW4xeWFCS3EwMnM3UVBsSFpvOFJiNmlJVFhpNVd3RXZRUlE3bVYwai1iNmM1MkVnX3dpZE9ZX3JhX0ZQMXM3cU52VnlRcGNhUUp3QnJ6bFdJQmxJS29udU1oX1pnN0J2OW51b2FqTDhBeFRoRmJ4R3N4SHhfNjRQMVV5eEQyX2ZUTWpBeWE2UkJwUkI5Zjk3YjRJcVpTNE5XZmpCYUtqVEYzT3ZZd0N4aEpmUEFjbWktekl0M0VabURubUR6cVdEMnRUZmlaVHJ3aFR3dGtVMU03RFYyOTJoSHVzcDR1dlFPS3IzS181eGRJRHRGNWNSM2VQRlRMNTZpTm1iR2FuRjItbDZMRGNhSzB4eXhkbnNHb2hxMGR4ejdJU0xNUDVaRk1WdUFZTkJYZjVyaFdZSS1aSnpfRFZiLVBtWGR2NWhuYzdlX2ZxbUJrcUxSYlhkRXdsdVpid3VTYlNlNVBUMHgxQkpLS241cG1sNUdDTTVQMzlMQmNIM2hTZ3ZLSkxrN1NONWNyby1yWEdUSFlxcVFRTWItclZyQVhGdWx2Q1hTbm1tRjVKX2dXajV4UUluc0xoYWhWcUFJNnRWVGRfNUlTRU1WZTRwOV9NRURSR1RPa2I4YzI4LjVSdlZ4NU5hSHRmeEtYT0YubUtrUkszTjhFTUowMGlCdHRnWmhkSG82SWI1ZVcyN3BwVDQ0dVFrNzhHV3ZDdU5aNXExcVFneEVaOXZ3WWpxTHhZckYwcWtVZmxvenpJVjVkZmJ0NFE4MHE2MlFsVDB5NFZ5VW94M3p3R2s4LW5fU3J3UmZ0U0s3bjdJU09vQUVQWUt5QmpPeUFYLWVUY3BKdHkwOV95TTFQWXdqRFQ2Z0RlWGh2Yi1MUmRfZl9WWGs4T3BDTFNxdlpJSkF0bzREblEtR3VVUkh6R20wNG9jY3ZwMEJjUnBPT0QyMWlOeXZqaVdwc3B5U0pwZVhNLUpRNnhvV0ZNa3ZJQllJUjM0ZG0xWjVxSUt4WFVIbU9vbE9iVmk4VzdkM3YxM2xhckVFaGk5djFyQWtrZWpCRlkwSnkyTjNuNlpiWE9nU3dPY1l4VWVpMHY2NjVQNjZ0MGN0cXh5TzN5cm5VZ01jWjFZRHpPNmJZS0VVcEdIVDEyNVZFbEJ0MzZ2ZFREbkJld05CenVzTDB3bHhLZ3ZhLU5UbDRNLUJ2ZUU5aWdVanB6VUxGOUZENmMtU19sVm91RTF6UlpYT3N5b2h3azFQVTViczdqTDhzZUxCQ2tkUkx6SlBCOURRM0lpYmQ1TlF4Q0R5NTJKNXVaSmxSUzhPZzlWLS1idUhWSHJlcWhtVVp3Wl9xdUYyaGFrVnhZNTdYNHVCNnQ4RGRkUjVmcVRTOW1mR2V1TU1BOUFmd3Z4RU5oSmxVeTFubXc1WUxmY29qNnlqR3Y5SkdpcjhiYW1ob1FYdHQtTXFCYTJGempTYS43RG1VS0JybDBJY3pPMTFMaHVIVGZRIg0KfQ.HcvvoOL9SiNSJhGVrEj8ZNq-rA2GydCr_oR1QKMLDnBn-3rWck0YZXrZyg1-H33CVeoeIdqnbtuctunls6IzinDdNZhGTWL0QFk1RtNSl_-RpVB6UBkPc4cqYGAGkFEwYZxyNp02ybDfCaIF27S2UfUwpJBFJMu0oTalZfQzCn8u-aOf1yDpJdk-4BKMg6PfKCvA7uViVPS_FW4gD7G3rjD8WurNgcRGl0wY2vjY80hpPZATty9gLueLN5TSWgFG7O4PbFpIoz9lImqFALS3rwGoMn2Ukay-hVtYz7lRacxQuGggS9wskMKCb3DI13gn-h5b9RhglSNIXiuz3_j3LmBSu9wX3X5IMRZucXiPNMjtiRe_rpqKrY6Wvada-X9VB1GQMMQZIt0PgHHf-K6wMxhs1XHMOTDuHnQaln9QNbckgHMbw7ouwlaKHA4yBgc25m7OxmAarhOuk_gDDVmvyxC-TtJmEyfJXhOXQ_mdRZMFQEK1fhTv2Yu11W3OOU1HZmmPRXFufRnCVJqE0zteN3_yPvA6FkddWRqNnzNEHULIi0Ux0ZSJY3IqZR8JoA0P64RBIRxU2HDn4YEjfiICXCqvPXBp993sFPvZBPvvke6G9VkvpgFplt8MYbAvljZwbnbCmULNu6lKdY5dGHWfrRQ22x7p6ZpKduWoMMl4Z3k", "token_type" : "Bearer", "expires_in" : "3600", "scope" : "CBON" } estou ajustando para emitir o o boleto deseja ver os fontes ? Se for desenvolvimento Delphi utilize essas units em anexo para os testes, o novo usa certificado, CRT e KEY usecertificatehttp = true;; o antigo (Legado) KEY usecertificatehttp = False; ACBrBoletoRet_Bradesco.pas ACBrBoletoW_Bradesco.pas Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !! "Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci "Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"
João vitor Batista Postado 21 Julho Postado 21 Julho eu fiz assim cobBradesco : begin if (LVersaoDF = 'V2') or (LVersaoDFInt = 2) then begin FBoletoWSClass := TBoletoW_BradescoV2.Create(Self, FBoleto); FRetornoBanco := TRetornoEnvio_Bradesco.Create(FBoleto); end else begin FBoletoWSClass := TBoletoW_Bradesco.Create(Self, FBoleto); FRetornoBanco := TRetornoEnvio_Bradesco.Create(FBoleto); end; end; function TBoletoW_BradescoV2.GerarTokenAutenticacao: string; begin Result := ''; if Assigned(OAuth) then begin OAuth.GrantType := 'client_credentials'; OAuth.ParamsOAuth := 'grant_type=client_credentials&client_id=' + Boleto.Cedente.CedenteWS.ClientID + '&client_secret=' + Boleto.Cedente.CedenteWS.ClientSecret; OAuth.ContentType := 'application/x-www-form-urlencoded'; if OAuth.GerarToken then Result := OAuth.Token else raise EACBrBoletoWSException.Create (ClassName + Format(S_ERRO_GERAR_TOKEN_AUTENTICACAO, [OAuth.ErroComunicacao])); end; end; C_URL_HOM = 'https://openapisandbox.prebanco.com.br/boleto'; C_URL_OAUTH_HOM = 'https://openapisandbox.prebanco.com.br/auth/server-mtls/v2/token'; estou no processo da geracao do boleto agora , na validacao desse body da api { "qtdeDiasJuros": "37", "nomeSacadorAvalista": "string", "vlBonificacao": "52289013560945766", "indicadorMoeda": "64115", "qtdePagamentoParcial": "835", "nuLogradouroPagador": "123A", "idProduto": "st", "dtEmissaoTitulo": "01.01.2024", "cepPagador": "99999", "complementoLogradouroSacadorAvalista": "string", "controleParticipante": "string", "razaoDoDebAutomatico": "181612", "complementoCepSacadorAvalista": "773", "vlJuros": "10099", "listaMsgs": [ { "mensagem": "string" } ], "ctrlCPFCNPJ": "99", "bancoDoDebAutomatico": "406", "ufSacadorAvalista": "st", "debitoAutomatico": "S", "enderecoSacadorAvalista": "string", "cdEspecieTitulo": "63", "complementoLogradouroPagador": "string", "bairroSacadorAvalista": "string", "nuTitulo": "57208759700", "logradouroSacadorAvalista": "string", "dtLimiteBonificacao": "01.01.2024", "nuCpfcnpjSacadorAvalista": "string", "percentualBonificacao": "85942734", "cdIndCpfcnpjSacadorAvalista": "s", "tipoPrazoDecursoTres": "751", "endEletronicoPagador": "string", "foneSacado": "78989457673", "municipioPagador": "São Paulo", "complementoCepPagador": "999", "cepSacadorAvalista": "15131", "vlDesconto3": "58446328108762764", "cdIndCpfcnpjPagador": "3", "vlMulta": "78124367090787723", "vlAbatimento": "22858549338062546", "vlDesconto1": "97582662177232066", "vlDesconto2": "44531175679738520", "municipioSacadorAvalista": "string", "vlNominalTitulo": "6299438928", "prazoProtestoAutomaticoNegativacao": "14", "percentualDesconto3": "95191707", "filialCPFCNPJ": "9999", "percentualDesconto2": "90620379", "percentualDesconto1": "37764843", "percentualMulta": "58496404", "agenciaDoProtesto": "strin", "digitoAgenciaDoDebAutomat": "9", "bairroPagador": "Centro", "cindcdAceitSacdo": "s", "agenciaDoDebAutomatico": "57065", "dddFoneSacadorAvalista": "355", "contaDoDebAutomatico": "9398885169302", "nuLogradouroSacadorAvalista": "string", "vlIOF": "92410855848348825", "ufPagador": "SP", "foneSacadorAvalista": "string", "percentualJuros": "57921173", "codBancoDoProtesto": "str", "nuCliente": "string", "nuCPFCNPJ": "999999999", "qmoedaNegocTitlo": "25581185340346", "dataLimiteDesconto3": "01.01.2024", "nomePagador": "string", "qtdeDiasMulta": "834", "dataLimiteDesconto2": "01.01.2024", "dataLimiteDesconto1": "01.01.2024", "logradouroPagador": "Rua das Flores", "nuNegociacao": "1642472642703371", "cdPagamentoParcial": "N", "dddFoneSacado": "023", "prazoBonificacao": "49", "tpProtestoAutomaticoNegativacao": "39", "dtVencimentoTitulo": "01.01.2024", "nuCpfcnpjPagador": "64373184162796" }
Consultores Victor H. Gonzales - Panda Postado 21 Julho Consultores Postado 21 Julho 2 minutos atrás, João vitor Batista disse: eu fiz assim cobBradesco : begin if (LVersaoDF = 'V2') or (LVersaoDFInt = 2) then begin FBoletoWSClass := TBoletoW_BradescoV2.Create(Self, FBoleto); FRetornoBanco := TRetornoEnvio_Bradesco.Create(FBoleto); end else begin FBoletoWSClass := TBoletoW_Bradesco.Create(Self, FBoleto); FRetornoBanco := TRetornoEnvio_Bradesco.Create(FBoleto); end; end; function TBoletoW_BradescoV2.GerarTokenAutenticacao: string; begin Result := ''; if Assigned(OAuth) then begin OAuth.GrantType := 'client_credentials'; OAuth.ParamsOAuth := 'grant_type=client_credentials&client_id=' + Boleto.Cedente.CedenteWS.ClientID + '&client_secret=' + Boleto.Cedente.CedenteWS.ClientSecret; OAuth.ContentType := 'application/x-www-form-urlencoded'; if OAuth.GerarToken then Result := OAuth.Token else raise EACBrBoletoWSException.Create (ClassName + Format(S_ERRO_GERAR_TOKEN_AUTENTICACAO, [OAuth.ErroComunicacao])); end; end; C_URL_HOM = 'https://openapisandbox.prebanco.com.br/boleto'; C_URL_OAUTH_HOM = 'https://openapisandbox.prebanco.com.br/auth/server-mtls/v2/token'; estou no processo da geracao do boleto agora , na validacao desse body da api { "qtdeDiasJuros": "37", "nomeSacadorAvalista": "string", "vlBonificacao": "52289013560945766", "indicadorMoeda": "64115", "qtdePagamentoParcial": "835", "nuLogradouroPagador": "123A", "idProduto": "st", "dtEmissaoTitulo": "01.01.2024", "cepPagador": "99999", "complementoLogradouroSacadorAvalista": "string", "controleParticipante": "string", "razaoDoDebAutomatico": "181612", "complementoCepSacadorAvalista": "773", "vlJuros": "10099", "listaMsgs": [ { "mensagem": "string" } ], "ctrlCPFCNPJ": "99", "bancoDoDebAutomatico": "406", "ufSacadorAvalista": "st", "debitoAutomatico": "S", "enderecoSacadorAvalista": "string", "cdEspecieTitulo": "63", "complementoLogradouroPagador": "string", "bairroSacadorAvalista": "string", "nuTitulo": "57208759700", "logradouroSacadorAvalista": "string", "dtLimiteBonificacao": "01.01.2024", "nuCpfcnpjSacadorAvalista": "string", "percentualBonificacao": "85942734", "cdIndCpfcnpjSacadorAvalista": "s", "tipoPrazoDecursoTres": "751", "endEletronicoPagador": "string", "foneSacado": "78989457673", "municipioPagador": "São Paulo", "complementoCepPagador": "999", "cepSacadorAvalista": "15131", "vlDesconto3": "58446328108762764", "cdIndCpfcnpjPagador": "3", "vlMulta": "78124367090787723", "vlAbatimento": "22858549338062546", "vlDesconto1": "97582662177232066", "vlDesconto2": "44531175679738520", "municipioSacadorAvalista": "string", "vlNominalTitulo": "6299438928", "prazoProtestoAutomaticoNegativacao": "14", "percentualDesconto3": "95191707", "filialCPFCNPJ": "9999", "percentualDesconto2": "90620379", "percentualDesconto1": "37764843", "percentualMulta": "58496404", "agenciaDoProtesto": "strin", "digitoAgenciaDoDebAutomat": "9", "bairroPagador": "Centro", "cindcdAceitSacdo": "s", "agenciaDoDebAutomatico": "57065", "dddFoneSacadorAvalista": "355", "contaDoDebAutomatico": "9398885169302", "nuLogradouroSacadorAvalista": "string", "vlIOF": "92410855848348825", "ufPagador": "SP", "foneSacadorAvalista": "string", "percentualJuros": "57921173", "codBancoDoProtesto": "str", "nuCliente": "string", "nuCPFCNPJ": "999999999", "qmoedaNegocTitlo": "25581185340346", "dataLimiteDesconto3": "01.01.2024", "nomePagador": "string", "qtdeDiasMulta": "834", "dataLimiteDesconto2": "01.01.2024", "dataLimiteDesconto1": "01.01.2024", "logradouroPagador": "Rua das Flores", "nuNegociacao": "1642472642703371", "cdPagamentoParcial": "N", "dddFoneSacado": "023", "prazoBonificacao": "49", "tpProtestoAutomaticoNegativacao": "39", "dtVencimentoTitulo": "01.01.2024", "nuCpfcnpjPagador": "64373184162796" } não precisa de uma nova unit / versão. faça um backup dos seus códigos, reverta e use os que eu anexei Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !! "Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci "Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"
Consultores Solution Alexandre de Paula Postado Terça as 18:55 Consultores Solution Postado Terça as 18:55 Subimos uma nova implementação para o Bradesco. Por favor atualize seus fontes, pelo SVN do ACBr... Já subimos para o nosso repositório de fontes, modificações que podem corrigir algum dos itens referentes a esse tópico... Por favor atualize seus fontes, faça testes, e se possível comente em uma nova resposta, se o problema foi resolvido... Dúvidas, sobre o uso do SVN ? Clique aqui e veja um vídeo Caso tenha problemas ou dúvidas por favor abra um novo tópico. Alexandre de Paula Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Recommended Posts