Power Your Software Testing with AI Agents and Cloud
The Native AI-Agentic Cloud Platform to Supercharge Quality Engineering. Test Intelligently and Ship Faster.
- TestMu AI (Formerly LambdaTest)
- /
- Use Cases
- /
- Test a 3D Secure challenge without breaking the payment
Test a 3D Secure challenge without breaking the payment
Strong customer authentication interrupts a payment on purpose. Four steps check the challenge appears, approves, and leaves an authenticated record.
Published on:
Strong customer authentication is the one thing in a payment flow designed to interrupt it. A challenge dialog appears, control leaves your page, and whatever happens next decides whether the payment completes.
That interruption is what breaks naive automation, because a script written against the happy path has no idea the dialog exists. A plain English step does, because the dialog is described the way a person sees it.
The flow under test
A 3DS flow has three distinct states and a test that only checks the last one cannot tell you which of the first two failed.
- The challenge is triggered - a dedicated 3DS test card produces a dialog rather than an immediate success.
- The challenge carries the right context - the amount and the card the bank is asking about, so a customer can recognise the payment.
- Approval returns cleanly - control comes back to the merchant page and the payment succeeds.
- The record says it was authenticated - a badge on the receipt, which is what shifts liability on a disputed charge.
The last point is commercial rather than technical. An authenticated payment and an unauthenticated one carry different liability, so a receipt that omits the badge is a finance problem even when the money moved.
Note: Kane CLI can pause a run for a one-time code and continue, so an authentication step does not force a flow to be split in two. See it on TestMu AI. Try free!
The test file
The card number is the trigger. Using the 3DS test card rather than the standard one is what makes the challenge appear at all, and the rest of the file reads like any other checkout test.
---
mode: testing
url: https://my-testing-repo-main.vercel.app/stripe-clone-app/checkout?reset=true
max_steps: 40
tags: [stripe, payments, authentication]
---
# Stripey 9.2: 3DS challenge
Catalog objective: pay with a 3DS test card and approve the challenge.
Key assertion: the challenge completes and the payment succeeds.
## Use the 3DS test card
Type "4000 0025 0000 3155" into "Card number", "12 / 34" into "Expiry", "123" into "CVC", and click "Pay $240.00".
## Verify the challenge appears
Verify a dialog titled "3D Secure authentication" appears saying the bank needs to verify this payment, showing "Amount" of "$240.00" and "Card" of "Visa ••••3155".
## Approve the challenge
Click "Approve payment" and verify a green banner titled "Payment successful" appears.
## Verify the payment is marked as authenticated
Verify the receipt shows "Card" of "Visa ••••3155", "Status" of "succeeded" and a badge reading "3D Secure authenticated".The dialog assertion names the amount and the masked card together, because a challenge showing the wrong amount is worse than no challenge: the customer approves a figure that is not the one being charged.
Step by step coverage
Each step in the file is doing one job, and the table below is the fastest way to see whether the flow covers what it should before you run it.
| Step | What it proves |
|---|---|
| Use the 3DS test card | The card triggers authentication rather than settling directly |
| Verify the challenge appears | The dialog renders with the correct amount and masked card |
| Approve the challenge | Control returns to the merchant page and the payment succeeds |
| Verify the payment is marked as authenticated | The receipt carries the 3D Secure badge that governs liability |
The assertions are written against visible text, so the file survives a change to the challenge dialog's markup. What it does not survive, correctly, is a change to the amount the customer is asked to approve.
Running it
kane-cli testmd run tests/stripe/3ds-challenge_test.mdKane CLI resolves each sentence against the live page, so the challenge dialog is handled as an ordinary part of the flow rather than as a special case the script has to anticipate.
Authentication steps that need a real code are the usual reason a payment flow cannot be automated at all. The three Kane CLI modes covers when to run this interactively rather than headless, and running flows in CI covers the headless case.
Author
Bhawana is a Community Evangelist at TestMu AI with over 3 years of experience creating technically accurate, strategy-driven content in software testing. She has authored 50+ blogs on test automation, cross-browser testing, mobile testing, and real device testing. She also serves as Product Marketing Manager for Kane CLI, the command-line tool that runs browser automation from the terminal using natural-language flows in a real Chrome browser. Bhawana is certified in KaneAI, Selenium, Appium, Playwright, and Cypress, reflecting her hands-on knowledge of modern automation practices. On LinkedIn, she is followed by 6000+ QA engineers, testers, AI automation testers, and tech leaders.
3D Secure Testing FAQs
Did you find this page helpful?
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance
- Advanced access controls
- Advanced data retention rules
- Advanced Local Testing
- Premium Support options
- Early access to beta features
- Private Slack Channel
- Unlimited Manual Accessibility DevTools Tests




