2. Autenticar 3DS
https://sandbox-api.rebornpay.io/v1/transactions/threeds/authenticateAuth obrigatóriaSegundo passo do fluxo 3DS: autentica o 3DS. Se não houver challenge, devolve `xid`/`cavv` — repasse-os em `threeDs` ao criar a transação (Transações → Criar transação). Se devolver `stepUpUrl`, vá para a etapa 3 (Resultado do desafio 3DS).
Headers
X-Api-KeystringrequiredAPI Key do seller (header)
Body
application/jsonrequestIdstringrequiredreferenceIdstringrequiredcardobjectrequiredcardTokenstringoptionalToken de cartão já tokenizado em chamada anterior (`POST /v1/cards/tokenize` ou `card.tokenize: true`)
tokenstringoptionalToken dos Card Fields (`tokenize()`), o `pm_…` já salvo numa cobrança Stripe anterior, ou alias do Card Vault quando vault=CARD. Não envie PAN neste campo. No reuso Stripe não envie PAN, validade nem CVV.
vaultstringoptionalCofre de tokenização. Use CARD para aliases do Card Vault do seller. Omita para PAN, `token` dos Card Fields ou `pm_` / `tok_` legado em `number`.
numberstringoptionalPAN de teste no sandbox. Legado: também aceita PaymentMethod (`pm_...`) ou Token Stripe (`tok_...`) quando `token` não é enviado. Em produção internacional prefira `card.token`.
holderNamestringoptionalNome do titular impresso no cartão
expirationMonthstringoptionalMês de expiração (MM)
expirationYearstringoptionalAno de expiração (YYYY ou YY)
cvvstringoptionalCódigo de segurança (CVV) ou alias do Card Vault quando vault=CARD
lastDigitsstringoptionalÚltimos 4 dígitos do cartão (obrigatório com Card Vault — o alias não revela last4)
binstringoptionalBIN (6 dígitos) quando o vault não revela o PAN
tokenizebooleanoptionalQuando dados crus são informados: true tokeniza o cartão antes da venda (reuso futuro, `cardToken` retornado na resposta); false envia o cartão para uso único, sem gerar token reutilizável.
amountnumber · int64requiredcurrencystringrequiredpaymentMethodstringrequiredreturnUrlstringrequireddeviceChannelstringrequireddeviceInformationobjectrequiredhttpBrowserLanguagestringrequiredhttpBrowserJavaEnabledstringoptionalhttpBrowserColorDepthstringoptionalhttpBrowserScreenHeightstringrequiredhttpBrowserScreenWidthstringrequiredhttpBrowserTimeDifferencestringoptionaluserAgentBrowserValuestringrequiredhttpAcceptContentstringrequiredipAddressstringrequiredbillingobjectrequiredaddress1stringrequiredaddress2stringoptionaladministrativeAreastringrequiredcountrystringrequiredlocalitystringrequiredfirstNamestringrequiredlastNamestringrequiredphoneNumberstringoptionalemailstringrequiredpostalCodestringrequiredResponses
200OK
codestringrequiredCódigo de status da autenticação: AUTHENTICATION_SUCCESSFUL (segue para confirmação), PENDING_CHALLENGE (browser deve POSTAR accessToken como JWT em stepUpUrl), AUTHENTICATION_FAILED (cartão não autenticado)
Example: AUTHENTICATION_SUCCESSFUL
authenticationTransactionIdstringrequiredID da transação de autenticação 3DS
Example: auth_abc123
accessTokenstringoptionalToken de acesso atualizado — POST como campo JWT no iframe do stepUpUrl
Example: eyJ...
stepUpUrlstringoptionalURL do desafio 3DS (Cardinal StepUp) — o browser deve POSTAR o accessToken como JWT neste URL, não navegar para returnUrl
Example: https://centinelapi.cardinalcommerce.com/V2/Cruise/StepUp
xidstringoptionalTransaction ID do 3DS v1
Example: xid_abc123
cavvstringoptionalCAVV para confirmação do pagamento
Example: cavv_abc123
specificationVersionstringoptionalVersão do protocolo 3DS
Example: 2.2.0
directoryServerTransactionIdstringoptionalID de transação do Directory Server
Example: ds_txn_abc123
curl -X POST 'https://sandbox-api.rebornpay.io/v1/transactions/threeds/authenticate' \ -H 'X-Api-Key: $API_KEY' \ -H 'Content-Type: application/json'{
"code": "AUTHENTICATION_SUCCESSFUL",
"authenticationTransactionId": "auth_abc123",
"accessToken": "eyJ...",
"stepUpUrl": "https://centinelapi.cardinalcommerce.com/V2/Cruise/StepUp",
"xid": "xid_abc123",
"cavv": "cavv_abc123",
"specificationVersion": "2.2.0",
"directoryServerTransactionId": "ds_txn_abc123"
}