Stripe Subscriptions : 2 months free with yearly subscription? - stripe-payments

This may be a bigger question than how do I give 2 months free but if it is that simple... awesome
I want to have 3 levels of pricing so that the consumable credits get cheaper the more you commit to buying per month. You basically get more savings when you purchase a yearly subscription of buy 10 get 2 free
Here's the math:
Base subscription - $99
App Addon (optional) - $100
Consumable Credits (Volume Pricing?) - starts at $20 each for 15, $18.33 each for 30 - $16 each for 50.
this works great for the monthly subscription plan and I think I can set up a subscription with multiple products / prices
Then the complicated math:
$20 each per year for 180 and $16 each per year for 600 THEN apply a buy 10 months get 2 months free logic to this as well so they get a 16.66666667% discount? and mind you they would also get the base fee and addon fee reduction as well.
How would you set this up in stripe?
I think I could have 3 products in stripe and each would have a monthly price and a yearly price, then just have a coupon for 16.666667% off?
is there a better way?

Related

Stripe retrieve all the paid amount on a subscription

I have a subscription with proration. So for the first months, the client is charged 10 euros and for the last month the client is charged 9.99. Sometimes, some coupons are applied and the client is charged 5 euros. How can I get the total of all the amounts paid by this customer for this subscription? I need to get the sum of 10 x (number of months) + 9.99 + 5 x (number of months where coupons was applied).. In other words, I need to get all the amount of all the money he previously paid until now.
You can retrieve all the invoices for a given Customer https://stripe.com/docs/api/invoices/list. If you want the invoices for a particular Subscription, pass in the subscription parameter.
You can then iterate through all the invoices and sum the amounts paid. Note that you can only retrieve up to 100 invoices.

Stripe - A Single Monthly & Metered Product

Building a SaaS service with a $30 monthly fee. There are additional 1-time-use services they can use during the month. To make the payment quick and nearly thoughtless, I want to also run a metered bill.
How would I setup a product in the dashboard for this?
How would my invoice.succeeded/invoice.failed webhooks to discern if they've only paid the metered bill, only next month's bill, or both paid.
Example: Pays $30 for 1 month. Uses additional services (total $5)
Next Month Payment Cases:
If the user pays next month: $30 / month + $5 previous month (single payment totaling $35).
If the user doesn't pay next month: $5 for usage of previous month and subscription status marked as 'canceled'.
I spoke to the Support Chat (they're smart!). They've recommended doing a metered bill with a flat fee of $30. This is great except the monthly fee is paid at the end of the month. When they enroll, no deposit is made until an entire month of service.
The approach here is to have 2 Products/Prices (with the same billing period i.e. monthly) and to create the Subscription with both of these Prices. The first is the fixed price recurring monthly amount of $30. This will be billed up front on every billing cycle.
The second Product/Price should be a metered Price based on volume [1]. You then would report usage to the API during the billing period [2] (specifying the metered subscription item). That will be the one-time occasional use per month. In this model the upcoming Invoice will be for $35, 30 from the standard monthly subscription, and $5 that was reported as used during the previous month.
If a customer doesn't pay the Invoice, it follows the normal Invoice lifecycle [3]. There is no separate billing/payment for Subscription items.
[1] https://stripe.com/docs/billing/subscriptions/model#common-models
[2] https://stripe.com/docs/api/usage_records/create
[3] https://stripe.com/docs/billing/subscriptions/overview#invoice-lifecycle

Creating a stripe subscription with a loyalty/tiered discount

I'm trying to create a subscription in stripe which depending on how long people have been subscribed the price per month goes down e.g.:
1st month 1000$
2nd,3rd,4th month 800$
5-9 months 750$
9-12 600$
< 12 500$
I looked into tiered discounts but couldn't find a relation to the single subscription price since tiered discount seems to only look at currently subscribed units, and not total volume of units since subscription started. Any advice?
You can do this by listening for upcoming invoices and then changing the Plan on the Subscription based on how long the Subscription has been active.
Another option is to use Subscription Schedules.

stripe payment - how to suspend a subscription (not cancel)

We want to use the stripe payment system.
Our model is based on a weekly fee but billed every 13 weeks. So, the user will initially be billed for 13 weeks at the initial subscription quantity.
Our users will be changing the quantity of the subscription several times over the 13 week billing period and some weeks have subscription level of zero.
Can we set a subscription quantity to zero (0), to suspend the subscription.
For Example
$10 per week per subscription unit
First bill is for 13 weeks, for a total of $130.
At the end of the third (3) week, the customer increase subscription quality to 3, for a weekly charge of $30.
At the end of the sixth (6) week, the customer decrease subscription quality to 0, for a weekly charge of $0.
At the end of the nineth (9) week, the customer increase subscription quality to 4, for a weekly charge of $40.
So, the second charge (after 13 weeks) is:
Bill 13 weeks in advance at the current subscription quantity 4: $40 * 13 weeks = $520
Prorate charges
3 weeks * ($30 - $10 (prepaid)) = $60
3 weeks * ($0 - $10 (prepaid)) = -$30 (credit)
4 weeks * ($40 - $10 (prepaid)) = $120
Total Charge: $670 = 520 + 60 - 30 + 120
I'm not sure if the math will work out exactly like you laid it out here, but you can definitely handle stuff like this with Stripe. There's a lot of material on the support site and API docs about proration.
Some basics about proration
Integration guide section on quantity
The update subscription API which has a bit at the bottom about how proration works
So in short, yes, you should be able to do what you're suggesting.

Stripe: add free days to a subscription

Is it possible to add free days to an active subscription on Stripe?
I'd like to do it in order to create a referral program: when a user refers someone, he gets 10 free days.
I think a good way to do it would be to update the current_period_end var, but I can't find how to do it in the doc.
For example:
Bob is subscribed and will be charged on the 15th of this month
He refers Alice
He gets 10 free days on his account, and his next billing date is now on the 25th
I believe the closest you could do would be apply some sort of credit to her account, so instead of 10 free days, it's earn (33% of monthly fee) per referral.

Resources