UAT Scenarios
Run these before go-live to confirm the integration behaves correctly across timings, failure modes, and PSP-specific edge cases:
Scenario | Timing | Setup | Expected result |
|---|---|---|---|
Standard order | Any | Log in as [email protected], place a test order | order.custom.forterDecision is APPROVED; order status NEW |
Decline & block | Any | Log in as [email protected], forterCancelOrderOnDecline enabled, place a test order | Checkout blocked; order status FAILED; authorization voided |
Pre-auth block | PRE_AUTH | Log in as [email protected], place a test order | Checkout blocked before payment authorization; no order created |
Service failure (fail-open) | Any | Invalid API key, place a test order | Order completes; custom-forter-*.log shows retries then a fail-open message |
Status sync | Any | Change the status of an order that already has a forterDecision, wait 5 minutes (or run the job manually) | Forter Portal shows the updated status for that order |
3DS re-fire (PSP-dependent) | Any | PSP triggers a 3DS challenge, place a test order | order.custom.forterPspAuthResult reflects the final charge data after the challenge |