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

# Référence API

> URL de base, en-têtes obligatoires, format des requêtes et des réponses pour tous les endpoints LigdiCash.

## URL de base

Tous les endpoints sont accessibles sur :

```
https://app.ligdicash.com
```

Il n'existe pas d'URL sandbox distincte. Durant la phase d'intégration, vous utilisez cette même URL avec les clés de votre compte temporaire. Voir [Environnements](/concepts/environnements).

## En-têtes obligatoires

Toutes les requêtes doivent inclure ces en-têtes :

| En-tête         | Valeur                                        |
| --------------- | --------------------------------------------- |
| `Apikey`        | Clé API de votre projet                       |
| `Authorization` | `Bearer {API_TOKEN}`                          |
| `Accept`        | `application/json`                            |
| `Content-Type`  | `application/json` (requêtes POST uniquement) |

```bash theme={null}
curl -X POST https://app.ligdicash.com/pay/v01/... \
  -H "Apikey: {API_KEY}" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json"
```

Voir [Authentification](/concepts/authentification) pour obtenir vos clés.

## Format des requêtes

Les corps de requête sont en JSON. L'objet racine est toujours `commande` pour les endpoints de création de transaction.

## Format des réponses

Toutes les réponses sont en JSON. Les champs communs à toutes les réponses :

| Champ           | Type     | Description                                        |
| --------------- | -------- | -------------------------------------------------- |
| `response_code` | `string` | `"00"` = succès, `"01"` = erreur                   |
| `token`         | `string` | Token de la transaction (vide en cas d'erreur)     |
| `response_text` | `string` | Message ou sous-code d'erreur (`Echec (CodeXX)`)   |
| `wiki`          | `string` | URL vers la liste des sous-codes pour cet endpoint |

<Note>
  `response_code: "00"` indique que la **requête API a abouti**, pas nécessairement que la transaction est complétée. Utilisez le champ `status` (via `confirm` ou callback) pour connaître le résultat du paiement.
</Note>

## Versionnement

L'API LigdiCash expose deux versions :

| Version | Endpoints                                             | Usage                                   |
| ------- | ----------------------------------------------------- | --------------------------------------- |
| `v01`   | Tous les endpoints payin et payout standard           | Opérateurs mobile money et flux général |
| `v02`   | `/pay/v02/debitotp` et `/pay/v02/debitwallet/withotp` | Wallet LigdiCash uniquement             |

## Endpoints disponibles

<CardGroup cols={2}>
  <Card title="Payin redirect — create" href="/reference/endpoints/payin-redirect-create">
    `POST /pay/v01/redirect/checkout-invoice/create`
  </Card>

  <Card title="Payin — confirm" href="/reference/endpoints/payin-redirect-confirm">
    `GET /pay/v01/redirect/checkout-invoice/confirm`
  </Card>

  <Card title="Payin sans redirect — create" href="/reference/endpoints/payin-straight-create">
    `POST /pay/v01/straight/checkout-invoice/create`
  </Card>

  <Card title="Wallet — envoyer OTP" href="/reference/endpoints/debit-otp">
    `GET /pay/v02/debitotp/{phone}/{amount}`
  </Card>

  <Card title="Wallet — soumettre paiement" href="/reference/endpoints/debit-wallet-with-otp">
    `POST /pay/v02/debitwallet/withotp`
  </Card>

  <Card title="Payout wallet — create" href="/reference/endpoints/withdrawal-create">
    `POST /pay/v01/withdrawal/create`
  </Card>

  <Card title="Payout mobile money — create" href="/reference/endpoints/straight-payout">
    `POST /pay/v01/straight/payout`
  </Card>

  <Card title="Payout — confirm" href="/reference/endpoints/withdrawal-confirm">
    `GET /pay/v01/withdrawal/confirm/`
  </Card>
</CardGroup>
