billing
GET /v1/catalog/plan-moves
For a product line I am already on, which plans can I move to?
Uwierzytelnianie
Wyślij klucz API jako token bearer. Ten punkt końcowy nie określa konkretnego uprawnienia w specyfikacji, więc nadaj swojemu kluczowi minimum potrzebnych uprawnień i sprawdź odpowiedź zamiast zakładać.
Miejsce na identyfikator organizacji
Ten punkt końcowy przyjmuje org_id jako parametr zapytania. Pomiń go, a wywołanie obejmie całe drzewo dzierżawy; prześlij go, aby ograniczyć wywołanie do jednej organizacji.
Identyfikator Twojej organizacji znajduje się na ekranie kluczy API w Twoim panelu, obok samego klucza. Jest to ten sam identyfikator w każdym wywołaniu, które wykonujesz.
Wypróbuj
Zastąp wszystko w nawiasach ostrych własnymi wartościami, a zastępczy znacznik klucza kluczem ze swojego pulpitu nawigacyjnego.
curl -X GET https://api.zinndigital.com/v1/catalog/plan-moves?product_line=<product_line> \
-H "Authorization: Bearer zdk_live_…"Zalogowany? Konsola API w Twoim panelu uzupełnia rzeczywiste identyfikator organizacji oraz Twój własny klucz i wykonuje żądanie względem aktywnego API, dzięki czemu możesz zobaczyć rzeczywistą odpowiedź. Otwórz ten punkt końcowy w konsoli API
Szczegóły
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.
Parametry
| Nazwa | Typ | Wymagane | Co to jest |
|---|---|---|---|
org_id (query) | Uuid | Nie | The organization to answer for. Required when the caller can see billing for more than one; otherwise defaults to theirs. |
product_line (query) | string | Tak | The product line to build the ladder for. |
Odpowiedź
| Nazwa | Typ | Wymagane | Co to jest |
|---|---|---|---|
current | PlanMoveCurrent | Tak | 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[] | Tak | — |
handle_site_id | string | Nie | 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… |
Błędy, które ten punkt końcowy może zwrócić
401 · 403 · 422