How can I set a subscription plan to a certain price? I want to offer trial periods, but I don't want them to be 100% free. I want to charge say, $1 so they feel they are making a financial commitment. Free sets a bad expectation. From what it looks like, I have only the option of free. How can this be changed?
You'd still need to use a free trial period here but you'd just add a "setup fee" when you create the subscription. The easiest would be to create an invoice item just before:
https://stripe.com/docs/api#create_invoiceitem
Then create the subscription immediately after. It would automatically grab the pending invoice item and try to charge it.
Another method would be to use a one-off charge instead of the invoice item here.
Related
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.
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.
I wonder to find a solution for payment using Stripe. My clients create an event and we split the bill all members who joins the event. Let's say a football game $100 / 10 players, we hold a place until cancellation term is expired, or the game is canceled. What I am looking for solution and if it is possible to make, for the same event, instead of 10 players, 15 joined or 5 only, which means the bill from each varies from $6.60 to $20. I want these players to see that range of the pricing from $6.60 to $20 and book their spot and agree that when event occurs, they will be charged anything between. I remember that was the same solution with Uber at the beginning. Can anyone share any ideas if it is still possible to create this way, maybe they are new legislation and we need to show the total amount. Thank you for any suggestions.
You can use Stripe to save payment info and then charge your customers later:
The Setup Intents API lets you save a customer’s card without an initial payment. This is helpful if you want to onboard customers now, set them up for payments, and charge them in the future—when they’re offline.
You may also be interested in placing a hold on a card and capturing funds later, assuming the time limits work for your use case.
I have an invoice with 500USD after that I have the journal entry with 500USD. While I'm doing payment I can add the amount to 800USD so on odoo it will give an option to keep open or Mark As fully paid. So I'm choosing the keep open option So as per this case odoo has to keep the invoice in an open state with 300USD remaining amount but why it should change the state to pay with the same invoice amount?
So anyone can suggest the functional thing with this case?
Yes you're right this is the default functionality of the Odoo and it is extremely cool thing in Odoo because Odoo is managing outstanding payments of our customer very effectively.
Important Point
If there is an invoice of 500USD and I registered 800USD yes it is
right thing to close the invoice 500USD because customer has paid it.
But what about the remaining 300USD. Odoo has cool feature to manage
outstanding payments. Here you can see in attached image.
I've an invoice of 125USD and I registered 200USD (200-125=65USD) then see how Odoo manage it for my important customer.
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.