Skip to main content

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": "{{qrId}}"
},
{
"fieldId": "15",
"internalName": "PAYMENTMETHOD",
"value": "Account"
},
{
"fieldId": "35",
"internalName": "SELECTBANK",
"value": "{{senderBankCode}}"
},
{
"fieldId": "14",
"internalName": "ACCOUNTNUMBER",
"value": "{{senderBankAccountNumber}}"
},
{
"internalName": "SENDER_NUMBER",
"fieldId": 213,
"value": "{{SENDER_NUMBER}}"
}
],
"isOtpEnable": false,
"otp": null,
"transactionPin": null,
"toMemberPrincipal": "{{toMemberPrincipal}}"
}

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": 5,
"name": "Transaction Account",
"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": "{{qrId}}"
},
{
"internalName": "PAYMENTMETHOD",
"fieldId": 15,
"value": "Account"
},
{
"fieldId": "35",
"internalName": "SELECTBANK",
"value": "{{senderBankCode}}"
},
{
"fieldId": "14",
"internalName": "ACCOUNTNUMBER",
"value": "{{senderBankAccountNumber}}"
}, ,
{
"internalName": "SENDER_NUMBER",
"fieldId": 213,
"value": "{{SENDER_NUMBER}}"
}
],
"isOtpEnable": false,
"showConsolidateAmount": false,
"bookingId": 298
}
}
}

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": "{{qrId}}"
},
{
"internalName": "SENDER_NUMBER",
"fieldId": 213,
"value": "{{SENDER_NUMBER}}"
},
{
"fieldId": "15",
"internalName": "PAYMENTMETHOD",
"value": "Account"
},
{
"fieldId": "35",
"internalName": "SELECTBANK",
"value": "{{senderBankCode}}"
},
{
"fieldId": "14",
"internalName": "ACCOUNTNUMBER",
"value": "{{senderBankAccountNumber}}"
}
],
"isOtpEnable": false,
"otp": "",
"transactionPin": "985875",
"toMemberPrincipal": "{{toMemberPrincipal}}",
"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 NameTypeRequiredDescription
transferTypeIdIntegerYesUnique identifier representing the service or transfer type for the bill payment.
amountStringYesAmount to be paid for the bill.
descriptionStringYesBrief description of the bill payment or transaction purpose.
currencyIdIntegerYesIndicates the payment source used for the transaction. Use 1 for Account/Wallet payments and 2 for Loyalty-based payments.