Dúvidas e Soluções
Esta página reúne, num só lugar, as perguntas que mais aparecem durante uma integração com a idCerberus. A ideia é simples: antes de abrir um chamado de suporte, procure sua dúvida aqui. Boa parte dos “bugs” reportados são comportamentos esperados que só não estavam claros na documentação técnica.Autenticação e token
Preciso gerar um token novo a cada chamada?
Preciso gerar um token novo a cada chamada?
access_token em POST /api/token-generate e reutilize até
ele expirar, conforme o campo expires_in do retorno. Gerar um novo a
cada chamada funciona, mas desperdiça uma chamada extra por request.O que acontece se eu chamar a API com o token expirado?
O que acontece se eu chamar a API com o token expirado?
client e secret e repita
a chamada original. Isso é um HTTP de verdade, diferente das falhas de
permissão de service que também aparecem como “401 no corpo” (veja a
seção de status abaixo).client e secret são os mesmos em HML e produção?
client e secret são os mesmos em HML e produção?
client/secret de HML
não gera token válido para chamar produção, e vice-versa. Os bancos de
dados e o realm de autenticação são separados fisicamente entre os dois
ambientes.Ainda não tenho client e secret. O que faço?
Ainda não tenho client e secret. O que faço?
Consulta avulsa (POST /api/service-api)
Recebi HTTP 200, mas a consulta não funcionou. Isso é normal?
Recebi HTTP 200, mas a consulta não funcionou. Isso é normal?
POST /api/service-api
quase sempre retorna HTTP 200, mesmo quando a consulta falhou por
completo. O motivo real fica dentro do corpo, em status.code e
status.message. Nunca decida sucesso ou falha só pelo HTTP status.Qual a diferença entre um 401/403 de verdade e um erro de acesso no corpo?
Qual a diferença entre um 401/403 de verdade e um erro de acesso no corpo?
status.code (400 para payload/permissão
de service, 401 para produto inativo ou não encontrado) dentro do corpo.A chamada voltou 200/200, mas result veio vazio. Por quê?
A chamada voltou 200/200, mas result veio vazio. Por quê?
status.code 200, com
status.message dizendo algo como “Not enough balance”. Sempre leia
status.message quando result vier vazio, mesmo com 200/200.O alias que estou usando pode ser diferente em outro produto?
O alias que estou usando pode ser diferente em outro produto?
service) é
único no sistema: não existe um alias customizado por produto. Se um
service não funciona, o problema é ele não estar habilitado para o seu
produto, não o nome do alias estar errado (a menos que você tenha
digitado errado).Um alias parece ter erro de digitação. Devo corrigir?
Um alias parece ter erro de digitação. Devo corrigir?
SEVICE_ONLINE_BETTING_PROPENSITY está
documentado sem a letra R em SERVICE de propósito. Essa é a grafia
implementada no backend. Corrigir esse alias ao copiar quebra a chamada.
Fora esse caso, copie os aliases exatamente como aparecem no
catálogo de services.Onboarding via SDK ou Cliente Web
access_token e tokenOnboarding são a mesma coisa?
access_token e tokenOnboarding são a mesma coisa?
access_token
autentica a sua aplicação e expira em minutos. tokenOnboarding
identifica um cadastro específico e continua válido durante todo o
processo, mesmo depois do access_token expirar. Se o access_token
expirar no meio do fluxo, gere um novo: o tokenOnboarding não muda.Quanto tempo leva para um onboarding sair de IN_PROCESS?
Quanto tempo leva para um onboarding sair de IN_PROCESS?
REFUSED é um erro que devo tratar como falha técnica?
REFUSED é um erro que devo tratar como falha técnica?
REFUSED é um resultado de negócio: a chamada em si teve sucesso
(HTTP 200), e o cadastro é que não foi aprovado pelas regras do produto.
Não trate REFUSED como algo para repetir a chamada; trate como decisão
que a sua aplicação precisa refletir para o usuário.Webhooks
Configurei o webhook e não recebi nada. O que houve?
Configurei o webhook e não recebi nada. O que houve?
POST /api/service-api (quando o produto tem webhook
configurado). Segundo, lembre que consulta avulsa dispara o webhook cerca
de 10 segundos depois da resposta HTTP, não instantaneamente. Terceiro,
valide se a sua URL está acessível publicamente (a idCerberus não
consegue entregar num endpoint atrás de firewall sem liberação).Meu endpoint falhou ao processar um evento. Ele será reenviado sozinho?
Meu endpoint falhou ao processar um evento. Ele será reenviado sozinho?
GET /api/onboarding/report/{tokenOnboarding})
como rede de segurança de verdade.O payload do webhook muda dependendo de onde ele veio?
O payload do webhook muda dependendo de onde ele veio?
tokenOnboarding, status, fields, services). Webhook originado de
consulta avulsa usa o mesmo JSON que já veio na resposta HTTP síncrona da
chamada (result, status, onboardingStatus, externalId). São
formatos diferentes, então não assuma uma estrutura única.OCR e imagem
Preciso remover o prefixo data:image/...;base64, antes de enviar?
Preciso remover o prefixo data:image/...;base64, antes de enviar?
O OCR retornou vazio mesmo com uma imagem boa. O que conferir?
O OCR retornou vazio mesmo com uma imagem boa. O que conferir?
documentType bate com o documento
real enviado, se a imagem está completa e legível (sem corte nas bordas),
e se o base64 não foi truncado no meio do envio. Esse último é comum
quando o payload é montado manualmente e o corte acontece sem erro
visível até chegar na API.O campo com o tipo de documento se chama docType ou doc?
O campo com o tipo de documento se chama docType ou doc?
SERVICE_OCR é processado por parceiros diferentes conforme
a configuração do seu produto, e isso pode mudar um campo pontual do
result (o mais comum é o nome do campo que indica o tipo do documento
reconhecido). Trate o contrato desta página como “os campos costumam vir
assim”, não como uma garantia rígida campo a campo, e sempre valide pelo
result retornado no seu ambiente real.Backoffice
Meu login do backoffice funciona para gerar token de API?
Meu login do backoffice funciona para gerar token de API?
client e secret
autenticam a sua aplicação e geram access_token via
POST /api/token-generate. Veja Autenticação
para o lado API.Consigo configurar o webhook pelo backoffice?
Consigo configurar o webhook pelo backoffice?
Por que a URL da API se chama backoffice-hml.idcerberus.com?
Por que a URL da API se chama backoffice-hml.idcerberus.com?
backoffice-hml.idcerberus.com e backoffice.idcerberus.com são as
mesmas URLs usadas pelo painel administrativo. Quando você chama
/api/... nelas, está falando com a API, não com a interface visual. Não
existe uma URL separada só para API: é o mesmo domínio, endpoints
diferentes.Ambientes
Posso testar em produção sem impacto, só pra ver o retorno?
Posso testar em produção sem impacto, só pra ver o retorno?
Um erro que só acontece em produção e não em HML. Por onde começo?
Um erro que só acontece em produção e não em HML. Por onde começo?
