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

# Moov Money

> Moov Africa Transfer API — sandbox developer.moov-africa.com

<div style={{ display: "inline-block", width: "1rem", height: "1rem", background: "#0066CC", borderRadius: "2px", marginRight: "0.5rem", verticalAlign: "middle" }} />

**Moov Money** — Transfer API (cash-in / cash-out).

## Covered countries

| Country       | Code | Currency |
| ------------- | ---- | -------- |
| Côte d'Ivoire | CI   | XOF      |
| Bénin         | BJ   | XOF      |
| Togo          | TG   | XOF      |

## URLs

| Type        | URL                                                            |
| ----------- | -------------------------------------------------------------- |
| Dev portal  | [developer.moov-africa.com](https://developer.moov-africa.com) |
| Sandbox API | `https://developer.moov-africa.com/sandbox/v1`                 |
| Transfer    | `https://developer.moov-africa.com/sandbox/v1/transfer`        |
| Health      | `https://developer.moov-africa.com/sandbox/v1/health`          |
| USSD client | `*155#`                                                        |

## Required credentials

Enter these in **Settings → Stores → Moov**:

| Field        | Type     | Description               |
| ------------ | -------- | ------------------------- |
| `partner_id` | text     | Moov Africa partner ID.   |
| `username`   | text     | Partner account username. |
| `password`   | password | Associated password.      |

## Specifics

* **Basic auth only** — Moov does not use OAuth for its sandbox. The `Authorization: Basic <base64(username:password)>` header is sent on every request.
* The sandbox URL lives under the `/sandbox/v1` path. No query parameters are required.
* The operation type is carried by `type: "cashin"` in the request body — use `cashout` for payouts (post-launch).
* `msisdn` is sent **without the `+`** in the body.
* Response: `transactionId` (string), stored by SandPay as `provider_tx_id`.
* No native webhooks: SandPay triggers the final status via the scenario engine.

## See also

* [Scenarios](/en/scenarios) — result driver independent of the operator
* [MTN](/en/operators/mtn), [Orange](/en/operators/orange), [Airtel](/en/operators/airtel)
