Stripe - Max Quantity Subscription - stripe-payments

To clarify, this is a question for Stripe (an online payment processing app) API.
I want to limit the max quantity of a product depending on the subscription. So, lets say I have sub_id_1 and sub_id_2. I want to limit sub_id_1 product quantity to have a maximum purchase of 3 items, while sub_id_2 to have a maximum purchase of 1 item.
I do not have any code to show since it is just a API problem, but from what I get from the docs, it is possible to alter the quantity of the product in a subscription. However, I am not sure if it is possible to limit the quantity instead.
I would appreciate any kind of answers, feedbacks, or suggestions!

There is not a way to do this with Stripe's API, so you'd have to handle enforcing this limitation within your application.

Related

Paying with Stripe

We have a web-app (react based).
There are two sides to the app.
Can be thought of as an app where companies give tasks to individual talents, approve the payments and at the end of the month, the company gets a single monthly invoice and we take care of paying the talent in their preferred currency/payment method.
Apart from this service we provide these companies a lot of additional features (and hence charge a 3-5% markup on this transaction).
I'd want to discuss what will be the most optimum method since the margin is already really thin for us.
Example: Company has 5 talents and each talent is supposed to get $20 for this month corresponding to the task that they completed
Hence the total bill (invoice) that the company will get from us is $100 + markup fees of let's say 3% = $103
Our commission is $3 and remaining $100 will be split amongst the talents, who will get $20 each.
What we thought of presently is to use Stripe Connect for individual payouts and use the split payment functionality.
But the problem is to receive payments Stripe charges us an additional 2.9% + 30 cents, which will make this thing non-profitable for us.
Hence wanted to get some expertise because there are already softwares that have solved this and I was wondering how ?

How to increase price of a subscription in stripe?

I have a Basic and a Premium product and both of them have Monthly and Annual pricing structures following the Good-Better-Best methodology.
Let's say due to increasing costs, I want to raise the price of my Basic Monthly plan by $5 for all subscribers. How can I increase the price of the subscription, and begin charging all current and new subscribers that higher price? From what I understand, Stripe pricing is immutable, but this is not an uncommon thing in the subscription industry.
Example, Netflix increased its pricing for everyone earlier this year. '
Do I need to create a new price under that Basic product and somehow migrate all users to that new price?
Your intuition was right here. You would create a new Price object with a different id price_ABC for the new amount. Then you can start by switching new customers to the new Price and seeing how it affects conversion. The Price is associated with the same Product under the hood but it's a new "version" of the Price. That's done by changing your code and ensuring new Subscriptions are created with the new Price.
In the future (though it could be immediately), when you are ready, you can migrate your customers to the new Price. The cleanest approach is to use a SubscriptionSchedule. The idea is that you can define multiple "phases" that a Subscription can go through. That allows to "chain" or "plan" future changes on your Subscription. Your SubscriptionSchedule would have two separate phases:
The current "legacy" Price until the current period finishes
The new Price with the extra $5 for the next cycle
The advantage of using this approach is that you defer the Price change until the next month so that it reflects exactly what they paid until the next period (end of the month for example). The downside is that it can be a bit harder to manage those objects as they are a bit more complex.
An alternative and sometimes easier approach is to update that Subscription's Price immediately. Doing this would cause prorations as we calculate the difference between what they already paid and what they owe. Usually with migrations like yours you want to disable proration which is done by passing proration_behavior: 'none' during the update.
You'd need to write code to loop over all Subscriptions using the List Subscriptions API. You can pass the price parameter to only look at the Subscriptions on that specific Price.

Take user to checkout before upgrading subscription or increasing units

I have 3 packages. Free, basic, and premium. They are worth $0.00, $100.99, and $200.99 per year respectively. They are sold on the basis of quantity. For example, you can have 5 basic subscriptions. The user can upgrade number of quantity and plan any time.
My question is let's say someone is on basic plan with 5 subscriptions. And midway to their pricing period, the person decides to increase the number of quantity to let's say 10. Then, how can I collect the amount the user has to pay for the extra 5 units for six months?
From the very little knowledge I have, stripe charges them from the next billing period. So how can I collect the 5 * (100.99 / 6) (divide by 6 for six months)?
Also, If the user chooses to upgrade, how can I handle the payment for that? Let's say user goes from basic to advance mid-way the billing period. How can I charge the money instantly for the upgrade?
Right now I'm thinking that I should calculate the amount required to be paid and take the user to checkout and pay once. After payment is successful, update the subscription quantity or schedule as required. Is this approach appropriate?
Thank you very much for helping in advance.
You can tailor upgrade behavior with prorations. I recommend reading those two links and then also taking a peek at this documentation.

How to add VAT in Stripe Checkout?

I'm using Stripe Checkout to create a subscription in Stripe Billing. Checkout also auto creates the Stripe customer object.
How can I add right right VAT rate based on where the customer is based? The customer should be able to see the price both including and excluding VAT/GST both in the checkout session itself and on the invoice.
The "create subscription" API call allows you to set the field "default_tax_rates" which sounds like what I need, but the problem is that with Stripe Checkout the subscription (and the customer object) are created automatically by Stripe Checkout so I cannot explicitly pass parameters to these creation calls.
I know how to calculate the VAT rate and I don't want to integrate with another third party vendor just for tax, so I'm not looking for something like Quaderno or Taxamo.
How do people solve this problem? I'm starting to think that maybe I should have integrated with Chargebee instead of Stripe :-(
I'm having that same issue.
Stripe support informed me that Checkout does not support the legacy tax percentage or the new Tax Rates object.
Checkout charges only the exact amount.
On recommendation from stripe I will calculate the tax and charge that as a separate line item.
That way the correct amount is charged and the VAT is clearly visible to the customer.
I'm also creating subscriptions and there I will show the amount incl. VAT. and post fix the plan name with 'incl. VAT' to make it clear to the customer.
After the checkout flow completes I will try to add the Tax Rate to the invoice and subscription as 'Inclusive' using the API. I'm not sure that will work as I think, but we will see.
Check this out https://stripe.com/docs/payments/checkout/taxes
Seems like you're right about the Stripe checkout. Can't be added there.
Adding VAT as Inclusive won't help you, because Inclusive means it's already calculated into the price. Although this can be used to add the VAT to the price (in most cases it's 20%) and set the VAT as Inclusive. But this hack won't work for everybody, though.
I found this to be helpful and it works with Checkout.
https://dominik.sumer.dev/blog/stripe-checkout-eu-vat
You collect the Country and VAT number before creating the customer and checkout, and you add dynamic tax rates prepared via the API in advance.

Stripe Invoice Line Item Description incorrect

I am currently working on a project that is using stripe for subscription payments.
The PRO plan has been setup on Stripe at €80,00 per month.
When the invoice appears the description on the invoice's line item is :
1x PRO (# €0,80)
I expect that it would read something like this "1x PRO (# €80,00)"
When I checked the object that has been returned from Stripe then it appears incorrectly there too.
When I checked on the stripe dashboard it looks fine..
Any idea why this is happening and what can be done to ensure that the description on the invoice line item appears properly ?
Kind regards,
Fergal.
Stripe somehow supports zero decimal currency. read the link for more reference.
You have to create a subscription by multiplying your amount by 100 as amount need to be passed in the smallest unit of currency.
All API requests expect amounts to be provided in a currency’s
smallest unit. For example, to charge $10 USD, provide an amount value
of 1000 (i.e, 1000 cents).
The issue has simply disappeared.
Perhaps the original invoice was not correctly configured.
Thanks for the feedback.

Resources