System Payment Endpoints
The following endpoints are used for System Payment transactions:
Book Payment Endpoint:
{base-url}/payments/systemPayment
Confirm Payment Endpoint:
{base-url}/payments/confirmSystemPayment
Both endpoints use the POST method and require authenticated access.
System Book Payment Request
The System Book Payment request is used to validate service-specific details before executing the payment.
Key characteristics:
- Does not require recipient identification (toMemberPrincipal or toMemberId)
- Validates service availability and input parameters
- May return service-specific data such as packages or outstanding amounts
- Generates a Booking ID
- No wallet balance deduction occurs at this stage
The Booking ID generated during this step is mandatory for the Confirm Payment request.
Sample Request Example
{
"transferTypeId": "{{transferTypeId}}",
"amount": "{{amount}}",
"description": "test",
"currencyId": "1",
"webRequest": "true",
"traceNumber": "CELL-001", //**Use consistent transaction IDs like CELL-001 or PRV-001 per your company's standard. Trace Number must be unique.**//
"customValues": [
{
"internalName": "PAYMENTMETHOD",
"fieldId": 15,
"value": "Account"
},
{
"internalName": "SELECTBANK",
"fieldId": 35,
"value": "{{senderBankCode}}"
},
{
"internalName": "ACCOUNTNUMBER",
"fieldId": 14,
"value": "{{senderBankAccountNumber}}"
}
]
}
System Confirm Payment Request
The System Confirm Payment request is used to finalize the utility or service payment. The API consumer submits the Booking ID, user authorization details, and any required service-specific parameters.
Upon successful execution:
- Funds are debited from the sender’s wallet
- The amount is credited to the CellPay system account
- CellPay handles settlement with the respective service provider
- A final transaction status is returned
Sample Request Example
{
"transferTypeId": "{{transferTypeId}}",
"amount": "1",
"description": "test",
"currencyId": "1",
"webRequest": "true",
"traceNumber": "CELL-001", //Use consistent transaction IDs like CELL-001 or PRV-001 per your company's standard. Trace Number must be unique.
"bookingId": 1,
"transactionPin": "XXXXXX",
"customValues": [
{
"internalName": "PAYMENTMETHOD",
"fieldId": 15,
"value": "Account"
},
{
"internalName": "SELECTBANK",
"fieldId": 35,
"value": " {{senderBankCode}} "
},
{
"internalName": "ACCOUNTNUMBER",
"fieldId": 14,
"value": " {{senderBankAccountNumber}} "
}
]
}
Service Parameters
| Parameter Name | Parameter Type | Description |
|---|---|---|
| transferTypeId | Integer | Unique identifier for the payment type or service |
| amount | String | Amount to be paid (in NPR) |
| description | String | Payment description |
| currencyId | Integer | 1 = Account/Wallet, 2 = Loyalty |
| webRequest | Boolean | true for web-based requests, false for mobile |
| traceNumber | String | Unique transaction reference (e.g., CELL-001). Must be unique per request and per transaction |
| transactionPin | String | 8-digit PIN, same as user login PIN |
| bookingId | Integer | ID returned from Book Payment request; required for Confirm Payment |
| internalName | String | Input field name (e.g., PAYMENTMETHOD, SELECTBANK) |
| fieldId | Integer | System-defined ID for the custom field |
| value | String | Value provided by the user for the specific field |