Skip to main content
All monetary values in the Store API are returned as decimal strings, never JSON numbers, written with exactly the decimal places of their currency: "29.99" in USD, "1.500" in Kuwaiti dinar, "1000" in yen. Unit prices may carry up to four decimals ("0.0125"). This preserves decimal precision and avoids the rounding errors of JSON numbers. A currency’s decimal places are its decimal_places (see below).

Response Format

Every monetary field has a corresponding display_ field that includes currency formatting:

Affected Types

This convention applies to all monetary fields across all resources: Rates, such as a tax line’s rate, are decimal strings too, without trailing zeros ("0.23").

Currency decimal places

Each currency the store sells in (GET /api/v3/store/currencies) carries decimal_places, from ISO 4217: 2 for USD and EUR, 0 for JPY, 3 for KWD. Every amount in that currency is written with that many decimals.

Working with Amounts

Use display_* fields for rendering prices in the UI — they are pre-formatted with the correct currency symbol and decimal places based on the order’s currency. Calculate on the raw strings with the SDK’s sumMoney, subtractMoney, multiplyMoney and compareMoney, which work on decimal strings exactly.