Skip to main content
POST
/
v1
/
payments
Créer un paiement
curl --request POST \
  --url https://api.example.com/v1/payments

Créer un paiement

Crée une nouvelle intention de paiement et retourne une URL de redirection vers le checkout.

Endpoint

POST /v1/payments

Headers

HeaderRequisDescription
AuthorizationBearer sk_xxx
Content-Typeapplication/json
X-Idempotency-KeyRecommandéClé unique pour éviter les doublons

Body

ParamètreTypeRequisDescription
amountintegerMontant en FCFA (min: 100)
currencystringDevise (défaut: XOF)
payment_methodstringMOBILE_MONEY ou CARD
countrystringCode pays: ML, SN, CI
customerobjectInformations client
customer.phonestringNuméro de téléphone
customer.namestringNom du client
customer.emailstringEmail du client
return_urlstringURL de retour après paiement
client_referencestringVotre référence (order_id)
metadataobjectDonnées personnalisées

Exemple

curl -X POST https://api.sahelpay.ml/v1/payments \
  -H "Authorization: Bearer sk_test_xxx" \
  -H "Content-Type: application/json" \
  -H "X-Idempotency-Key: order-123" \
  -d '{
    "amount": 5000,
    "currency": "XOF",
    "payment_method": "MOBILE_MONEY",
    "country": "ML",
    "customer": {
      "phone": "+22370123456",
      "name": "Amadou Diallo"
    },
    "return_url": "https://votre-site.com/checkout/return",
    "client_reference": "order_123",
    "metadata": {
      "order_id": "order_123"
    }
  }'

Réponse

{
  "success": true,
  "data": {
    "id": "txn_abc123def456",
    "status": "PENDING",
    "amount": 5000,
    "currency": "XOF",
    "redirect_url": "https://pay.sahelpay.ml/checkout/txn_abc123def456",
    "expires_at": "2025-12-18T17:00:00.000Z",
    "created_at": "2025-12-18T16:45:00.000Z"
  }
}

Erreurs

CodeDescription
INVALID_AMOUNTMontant invalide (< 100 ou > 5M)
MISSING_PHONENuméro de téléphone requis
MISSING_RETURN_URLURL de retour requise
DUPLICATE_PAYMENTPaiement déjà créé (idempotence)