Get Your API Keys
First, you’ll need to obtain your API credentials:Install the SDK
The fastest way to integrate is with an official SDK (Python or TypeScript):Prefer raw HTTP? Every example below includes a cURL tab, and the API
reference documents every endpoint. See
SDKs for the full client library guide.
Make Your First API Call
Let’s create a user and their wallet:Response
app_user_id is your identifier for the user in your own system — it’s
required so you can reconcile HOST Pay users with your database. It’s a
string, so you can use any identifier (e.g. user_1001, a UUID, or a
plain number — numeric values are accepted and returned as strings). It cannot
be changed after creation. id (a UUID) is HOST Pay’s identifier; use it for
the wallet and transaction calls below.Create a Wallet for the User
After creating a user, you need to create a wallet for them:Get the User’s Wallet
Now retrieve the wallet for the user you just created:Response
Make a Deposit
You can add funds to wallets using either card payments (Stripe) or mobile money (Monime). You’ll need to provide your Stripe and Monime credentials when setting up your application.Option 1: Card Deposit (Stripe)
Test card deposits using Stripe test cards in Test Mode:4242 4242 4242 4242- Visa (succeeds)4000 0000 0000 0002- Visa (card declined)- Use any future expiry date and any 3-digit CVC
Card deposits use your Stripe credentials. In test mode, use Stripe test
cards. In live mode, real cards are charged.
Option 2: Mobile Money Deposit (Monime)
Add funds using mobile money in Sierra Leone:Response
Currency Conversion: When using mobile money, users enter amounts in
Sierra Leone Leones (SLE). The system automatically converts to USD using
real-time exchange rates and credits the wallet in USD.
Mobile money deposits use your Monime credentials. In test mode, the deposit
will use our Mock Monime service — and the user’s phone number controls the
outcome (see magic test numbers). In
live mode, customers will receive a real USSD code to complete payment.
Next Steps
SDKs
The full Python and TypeScript client library guide
Test vs Live
Understand test and live environments
Webhooks
Set up real-time event notifications
API Reference
Explore all available endpoints
Common Patterns
Creating Multiple Users
Safe Retries with Idempotency
Money-moving calls accept an idempotency key — reuse the same key to retry without double-charging:Troubleshooting
401 Unauthorized
401 Unauthorized
404 Not Found
404 Not Found
Verify that the resource ID (user_id, wallet_id, etc.) exists and is spelled
correctly.
403 Forbidden
403 Forbidden
The user or wallet may be disabled. Check the
is_active status of the
resource. Additionally, for client-managed applications, this error is raised if your prepaid wallet balance drops below the overdraft limit. Top up your balance via the dashboard’s Billing page.500 Internal Server Error
500 Internal Server Error
Contact support with the error details and timestamp for assistance.