I’m using Fastspring, and they promised to take care of SCA (Fastspring acts as a reseller like Paddle). So in theory I have to do nothing.
Another update, which could be useful for some bootstrappers in the EU. Since Carlos sometimes recommends Quaderno, I’ve revisited it and re-checked if I can use it (I previously looked in 2016 and it couldn’t do what I needed).
The net takeaway is that Quaderno might be great for many countries, but it is not usable in Poland. There are two showstoppers:
Quaderno doesn’t generate the
JPK_FAinvoice report required by tax authorities (this is a digitally signed XML report, a variant of SAF-T used in other EU countries, and any invoicing software must be able to generate it on request),
I need invoices to be in two languages (actually, the law says that all documents need to be in Polish, so the only way out is to make dual-language invoices), which is not supported.
There are other issues (such as domestic pricing needing to be VAT-inclusive while everything else is VAT-exclusive) which I think could be worked out given some effort, but these two mean that I can’t use Quaderno.
You should let Quaderno know. We’ve found them very responsive when we’ve reported things that were making it hard to deal with the Spanish bureaucracy.
Oh, I did! I wrote this after asking their support and I reported the conclusion.
I do hope that they can eventually become compliant in Poland, because I have a huge problem with invoicing. Stripe’s idea of invoicing is also very far from EU realities (they assume that an invoice is issued when a payment is due, instead of after a payment is made), which leaves me having to integrate a local solution myself.
The SAF-T report (https://en.wikipedia.org/wiki/SAF-T) is something that will probably be required in many countries. I think Poland has moved very quickly on this, requiring the reports even from small businesses, to crack down on VAT abuses (successfully, BTW), but other countries will likely follow.
As for dual-language requirement, I would suspect that issue also exists in France, which I think mandates the use of French everywhere. If your country does, and you want your invoices to be in English, you have no other option than to generate dual-language ones.
I revisited my integration, and it seems I missed the important piece that is SetupIntents. Basically, you create a SetupIntent on the server, pass its secret to your view, and call
confirmCardPayment from there. If a card requires authentication, users will be prompted with a modal asking them to authenticate it right on the spot (i.e. so that you won’t chase them when their subscription is due). This guide covers how to set it all up.
Having said that, I’m looking into migrating to Stripe Checkout and be done with SCA & friends once for all.