3DS React Native SDK Methods
Create Session
This method collects information for the device from a WebView on the background and sends it to the Basis Theory API, which then returns a newly created 3DS section.
Usage
import { BasisTheory3dsProvider, useBasisTheory3ds } from "@basis-theory/3ds-react-native";
const App = () => {
return (
<BasisTheory3dsProvider apiKey={"<API_KEY>"}>
<MyApp />
</BasisTheory3dsProvider>
);
}
const MyApp = () => {
const { createSession, startChallenge } = useBasisTheory3ds();
//... rest of your component
const session = await createSession({ tokenId: "<TOKEN_ID>" });
}
Parameters
The createSession
method takes an object as parameter w/ the following attributes:
Attribute | Required | Type | Description |
---|---|---|---|
tokenId | false | string | The Basis Theory token id for the card token to be used |
tokenIntentId | false | string | The Basis Theory token id for the card token intent to be used |
pan | false | string | DEPRECATED The Basis Theory token id for the card token to be used |
Either tokenId
or tokenIntentId
is required.
Return
The method returns an object with the following attributes:
Attribute | Type | Description |
---|---|---|
id | string | The created session id |
cardBrand | string | The brand for the used card (i.e. Visa) |
Start Challenge
This method initiates the 3DS challenge process, if it was deemed necessary during the 3DS authentication. The challenge window will be displayed to the user in a WebView.
Usage
import { BasisTheory3dsProvider, useBasisTheory3ds } from "@basis-theory/3ds-react-native";
const App = () => {
return (
<BasisTheory3dsProvider apiKey={"<API_KEY>"}>
<MyApp />
</BasisTheory3dsProvider>
);
}
const MyApp = () => {
const { createSession, startChallenge } = useBasisTheory3ds();
//... rest of your component
const challengeCompletion = await startChallenge({
acsChallengeUrl: "https://some-challenge-url.com",
acsTransactionId: "5236966c-62be-417b-8f66-dbec6d87911d",
sessionId: "9289231e-2c0b-4f38-92fa-dec3c586d58b",
threeDSVersion: "2.2.0",
});
}
Parameters
The startChallenge
method takes in an object with the following attributes:
Attribute | Required | Type | Description |
---|---|---|---|
acsChallengeUrl | true | string | The URL for the challenge window. Available from the Authenticate endpoint response |
acsTransactionId | true | string | The ACS transaction id. Available from the Authenticate endpoint response |
sessionId | true | string | The created 3DS session id |
threeDSVersion | true | string | The 3DS message version. Available from the Authenticate endpoint response |
windowSize | false | string | The code for the pre-configured window size. See Challenge Window Sizes |
timeout | false | number | The time in miliseconds to wait for challenge completion before considering it timed out. Defaults to 60000ms (1 minute) |
Return
The method returns a boolean
, with it being true
if the challenge was able to completed, or false
if an error or timeout occurred.
Challenge Window Sizes
WindowSize ID | Size |
---|---|
01 | 250px x 400px |
02 | 390px x 400px |
03 | 500px x 600px |
04 | 600px x 400px |
05 | 100% x 100% |