Ir para conteúdo
  • Cadastre-se

Recommended Posts

Postado

Estou utilizando o ACBrBoleto (última versão) para integração com a API de Cobrança com QR Code do Bradesco (boleto híbrido com PIX).
No ambiente de homologação (Sandbox), consigo obter o token de autenticação com sucesso, mas ao tentar registrar um boleto, a API retorna HTTP 422 com uma série de erros de validação.

Configuração atual
Delphi: 10.2
ACBr: Última versão (componentes atualizados)
Banco: Bradesco (cobBradesco)

WebService:
UseCertificateHTTP := True (certificado A1)
Ambiente := tawsHomologacao
ClientID e ClientSecret fornecidos pelo banco (funcionam para gerar token)
Dados de homologação utilizados (baseados no exemplo da documentação):
CNPJ do beneficiário: 68542653101838 (raiz 68542653, filial 1018, dígitos 38)
Agência: 3861
Conta: 0410000 (7 dígitos)
Dígitos: agência 1, conta 1
Carteira: 09

Demais dados (sacado, valor, datas) preenchidos conforme nosso sistema, mas com os valores de teste acima.

Log de retorno (trechos):
HTTP_Result=422
JSON={"codigo":"1","mensagem":"Nao foi possivel processar as instrucoes contidas na requisicao","errosValidacao":[
  {"nomeDoArquivo":"200-Hib.json","erros":[
    "O argumento cnegocCobr não bateu o valor com o esperado. Recebido: <386100000000410000>. Esperado: <111111111111111111>.",
    "O argumento qtdDecurPrz não foi enviado na requisição."
  ]},
  ...
  {"nomeDoArquivo":"erro-dados-inconsistentes.json","erros":[
    "O argumento cnegocCobr não bateu o valor com o esperado. Recebido: <386100000000410000>. Esperado: <111111111111111115>.",
    "O argumento codUsuario não bateu o valor com o esperado. Recebido: <APISERVIC>. Esperado: <APISERV>.",
    "O argumento cpssoaJuridContr não bateu o valor com o esperado. Recebido: <0>. Esperado: <>.",
    "O argumento ctpoContrNegoc não bateu o valor com o esperado. Recebido: <0>. Esperado: <>.",
    "O argumento nseqContrNegoc não bateu o valor com o esperado. Recebido: <0>. Esperado: <>.",
    "O argumento eNseqContrNegoc não bateu o valor com o esperado. Recebido: <0>. Esperado: <>.",
    "O argumento cprodtServcOper não bateu o valor com o esperado. Recebido: <0>. Esperado: <>.",
    "O argumento demisTitloCobr não bateu o valor com o esperado. Recebido: <29.08.2024>. Esperado: <17.12.2024>.",
    "O argumento dvctoTitloCobr não bateu o valor com o esperado. Recebido: <28.09.2024>. Esperado: <20.02.2025>.",
    "O argumento filCpfCnpjBenef não bateu o valor com o esperado. Recebido: <0001>. Esperado: <1018>.",
    "O argumento nroCpfCnpjBenef não bateu o valor com o esperado. Recebido: <05274250>. Esperado: <68542653>.",
    "O argumento digCpfCnpjBenef não bateu o valor com o esperado. Recebido: <33>. Esperado: <38>.",
    ...
  ]}
]}


Minha análise dos erros:
cnegocCobr: O valor gerado (386100000000410000) não corresponde ao esperado pelo banco (ex: 111111111111111111). O campo é composto por Agência (4) + zeros (7) + Conta (7). Nossa agência 3861 e conta 0410000 deveriam gerar 386100000000410000, mas o banco rejeita. Qual o valor correto para homologação? Deveríamos forçar um valor fixo?

qtdDecurPrz: Não está sendo enviado. Não encontrei uma propriedade no ACBr para este campo. Ele é obrigatório? Qual valor padrão usar?

codUsuario: O ACBr envia APISERVIC, mas o banco espera APISERV. Isso é configurável?

cpssoaJuridContr, ctpoContrNegoc, nseqContrNegoc, eNseqContrNegoc, cprodtServcOper: Estão sendo enviados como 0, mas o banco espera valores específicos (ex: 2337627, 1, 2337686, etc.). Quais propriedades do ACBr devem ser usadas para preencher esses campos? Eles são obrigatórios?

filCpfCnpjBenef, nroCpfCnpjBenef, digCpfCnpjBenef: Estamos usando dados reais da empresa (0001, 05274250, 33), mas o banco espera os valores do exemplo (1018, 68542653, 38). Para homologação, devemos substituir completamente os dados do beneficiário pelos dados de teste?

Datas (demisTitloCobr, dvctoTitloCobr😞 O banco espera datas específicas (17.12.2024, 20.02.2025). Isso é normal em homologação? Devemos usar datas fixas fornecidas pela documentação?

Campos do sacado: O banco espera valores de teste (ex: TESTE EMPRESA PGIT, RUA JOAQUIM FERREIRA, SALVADOR, etc.), mas estamos enviando dados reais. Para homologação, é necessário usar um conjunto fixo de dados de sacado?

Espécie do título (cespceTitloCobr😞 Estamos enviando 2 (DM), mas o banco espera 25 (FI) em alguns cenários. Isso é obrigatório ou apenas um cenário de teste?

Valor nominal (vnmnalTitloCobr😞 O ACBr envia o valor multiplicado por 100 (ex: 6338 para R$ 63,38), mas a documentação indica que deve ser enviado com duas casas decimais (ex: 63.38). Qual o formato correto?

Número do logradouro (nuLogradouroPagador😞 O ACBr envia 0 fixo, mas deveria enviar o número do endereço do sacado (campo enroLogdrSacdo). Isso parece um bug.

O que já foi tentado
Ajuste manual de agência e conta para valores de homologação.

Alteração do CNPJ do beneficiário para o de teste.

Configuração de UseCertificateHTTP e demais parâmetros de SSL.

Geração de token bem-sucedida, indicando que a autenticação está ok.

Dúvidas específicas
1 - Existe uma versão do ACBr já ajustada para a API atual do Bradesco? Ou há um branch específico?
2 - Quais propriedades do ACBr devem ser usadas para preencher os campos de contrato (cpssoaJuridContr, ctpoContrNegoc, etc.)?
3 - Para homologação, é necessário usar um conjunto completo de dados de teste (beneficiário, sacado, valores, datas) ou podemos manter nossos dados reais, desde que corretos?
4 - O campo qtdDecurPrz é obrigatório? Como incluí-lo sem modificar o fonte?
5 - Há previsão de correção dessas incompatibilidades no componente oficial?

Agradeço desde já pela atenção e pela ajuda da comunidade.

Logs completos e código podem ser fornecidos se necessário.

 

  • Consultores
Postado
3 minutos atrás, Weder Silva disse:

Existe uma versão do ACBr já ajustada para a API atual do Bradesco? Ou há um branch específico?

ACBr é tudo no trunk2. diretamente por isso temos cuidado ao subir código no svn

 

4 minutos atrás, Weder Silva disse:

 Para homologação, é necessário usar um conjunto completo de dados de teste (beneficiário, sacado, valores, datas) ou podemos manter nossos dados reais, desde que corretos?

isso é preciso ser visto com o banco

4 minutos atrás, Weder Silva disse:

Há previsão de correção dessas incompatibilidades no componente oficial?

caso tenha ou faça elas é só anexar que é feito a validação

5 minutos atrás, Weder Silva disse:

Quais propriedades do ACBr devem ser usadas para preencher os campos de contrato (cpssoaJuridContr, ctpoContrNegoc, etc.)?

abre a unit ACBrBoletoW_Bradesco.pas e veja estão fixo 

image.png

são contribuições então pode ser que a pessoa não uso e deixou fixo

6 minutos atrás, Weder Silva disse:

O campo qtdDecurPrz é obrigatório? Como incluí-lo sem modificar o fonte?

na mesma unit tu vai ver se existe esse campo, senão existir deve verificar no manual

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

  • Consultores
Postado
18 horas atrás, Weder Silva disse:

Continua os mesmos problemas... :-(

mas não foi modificado nada!
somente apontei locais para que tu possa fazer a intervenção e efetuar os testes junto ao banco

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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...