Guide 12. By Nicolas Dao

Stripe or PayPal

Should we take payments with Stripe or PayPal, and when is PayPal worth the pain?

Stripe by default, for its API, its documentation, its features and, in Australia, its price. PayPal only for what Stripe can't give you, its reach and its payouts to people who already have an account, and never as the only way money moves.

The short version

Stripe PayPal
Australian card payment 1.65% + A$0.30 domestic, 3.5% + A$0.30 international 2.90% + A$0.30 domestic, plus 1% from overseas
Currency conversion +2% 3–4% above the base rate
Building on it One coherent API, test mode, a CLI, webhooks documented as they really behave Improved since 2022 (REST v2, new SDKs, an MCP server), still spread across products and generations
Subscriptions and invoicing Built in, with proration, retries and a customer portal Possible, with more work
Customers who only pay with PayPal Not in Australia: Stripe processes PayPal only in Europe Yes: about 439 million accounts
Paying many people small amounts Connect: A$0.25 per payout plus identity checks on every recipient Payouts: to an email in 96 countries, 2% capped at A$1.25 domestic, no onboarding
Risk Restricted businesses need approval Limits and reserves on criteria it doesn't disclose

Why Stripe is the default

I've integrated both. Stripe is the payments API everyone else copies. The documentation says what really happens, duplicates, ordering and retries included, instead of pretending it's simple. Test mode, the CLI and restricted keys make it safe to build on, and Billing covers subscriptions and invoices you'd otherwise write yourself. On AWS it sends events straight to EventBridge, so there's no webhook endpoint to run. And in Australia it's cheaper on every line that matters.

PayPal was the opposite experience: documentation that sent me in circles between products and API generations, and every step slower than it should have been. It has improved. The legacy APIs are deprecated in favour of REST v2, the old SDKs have been replaced, and there's an MCP server for agents. The gap has narrowed, but it hasn't closed.

When PayPal earns its place

PayPal's moat isn't technology, it's penetration. Two cases justify it.

Customers who expect the button. Some buyers have money and a card sitting in PayPal and won't type a card number anywhere else. If your market looks like that, losing them costs more than the integration. Run PayPal beside Stripe, not instead of it.

Paying a crowd. I built a platform that paid workers in many countries about 20 cents per task. Stripe couldn't do it at that size: Connect charges A$0.25 per payout and runs identity checks on every recipient, and its Global Payouts product isn't generally available to Australian businesses. PayPal Payouts sends money to an email address, to people who already have an account, for a fee of a fraction of a cent on a 20-cent payment. For that job, it was the only practical choice, and still is.

Choose your poison

Taking PayPal means accepting two costs. The first is the build: plan more time than you think, use only the REST v2 APIs, and ignore any tutorial that mentions IPN. The second is the risk: PayPal can limit an account or hold part of a balance in reserve, and appeals are slow. Withdraw regularly, keep a second processor ready, and never let PayPal be the only way money moves through the business.

Want this stack in your AWS account?

Cloudless Labs is a Sydney consultancy. We migrate on-premises systems to AWS, build serverless apps on this stack, and coach teams to ship with Claude Code and Codex.

Contact Us

For general inquiries, please contact us at:

For e-learning capabilities, please contact: