billing
GET /v1/catalog/plan-moves
For a product line I am already on, which plans can I move to?
Аутентификация
Передайте API-ключ в качестве маркера носителя (bearer token). Эта конечная точка не указывает конкретное разрешение в спецификации, поэтому предоставьте своему ключу минимум необходимых прав и проверьте ответ, вместо того чтобы делать предположения.
Идентификатор вашей организации
Этот эндпоинт принимает org_id в качестве параметра запроса. Оставьте его пустым, и вызов охватит все поддерево вашей аренды; передайте его, чтобы сузить область вызова до одной организации.
Идентификатор вашей организации находится на экране ключей API в вашей панели управления, рядом с самим ключом. Это один и тот же идентификатор для каждого вашего запроса.
Попробовать
Замените всё в угловых скобках на собственные значения, а плейсхолдер ключа — на ключ из вашей панели управления.
curl -X GET https://api.zinndigital.com/v1/catalog/plan-moves?product_line=<product_line> \
-H "Authorization: Bearer zdk_live_…"Вошли в систему? Консоль API в вашей панели управления автоматически подставляет реальный идентификатор вашей организации и ваш собственный ключ, а также выполняет запрос к работающему API, чтобы вы могли увидеть актуальный ответ. Откройте эту конечную точку в API-консоли
Подробнее
The ladder from the plan the organization currently holds on one product line — every purchasable tier on that line, marked upgrade, downgrade or current, priced in the organization's own currency and term. It exists because a customer already on a plan is not shopping: offering them the whole catalogue as fresh purchases, the tier they are on included, is what the buy screen must not do. A tier above theirs is an upgrade and a tier below is a downgrade, and only one of those can be refused by what the account already uses. blocked_by is empty when a move is offerable. It is populated only on a downgrade, and only with limits the account is already over — a smaller plan cannot be moved to while seven sites will not fit five slots. Limits that could not be measured are deliberately not reported as blockers: "no evidence" and "over the limit" are different facts, and rendering the first as the second refuses a legitimate downgrade because a stored sample went stale. Direction comes from the catalogue's own ordering, not from price — a promotional price or an annual term can invert the ladder, and a plan with no price in the caller's currency has no direction at all. Price is the tiebreak within one rung. current: null with an empty moves means the organization holds no plan on that line, so there is nothing to move from and the ordinary catalogue applies.
Параметры
| Имя | Тип | Обязательно | Что это |
|---|---|---|---|
org_id (query) | Uuid | Нет | The organization to answer for. Required when the caller can see billing for more than one; otherwise defaults to theirs. |
product_line (query) | string | Да | The product line to build the ladder for. |
Ответ
| Имя | Тип | Обязательно | Что это |
|---|---|---|---|
current | PlanMoveCurrent | Да | The plan they are on. Null when they hold none on this line, in which case moves is empty — there is nothing to move from. |
moves | PlanMove[] | Да | — |
handle_site_id | string | Нет | The site to POST a plan change to. A handle, not a scope — change_plan applies the new entitlements to every site the subscription entitles, so which one is used changes… |
Ошибки, которые может возвращать этот эндпоинт
401 · 403 · 422