4. Integration | NCHL API Documentation
Skip to main content

4. Integration

4.1.Integration Overview​

NPI Billers UI offers three landing pages: All Billers, Biller Group, and Biller Form. The choice of which landing page to use depends on the specific requirements of the third-party application.

Base_url: https://uat.connectips.com/billers

4.2. Landing pages:​

4.2.1. All billers:​

This landing page displays all the biller icons enabled for the third-party.

URL: {base_url}/billers?landing_page=”biller-all”

4.2.2. Biller group:​

This landing page displays all the biller icons enabled for the group.

URL: {base_url}/billers?landing_page=”biller-group”&biller_group=Internet

4.2.3. Biller form:​

This landing page displays biller form.

URL: {base_url}/billers? landing_page=”biller-form”&biller_code=24

4.3. Query parameters:​

ParameterMandatoryDefaultDescription
participant_codeYesThe third-party participant code.
landing_pageYesSpecifies the desired landing page. Available options: 'biller-all', 'biller_group', and 'biller_form'.
biller_groupRequired if landing_page='biller-group'Sets the biller group for the selected landing page.
biller_codeRequired if landing_page='biller-form'Sets the respective biller code to display its form.
tokenYes See token generation
channelYesDefines the app platform: use 'mob' for mobile apps and 'web' for web apps.
langNoenLanguage for NPI Billers. Currently supports English ('en') and Nepali ('ne').
display_modeNolightSets the display mode, either 'light' or 'dark'.
osRequired if channel='mob'Specifies the mobile OS: use 'android' for Android and 'ios' for iOS.
session_idYesFormat: <participant_code>_<uuid>. A unique id used to identify the NPI Billers session.
display_errorNotoastDefines the error message display UI. Options: 'toast', 'embedded', or 'host_app'.
web_typeOptional, set if channel='web'iframeDefines the integration type for web apps. Set “iframe” for iframe integration.

4.4.Token generation:​

The JWT payload must be provided as a valid JSON object. The payload should contain the following parameters:

{
"participant_code": "himalayan",
"session_id": "himalayan_4e20a191-753d-4efa-90bf-f4f538d8a4ba",
"channel": "web",
"txn_type": "RT",
"bank_id": "0401"
}

Parameter Details:

ParameterDescriptionPresence
participant_codeUnique identifier of the participant.Y
session_idUnique session identifier generated by the participant.Y
channelChannel through which the transaction is initiated.Y
txn_typeSpecifies the transaction type: RT (Real-Time) or NRT (Non-Real-Time). The participant determines the type based on urgency, regardless of transaction amount. NRT supports both high-value payments exceeding NPR 20 lakhs and lower-value payments. This parameter is optional; if omitted, it defaults to RT.O
bank_idSpecifies the debtor bank code of the participant initiating the NRT transaction through the Biller Gateway. This parameter is applicable only to NRT transactions and is used when the participant explicitly specifies the debtor bank.O

Validation and Processing Rules:

The values of participant_code, session_id, and channel specified in the JWT payload must match the corresponding query parameters provided in the request. The txn_type must be either RT, representing a Real-Time transaction, or NRT, representing a Non-Real-Time transaction. NRT should be passed if the participant is specifically trying to make a large value payment exceeding the NRB specified real time payment threshold limit of NPR 20 lakhs. The bank_id is a conditional parameter and should be provided by the participant only if it is trying to initiate an NRT transaction. The bank_id used while lodging the payment must remain the same for the corresponding Confirm Bill/Payment request. The JWT must be signed using JWS and subsequently encrypted using JWE before being transmitted. The JWT generation, signing, and encryption process must follow the steps and specifications defined in the subsequent sections of this document.

Flow Diagram: Example Image class=&quot;image&quot;

4.5.Error Codes:​

Error CodeDescription
600Session expired.
601Session already created. Please create new session_id.
700Missing query param ‘token’.
701Missing query param ‘channel’.
704Missing query param ‘os’.
705Missing query param ‘session_id’.
706Missing query param ‘participant_code’.
707Missing query param ‘landing_page’.
708Missing query param ‘biller_group’.
709Missing query param ‘biller_code’.
800‘token’ validation failed.
801Invalid query param ‘channel’.
802Invalid query param ‘language’.
803Invalid query param ‘display_mode’.
804Invalid query param ‘os’.
805Invalid “session_id”. “session_id” must be in <participant_code>_<uuid> format.
806‘participant_code’ validation failed.
807Invalid query param ‘landing_page’.
808‘biller_group’ validation failed.
809‘biller_code’ validation failed.
900“participant_code” mismatch between query param “participant_code” and “token” payload.
901“session_id” mismatch between query param “session_id” and “token” payload.
902“channel” mismatch between query param “channel” and “token” payload.
100Exception occurred on our end. Please contact us.

4.6. NPI Billers Messages:​

NPI Billers interacts with the host application by sending messages at various stages of the bill payment process. These messages include information such as errors, form payloads, and other relevant updates to facilitate smooth communication.

4.6.1. NPI Billers Message Format​

All messages are sent in following format.

{
"session_id": "himalayan_4e20a191-753d-4efa-90bf-f4f538d8a4ba",
"type": "submit_form_payload",
"data": “xxxxx”
}

session_id: String session_id value sent by the host application during the NPI Billers initialization.

type: String

Message type. See message types

data: String | Object | null

Actual payload for the message. Data type can be different as type.

4.6.2. NPI Billers Message Types:​

Message TypeDataDescription
submit_form_payloaddata field contains npiObjectThis message is triggered once the user confirms the transaction. The host app should then proceed to authorize the transaction using either a transaction PIN or biometric verification. Upon successful authorization, the app backend should invoke the NPI to post the payment.
session_expirenullThis message is triggered when NPI Billers session is expired. The host app should handle reinitialization of NPI Billers by creating and passing a new session_id. It depends on the third-party requirements.
errortype:error message: “”This message is triggered when NPI Billers throws an error and display_error=”host_app”. The host app should display the error received.

4.6.3. NPI object (npiObject):​

NpiObject is signed (JWS) then encrypted (JWE). Please follow the steps mentioned here for decryption and signature verification.

Sample Request (Real time):

{
"cipsBatchDetail": {
"id": 2576,
"batchId": "bilbatch-2576",
"recDate": null,
"batchAmount": 100,
"batchCount": 1,
"batchChargeAmount": null,
"batchCrncy": "NPR",
"categoryPurpose": "ECPG",
"debtorAgent": "",
"debtorBranch": "",
"debtorName": "",
"debtorAccount": "",
"debtorAddress": null,
"debtorMobile": null,
"debtorEmail": null,
"channelId": null,
"rcreTime": null,
"rcreUserId": null,
"corporateId": null,
"initBranchId": null,
"debitAcid": "",
"batchFreeText1": "",
"batchFreeText2": "",
"batchFreeText3": "",
"batchFreeText4": ""
},
"cipsTransactionDetail": {
"id": 92,
"batchId": 0,
"recDate": "2025-01-09T06:40:17.230+00:00",
"amount": 100,
"chargeAmount": 0,
"chargeLiability": "CG",
"appTxnId": "12729664",
"merchantId": 120,
"appId": "NIMB-NTC-APP-1",
"appGroup": null,
"instructionId": "RT-2571",
"endToEndId": "98*******6",
"creditorAddress": null,
"creditorMobile": null,
"creditorEmail": null,
"creditorIdType": "",
"creditorIdValue": "",
"refId": "98*******6",
"remarks": "Nepal Telecom - PrePaid",
"particulars": "",
"addenda1": null,
"addenda2": null,
"addenda3": "",
"addenda4": "",
"freeCode1": "",
"freeCode2": "",
"freeText1": "",
"freeText2": "",
"freeText3": "",
"freeText4": "",
"freeText5": "",
"freeText6": "",
"freeText7": "",
"freeNum1": null,
"freeNum2": null,
"freeNum3": null,
"freeNum4": null,
"txnResponse": null,
"beneficiaryId": "",
"beneficiaryName": "",
"mode": 1,
"favTxnFlg": null,
"rcreUserId": "BILLER@999",
"rcreTime": "2025-01-09",
"orignBranchId": null,
"creditAcid": null,
"token": null,
"accountValidationMsg": null,
"freeString": null,
"debitBankLogo": null,
"creditBankLogo": null,
"system": null,
"responseResult": null,
"data": null,
"status": null,
"billValidatonTraceId": null
},
"fieldLabelMapping": [
{
"fieldName": "amount",
"fieldLabel": "Transaction Amount",
"mapField": "amount"
},
{
"fieldName": "refId",
"fieldLabel": "Mobile Number",
"mapField": "refId"
}
]
}

Sample Request (Non-real time):

{
"nchlIpsTransactionDetail": {
"id": 6418,
"batchId": 128,
"recDate": 1790309176854,
"instructionId": "NRT-128",
"endToEndId": "98*******6",
"amount": 100,
"chargeAmount": 0,
"chargeLiability": "MN",
"purpose": null,
"creditorAgent": null,
"creditorBranch": null,
"creditorName": null,
"creditorAccount": null,
"creditorIdType": "",
"creditorIdValue": "",
"creditorAddress": null,
"creditorPhone": null,
"creditorMobile": null,
"creditorEmail": null,
"addenda1": null,
"addenda2": null,
"addenda3": "",
"addenda4": "",
"freeCode1": "NTC-TOPUP",
"freeCode2": "",
"freeText1": "",
"freeText2": "",
"freeText3": "",
"freeText4": "Active",
"freeText6": "",
"freeText7": "",
"rcreUserId": "BILLER@999",
"rcreTime": 1790309176854,
"refId": "98*******6",
"remarks": "",
"particulars": "MA***** *****AR",
"merchantId": 1544,
"appId": "MER-1544-APP-1",
"appTxnId": null,
"beneficiaryId": "",
"beneficiaryName": "New NTC Topup",
"appGroup": "1756",
"mode": 1
},
"nchlIpsBatchDetail": {
"id": 128,
"batchId": "NPIBG-128",
"recDate": 1790309176000,
"channelId": null,
"fileName": null,
"batchAmount": 100,
"batchCount": 1,
"batchChargeAmount": 0,
"batchCrncy": "NPR",
"categoryPurpose": "CUST", -------- Send the category purpose obtained from npiObject into confirmbillerpay.do payload.
"debtorAgent": "",
"debtorBranch": "",
"debtorName": "",
"debtorAccount": "",
"debtorIdType": null,
"debtorIdValue": null,
"debtorAddress": null,
"debtorPhone": null,
"debtorMobile": null,
"debtorEmail": null,
"rcreUserId": "BILLER@999",
"rcreTime": 1790309176596,
"tranType": "NRT"
},
"token": null,
"fieldLabelMapping": [
{
"fieldName": "amount",
"fieldLabel": "Transaction Amount",
"mapField": "amount",
"fieldValue": "100.0",
"fieldLabelNp": ""
},
{
"fieldName": "refId",
"fieldLabel": "Mobile Number",
"mapField": "refId",
"fieldValue": "98*******6",
"fieldLabelNp": "कारोबार रकम"
}
],
"paymentInfo": {
"creditor": {
"creditorName": "New NTC Topup",
"creditorNameNp": null,
"identifier": "MER-1544-APP-1",
"billerGroup": "MobilePhone",
"iconUrl": "https://www.connectips.com/cdn/CIPS/Retail/creditors/new/ntcprepaid.png",
"appUrl": "&biller_code=1756&landing_page=biller-form"
},
"transaction": {
"paymentAttribute": "NPBILL2501-6418"
}
}
}

4.7.Payment Confirm Posting:​

After successful user authorization for the transaction, the third-party app backend posts the payment using the applicable confirm bill api. The third-party app backend will receive the partial request payload which is NPI Object from NPI Billers. The third-party app backend creates new request payload by combining NPI Object, debit information, and token. The third party app need to send the category purpose received on lodging the payment ;it must remain the same for the corresponding Confirm Bill/Payment request.

The Category Purpose received on the NPI Object during the Lodge Payment request must be retained and sent unchanged in the corresponding Confirm Bill/Payment request. The third-party application must ensure that the Category Purpose value remains consistent throughout the Lodge and Confirm payment processes.

Base URL: Please reach out to NCHL team for the NPI API base URL

Post URL (real time): /api/npibiller/confirmbillerpay.do

Post URL (non-real time): /api/npibiller/ips/confirmbillerpay.do

4.7.1. Payment Confirm Request:​

The third-party application backend shall create the payment confirmation request payload by combining the NPI Object, the required debit information, and the generated token.

Real-Time Payment:

{
"cipsBatchDetail": {},
"cipsTransactionDetail": {},
"token":"xxxxxxxxxxxxxxxxxx”
}

Non-Real Time Payment:

{
"nchlIpsTransactionDetail": {},
"nchlIpsBatchDetail": {},
"token":"xxxxxxxxxxxxxxxxxx”
}

The final payment confirmation request shall be prepared using the following steps:

1) Copy cipsTransactionDetail / nchlIpsTransactionDetail from the NPI Object into the corresponding field of the payment confirmation request.

2) Copy cipsBatchDetail / nchlIpsBatchDetail from the NPI Object into the corresponding field and populate the required debit information.

3) Generate the token according to the token generation steps.

4) Ensure that category purpose obtained in npiObject during lodgebill (validation) is passed in the payload of confirmbillerpay.do in case of NRT transactions.

5) Create the final payment confirmation request using the applicable Real-Time or Non-Real-Time request format described above.

Batch Details:

#Field NameData TypeLengthPresenceDescription
1batchIdString20YUnique Identification for the batch for later reconciliation.
2batchAmountBigDecimal14,2YThe total sum of amount of all the transactions in the batch.
3batchCountInteger-YTotal transactions in the batch.
4batchChargeAmountBigDecimal(12,2)YTotal charge to be paid for the transaction
5batchCrncyString3YCurrency of the transaction. E.g. NPR
6categoryPurposeString4YPurpose of the transaction. E.g. RTPS, ECPG
7debtorAgentString4YFinancial institution where the transactions initiating party account is held.
8debtorBranchString4YFinancial institution branch where the transactions initiating party account is held.
9debtorNameString140YTransaction initiation party account name.
10debtorAccountString20YTransaction initiation party account number.
11debtorIdTypeString4OTransaction initiation party private ID type (e.g., Citizenship, PAN No., Passport, etc.).
12debtorIdValueString20OTransactions initiation party identification number (e.g., Passport number, PAN No., etc.).
13debtorAddressString490OTransactions initiation party postal address.
14debtorPhoneString20OTransactions initiation party debtor phone number.
15debtorMobileString20OTransactions initiation party mobile number.
16debtorEmailString50OTransactions initiation party email address.
17tranTypeString-YTransaction type. RT represents Real-Time transactions, while NRT represents Non-Real-Time transactions..

Sample Request Parameters (Real-time):

{

"cipsBatchDetail": {
"id": 2576,
"batchId": "bilbatch-2576",
"recDate": null,
"batchAmount": 100,
"batchCount": 1,
"batchChargeAmount": null,
"batchCrncy": "NPR",
"categoryPurpose": "ECPG",
"debtorAgent": "4501",
"debtorBranch": "1",
"debtorName": "debtor name",
"debtorAccount": "0010********0018",
"debtorAddress": null,
"debtorMobile": null,
"debtorEmail": null,
"channelId": null,
"tranType": "RT",
"rcreTime": null,
"rcreUserId": null,
"corporateId": null,
"initBranchId": null,
"debitAcid": "",
"batchFreeText1": "",
"batchFreeText2": "",
"batchFreeText3": "",
"batchFreeText4": ""
},
"cipsTransactionDetail": {
"id": 92,
"batchId": 0,
"recDate": "2025-01-09T06:40:17.230+00:00",
"amount": 100,
"chargeAmount": 0,
"chargeLiability": "CG",
"appTxnId": "12729664",
"merchantId": 120,
"appId": "NIMB-NTC-APP-1",
"appGroup": null,
"instructionId": "RT-2571",
"endToEndId": "98*******6",
"creditorAddress": null,
"creditorMobile": null,
"creditorEmail": null,
"creditorIdType": "",
"creditorIdValue": "",
"refId": "98*******6",
"remarks": "Nepal Telecom - PrePaid",
"particulars": "",
"addenda1": null,
"addenda2": null,
"addenda3": "",
"addenda4": "",
"freeCode1": "",
"freeCode2": "",
"freeText1": "",
"freeText2": "",
"freeText3": "",
"freeText4": "",
"freeText5": "",
"freeText6": "",
"freeText7": "",
"freeNum1": null,
"freeNum2": null,
"freeNum3": null,
"freeNum4": null,
"txnResponse": null,
"beneficiaryId": "",
"beneficiaryName": "",
"mode": 1,
"favTxnFlg": null,
"rcreUserId": "BILLER@999",
"rcreTime": "2025-01-09",
"orignBranchId": null,
"creditAcid": null,
"token": null,
"accountValidationMsg": null,
"freeString": null,
"debitBankLogo": null,
"creditBankLogo": null,
"system": null,
"responseResult": null,
"data": null,
"status": null,
"billValidatonTraceId": null
},
"token": "xxxxxxxxxxxxx"
}

Sample Request Parameters (Non-Real time):

{
"nchlIpsTransactionDetail": {
"id": 6274,
"batchId": 101,
"recDate": 1790137221686,
"instructionId": "NRT-101",
"endToEndId": "98*******6",
"amount": 100,
"chargeAmount": 2,
"chargeLiability": "MN",
"purpose": null,
"creditorAgent": null,
"creditorBranch": null,
"creditorName": null,
"creditorAccount": null,
"creditorIdType": "",
"creditorIdValue": "",
"creditorAddress": null,
"creditorPhone": null,
"creditorMobile": null,
"creditorEmail": null,
"addenda1": null,
"addenda2": null,
"addenda3": "",
"addenda4": "",
"freeCode1": "NTC-TOPUP",
"freeCode2": "",
"freeText1": "",
"freeText2": "",
"freeText3": "",
"freeText4": "Active",
"freeText6": "",
"freeText7": "",
"rcreUserId": "BILLER@999",
"rcreTime": 1790137221686,
"refId": "98*******6",
"remarks": "",
"particulars": "MA***** *******AR",
"merchantId": 1544,
"appId": "MER-1544-APP-1",
"appTxnId": null,
"beneficiaryId": "",
"beneficiaryName": "New NTC Topup",
"appGroup": "1756",
"mode": 1
},
"nchlIpsBatchDetail": {
"id": 101,
"batchId": "NPIBG-101",
"recDate": 1790137221000,
"channelId": null,
"fileName": null,
"batchAmount": 100,
"batchCount": 1,
"batchChargeAmount": 2,
"batchCrncy": "NPR",
"categoryPurpose": "CUST",
"debtorAgent": "0401",
"debtorBranch": "15",
"debtorName": "debtor name",
"debtorAccount": "0010********0018",
"debtorIdType": null,
"debtorIdValue": null,
"debtorAddress": null,
"debtorPhone": null,
"debtorMobile": null,
"debtorEmail": null,
"rcreUserId": "BILLERS@999",
"rcreTime": 1790137221467,
"tranType": "NRT"
},
"token": "************",
}

4.7.2. Payment Confirm Token Generation:​

The token string is the combination of batch and transactions information and following will be the format.

Real-time token string:

BatchString=<BatchId>+","+<DebtorAgent>+","+<DebtorBranch>+","+<DebtorAccount>+","+<BatchAmount>+","+<Batch Currency (e.g. NPR)>

For each transaction
Transaction String=<Id>+","+<Instruction Id>+","+<End to EndId>+","+<App Id>+","+<Ref Id>+","+<Amount>
Token String=Batch String + "," + Transaction String+","+<userId>

Non-real time token string:

BatchString=<BatchId>+","+<DebtorAgent>+","+<DebtorBranch>+","+<DebtorAccount>+","+<BatchAmount>+","+<Batch Currency (e.g. NPR)>

For each transaction
Transaction String=<Instruction Id>+","+<App Id>+","+<Ref Id>
Token String=Batch String + "," + Transaction String+","+<userId>

Example (Non-real time):

NPIBG-128,0401,1,01000000001,100,NPR,NRT-128,MER-1544-APP-1,9800000000,BILLER@999

Token Generation Steps:

1) Sign the token string using the digital certificate private key(pfx file/keystore).The digital signature algorithm will be the SHA256withRSA. Please note that private key used here is for NPI which is different than NPI Billers.

2) Convert the signed token above in step 2 to base64 encoding.

3) Pass this signature string to the “token” field of the request message.

4.7.3. Payment Confirm Response:​

Sample Response (Real time):

{
"responseResult":{
"responseCode":"000",
"responseDescription":"SUCCESS",
"fieldErrors":[ ]
},
"cipsBatchDetail":{
"id":712532255,
"batchId":"T13-12818780108",
"recDate":"2021-02-04T16:47:53.967+0000",
"channelId":"TECHM",
"ipsBatchId":null,
"fileName":null,
"batchAmount":1000,
"batchCount":1,
"batchChargeAmount":2.00,
"batchCrncy":"NPR",
"categoryPurpose":"ECPG",
"debtorAgent":"2601",
"debtorBranch":"1",
"debtorName":"debtor name",
"debtorAccount":"1234567812",
"debtorIdType":null,
"debtorIdValue":null,
"debtorAddress":null,
"debtorPhone":null,
"debtorMobile":null,
"debtorEmail":null,
"rcreUserId":"KHALTI@999",
"rcreTime":"2021-02-04T16:47:53.967+0000",
"debitStatus":"000",
"debitReasonCode":null,
"isoTxnId":435656,
"sessionSrlNo":null,
"settlementDate":null,
"corporateId":3,
"initBranchId":null,
"debitReasonDesc":null,
"txnResponse":null
},
"cipsTransactionDetail":{
"id":12816806,
"recDate":"2021-02-04T16:47:53.967+0000",
"instructionId":"T13-12818780108-1",
"endToEndId":"188759/314043524",
"amount":1000,
"chargeAmount":2.00,
"chargeLiability":"CG",
"purpose":null,
"creditorAgent":"0201",
"creditorBranch":"100",
"creditorName":"creditor name",
"creditorAccount":"12******68",
"creditorIdType":null,
"creditorIdValue":null,
"creditorAddress":null,
"creditorPhone":null,
"creditorMobile":null,
"creditorEmail":null,
"addenda1":null,
"addenda2":null,
"addenda3":null,
"addenda4":null,
"freeCode1":"7778",
"freeCode2":null,
"freeText1":null,
"freeText2":null,
"rcreUserId":"KHALTI@999",
"rcreTime":"2021-02-04T16:47:53.967+0000",
"ipsBatchId":null,
"creditStatus":"000",
"reasonCode":null,
"refId":"187145/314043524",
"remarks":"Used for other purpose",
"particulars":"D**** *****S",
"merchantId":7,
"appId":"MER-7-APP-4",
"appTxnId":"2077-4155863",
"reversalStatus":null,
"isoTxnId":435656,
"batchId":712532255,
"orignBranchId":"100",
"reasonDesc":null,
"txnResponse":null
}
}

Sample Response (Non-real time):

{
"responseResult": {
"responseCode": "000",
"responseDescription": "SUCCESS",
"billsPaymentDescription": null,
"billsPaymentResponseCode": null,
"fieldErrors": []
},
"nchlIpsBatchDetail": {
"id": 113597,
"batchId": "NPIBG-101",
"recDate": "2026-09-23T04:22:15.571+0000",
"channelId": "TECHM",
"ipsBatchId": "0401260923HOW",
"fileName": null,
"batchAmount": 100,
"batchCount": 1,
"batchChargeAmount": 2,
"batchCrncy": "NPR",
"categoryPurpose": "CUST",
"debtorAgent": "0401",
"debtorBranch": "15",
"debtorName": "Di******* oo",
"debtorAccount": "0********1",
"debtorIdType": null,
"debtorIdValue": null,
"debtorAddress": null,
"debtorPhone": null,
"debtorMobile": null,
"debtorEmail": null,
"sessionSeq": null,
"settlementDate": null,
"rcreUserId": "BILLER@999",
"rcreTime": "2026-09-23T04:22:15.571+0000",
"debitStatus": "000",
"debitReasonCode": null,
"isoTxnId": 116312,
"corporateId": 3,
"initBranchId": null,
"debitReasonDesc": null,
"txnResponse": null,
"stpFlag": null
},
"nchlIpsTransactionDetail": {
"id": 285563,
"recDate": "2026-09-23T04:22:15.571+0000",
"instructionId": "NRT-101",
"endToEndId": "98*******6",
"amount": 100,
"chargeAmount": 2,
"chargeLiability": "MN",
"purpose": null,
"creditorAgent": "2501",
"creditorBranch": "1",
"creditorName": "A*******ne",
"creditorAccount": "00**********8",
"creditorIdType": "",
"creditorIdValue": "",
"creditorAddress": null,
"creditorPhone": null,
"creditorMobile": null,
"creditorEmail": null,
"addenda1": null,
"addenda2": null,
"addenda3": "",
"addenda4": "",
"freeCode1": "NTC-TOPUP",
"freeCode2": "",
"freeText1": "",
"freeText2": "",
"freeText3": "",
"freeText4": "Active",
"freeText5": "",
"freeText6": "",
"freeText7": "",
"rcreUserId": "BILLER@999",
"rcreTime": "2026-09-23T04:22:15.571+0000",
"ipsBatchId": "0401260923HOW",
"creditStatus": "ENTR",
"reasonCode": null,
"refId": "98*******6",
"remarks": "",
"particulars": "NRT-101",
"merchantId": 1544,
"appId": "MER-1544-APP-1",
"appTxnId": null,
"reversalStatus": null,
"isoTxnId": null,
"batchId": 113597,
"ipsTxnId": "0401260923HOW00B",
"reasonDesc": null,
"txnResponse": null
},
"token": "BG0KYGI2ms2vbFX/0cxRUfkZ8RjdTmAE52T192glsMMuOQd37FgmHmUe1r27yCcTAyhPe/6rHYtZQEuov1ObnjoXIOhdtH83MmMQ9OcAO88MahYF8LYzQB9+S2OE6+DgEWL70VoUA8vErs0xiGzzX6yWNs0M56wJP3rqCU3mVNA="
}

Note: For the successful payment, please consider the debit (000) and credit status (000,DEFER,999) in above response message and handle the response code as per NPI specification document.