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

# Introduction

> Bienvenue dans la documentation officielle de l'API Remita — intégrez les paiements mobile money en quelques lignes de code.

## Présentation

L'**API Remita** vous permet d'intégrer des fonctionnalités de transfert d'argent mobile (Orange Money, MTN Mobile Money, Wave, et plus) directement dans vos applications.

## Base URL

```
https://api.remita.cm
```

## Préfixes et authentification

| Préfixe    | Usage                                   | Authentification              |
| ---------- | --------------------------------------- | ----------------------------- |
| `/public/` | Authentification — obtenir un token JWT | Aucune                        |
| `/api/v1/` | API métier — transactions, soldes       | `apiKey` + `apiId` en headers |

## Headers requis

Tous les endpoints `/api/v1/**` nécessitent **trois headers** :

| Header          | Description                                               |
| --------------- | --------------------------------------------------------- |
| `apiKey`        | Clé API de votre application (fournie à la création)      |
| `apiId`         | Identifiant unique de votre application                   |
| `Authorization` | `Bearer <access_token>` obtenu via `/public/access_token` |

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.remita.cm/api/v1/transaction/collect \
    -H "Content-Type: application/json" \
    -H "apiKey: YOUR_API_KEY" \
    -H "apiId: YOUR_API_ID" \
    -H "Authorization: Bearer YOUR_JWT_TOKEN" \
    -d '{...}'
  ```

  ```java Java theme={null}
  HttpClient client = HttpClient.newHttpClient();
  HttpRequest request = HttpRequest.newBuilder()
      .uri(URI.create("https://api.remita.cm/api/v1/transaction/collect"))
      .header("Content-Type", "application/json")
      .header("apiKey", "YOUR_API_KEY")
      .header("apiId", "YOUR_API_ID")
      .header("Authorization", "Bearer YOUR_JWT_TOKEN")
      .POST(HttpRequest.BodyPublishers.ofString("{}"))
      .build();
  ```

  ```php PHP theme={null}
  <?php
  $ch = curl_init('https://api.remita.cm/api/v1/transaction/collect');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, [
      'Content-Type: application/json',
      'apiKey: YOUR_API_KEY',
      'apiId: YOUR_API_ID',
      'Authorization: Bearer YOUR_JWT_TOKEN',
  ]);
  ```

  ```python Python theme={null}
  import requests

  headers = {
      "Content-Type": "application/json",
      "apiKey": "YOUR_API_KEY",
      "apiId": "YOUR_API_ID",
      "Authorization": "Bearer YOUR_JWT_TOKEN",
  }

  response = requests.post(
      "https://api.remita.cm/api/v1/transaction/collect",
      headers=headers,
      json={...}
  )
  ```
</CodeGroup>

<Warning>
  Votre `apiKey` et `apiId` vous sont fournis lors de la création de votre application dans l'espace partenaire. Gardez votre `apiKey` **confidentielle** — ne l'exposez jamais côté client.
</Warning>

## Codes HTTP

| Code  | Signification                                        |
| ----- | ---------------------------------------------------- |
| `200` | Succès                                               |
| `400` | Requête invalide (paramètre manquant ou incorrect)   |
| `401` | Non authentifié (token expiré ou invalide)           |
| `403` | Accès refusé (apiKey/apiId incorrects ou IP bloquée) |
| `404` | Ressource introuvable                                |
| `500` | Erreur interne serveur                               |

## Format des erreurs

```json theme={null}
{
  "timestamp": "2026-05-08T10:00:00Z",
  "status": 400,
  "error": "Bad Request",
  "message": "Le champ 'phoneNumber' est obligatoire",
  "path": "/api/v1/transaction/collect"
}
```

## Opérateurs et pays supportés

| Code       | Opérateur        | Pays          |
| ---------- | ---------------- | ------------- |
| `OMCM`     | Orange Money     | Cameroun      |
| `MOMOCM`   | MTN Mobile Money | Cameroun      |
| `CIWAVE`   | Wave             | Côte d'Ivoire |
| `CIOM`     | Orange Money     | Côte d'Ivoire |
| `SNWAVE`   | Wave             | Sénégal       |
| `SNOM`     | Orange Money     | Sénégal       |
| `SNFREE`   | Free             | Sénégal       |
| `BFOM`     | Orange Money     | Burkina Faso  |
| `MLMOOV`   | Moov             | Mali          |
| `BJMTN`    | MTN              | Bénin         |
| `BJMOOV`   | Moov             | Bénin         |
| `UGMTN`    | MTN              | Ouganda       |
| `UGAIRTEL` | Airtel           | Ouganda       |

## Prochaines étapes

<CardGroup cols={2}>
  <Card title="Guide d'intégration rapide" icon="rocket" href="/quickstart">
    Intégrez l'API en 5 étapes claires
  </Card>

  <Card title="Authentification" icon="key" href="/authentication">
    Obtenez et gérez vos tokens JWT
  </Card>

  <Card title="Transactions" icon="arrow-right-arrow-left" href="/transactions">
    Collectes, dépôts et suivi de statut
  </Card>

  <Card title="Webhooks" icon="bell" href="/webhooks">
    Recevez les notifications en temps réel
  </Card>
</CardGroup>
