How to Accept Payments for Your App (2026)
The payment provider decision is harder than anyone tells you. Your jurisdiction, business structure, and transaction size all matter. Here is what we learned.
We evaluate every tool based on published features, real-world usage, community feedback, and independent testing where possible. Affiliate commissions never influence our rankings. How we research ยท Editorial policy
This decision is harder than anyone tells you
Every guide says "just use Stripe." Stripe is excellent. But "just use Stripe" assumes you are a registered US or UK mainland company, selling products over $20, and do not mind handling global tax compliance yourself.
If any of those assumptions do not apply to you, the decision gets complicated fast. We learned this the hard way.
What actually happened to us
We applied to Stripe. Got accepted. Started building our integration. Then our account was blocked without warning. We resolved it, kept building. Blocked again. No prior notice either time.
If we had paying customers at that point, they would have woken up to a service they could not pay for and an explanation we could not give because we did not understand it ourselves.
We applied to another provider. Declined outright - our jurisdiction was not one they supported. We tried a third. Their minimum transaction fee would have eaten nearly 10% of our $8.99 monthly subscription.
The lesson: check three things before you commit to any payment provider. Do they accept your jurisdiction? Do they require a registered business entity? And what do their fees actually cost on your specific transaction size - not the example in their marketing?
You cannot migrate active subscriptions between payment providers. Every subscriber would need to re-enter their payment details. Choose carefully.
Processor vs Merchant of Record
This is the fundamental choice. Everything else follows from it.
A payment processor (Stripe, Braintree) handles the transaction. Money moves from your customer to you. But you are the legal seller. You are responsible for VAT in 27 EU countries, sales tax in US states, invoicing, refunds, and compliance. If you are selling globally, this is a serious administrative burden.
A Merchant of Record (Paddle, Polar, previously Lemon Squeezy) is the legal seller on your behalf. They handle all tax compliance, invoicing, VAT, and refunds. You get a payout. The trade-off: they charge more (typically 4-5% plus fees versus Stripe's 2.9% plus fees) and you have less control.
For a solo founder selling globally: a Merchant of Record is almost certainly worth the higher fees. The hours you would spend on tax compliance across dozens of jurisdictions are hours you are not building your product.
For a solo founder selling in one country: Stripe is simpler and cheaper. You handle tax for one jurisdiction, which is manageable.
The fee trap on small subscriptions
Most payment provider marketing shows their fees on a $200 transaction. At that price, "2.9% + 30c" sounds like roughly 3%. On a $200 sale, you keep $194.40. Reasonable.
On an $8.99 monthly subscription, that same "2.9% + 30c" takes 56 cents. You keep $8.43. That is 6.2% gone, not 3%.
A provider with "5% + 50c" on that same $8.99 subscription takes 95 cents. You keep $8.04. That is 10.6% gone.
The fixed fee component ($0.30, $0.50) is what kills small subscriptions. The percentage barely matters compared to the flat rate. A provider that charges 5% with no fixed fee would actually be cheaper for small transactions than one charging 2.9% + $0.30.
Run the maths on your actual price point before committing. Not the example in their marketing.
If you are in a non-standard jurisdiction
Most payment guides assume you are in the US, UK, or EU. If you are anywhere else - a British Crown Dependency, a small country, an offshore jurisdiction - your options narrow significantly.
Some providers will accept your application and then block your account weeks or months later when their compliance team reviews it. Others will decline you outright. A few will work but with limitations.
This is not a hypothetical warning. We were accepted, then blocked. Twice. By a major provider. The second time we had already started integrating their API into our codebase.
If you are in a non-standard jurisdiction: apply early. Apply before you start building the integration. And have a backup provider identified before you need one.
Your actual options
Stripe is the developer standard. Best API, best documentation, largest ecosystem of plugins and integrations. 2.9% + 30c per transaction. Works in 47+ countries. Stripe Atlas helps you form a US company if you need one for payment processing. The risk: account reviews and blocks can happen without warning.
Paddle is a Merchant of Record. They handle global tax compliance completely. Around 5% + 50c per transaction. Higher fees but zero tax administration. Good for SaaS selling globally. Their dashboard and reporting have improved significantly.
Polar is a newer MoR option designed specifically for open-source and developer tools. Lower fees than Paddle for smaller transactions. Worth investigating if you are in the developer tools space.
Braintree (PayPal) is sometimes overlooked. It supports more payment methods than Stripe in some regions and PayPal is still the preferred payment method for many buyers outside the US. The developer experience is not as polished as Stripe.
Gumroad takes 10% flat - no fixed fee. On small transactions (under $5), this can actually be cheaper than Stripe. On anything over $15, it is expensive. Simple to set up but limited customisation.
Lemon Squeezy was a popular MoR for indie developers. Stripe acquired them and the product is being merged into Stripe. The future is unclear - be cautious about building on it now.
Can you self-host payments?
Not really. Payments require PCI compliance, bank integrations, and regulatory approval in every country you operate. This is one category where using a third-party service is the only practical option for a solo founder.
What you can self-host: your billing logic, subscription management, and invoice generation. Tools like Kill Bill (open source billing) or Lake (subscription management) handle the business logic while connecting to Stripe or Paddle for actual payment processing.
The honest answer: use a payment provider for processing and build your subscription logic on top of it. Do not try to become a payment processor.
The webhook idempotency warning
Every payment provider sends webhooks to notify your app when something happens (payment succeeded, subscription cancelled, refund issued). These webhooks are sent at least once - meaning they can be sent multiple times.
Without idempotency (checking whether you have already processed this event), a duplicated webhook can double-charge a customer, send duplicate confirmation emails, or create ghost accounts.
Add a processed_webhooks table to your database. Before processing any webhook, check if you have seen that event ID before. If yes, skip it. This takes 30 minutes to implement on day one and prevents billing nightmares later.
Stripe sends webhooks multiple times. Without idempotency, you will double-charge customers. Add a processed_webhooks table before your first transaction.
What to do right now
If you are selling in one country and your transaction size is over $15: start with Stripe. Best API, best docs, most resources.
If you are selling globally and do not want to think about tax: use a Merchant of Record (Paddle or Polar).
If you are in a non-standard jurisdiction: apply to your preferred provider before building anything. Have a backup identified. Do not assume acceptance.
Whatever you choose: calculate the real fees on your actual transaction size, add webhook idempotency from day one, and accept that this is a decision you will live with for a long time.
Your jurisdiction, your business structure, and your transaction size all matter. Run the maths on your actual price, not the marketing example. Apply early. Have a backup. And make webhook idempotency a day-one task.
Frequently Asked Questions
Technically yes, but every active subscriber would need to re-enter their payment details. You cannot migrate active subscriptions between providers. This is effectively a rebuild of your billing system.
Some providers (Stripe) allow sole traders and individuals in certain countries. Others require a registered business entity. If you are self-employed and testing an idea, check this requirement before building your integration.
A Merchant of Record (like Paddle) is the legal seller in the transaction. They handle all tax compliance, VAT collection, and invoicing globally. You need one if you sell to customers in multiple countries and do not want to handle dozens of tax jurisdictions yourself.
Because of the fixed fee component. "$0.30 per transaction" is 3.3% on a $9 subscription but only 0.15% on a $200 purchase. The fixed fee matters more than the percentage for small recurring charges.