Démarrage rapide
Du compte au premier encaissement, en cinq étapes.
1. Créer votre compte marchand
Inscrivez-vous sur le tableau de bord. Votre compte démarre en statut pending : vous pouvez
explorer le tableau de bord, créer des clés et des webhooks, mais les appels API répondent
client_inactive tant que votre dossier n'est pas validé.
2. Compléter le dossier KYB
Dans Conformité, renseignez le représentant légal et les bénéficiaires effectifs, puis téléversez le registre de commerce (RCCM). Un document rejeté l'est toujours avec un motif — corrigez et re-soumettez, l'historique est conservé.
Une fois le dossier approuvé, votre compte passe en active et vos clés s'ouvrent. Aucune
autre action n'est requise de votre côté.
3. Créer une clé API
Dans Développeurs → Clés API, créez une clé test puis, quand vous êtes prêt, une clé live.
Le secret (sk_test_… ou sk_live_…) n'est affiché qu'une seule fois, à la création —
stockez-le immédiatement dans votre gestionnaire de secrets.
4. Trouver vos identifiants d'actif et de plateforme
Avant le premier appel, demandez ce que votre compte peut emprunter :
curl https://api.neo-pays.com/v1/corridors \
-H "Authorization: Bearer sk_test_..."
La réponse donne les asset_id et platform_id à utiliser, par pays et par sens. GET /v1/assets
donne en plus le nombre de décimales de chaque actif — c'est lui qui dit ce que vaut une unité
mineure.
5. Créer votre premier encaissement
curl https://api.neo-pays.com/v1/payments \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: commande-1042" \
-d '{
"asset_id": 1,
"amount_minor": "500000",
"country": "SN",
"platform_id": 1,
"client_ref": "commande-1042",
"payer": { "name": "Adama Diop", "phone": "+221771234567", "country": "SN" }
}'
La réponse contient une payment_url (ou un deeplink, ou un qrcode_url, selon le rail) :
présentez-la à votre client.
Les montants sont des chaînes, en unités mineures.
"500000"sur un actif à zéro décimale vaut 500 000. Toujours une chaîne, jamais un nombre à virgule flottante : l'API refuse ce qui ne se relit pas exactement.
6. Écouter le webhook
Ne confiez jamais la confirmation au retour navigateur — le client peut fermer l'onglet. La vérité
est l'événement payment.success livré sur votre endpoint (le configurer), ou à
défaut GET /v1/payments/{id}.
Et ensuite
- Authentification — clés, mode test, idempotence
- Webhooks — signature, tentatives, rejeu
- Remboursements et versements