Ir para conteúdo
  • Cadastre-se

dev botao

Implementar Boleto Hibrido Bradesco


HelioNeto

Recommended Posts

@Juliomar Marchetti funcionando 100% em Homologação e Produção...já tenho 3 clientes usando em produção. Para testes em homologação usar os dados abaixo....

"nroCpfCnpjBenef": "68542653",

   "filCpfCnpjBenef": "1018",

   "digCpfCnpjBenef": "38",

   "cidtfdProdCobr": "09",

   "cnegocCobr": "386100000000041000",

obs.: No Header deve ser alterado o CNPJ para 68542653101838

No json em homologação alterar só os dados do pagador, data emissão, vencimento e valor, os demais tem que permanecer igual ao json original do projeto. Já em produção ai o json é validado por inteiro. 

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Moderadores
6 minutos atrás, Jhonlenon Ribeiro disse:

@Juliomar Marchetti funcionando 100% em Homologação e Produção...já tenho 3 clientes usando em produção. Para testes em homologação usar os dados abaixo....

"nroCpfCnpjBenef": "68542653",

   "filCpfCnpjBenef": "1018",

   "digCpfCnpjBenef": "38",

   "cidtfdProdCobr": "09",

   "cnegocCobr": "386100000000041000",

obs.: No Header deve ser alterado o CNPJ para 68542653101838

No json em homologação alterar só os dados do pagador, data emissão, vencimento e valor, os demais tem que permanecer igual ao json original do projeto. Já em produção ai o json é validado por inteiro. 

 

Legal Man. assim que conseguir já subo para a gente fazer testes no ACBrBoleto

 

  • Curtir 2
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Link para o comentário
Compartilhar em outros sites

2 horas atrás, Juliomar Marchetti disse:

Esse código está totalmente funcional?

pergunto pois dai vou fazer aqui no ACBrBoleto baseado nas trocas necessárias com ele

@Juliomar Marchetti Eu implementei no ACBr com base nos disponibilizados aqui, verifique se ajuda vocês:

ACBrBoletoRet_Bradesco.pasACBrBoletoWS.pasACBrBoletoW_Bradesco.pas

Única coisa em que alguns lugares fiz adaptações específicas para meu sistema que provavelmente o ACBr fará diferente eu acredito, são 2:

1º: Na Unit "ACBrBoletoW_Bradesco", procedure "GerarHeader" foi utilizado a property "Token" para pegar o valor do token gerado, no entanto eu não gero o TOKEN pelo ACBr, gerei diretamente pelo código fonte do meu sistema, após isso salvei o Token na property "Token" e uso a seguinte configuração meu sistema para os boletos do Bradesco:

         FACBrBoleto.OnAntesAutenticar  := ACBrBoletoAntesAutenticar;
         FACBrBoleto.OnDepoisAutenticar := ACBrBoletoDepoisAutenticar;

Dessa forma ao realizar o "GerarTokenAutenticacao" vai verificar que temos o ACBrBoletoAntesAutenticar/ACBrBoletoDepoisAutenticar e ao invés de tentar gerar o Token vai pegar o token já gerado e que está armazenado na property "Token".

****OBS: Segue anexo como fiz em meu sistema, é utilizado Rest do Delphi, mas caso queiram fazer de outra forma basta seguir o exemplo disponibilizado pelo @Lucio Bittes e @HelioNeto

GeracaoTokenInternamente.txt

2°: Na Unit "ACBrBoletoW_Bradesco", procedure "GerarHeader", na parte da assinatura do header fiz a seguinte jogada, em meu sistema ao cliente informar o certificado digital e senha na conta bancária, é feito uma cópia desse certificado e movido para os arquivos temporários do windows com nome "CertBradescoApi.pfx" e senha "SenhaBradescoAPI.txt" onde dentro desse arquivo fica armazenado a senha do certificado do usuário, para assim em qualquer requisição/alteração posterior sempre termos os dados do certificado em pfx e senha para realizar a assinatura, visto que para todo e qualquer método é preciso assinar a requisição, tanto no Token quanto no Header da requisição. Caso necessário esse processo pode ser feito de outra forma, é apenas como gerencio em meu sistema, foi uma gestão interna para não ter que criar novos campos na tabela para salvar essa informação, hoje salvamos no BD apenas Certificado Publico e Privado, ai para esse processo do Bradesco geri dessa outra forma.

Demais informações e processos segue o padrão das units do ACBr.

*Outro detalhe é que foi "duplicado" a procedure "RequisicaoJson", porque em homologação somente foi possível testar usando todos os campos do JSON como string, no entanto de acordo com o manual temos diversos campos que são integer, sendo assim foi feito a "RequisicaoJson" para Produção, seguindo o manual do banco e foi feito o "RequisicaoJsonHom" para os testes de homologação.

 

Se tiverem alguma dúvida sobre essas units e alterações basta questionar.

Editado por willian_delan
alt
  • Curtir 3
Link para o comentário
Compartilhar em outros sites

  • Moderadores
Em 23/05/2024 at 17:57, willian_delan disse:

@Juliomar Marchetti Eu implementei no ACBr com base nos disponibilizados aqui, verifique se ajuda vocês:

ACBrBoletoRet_Bradesco.pas 13.28 kB · 0 downloads ACBrBoletoWS.pas 17.02 kB · 0 downloads ACBrBoletoW_Bradesco.pas 46.23 kB · 0 downloads

Única coisa em que alguns lugares fiz adaptações específicas para meu sistema que provavelmente o ACBr fará diferente eu acredito, são 2:

1º: Na Unit "ACBrBoletoW_Bradesco", procedure "GerarHeader" foi utilizado a property "Token" para pegar o valor do token gerado, no entanto eu não gero o TOKEN pelo ACBr, gerei diretamente pelo código fonte do meu sistema, após isso salvei o Token na property "Token" e uso a seguinte configuração meu sistema para os boletos do Bradesco:

         FACBrBoleto.OnAntesAutenticar  := ACBrBoletoAntesAutenticar;
         FACBrBoleto.OnDepoisAutenticar := ACBrBoletoDepoisAutenticar;

Dessa forma ao realizar o "GerarTokenAutenticacao" vai verificar que temos o ACBrBoletoAntesAutenticar/ACBrBoletoDepoisAutenticar e ao invés de tentar gerar o Token vai pegar o token já gerado e que está armazenado na property "Token".

****OBS: Segue anexo como fiz em meu sistema, é utilizado Rest do Delphi, mas caso queiram fazer de outra forma basta seguir o exemplo disponibilizado pelo @Lucio Bittes e @HelioNeto

GeracaoTokenInternamente.txt 4.48 kB · 0 downloads

2°: Na Unit "ACBrBoletoW_Bradesco", procedure "GerarHeader", na parte da assinatura do header fiz a seguinte jogada, em meu sistema ao cliente informar o certificado digital e senha na conta bancária, é feito uma cópia desse certificado e movido para os arquivos temporários do windows com nome "CertBradescoApi.pfx" e senha "SenhaBradescoAPI.txt" onde dentro desse arquivo fica armazenado a senha do certificado do usuário, para assim em qualquer requisição/alteração posterior sempre termos os dados do certificado em pfx e senha para realizar a assinatura, visto que para todo e qualquer método é preciso assinar a requisição, tanto no Token quanto no Header da requisição. Caso necessário esse processo pode ser feito de outra forma, é apenas como gerencio em meu sistema, foi uma gestão interna para não ter que criar novos campos na tabela para salvar essa informação, hoje salvamos no BD apenas Certificado Publico e Privado, ai para esse processo do Bradesco geri dessa outra forma.

Demais informações e processos segue o padrão das units do ACBr.

*Outro detalhe é que foi "duplicado" a procedure "RequisicaoJson", porque em homologação somente foi possível testar usando todos os campos do JSON como string, no entanto de acordo com o manual temos diversos campos que são integer, sendo assim foi feito a "RequisicaoJson" para Produção, seguindo o manual do banco e foi feito o "RequisicaoJsonHom" para os testes de homologação.

 

Se tiverem alguma dúvida sobre essas units e alterações basta questionar.

boa noite

parece que tu usou códigos seus e não pensou na questão de usuários delphi 7 ou lazarus

não entendi o txt segundo?

também seu código está muito, mas muitso desatualizado ACBrBoletoWS.pas

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Link para o comentário
Compartilhar em outros sites

@Matheus Lira já estou com mais de 60 dias com 3 chamado em aberto no para consultar o boleto hibrido pix apois o registro e até agora nada. O gestor da API de Cobrança Hibrido do Bradesco falou que o end point para o consulta do boleto hibrido pix não é esse aqui https://proxy.api.prebanco.com.br/v1/boleto/titulo-consultar esse é para consulta do boleto código de barras normal. Isso é uma conclusão minha, eu acho que o Bradesco não tem essa consulta, já falamos com tanta gente sobre esse assunto que até desisti. Por ultimo o gesto de cobra hibrido pix disse que estava entrando de ferias e retornava só depois do 10/06/2024. Se você consegui amigo a consulta nos avise aqui também, no nosso caso a consulta já em produção, sendo que os nossos clientes já estão em produção. Depois do dia 10/06/2024 com fazer outra tentativa direto com gestor da API de Cobrança hibrida, saber dele se tem ou não essa consulta, qualquer novidade eu posto aqui.

Editado por Jhonlenon Ribeiro
erro no texto
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderadores
On 5/23/2024 at 5:57 PM, willian_delan said:

@Juliomar Marchetti Eu implementei no ACBr com base nos disponibilizados aqui, verifique se ajuda vocês:

ACBrBoletoRet_Bradesco.pas 13.28 kB · 9 downloads ACBrBoletoWS.pas 17.02 kB · 8 downloads ACBrBoletoW_Bradesco.pas 46.23 kB · 9 downloads

Única coisa em que alguns lugares fiz adaptações específicas para meu sistema que provavelmente o ACBr fará diferente eu acredito, são 2:

1º: Na Unit "ACBrBoletoW_Bradesco", procedure "GerarHeader" foi utilizado a property "Token" para pegar o valor do token gerado, no entanto eu não gero o TOKEN pelo ACBr, gerei diretamente pelo código fonte do meu sistema, após isso salvei o Token na property "Token" e uso a seguinte configuração meu sistema para os boletos do Bradesco:

         FACBrBoleto.OnAntesAutenticar  := ACBrBoletoAntesAutenticar;
         FACBrBoleto.OnDepoisAutenticar := ACBrBoletoDepoisAutenticar;

Dessa forma ao realizar o "GerarTokenAutenticacao" vai verificar que temos o ACBrBoletoAntesAutenticar/ACBrBoletoDepoisAutenticar e ao invés de tentar gerar o Token vai pegar o token já gerado e que está armazenado na property "Token".

****OBS: Segue anexo como fiz em meu sistema, é utilizado Rest do Delphi, mas caso queiram fazer de outra forma basta seguir o exemplo disponibilizado pelo @Lucio Bittes e @HelioNeto

GeracaoTokenInternamente.txt 4.48 kB · 8 downloads

2°: Na Unit "ACBrBoletoW_Bradesco", procedure "GerarHeader", na parte da assinatura do header fiz a seguinte jogada, em meu sistema ao cliente informar o certificado digital e senha na conta bancária, é feito uma cópia desse certificado e movido para os arquivos temporários do windows com nome "CertBradescoApi.pfx" e senha "SenhaBradescoAPI.txt" onde dentro desse arquivo fica armazenado a senha do certificado do usuário, para assim em qualquer requisição/alteração posterior sempre termos os dados do certificado em pfx e senha para realizar a assinatura, visto que para todo e qualquer método é preciso assinar a requisição, tanto no Token quanto no Header da requisição. Caso necessário esse processo pode ser feito de outra forma, é apenas como gerencio em meu sistema, foi uma gestão interna para não ter que criar novos campos na tabela para salvar essa informação, hoje salvamos no BD apenas Certificado Publico e Privado, ai para esse processo do Bradesco geri dessa outra forma.

Demais informações e processos segue o padrão das units do ACBr.

*Outro detalhe é que foi "duplicado" a procedure "RequisicaoJson", porque em homologação somente foi possível testar usando todos os campos do JSON como string, no entanto de acordo com o manual temos diversos campos que são integer, sendo assim foi feito a "RequisicaoJson" para Produção, seguindo o manual do banco e foi feito o "RequisicaoJsonHom" para os testes de homologação.

 

Se tiverem alguma dúvida sobre essas units e alterações basta questionar.

Willian? leu o que escrevi acima pra me dar um retorno pra gente colocar isso no ACBR?

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Link para o comentário
Compartilhar em outros sites

11 horas atrás, Juliomar Marchetti disse:

Willian? leu o que escrevi acima pra me dar um retorno pra gente colocar isso no ACBR?

Bom dia @Juliomar Marchetti, tudo bem? Sim eu li, assim que possível eu repasso aqui as units atualizadas, pois realmente meu ACBrBoletoWS.pas estava bem desatualizado.

Quanto ao seu outro questionamento: "parece que tu usou códigos seus e não pensou na questão de usuários delphi 7 ou lazarus" O que implica no código para usuários Delphi 7 e Lazarus? Pode me explicar para eu ajustar? Obrigado.

Sobre o outro questionamento "não entendi o txt segundo?" Se está se referindo ao "GeraçãoTokenInternamente.txt" é como fiz a geração do token em meu sistema, gero o token e armazeno na property do ACBr FToken  e no momento das execuções dos processos eu sempre tenho o token guardado pois uso os ACBrBoleto.OnAntesAutenticar/ACBrBoleto.OnDepoisAutenticar realmente pode ser confuso, não sei como seria para o ACBr gerar esse token pois não poderá ser feito diretamente como hoje é nos outros modelos e nesse meu eu usei Rest do Delphi, caso queira algo mais similar a como hoje é trabalhado no ACBr tem que usar como exemplo o código do @Lucio Bittes e @HelioNeto disponível aqui neste fórum, ou segue aqui: https://files.fm/u/r4t5whcqvx Tem que ver como será feito, pois como é hoje utilizado para os demais bancos com o GerarTokenAutenticacao não irá servir, pois a geração de Token desse banco é algo específico e com etapas e processos que não é feito no ACBr.

Editado por willian_delan
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Fala pessoal, tudo bem ?
Alguém ai conseguiu realizar a requisição diretamente pelo postaman ? to quebrando a cabeça aqui com esse bradesco.

Consegui gerar o token, porem quando tento fazer a requisição no endpoint registro de boleto me retorna o erro abaixo:

{
    "code": "104",
    "message": "invalid signature",
    "details": "null"
}

Não tenho ctz se to preenchendo o X-Brad-Signature corretamente, mas to montando aquele request.txt e assinando ele e mesmo assim me retorna este problema. 

Link para o comentário
Compartilhar em outros sites

Em 28/06/2024 at 07:59, Jhonlenon Ribeiro disse:

@herculesadm esse problema parece ser no certificado digital, você enviou a chave publica do certificado para o suporte a API do Bradesco? também pode ser problema na sua requisição. Está testando em homologação ou produção?

Estou com o mesmo problema, abri chamado pra ver o que pode ser. Estou utilizando o mesmo certificado, o qual, foi gerado o .pem pra eles...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bom dia @Ronaldo Souza - Rift você está usando Delphi pra fazer o registro do boleto Bradesco? eu consegui testar no postman, mais pegando os dados que foi gerado no Delphi.

Authorization:

X-Brad-Signature: 

X-Brad-Nonce:

X-Brad-Timestamp:

X-Brad-Algorithm:

O secreto é não deixar o X-Brad-Signature quebrar a linha, se quebrar e vc colocar no postman ai dá esse erro ai.

Link para o comentário
Compartilhar em outros sites

9 minutos atrás, Jhonlenon Ribeiro disse:

Bom dia @Ronaldo Souza - Rift você está usando Delphi pra fazer o registro do boleto Bradesco? eu consegui testar no postman, mais pegando os dados que foi gerado no Delphi.

Authorization:

X-Brad-Signature: 

X-Brad-Nonce:

X-Brad-Timestamp:

X-Brad-Algorithm:

O secreto é não deixar o X-Brad-Signature quebrar a linha, se quebrar e vc colocar no postman ai dá esse erro ai.

Bom dia @Jhonlenon Ribeiro, eu to usando C#, mas a assinatura do arquivo request.txt estou fazendo com aquele comando que tem na documentação do Bradesco. Eu to tentando primeiro fazer funcionar via postman pra depois finalizar a codificação no C#, ai cai nesse problema de que toda url que tento acessar da esse invalid signature. Como você fez a montagem do arquivo request.txt ?

Tem um outro campo também que pede no postman que é o Access-token, você ta preenchendo ele com qual informação ?

image.png.7885bc381f7f7a15ca3e007a68f42b30.png

Link para o comentário
Compartilhar em outros sites

Agora, Ronaldo Souza - Rift disse:

Bom dia @Jhonlenon Ribeiro, eu to usando C#, mas a assinatura do arquivo request.txt estou fazendo com aquele comando que tem na documentação do Bradesco. Eu to tentando primeiro fazer funcionar via postman pra depois finalizar a codificação no C#, ai cai nesse problema de que toda url que tento acessar da esse invalid signature. Como você fez a montagem do arquivo request.txt ?

Tem um outro campo também que pede no postman que é o Access-token, você ta preenchendo ele com qual informação ?

image.png.7885bc381f7f7a15ca3e007a68f42b30.png

Se vc tivesse usando o Delphi poderia testar com demo aqui do forum, já o acess-token vc colocar o CLIENT_ID, também existe esse outro parametro cpf-cnpj: que é o CNPJ do Emitente do boleto. Como comentei anterior pra vc testar no postman não quebre a linha do X-Brad-Signature

Link para o comentário
Compartilhar em outros sites

7 horas atrás, Jhonlenon Ribeiro disse:

Se vc tivesse usando o Delphi poderia testar com demo aqui do forum, já o acess-token vc colocar o CLIENT_ID, também existe esse outro parametro cpf-cnpj: que é o CNPJ do Emitente do boleto. Como comentei anterior pra vc testar no postman não quebre a linha do X-Brad-Signature

Pessoal consegui resolver o problema que estava tendo de Invalid Signature. Em contato com o banco me enviaram um manual referente a este erro.

Um dos problemas era que o arquivo request.txt que estava montando estava usando a quebra de linha do Windows mas temos que usar a do Unix (\n) 

Outro era que o json enviado no body da requisição tem que estar no mesmo formato do json incluso no arquivo request.txt, ou seja sem formatação nenhuma.

Deixo aqui o manual enviado pelo banco caso alguém precise.

Abraços.

Erro Invalid Signature.pdf

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Pode disponibilizar os fontes que geram e assinam o payload?

16 horas atrás, Ronaldo Souza - Rift disse:

Pessoal consegui resolver o problema que estava tendo de Invalid Signature. Em contato com o banco me enviaram um manual referente a este erro.

Um dos problemas era que o arquivo request.txt que estava montando estava usando a quebra de linha do Windows mas temos que usar a do Unix (\n) 

Outro era que o json enviado no body da requisição tem que estar no mesmo formato do json incluso no arquivo request.txt, ou seja sem formatação nenhuma.

Deixo aqui o manual enviado pelo banco caso alguém precise.

Abraços.

Erro Invalid Signature.pdf 341.38 kB · 10 downloads

 

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Boa tarde, Agora ficou 100% a consulta do boleto híbrido pix.Testamos esses 3 end point abaixo

 
 
 
 
Só uma pequena observação, na consulta desse end point  https://openapi.bradesco.com.br/v1/boleto/titulo-consultar não vem o campo  wqrcdPdraoMercd que é referente ao Qrcode do PIX do boleto. Vem varios informações como LINHA DIGITAVEL, CODIGO DE BARRAS, SITUAÇÃO DO BOLETO e outras informações. Nós insistimos muito com suporte da API e Gestor de Cobrança Hibrida, com muita luta conseguimos consumir esses 3 end point.
  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Em 30/08/2023 at 16:58, rafabarzotto disse:

@HelioNeto

Maravilha meu amigo, as dicas foram valiosas. 

Acabei caindo aqui fórum do ACBR por acaso depois de um vídeo seu.

Estou desenvolvendo um middleware de integração bancaria que recebe dados por meio de WSDL e comunica REST com o banco escolhido, isso em linguagem PHP.

Deixo meu https://github.com/rafabarzotto, caso alguém encontre dificuldade e precise tirar alguma duvida sobre essa API do Bradesco.

POST_Registro_Bradesco.jpg

@Camila AngelelliAqui na primeira página desse post tem um exemplo em PHP que o @rafabarzottofez, da uma olhada, tem o Git dele com o projeto, veja se te ajuda.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderadores
6 minutos atrás, Jhonlenon Ribeiro disse:

Boa tarde @Juliomar Marchetti  quando tiver OK avisa aqui pra gente testar em homologação e produção.

Sim será avisado

até vou trancar to tópico aqui. e quando estiver OK será atualizado lá no post com as configurações pra usar

suando aqui pra mexer no código, pois tem mistura de outros códigos enfim.

  • Curtir 2
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...