When using Softr’s Stripe checkout, a customer successfully makes a purchase. Softr stores the customer’s email (but does not store the customer.id
generated by Stripe). Later, when the customer uses the Stripe Billing Portal, Softr sends Stripe the customer’s email address to identify the account.
This is a BIG problem. It is possible (even encouraged) in Stripe to create multiple customers with the same email address. That is, the email address is not unique. Sending the customer’s email address when opening the Stripe Billing Portal is non-deterministic, you may or may not get the same account created above.
In our case, sometimes the customer clicks on the “Stripe Billing Portal” link in Softr and is shown a different Stripe account (in our case their Substack account in Stripe). There is no way for them to manage their Stripe billing created with Softr!
Per Stripe’s documentation: Activate the no-code customer portal | Stripe-Dokumentation
If there are multiple customers with the same email address, Stripe selects the most recently created customer with that email and an active subscription.
This is a problem if Stripe is used for multiple systems in addition to Softr, or if two or more Softr applications use the same Stripe account. In our case, we are using our Stripe account for both Softr and Substack.
This bug was confirmed by Sofr’s (excellent) chat support:
Regarding your questions, a) Softr stores the customer’s emails when they make purchases through Stripe. b) no, it sends the stored emails to the Stripe Customer billing portal.
Because of this, our customers can not edit their subscriptions purchased through Softr.
Fix: I see two possibilities:
- Softr must store the
customer.id
generated when making a purchase then send this ID to the billing portal later via the Stripe API. - Softr seems to store the Softr application ID in the Stripe customer metadata. This could be used to identify the correct Stripe customer.
This is a CRITICAL bug for us. Our customers can not manage or cancel their subscriptions correctly!!! We are having to manually cancel for them through our customer support.
I am a long-time Stripe developer. I am happy to chat with one of your developers if that would be helpful!