Quem decide
Você pede; a decisão é nossa. O campo éthree_d_secure, em POST /v1/charges, com três
valores:
A ordem das perguntas é a regra inteira:
1
A sua loja está habilitada a cobrar no cartão?
Se não, não há o que autenticar, e o campo é ignorado.
2
A sua conta exige autenticação?
Se exige, acabou: autentica. Essa configuração é o piso, e um
three_d_secure: "off" na
requisição não a desliga. É o que impede que um trecho de código esquecido tire a proteção de uma
loja inteira sem ninguém perceber.3
Você pediu required?
Então autentica, mesmo que a sua conta não exija.
4
Você pediu off?
Então não autentica. A conta já respondeu no passo anterior, e daqui para baixo quem assume a
contestação é quem pediu.
5
O valor chegou ao piso da plataforma?
Se chegou, autentica.
O que você precisa repassar
Quem tokeniza o cartão na própria página recebe do autenticador o resultado do desafio. Repasse-o ao seu servidor exatamente como veio e envie-o emcard.three_ds.
Esse par transaction_id + status é a prova da autenticação. Perdê-lo no caminho significa ter
incomodado o comprador com um desafio e pagado a contestação assim mesmo.
O resultado, na cobrança
card.three_d_secure.status traz uma letra do padrão da bandeira:
Na entrada, em
card.three_ds.status, aceitamos só Y e A. Os outros descrevem uma
autenticação que não deu certo, e mandá-los seria declarar uma proteção que não existe.
O que dá errado
O token que inicia a autenticação vale cinco minutos e serve uma vez só. Peça-o no momento em
que o comprador envia o formulário, e não quando a página abre: emitido cedo, ele já estaria morto
para quem levou algum tempo preenchendo o endereço.
Veja também
Cobrança no cartão
O objeto
card, parcelas e a recusa que cria cobrança.Cofre de cartões
Por que o cofre e a autenticação não convivem.
Ficou algo de fora? Chame no WhatsApp. Se o assunto for uma chamada específica, informe o horário dela; se for uma entrega de webhook, informe o
X-Vext-Delivery — é por ele que localizamos a tentativa, a resposta do seu servidor e o horário.