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

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.

Related

Stripe Subscriptions : 2 months free with yearly subscription?

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?

stripe subscription from first date of the month with initial fee

I want to do stripe monthly subscription with these conditions
monthly charge 30 dollars
payment should be done first date of the month
when registration is done in the middle of the month daily rate fee should be paid at the timing registration is done
for example, user registered August 10th
20 dollars should be paid at that timing
30 us dollar subscription is done at September 1st and following first date of the month
how can I configure this?
I want to know the configuration for stripe.checkout.sessions
In general, you would achieve exactly what you seek by setting the billing cycle anchor on the 1st of the next month and allow a prorated invoice to be generated for the partial period until then:
https://stripe.com/docs/billing/subscriptions/billing-cycle#new-subscriptions
However, this option for the Subscription create API is not available via Checkout:
https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-subscription_data
You could achieve a similar result by setting subcription_data[trial_end] to be the 1st of the next month to effectively set the billing anchor then:
https://stripe.com/docs/billing/subscriptions/billing-cycle#using-a-trial-to-change-the-billing-cycle
You'll need to calculate your own prorated amount for the first month, and then add a one-time Price in the line_items alongside the recurring Price to add the prorated amount to the first invoice only:
https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-line_items

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

Stripe - Subscriptions, prorated, and change in quantities during subscription period

There is a yearly subscription plan at $100/year. A customer can adjust the quantity of said subscription. So lets suppose a customer starts off with a quantity of 10. Half way through the period, the customer decides to increase the quantity from 10 to 20.
At the start of the next billing cycle... what will the customer be charged? Will it be $2500?
Beginning of Period 1: $100 * 10 = $1000
Beginning of Period 2: ($100 * 20) + (100 * 10)/2 = $2500
And if they decrease the quantity half way through, would they get a refund at the beginning of the next Period?
When the new plan is less expensive than the current plan, the prorated credit is larger than the new amount due. For example, if the customer switches from the $30/month plan to the $10/month plan exactly halfway through the billing cycle, the customer receives a net credit of $10: a credit of $15 for the unused portion of the old plan less a charge of $5 for the remaining time on the new plan. The next invoice, at the start of the next billing period, reflects the $10 credit and the $10 due for a full, upcoming month on the new plan, resulting in a net amount due of $0.
When credits are created, they’ll continue to apply to subsequent invoices until the credit is covered and payment is due again. For example, a move from a $50/month plan until a $10/month plan—exactly halfway through the billing period—results in a net credit of $20: a credit of $25 for the unused portion of the more expensive plan and a debit of $5 to pay for the remainder of the billing period on the new plan. The next two invoices would net to $0.
The prorated amount is calculated down to the second by Stripe. We calculate the difference between the two plans based on the time the API call was made to change the customer’s subscription, using the current billing period’s start and end times.
https://stripe.com/docs/subscriptions/upgrading-downgrading
So essentially yes - they would receive a discount on their next invoice if they downgraded their plan. If they increased their plan, the prorate amount would be added to their next invoice.

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