Three ways to take card payments on a site: redirect to the provider, an iframe, or your own form. What changes in experience, abandonment and PCI scope.
Key takeaways
- The closer the form sits to you, the more you own - in security and in maintenance.
- Per PCI assessment firms, a full redirect or a provider iframe puts you on the short questionnaire; your own form moves you to a far longer one.
- The abandonment difference between the three is smaller than assumed. Payment methods and unnecessary fields matter more.
- Israeli providers offer all three; PayPlus, for instance, presents WooCommerce embedding as either iFrame or Redirect.
There are three ways to take money on a website: redirect the customer to the provider's page, embed the provider's iframe inside your page, or build your own form that sends the data to the provider. The difference is not cosmetic - it decides how much of the card data security standard applies to you, and who is responsible when something breaks.
The three approaches, side by side
| Redirect to the provider | iframe inside your page | Your own form to an API | |
|---|---|---|---|
| What the customer sees | Moves to the provider's address | Stays with you, provider's fields | Stays with you, everything yours |
| Who serves the card fields | The provider | The provider | You |
| Who designs the experience | The provider, usually with branding | You around it, provider inside | Entirely you |
| What breaks on an update | Almost nothing | The embed, height, mobile scrolling | Everything - the form is your code |
| Who maintains it | The provider | Both of you | You |
| Security scope on you | The smallest | Small, but not identical to redirect | The largest |
| Suits | Most businesses | Anyone wanting a continuous experience | Teams with developers and a good reason |
Why does this change which PCI requirements apply to you?
The assessment firms that guide businesses through PCI DSS describe the distinction this way: when the site fully redirects the customer to a validated third party, or uses an iframe that third party supplies, the flow of cardholder data is controlled by that provider - which places the business on the short self-assessment questionnaire. When the payment form is implemented and managed by the merchant instead - a Direct Post script, for example - a far broader questionnaire applies.
The gap those firms cite is a couple of dozen requirements against roughly two hundred. That is why this is not a designer's decision:
- Your own form means every script running on your page is part of the payment environment.
- That includes analytics tools, chat widgets, pixels and plugins - each one a component to manage.
- And it means an update to a plugin unrelated to payments still touches the payment flow.
The binding definitions live with the standards council, and what actually applies to you is settled with your acquirer and your assessor - not from an article. What you can take from this: absent a strong reason, the redirect or the iframe is the correct default.
What actually drives abandonment?
The assumption that customers abandon because of a domain change is far less true than people think, especially when the provider's page is branded. What does lose transactions:
- The payment method the customer wants is missing. No Bit or digital wallet is immediate abandonment.
- No instalments. Israeli consumers look to split payments; a page without that loses the large transactions.
- Unnecessary fields. Every field not required to charge is a reason to leave.
- A slow mobile page, or an iframe whose height forces scrolling inside scrolling.
- A Hebrew error that says nothing. "The transaction failed", with no next action.
So the right order is to check payment methods and instalments first, and only then discuss the embedding type. The full breakdown is in why Israeli checkouts get abandoned.
What to check before choosing an approach
- Whether your provider offers all three, or only some.
- Whether the iframe is mobile-fit, and what happens when the keyboard opens.
- Whether the provider's page can be branded, and how far.
- What happens when a transaction fails - where the customer lands and what they read.
- Who maintains the embed after go-live, and what happens on a store version upgrade.
- What a refund looks like - from inside the system, or a support request.
Question five is what decides it in a business with no in-house developer. A plugin broken by a platform upgrade is the most common reason a store stops collecting, and it is usually discovered by a customer rather than by monitoring.
Who owns what, after go-live
This is the question nobody asks during implementation and everybody asks at the first incident. Write the split down once:
- The page containing the payment - yours, always. Even when the fields are the provider's.
- The card fields and their storage - the provider's, in the first two approaches.
- The success and failure message to the customer - yours. The provider returns a result; you write what it says.
- Updating the order in your system - yours, and always from the server notification rather than the browser's return.
- The plugin connecting store to provider - depends who built it. The provider's official plugin is theirs; a third-party one is yours.
- The month-end reconciliation report - yours.
The last line is the forgotten one. Even when everything sits with the provider, matching what was charged against what reached the bank is your work, and no embedding method changes that.
What goes wrong in each approach
- Redirect: the customer lands on the thank-you page before the provider's notification arrives, and the order looks unpaid. Fix: rely on the server-to-server update, not on the browser's return.
- iframe: a fixed height producing double scrolling on mobile, or third-party blocking in the browser preventing it from loading.
- Own form: an external script that changes without notice and touches the payment page - precisely why your scope is larger.
- All three: no report showing how many transactions opened against how many completed, so nobody knows there is a problem.
When you do build your own form
There are situations where it is the right call, and they are narrow:
- A subscription or renewal inside a product where the user is already logged in, and leaving for an external page breaks the flow.
- A multi-step process where payment is one step among several and you cannot exit midway.
- Charging without the customer present, such as an automatic renewal on an existing token - which is not a form at all but a server call.
- A marketplace that has to split an amount between several sellers.
In each of those, the decision belongs with whoever will maintain it for two years, not with the start of a project. And in every case, storing the card itself still stays with the provider as a token, as explained in what a payment token is.
Sources
Frequently asked questions
What is recommended for a small business?
A redirect to the provider's page, or an iframe they supply. Both shrink what you have to secure and maintain, and both are what Israeli providers support directly in their store plugins. Your own form suits a team with developers and a clear product reason.
Does an iframe count as "mine" or "the provider's"?
For customer experience, yours. For cardholder data flow, assessment firms describe an iframe supplied by a validated provider as the provider's control. That said, the page containing the iframe is yours, so what runs on it still matters. Get the binding answer from your acquirer and assessor.
Can I style the provider's payment page?
In most cases it can be branded - logo, colours, sometimes a subdomain on your own domain. PayPlus, for example, presents a checkout page for your domain. Establish exactly what is changeable before implementation, because that is the difference between a page that looks yours and one that looks foreign.
What is best for a WooCommerce or Shopify store?
Whatever the provider's official plugin supports. Israeli providers publish plugins for the common platforms, and PayPlus for instance presents WooCommerce embedding as iFrame or Redirect. Choosing the path the plugin supports saves maintenance at every upgrade.
Keep reading
Related service
Integrations
Make the systems you already pay for talk to each other.
About the author
Yehonatan Saadia
Freelance automation, web & MVP developer
I'm Yehonatan Saadia, a senior developer who builds business automation, custom websites, and MVPs for small and mid-sized companies across the US, Europe, and Israel. These guides come from real client work, not theory.
Work with meHave a project like this?
Tell me what you're trying to automate or build and I'll tell you the fastest reliable way to ship it.
