Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

Postado (editado)

Estou implantando uma cobrança usando a API da CEF. Mas ao que parece a CEF não tem suporte ao desenvolvedor, é só o manual, que por sinal é bem fraco. É o único banco até agora que implantamos API a não ter suporte. Por isso gostaria de contar com a colaboração de vocês para sanar algumas dúvidas minhas nesta jornada.

Os logs das requisições estão em anexo.

1. O manual fala em URLs diferentes para homologação e produção, mas os links que estão no manual para verificar essas URLs não existem. Aliás o site do desenvolvedor da caixa está com problemas há mais de um ano.
Verificando os fontes do ACBr, não vi URLs diferentes para homologação e produção. Então os links do ACBr são de produção?

2. Nos meus testes, usando o Demo do ACBr quando uso como ClientID "SGCBS02P" que está no próprio fonte do ACBr, a tentativa de registro de boleto traz no log o erro (BK76) ERRO NA FORMATACAO DA MENSAGEM e o conteúdo errado seria a palavra "VALOR_MENSAL" que de acordo com o log deveria ser um valor e não uma string. Mas o retorno não diz qual o campo está com esse valor. Não achei nos fontes do ACBr essa "palavra" para ele ter gerado esse valor como string para dar erro.
Quando uso minha aplicação e não o demo do ACBr o erro é OPERACAO NAO PERMITIDA - CEDENTE INFORMADO NAO POSSUI AUTORIZACAO PARA UTILIZAR SERVICO WEBSERVICE - USUARIO SGCBS02. Que me parece correto, pois no manual não existe esse usuário nem mesmo para homologação. Mas porque no ACBr não traz esse erro? apesar que traz outro erro "VALOR_MENSAL" ?

3. Ainda usando o demo do ACBr testando registrar um boleto usando como ClientID a api-key que me foi fornecida pela CEF, o conteúdo errado seria a minha api-key, dizendo que esse campo está com 34 posições, sendo que o máximo seriam 8 posições. Usando minha aplicação e não o demo do ACBr o erro é o mesmo.

O pior de tudo é que mesmo com esses erros o código de retorno é 200. Pode? Essa é a pior API que experimentei até agora.

Informei tudo conforme indicado pela própria ACBr

ACBrBoleto.Configuracoes.WebService.VersaoDF :='3.2' (para boleto hibrido) e '3.0' para não hibrido
QtdePagamentoParcial:= 1;
TipoPagamento:= tpNao_Aceita_Valor_Divergente;
PercentualMinPagamento:= 0;
PercentualMaxPagamento:= 0;
ValorMinPagamento:=0;
ValorMaxPagamento:=0;
Carteira  := 'RG'; 
EspecieDoc:= '99';

WebService.SSLCryptLib:= cryOpenSSL;
WebService.SSLHttpLib:= httpOpenSSL;
WebService.UseCertificateHTTP := false;
 

Registro user api_key Erro.txt Registro user SGCBS02P Erro.txt

Editado por Luciano Rodrigues Pereira
  • Moderadores
Postado
21 horas atrás, Luciano Rodrigues Pereira disse:

Então os links do ACBr são de produção?

creio que sim, seria esses do webservice

image.png

chegou a ver esse tópico

https://www.projetoacbr.com.br/forum/topic/57991-acbrboleto-via-webservice/?&_rid=19#findComment-426538

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
 

 

Postado

Vamos por parte, estou verificando a documentação e o USUARIO_SERVICO tem de ser mesmo SGCBS02P. Então em cima disso vejam se pode me responder:

1. Quando eu uso o ClientID fornecido pelo banco o ACBr troca o USUARIO_SERVICO SGCBS02P pelo ClientID e aí dá erro. Não entendi então onde será usado o ClientID (api_key fornecida pelo banco) e o Client_Secret (fornecido pelo banco)

2. Tentando registrar um boleto usando o Demo do ACBr traz no log o erro (BK76) ERRO NA FORMATACAO DA MENSAGEM e o conteúdo errado seria a palavra "VALOR_MENSAL" que de acordo com o log deveria ser um valor e não uma string. Você pode ver esse erro no arquivo em anexo Registro "user SGCBS02P Erro.txt"

Postado

Achei o erro do demo do ACBr com relação à mensagem "VALOR_MENSAL". Você pode ver esse erro no arquivo em anexo "Registro user SGCBS02P Erro.txt"

No manual não existe essa opção de VALOR_MENSAL. Apenas "ISENTO", "VALOR_POR_DIA" e "TAXA_MENSAL" conforme pode ver no print em anexo e na página 39 do manual que também estou anexando.

Não fiz a correção no ACBr, porque realmente fucei os fontes e não encontrei onde ele está setando com "VALOR_MENSAL"

 

Captura de tela 2025-01-27 180559.png

MANUAL API CEF.pdf

Postado (editado)
30 minutos atrás, Juliomar Marchetti disse:

use a força , leia os fontes veja abaixo

image.png

Esse print aí não mostra setando "VALOR_MENSAL", Eu olhei tudo isso aí e não achei a descrição "VALOR_MENSAL". Deve estar setando em DSC_CODIGO_MORA_JUROS.
Se você sabe onde está sendo setada essa descrição diga de uma vez, não sou só eu quem preciso da correção.
Eu colaboro na maneira que posso, como nesse caso encontrando o problema e quando dá eu faço a correção e subo.  

Bom como não achei, mexi no Demo, calculei o valor da mora diária, mudei Titulo.CodigoMoraJuros:= cjValorMensal; para cjValorDia; e o erro sumiu.
Como não trabalho informando valor mensal de mora, mas sim diário, na minha aplicação não dá o erro, agora para quem for usar o Demo do ACBr vai encontrar esse problema.

Não sei se a ACBr deve mudar seus fontes ou apenas o Demo convertendo o valor informado de mensal para diário. Com outros bancos não acontece esse problema, mas a CEF não tem essa opção de informar valor de mora mensal, somente a TAXA_MENSAL ou VALOR_POR_DIA.

Aí fica à critério da ACBr, qual deve ser a mudança, se quiserem que o Demo funcione com a CEF. 

Editado por Luciano Rodrigues Pereira
Postado

De qualquer forma o que acontece é que a CEF não tem a opção de informar valor de mora mensal, apenas a taxa mensal ou o valor diário.
Então não sei o que é preciso fazer, de que adianta encontrar esse "VALOR_MENSAL" nos fontes do ACBr, porque a CEF não tem essa opção. Entendeu?
Por outro lado o Demo informa assim Titulo.CodigoMoraJuros:= cjValorMensal para qualquer banco. Então não sei o que será preciso mudar para o Demo funcionar nos outros bancos e na CEF.
Minha sugestão é que ao invés de solicitarem na Ficha de Pagamento o valor de mora mensal, solicitem a taxa mensal. Aí você seta o CodigoMoraJuros com "cjTaxaMensal" ou calcula o valor diário e seta com "cjValorDia". Isso vai funcionar para qualquer banco.

 

 

Postado (editado)

Eu até achei onde está setado 

image.thumb.png.10c7b0b4b9f6739957fbd824449f0770.png

Mas como disse isso não muda nada, o problema é que a CEF não tem essa opção de valor de mora mensal, entendeu?
Minha sugestão é que ao invés de solicitarem na Ficha de Pagamento o valor de mora mensal, solicitem a taxa mensal. Aí você seta o CodigoMoraJuros com "cjTaxaMensal" ou calcula o valor diário e seta com "cjValorDia". Isso vai funcionar para qualquer banco.

 

Editado por Luciano Rodrigues Pereira
Postado
Agora, Juliomar Marchetti disse:

já testou em todos os bancos?

Não, nem dá. kkkkkkkk. Mas acredito que é mais comum uma taxa mensal ou um valor diário. Afinal estamos falando de mora, que é cobrado o valor por dia e não por mês. Então ou você informa a taxa mensal ou o valor diário. Entendeu?

Mas de qualquer forma é só uma sugestão de alteração no Demo. Eu trabalho informando valor diário ou poderia até informar a taxa mensal, em qualquer destas formas não dá erro, nem na Caixa, nem em nenhum outro banco que eu já implantei como Itaú, Bradesco, Banco do Brasil, Sicoob, Sicredi e agora a Caixa.

  • Moderadores
Postado
12 horas atrás, Luciano Rodrigues Pereira disse:

de alteração no Demo.

o demo é só pra demonstrar como preencher o componente não é para usar como código para fazer um sistema.

12 horas atrás, Luciano Rodrigues Pereira disse:

Não, nem dá. kkkkkkkk.

então é abragente demais dizer que todos. pois não testou

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
 

 

Postado

Ok @Juliomar Marchetti eu achei que as pessoas usassem o Demo para testes também, só isso.

Aproveitando, eu dei uma olhada nos fontes em relação à CEF e não achei lugar nenhum onde ele use o ClientID e o Client_Secret que o banco me forneceu.

Se eu seto o ClientID, aí o ACBr troca o USUARIO_SERVICO de SGCBS02P para o ClientID e aí dá erro dizendo que esse campo está com 34 posições, sendo que o máximo seriam 8 posições. E o próprio manual na sua página 10 diz "Para todos os tipos de operação, deverá ser informado no campo USUARIO_SERVICO o valor SGCBS02P". 

Então fico sem saber onde é usado o ClientID e o ClientSecret que o banco me forneceu?  Inclusive no log paranoico não mostra usando.

Postado
1 minuto atrás, Juliomar Marchetti disse:

image.png

Isso aí é exatamente o que eu disse @Juliomar Marchetti

Eu não posso usar o ClientID, senão o ACBr troca o USUARIO_SERVICO de SGCBS02P para o ClientID e aí dá erro dizendo que esse campo está com 34 posições, sendo que o máximo seriam 8 posições.
E o próprio manual na sua página 10 diz "
Para todos os tipos de operação, deverá ser informado no campo USUARIO_SERVICO o valor SGCBS02P". 

Deu pra entender?

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.