Développeurs
Essayez avant de nous demander quoi que ce soit.
La clé du Sandbox est publique, et elle est écrite sur cette page. Pas d’inscription, pas de clé à réclamer, pas de rendez-vous commercial. Le compte vient quand vous êtes convaincu.
Commencez ici
Copiez ce bloc. Il fonctionne.
Cette clé est publique par conception : elle est semée au démarrage du Sandbox et n’existe jamais en production. Elle ne touche aucune donnée réelle.
KEY=ak_sandbox SECRET=sk_sandbox_demo TS=$(date +%s) IDEM=$(uuidgen) BODY='{"amount_minor":7000,"currency":"CDF", "rail":"mpesa","customer_ref":"+243810000000"}' # La signature couvre l'horodatage, la méthode, le chemin, # la clé d'idempotence et le corps : anti-rejeu. SIG=$(printf '%s.POST./v1/charges.%s.%s' "$TS" "$IDEM" "$BODY" \ | openssl dgst -sha256 -hmac "$SECRET" -r | cut -d' ' -f1) curl https://sandbox.inopas.net/v1/charges \ -H "X-Inopas-Key: $KEY" \ -H "X-Inopas-Timestamp: $TS" \ -H "X-Inopas-Signature: sha256=$SIG" \ -H "Idempotency-Key: $IDEM" \ -H "Content-Type: application/json" \ -d "$BODY"
Clé de démonstration
- Identifiant
- ak_sandbox
- Secret de signature
- sk_sandbox_demo
- Hôte
- https://sandbox.inopas.net
Le Sandbox est un hôte séparé, avec ses propres données. Aucune de vos requêtes n’atteint la plateforme réelle.
Les cas d’échec
Nous vous donnons aussi ce qui ne marche pas.
Un Sandbox qui ne sait que réussir ne prépare à rien. Le dernier chiffre du numéro décide du dénouement : vous provoquez le refus et le résultat non confirmé à la demande, autant de fois que nécessaire.
customer_ref …13
Échoué
L’opérateur refuse. Votre code le dit au client sans le laisser attendre.
customer_ref …99
Non confirmé
Le délai est dépassé sans réponse de l’opérateur. Ce n’est pas un échec : nous vérifions, puis nous tranchons.
customer_ref …autre
Payé
Le cas nominal. C’est le plus facile, et le moins fréquent en production.
« Non confirmé » n’est pas « Échoué », et ne s’affiche jamais comme tel. C’est l’état que nous tenons séparé dans tout le produit : tant que l’opérateur ne s’est pas prononcé, nous ne prétendons pas savoir.
Ce sur quoi vous pouvez compter
Trois garanties, écrites dans le code.
Une clé d’idempotence sur chaque écriture
Réessayer un appel ne fait jamais payer deux fois votre client. C’est la garantie la plus utile sur un réseau qui coupe.
Des notifications signées
Votre serveur vérifie que le message vient bien de nous et qu’il n’a pas été modifié en chemin. La recette de vérification est dans la documentation.
Des erreurs qui disent quoi faire
Un code, un message, et la référence à citer au support. Pas de « une erreur est survenue ».
Le contrat de connexion
Ajouter un canal ne touche pas à votre code.
Cinq opérations, les mêmes pour un opérateur mobile, une banque ou un acquéreur carte. Un partenaire s’ajoute chez nous ; chez vous, rien ne bouge.
Ce que vous branchez
Les cinq opérations, et rien d’autre.
Un SDK Node, et le reste en HTTP
Le SDK Node porte la signature, l’idempotence, les types et la vérification des notifications. Il n’est pas encore publié sur npm : d’ici là, l’API s’appelle directement, comme ci-dessus : la signature tient en trois lignes.
Les autres langages seront annoncés quand ils seront prêts, pas avant.
La documentation est ouverte
Le catalogue complet des opérations, la recette de signature et la clé de démonstration s’y trouvent. Sans compte, sans formulaire.