bigint cents internally. On the wire two
shapes appear, depending on whether you’re reading or writing.
Reading
Both shapes are present on most endpoints. Pick whichever matches your storage:
Writing
Endpoints that accept money take decimal strings:
The decimal-string format (
"25.00") avoids floating-point loss on the
wire. The schema rejects more than two decimal places.
A safe converter
Convert from cents to decimal string withoutNumber / 100:
Number(decimal.replace(".", ""))
after padding.
Currency
Every wallet has exactly one currency:USD or EUR. Merchant accounts
are USD-only — attempting to set them to anything else returns
MERCHANT_MUST_BE_USD (1521). Sub-users default to USD on creation; pass
currency: "EUR" on POST /merchant/users to override per sub-user.
Funding a sub-user from the merchant spot wallet requires both wallets to
share a currency. EUR sub-users must be funded via deposit, not internal
transfer: