Aller au contenu

Démarrage rapide

Ce guide vous mène du compte développeur au premier encaissement, dans le bac à sable : aucun argent réel n’est utilisé. Les exemples sont fournis en cURL, JavaScript (Node.js 18 ou plus), Python (bibliothèque requests) et PHP (extension cURL). Votre choix de langage est mémorisé sur toutes les pages.

  1. Créez votre compte développeur sur le tableau de bord développeur (l’« Espace développeur ») : nom, entreprise (facultative), téléphone, e-mail et mot de passe, puis acceptez les conditions d’utilisation. Après confirmation de votre adresse e-mail, votre clé d’essai est disponible.

    Rangez-la dans une variable d’environnement, jamais dans votre code :

    Fenêtre de terminal
    export SAMA_API_KEY="VOTRE_CLE_D_ESSAI"
  2. Vérifiez la connexion à l’API :

    Fenêtre de terminal
    curl -sS https://api.sama.money/v1/health/auth \
    -H "Authorization: Bearer $SAMA_API_KEY"

    Réponse attendue :

    {"status":"ok","mode":"test"}

    Une réponse d’erreur signifie que l’en-tête Authorization est absent ou que la clé est mal copiée.

  3. Créez un premier encaissement : vous demandez 5 000 F à un client de test. En bac à sable, l’encaissement reste en attente (pending) jusqu’à ce que le client le confirme sur son téléphone.

    Fenêtre de terminal
    curl -sS -X POST https://api.sama.money/v1/charges \
    -H "Authorization: Bearer $SAMA_API_KEY" \
    -H "Idempotency-Key: $(uuidgen)" \
    -H "Content-Type: application/json" \
    -d '{
    "client_phone": "22370000000",
    "amount_xof": 5000,
    "description": "Commande 42"
    }'

    L’API répond 200 avec l’encaissement en attente :

    {
    "reference": "chg_8f3a1c9e2b7d4e60a1c3",
    "object": "charge",
    "mode": "test",
    "amount_xof": 5000,
    "currency": "XOF",
    "client_phone": "22370000000",
    "status": "pending",
    "description": "Commande 42",
    "partner_reference": null,
    "account": null,
    "error_message": null,
    "created": 1790848800
    }

    Conservez la reference : elle identifie l’encaissement dans GET /v1/charges/{reference}. D’autres champs peuvent s’ajouter à la réponse : ignorez ceux que vous ne connaissez pas.

Pour la suite (enregistrer l’adresse de réception de vos notifications, simuler en bac à sable la confirmation du client, relire l’état d’un encaissement), voir la Référence, réservée aux développeurs inscrits. Pour passer en production : Comptes et vérification.

  • Idempotence : envoyez un en-tête Idempotency-Key (un UUID par opération) sur toute opération monétaire. Rejouer la même requête avec la même clé renvoie le même résultat.
  • Montants : des entiers en francs CFA (amount_xof), sans décimale.
  • Asynchrone : le client confirme, pas vous. N’expédiez jamais une commande pour une demande encore pending : attendez la notification ou relisez GET /v1/charges/{reference}.