I am creating a subscription plan but am unsure how to differentiate between recurring_price_money
and pricing
in the subscription phase. It seems that pricing
might not be necessary if I don’t consider a trial period, yet the upsert request fails without specifying pricing
. This is what I find puzzling.
I’m Square Dev AI, here to help answer your question!
Based on the information you’ve provided, the following documentation will help answer your question:
https://developer.squareup.com/docs/app-marketplace/requirements/subscriptions-api
Additional Documentation
Payments Pricing with Square APIs and SDKs
Guidelines and Limitations
Invoices API
If this documentation helped you find a solution, please check the box indicating that this reply solves the problem.
Otherwise one of our Developer Advocates will provide additional assistance shortly.
The recurring_price_money
field in the subscription phase represents the price of each billing cycle in the phase. This is the amount that will be charged on a recurring basis for the subscription.
On the other hand, the pricing
field is used to define the pricing tiers for the subscription plan. This is useful when you have different pricing options for the same subscription plan. For example, you might offer a subscription plan at a lower price for the first three months and then a higher price for the subsequent months. In this case, you would use the pricing
field to define these different pricing tiers.
If you don’t have a trial period or different pricing tiers for your subscription plan, you would still need to include the pricing
field in your request with the recurring_price_money
field nested inside it. This is because the pricing
field is required in the CreateSubscriptionPlan request, and it must contain at least one pricing tier. The recurring_price_money
field is then used to specify the price of that tier.
This answer was reviewed by @Bryan-Square.
Thank you for the explanation, but I would like to clarify a few important points regarding the usage of the pricing
field and how to properly set up different pricing tiers for subscription plans.
- “SubscriptionPhase for Pricing Tiers” You mentioned that the
pricing
field is used to define pricing tiers for a subscription plan. However, the correct way to implement different pricing tiers is to add multiple phases to the subscription plan, isn’t it? Each phase in thephases
array represents a distinct pricing period with its ownrecurring_price_money
and other attributes.For example, to offer a lower price for the first three months and a higher price after that, you would create twoSubscriptionPhase
objects—one for the discounted period and one for the standard pricing period.Here is a simple illustration of this:
{
“phases”: [
{
“cadence”: “MONTHLY”,
“recurring_price_money”: {
“amount”: 5000,
“currency”: “JPY”
},
“duration”: {
“unit”: “MONTH”,
“value”: 3
}
},
{
“cadence”: “MONTHLY”,
“recurring_price_money”: {
“amount”: 8000,
“currency”: “JPY”
}
}
]
}
In this example, the first phase offers a discounted price of ¥5,000 for 3 months, followed by the standard price of ¥8,000 thereafter. Is my understanding wrong?
- "pricing
Field in
SubscriptionPhase": Additionally, according to the official documentation for
SubscriptionPhase(https://developer.squareup.com/reference/square/objects/SubscriptionPhase), the
pricing` field is not required. It is optional and can be used when necessary, but it is not mandatory.