PUT /v1/configuration sets what it
is called and how many units of it make a US dollar; every price the API returns
is then already converted, on the offer, the wallet, the balance and the
insufficient-funds errors.
This is a server-to-server call. It requires an Org-API-Key with the
config:write scope, and the route is deliberately not reachable from a
browser - see Authentication. config:write is not granted
to a new key by default; ask your account team to add it.Set your currency
curl
Every field is optional; send only what you are changing. A body with no
recognised field is rejected rather than silently accepted. The response returns
the resulting configuration, so you can confirm without a second call.
What unitsPerUSD means
You express the ratio against dollars, never against our internal settlement
units. If a credit is worth a dollar, send 1. If a credit is worth a cent -
the common loyalty case - send 100. If a credit is worth a hundred dollars,
send 0.01.
A $750,000 experience then renders as:
display.amount is a number, not an integer, and nothing is rounded. Choose the
ratio that reads best to your members rather than one that makes prices land on whole
units - a $1,650 experience at 0.001 returns 1.65, which is the honest figure.
Pricing an experience individually
A ratio applies to your whole catalog, so every price stays a fixed multiple of what you pay us. When you want to price a marquee experience differently from an everyday one, set that price directly:amount is
returned verbatim - the ratio is ignored entirely, and fractional prices like 39.5 are
kept as-is. To go back to the derived figure:
config:write scope and are server-to-server only, like this route.
display.source on any offer tells you which you are looking at: AUTHORED or DERIVED.
Changing
currencyUnitsPerUSD while prices are authored is refused with
AUTHORED_PRICES_WOULD_BE_STALE. An authored price is a fixed number of credits, so
moving the ratio changes what every one of them is worth without changing its number.
Resend with confirmReprice: true, or clear the authored prices first.400 LARGE_REPRICE_REQUIRES_CONFIRM, naming both values. Resend the same call
with "confirmReprice": true to go ahead. Your first configuration, from the
untouched default, is never treated as a reprice.
What is deliberately not writable
settlementMode, creditLimit and ratePerPoint are commercial terms, not
client preferences - a client cannot grant itself a better rate or a larger
overdraft. Sending any of them is rejected, not ignored, so a body that
contains one fails loudly rather than returning a success for a change that did
not happen. Those are a conversation with your account team.