Comment by jwr

3 days ago

Quick feedback from a Stripe and Braintree customer, who wrote their own subscription system so as not to use Stripe Billing. The things that caused me problems in the past:

* inflexible subscription system

* unreliable web component for gathering credit card information

* unreliable 3DSecure implementation

* incompetent support (these four are the main reasons why I switched from Braintree to Stripe)

* complex and untestable flows for non-mainstream payment types (e.g. SEPA direct debit, IDEAL, etc — Stripe makes you think they will just work, while you need to implement complex logic in your system to make them work)

* PCI compliance (Braintree hires SecureMetrics, they audit everyone even if you are below PCI thresholds, and the audits are idiotic; they complain about ssh version numbers on Ubuntu LTS systems which have all current security patches, etc)

* US-centric thinking about invoicing, which makes invoicing unusable (I issue invoices only after a successful payment, because I owe tax on all invoices including unpaid)

* lack of B2B subscription billing using proforma invoices

Things that would worry me looking towards the future if I were to switch a payment processor now:

* pricing (this matters in spite of what HN often says)

* lock-in (Stripe Billing was free, then 0.5% of revenue, then 1% of revenue, what's next?)

* reliability of 3DSecure, as problems here are extremely difficult to debug and easy to blame on "customer's bank"

You might note that this list contains mostly non-technical items.

But overall I'm very happy to see competition in this field. Payment processing is in a sad state and there are not nearly enough companies doing this.

> US-centric thinking about invoicing, which makes invoicing unusable (I issue invoices only after a successful payment, because I owe tax on all invoices including unpaid)

This sounds strange. I don't think there's anything US-centric about considering an invoice to be a payment request — which makes issuing them after payment nonsensical.

  • > invoice to be a payment request — which makes issuing them after payment nonsensical

    Most EU countries use an accrual-based VAT system, where taxes are owed on any invoice issued, paid or unpaid.

    This makes issuing them before payment nonsensical, because you will end up paying taxes on invoices that will never be paid, thus ruining your business.

    A proforma invoice exists specifically for the purposes of quoting and requesting payment.

  • That doesn't match what I see. Shops don't issue an invoice until the product ships, well after payment.

Could you elaborate on inflexible subscription system and also what you would like to see from a 3DSecure implementation?

Full disclosure: I'm a dev at a fintech startup and we're currently working on these two things so I'm curious how our direction lines up with your thoughts

  • > inflexible subscription system

    For example, Braintree can't switch from monthly to annual billing (or the other way around). You have to delete the subscription and recreate it with a different billing period.

    I want my customers to be able to switch plans, billing periods, currency, and buy additional items (user slots), all with proration.

    > what you would like to see from a 3DSecure implementation

    I would like not to see anything, really. I want to forget 3DSecure even exists. Stripe largely gets this right. Braintree required me to do many rather bizarre things, pass additional data, and then rewrite the entire flow once every couple of years or so. With the last rewrite, I was told that in my case (SaaS subscriptions) I would need to drag the customer through 3DSecure TWICE and that there is no other way. So I switched to Stripe, because I value my customers' time.

    Also, 3DSecure with braintree would fail every once in a while and I would get customers from various countries telling me they are unable to subscribe. Braintree support, after a week or two, would inquire and either tell me it's the customer's bank (not helpful), or tell me that I have to rewrite my integration to a New Way of Doing Things, which was usually so far off the mark for my use case it wasn't even funny. I just checked my E-mail archives quickly for "Braintree support", over the years I'm up to around ~400 E-mails exchanged.

> I issue invoices only after a successful payment, because I owe tax on all invoices including unpaid

(IANA I am not an accountant) but how is it legal? as a customer you want to pay against an invoice, and AFAIK it is required by law in most places.

  • You pay against a proforma invoice, or if your credit card gets charged automatically, there is no proforma and you just get an invoice that confirms the transaction.

    But in general, this is why proforma invoices exist.