> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kemypay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API overview

> Base URL, authentication, response format and pagination

## Base URL

```
https://api.kemypay.com/v1
```

## Authentication

Send your secret key in the `Authorization` header: `Bearer sk_live_…` or `Bearer sk_test_…`. Calls must come from an allowed IP address. See [Authentication](https://docs.kemypay.com/authentication.md).

## Response format

```json theme={null}
{ "success": true, "data": { }, "meta": { "request_id": "a4f8e2c1b3d97056", "timestamp": "2026-10-29T10:00:00+00:00", "mode": "live" } }
```

Lists add a `pagination` object (`page`, `limit`, `total`, `pages`). Use `?page=` and `?limit=` (1 to 100, default 20).

Errors: `{ "success": false, "error": { "code", "message", "details" }, "meta" }`. See [Errors](https://docs.kemypay.com/guides/errors.md).

## Conventions

* Amounts are **strings** (`"1000.00"`), to keep every decimal exact.
* Countries are ISO 3166-1 alpha-3 (`CMR`), currencies ISO 4217 (`XAF`).
* Operators have stable codes (`MTN_CMR`). Store codes, not names.
* Dates are ISO 8601 with time zone.

## Endpoints

| Group | Endpoints |
| - | - |
| Catalog | `GET /mobile-money/countries`, `GET /mobile-money/countries/{country}`, `GET /mobile-money/categories` |
| Services | `POST`, `GET /mobile-money/services`, `GET`, `PATCH /mobile-money/services/{code}`, `POST /services/{code}/disable`, `/enable`, `/rotate-secret` |
| Collections (beta) | `POST /mobile-money/quote`, `POST /mobile-money/predict-operator`, `POST`, `GET /mobile-money/collections`, `GET /mobile-money/collections/{code}` |
| Balances | `GET /mobile-money/balances` |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.