Map currency before scaling
Stripe documents minor-unit amounts, zero-decimal currencies and special cases. This does not make every provider’s amount convention identical. The examples compare two ordinary documented charge representations; they do not state fees, currency availability or exchange rates.
| Display amount | Currency | Integer representation | Check |
|---|---|---|---|
| HK$10.99 | hkd | 1099 minor units | Two-decimal representation for this example |
| ¥500 | jpy | 500 minor units | Zero-decimal charge representation |
| 10.99 without currency | Missing | Unresolved | Reject or review; do not assume HKD |
Keep rounding and operation type explicit
Use decimal-safe conversion, reject excess precision according to the agreed rule and keep currency beside the amount at every stage. Charges and payouts may have different special rules. Do not use binary floating-point multiplication as the sole validation of monetary input.
Can a shared adapter multiply every displayed amount by 100?
Show the worked answer
No. JPY in the documented charge example would be wrong. Resolve currency and operation rules first; keep special cases in a reviewed mapping with tests.