PUT
Set how this store rounds converted prices

Authorizations

Authorization
string
header
required

A secret API key. Publishable keys cannot reach this API. A key may carry an expiry, and an expired key is refused exactly like an unknown one, with a 401 that names no reason; check the key's expires_at in the dashboard rather than inferring it from a response. When a merchant rolls a key's secret they choose a grace window of up to 3 days, and for its duration BOTH the new secret and the one it replaced authenticate, so an integration moves over on its own deploy schedule instead of at the instant the button is pressed. Move before the window closes: after it, the old secret is refused. Nothing else about this contract moves with a roll. The key keeps its id and its scopes, so the only thing an integration updates is the credential itself.

Headers

Idempotency-Key
string
required

A unique key per logical write. Replaying a request with the same key returns the first response byte for byte instead of applying the write twice.

Body

application/json

Sets the rounding rule applied to every price this store converts out of its own currency. Both fields are required. IT MOVES WHAT SHOPPERS ARE SHOWN, IMMEDIATELY. The rule is applied at conversion time rather than stored on any amount, so this call changes every foreign price the storefront quotes on the very next request. Nothing is migrated and no row is rewritten, which also means there is no window in which to catch a mistake before shoppers see it. A store that has never set a rule has no row; this creates it. THERE IS NO DELETE, and no write_fx:delete grant exists. Removing the row would not turn rounding off, it would restore exact, which sending rounding_rule exact already does and does reversibly.

rounding_rule
enum<string>
required

exact leaves the converted number alone. nearest_whole rounds to a whole major unit. nearest_99 and nearest_95 round to a whole major unit and then sit just below it, which is the charm-pricing shape. On a ZERO-DECIMAL currency such as JPY there is no fraction to sit below, so both charm rules behave as nearest_whole.

Available options:
exact,
nearest_99,
nearest_95,
nearest_whole
expected_updated_at
string | null
required

The updated_at you last read. Required, because this rule is a singleton written by this route AND by the merchant's dashboard: a write naming no version silently reverts whatever moved under it and answers 200 to both parties. A mismatch is 409 settings_modified. null asserts that this store has no rounding settings yet, which is the only way a first write can name a version that does not exist, and it is refused once a row does exist.

Response

Success

data
object