Api Direct
Payment

Payment

 
        POST https://business.novasend.app/v1/direct/payin
 

Initiates a Mobile Money payment request (push / STK / USSD) with supported operators (WAVE, Orange Money, MTN MoMo, Moov, etc.).

Request Headers

HeaderDescriptionRequired
AuthorizationUsed to authenticate the API, Basic base64(api_key:api_client)
X-Idempotency-KeyEnsures transaction uniqueness. The value must be a UUID
Content-Typeapplication/json
Accept-LanguageLanguage used for error messages. Supported values: en, fr

Resquest

FieldTypeDescriptionRequired
referencestringUnique transaction identifier.
customerNamestringName of the customer making the payment.
payinobjectInformation related to the incoming payment.
payin.amountnumberPayment amount.
payin.msisdnstringCustomer phone number (international format).
payin.providerstringPayment provider (WAVE, ORANGE, MOMO, MOOV).
payin.countrystringISO country code (CI, CM).
payin.otpstringOTP code for Orange Money (obtained via #144*82#).
action.successUrlurlRedirect URL after a successful action.
action.failureUrlurlRedirect URL after a failed action.

 {
   "reference": "{{$randomUUID}}",
   "customerName": "John Do",
   "payin": {
     "amount": 300,
     "msisdn": "{{phone_number}}",
     "provider": "ORANGE",
     "country": "CI",
     "otp": "1234" // Required for Orange Money (obtained via #144*82#)
   },
   "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 Description

    FieldDescription
    idUnique identifier of the payment session sent by novasend.
    typeOperation type (payin).
    referenceMerchant-provided reference identifying the payment.
    statusCurrent payment status (processing, processed, expired, etc.).
    confirmationRequiredIndicates whether customer confirmation is required before the payment is executed.
    confirmationStatusCurrent confirmation state (none, pending, accepted, declined).
    paymentUrlWeb/deep link allowing the customer to confirm the payment. For a Wave payment, this field will contain the redirect URL to Wave.
    isDirectIndicates whether the payment was initiated as a direct flow.
    payFeeIndicates whether fees are paid by the merchant.
    createdAtPayment session creation timestamp.
    amountInitial payment amount.
    feeService fees applied to the payment.
    chargedAmountTotal debited amount (amount + fees).
    currencyTransaction currency (XOF, USD, etc.).
    failureError details if the payment failed (null if successful).

    • customer

      ChampDescription
      nameName of the customer.
      phoneNumberCustomer phone number (international format).

    • mobileMoney

      FieldDescription
      providerObject containing Mobile Money provider information.
      provider.nameMobile 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
}