Choosing a payment gateway for a Polish WooCommerce store comes down to three players: Przelewy24, Stripe, PayU. Each has a different philosophy, a different fee table, a different set of native methods. The wrong choice costs 0.3-1.2% of annual revenue in higher commissions or lost transactions. In this article we compare three gateways on concrete numbers (volumes of 10k / 100k / 500k PLN per month), methods (BLIK, Klarna, SEPA, Apple Pay), WooCommerce setup, plus PSD2 and 3DS2 compliance. At the end we recommend concrete combinations per business scenario from the Hanse Studio portfolio.
The three gateways in brief
Przelewy24 (P24) is a Polish online payment operator running since 2003. It aggregates over 350 payment methods in a single integration plugin: BLIK, online transfer from every Polish bank, credit card, PayU and Klarna installments, Apple Pay, Google Pay. Main strength: coverage of 99% of Polish consumers, native BLIK 1.0 and 1.1, integration with Polish banks stable for 20 years. Main weakness: no native EUR or multi-currency support, fees for volumes up to 50k PLN/mo higher than the competition.
Stripe is a global operator from Silicon Valley, active in PL since 2019. It supports Visa/Mastercard/Amex cards, Apple Pay, Google Pay, Klarna (Pay in 3, Pay Later 30 days, Financing), SEPA Direct Debit, plus 50+ regional methods (Sofort, iDEAL, Bancontact). BLIK is in beta from 2024 through a Polish Payment Service partner integration. Main strength: global coverage, the best SDK and developer experience, real-time webhooks, native 3DS2. Main weakness: no native BLIK (must go through a partner), foreign-card conversion requires 1.5% FX.
PayU is a Polish-Dutch operator, probably the oldest in PL (since 2001 as Naspers Pay). Active in PL, CZ, HU, RO. Supports BLIK, cards, PayU installments, Apple Pay, Google Pay. Main strength: PLN plus EUR plus CZK natively, strong CEE support, integrated PayU installments. Main weakness: API documentation weaker than Stripe, developer support less responsive, no native Klarna.
Fees: the real price per transaction per gateway
Advertised rates “from 1.5%” are misleading. The real rate depends on monthly volume, payment-method mix, whether the card is PL or foreign, whether the customer uses BLIK or a credit card. Below are three scenarios: a B2C shop with a BLIK-dominated mix, a mixed B2B/B2C shop, an e-commerce store with international traffic.
Scenario one: a B2C shop in PL, 10,000 PLN revenue/mo, 80% BLIK, 15% card, 5% standard transfer. Przelewy24: BLIK 1.9% plus transfer 0% plus card 1.9% = average 1.6%, or 160 PLN/mo in fees. Stripe (assuming BLIK through a partner): 2.4% on BLIK plus 1.5% on PL cards = average 2.1%, or 210 PLN/mo. PayU: BLIK 1.95% plus card 1.95% plus transfer 1.95% = average 1.95%, or 195 PLN/mo. Przelewy24 wins by 50 PLN/mo.
Scenario two: a mixed B2B/B2C shop in PL, 100,000 PLN revenue/mo, 50% BLIK, 25% card, 15% Klarna, 10% SEPA. Przelewy24: average 1.7%, or 1,700 PLN/mo. Stripe: BLIK 2.4% (via partner), PL card 1.5%, Klarna 2.99% plus 0.30 PLN per transaction, SEPA 0.8% plus 0.50 PLN, average 1.8%, or 1,800 PLN/mo. PayU: 1.85%, or 1,850 PLN/mo. Przelewy24 wins, but Stripe is only marginally more expensive and provides native Klarna (without which conversion in the 18-35 age group in PL drops by around 12% in 2025).
Scenario three: an international shop with 30% PL, 40% DACH, 30% other EU traffic, 500,000 PLN revenue/mo. Przelewy24 handles FX poorly and has no native SEPA. Stripe: average 1.9% (at higher volumes Stripe negotiates custom pricing, realistically 1.5-1.7% at 500k+), or 7,500-9,500 PLN/mo plus no FX overhead in PLN-EUR (Stripe charges 1.5% per FX). PayU: 1.7% average plus EUR multi-currency native, 8,500 PLN/mo. Stripe wins on most cross-border volumes.
Constant: every gateway adds a refund fee. Przelewy24: 5 PLN per refund. Stripe: no fee, but FX is not returned on international transactions. PayU: 5 PLN refund.
Payment methods available per gateway
Each gateway has its own table of native methods, but the differences are meaningful and affect conversion.
BLIK: native in Przelewy24 and PayU, in Stripe only through the Polish Payment Service partner from 2024 (still in beta for some account types). For PL shops targeting consumers aged 18-35, BLIK accounts for 40-65% of transactions, so the lack of native BLIK in Stripe is a meaningful minus for a B2C PL shop. Stripe roadmap: native BLIK in 2026 H2 announced in Q1 2025.
Apple Pay and Google Pay: native in Stripe (1-click checkout, the best SDK), native in Przelewy24 and PayU since 2023, but the UX is slightly worse (more clicks, more redirects). Stripe offers the best “Express Checkout” one-click for returning customers recognized in the browser.
Klarna: Pay in 3 (3 installments at no cost), Pay Later 30 days (invoice), Financing (interest-bearing installments up to 24 months). Native in Stripe and Klarna direct. Przelewy24 offers Klarna as one of 350+ methods but the UX is worse (a separate redirect instead of embedded). PayU lacks native Klarna in 2026.
SEPA Direct Debit: native in Stripe and Mollie. Missing in Przelewy24 and PayU. Critical for B2B shops selling into DACH (28% of the DE market is Lastschrift).
Foreign credit card (Visa/Mastercard non-PL): all gateways, but Stripe has the highest success rate (94-97% in our 2025 benchmarks) versus 88-92% for Przelewy24 and PayU. The difference comes from a better 3DS2 flow in Stripe and smart retry logic for declined transactions.
Setup and integration in WooCommerce: step by step
Each of the three operators has an official plugin in the WordPress repository. Setup looks similar: install plugin, enter API credentials from the operator panel, enable in WooCommerce Settings → Payments, test in sandbox mode, switch to live mode. The devil is in the details.
Przelewy24 plugin “Przelewy24 – Bramka płatności P24”: install from the WP repo (free). Credentials from the P24 panel (Merchant ID, CRC key, API key for webhooks). The most important configuration: set the webhook URL to https://yourdomain.pl/?wc-api=p24_transaction_notify (P24 sends a notification after the transaction is booked; without the webhook the order status will not change automatically). Sandbox tests: P24 provides test cards plus a BLIK emulator plus a bank emulator. Full setup with testing: 60-90 minutes.
Stripe plugin “WooCommerce Stripe Payment Gateway”: install from the WP repo (free, official from WooCommerce). Credentials: Publishable Key plus Secret Key from the Stripe dashboard. Webhook: in the Stripe panel add the endpoint https://yourdomain.pl/wp-json/wc/v3/webhooks for events payment_intent.succeeded, charge.failed, charge.refunded. Apple Pay setup requires an extra domain verification (upload a file under .well-known/apple-developer-merchantid-domain-association from the Stripe dashboard). Full setup with testing: 90-120 minutes, due to extra verification for Apple Pay and 3DS2 testing.
PayU plugin “PayU WooCommerce REST API”: from the WP repo, but the official PayU version is less actively maintained. An alternative is the Sklepak plugin (49 PLN/year) which has better support and regular updates. Credentials: POS ID, Second Key, Client ID, Client Secret from the PayU panel. Webhook URL registered automatically. Full setup with testing: 60-90 minutes.
Common gotcha for all three: WooCommerce checkout cache. After changes in Payment Settings, purge the LiteSpeed or WP Rocket cache, because the payment-method choice may not refresh. Hanse Studio does this after every configuration change as a standard.
The second common gotcha: the webhook fires before WooCommerce manages to save the order to the database. A race condition appears on fast BLIK transactions (the customer authorizes in 4-6 seconds, the webhook arrives before WooCommerce finishes the session-to-order conversion). Effect: the order status stays “pending” despite a posted payment. Solution: retry-on-fail in the webhook handler (if the order is not found, sleep 2s, retry up to 3 times), plus an admin alert email when retry fails after 3 attempts.
Third gotcha specific to Stripe: conflicts of the “WooCommerce Stripe Payment Gateway” plugin with other plugins loading the checkout (for example WooCommerce Subscriptions, WPC Order Manager, custom checkout fields from Cartflows). Symptom: the Apple Pay button does not appear, or the Stripe Element container does not render. Debug: console.log in Stripe.js, check CSS conflicts plus script enqueue order. Hanse Studio benchmark: 4 out of 12 checkout configuration audits in 2025 surfaced this kind of conflict.
Security and PSD2 / 3DS2 compliance
Since January 2022 the EU requires 3D Secure 2.0 for all online card transactions above 30 EUR (SCA Strong Customer Authentication). Without 3DS2 the transaction is rejected by the issuing bank. Each of the three operators supports 3DS2, but quality varies.
Stripe has “Smart 3DS”: a dynamic decision per transaction on whether to trigger the 3DS2 challenge based on a risk score. Low risk (known card, known shop, small amount) skips the challenge (frictionless flow); high risk triggers SMS or app push. Conversion rate 6-12% higher than static 3DS2 on all transactions.
Przelewy24 and PayU run standard 3DS2; all transactions above 30 EUR are challenged. For shops with small baskets (50-200 PLN) where the challenge is friction, Stripe Smart 3DS delivers a real conversion lift.
PCI-DSS compliance: all gateways are PCI-DSS Level 1 (the highest), and a shop using these gateways does not need its own PCI certification (the compliance scope shifts to the gateway). That matters for smaller shops, where own PCI-DSS audits cost 5,000-30,000 USD/year.
Chargeback handling: every gateway adds a chargeback fee (the customer disputes the transaction through the bank). Stripe: 15 USD. Przelewy24: 25 PLN. PayU: 30 PLN. Stripe has the best dashboard for disputed transactions (Stripe Radar shows cause, evidence requirements, deadlines). Przelewy24 and PayU send dispute notifications by email, with the response through the panel.
A concrete 2024 incident at a Hanse Studio client: a chargeback from a DE customer claiming “product did not arrive”. The shop used Stripe, so the dispute appeared in the dashboard with a 7-day response deadline. Required evidence: DHL tracking number, proof of delivery, email correspondence with the customer, invoice. Everything compiled in one dispute card, PDF plus screenshots upload, Stripe Radar decision in 5 days: chargeback rejected, funds restored to the shop. Without Stripe Radar the same data would have to be mailed manually to Przelewy24/PayU support with a 2-4 week wait.
Multi-currency: EUR plus PLN plus CZK for DACH plus CEE
A shop selling to DACH needs PLN for PL plus EUR for DE/AT plus CHF for CH (optional). A CEE-focused shop also needs CZK, HUF, RON. Multi-currency requires support at the payment gateway level (FX calculation, settlement in the correct currency).
Stripe natively supports 135+ currencies. Settlement in PLN, EUR, or USD. FX conversion from foreign-currency cards: 1.5% per FX. Plus moving funds between currencies in Stripe Balance also 1.5%. For a shop with 70% PLN and 30% EUR, the practical approach: settle PLN for everything, the EUR customer sees the natural FX that Stripe performs automatically.
Przelewy24 supports PLN plus EUR since 2023 (previously PLN only). Settlement in the matching currency. FX conversion fee 1.2% for EUR-PLN, lower than Stripe. No CHF, HUF, RON.
PayU supports PLN, EUR, CZK, HUF, RON natively. FX 1.5%. Settlement in the matching currency with an option to convert to PLN on withdrawal from the operator account. For a CEE shop with PL HQ but exposure in CZ/HU/RO PayU wins on setup.
Hanse Studio recommendation per scenario
Concrete recommendations from the Hanse Studio portfolio based on 20+ WooCommerce shop deployments in PL and DACH since 2018.
B2C only PL shop, up to 100k PLN revenue/mo: Przelewy24 as the only gateway. Native BLIK, lowest fees at small volume, the best coverage of Polish consumers. Setup 60 minutes, maintenance retainer minimal.
B2B PL plus EU mixed shop, 100-500k revenue/mo: Stripe as primary. Better API and webhooks make ERP integrations easier, native Klarna lifts conversion, SEPA for B2B DACH. Plus Przelewy24 as fallback for BLIK (until Stripe BLIK leaves beta, ETA 2026 H2).
E-commerce shop with 500k plus revenue/mo, international: Stripe as the only gateway. Custom pricing negotiable (typically 1.5-1.7% at these volumes), all methods in one integration, the best analytics and dispute handling, custom Smart 3DS to maximize conversion.
CEE-focused shop (PL plus CZ plus HU plus RO): PayU plus Stripe dual setup. PayU for CEE local methods (PL BLIK, CZ Apple Pay, HU installments), Stripe for international cards plus Klarna. The customer in checkout sees the recommended method based on IP/country.
Implementation details of multi-gateway plus DACH-specific setup are described in our article on Germanized for WooCommerce. For shops considering a Shopify migration, see also the PrestaShop and Shopify to WooCommerce migration checklist.
Bonus for B2B shops from our portfolio: adding a “Proforma invoice 14 days” method next to card/BLIK gateways lets you serve corporate clients without forcing them into the Stripe customer cycle. The client clicks “Proforma invoice”, receives a PDF, pays by company bank transfer; the accounting manager activates the order manually after the booking. Built into Germanized Pro plus B2BKing. It delivers a +30-45% conversion lift in the B2B segment with 7k+ PLN/basket compared to forcing immediate payment.
FAQ
Can I run two payment gateways at the same time in one shop?
Yes, WooCommerce natively allows multi-gateway in checkout. The customer sees a list of available methods and picks the preferred one. Hanse Studio often configures Przelewy24 plus Stripe (BLIK via P24, card and Klarna via Stripe) as a standard multi-gateway pattern for shops in the 50-300k PLN/mo revenue range.
Stripe versus Przelewy24 for a small company: which is simpler to set up?
Przelewy24 for fully PL coverage (BLIK is critical, fewer registration steps). Stripe when planning a global target or Apple Pay on the main conversion path. Przelewy24 onboarding 1-2 days with document verification, Stripe onboarding 30-60 minutes online plus 2-3 days of verification.
How do I monitor failed payments in WooCommerce?
WooCommerce Order Status “failed” filter in admin (every transaction where 3DS2 was declined or the card had insufficient funds). Plus a custom email alert through the child theme for the “failed” status to the admin (Hanse Studio adds this as a standard). The Stripe dashboard has a dedicated “Failed payments” widget with a reason code per transaction.
What about chargeback fees and how to avoid them?
A chargeback rate below 1% is a healthy benchmark; above 2% the gateway may suspend the account. The most common causes: undelivered orders, poor product quality, fraud. Prevention: a clear return policy on the site, on-time delivery, responsive customer service (reply within 24h to inquiries), 3DS2 on all transactions (shifts liability to the customer’s bank in case of fraud).
Conclusions and next step
The choice of payment gateway in WooCommerce depends on the scenario: Przelewy24 for B2C PL up to 100k/mo, Stripe for B2B mixed or international above 100k/mo, PayU plus Stripe for CEE focus. A multi-gateway setup (Przelewy24 plus Stripe) is a common pattern for shops in the 50-300k PLN/mo range and yields a 6-12% conversion lift versus a single gateway.
Hanse Studio configures payment gateways as part of the “WooCommerce setup” package (from 8,000 PLN setup): gateway selection per scenario, multi-gateway flow with UX testing, webhook integration, 3DS2 testing, sandbox-to-live migration, dashboard alerts for failed payments. See our e-commerce services or contact us for a quote. The full Hanse Studio WooCommerce stack context is in our article on WooCommerce for SMBs in 2026.
