Skip to main content

5. Non-Real Time Remittance Posting API

This API is used for posting the Non-Real time Remittance Fund transfer transactions through NCHL-IPS System. It handles both one to one and batch-based credit transactions .The debit of the payment batch shall be executed instantly however the credit leg shall be done in deferred basis. And once the debit is successful, transaction will be posted to NCHL-IPS system for credit legs by a batch process.

MethodEnd-PointsAuthorizationContent-Type
POST(BASE_URL)+/api/remit/postnchlipsbatchBearer (access_token)application/json

Following points should be consider while posting the transactions to this method.

  1. Debtor bank must be the member of Retail-Payment System however creditor bank can be the member of NCHL-IPS system.

  2. This method supports only the Off-Us (interbank) transactions.

  3. The transaction limit shall be as per the NCHL-IPS system product note, which is based on the category purposes. Addenda information are also mandatory for some of the category purpose (refer to product note for details).

  4. Number of supported transactions within a batch (batch limit) is 10,000.

  5. Allowed category purpose for method is REMI(Remittance).

  6. This method should to be invoked only after beneficiary account validation is successfully done.

  7. The beneficiary/creditor branch is a mandatory field however it can be sent always a fixed branch code(head-office branch). List of such branch codes shall be made available separately.

Batch Details:

#Field NameData TypeLengthDescriptionPresence
1batchIdString20Unique Identification for the batch for later reconciliation.Y
2batchAmountBigDecimal14,2The total sum of amount of all the transactions in the batch.Y
3batchCountInteger-Total transactions in the batch.Y
4batchCrncyString3Currency of the transaction. E.g. NPR.Y
5categoryPurposeString4Purpose of the transaction: REMI.Y
6debtorAgentString4Financial institution where the transactions initiating party account is held.Y
7debtorBranchString4Financial institution branch where the transactions initiating party account is held.Y
8debtorNameString140Transaction initiation party account name.Y
9debtorAccountString20Transaction initiation party account number.Y
10debtorIdTypeString4Transaction initiation party private id type for ex. Citizenship, pan no, passport etc.O
11debtorIdValueString20Transactions initiation party identification number for ex. Passport number, pan no. etc.O
12debtorAddressString490Transactions initiation party postal address.O
13debtorPhoneString20Transactions initiation party debtor phone number +<country code>-<area code>-<Phone Number>.O
14debtorMobileString20Transactions initiation party mobile number +<country code>-<area code>-<Phone Number>.O
15debtorEmailString50Transactions initiation party email address.O

Transaction Details:

#Field NameData TypeLengthDescriptionPresence
1instructionIdString30Unique identification for the transaction for reconciliation purpose later.Y
2endToEndIdString30Identification reference for both sender and receiver.Y
3amountBigDecimal13,2The amount to be transferred through this transaction.Y
4purposeString4The initiating party will assign purpose of the transactions. List of purpose category is available in product document.O
5creditorAgentString4Financial institution where the receiving party accounts is held.Y
6creditorBranchString4Financial institution branch where the receiving party account is held.Y
7creditorNameString140Receiving party Account name.Y
8creditorAccountString20Receiving party account number.Y
9remitterNameString100Remittance receiving individual name.Y
10countryOfOriginString20Remittance sending country.Y
11purposeOfTransactionString50Purpose of sending remittance.Y
12remitCompanyNameString50Remittance company through which the payment is initiated.Y
13remitterAddressString100City, town or street name of the originating country.O
14creditorIdTypeString4Receiving party private identification type for ex. Citizenship, pan no, passport etc.O
15creditorIdValueString20Receiving party identification value.O
16creditorAddressString490Receiving party postal address.O
17creditorPhoneString20Receiving party phone number in the format +<country code>-<area code>-<Phone Number>.O
18creditorMobileString20Receiving party mobile number in the format +<country code>-<area code>-<Phone Number>.O
19creditorEmailString50Receiving party valid email address.O
20addenda1Integer15Information that provides extra details about the transaction. Value may be mandatory depending on configuration.C
21addenda2Date-C
22addenda3String35C
23addenda4String35C
24freeCode1String20Extra transaction details used for reconciliation, relevant only to the initiating party bank.O
25freeCode2String20O
26freeText1String100O
27freeText2String100O
28remarksString100Remarks field.O
29particularsString100Particulars field.O

Token Generation Process (Non-Real Time):

  1. Token string generation: The token string is created by appending the financial fields in batch and transactions information. Following will be the procedure for token string generation:

    Batch String=<BatchId>+","+<DebtorAgent>+","+<DebtorBranch>+","+<DebtorAccount>+","+<BatchAmount>+","+<Batch Currency (e.g. NPR)>+","+<Category Purpose>
    For each transaction
    {
    Transaction String=Transaction String+","+<Instruction Id>+","<Creditor Agent>+","+<CreditorBranch>+","+<CreditorAccount>+","+<Transaction Amount>;
    }
    Token String=Batch String + Transaction String+","+<user Id>
  1. Generate signed hash value of token string using private key of provided certificate.
  2. Send the generate hash value in “token” field.

Request Message Example:

{
"nchlIpsBatchDetail": {
"batchId": "remitnonreal5",
"batchAmount": 10.00,
"batchCount": "1",
"batchCrncy": "NPR",
"categoryPurpose": "REMI",
"debtorAgent": "2501",
"debtorBranch": "1",
"debtorName": "DEBTOR ACCOUNT NAME",
"debtorAccount": "00100******00011"
},
"nchlIpsTransactionDetailList": [
{
"instructionId": "remitnonreal1-5",
"endToEndId": "City Express-PMT1",
"amount": 10.00,
"creditorAgent": "0401",
"creditorBranch": "81",
"creditorName": "CREDITOR ACCOUNT NAME",
"creditorAccount": "08110****1011",
"particulars": "remitnonreal-particular-1",
"remarks": "remitnonreal-remarks-1 ",
"remitterName": "Biraj Bahadur",
"countryOfOrigin": "UAE",
"remitterAddress": "dubai",
"purposeOfTransaction": "home expenses",
"remitCompanyName": "Himal Remit"
}
],
"token": "UYaxbyjzTsN3ShnLmksNasHRXfpp4hZ8PbVxKlEo56S4iRY7UdzcS2McuN4az8zkoDIdOLBNU8k1+386UtZi++7FQtg1nEaInmW8w9soZneB2dSPz7EceqJmDr4wBC0TrEx0t7+T2fkJFZWNUlfngKM8noq8i0dhWscYCEW6hSM="
}

Response Example:

{
"cipsBatchResponse": {
"responseCode": "000",
"responseMessage": "SUCCESS",
"batchId": "remitnonreal5",
"debitStatus": "000",
"id": 65405
},
"cipsTxnResponseList": [
{
"responseCode": "000",
"responseMessage": "PENDING FOR POSTING IN NCHL-IPS",
"id": 106755,
"instructionId": "remitnonreal1-5",
"creditStatus": "ENTR"
}
]
}

Response Parameters

Batch Details:

#Field NameData TypeLengthDescriptionPresence
1responseCodeString-API response. For example, 000 for successY
2responseMessageString500API response code descriptionY
3batchIdString20Unique Identification for the batch for later reconciliation (Generated by the NPI member)Y
4debitStatusString10Debit status (000 for success, 999 for timeout, etc.) (Refer ISO return reason sheet)Y
5idInteger-Unique Identification for the batch generated in NCHL sideY

Transaction Details:

#Field NameData TypeLengthDescriptionPresence
1responseCodeString-API response. For example, 000 for successY
2responseMessageString500API response code descriptionY
3instructionIdString20Unique Identification for the transaction for later reconciliation (Generated by the NPI member)Y
4creditStatusString10Credit status:
  • ENTR for Pending
  • GEN, SENT, ACTC, and ACSP are intermediary statuses
  • ACSC for success
  • RJCT for Rejected
Y
5idInteger-Unique Identification for the transaction generated on NCHL sideY

Failed Response Examples:

{
"responseCode": "E007",
"responseDescription": "TECHNICAL VALIDATION FAILED",
"billsPaymentDescription": null,
"billsPaymentResponseCode": null,
"fieldErrors": [
{
"field": "nchlIpsBatchDetail.categoryPurpose",
"message": "Invalid transaction category purpose."
}
]
}