Mobile Money

Mobile Money est un moyen rapide, simple, pratique, sécurisé et abordable de réaliser des paiements et d'effectuer d'autres transactions à l'aide d'un téléphone mobile.

Login

La méthode de paiement avec Mobile Money permet à vos clients de vous payer en saisissant leur numéro de téléphone mobile. Lorsque le client clique pour payer, il recevra une notification sur l'appareil mobile associé à son numéro, lui demandant de confirmer le paiement en saisissant un code PIN. Lorsque les clients effectuent des paiements, vous recevrez une notification webhook indiquant que des paiements ont été effectués sur votre compte.

Liste des devises disponibles

SymbôlesNoms
NGNNiaria Nigérian
XAFFranc CFA CEMAC
XOFFranc CFA CEDEAO
GNFFranc Guinéen

Liste des opérateurs

Noms
MTN Money
Moov Money
Airtel Money
Free Money
M-pesa
Wave
Orange Money

Les étapes suivantes sont nécessaires pour accepter les paiements par Mobile Money :

Initier un paiement (a mettre dans l'API)

Pour facturer un client, vous devrez collecter les informations de paiement nécessaires auprès du client.

Traduction en français et présentation sous forme de tableau :

ChampRequisTypeDescription
typeOuiStringIl s'agit de la méthode de paiement. Dans ce cas, ce sera mobile_money.
referenceOuiStringLa référence unique générée pour la transaction.
amountOuiStringLe montant à facturer.
currencyOuiStringLa devise.
phoneOuiStringLe numéro de téléphone mobile du client à facturer, par exemple 221700000000.
operatorOuiStringL'opérateur de mobile money.
customerOuiObjectLes détails du client.
customer.nameOuiStringLe nom du client.
customer.emailOuiStringL'adresse e-mail du client.
customer.phoneNumberNonStringLe numéro de téléphone du client (facultatif).
settlementDestinationNonStringLa destination de règlement est l'endroit où vous souhaitez que vos paiements soient réglés. Les règlements se font actuellement uniquement vers les portefeuilles (soldes).
callbackUrlNonStringL'URL pour rediriger votre client lorsque la transaction est terminée.

Ensuite, préparez votre objet de données pour qu'il ressemble à l'exemple ci-dessous :

{
  "type": "mobile_money",
  "amount": 50000,
  "reference": "dhshsdsd9sj",
  "currency": "XOF",
  "customer": {
    "name": "Claude Dominique",
    "email": "[email protected]"
  },
  "phone": "221773884332",
  "operator": "Orange Money",
  "settlementDestination": "wallet"
}

data_object = {
    "type": "mobile_money",
    "amount": 50000,
    "reference": "dhshsdsd9sj",
    "currency": "XOF",
    "customer": {
        "name": "Claude Dominique",
        "email": "[email protected]"
    },
    "phone": "221773884332",
    "operator": "Orange Money",
    "settlementDestination": "wallet"
}

# Printing the data_object
print(data_object)

Verifier le paiement

Voici un exemple de vérification de paiement et de réponse :
{
  "status": true,
  "message": "Charge trouvée",
  "data": {
    "id": 01293,
    "authorization": {
      "mode": null,
      "redirect": null
    },
    "auth_model": null,
    "amount": 50000,
    "amountReceived": 0,
    "currency": "XOF",
    "fee": 1,
    "message": "<p>Vous recevrez une demande sur le numéro de mobile <b>221700000000</b>. <br/> Entrez votre code PIN MTN Money pour autoriser votre paiement de <b>XOF 50000</b> vers le compte numéro <b>221700000000</b>. <br/><br/> Si vous ne recevez pas de demande dans les 30 secondes, suivez les instructions",
    "status": "success",
    "reference": "Mobile Data",
    "description": "",
    "type": "mobile_money",
    "customer": {
      "name": "claude",
      "email": "[email protected]",
      "phoneNumber": null
    },
    "metadata": {
      "phone": "221700000000",
      "operator": "MTN money"
    },
    "settlementDestination": "wallet"
  }
}
data = {
    "status": True,
    "message": "Charge trouvée",
    "data": {
        "id": 1293,
        "authorization": {
            "mode": None,
            "redirect": None
        },
        "auth_model": None,
        "amount": 50000,
        "amountReceived": 0,
        "currency": "XOF",
        "fee": 1,
        "message": "<p>Vous recevrez une demande sur le numéro de mobile <b>221700000000</b>. <br/> Entrez votre code PIN M-Pesa pour autoriser votre paiement de <b>XOF 50000</b> vers le compte numéro <b>221700000000</b>. <br/><br/> Si vous ne recevez pas de demande dans les 30 secondes, suivez les instructions",
        "status": "success",
        "reference": "Mobile Data",
        "description": "",
        "type": "mobile_money",
        "customer": {
            "name": "claude",
            "email": "[email protected]",
            "phoneNumber": None
        },
        "metadata": {
            "phone": "221700000000",
            "operator": "MTN money"
        },
        "settlementDestination": "wallet"
    }
}

# Vous pouvez maintenant utiliser le dictionnaire 'data' dans votre code Python
print(data["status"])
print(data["message"])
print(data["data"]["id"])
# Accédez à d'autres champs imbriqués au besoin

Configurer le webhook

En tant qu'étape facultative, vous pouvez configurer votre application pour recevoir des confirmations via des webhooks. Consultez la documentation sur les Webhooks pour plus d'informations. Après la configuration de votre webhook, nous vous enverrons une notification avec le statut de la transaction à l'URL que vous avez spécifiée lors de l'initiation du paiement.

Consultez notre guide pour apprendre comment sécuriser et valider les notifications de webhook de votre côté.

Voici un exemple de réponse de webhook :

{
  "event": "charge.successful",
  "data": {
    "id": 563,
    "authorization": {
      "mode": "NONE",
      "redirect": null
    },
    "auth_model": "NONE",
    "amount": 50000,
    "currency": "XOF",
    "fee": 319.39,
    "message": "Paiement mobile effectué avec succès",
    "status": "success",
    "reference": "8778hdd",
    "description": "",
    "type": "mobile_money",
    "customer": {
      "name": "Claude",
      "email": "[email protected]",
      "phoneNumber": "+2217743829322"
    },
    "settlementDestination": "wallet"
  }
}
data = {
    "status": True,
    "message": "Charge trouvée",
    "data": {
        "id": 1293,
        "authorization": {
            "mode": None,
            "redirect": None
        },
        "auth_model": None,
        "amount": 50000,
        "amountReceived": 0,
        "currency": "XOF",
        "fee": 1,
        "message": "<p>Vous recevrez une demande sur le numéro de mobile <b>221700000000</b>. <br/> Entrez votre code MTN Money pour autoriser votre paiement de <b>XOF 50000</b> vers le compte numéro <b>221700000000</b>. <br/><br/> Si vous ne recevez pas de demande dans les 30 secondes, suivez les instructions",
        "status": "success",
        "reference": "Mobile Data",
        "description": "",
        "type": "mobile_money",
        "customer": {
            "name": "claude",
            "email": "[email protected]",
            "phoneNumber": None
        },
        "metadata": {
            "phone": "221700000000",
            "operator": "MTN money"
        },
        "settlementDestination": "wallet"
    }
}

# Vous pouvez maintenant utiliser le dictionnaire 'data' dans votre code Python
print(data["status"])
print(data["message"])
print(data["data"]["id"])
# Accédez à d'autres champs imbriqués au besoin