threeDSecureSession.
start e complete são chamados pelo upag-js no browser (threeDSecure.authenticate), com chave publicável e o clientSecret da sessão. Você só chama create e get do servidor.
Sandbox:
https://api.upag.dev/v1. Produção: https://api.upag.io/v1. Cartão de teste que força o desafio 3DS em Simulador.Fluxo
- O servidor cria a sessão (Criar sessão) e envia o
clientSecretà página de checkout. - A página chama
upag.threeDSecure.authenticate({ clientSecret }). O SDK chama start, roda a autenticação do banco e chama complete. Resolve com{ sessionId, status: 'completed' }. - O servidor cria a cobrança de cartão com
threeDSecureSessionigual aoidda sessão.
Estrutura
clientSecret (veja Criar sessão).
Atributos
string
UUID da sessão.
string
requires_action, completed, failed, canceled ou expired.requires_action: aguardando o browser.completed: portador autenticado; a sessão pode ser usada por uma cobrança.canceled: o pagador fechou o desafio, ou o browser estourou o tempo.failed: a autenticação falhou.expired: passou deexpiresAt.
failed, canceled e expired são finais: crie uma sessão nova para tentar de novo.integer
Valor que o cartão será cobrado, em centavos: o
amount enviado mais os juros de parcelamento que o pagador assume. Fixado na criação.string
ISO 8601. A sessão vale 1 hora.
amount, installments, cliente). O clientSecret só é devolvido na criação e nunca mais.
Usando a sessão na cobrança
Passe oid em threeDSecureSession numa cobrança de cartão:
cardprecisa ser o cartão da sessão.- O cartão é cobrado pelo
finalAmountda sessão, sem recalcular: mudar taxas depois não altera o que o pagador autenticou. amounteinstallmentsda cobrança precisam ser iguais aos da sessão.
- não existe na conta (
404 session_not_found); - não está
completedou já foi usada (409 invalid_session_state); - expirou (
410 session_expired); - foi autenticada para outro cartão, valor ou parcelas (
409 threeds_session_mismatch).
Disponibilidade
O 3D Secure é habilitado por ambiente. Com ele desligado, todos os endpoints desta seção respondem404 not_found.