OOB Flow
Overview
Out-of-Band (OOB) authentication allows a cardholder to approve a 3DS transaction via a separate trusted channel, typically the merchant’s mobile application, instead of entering a static OTP on the 3DS page.
This approach provides:
- Stronger security
- Better user experience
- Reduced friction for high-risk transactions
Step-by-Step Flow
sequenceDiagram
autonumber
actor U as User
participant E as E-Commerce Site
participant ACS as 3DS Server
participant SX as StraitsX
participant M as Client
U->>E: Purchase goods
E->>ACS: Initiate 3DS authentication
ACS->>U: Display OOB challenge page
ACS->>SX: Send OOB data
SX->>M: oob_notification webhook
M->>U: Request user verification\n(Biometrics / Face ID)
U->>M: Approve transaction
M->>SX: Hit Obtain OOB Authentication API (ID&V result)
SX->>ACS: Forward OOB result
U->>ACS: Click Approve Button on 3DS Page
ACS->>E: Authentication success
User Initiates Purchase
The user completes checkout on the e-commerce site.
3DS Authentication Starts
The merchant triggers 3DS authentication. StraitsX's Access Control Server (ACS) server determines that OOB authentication is required.
OOB Challenge Page Displayed
The ACS presents a 3DS challenge page instructing the user to approve the transaction via their mobile app.
OOB Data Sent to StraitsX
The ACS server sends OOB transaction details to StraitsX, including:
- Transaction identifiers
- Challenge context
- Merchant reference
OOB Notification Webhook
StraitsX sends an oob_notification webhook to the client containing:
- OOB request reference
- Transaction metadata
- User identifiers (masked)
Refrences for the webhook notification
Merchant Responsibility: Ensure that the webhook endpoint is highly available and can respond quickly
User Identity Verification (ID&V)
The client app may choose to prompt the user to verify identity using one of the following methods:
- Biometrics (Face ID / Fingerprint)
- Device authentication
- App-level PIN (if applicable)
Submit OOB Authentication Result
After verification, the client should call StraitsX obtain oob API to share the authentication result
API Reference: 👉 https://docs.straitsx.com/v1-CARDS/reference/obtain-oob
Payload includes:
- OOB reference ID
- Authentication result (approved / rejected)
User Confirms on 3DS Page
Once StraitsX ACS server receives the OOB result, The user clicks the Finish button on the 3DS Page. Authentication completes and transaction will be processed further.

Example of OOB page
Updated about 2 months ago
