Pre-authenticate
Overview
The PreAuthenticate RPC initiates the 3D Secure authentication flow. It collects device data and prepares the authentication context, determining whether the transaction qualifies for frictionless authentication or requires a customer challenge.
Business Use Case: Before processing a card payment, you need to check if 3DS authentication is required. This RPC communicates with the issuing bank to initiate the authentication session and determine the authentication path (frictionless or challenge).
Purpose
Why pre-authenticate?
Low risk transaction
Bank approves frictionlessly (no customer action)
High risk transaction
Bank requires challenge (OTP, password)
SCA compliance
Meet EU Strong Customer Authentication requirements
Liability shift
Enable fraud liability protection
Key outcomes:
Authentication session initialized
Risk assessment performed
Challenge URL (if required)
Authentication data for payment
Request Fields
merchant_order_id
string
Yes
Your unique order reference
amount
Money
Yes
Transaction amount
payment_method
PaymentMethod
Yes
Card details for authentication
customer
Customer
No
Customer information
address
PaymentAddress
Yes
Billing address
enrolled_for_3ds
bool
Yes
Whether 3DS enrollment check passed
metadata
SecretString
No
Additional metadata
connector_feature_data
SecretString
No
Connector-specific metadata
return_url
string
No
URL to redirect after authentication
continue_redirection_url
string
No
URL to continue after redirect
browser_info
BrowserInformation
No
Browser details for fraud detection
Response Fields
connector_transaction_id
string
Connector's authentication transaction ID
status
PaymentStatus
Current status: PENDING, AUTHENTICATED, FAILED
error
ErrorInfo
Error details if authentication failed
status_code
uint32
HTTP-style status code
response_headers
map<string,string>
Connector-specific response headers
redirection_data
RedirectForm
Challenge URL/form (if challenge required)
network_transaction_id
string
Card network transaction reference
merchant_order_id
string
Your order reference (echoed back)
state
ConnectorState
State to pass to next authentication step
raw_connector_response
SecretString
Raw response for debugging
authentication_data
AuthenticationData
3DS authentication results
Example
Request (grpcurl)
Response (Frictionless)
Response (Challenge Required)
Next Steps
Authenticate - Execute challenge if required
PostAuthenticate - Validate authentication results
Last updated
Was this helpful?

