Stripe
Payments, subscriptions and invoicing, all driven through one API
Still the payment stack I would pick for anything I build myself, with a fee you stop noticing and a dashboard you never leave.
Pros
- Checkout and the customer portal are hosted, so I write almost no payment UI
- Webhooks make subscription state a solved problem
- Test mode mirrors live mode exactly
- Documentation is the best in the industry
Cons
- Fees are higher than a negotiated merchant account at volume
- Risk reviews can freeze a new account without much warning
- The dashboard has grown into a maze of products
Best forAnyone selling software or subscriptions online who would rather write code than fill in a payment provider's forms.
Stripe takes cards and bank payments and gives you an API, a hosted checkout, a customer portal and a dashboard. Most people know that part. The part that matters for a builder is that everything around a payment, from the subscription lifecycle to invoices to failed-payment retries, is something Stripe already does, so you do not.
How I use it
Every product I sell myself runs its checkout and subscriptions through Stripe. The pattern is the same each time: a Checkout session created from the server, the customer pays on Stripe's page, and a webhook tells my database what happened. Subscription created, payment failed, plan changed, cancelled. My code reads those events and updates one table. The hosted customer portal handles card updates and cancellations, which means I never had to build a billing page, and I never want to.
For one-off invoices I sometimes use Stripe Invoicing, though for recurring client billing I prefer Invoice Ninja, where the invoice itself is the product and the payment is a detail.
What surprised me is how little I touch it. After the first integration, a new product is an afternoon: copy the webhook handler, change the price IDs, test in test mode, flip the switch. Test mode behaving exactly like live mode is rarer than it should be.
What annoys me: the fees are not small at volume, and unlike a merchant account there is no one to call about them. New accounts occasionally get a risk review that pauses payouts until you send documents, and the first time it happens it is a bad week. The dashboard now has so many products that finding the one setting you need takes a search.
Who it is for
Developers and small teams building something that charges money. If you sell physical goods at volume, a negotiated merchant account will cost less. If you want to avoid handling VAT yourself, look at a merchant of record like Paddle. For everyone else building software, start here and do not overthink it.



