tenancy

POST /v1/orgs/{orgId}/billing-currency

Change what this organization is invoiced in.

Wszystkie punkty końcowe tenancy

Wszystkie dokumentacje dla programistów

Uwierzytelnianie

Wyślij klucz API jako token bearer. Klucz musi posiadać uprawnienie billing.payment.manage; klucz bez niego jest odrzucany z kodem 403, a nie 404.

Miejsce na identyfikator organizacji

Ten punkt końcowy pobiera identyfikator Twojej organizacji bezpośrednio z adresu URL jako orgId. Podstaw go w ścieżce — nie ma nagłówka ani parametru zapytania, które mogłyby go zastąpić.

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 POST https://api.zinndigital.com/v1/orgs/{orgId}/billing-currency \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "currency": <string> }'

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

⚖️ Owner ruling 2026-08-31 (W37-V). A customer may re-denominate their own organization. Three things happen and they are deliberately different: 1. Invoices already issued are frozen. An invoice is a legal document with a number; its currency, FX stamps and tax treatment stay as issued, for ever. ⚠️ An invoice that is still DUE keeps its old currency and will be collected in it — invoices_left_in_old_currency reports how many, so the screen can say so rather than let the customer discover it on a bill. 2. Live subscriptions re-price from the CATALOGUE, not by FX-converting the locked price. The catalogue's per-currency price is the number a page displayed and the business chose; a converted one would be invented and would drift on every rate move. A subscription whose plan has no price in the target currency is left in its original currency and counted in subscriptions_unpriced — never zeroed. 3. Wallet credit is converted at the day's rate, per purse, as a draw-down in the old currency plus a grant in the new sharing one reference. Credit is held per (org, currency) and currencies are never mixed, so leaving it would strand real money the customer could no longer spend. ⛔ A dedicated route rather than a field on PATCH /v1/orgs/{orgId}: a rename writes one column, this moves money. It requires billing.payment.manage — the person who may correct a typo in the account name is not necessarily the person who may re-denominate the balance. An org you cannot reach answers 404, not 403. ⭐ Send dry_run: true to get exactly these numbers without applying anything. The preview runs the real conversion inside a transaction it then rolls back, so it cannot disagree with the commit.

Parametry

NazwaTypWymaganeCo to jest
orgId (path)UuidTakOrganization ID (UUIDv7).

Treść żądania

NazwaTypWymaganeCo to jest
currencystringTakISO-4217, the currency to invoice this organization in from now on. Must be one we can actually charge — enabled in the registry, not policy-blocked, and presentable by at least…
dry_runbooleanNieCompute the change and report it without applying it. ⭐ The preview runs the real conversion in a transaction it rolls back, so the figures a customer confirms are the figures…

Odpowiedź

NazwaTypWymaganeCo to jest
dry_runbooleanTakTrue when nothing was applied.
from_currencystringTak
to_currencystringTak
ratestringTakUnits of to_currency per unit of from_currency, to ten decimal places. ⛔ A string: JSON has no decimal type, and a float here would be the one place in this path that…
convertedConvertedPurse[]TakThe purses that moved. A purse whose balance rounds to zero in the target currency is left alone and is absent here — debiting it would destroy the customer's credit.
subscriptions_repricedintegerTakLive subscriptions now priced from the catalogue in the new currency.
subscriptions_unpricedintegerTakLive subscriptions whose plan has no price in the target currency. Left untouched in their original currency — never converted, never zeroed.
invoices_left_in_old_currencyintegerTakIssued invoices keeping the old currency, by design. Includes any still due.

Błędy, które ten punkt końcowy może zwrócić

401 · 403 · 404 · 422 · 429