Visão geral
O resultado de uma análise real depende do motor de risco, dos provedores externos e do histórico da conta — por isso você não consegue provocar uma recusa ou uma falha quando quer. Para resolver isso, a Análise de Fraude reconhece alguns valores de teste. Enviando um deles, a resposta é sempre a mesma, e você consegue testar como a sua integração trata cada cenário antes de ir para produção.Como usar
Qualquer um dos três campos abaixo dispara o cenário, então você pode testar com os dados que já envia:customer.emailcard.bincontext.ip
reasons deixa claro que o resultado foi forçado.
Decisões
Respondem200 com status: completed. O risk_score é fixo em cada cenário, então você também consegue testar decisões que dependem da nota.
Resposta de uma análise recusada
Os e-mails de validação adicional e de recusada são os mesmos que já forçam esses resultados no checkout, então você usa os mesmos valores nos dois produtos.
Análise não concluída
Respondem com o envelope de erro e não geram cobrança.Resposta de um provedor indisponível (HTTP 503)
503 para testar o retry: repita a requisição com a mesma Idempotency-Key e confirme que a sua integração trata a nova tentativa. Como a análise não foi concluída, ela não é cobrada e a chave continua livre para a tentativa seguinte.
Quando você envia mais de um valor de teste
Se a requisição trouxer valores de cenários diferentes — por exemplo o e-mail de “aprovada” com o IP de “recusada” — vence o mais severo, nesta ordem:- Falha interna (
500) - Provedor indisponível (
503) - Recusada (
DENY) - Validação adicional (
CHALLENGE) - Aprovada (
ALLOW)
DENY.
Cobrança e idempotência
- Uma análise concluída com valor de teste é cobrada em Dev mode, exatamente como uma análise real. Assim a idempotência se comporta igual à de produção: a mesma
Idempotency-Keycom o mesmo corpo devolve a análise original, sem criar uma nova. - Uma análise não concluída (
503ou500) nunca é cobrada. - A mesma
Idempotency-Keycom um corpo diferente continua retornando422(idempotency_conflict), inclusive nos cenários de teste.
Erros que você provoca pela própria requisição
Estes não precisam de valor de teste — dependem só do que você envia.O
429 é o único destes que não usa o envelope de erro plano: ele responde {"message": "Too Many Attempts."} com o header Retry-After. Trate esse status pelo código HTTP, não pelo campo error.code.Erros que dependem da sua conta
Os dois erros abaixo não têm valor de teste porque não dependem da requisição, e sim do estado da sua conta:
Se você precisa exercitar esses dois ramos, fale com o suporte em
suporte@4selet.com.br para ajustar a sua conta de Dev mode.
Referência da Análise de Fraude
Campos, decisões, motivos e formato de erro da rota.
