Skip to main content
StellarTools supports 170 fiat currencies for product pricing and direct checkouts. Prices are stored in each product’s native currency and converted to crypto at checkout time using live exchange rates.

List supported currencies

GET /currencies Returns the full list of supported ISO 4217 currency codes.
curl https://api.stellartools.dev/currencies \
  -H "x-api-key: YOUR_API_KEY"

Response

{
  "data": ["AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "..."]
}
The returned codes map directly to the currency_code field on products and direct checkouts.

Using currency codes

When creating a product or direct checkout, pass one of these codes as currency_code:
curl https://api.stellartools.dev/product \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Pro Plan",
    "type": "subscription",
    "currency_code": "EUR",
    "price_amount_cents": 999,
    "recurring_period": "month"
  }'
The price is stored as-is in the given currency. At checkout time, StellarTools fetches the live exchange rate and calculates the exact crypto amount the customer must send.

Amount format

All amounts in StellarTools (price_amount_cents, amount_cents) use a uniform scale of 100, the base currency amount multiplied by 100, for every currency:
stored_amount = base_amount × 100
Display amountcurrency_codeStored value
$9.99USD999
€25.00EUR2500
₦15,000.00NGN1500000
¥1,000JPY100000
1.50 BHDBHD150
This is not the same as ISO 4217 minor units (Stripe’s convention). In StellarTools the multiplier is always 100, regardless of how many decimal places the currency uses natively. For example, ¥1,000 is 100000 here, but 1000 in systems that use minor units.
A few rules to keep in mind:
  • Amounts must be positive integers.
  • For zero-decimal currencies (JPY, KRW, VND, and similar), use whole-unit multiples of 100, e.g. ¥1,000 is 100000, never 100050.
  • For three-decimal currencies (BHD, KWD, OMR, and similar), amounts are limited to two decimal places of precision, e.g. 1.234 BHD cannot be represented and should be rounded to 1.23 (123).