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
Outcome | Call to Action | Order 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.
Updated 10 months ago