APIMobile Money
Payment
Trigger a direct payment from your backend.
POST https://business.novasend.app/v1/direct/payinInitiates a Mobile Money payment request (push / STK / USSD) with supported operators (WAVE, Orange Money, MTN MoMo, Moov, etc.).
Request Headers
| Header | Description | Required |
|---|---|---|
| Authorization | Used to authenticate the API, Basic base64(api_key:api_client) | ✅ |
| X-Idempotency-Key | Ensures transaction uniqueness. The value must be a UUID | ✅ |
| Content-Type | application/json | |
| Accept-Language | Language used for error messages. Supported values: en, fr |
Request
| Field | Type | Description | Required |
|---|---|---|---|
| reference | string | Unique transaction identifier. | ✅ |
| customerName | string | Name of the customer making the payment. | |
| payin | object | Information related to the incoming payment. | ✅ |
| payin.amount | number | Payment amount. | ✅ |
| payin.msisdn | string | Customer phone number (international format). | ✅ |
| payin.provider | string | Payment provider (WAVE, ORANGE, MOMO, MOOV). | ✅ |
| payin.country | string | ISO country code (CI, CM). | ✅ |
| payin.otp | string | OTP code for Orange Money (obtained via #144*82#). | ✅ |
| action.successUrl | url | Redirect URL after a successful action. | ✅ |
| action.failureUrl | url | Redirect URL after a failed action. | ✅ |
{
"reference": "{{$randomUUID}}",
"customerName": "John Do",
"payin": {
"amount": 300,
"msisdn": "{{phone_number}}",
"provider": "ORANGE",
"country": "CI",
"otp": "1234"
},
"action": {
"successUrl": "{{Your Success URL}}",
"failureUrl": "{{Your Failure URL}}"
}
}MTN & Moov Validation
For MTN and Moov operators, if the push confirmation notification does not automatically appear on the customer's phone, they must dial the following codes to validate the payment:
- MTN CI: Dial
*133#to access the validation menu.- Moov CI: Dial
*155#to access the validation menu.
Response
{
"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
}Response Fields
| Field | Description |
|---|---|
| id | Unique identifier of the payment session sent by novasend. |
| type | Operation type (payin). |
| reference | Merchant-provided reference identifying the payment. |
| status | Current payment status (processing, processed, expired, etc.). |
| confirmationRequired | Indicates whether customer confirmation is required before the payment is executed. |
| confirmationStatus | Current confirmation state (none, pending, accepted, declined). |
| paymentUrl | Web/deep link allowing the customer to confirm the payment. For a Wave payment, this field will contain the redirect URL to Wave. |
| isDirect | Indicates whether the payment was initiated as a direct flow. |
| payFee | Indicates whether fees are paid by the merchant. |
| createdAt | Payment session creation timestamp. |
| amount | Initial payment amount. |
| fee | Service fees applied to the payment. |
| chargedAmount | Total debited amount (amount + fees). |
| currency | Transaction currency (XOF, USD, etc.). |
| failure | Error details if the payment failed (null if successful). |
customer
| Field | Description |
|---|---|
| name | Name of the customer. |
| phoneNumber | Customer phone number (international format). |
mobileMoney
| Field | Description |
|---|---|
| provider | Object containing Mobile Money provider information. |
| provider.name | Mobile Money provider identifier (e.g. WAVE_CI). |
Payment Status
GET https://business.novasend.app/v1/payin/{reference}This endpoint allows you to retrieve the current status of a payment at any time.
Response
{
"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
}