Watenga Capital
Watenga Capital offers eligible sub-merchants a cash advance that is repaid automatically as a fixed percentage (the holdback) of each settlement — no fixed instalments, no manual repayments.
How it works
Watenga underwrites an advance based on your processing history and surfaces it as an offer. When you accept, the funds are disbursed to your Watenga balance. As you process payments, a percentage of every settlement (the holdback_pct) is deducted and applied to the outstanding balance until the total_repayment_amount is repaid.
/v1/merchant/capital and require an authenticated merchant session. Reading offers and advances requires the admin role; accepting an offer requires the owner role and 2FA (TOTP).Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/merchant/capital/offer | The current pending (unexpired) offer, or null |
| GET | /v1/merchant/capital/summary | Whether the merchant has any offer or active advance |
| POST | /v1/merchant/capital/offer/accept | Accept the pending offer (owner + TOTP) |
| GET | /v1/merchant/capital/advances | List all advances for the merchant |
| GET | /v1/merchant/capital/advances/:id/repayments | Repayment ledger with running balance |
Fetch the current offer
GET /v1/merchant/capital/offer
Authorization: Bearer sk_test_...{
"success": true,
"data": {
"offer": {
"id": "adv_01HQXYZ",
"merchant_id": "mer_01HQ",
"market_iso2": "ZW",
"currency": "USD",
"advance_amount": "1000.00",
"factor_rate": "1.2500",
"total_repayment_amount": "1250.00",
"holdback_pct": "0.1000",
"total_repaid": "0.00",
"outstanding_balance": "1250.00",
"status": "offered",
"offer_expires_at": "2026-07-01T00:00:00.000Z"
}
}
}Accept an offer
Accepting requires the owner role and a valid TOTP code (X-TOTP-Code header). On success the advance moves to accepted and is disbursed shortly after.
POST /v1/merchant/capital/offer/accept
Authorization: Bearer sk_test_...
X-TOTP-Code: 123456{
"success": true,
"data": {
"advance": {
"id": "adv_01HQXYZ",
"status": "accepted",
"advance_amount": "1000.00",
"total_repayment_amount": "1250.00",
"holdback_pct": "0.1000"
}
}
}Track repayments
{
"success": true,
"data": {
"advance": { "id": "adv_01HQXYZ", "status": "active", "outstanding_balance": "1200.00" },
"repayments": [
{
"id": "rep_01HQ",
"settlement_id": "set_01HQ",
"settlement_amount": "500.0000",
"holdback_amount": "50.0000",
"running_balance": "1200.00",
"created_at": "2026-06-10T08:00:00.000Z"
}
]
}
}Webhook events
Capital emits four canonical events from the webhook registry. Subscribe to keep your systems in sync without polling.
| Event | When it fires |
|---|---|
capital.offer_created | A new advance offer is available |
capital.disbursed | Advance funds are credited to your balance |
capital.repayment | A holdback is deducted from a settlement |
capital.repaid | The advance is fully repaid |
