> For the complete documentation index, see [llms.txt](https://tembo.gitbook.io/tembo/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tembo.gitbook.io/tembo/momo-collection-and-payout-api/introduction.md).

# Introduction

The MOMO Collection & Payout API lets you collect payments from customer mobile wallets and send money to mobile wallets, bank accounts and billers. Both collection and payout share the same authentication, error format, and webhook pattern.

***

### What you can do

**Collection:**

* **Initiate USSD collections** — push a payment prompt to a customer's phone
* **Track collection status** — query the outcome of a collection request

**Payout:**

* **Send to mobile wallets** — disburse to Airtel Money, M-Pesa, Mixx by Yas, HaloPesa
* **Send to bank accounts** — disburse to any licensed bank in Tanzania and Kenya
* **Pay utility bills** — pay LUKU, DAWASA, GEPG, and other billers
* **Process remittances** — international transfers to Tanzania via mobile money or bank
* **Track payout status** — query the outcome of a payout request

Wallet balances and transaction history are managed through the Wallet Management API.

***

### How it works

**Collection:**

1. You call the **Initiate Collection** endpoint with the customer's phone number, amount, and channel
2. The customer receives a USSD prompt on their phone
3. The customer enters their PIN to authorize (or rejects / lets it time out)
4. TemboPlus sends a webhook to your `callbackUrl` with the result

**Payout:**

1. You call the **Initiate Payout** endpoint with the recipient details, amount, and channel
2. TemboPlus routes the transaction through the appropriate payment system
3. The recipient's mobile wallet or bank account is credited
4. TemboPlus sends a webhook to your `callbackUrl` with the result

***

### Getting started

To integrate, you need:

{% hint style="success" %}
**From TemboPlus:**

* API Base URL (The root endpoint for all API interactions.)
* Partner Account ID (`x-account-id`)
* Partner Secret Key (`x-secret-key`)
  {% endhint %}

{% hint style="info" %}
**From Your Side:**

* A `callbackUrl` per transaction — an HTTPS endpoint that accepts POST requests with JSON payloads
  {% endhint %}

Email <sales@temboplus.com> to begin onboarding.

***

### Environment notice

Sandbox and production environments are available for most channels. Credentials are environment-specific — sandbox credentials do not work in production.

<table><thead><tr><th width="165">Environment</th><th>Base URL</th></tr></thead><tbody><tr><td>Sandbox</td><td><code>https://sandbox.temboplus.com/tembo/v1</code></td></tr><tr><td>Production</td><td><code>https://api.temboplus.com/tembo/v1</code></td></tr></tbody></table>

{% hint style="info" %}
**Remittance** is available in the live environment only. Sandbox access is not supported for remittance transactions.
{% endhint %}

***

### Authentication

Every request requires these headers:

```
Content-Type: application/json
x-account-id: YOUR_ACCOUNT_ID
x-secret-key: YOUR_SECRET_KEY
x-request-id: <unique UUID v4>
```

* **`x-account-id`**: Your partner account identifier.
* **`x-secret-key`**: Your API secret key.
* **`x-request-id`**: A UUID v4 you generate per request. Store this — it's how TemboPlus traces requests for support.

{% hint style="danger" %}
Never expose your credentials in client-side code or public repositories. Store them in environment variables or a secrets manager.
{% endhint %}

***

### Support

Email <operations@temboplus.com>. Include your `x-account-id` and the `x-request-id` of the failing request.
