Skip to main content

pre_authenticate Method

Overview

The pre_authenticate method initiates the 3D Secure authentication flow. It determines whether frictionless or challenge-based verification is needed.

Business Use Case: Before processing a high-value transaction, initiate 3DS to reduce fraud liability.

Purpose

ScenarioBenefit
Fraud preventionShift liability to issuer
SCA complianceMeet EU requirements

Request Fields

FieldTypeRequiredDescription
merchant_order_idstrYesYour unique order reference
amountMoneyYesTransaction amount
payment_methodPaymentMethodYesCard details
return_urlstrYesURL to redirect after 3DS

Response Fields

FieldTypeDescription
connector_transaction_idstrConnector's 3DS transaction ID
statusstrFRICTIONLESS, AUTHENTICATION_REQUIRED
authentication_datadictDevice data for next step
redirection_datadictChallenge URL if required
status_codeintHTTP status code

Example

SDK Setup

from orchestratorx_prism import PaymentMethodAuthenticationClient

auth_client = PaymentMethodAuthenticationClient(
connector='stripe',
api_key='YOUR_API_KEY',
environment='SANDBOX'
)

Request

request = {
"merchant_order_id": "order_001",
"amount": {
"minor_amount": 10000,
"currency": "USD"
},
"payment_method": {
"card": {
"card_number": {"value": "4242424242424242"},
"card_exp_month": {"value": "12"},
"card_exp_year": {"value": "2027"}
}
},
"return_url": "https://your-app.com/3ds/return"
}

response = await auth_client.pre_authenticate(request)

Response

{
"connector_transaction_id": "pi_3Oxxx...",
"status": "FRICTIONLESS",
"authentication_data": {
"eci": "05",
"cavv": "AAABBIIFmA=="
},
"status_code": 200
}

Next Steps