Stripe - How to handle a free plan subscription and no credit card required at registration

We started implementing Stripe on Redsmin (one of our projects), and I think we might have missed something. Here's how it works:

  • To use our product, the user must select a plan (free, s, m, xl, xxl ...), then enter his username / password, and then it will be useful for you to go through a 30-day trial version. When a user submits a form, our server calls Stripe create_customer with the specified plan and without a credit card (because we want to offer 30 days for free without the need for a credit card), and we update the user model on our side with the returned customer_id and subscription_id .

  • We set up a webhook to receive events with a strip, so after 30 days our web host should receive a customer.subscription.updated event with object.status == active . I'm right?

  • However, since we did not specify a linked card for the user during registration, should we quickly receive through another event customer.subscription.updated with object.status == unpaid to the right? Then, on our side, we deactivate the user account and force it to go to the plan selection page.

  • From this moment, the user can choose either a free plan or one of our premium plans:

  • #Scenario 1 . If a user chooses a free plan, we simply activate his account on our side and do nothing, because we set up a free plan on the strip to cost $ 0. Have we implemented the right process with our free plan? Are there any better ways?

  • #Scenario 2 . If the user selects a premium plan, we redirect it to a credit card form, which will then be sent to Stripe, and we will update the user account with a temporary card token strip. What do we do next? :

    • Do we have to wait for the band to send us an event? If so, what event? customer.subscription.updated ? charge.succeeded ? What will be the value of object.status then?
    • Should we directly activate the user account on our side and wait for confirmation from the strip? If so, what will be the name and event data that we must wait for?

view? id = AAIAAAD-U-% 0AYBJN9lpixm6nxrnAaHQY5DoZ0FcNQ & trk = nav_responsive_tab_profile

+50
stripe-payments saas credit-card payment-gateway payment-processing
Oct 19 '13 at 14:46
source share
1 answer

In part 2, where you do this:

We set up a webhook to receive events with a strip, so after 30 days our web host should receive a customer.subscription.updated event with the object object.status == active Am I right?

You may also consider introducing webtook customer.subscription.trial_will_end , this website will be sent three days before the trial version is completed, and you will be able to send the customer a notification about updating their payment information.

Thus, if the user decides to go and update his billing information, Stripe will be able to accept the payment as soon as the trial version is completed and they can continue to use your service without interruption.

# Scenario 1 If a user chooses a free plan, we simply activate his account on our side and do nothing, because we set up a free plan on the strip to cost $ 0. Have we implemented the right process with our free plan? are there any better ways?

As far as I know, this is the best way to implement free plans using Stripe, I would just for sure make sure that no invoices were sent to customers if it was not necessary. I doubt that users expect to receive an invoice for each billing period if they use a free plan.

#Scenario 2 If the user selects a premium plan, we redirect it to a credit card form, which will then be sent to Stripe, and we will update the user account of the strip using a temporary map marker. What do we do next?

  • Should we wait for stripe to send us an event, if so, which event? customer.subscription.updated? charge.succeeded? What will be the value of object.status?
  • Should we directly activate the user account on our side and wait for confirmation from the strip? If so, what will be the name and event data that we must wait for?

After a user selected a plan and updated their billing information, I would immediately activate their account if the response to the renewal of the subscription from Stripe was successful.

As long as you set up your subscription settings on the Stripe control panel, you should be able to allow Stripe to process what it will do if the payment fails. Just make sure you implement webhook customer.subscription.updated , as this will be the website that Stripe will send you if they mark the subscription as unpaid or unsubscribed, allowing you to update your own entries accordingly.

+34
Oct 21 '13 at 19:52
source share