NepalPay QR
The NepalPay QR API facilitates QR-based payments via Nepal Clearing House Limited’s (NCHL) NepalPay QR standard. It enables CellPay users to make secure QR payments to merchants and service providers part of the interoperable national QR ecosystem.
Parse NepalPay QR
Endpoint:
{base-url}/payments/externalQr/validateAndParse
Method: POST
Request Headers:
The following HTTP headers are required when calling the API:
Content-Type: application/json
Cellpay-Access-Token: {{accessToken}}
Parse QR – Request Example
{
"qrMessage": "00020101021229280024NCHL000000002506185920ZM52040000530352454021056042.005802NP5922Samajik Surakchha Kosh6003KTM6232011120250618-010713SSF-101-APP-364060002en6304131F"
}
Parse QR – Successful Response (Sample)
{
"status": true,
"sessionExpired": false,
"payload": {
"data": {
"responseCode": "000",
"responseMessage": "SUCCESS",
"validationTraceId": "2506220000284929YRB",
"instructionId": "CEL69043250622113954",
"qrType": "DYNAMIC",
"acquirerId": "00000000",
"countryCode": "NP",
"merchantPan": "kntbGGuDrqcmz41AWM/baQTSrch3PQb48OFQJxfhQwSik9sK8giNiYy1LajQ45YZ3s4/RGCDfSNsn9KFG1alO1WlMw1eza/14LXR3/E4afsVESFRusOnj8IkdHk3FnlHIz65rJqHjxc08sSaDRmWKQpVjg7/Fe66sSz+2DEET9A=",
"merchantCategoryCode": 0,
"transactionAmount": "500",
"transactionFee": 2.00,
"transactionCurrency": "NPR",
"merchantName": "Samajik Surakchha Kosh",
"merchantCity": "KTM",
"merchantCountryCode": "NP",
"merchantBillNo": "cellcom02",
"merchantTxnRef": "QR Payment",
"terminal": "SSF-101-APP-3",
"encKeySerial": "592886824955520617546386",
"network": "NEPALPAY-29",
"token": "vn6MFoobe7xr0qF0PHKzJhAg0KRAkcyJbKR4R3vAxk2DovAYIJLg1jEdLr2jt9Lw/OXDVGrSoCXkO43mrWf/DjvxkbnvkDcF7t606uqbnhyDESZK74IvrgRnpWWxJYLLIzZUQmUB8kfFO5tLIJs0k1Ry9N1d1U2UVEb3Hg2p+XU=",
"tokenString": "2506220000284929YRB,CEL69043250622113954,00000000,kntbGGuDrqcmz41AWM/baQTSrch3PQb48OFQJxfhQwSik9sK8giNiYy1LajQ45YZ3s4/RGCDfSNsn9KFG1alO1WlMw1eza/14LXR3/E4afsVESFRusOnj8IkdHk3FnlHIz65rJqHjxc08sSaDRmWKQpVjg7/Fe66sSz+2DEET9A=,0000,500,2.00,NPR,Samajik Surakchha Kosh,cellcom02,SSF-101-APP-3,000",
"qrId": "260"
},
"type": "NepalPayQR"
}
}
Book Payment
Endpoint:
{base-url}/payments/systemPayment
Method: POST
Request Headers:
The following HTTP headers are required when calling the API:
Content-Type: application/json
Cellpay-Access-Token: {{accessToken}}
Book Payment – Request Example
{
"transferTypeId": "{transferTypeId}",
"amount": "10",
"description": null,
"currencyId": "1",
"webRequest": true,
"customValues": [
{
"fieldId": "206",
"internalName": "QR_ID",
"value": "260"
},
{
"fieldId": "213",
"internalName": "SENDER_NUMBER",
"value": "{{SENDER_NUMBER}}"
},
{
"fieldId": "15",
"internalName": "PAYMENTMETHOD",
"value": "Mobile Wallet"
}
],
"isOtpEnable": null,
"otp": null
}
Book Payment – Successful Response (Sample)
{
"status": true,
"sessionExpired": false,
"payload": {
"DoPaymentResult": {
"wouldRequireAuthorization": false,
"from": {
"id": 69043,
"name": "test user",
"username": "75453",
"mobileNo": "9860606060",
"premiumMember": false
},
"finalAmount": 10.00,
"formattedFinalAmount": "Rs. 10.00",
"fees": [
{
"name": "Fees",
"amount": 2.00,
"formattedAmount": "RS 2.00",
"description": "Transaction Fee"
}
],
"transferType": {
"id": 504,
"name": "Wallet Nepal Pay QR",
"title": "Wallet Nepal Pay QR",
"from": {
"id": 14,
"name": "Mobile Wallet",
"currency": {
"id": 1,
"symbol": "रु",
"name": "Nepalese Rupee"
}
},
"to": {
"id": 6,
"name": "Cellcom Float Account",
"currency": {
"id": 1,
"symbol": "रु",
"name": "Nepalese Rupee"
}
}
},
"customValues": [
{
"internalName": "QR_ID",
"fieldId": 206,
"value": "260"
},
{
"internalName": "SENDER_NUMBER",
"fieldId": 213,
"value": "{{SENDER_NUMBER}}"
},
{
"internalName": "PAYMENTMETHOD",
"fieldId": 15,
"value": "Mobile Wallet"
}
],
"isOtpEnable": false,
"showConsolidateAmount": false,
"bookingId": 356
}
}
}
Confirm Payment
Endpoint:
{base-url}/payments/confirmSystemPayment
Method: POST
Request Headers:
The following headers are required when calling the API:
Content-Type: application/json
Cellpay-Access-Token: {{accessToken}}
Confirm Payment – Request Example
{
"transferTypeId": "{transferTypeId}",
"amount": "500",
"description": null,
"currencyId": "1",
"webRequest": true,
"transactionPin": "12345678",
"traceNumber": "CEL-123456",
"customValues": [
{
"fieldId": "206",
"internalName": "QR_ID",
"value": "261"
},
{
"fieldId": "213",
"internalName": "SENDER_NUMBER",
"value": "{{SENDER_NUMBER}}"
},
{
"fieldId": "15",
"internalName": "PAYMENTMETHOD",
"value": "Mobile Wallet"
}
],
"isOtpEnable": null,
"otp": null,
"bookingId": 356
}
Confirm Payment – Successful Response (Sample)
{
"status": true,
"sessionExpired": false,
"payload": {
"ConfirmPaymentResult": {
"id": 171019,
"traceNumber": "CELL-123456", //Use consistent transaction IDs like CELL-001 or PRV-001 per your company's standard. Trace Number must be unique.
"pending": false
}
}
}
Service Parameters
| Parameter Name | Type | Required | Description |
|---|---|---|---|
transferTypeId | Integer | Yes | Unique identifier that represents the service or transfer type for the bill payment. |
amount | String | Yes | Amount to be paid for the bill. |
description | String | Yes | Description or purpose of the payment. |
currencyId | Integer | Yes | Defines the payment method used for the transaction. Use 1 for Account/Wallet payments and 2 for Loyalty payments. |