APIMobile Money
Paiement
Declencher un paiement direct cote serveur.
POST https://business.novasend.app/v1/direct/payinDéclencher une demande de paiement Mobile Money (push/STK/USSD) auprès des opérateurs pris en charge (WAVE, Orange Money, MTN MoMo, Moov, etc).
En-tête de la Requête
| Valeur | Description | Obligatoire |
|---|---|---|
| Authorization | Pour authentifier l'Api, Basic base64(api_key:api_client) | ✅ |
| X-Idempotency-Key | Cet en-tête garantit l'unicité de vos transactions. La valeur doit être un UUID | ✅ |
| Content-Type | application/json | |
| Accept-Language | Pour traduire les messages d'erreur, langues possibles: en, fr |
Requête
| Champ | Type | Description | Obligatoire |
|---|---|---|---|
| reference | string | Identifiant unique de la transaction. | ✅ |
| customerName | string | Nom du client effectuant le paiement. | |
| payin | object | Informations relatives au paiement entrant. | ✅ |
| payin.amount | number | Montant du paiement. | ✅ |
| payin.msisdn | string | Numéro de téléphone du client (format international). | ✅ |
| payin.provider | string | Opérateur de paiement (WAVE, ORANGE, MOMO, MOOV). | ✅ |
| payin.country | string | Code pays ISO (CI, CM). | ✅ |
| payin.otp | string | Code PIN pour Orange Money (Obtenu via #144*82#). | ✅ |
| action.successUrl | url | URL de redirection après une action réussie. | ✅ |
| action.failureUrl | url | URL de redirection après une action échouée. | ✅ |
{
"reference": "{{$randomUUID}}",
"customerName": "John Do",
"payin": {
"amount": 300,
"msisdn": "{{phone_number}}",
"provider": "ORANGE",
"country": "CI",
"otp": "1234"
},
"action": {
"successUrl": "{{Votre URL de success}}",
"failureUrl": "{{Votre URL de failure}}"
}
}Validation MTN & Moov
Pour les opérateurs MTN et Moov, si la demande de confirmation n'apparaît pas automatiquement sur le téléphone du client, celui-ci doit composer les codes suivants pour valider le paiement :
- MTN CI : Composer
*133#pour accéder au menu de validation.- Moov CI : Composer
*155#pour accéder au menu de validation.
Réponse
{
"id": "pr_bakvkozbmqcmte1d8izelffjlz",
"type": "payin",
"reference": "0f3fed58-0590-434e-8a00-5d6cd3560382",
"status": "processing",
"confirmationRequired": true,
"confirmationStatus": "none",
"paymentUrl": "https://business.novasend.app/link/QGRD4D",
"customer": {
"name": "Aziz",
"phoneNumber": "+225xxxxxxxxx"
},
"mobileMoney": {
"provider": {
"name": "WAVE_CI"
}
},
"isDirect": false,
"payFee": false,
"createdAt": "2026-01-19T09:11:25.832Z",
"amount": 200,
"fee": 7,
"chargedAmount": 207,
"currency": "XOF",
"failure": null
}Interprétation de la Réponse
| Champ | Description |
|---|---|
| id | Identifiant unique de la session de paiement. |
| type | Type d'opération — ici payin pour un paiement entrant. |
| reference | Référence fournie par le marchand pour identifier le paiement. |
| status | Statut initial du paiement (processing, processed, expired, etc.). |
| confirmationRequired | Indique si une confirmation du client est requise avant l'exécution du paiement. |
| confirmationStatus | État actuel de la confirmation client (none, pending, accepted, declined). |
| paymentUrl | Lien web/deep link permettant au client de confirmer le paiement via une interface mobile ou web. Pour un paiement Wave, ce champ contiendra l'URL de redirection vers Wave. |
| isDirect | Indique si le paiement a été initié via un flux direct. |
| payFee | Indique si les frais de transaction sont pris en charge par le marchand. |
| createdAt | Date et heure de création de la session de paiement. |
| amount | Montant brut du paiement. |
| fee | Frais de service appliqués à la transaction. |
| chargedAmount | Montant total débité (montant + frais). |
| currency | Devise utilisée (ex. XOF, XAF). |
| failure | Détails de l'erreur en cas d'échec du paiement (null en cas de succès). |
customer
| Champ | Description |
|---|---|
| name | Nom du client. |
| phoneNumber | Numéro de téléphone du client (format international). |
mobileMoney
| Champ | Description |
|---|---|
| provider | Objet contenant les informations de l'opérateur Mobile Money. |
| provider.name | Identifiant de l'opérateur Mobile Money (ex. WAVE_CI). |
Statut du paiement
GET https://business.novasend.app/v1/payin/{reference}Cet endpoint permet de consulter à tout moment l'état d'un paiement.
Réponse
{
"id": "pr_bakvkozbmqcmte1d8izelffjlz",
"type": "payin",
"reference": "0f3fed58-0590-434e-8a00-5d6cd3560382",
"status": "processing",
"confirmationRequired": true,
"confirmationStatus": "none",
"paymentUrl": "https://business.novasend.app/link/QGRD4D",
"customer": {
"name": "Aziz",
"phoneNumber": "+225xxxxxxxxx"
},
"mobileMoney": {
"provider": {
"name": "WAVE_CI"
}
},
"isDirect": false,
"payFee": false,
"createdAt": "2026-01-19T09:11:25.832Z",
"amount": 200,
"fee": 7,
"chargedAmount": 207,
"currency": "XOF",
"failure": null
}