Aller au contenu
neo-pays

Développeurs

Premier paiement en un appel.

Des clés de test qui traversent le même code que la production, l'idempotence intégrée, des webhooks signés, et une spécification OpenAPI publique.

Mode test

Des clés de test qui traversent le même code que la production.

Les clés sk_test_ empruntent le même chemin que sk_live_ pour vos encaissements mobile money et par virement, sans mouvement d'argent.

Une clé API est affichée une seule fois, à sa création. Données d'illustration.

Contrat

Quatre règles, valables dans tous les langages.

  • Idempotence

    Envoyez Idempotency-Key sur chaque création : 201 la première fois, 200 quand la clé retourne l'opération existante, 409 en cas de conflit. La clé désigne l'opération voulue, pas la tentative.

  • Versions

    v1 est une surface de compatibilité gelée ; toute nouvelle capacité arrive dans v2. Chaque chemin porte son préfixe de version.

  • Erreurs

    Une erreur se lit par son code, stable et fait pour être testé ; le message est destiné à un humain et peut changer.

  • Montants

    Les montants sont des chaînes de caractères, jamais des nombres flottants.

  • Corridors

    GET /v2/corridors : le routage est inspectable — ce que vous pouvez utiliser, ce que la plateforme choisira, ce que vous pouvez imposer.

  • Clés API

    Une clé est affichée une seule fois, à sa création. Vous pouvez la restreindre à une liste d'adresses IP.

Exemples

Créer un encaissement.

Le montant est une chaîne, la clé d'idempotence désigne l'opération voulue — pas la tentative. Votre tableau de bord génère ces extraits pour chaque endpoint, avec l'URL de base de votre compte.

GET https://api.neo-pays.com/v2/corridors
Authorization: Bearer $NEOPAYS_SECRET_KEY
curl https://api.neo-pays.com/v2/payments \
  -H "Authorization: Bearer $NEOPAYS_SECRET_KEY" \
  -H "Idempotency-Key: commande-1042" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": "10000",
    "currency": "XOF",
    "platform_id": "<platform_id>",
    "merchant_reference": "commande-1042"
  }'

HTTP/1.1 201 Created

Webhooks

Signés, horodatés, relivrés.

Chaque livraison porte un en-tête Signature : un horodatage et un HMAC-SHA256 du corps brut. Rejetez au-delà de 300 s.

  • 20 types d'événements, jusqu'à 10 endpoints par compte.
  • Un endpoint de test pour vérifier votre implémentation.
  • Une adresse IP de sortie fixe, pour vos listes blanches ; garde anti-SSRF côté plateforme.
POST /webhooks/neo-pays
X-HayB-Signature: t=1723651200,v1=9f2c…d41a
Content-Type: application/json

v1 == HMAC-SHA256(secret, t + "." + body)
|now − t| ≤ 300 s
Livraison d'un webhook et son échelle de tentatives : 60 s, 5 min, 30 min, 2 h. Données d'illustration.

Clients de référence

Plus de dix langages, aucun paquet publié.

Un client de référence par langage — une centaine de lignes, sans dépendance, à copier dans votre projet. Un script d'intégration hébergé ouvre le paiement en fenêtre modale sur vos pages web.

Depuis votre tableau de bord, chaque endpoint affiche son extrait cURL, PHP, Node.js, Python et Go, généré à partir de la définition de l'endpoint lui-même.

OpenAPI

Une spécification publique, vérifiée contre les routes.

GET /v1/openapi.json : 42 opérations, vérifiées contre la table de routes à chaque construction.

GET https://api.neo-pays.com/v1/openapi.json

Premier paiement en un appel.

Ouvrez un compte : les clés de test traversent le même code que la production.