In orders
On the order resource, every amount is an integer in USD cents, andtotals.currency tells you the currency:
base_price (per unit, before modifiers), tax, and each modifier’s price change are all integer cents.
Totals are computed by Maple and are authoritative.
total equals subtotal + tax + surcharge + tip + delivery
fees. You never recompute a customer-facing price — you read it. See How Maple works.In menus
When you publish a menu, prices are anamount object that pairs the integer with its currency:
amountMinor is the integer in the currency’s smallest unit, and currency is the uppercase ISO‑4217 code (USD). For USD that’s cents — send integer cents and you’re done.
Multi-currency is under construction. Today the Developer API operates in USD only: publish menus in
USD, and
order totals come back in USD. The menu model already accepts non-USD amounts and per-currency profiles (the menu’s
currencies collection, with minor-unit digits and rounding per currency), but applying multi-currency pricing
through the order loop is coming soon. Build against USD for now.| Currency | Minor-unit digits | amountMinor for 5 units |
|---|---|---|
| USD | 2 | 500 ($5.00) |
| JPY | 0 | 5 (¥5) |
| KWD | 3 | 5000 (KD 5.000) |
Rounding
Because every amount is an integer, there’s no rounding in transit — the number you read is exact. Rounding only happens when Maple derives a new amount, such as a percentage discount or a tax line. The default is banker’s rounding (round half to even), which avoids the upward bias of always rounding.5 up.
You can override it per currency through the currency profile’s rounding mode, but half-even is the default — assume it when you reconcile totals on your side.