3DS Results API

Results API Overview

The /v3/managed/orders/:orderId/results API should be called in case 3ds was executed, for fetching Forter's fraud decision and 3DS results.

Step 1 - Server Side: Implement an endpoint for calling Forter Results API

Results Request

To call the Forter Results API in this endpoint, please provide the managedOrderToken from the Order Response.

Results Response

OutcomeCall to ActionOrder Response Fields
Forter Approved & 3DS was executed successfully

Borderline transaction which was APPROVED by Forter only following successful 3DS

OR

Transaction which was APPROVED by Forter, and Frictionless 3DS was executed successfully in order to shift liability

OR

PSD2 transaction which was APPROVED by Forter, 3DS was executed in order to comply PSD2 and succeeded
Authorize with 3DS results"forterDecision": "APPROVE"
"verificationMethod": { "status": "FRICTIONLESS"}

In order to simulate such Response, use card number 5222220000000005 when calling the Order API

OR

"forterDecision": "APPROVE" "verificationMethod": { "status": "ATTEMPTED"}

In order to simulate such Response, use card number 4111110000001142 when calling the Order API

OR

"forterDecision": "APPROVE"
"verificationMethod": { "status": "AUTHENTICATED"}

In order to simulate such Response, use card number 5111220000000009 when calling the Order API, and PIN Code 1234 in the challenge window
Forter Approved & 3DS was executed unsuccessfully

PSD2 transaction which was APPROVED by Forter, 3DS was executed in order to comply PSD2 regulation and failed
Do not Authorize"forterDecision": "APPROVE"
"verificationMethod": { "status": "FRICTIONLESS_NOT_AUTHENTICATED"}

OR

"forterDecision": "APPROVE" "verificationMethod": { "status": "FRICTIONLESS_BANK_REJECT"}

OR

"forterDecision": "APPROVE" "verificationMethod": { "status": "FRICTIONLESS_TECHNICAL_ISSUE"}

OR

"forterDecision": "APPROVE" "verificationMethod": { "status": "NETWORK_ERROR"}

In order to simulate such Response, use card number 5248481111200179 when calling the Order API

OR

"forterDecision": "APPROVE"
"verificationMethod": { "status": "NOT_AUTHENTICATED"}

OR

"forterDecision": "APPROVE" "verificationMethod": { "status": "NOT_AUTHENTICATED_BANK_REJECT"}

OR

"forterDecision": "APPROVE" "verificationMethod": { "status": "NOT_AUTHENTICATED_TECHNICAL_ISSUE"}
Forter Declined & 3DS was executed unsuccessfully

Borderline transaction which was DECLINED by Forter following unsuccessful 3DS
Do not Authorize"forterDecision": "DECLINE"
"verificationMethod": { "status": "FRICTIONLESS_NOT_AUTHENTICATED"}

In order to simulate such Response, use card number 4000000000001992 when calling the Order API

OR

"forterDecision": "DECLINE" "verificationMethod": { "status": "FRICTIONLESS_BANK_REJECT"}

In order to simulate such Response, use card number 5200000000000031 when calling the Order API

OR

"forterDecision": "DECLINE" "verificationMethod": { "status": "FRICTIONLESS_TECHNICAL_ISSUE"}

In order to simulate such Response, use card number 5200000000001336 when calling the Order API

OR

"forterDecision": "DECLINE" "verificationMethod": { "status": "NETWORK_ERROR"}

OR

"forterDecision": "DECLINE"
"verificationMethod": { "status": "NOT_AUTHENTICATED"}

In order to test such response, use card number 5111220000000009 when calling the Order API, and PIN Code 4567 in the challenge window

OR

"forterDecision": "DECLINE" "verificationMethod": { "status": "NOT_AUTHENTICATED_BANK_REJECT"}

In order to simulate such Verify Response, use card number 5200000000002227 when calling the Order API, and PIN Code 1234 in the challenge window

OR

"forterDecision": "DECLINE" "verificationMethod": { "status": "NOT_AUTHENTICATED_TECHNICAL_ISSUE"}

In order to simulate such Response, use card number 5200000000003332 when calling the Order API, and PIN Code 1234 in the challenge window
Forter Approved, Frictionless 3DS was attempted unsuccessfully

Transaction APPROVED by Forter, Frictionless 3DS attempted to shift liability, but wasn't completed successfully.
Standard Authorization

The messages are informative only, no need to adjust your integration with the PSP
"forterDecision": "APPROVE" "verificationMethod": { "status": "CHALLENGE_REQUESTED_BYPASSED"}

To simulate such Response, use the card number 4138490000000000 and the email [email protected] when calling the Order API

OR

"forterDecision": "APPROVE" "verificationMethod": { "status": "ATTEMPTED_BYPASSED"}

To simulate such Response, use the card number 5248480000200068 and the email [email protected] when calling the Order API

OR

"forterDecision": "APPROVE" "verificationMethod": { "status": "FRICTIONLESS_NOT_AUTHENTICATED_BYPASSED"}

To simulate such Response, use the card number 4407900000000002 and the email [email protected] when calling the Order API
Forter Approved, Mastercard IDCI was executed

Transaction APPROVED by Forter, and IDCI was executed to share Forter's risk score with Mastercard
Authorize with IDCI Results"forterDecision": "APPROVE" "verificationMethod": { "status": "DATA_ONLY"}

Step 2 - Client Side: Call your Server Side

After implementing the endpoint on your server side in Step 1, it should be called from your client side upon receiving a callback from the checkoutTools.managedOrders.manageOrder() JS function, indicating that the results are ready for fetch.