Getting Started
Ikawaari is a payment infrastructure platform built for Africa and beyond. Accept mobile money, card payments, and bank transfers, then operate your merchant workflows across payments, payouts, billing, wallet, and app integrations.
Ikawaari currently exposes multiple implemented API route families. In this introduction, examples focus on the currently implemented payment_intents route family for first-payment flows. See Route Families for the exact structure.
Quick Start
1. Create an account
Sign up at dashboard.ikawaari.com and complete your business verification.
2. Get your API keys
Navigate to Developers → API Keys in the dashboard. You'll find two environments:
| Environment | Key prefix | Purpose |
|---|---|---|
| Sandbox | ik_test_ | Testing and development |
| Live | ik_live_ | Production transactions |
Start with sandbox keys. No real money is moved in sandbox mode.
3. Install an SDK
Production packages URL
The packages portal link shown in this documentation is injected at build time from the `IKAWAARI_PACKAGES_PROD_URL` environment variable.
No URL is configured in this build environment.
- cURL
- Node.js
- Python
# No installation needed — use cURL directly
curl https://api.ikawaari.com/payment_intents \
-H "Authorization: Bearer ik_test_your_key_here" \
-H "Content-Type: application/json"
npm install @ikawaari/sdk
import Ikawaari from '@ikawaari/sdk';
const ik = new Ikawaari({
apiKey: 'ik_test_your_key_here',
});
pip install ikawaari
import ikawaari
ik = ikawaari.Client(api_key="ik_test_your_key_here")
4. Create your first payment
- cURL
- Node.js
- Python
curl -X POST https://api.ikawaari.com/payment_intents \
-H "Authorization: Bearer ik_test_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"amount": 5000,
"currency": "XOF",
"payment_method_types": ["mobile_money"],
"description": "Order #1234"
}'
const paymentIntent = await ik.payments.create({
amount: 5000,
currency: 'XOF',
payment_method_types: ['mobile_money'],
description: 'Order #1234',
});
console.log(paymentIntent.id); // pi_xxx...
payment_intent = ik.payment_intents.create(
amount=5000,
currency="XOF",
payment_method_types=["mobile_money"],
description="Order #1234",
)
print(payment_intent.id) # pi_xxx...
5. Handle the response
A successful response returns a PaymentIntent object:
{
"id": "pi_1a2b3c4d5e",
"object": "payment_intent",
"amount": 5000,
"currency": "xof",
"status": "requires_payment_method",
"payment_method_types": ["mobile_money"],
"description": "Order #1234",
"created": 1708300800
}
What's next?
- Accept a Payment — Full integration guide
- Mobile Money — Orange Money, MTN MoMo, Wave, etc.
- Webhooks — Get notified when payments complete
- Sandbox Testing — Test without real money
- Merchants — Merchant operating handbook
- Developers — Integration entry point
- API Reference — Complete API documentation