risk_controls control 3DS behavior independently:
enable_3ds— Whether the card is registered for 3DS at all.allow_3ds_transactions— Once registered, whether the cardholder must complete a challenge (e.g., OTP) or proceed via a frictionless flow.
3DS configuration support varies by card product. See Card products.
How the two fields interact
allow_3ds_transactions only takes effect when enable_3ds is Y. When enable_3ds is N, the card bypasses 3DS regardless of allow_3ds_transactions.
Configure enable_3ds
Controls whether the card is registered for 3DS.
Supported on Business Visa and Personal Visa only. Modifiable when the card is in PENDING or ACTIVE status.
Set at card creation
Update on an existing card
enable_3dsis returned in card responses only when it has been explicitly set on the card. When absent, the card follows the account-level 3DS configuration.enable_3dsis supported on Business Visa and Personal Visa only; it is ignored on Business Mastercard.- To register 3DS but skip the challenge flow, set
enable_3dstoYandallow_3ds_transactionstoN.
Configure allow_3ds_transactions
Once 3DS is registered, allow_3ds_transactions controls whether the challenge flow is allowed.
Supported on Business Visa only.
Set at card creation
Update on an existing card
- If
allow_3ds_transactionsis omitted during card creation, it defaults toY. - During card update, omitting the field leaves the current setting unchanged.
- Physical cards automatically have
allow_3ds_transactionsset toYupon activation. - This setting affects only 3DS behavior. Other fraud checks are not affected.
OTP delivery
When a 3DS challenge is triggered, an OTP is sent to the cardholder’s registered email address. The cardholder enters the OTP on the authentication page to complete verification.3DS OTP webhook
UQPAY sends acard.3ds.otp webhook when an OTP is generated:

