Weder Silva Postado 10 Março Postado 10 Março 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 Juliomar Marchetti Postado 10 Março Consultores Postado 10 Março 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 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 Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br 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 Juliomar Marchetti Postado 12 Março Consultores Postado 12 Março 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 Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br 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 !!
Weder Silva Postado 12 Março Autor Postado 12 Março Eu fiz .. mas continua esse Bradesco é complicado
Recommended Posts
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 contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora