ThreeDSChallengeOptions
Options for threeDSChallenge.
Extends
Properties
acsUrl?
optional acsUrl?: string;
EMVCo alias for url — the issuer ACS challenge endpoint from the authentication response.
challengeWindowSize?
optional challengeWindowSize?: "01" | "02" | "03" | "04" | "05";
Iframe size, as the EMVCo code. Defaults to 05 (fills the container).
Pass through the value the authentication response echoed back: EMVCo requires the rendered size to match what was announced in the AReq, so this is not a client-side choice.
completion
completion: ThreeDSCompletion;
Required: a challenge has no other way to report that the cardholder is done.
Overrides
ThreeDSFrameOptionsBase.completion
container
container: string | HTMLElement;
Where the challenge is rendered: an element id or the element itself. Required — the challenge is shown in-context, in a slot your checkout controls, and the SDK adds no overlay of its own.
creq?
optional creq?: string;
EMVCo alias for fields — posted as a single creq field.
fields?
optional fields?: Record<string, string>;
Form fields to post, one hidden input per entry.
Inherited from
ThreeDSFrameOptionsBase.fields
frameName?
optional frameName?: string;
name and id given to the iframe. Defaults to a unique per-call name; set it only if you need
to find the frame yourself.
Inherited from
ThreeDSFrameOptionsBase.frameName
keepFrame?
optional keepFrame?: boolean;
Keeps the iframe and its form in the DOM after settling. Off by default — leaving 3DS frames behind is what leaks memory across retries.
Inherited from
ThreeDSFrameOptionsBase.keepFrame
onLoad?
optional onLoad?: () => void;
Called on each navigation of the challenge iframe — a timing signal, useful to swap a spinner for the frame. It carries no outcome.
Returns
void
signal?
optional signal?: AbortSignal;
Aborts the flow: the iframe is torn down and the promise resolves with status: 'aborted'.
Inherited from
ThreeDSFrameOptionsBase.signal
size?
optional size?: object;
Explicit CSS size, for a provider that does not use the EMVCo codes. Overrides the code.
| Name | Type |
|---|---|
height | string |
width | string |
timeoutMs?
optional timeoutMs?: number;
Hard stop, in milliseconds. Defaults to 600_000 (10 min) — long enough for an OTP or a banking
app confirmation, short enough that a silent ACS eventually releases the checkout.
url?
optional url?: string;
Endpoint the form is posted to. Must be http: or https:.