Skip to main content
The Kori Merchant API lets your application collect payments from customers, disburse funds, run payouts and bulk payments, create payment links, and manage your team — all over mobile money (Orange Money, Wave, Sama, Moov). Everything documented here is reachable with a merchant API key, using exactly the permissions (“scopes”) you see in the API Keys screen of your Kori dashboard.

Quickstart

Make your first authenticated request in a few minutes.

Authentication

Exchange your API key + secret for a scoped Bearer token.

Scopes

Understand what each API key permission grants.

API Reference

Full endpoint reference with request/response schemas.

Base URL

All merchant endpoints are served under the /merchant/api path, e.g. https://api.kori.ml/merchant/api/balance.

How it works

1

Create an API key

In the dashboard, open API Keys and create a key. Choose the scopes it should carry (for example pay, balance, webhooks). You receive an API key (mk_...) and secret (ms_...).
2

Get a token

Call POST /merchant/api/auth with your key and secret to receive a short-lived Bearer token embedding your scopes.
3

Call the API

Send the token as Authorization: Bearer <token> on every request. Each endpoint checks for its required scope.
4

Receive webhooks

Register a webhook endpoint to be notified when payments settle, payouts complete, and more.

Response format

Every response uses the same envelope:
Errors set success: false with a human-readable message. See Errors.
Collections are asynchronous. POST /merchant/api/pay returns 202 with status: "pending" — the customer has only been prompted. Treat an order as paid only after the payment_received webhook. See Webhooks.