Get started
Multi-Currency & Amounts
Amounts are always integers in the smallest currency unit. Learn how that works for KES, USD and zero-decimal currencies, and which payment rails need which currency.
Base URL
https://api.paysasa.com/api/v1Authx-api-keyFormatJSONAll money-moving APIs use minor units (integer amounts). For KES and USD this is cents (100 minor = 1.00). UGX and similar zero-decimal currencies use 1 minor = 1 unit. Only currencies enabled for your account are accepted; disabled codes return 400.
List enabled currencies (session required). Use this to populate checkout and wallet selectors.
const res = await fetch("https://api.paysasa.com/api/v1/currencies", { credentials: "include" });
const { currencies } = await res.json();
// [{ code: "KES", name: "Kenyan Shilling", decimal_places: 2, is_base: 0 }, ...]Payment rails: M-Pesa checkout and withdrawals require
KES. PayPal top-up settles to USD. Other pairs use wallet balance and conversion.