One of our clients requested several times that we set him with a recurring payment.
Initially we thought that was not that important and we kind of dismissed it.
The lesson here was (again) to pay a close attention to client requests. Maybe we should have asked the client how important that was from a scale of 1 to 10 and then decide if we should implement right away or with a delay or ignore the request.
Here's a video explanation to this blog post too:
Over the last two months we’ve noticed that the client paid the invoice in about 1-2 weeks and after several email reminders. We have clients that pay our invoices hours after an invoice is sent out. There are also others, however, that pay in about 3-6 months which is not good. In the latter cases we have a chat and continue working only with a payment in advance.
Ok back to the Stripe Subscription Product.
The thing that made it really clear that recurring payment was really important for the client is that the client mentioned that out of all the invoices he has to pay ours was the only manual one. That hurt and we had to come up with a solution.
We at Orbisius (and all other brands such as qSandbox, WPSandbox.net, WPdemo.net) are all about productivity and building tools that and saving people time & money.
We had to come up with a solution.
The initial plan was to set up a dedicated site just for the billing but that was going to take some time to properly implement and test. We're dealing with money after all.
We’ve decided to check if it was possible to set this up via the Stripe’s control panel.
It turned out that we could do about 95% of the stuff from the UI and about 5% with little bit of Stripe API calling.
In our case the customer has made 2 payments via Stripe so we didn’t have to ask for a credit card or ask him to do re-enter it which was nice.
Perquisites:
- The customer must have made at least one payment via Stripe.
- Some programming skills OR access to command line of a Linux machine.
As of the time of writing it was not possible to directly link the payment method id to an existing customer profile which is odd. That’s why it was necessary to use the Stripe payment_methods API and call attach method for that customer.
I’ve chatted with Stripe reps and they’ve confirmed that.
Steps
- Create a product
- Create a pricing
- Create a customer
- Attach payment to the customer
- Set up recurring subscription
Create a product
To create a product go to: https://dashboard.stripe.com/subscriptions/products
Next, create a pricing.
Make sure you set this up correctly because you can’t update the pricing for some odd reason.
See more on this discussion.
https://stackoverflow.com/questions/23684705/update-plan-cost-in-stripe
Create a customer
To create a customer go to:
https://dashboard.stripe.com/customers
Attach payment to the customer
To do this you need to get
- your Stripe secret API key
- customer id
- payment method id
- access to either programming language or Linux command line
I chose to use the example provided in the API that used a Linux program called curl instead of writing things in a programming language.
The API endpoint that we need to call is this:
https://stripe.com/docs/api/payment_methods/attach
To get the API keys go to: https://dashboard.stripe.com/apikeys
To get payment id go https://dashboard.stripe.com/payments and then click on the payment you want to view. Scroll down to “Payment method” section and look for ID.
It should start with pm_.....
To find the customer id go to Customers and click on the record you want.
Look for the ID field in the record.
To attach a payment to a customer you need to get its id.
curl https://api.stripe.com/v1/payment_methods/____CUSTOMER_PAYMENT_ID___/attach \ -u ___YOUR_SECRET_KEY_API_KEY____: \ -d customer=____CUSTOMER_ID___
Important: Make sure you replace these parameters in the snippet above with yours.
- ____CUSTOMER_PAYMENT_ID___
- ___YOUR_SECRET_KEY_API_KEY____
- ____CUSTOMER_ID___
If you've missed a detail or if the Stripe's API has changed you will get an error in JSON format.
{
"error": {
"code": "resource_missing",
"doc_url": "https://stripe.com/docs/error-codes/resource-missing",
"message": "No such PaymentMethod: pi_oaisf8u3uasf9ouasf",
"param": "payment_method",
"type": "invalid_request_error"
}
Set up recurring subscription
To set up a recurring subscription go to this link and click on New button.
https://dashboard.stripe.com/subscriptions
If you’ve followed the previous steps you should be able to create the subscription without any issues.
Just follow the prompts on the page.
Related searches:
- Stripe Subscription Product
- How to Set Up Stripe Subscription Product
- How to Set Up Stripe Subscription Product an Existing Payment Charge
- How to Set Up a Recurring Subscription Payment from Stripe Control Panel
- How to Set up a Recurring Subscription Payment from Stripe Control Panel mostly
- How to Set up a Stripe Recurring Subscription Payment from an Existing Payment Charge