Skip to main content
threeDS.authenticate(), handle(), and resume() throw an ElementsError when the 3D Secure flow itself fails to run — a bad argument, a cancelled or timed-out challenge, or the gateway rejecting the request. This is separate from a completed authentication that resolves to a non-approved status (NOT_AUTHENTICATED, FAILED, REJECTED, EXPIRED), which is not an error — see Authentication results for what each status means and whether to authorize.

3D Secure errors

From threeDS.authenticate()/handle()/resume() — SDK-side validation (three-ds:*), flow failures and gateway URNs (urn:radiumone:three-ds:*, plus a few shared gateway URNs). The gateway’s 3DS URN catalogue is an open set; treat an unrecognized code as non-retryable unless retryAllowed is true. For the recovery-action version of these codes, see Handle 3D Secure failures in Elements.

Next steps

Error object and handling

The ElementsError shape and the standard catch pattern.

SDK and integration errors

Integration codes thrown before you reach 3D Secure.

Tokenization errors

Bind-time gateway errors from submit().

Authentication results

What each status means — not an error.
Last modified on September 15, 2026