Hello,
I am planning to use Square to sell a digital subscription to my product. I’d like to offer both a monthly subscription, and an annual subscription, where the annual offering is 12x the cost of the monthly with a 10% discount applied. (ex. $100 vs $1200-10%)
My understanding is that, to do this through Square, I will need to do the following:
- Make two catalogue items – one with the monthly cost ($100), and another with the yearly cost ($1200)
- Make two subscriptions – one for the first item with a monthly frequency, and another for the second item with an annual frequency (-10% discount)
- Integrate both of the subscriptions into my app via the Subscriptions API
Is this the standard approach? Or would it be possible to combine the two subscriptions into one, where the price adjustment is applied automatically based on the frequency?
Thank you
Yes, your understanding of how the Subscriptions API is correct. You will need two subscriptions for the pricing options you offer customers. 
1 Like
Thanks! Is it possible to use the same catalog item in a way adjusts the quantity/price for the chosen subscription duration? Or are two catalog items needed as well?
Yeah, the item in the subscription can be the same catalog object. 
1 Like
Thanks for the response! I’m still having some trouble understanding the full workflow with the Subscriptions API. So from my understanding, assuming that I have a user who selects a plan and enters their card info into my app, this is the full workflow required:
In the Square App (prior to purchase):
- Create two catalog items: “1-Month” ($100), “1-Year” ($1200)
- Create two subscription plans (“Monthly Plan” with first item, “Annual Plan” with second item with 10% discount)
Then in my app (during purchase), via the Square API:
- Create a new customer for the purchaser, with the Customer API
- Create a new card for the new customer, with the Card API
- Create a new order with the catalog item that aligns with their selected plan, with the Orders API
- Process the payment using the Payments API
- Add a webhook to the payment so that, if its successful, a new subscription is created using the card ID and order ID, through the Subscriptions API. The subscription would have one phase and the order ID would be entered as the order_template_id
Is this correct? Or is there an easier way (like reusing the same order across different customers)? Thanks!
Everything is correct except you won’t use the Payments API. You’ll use the Subscriptions API to create the subscription. That API will automatically create the payments for the subscription. 
1 Like
Thanks! Does a new order template need to be created each time a new subscription is created?
Yes, another order templet does need to be created. 
1 Like