FonePay QR
The Fonepay QR API allows CellPay users to scan and pay at any merchant who accepts Fonepay QR. This API ensures interoperability across thousands of merchants in Nepal by leveraging Fonepay's wide network.
Parse FonePay 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": "{{qrMessage}}"
}
Parse QR – Successful Response (Sample)
{
"status": true,
"sessionExpired": false,
"payload": {
"data": {
"payloadFromatIndicator": "{{payloadFormatIndicator",
"pointOfInitiationMethod": "{{pointOfInitiationMethod}}",
"fonepayMerchantAccountInformation": {
"globallyUniqueIdentifier": "{{globallyUniqueIdentifier}}",
"merchantPan": "{{merchantPan}}",
"acquirerBin": "{{acquirerBin}}"
},
"merchantCategoryCode": "{{merchantCategoryCode}}",
"transactionCurrency": "{{transactionCurrency}}",
"transactionAmount": "{{transactionAmount}}",
"countryCode": "{{countryCode}}",
"merchantName": "{{merchantName}}",
"merchantCity": "{{merchantCity}}",
"additionalDataFieldTemplate": {
"mobileNumber": "{{mobileNumber}}",
"terminalLabel": "{{terminalLabel}}",
"purposeOfTransaction": "{{purposeOfTransaction}}",
"billNumber": "{{billNumber}}"
},
"cyclicRedundancyCheck": "{{cyclicRedundancyCheck}}",
"serverResponse": {
"message": "{{message}}",
"success": {{success}}
},
"qrId": "260"
},
"type": "FONEPAY_MERCHATN_QR"
}
}
Book Payment
Endpoint:
{base-url}/payments/memberPayment
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": "1",
"description": "CELLPAY TEST.",
"currencyId": "1",
"webRequest": true,
"customValues": [
{
"fieldId": "206",
"internalName": "QR_ID",
"value": "474872"
},
{
"fieldId": "15",
"internalName": "PAYMENTMETHOD",
"value": "Mobile Wallet"
},
{
"internalName": "SENDER_NUMBER",
"fieldId": 213,
"value": "{{SENDER_NUMBER}}"
}
],
"isOtpEnable": false,
"otp": null,
"transactionPin": null,
"toMemberPrincipal": null,
"toMemberId": "{MemberId}"
}
Book Payment – Successful Response (Sample)
{
"status": true,
"sessionExpired": false,
"payload": {
"DoPaymentResult": {
"wouldRequireAuthorization": false,
"from": {
"id": {{fromMemberId}},
"name": "{{fromMemberName}}",
"username": "{{fromMemberUsername}}",
"mobileNo": "{{fromMemberPrincipal}}",
"premiumMember": false
},
"to": {
"id": {{toMemberId}},
"name": "{{toMemberName}}",
"username": "{{toMemberUsername}}",
"mobileNo": "{{toMemberPrincipal}}",
"premiumMember": false
},
"finalAmount": 1.0,
"formattedFinalAmount": "NPR 1.00",
"transferType": {
"id": {{transferTypeId}},
"name": "{{transferTypeName}}",
"title": "{{transferTypeTitle}}",
"from": {
"id": 14,
"name": "Mobile Wallet",
"currency": {
"id": 1,
"symbol": "रु",
"name": "Nepalese Rupee"
}
},
"to": {
"id": 5,
"name": "Transaction Account",
"currency": {
"id": 1,
"symbol": "रु",
"name": "Nepalese Rupee"
}
}
},
"customValues": [
{
"internalName": "QR_ID",
"fieldId": 206,
"value": "474872"
},
{
"internalName": "PAYMENTMETHOD",
"fieldId": 15,
"value": "Mobile Wallet"
},
{
"internalName": "SENDER_NUMBER",
"fieldId": 213,
"value": "{{SENDER_NUMBER}}"
}
],
"isOtpEnable": false,
"showConsolidateAmount": false,
"bookingId": "{{bookingId}}"
}
}
}
Confirm Payment
Endpoint:
{base-url}/payments/confirmMemberPayment
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": "1",
"traceNumber": "CEL-123456", //Use consistent transaction IDs like CELL-001 or PRV-001 per your company's standard. Trace Number must be unique.
"description": "CELLPAY TEST.",
"currencyId": "1",
"webRequest": true,
"customValues": [
{
"fieldId": "206",
"internalName": "QR_ID",
"value": "474872"
},
{
"fieldId": "15",
"internalName": "PAYMENTMETHOD",
"value": "Mobile Wallet"
},
{
"internalName": "SENDER_NUMBER",
"fieldId": 213,
"value": "{{SENDER_NUMBER}}"
}
],
"isOtpEnable": false,
"otp": "",
"transactionPin": "985875",
"toMemberPrincipal": null,
"toMemberId": "{MemberId}",
"bookingId": 298
}
Confirm Payment – Successful Response (Sample)
{
"status": true,
"sessionExpired": false,
"payload": {
"ConfirmPaymentResult": {
"id": 7203082,
"pending": false,
"traceNumber": "CEL-123456", //Use consistent transaction IDs like CELL-001 or PRV-001 per your company's standard. Trace Number must be unique.
}
}
}
Service Parameters
| Parameter Name | Type | Required | Description |
|---|---|---|---|
transferTypeId | Integer | Yes | Unique identifier representing the service or transfer type for the bill payment. |
amount | String | Yes | Amount to be paid for the bill. |
description | String | Yes | Brief description of the bill payment or transaction purpose. |
currencyId | Integer | Yes | Indicates the payment source used for the transaction. Use 1 for Account/Wallet payments and 2 for Loyalty-based payments. |