Intégrer Xaalis avec un agent de code
Xaalis est conçu pour qu’un agent de code fasse une intégration avec peu ou pas d’aide humaine : la documentation est lisible par les machines, un compte de test s’ouvre en une requête et chaque résultat se simule. Deux choses restent humaines par conception — la vérification d’identité (KYC) et le passage en réel — pour qu’un agent ne puisse jamais commencer seul à déplacer de l’argent réel.
La consigne
Section intitulée « La consigne »Collez ceci dans votre agent (Claude Code, Cursor, Codex, Gemini CLI…) :
Intègre les paiements Xaalis (Wave et Orange Money) à ce projet. Lis d'abordhttps://docs.xaalis.org/llms.txt, ouvre un compte de test viaPOST https://sandbox-api.xaalis.org/v1/sandbox/signups, puis implémente la création de paiement avec cléd'idempotence, le webhook signé et des tests de bout en bout. N'utilise aucune clé réelle.Pour un résultat plus fiable, donnez-lui la skill xaalis-integration (plugin Claude Code) ou collez
integrations/ai/AGENTS.xaalis.md dans votre AGENTS.md — voir Skills pour agents de code.
Ce que fait l’agent — en mode test, sans humain
Section intitulée « Ce que fait l’agent — en mode test, sans humain »| Étape | Comment | Terminé quand |
|---|---|---|
| 1. Apprendre l’API | /llms.txt, /llms-full.txt, ou l’outil MCP xaalis_search_docs |
— |
| 2. Ouvrir un compte de test | POST https://sandbox-api.xaalis.org/v1/sandbox/signups (ou l’outil MCP xaalis_sandbox_signup) : renvoie sk_test_… et whsec_… une seule fois — voir Mode test |
les deux secrets sont dans des variables d’environnement, jamais dans le code |
| 3. Créer les paiements côté serveur | POST /v1/payments avec une Idempotency-Key tirée de la commande, puis redirection vers checkout_url — voir Paiements |
un paiement de test existe et la page de paiement s’ouvre |
| 4. Vérifier les webhooks | corps brut, Xaalis-Signature (HMAC-SHA256), refus des horodatages de plus de 5 minutes, dédoublonnage sur l’id de l’événement — voir Webhooks |
une mauvaise signature est refusée avec 400 |
| 5. Livrer au bon moment | uniquement sur un webhook payment.succeeded vérifié ou un GET /v1/payments/{id} côté serveur — jamais sur la redirection |
la redirection seule ne livre rien |
| 6. Simuler chaque résultat | POST /v1/payments/{id}/simulate avec succeeded ou failed ; en laisser un expirer ; un retrait vers un numéro finissant par 0000 échoue — voir Mode test |
chaque résultat met la commande dans le bon état |
| 7. Dérouler la liste | Liste de vérification avant le réel | toutes les cases sont cochées |
Ce qui reste humain
Section intitulée « Ce qui reste humain »| Étape | Pourquoi | Où |
|---|---|---|
| Vérification d’identité (KYC) | l’entreprise, la pièce d’identité du propriétaire et le wallet Wave qui reçoit les règlements | tableau de bord marchand, onboarding (propriétaire uniquement) — voir Tableau de bord |
| Validation | Xaalis examine le compte ; tant qu’il n’est pas actif, les requêtes réelles renvoient 403 merchant_not_active |
Liste de vérification |
| Clés réelles | un propriétaire les crée dans le tableau de bord ; elles ne s’affichent qu’une fois | Tableau de bord |
| Relire le travail de l’agent | une personne relit l’intégration avant que de l’argent réel circule (liste ci-dessous) | — |
| Wallets d’agents en réel | si votre application laisse un agent payer des personnes, seul un propriétaire peut créer et financer son wallet | Wallets d’agents |
Aujourd’hui, un compte de production est ouvert par l’équipe Xaalis : demandez-le une fois la liste validée. Le compte sandbox créé par l’agent reste un compte de test.
Relire le travail de l’agent avant le réel
Section intitulée « Relire le travail de l’agent avant le réel »- Les clés secrètes et le secret de webhook ne vivent que dans la configuration du serveur — pas dans le code client,
une application mobile, un dépôt ou des journaux (cherchez
sk_etwhsec_dans le code). - Chaque
POST /v1/paymentsetPOST /v1/payoutsenvoie uneIdempotency-Keyliée à l’action métier, réutilisée en cas de nouvel essai. → Idempotence - Le gestionnaire de webhook lit le corps brut, compare la signature en temps constant, refuse les horodatages trop
anciens, dédoublonne sur l’
id, vérifielivemode, et compareamountetclient_referenceavec la commande. - Les montants sont des francs entiers partout.
- Rien n’est livré parce que le client est arrivé sur
success_url. - Les erreurs sont traitées par
code, pas par message. → Erreurs - L’adresse de l’API, les clés et le secret de webhook viennent de la configuration : passer en réel est un changement de configuration.
Passer en réel
Section intitulée « Passer en réel »Remplacez https://sandbox-api.xaalis.org par https://api.xaalis.org, la clé sk_test_ par la clé sk_live_, et le
secret de webhook par celui du compte de production. Faites un petit paiement réel (100 F CFA) et regardez le webhook
arriver dans GET /v1/webhook-deliveries. Le reste est dans la liste de vérification.