Stripe Checkout vs Elements for PCI DSS: What SAQ A Still Requires in 2026
If you are choosing between Stripe Checkout and Stripe Elements mainly to reduce PCI DSS scope, one common piece of advice is now misleading: modern Stripe Elements does not automatically put a merchant into SAQ A-EP. Stripe's current PCI guidance lists both Checkout and Elements as SAQ A integrations for eligible Level 2–4 merchants because Stripe-hosted fields collect card data directly.
But SAQ A is not the same as "no PCI work". Under PCI DSS v4.x, an e-commerce merchant using either a redirect to a payment processor or an embedded third-party payment form can still have obligations such as external vulnerability scans. Embedded payment forms also have a specific SAQ A eligibility condition around script attacks that does not apply in the same way to a full redirect.
The right decision is therefore not simply SAQ A vs SAQ A-EP. It is how much checkout control you need, and which remaining PCI responsibilities you are prepared to operate.
The short answer: Checkout and modern Elements can both qualify for SAQ A
Stripe's current PCI compliance guide lists Checkout or Elements → SAQ A for eligible Level 2–4 merchants. Stripe says Checkout, Stripe.js and Elements host card-data collection inputs in an iframe served from Stripe's domain, so sensitive card data does not pass through the merchant's servers.
Stripe separately lists its legacy Stripe.js v2 integration as SAQ A-EP, and direct API integrations that pass card data through the merchant's systems as SAQ D.
That means this simplified claim is wrong for current Stripe integrations:
Stripe Checkout = SAQ A
Stripe Elements = always SAQ A-EPA better starting point is:
Stripe-hosted Checkout redirect
→ can qualify for SAQ A
Embedded Checkout / modern Stripe Elements
with Stripe-hosted payment fields
→ can also qualify for SAQ A
→ but embedded-page SAQ A eligibility has extra script-risk considerations
Legacy/custom flow where merchant-controlled elements handle card data
→ can increase PCI scopeEligibility still depends on meeting all conditions for the applicable Self-Assessment Questionnaire and on the requirements of the organisation accepting your PCI validation, such as your acquirer or payment brand. PCI SSC explicitly recommends confirming the correct validation method with the relevant compliance-accepting entity.
This article is technical guidance, not a formal PCI assessment. If the classification materially affects your compliance programme, confirm it through Stripe's PCI workflow and, where appropriate, a Qualified Security Assessor (QSA).
Why do so many articles still say Stripe Elements means SAQ A-EP?
Because payment integrations and PCI guidance have evolved, while old explanations keep circulating.
The confusion usually comes from mixing three different architectures:
- a payment page fully hosted by the processor
- a processor-hosted payment form embedded in the merchant page
- merchant-controlled card-entry fields that send data to a processor
Those are not equivalent.
PCI SSC's guidance for SAQ A says that for an embedded iframe scenario, the elements involved in collecting or processing card data must originate from a PCI DSS-compliant third-party service provider. The merchant page can still contain unrelated content outside that payment iframe.
Modern Stripe Elements uses Stripe-hosted iframes for sensitive payment fields. Stripe's current documentation therefore treats eligible Checkout and Elements integrations as SAQ A rather than automatically classifying Elements as SAQ A-EP.
The useful question is not:
Is the payment experience visually inside my website?
It is:
Where do the payment-page elements that capture cardholder data originate, and does the complete environment meet the relevant SAQ eligibility criteria?
Stripe Checkout itself now has more than one UI model
"Use Stripe Checkout" is no longer precise enough to describe the architecture.
Stripe's current Checkout documentation supports at least two common low-code presentation models:
| Checkout model | What the customer sees | Where the payment UI is hosted |
|---|---|---|
| Stripe-hosted page | Customer leaves your page for a Stripe-hosted checkout, then returns | Stripe-hosted page |
| Embedded Checkout | Checkout appears inside your site | Stripe-hosted form embedded in the merchant page |
Stripe also supports more custom checkout experiences using Elements with the Checkout Sessions API.
From a product perspective, those choices trade control for simplicity.
From a PCI perspective, the distinction between redirect and embedded payment page matters because PCI SSC applies an additional SAQ A script-attack eligibility condition to embedded payment forms.
What changes when you embed the payment form?
An embedded payment field can keep card data away from your server while your own webpage still surrounds the payment experience.
That surrounding page can load:
- analytics scripts
- tag managers
- chat widgets
- A/B testing tools
- marketing pixels
- first-party JavaScript bundles
- third-party libraries
If an attacker compromises the merchant webpage, malicious JavaScript can potentially manipulate the customer's path into the payment experience or interfere with the page around the trusted iframe.
That is why PCI DSS v4.0.1 SAQ A includes a specific eligibility condition for e-commerce merchants using an embedded third-party payment page/form.
PCI SSC's current FAQ 1588 says an embedded-payment SAQ A merchant must confirm that its site is not susceptible to attacks from scripts that could affect the e-commerce system.
PCI SSC also makes an important distinction:
That particular embedded-script eligibility criterion does not apply to an e-commerce merchant whose site redirects customers to a compliant third-party processor rather than embedding the processor's payment page.
So Checkout redirect and embedded Checkout/Elements can both be SAQ A architectures while still carrying different practical security work.
Does an embedded Stripe payment form require PCI DSS Requirements 6.4.3 and 11.6.1?
Do not reduce this to a universal "yes" or "no" without checking the exact SAQ A eligibility path.
PCI SSC explains two broad ways an eligible embedded-payment merchant can demonstrate the script-attack condition described in SAQ A:
- use techniques such as those addressed by PCI DSS Requirements 6.4.3 and 11.6.1 to protect the merchant webpage from script attacks; or
- obtain confirmation from the PCI DSS-compliant third-party payment provider that, when its solution is implemented according to the provider's instructions, the solution includes techniques that protect the merchant payment page from script attacks.
That is a more accurate statement than:
iframe = SAQ A-EPor:
iframe = no script responsibilityThe implementation and evidence matter.
Do not assume Stripe has provided a particular confirmation for your exact integration unless you have actually obtained or verified the relevant Stripe documentation for it.
SAQ A still requires external vulnerability scanning in 2026
This is the second major misconception.
A merchant can outsource payment-card collection and still have PCI obligations on the merchant-controlled e-commerce webpage.
In a June 2026 clarification, PCI SSC FAQ 1604 confirms that SAQ A's external vulnerability scanning requirements apply to merchant e-commerce webpages that:
- redirect transactions to a compliant third-party payment provider; or
- contain an embedded payment page/form from a compliant third-party provider.
PCI SSC says these scans must be conducted using a PCI Approved Scanning Vendor (ASV) for the relevant SAQ A requirements.
PCI SSC's ASV guidance explains that the SAQ A scanning requirement is intended to catch vulnerabilities on the merchant-controlled webpage that could compromise the route into the outsourced payment process. The guidance describes passing external scans at least once every three months for the applicable requirement.
So even this architecture:
Your ecommerce page
↓
Redirect to Stripe Checkout
↓
Stripe collects all card datashould not be interpreted as:
Our website has zero PCI security obligations.The payment-card collection scope is heavily reduced, but the merchant's e-commerce entry point still matters.
Checkout vs Elements: the practical PCI comparison
| Dimension | Stripe-hosted Checkout redirect | Embedded Checkout / modern Elements |
|---|---|---|
| Card data touches merchant server | Normally no when implemented as documented | Normally no when implemented as documented |
| Stripe's current SAQ guidance | SAQ A for eligible merchants | SAQ A for eligible merchants |
| Merchant controls surrounding payment page | Less | More |
| Embedded-payment script eligibility condition | Does not apply in the same way to redirect flow | Applies to embedded-payment SAQ A eligibility |
| SAQ A external ASV scanning | Still relevant for merchant e-commerce webpage | Still relevant for merchant e-commerce webpage |
| UI control | Lower | Higher |
| Integration complexity | Lower | Higher |
| Frontend script surface around payment fields | Smaller | Larger because merchant page remains active |
| Best fit | Fast launch, simpler payment surface | Branded/in-page checkout needing more control |
The table is not a substitute for a formal assessment. It is a decision framework for architecture discussions.
When should you choose Stripe-hosted Checkout?
Choose the full Stripe-hosted redirect when checkout customisation is not strategically important enough to justify more merchant-side complexity.
It is usually attractive when:
- you are launching an MVP
- the payment flow is conventional
- you want minimal frontend payment code
- the product can tolerate leaving your domain briefly
- reducing payment-page script exposure is valuable
- your team does not want to operate a highly customised checkout surface
The architecture is intentionally simple:
Your app
↓
Create Checkout Session server-side
↓
Redirect to Stripe-hosted Checkout
↓
Payment completes
↓
Webhook confirms business eventThe compliance advantage is not that PCI disappears. It is that less of the payment experience is controlled by your own page.
For backend fulfilment, keep the checkout redirect separate from payment state. Do not provision an order solely because the customer reached a success URL. Use verified server-side payment events. Softotic's existing Stripe webhook reliability guide covers duplicate events, retries and out-of-order delivery.
When should you choose Stripe Elements or embedded Checkout?
Choose an embedded approach when the checkout experience genuinely needs tighter integration with your product.
Typical reasons include:
- the payment form must remain inside a multi-step onboarding flow
- you need substantial visual control
- the product requires a custom layout around payment fields
- checkout needs to share state with other in-page components
- your UX cannot reasonably redirect to a separate hosted page
But that control has a cost.
The merchant page now remains part of the payment experience, so frontend security and change management deserve more attention.
This is especially important for modern JavaScript applications because a checkout route can quietly accumulate third-party dependencies over time.
A page that began with:
React bundle
+ Stripe.jscan become:
React bundle
+ Stripe.js
+ analytics
+ heatmap
+ chat
+ experimentation SDK
+ tag manager
+ affiliate pixelEvery extra script is another reason to understand the script-risk eligibility condition rather than treating SAQ A as a one-time form.
A safer embedded-checkout architecture
A useful design principle is to make the payment route deliberately boring.
Checkout page
├── first-party application code
├── Stripe.js loaded from Stripe
├── Stripe-hosted payment fields
├── minimum required analytics
└── no unnecessary third-party scriptsPractical controls can include:
- remove scripts that do not provide checkout value
- use a restrictive Content Security Policy where appropriate
- maintain an inventory of scripts present on payment-related pages
- monitor unexpected page/script changes
- patch the merchant website and exposed infrastructure promptly
- limit access to tag-management and CMS/admin systems
- use strong authentication for users who can change production checkout code
- run required ASV scans and remediate findings
The goal is not to turn an ordinary SaaS checkout into a fortress of decorative security tooling.
The goal is to reduce the chance that the merchant-controlled page becomes the weak link around a correctly isolated Stripe iframe.
Does SAQ A mean your entire SaaS backend is out of PCI scope?
Not automatically.
SAQ eligibility depends on your full payment flow and data handling, not the name of the Stripe component used on one page.
Questions to audit include:
- Does any backend endpoint receive raw card numbers?
- Are card numbers ever written to logs?
- Does support staff manually accept card details?
- Are payment forms also present in mobile apps, internal tools or legacy pages?
- Does another processor use a different integration model?
- Does a call-centre workflow handle cardholder data?
- Are there old Stripe.js v2 pages still active?
One forgotten path can change the assessment.
Stripe's current guide, for example, distinguishes modern Checkout/Elements from direct API card-data handling, which Stripe maps to the more demanding SAQ D validation route.
A good payment architecture inventory looks like:
Customer payment channels
├── Web checkout → Stripe Checkout / Elements
├── Mobile → Stripe mobile SDK
├── Support → no raw card intake
├── Admin → no copied card details
└── Legacy → retired or assessed separatelyDo not scope PCI from a single screenshot of the newest checkout page.
Hosted redirect vs embedded form: a buyer decision framework
Ask these questions in order.
1. Is custom checkout UX commercially important?
If no, start with Stripe-hosted Checkout.
If yes, continue.
2. Can the experience be customised enough with embedded Checkout before building a fully custom Elements flow?
Stripe now offers a middle ground: embedded Checkout keeps a prebuilt Stripe payment experience inside the site.
Do not choose the most custom architecture by default.
3. Can your team operate the merchant payment page securely?
An embedded flow is a poor trade if nobody owns:
- third-party scripts
- deployment security
- vulnerability remediation
- CSP/script policy
- ASV findings
- checkout-route change control
4. Do you have a real reason to handle card data yourself?
For most SaaS and ecommerce products, the answer should be no.
Directly handling sensitive card data can dramatically increase PCI burden without improving the product enough to justify it.
5. Has your compliance-accepting entity confirmed the validation route?
Stripe can guide its users through the appropriate documentation, but PCI SSC states that merchants should confirm reporting and validation requirements with the organisation that accepts their PCI compliance submission.
This avoids building a business plan around an SAQ assumption that your acquirer does not accept for your specific environment.
What should a development team verify before launch?
Payment-data flow
- □Sensitive card inputs originate from Stripe-hosted fields.
- □Raw card data never reaches the application backend.
- □Raw card data is not logged or copied into analytics.
- □Test/debug tooling does not capture sensitive payment details.
Stripe integration
- □Stripe.js is loaded according to Stripe's current documentation.
- □Payment/session amounts are calculated or validated server-side.
- □Fulfilment is driven by verified server-side Stripe events rather than only frontend redirects.
- □Stripe webhook signatures are verified.
PCI validation
- □The team has identified the correct SAQ/ROC route for its merchant level and environment.
- □All SAQ A eligibility criteria are checked, not only the iframe criterion.
- □Embedded payment pages have evidence for the script-attack eligibility condition.
- □Required ASV scanning is scheduled and findings are remediated.
- □The chosen validation method is confirmed with the relevant compliance-accepting entity when needed.
Merchant webpage security
- □Checkout-route third-party scripts are inventoried.
- □Unnecessary tags/widgets are removed.
- □Administrative access to production code, CMS and tag managers is protected.
- □Vulnerability and patch management covers the ecommerce entry point.
- □Security monitoring can detect unexpected changes to critical payment-related pages.
This checklist is more useful than asking developers to "make Stripe PCI compliant" after the product is already live.
Three mistakes that create avoidable PCI scope
Mistake 1: building custom card fields because the design team wants pixel-level control
Before doing this, verify whether Elements already gives enough design control while keeping sensitive inputs Stripe-hosted.
Owning the pixels is not worth accidentally owning raw card-data handling.
Mistake 2: sending payment fields through your own backend before forwarding to Stripe
This destroys one of the central scope-reduction benefits of hosted fields.
Use Stripe's documented client-side/tokenised architecture rather than proxying raw card data through application servers.
Mistake 3: assuming SAQ A is a one-time checkbox
PCI compliance is an ongoing state.
Your integration can drift:
Launch
→ clean Checkout page
6 months later
→ marketing tags added
→ CMS plugin added
→ old support workflow added
→ new payment page addedThe correct assessment can change as the system changes.
What about a Next.js, React or headless ecommerce site?
The framework does not determine the SAQ by itself.
A Next.js application can use:
Stripe-hosted Checkout redirector:
embedded Stripe payment fieldsor a dangerous custom flow where card data reaches application code.
The data flow matters more than whether the frontend is Next.js, React, Vue, Shopify headless or another stack.
For an embedded payment page in a JavaScript-heavy frontend, however, modern frontend architecture makes script governance particularly relevant because so much functionality arrives through client-side code.
A good engineering decision is often to create a narrow checkout route with fewer dependencies than the rest of the marketing/application shell.
Is Checkout always more secure than Elements?
That is too simplistic.
Both can be implemented securely, and Stripe's current guidance supports SAQ A eligibility for both modern approaches when the requirements are met.
The hosted redirect has a structural advantage: the merchant controls less of the payment page itself.
Elements has a product advantage: the merchant can create a more integrated checkout experience while sensitive fields remain hosted by Stripe.
The trade-off is therefore:
Hosted Checkout
→ less merchant-controlled payment-page surface
→ less custom UX
Elements / embedded checkout
→ more merchant-controlled page surface
→ more UX flexibility
→ more reason to manage surrounding scripts carefullyChoose from product needs and operational capability, not from a slogan.
FAQs
Does Stripe Elements require SAQ A-EP in 2026?
Not automatically. Stripe's current PCI guide lists modern Checkout and Elements as SAQ A integrations for eligible Level 2–4 merchants because sensitive card-input fields are hosted by Stripe. Legacy Stripe.js v2 and other architectures can have different validation requirements.
Does Stripe Checkout mean I have no PCI DSS requirements?
No. Outsourcing card collection significantly reduces scope, but SAQ A still contains merchant responsibilities. PCI SSC confirmed in June 2026 that applicable SAQ A ecommerce webpages using redirects or embedded third-party payment forms are subject to the SAQ's external ASV scanning requirements.
Is embedded Stripe Checkout treated the same as a Stripe-hosted redirect?
They can both fit SAQ A, but the practical requirements are not identical. PCI SSC's specific SAQ A eligibility criterion concerning script attacks applies to merchant webpages with embedded third-party payment forms, while PCI SSC says that criterion does not apply to redirect-only payment flows in the same way.
Do SAQ A merchants need quarterly ASV scans?
For applicable ecommerce webpages, yes. PCI SSC says SAQ A includes external scanning requirements for merchant webpages that either redirect payment transactions to a compliant third-party provider or embed that provider's payment page/form. PCI SSC guidance describes passing ASV scans at least once every three months for the relevant requirement.
Can I decide my SAQ only from Stripe's documentation?
Stripe's guidance is an important integration-specific source, but PCI SSC says merchants should confirm their validation/reporting requirements with the entity that accepts their PCI compliance submission. Complex environments may also need QSA advice.
Which is better for a SaaS MVP: Checkout or Elements?
For many MVPs, Stripe-hosted Checkout is the simpler default because it reduces frontend payment code and merchant-controlled payment-page surface. Choose Elements or embedded Checkout when tighter in-product UX creates enough business value to justify the additional implementation and page-security responsibility.
Conclusion
The useful 2026 answer is more nuanced than the old internet shorthand.
Modern Stripe Checkout
→ SAQ A can be available
Modern Stripe Elements
→ SAQ A can also be available
But SAQ A
≠ no PCI responsibilitiesFor embedded payment forms, understand the SAQ A script-attack eligibility condition.
For both embedded and redirect ecommerce flows, understand the applicable ASV scanning requirements.
And for the entire system, verify that no forgotten payment channel lets raw card data leak back into your servers, logs or support processes.
If you are deciding between a hosted checkout and a custom embedded payment flow, make the choice from product experience + engineering cost + PCI operating responsibility, not from an outdated claim that Elements automatically means SAQ A-EP.
If your SaaS or ecommerce product needs a payment architecture that keeps sensitive data out of your application while preserving the right checkout experience, Softotic's custom software development service can design the backend and payment flow, while web application development can implement the customer-facing checkout safely.
Sources and references
- Stripe: A guide to PCI compliance
- Stripe: Checkout documentation
- PCI SSC FAQ 1588: How does an e-commerce merchant meet the SAQ A eligibility criteria for scripts?
- PCI SSC FAQ 1604: Do ASV scans in SAQ A apply to redirects and embedded iframes?
- PCI SSC FAQ 1438: How is the payment page determined for SAQ A merchants using iframe?
- PCI SSC FAQ 1331: Using SAQ eligibility criteria and confirming assessment requirements