#phillip_api
1 messages · Page 1 of 1 (latest)
đź‘‹ Welcome to your new thread!
⏲️ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
⏱️ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
đź”— This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1351137448821919756
📝 Have more to share? Add more details, code, screenshots, videos, etc. below.
Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.
- phillip_best-practices, 6 days ago, 4 messages
- phillip_best-practices, 6 days ago, 16 messages
I also expected Stripe to populate the customer email, but that isn't working either. Not sure what I'm doing wrong.
If you need more info, please let me know!
đź‘‹
I'm not sure what are you expecting actually. Getting price 0 is expeted as at the Subscription creation there is no price to charge
I would expect Stripe to charge the customer per reported seat. I don't understand why there is no price to charge when the subscription is being created?
The pricing table creates the Subscription
After creating the Subscription, you can report the usage
and at the end of the billing period, the customer will be charged
I understand. Could I solve it with this approach?
- As mentioned earlier I start a free subscription (which is my "trial"). Then, after 14 days I cancel it. It is not an actual trial for three reasons
- I don't want the user to decide for a package before starting a trial. The user should decide for a package after the trial.
- I want to provide the user with the highest package during his trial
- But I don't want to show the user the highest price in checkout for the highest package
The user does not have to add a payment method for this "trial" subscription.
(This approach was suggested to me from one of your colleagues)
- After 14 days I cancel the "trial" subscription and prompt the user to upgrade. But I guess what I should do instead is to report seats to the trial subscription and then instead of canceling update the subscription?
Does this sound about right or could you please guide me in the right direction?
But I guess what I should do instead is to report seats to the trial subscription and then instead of canceling update the subscription?
No you can't do like this
You can create a Subscription without collecting payment methods
I'm already creating the trial without a payment method via Stripe API.
const subscription = await stripeClient.subscriptions.create({
customer: customerId,
items: [{ price: priceId }],
trial_period_days: 14,
trial_settings: {
end_behavior: {
missing_payment_method: 'cancel'
}
}
});
So this will cancel after 14 days.
Then, I show the Stripe pricing table.
But then, how can I charge the user initially when upgrading to an "actual" package?
After 14 days and the trial has been expired, I would like to report the seats to Stripe and then whent he user clicks on the pricing table subscription, Stripe should charge the total amount per reported seat.
So this is not possible with the Pricing Table? What would be an alternative solution?
Then, I show the Stripe pricing table.
Stripe Pricing table will create a new Subscription, there is no link between it and the previous created subsriptions
Okay, I will create my own pricing table then which redirects the user to a Stripe Checkout Session – would that work?
Could I then somehow connect the previous subscription with it's reported seats and charge the initial amount?
Okay, I will create my own pricing table then which redirects the user to a Stripe Checkout Session – would that work?
You can do that yeah
But redirecting to Checkout Session will create another Subscription
Why you want to pass the Customer to a Checkout ?
What initial amount you want to charge, sorry I though you want to provide the Customer a free trial Subscription for 14 days ?
I have a separate product for the trial which is $0, yes.
I know I theoretically could provide a trial for the business or basic package, but I don't want that the user needs to decide for a package before starting his trial –That's why I currently give him the "Handshake Free Trial" product for free for 14 days which has all features. Then, after the trial expired, the user needs to decide for a package. (Upgrade Modal will appear in the app)
If the user has invited 3 people during his trial, this would mean I would need to charge 3 x $29 per month for basic and 3 x $79 per month
If the user has invited 3 people during his trial, this would mean I would need to charge 3 x $29 per month for basic and 3 x $79 per month
Then you shouldn't simply create (or update) a Subscription with 3 x Price ?
Why not? Of course the user would need to confirm and add his payment method in the checkout session...
To confirm, post-trial they subscribe to metered prices where you report usage, right? You describe 'seats' but it doesn't sound like you've modelled this with a normal seat based approach. If you share the price_xxx IDs I can look
Yes correct, but post-trial I need to initially charge the amount based on how many users they have invited.
(Of course after adding payment method and confirming this price in a checkout session if they would like to continue using the app)
- Free trial price id: price_1R1375E9AoDa2fXOXSFr5ZS9
- Per seat price for basic (monthly): price_1R134gE9AoDa2fXO6j4s2EzV
Why metered though? Why not just model seats via quantity like we recommend?
Then they'll be charged immediately on subscription creation for the seats they've added during the trial
The metered element makes no sense really and it's over complicating things for you
Oh okay, I didn't know that.
So this pricing model usage-based + per unit is correct but I can leave the meter empty, correct?
No, not usage based. You just want a flat rate per seat, right?
This is what you want, then when you use that sub to update/create the sub then pass quantity: X to reflect the # of seats they have
And we'll generate an invoice ~immediately for X*$29
Correct. Okay, so flat rate would be what I need.
I chose usage-based because the short description says "price by number of users, per unit or per seat" and that sounded about right 🤔
Of course, when the user will invite more users later on, I would need to update the quantity of that subscription.
Is this even possible with flat rate?
Yeah it works in that context too I guess, but you need to report usage to us throughout period and then we bill at the end of the period
Is this even possible with flat rate?
Sure you just update thequantityon the subscription item(s)
Okay awesome! I will try that and I appreciate the help.
But what really confuses me is the short description... Because when I was unsure what price model to choose, I chose usage based + per unit because the short description said "number of seats"–which is exactly what I need...
Long story short: Thanks for your help. I will try that out and see how it goes!
Did some reading and I now understand the difference between reporting users as quantity and as metered events.
Thread can be closed!