What are the differences between recurring_price_money and pricing in Subscription Phase

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.

:wave: 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.

  1. “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 the phases array represents a distinct pricing period with its own recurring_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 two SubscriptionPhase 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?

  1. "pricingField inSubscriptionPhase": Additionally, according to the official documentation for SubscriptionPhase(https://developer.squareup.com/reference/square/objects/SubscriptionPhase), thepricing` field is not required. It is optional and can be used when necessary, but it is not mandatory.