# Claude Code
Source: https://developers.ligdicash.com/ai-tools/claude-code
Configurer Claude Code pour générer du code d'intégration LigdiCash correct dès le premier essai
Claude Code est l'outil CLI d'Anthropic. En ajoutant un fichier `CLAUDE.md` à la racine de votre projet, vous lui transmettez le contexte LigdiCash une seule fois — il respectera ensuite les conventions API dans chaque réponse.
## Skill LigdiCash
Installez le skill pour que Claude Code connaisse l'API LigdiCash dès le départ — téléchargement ZIP, installation via `npx skills` et prompts prêts à l'emploi.
## Pré-requis
* [Claude Code installé](https://docs.anthropic.com/fr/claude-code) (`npm install -g @anthropic-ai/claude-code`)
* Un abonnement Claude Pro, Max ou un accès API Anthropic
## Fichier `CLAUDE.md` à créer
Créez un fichier `CLAUDE.md` à la racine de votre projet avec le contenu suivant :
````markdown theme={null}
# Intégration LigdiCash
## Contexte
LigdiCash est un agrégateur de paiement mobile money en Afrique de l'Ouest.
API base URL : https://app.ligdicash.com
## Headers obligatoires sur chaque requête
```
Apikey: {API_KEY}
Authorization: Bearer {AUTH_TOKEN}
Accept: application/json
Content-Type: application/json
```
## Format des données
- Numéros de téléphone : format E.164 sans `+` ni espaces — ex. `22670000000`
- Montants : entiers (XOF n'a pas de décimales) — ex. `5000`
- Devise : `XOF` exclusivement
- Clés API dans les exemples : toujours `{API_KEY}` et `{AUTH_TOKEN}`, jamais de vraies valeurs
## Règle d'or — identification des transactions
Le `token` retourné à la création est différent du `token` reçu dans le callback.
Ne jamais utiliser ce token pour identifier une transaction.
Toujours passer un identifiant marchand dans `custom_data` à la création :
```json
"custom_data": { "transaction_id": "ORD-2025-00042" }
```
Dans le callback, `custom_data` revient sous forme de tableau d'objets. LigdiCash y ajoute ses propres champs (`hash`, `logfile`). Extraire avec :
```javascript
const entry = custom_data.find(e => e.keyof_customdata === "transaction_id");
const transactionId = entry?.valueof_customdata;
```
## Payin avec redirection — pièges
- `customer` doit rester `""` — sinon LigdiCash filtre les opérateurs visibles
- Ne jamais ouvrir l'URL de paiement dans un `