Payment
POST https://business.novasend.app/v1/payin/sessions
Creates a secure payment intent session with no debit until the customer confirms the payment.
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 |
Resquest
| Field | Type | Description | Required |
|---|---|---|---|
| reference | string | Unique transaction identifier on the merchant side (UUID recommended). | ✅ |
| amount | number | Amount to be paid (in whole units, no decimals). | ✅ |
| msisdn | string | Payer’s phone number (E.164 format). | ✅ |
| customerName | string | Name of the customer initiating the payment. | |
| country | string | ISO country code (CI, CM). | ✅ |
| action.successUrl | url | Redirect URL after a successful action. | ✅ |
| action.failureUrl | url | Redirect URL after a failed action. | ✅ |
{
"reference": "uuid-merchant",
"amount": 300,
"msisdn": "{{phoneNumber}}",
"customerName": "John Doe",
"country": "CI",
"action": {
"successUrl": "{{Your Success URL}}",
"failureUrl": "{{Your failure URL}}"
}
}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"
},
"isDirect": false,
"payFee": false,
"createdAt": "2026-01-19T09:11:25.832Z",
"amount": 200,
"fee": 7,
"chargedAmount": 207,
"currency": "XOF",
"failure": null
}- Response Fields Description
| Field | Description |
|---|---|
| id | Unique identifier of the payment session. |
| type | Operation type — here payin for an incoming payment. |
| reference | Merchant-provided reference used to identify the payment. |
| status | Initial payment status (processing, processed, expired, etc.). |
| confirmationRequired | Indicates whether customer confirmation is required before the payment is executed. |
| confirmationStatus | Current customer confirmation state (none, pending, accepted, declined). |
| paymentUrl | Web/deep link allowing the customer to confirm the payment via his Novasend application. |
| isDirect | Indicates whether the payment was initiated via a direct flow. |
| payFee | Indicates whether transaction fees are covered by the merchant. |
| createdAt | Payment session creation timestamp. |
| amount | Gross payment amount. |
| fee | Service fees applied to the transaction. |
| chargedAmount | Total debited amount (amount + fees). |
| currency | Transaction currency (e.g. XOF, XAF). |
| failure | Error details if the payment failed (null if successful). |
-
customer
Field Description name Name of the customer. phoneNumber Customer phone number (international format).
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"
},
"isDirect": false,
"payFee": false,
"createdAt": "2026-01-19T09:11:25.832Z",
"amount": 200,
"fee": 7,
"chargedAmount": 207,
"currency": "XOF",
"failure": null
}