diff --git a/InboundApi/InboundAPIIME_London.docx b/InboundApi/InboundAPIIME_London.docx new file mode 100644 index 0000000..c1acf53 --- /dev/null +++ b/InboundApi/InboundAPIIME_London.docx @@ -0,0 +1,910 @@ + + + +Inbound API + Technical Document for IME London Remittance + +Revision History + +Version Number +Change Reference and Summary +Author +Revised Date + +1.0.0 + +Created +Dinesh Guragain + +2024/03/09 + +2.0.0 + +Modified + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Contents +Contents +1. Flowchart of inbound process 4 +2. Authentication 6 +3. Generate Signature 9 +4. HTTP Header 11 +5. Get Code 12 +6. Get Bank 14 +7. Exchange Rate 16 +8. Create transaction 18 +9. Transaction Status 22 + + + Flowchart of inbound process + + + + + + + + + + + + List of methods declared in web service + + No. +API +Method +Description + 1 +Authentication +authenticate +This method gives an IME London Core System session which is to be used to invoke other +methods. It's a mandatory function. + 2 +GetCode +getCode +This method is used to get the list of Source of Fund , Purpose of Remittance, Id Type, Relationship, Occupation, Country, and Payment Type. + 3 +CalculateExRate +calculateExRate +This method is used to request the exchange rate. + 5 +sendRemittance +SendRemitance +Send new transaction information to IME London + 6 +getRemittanceStatus +getRemittanceStatus +This method gives the details status of transaction + + + Authentication + + This method gives an IME session which is to be used to invoke other methods. It's a mandatory function. + +Method +URL +GET +/api/authenticate + + +HTTP Request Header + +Header +Description +AgentId +Id of Partner + +Example + + + + +Request Parameter Authorization + +Parameter + Type + Description + Mandatory +Username + String + Username of partner + M +Password + String + Password of partner + M +Request Example + + +Response Example: + +{ + "responseCode": 100, + "responseMessage": "Success.", + "data": { + "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyTmFtZSI6Imtld2FscmFqIiwiQWdlbnRJZCI6IjM5NDM5MiIsIlNlc3Npb25JZGVudGlmaWVyIjoiMTAwNDAyNWItY2ZhNy00MjkxLTgwODEtMThiZDJhNWQyMTg5IiwiZXhwIjoxNzExMzU0OTI5LCJpc3MiOiJJTTNVayIsImF1ZCI6IiFNM1VuMXQzREshbkdkMG1VJDNScyJ9.i-NOVrABvTouDRB67m56_Zi2csWMLi0r-slyGqTp3PE", + "tokenType": "Bearer", + "expiresIn": 1800, + "sessionIdentifier": "1004025b-cfa7-4291-8081-18bd2a5d2189" + } +} + Generate Signature + + When you create a signature for a request, it's essential to combine the parameters sent by the request and then hash the resulting symbol. To illustrate this process, we've prepared the following example: + Suppose you have a request with the following parameters: Parameter 1: APPId + Parameter 2: SecurityKey + Parameter 3: Nonce + Parameter 4: Timestamp + AppId + Partner Appid + SecurityKey + Partner security key + Nonce + This function creates a random 4-byte array using cryptographic methods and converts it into an 8-character hexadecimal string, ensuring each character represents 4 bits. If the resulting string is shorter than 8 characters, it adds leading zeros. The function then returns this 8-character hexadecimal nonce, suitable for cryptographic purposes. + Example + + Timestamp + This function retrieves the current timestamp in seconds since the Unix epoch (January 1, 1970) in Coordinated Universal Time (UTC). It achieves this by calculating the difference between the current time and the Unix epoch, represented as a TimeSpan object. Then, it converts this time difference into total seconds and returns it as a long integer, providing a precise representation of the current time for various applications such as timestamping events or generating unique identifiers + + + Example + + + To generate a signature for this request, you would follow these steps: + Combine the parameters into a single string, maintaining the order: listString = APPID: SecurityKey: Nonce: Timestamp + + Apply the GenerateHMAC hash function to the combined string, resulting in a unique hash: signature = GetMd5Hash( listString ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + HTTP Header + + All the HTTP request and response headers shall contain the followings elements: + +Parameter +Type +Description + Mandatory +Content-Type +application/json +The Content-Type is defined as [RFC 7213 + M +Authorization +String +Generated token from Authentication request + M +Signature +String +Username of partner + M + + +Example: + + + Get Code +This method is used to get the list of Source of Fund, Purpose of Remittance, Id Type, Relationship, Occupation, Country, and Payment Type. + URL +Method +URL +POST +/api/v1/Remit/getCode + +This method contains following input parameters +Request Parameters:- +Parameter +Type +Description + Mandatory +partnerSessionId +String +partnerSessionId of partner + M + + + + + Request Example: + + { + "partnerSessionId": "PARTNER-XXX-SESSION-ID1" + } + + + Response Example: + + { + "responseCode": 100, + "responseMessage": "API Called successfully", + "data": { + "sourceOfFund": [ + { + "id": "11416", + "text": "Business Income" + } + ], + "purposeOfRemittance": [ + { + "id": "11411", + "text": "Birthday Gift" + } + ], + "idType": [ + { + "id": "11168", + "text": "Biometric Residence Permit" + } + ], + "country": [ + { + "id": "12", + "text": "Australia", + "countryCode": "AU", + "isoApha3": "AUS" + } + ], + "paymentType": [ + { + "id": "2", + "text": "Bank Deposit", + "code": "BD" + } + ], + + + + Get Bank + + + This method is used to get the list of active bank names. + URL +Method +URL +POST +/api/v1/Remit/getBank + + + This method contains following input parameters +Request Parameters:- +Parameter +Type +Max +Length +Description + Mandatory +partnerSessionId +String +15 +partnerSessionId of partner + M +countryid +String +10 +Countryid of payout country + M + + + + + + + + Request Example: + { + "partnerSessionId": "PARTNER-XXX-SESSION-ID1", + "countryId": "16" + } + + + + + + + + + + + + + + + + + + + Resonse Example: + { + "responseCode": 100, + "responseMessage": "API Called successfully", + "data": { + "countryId": null, + "bank": [ + { + "id": "446", + "text": "AB BANK" + }, + { + "id": "436", + "text": "AGRANI BANK" + }, + { + "id": "475", + "text": "WOORI BANK" + } + ], + Exchange Rate + + This method is used to request the exchange rate for particular payout country. The send partner will provide the Sending Country Code, Sending Currency Code, Payout Country Code, Payout Currency Code, and Payout Type Code. + URL +Method +URL +POST +/api/v1/Remit/calculateExRate + + This method contains the following input parameters + Request Parameters:- +Parameter +Type +Description + Mandatory +partnersessionId +String +Partner session Id of partner + M +sendingCountryCode +String +Code of sending country + M +sendingCurrencyCode +String +Currency code of sending country + M +payoutCountryCode +String +Code of payout country + M +payoutCurrencyCode +String +Currency code of payout country + M +collectionAmount +String +Amount of sending country + M +payoutAmount +String +Amount of receiving country + M +payoutTypeCode +String +Payout type code (getCode) + M +calcBy +String +C - Calculation by Sending amount and response total Payout amount after Deducting service charge +P - Calculation by Payout Amount and response total collection amount in +Sending Currency including Service Charge + M + + + + Request Example: + { +"partnerSessionId": "PARTNER-XXX-SESSION-ID1", +"sendingCountryCode": "UK", +"sendingCurrencyCode": "GBP", +"payoutCountryCode": "NP", +"payoutCurrencyCode": "NPR", +"collectionAmount": "5000", +"payoutAmount": "0", +"payoutTypeCode": "CP", +"calcBy": "C" +} + Response Example + { +"responseCode": 100, +"responseMessage": "Success", +"data": { +"serviceCharge": "01.00", +"exRate": "165.0800", +"payoutCurrencyCode": "NPR", +"currDecimal": "0", +"collectionAmount": "5,000.00", +"transferAmount": "4,999.00", +"payoutAmount": "825,234.00" +} +} + + + + + + + + Create transaction + + This method initiates new transaction to the payout agent. It's a mandatory function. + +Method +URL +POST +/api/v1/Remit/sendRemittance + + +Request Parameters + +Parameter Group +Parameter +Type +Max +Length +Description + Mandatory + +partnersessionId +String +15 +Session Id of partner + M +Ss + + + + + + + + + + d + + + + Sender + Details +senderFirstName +String +20 +First name of sender + M + +senderMiddleName +String +20 +Middle name of sender + O + +senderLastName +String +20 +Last name of sender + M + +senderDOB +string +8 +Date of Borth of Sender + M + +senderIdType +String +15 +Id type of sender. From the getCode (IdType) . + M + +senderIdNumber +String +20 +Id number of the sender + M + +senderIdIssueDate +String +8 +ID issue date of sender. + M + +senderIdValidDate +String +8 +ID valid date of sender + M + + + +senderMobile +String +15 +Mobile number of sender + M + +senderEmail +String +25 +Email address of sender + M + +senderNativeCountryCode +string +3 +Native country cod of sender + M + +senderCity +string +15 +City of sender + O + +senderAddress +String +20 +Address of sender + M + + + + + +Receiver Details +receiverFirstName +String +20 +First name of beneficiary + M + +receiverMiddleName +String +20 +Middle name of beneficiary + O + +receiverLastName +String +20 +Last name of beneficiary + M + +receiverIdType +String +15 +Id Type of beneficiary + O + +receiverIdNo +String +20 +Id Number of beneficiary + O + +receiverIdIssue +String +8 +Id issue date of beneficiary + O + +receiverIdValid +string +8 +Id valid of beneficiary + O + +receiverMobile +String +15 +Mobile number of beneficiaries + O + +receiverCity +String +15 +City of receiver + + +receiverAddress +String +20 +Receiver's address + M + +receiverEmail +String +20 +Email address of receiver + O + +receiverAccountNo +String + +Receiver bank account number. Required when payment method is "Bank Deposit". + O + +sendingCountryCode +String +3 +Country code of sending country + M + +payoutCountryCode +string +3 +Country code of receiving country + M + +payoutTypeCode +String +2 +Payout type code. From the getCode(paymentType) i.e BD + + M + +payoutBankCode +String +10 +Payout bank code. Required when payment method is "Bank Deposit". + O + + + + + +Remittance +Details +payoutBranchCodce +String +10 +Payout branch code. Required when payment method is "Bank Deposit". + O + +remittancePurpose +String +2 +Purpose of remittance. From the getCode(paymentType) + M + +sourceOfFund +string +2 +Source of fund. From the getCode(paymentType) + M + +Relationship +String +2 +Relationship of receiver. From the getCode(paymentType) + M + +Occupation +String +2 +Occupation. From the getCode(paymentType) + M + +calcBy +String +1 +C - Calculation by Sending amount and response total Payout amount after Deducting service charge +P - Calculation by Payout Amount and response total collection amount in +Sending Currency including Service Charge + M + +payoutCurrencyCode +string +3 +Currency code of receiving country + M + +sendingCurrencyCode +String +3 +Currency code of sending country + M + +collectionAmount +String +10 +Sending Amount + M + +transferAmount +String +10 +Receiving amount + M + +partnerTransactionId +String +10 +Transaction Id of partner + M + + + +Request example: + +{ +"partnerSessionId": "SADASD234432SDDSA", +"remitSenderDetails": { +"senderFirstName": "John", +"senderMiddleName": "", +"senderLastName": "Doe", +"senderDOB": "2000-10-01", +"senderIdType": "10997", +"senderIdNo": "1414", +"senderIdIssuedDate": "2022-01-01", +"senderIdValidDate": "2030-01-01", +"senderMobile": "082122892292", +"senderNativeCountryCode": "NP", +"senderCity": "London", +"senderAddress": "London, UK", +"senderEmail": "John2000@gmail.COM", +"senderGender": "M" +}, +"remitReceiverDetails": { +"receiverFirstName": "John", +"receiverMiddleName": "", +"receiverLastName": "Doe", +"receiverIdType": "10997", +"receiverIdNo": "19281982", +"receiverIdIssued": "", +"receiverIdValid": "", +"receiverMobile": "9861572883", +"receiverCity": "KATHMANDU", +"receiverAddress": "KOTESHWOR-32, KATHMANDU, NEPAL", +"receiverAccountNo": "526598989", +"receiverEmail": "john2000@gmail.COM" +}, +"remittanceDetails": { +"sendingCountryCode": "GB", +"payoutCountryCode": "NP", +"payoutTypeCode": "CP", +"payoutBankCode": "", +"payoutBankBranchCode": "", +"payoutCurrencyCode": "NPR", +"sendingCurrencyCode": "GBP", +"collectionAmount": "10", +"transferAmount": "1675.50", +"payoutAmount": "438580.00", +"serviceCharge": "3", +"exchangeRate": "167.55", +"remittancePurpose": "1290", +"sourceOfFund": "1120", +"relationship": "1239", +"occupation": "19182", +"calcBy": "C" +}, +"partnerTransactionId": "22222222211" +} + +Response example: + +{ "responseCode": 100, +"responseMessage": "Transaction is successful!", +"data": { +"imeControlNo": "779112042164", +"partnerTransactionId": "22222222211", +"status": "Hold", +"collectionAmount": "10", +"transferAmount": "1675.50", +"payoutAmount": "438580.00", +"exRate": "167.55" +} +} + + + Transaction Status + + This method is used to get the (current) status of the transaction. The send partner will provide the Transaction no or imeControlNo with login credentials. +Method +URL +POST +/api/v1/Remit/getRemittanceStatus + +Parameter +Type +Description + Mandatory +partnerSessionId +String +partnerSessionId of partner + M +partnerTransactionId +String +Transaction id of transaction + M +imeControlNo +String +Control Number of transaction + M + + + + + + + +Request example: + +{ +"partnerSessionId": "PARTNER-XXX-SESSION-ID1", +"imeControlNo": "779206107142", +"partnerTransactionId": "" +} +Response example: + +{ +"responseCode": 100, +"responseMessage": "Success", +"data": { +"imeControlNo": "779206107142", +"status": "Hold", +"message": "Transaction is waiting for approval!" +} +} + + + + + + +List ResponseCode +Response Code +Status +100 +Success +101 +Failed + diff --git a/Thirdparty/SendMN/Credentail.txt b/Thirdparty/SendMN/Credentail.txt new file mode 100644 index 0000000..9902c12 --- /dev/null +++ b/Thirdparty/SendMN/Credentail.txt @@ -0,0 +1,11 @@ +Also the UAT credentials + + + +URL: http://dev-server-sendmn.eastus.cloudapp.azure.com/api + +Username: IME Agent + +Agentcode: MGO394732 + +API key: n2PmKhD1V5IwRdDT5pMeOS/x+W4PH3L4nRxvnCoyVhE= \ No newline at end of file diff --git a/Thirdparty/SendMN/Full_SMN_InboundAPI_Documentation_2.0.0.pdf b/Thirdparty/SendMN/Full_SMN_InboundAPI_Documentation_2.0.0.pdf new file mode 100644 index 0000000..f9aee9a --- /dev/null +++ b/Thirdparty/SendMN/Full_SMN_InboundAPI_Documentation_2.0.0.pdf @@ -0,0 +1,1256 @@ + Inbound API + +Technical Document for Inbound Remittance + 2 + +Revision History + +Version Number Change Reference and Summary Author Revised Date + 2023/06/09 +1.0.0 Created Urjindelger.Ch 2023/07/04 + +2.0.0 Modified Urjindelger.Ch + +Contents + +1. Flowchart of inbound process. ................................................................................................................. 3 +2. Authentication......................................................................................................................................... 8 +3. HTTP Header............................................................................................................................................ 8 +4. Calculate Exchange rate ........................................................................................................................... 9 +5. Create transaction ................................................................................................................................. 11 +6. Modify Transaction .............................................................................................................................. 166 +7. Cancel transaction ................................................................................................................................. 19 +8. Check transaction status ...................................................................................................................... 211 +9. Bill Payment......................................................................................................................................... 233 +10. Get Enumerations ................................................................................................................................ 300 +11. Leasing Request..................................................................................................................................... 35 + 3 + +1. Flowchart of inbound process + +Process 1: Send transaction when partner doesn’t need to get Sendmn exchange +rate. + 4 + +Process 2: Send transaction when partner getting Sendmn exchange rate in real +time. + 5 + +List of methods, declared in web-service + +No. API Method Description + 1 Authentication Authentication + 2 CalculateExRate This method gives a SCS (SendMN Core System) + Calculate Exchange session which is to be used to invoke other + 3 SendTxn rate methods. It’s a mandatory function. + + Create transaction The method provides the latest payout agent rate + with corresponding payout agent code. It’s a + optional function based on the arrangement with a + partner. + Send new transaction information to SCS. + +4 ModifyTxn Modify transaction This method updates the beneficiary information of +5 CancelTxn a money transfer registered in the SCS service. +6 CheckStatusTxn Cancel transaction Try to cancel transaction, SCS only accept the +7 GetEnumerations request if the transaction has not been processed. + Check transaction This method gives details status of transaction. + status + Get Enumeration This method pulls the list of values available in + particular selection parameters. + 6 + +2. Authentication + +This method gives a GME session which is to be used to invoke other methods. It’s a mandatory function. + +Method URL +POST /api/authentication + +HTTP Request Header + +Header Description + +Content-Type application/json + +Request Parameters + +Parameter Type Description Mandatory + +Username String Username of partner M + +AuthKey String Encrypt the authentication key with AES Algorithm M + + (Keys and iv will be shared) + +AgentCode String Partner agent code M + +Request example: + +{ + "Username": "GIBLAPI", + "AuthKey": "qaPoeT1YoglvWXlUrhl3jw==", + "AgentCode": "EXAMPLE10042" + +} + 7 + +Response parameters + +Parameter Description +Code Error code defines the response status of method + +Message Response message that defines the response status of method + +ProcessIdentifier The value used while calling other methods + +Token Details required for authentication + +Note Information for token expiry + +Response Example: + +{ + "Code": "0", "Message": "0:", + "ProcessIdentifier": "1D4BBBC5-B738-4275-85C8-26F03A93DB24", + "Detail": { + "Token":"o28LSvFt3hUqR9B8i6cdzd7/BL0BI5KTnY8iKbeWKcEfYBerxWh3OpkNLigH63srq + 324 UgzAsW1cJ+yE7fpiKWfo7yTM8MzsT+ZaWqIzALDUD8cTb/sFj53iqTacgq7zRcgieExPR + KGXb45Lvllrff6Hbge5Of2h3hhm5CpptUpJK4cmXHR1FOtfc902a2kGouE5AkF9PAilip + EmXuZw48S/1M8qQfOb4ZDT0RB7EEabj+57OhOVKLWDyaTJVpnwpURj/bNvKRVY4iVWr + UO m2xSR1waZ+3FV/TTulDrsAkoVpvyN1nIkSTyIJ4q6Jolu07vD5khhXj6gXpWlso8HHOOB + nEwHGwlo8LOWVof3U7I07ROmcrS8PIkaYFE+XiOxFf764YBcFjrLOsmTeCVO0C9GMli+g + xARw6V/Kjh1pbg6ZAp1rgB91kP+gUXB4Hxk/d+uPKBL6v3M6w/IHxwgyLy/fnleXoaDtH + TAWIu03qSMl4RWuSwSAIWn0Yn+XQtA", + "Note": "Token will only be Valid for 5 minutes." + } + +} + 8 + +3. HTTP Header + +All the HTTP request and response headers shall contain the followings elements: + +Parameter Type Description Mandatory +Content-Type M +Authorization application/json The Content-Type is defined as [RFC 7213 M +Username M +AgentCode String Generated token from Authentication M + String request + Username of partner + + String Partner agent code + +Example: + 9 + +4. Calculate Exchange rate + +The method provides the latest payout agent rate with corresponding payout agent code. It’s a optional +function based on the arrangement with a partner. + +Method URL +POST /api/CalculateExRate + +Request Parameters + +Parameter Type Description Mandatory + Payout country code M +ReceivingCountry String Sending country code M + Payout currency code M +SendingCountry String Signature of method M + Unique process ID(GUID) from authentication M +ReceivingCurrency String response + +Signature String + +ProcessIdentifier String + +Signature: Username + AgentCode + SendingCountry + ReceivingCountry + ReceivingCurrency + +ProcessIdentifier + +Request example: + +{ + +"Body": { + "ReceivingCountry": "MY", + "SendingCountry": "NP", + "ReceivingCurrency": "MNT" + +}, + 10 + + "Signature": "1QS25OE3HI2ZtQ/uXloNOmeSvGnfIixUwhN7F6GQiXAo3EtRDWew1s1M7Kg8b+2jF + mySc082nzJ/e6GdxbHf6wyQ4x9Z7gPNYujktVcHdD4=", + "ProcessIdentifier": "92C5D161-4CBB-4DE7-990E-4AF64763E6D7" +} + +Response parameters + +Parameter Description +Code Error code defines the response status of method + +Message Response message that defines the response status of method + +SendingCountry Sending country code + +ReceivingCountry Receiving country code + +ReceivingCurrency Receiving currency code + +Rate Exchange rate for partner + +ForexSession Forex session generated during exchange rate calculation + +Response Example: + +{ + "Code": "IB1013", + "Message": "Ex-Rate calculated successfully", + "ProcessIdentifier": “92C5D161-4CBB-4DE7-990E-4AF64763E6D7”, + "Detail": { + "SendingCountry": "NP", + "ReceivingCountry": "MY", + "ReceivingCurrency": "MNT", + "Rate": "1142.49", + "ForexSession": "C80D14E3-0C34-4748-B0FD-3BFB69AA9BF5" + } + +} + 11 + +5. Create transaction + +This method initiates new transaction to the payout agent. It’s a mandatory function. + +Method URL +POST /api/sendTxn + +Request Parameters Type Description Mandatory + +Parameter Parameter String Purpose of transfer M +Group String Source of fund of sender country M + M + TransferReason O + M + FundSource M + +Sender FirstName String First name of sender O + String Middle name of sender M + MiddleName String Last name of sender M + M + LastName M + O + NativeCountry ISO alpha 2 Country Native country of sender M + Code[MN,KR] + + City String Sender’s city + Address + IdType String Sender address + idNumber + Mobile String ID type of sender + Email + Bank String ID number of sender + + String Mobile number of sender + + String Email address of sender + + String Receiver bank code + 12 + + AccountNo String Receiver bank account number M + + Relation String Relation with sender M + +Receiver FirstName String First name of beneficiary M + + MiddleName String Middle name of beneficiary O + + LastName String Last name of beneficiary M + + NativeCountry ISO alpha 2 Country Native country of beneficiary O + + Code[MN,KR] + + City String Receiver’s city O + + Address String Receiver’s address M + + Mobile String Receiver’s mobile number M + + ForexSessionId String Forex session generated during M + + exchange rate calculation + +Detail PartnerTranNo Number Partner transaction number M + + PaymentMethod String Mode of payment M + + SendingAmount Money Sending amount by customer M + + SendingCurrency ISO alpha 2 Country Sending currency code M + + Code[MN,KR] + + SendingCountry String Sending Country M + + ReceivingAmount Money Receivable amount by the Receiver M + + ReceivingCurrency ISO alpha 2 Country Receiving currency code M + + Code[MN,KR] + + ReceivingCountry String Receiving Country M + + ExRate Money Exchange rate of transaction M + + Signature String Signature of method M + + ProcessIdentifier String Process ID (GUID) M + 13 + +Signature: Username + AgentCode + Sender.TransferReason + Sender.FundSource + Sender.FirstName + +Sender.MiddleName + Sender.LastName + Sender.NativeCountry + Sender.City + Sender.Address + +Sender.IdType + Sender.IdNumber + Sender.Mobile + Sender.Email + Receiver.Bank + +Receiver.AccountNo + Receiver.Relation + Receiver.FirstName + Receiver.MiddleName + +Receiver.LastName + Receiver.NativeCountry + Receiver.City + Receiver.Address + Receiver.Mobile + + +Detail.ForexSSessionId + Detail.PartnerTranNo + Detail.PaymentMethod + Detail.SendingAmount+ +Detail.SendingCurrency + Detail.SendingCountry + Detail.ReceivingAmount + Detail.ReceivingCurrency + +Detail.ReceivingCountry + Detail.ExRate + ProcessIdentifier + +Request example: + +{ + "Body": { + "Sender": { + "TransferReason": "Payment", + "FundSource": "Salary", + "FirstName": "SAROJ", + "MiddleName": "KUMAR", + "LastName": "CHALISE", + "NativeCountry": "NP", + "City": "KATHMANDU", + "Address": "SEOUL", + "IdType": " National ID", + "IdNumber": "12345678987654", + "Mobile": "9849079513", + "Email": "saroj.chalise@gmeremit.com" + }, + "Receiver": { + "Bank": "394685", + "AccountNo": "5431109819", + "Relation": "Business Partner", + "FirstName": "BAT", + "MiddleName": " ", + "LastName": "BOLD", + "NativeCountry": "MY", + 14 + + "City": "ULAANBAATAR", + "Address": "SBD", + "Mobile": "99990000" + }, + "Detail": { + "ForexSSessionId": "E1F49678-F67B-4539-A914-3BC1E91582C3", + "PartnerTranNo": "10", + "PaymentMethod": "Bank deposit", + "SendingAmount": "1340561.52", + "SendingCurrency": "NPR", + "SendingCountry": "NP", + "ReceivingAmount": "13709880.00", + "ReceivingCurrency": "MNT", + "ReceivingCountry": "MY", + "ExRate": "1142.49" + } +}, +"Signature": "1QS25OE3HI2ZtQ/uXloNOq1bbY8RBA1CxTkZt+K+IgOhiKcP2adphD+AEAPIdGNVQir4 + IPR+vFYYkHkyjAUYsIDJzvUizlhYQx8oIsfAYixTODApf4vPVllgd6Z1N/kgZF9JXP7PM + UwvkjkYZpfCRJj6IJKSjDs+XW/k9mbKMXcjh/GuvnVsdAFI87Hr5kLMO0laYKsaJeGvC4Page 11 of + 27 nKUlZlPZ71eaWRLEcksGxZq0In9fLh5tNzMMxXHWXWr1uu9i9tfr1SsH36VOaGfxpiGJ+ + HzFfoquYIJ0styEYrT46cDZuXYEehAxySy83elpBAefLJL4rvBbZ3eDDVSCHcXfRaby0b + NNyrcq4eoRcgQusj37ZG++HAkWkiefG5K/Pcw137", +"ProcessIdentifier": "92C5D161-4CBB-4DE7-990E-4AF64763E6D7" +} + 15 + +Response parameters + +Parameter Description + +Code Error code defines the response status of method + +Message Response message that defines the response status of method + +ProcessIdentifier Process ID (GUID) + +ControlNo PIN number of transaction + +PartnerTranNo Partner transaction number + +Response Example: + +{ + "Code": "IB1055", + "Message": "Send transaction success", + "ProcessIdentifier": "92C5D161-4CBB-4DE7-990E-4AF64763E6D7", + "Detail": { + "ControlNo": "SM801764166", + "PartnerTranNo": "10" + } + +} + 16 + + 6. Modify Transaction + +This method updates the beneficiary information of a money transfer registered in the partner. + +Method URL + +POST /api/ModifyTxn + +Request Parameters Type Description Mandatory + + Parameter Parameter String + Group String + String + ControlNo String Pin number of transfer M + String + PartnerTranNo String Partner transaction number M + String + FirstName String First name of sender O + MiddleName String +Sender String Middle name of sender O + String + LastName String Last name of sender O + String + IdType ID type of sender O + + idNumber ID number of sender O + + FirstName First name of beneficiary O + + MiddleName Middle name of beneficiary O + +Receiver LastName Last name of beneficiary O + + Bank Receiver bank code O + + AccountNo Receiver bank account number O + + Mobile Receiver’s mobile number O + 17 + +Signature String Signature of method M + +ProcessIdentifier String Process ID (GUID) M + +Signature: Username + Agentcode + ControlNo + PartnerTranNo + Sender.FirstName + +Sender.MiddleName + Sender.LastName + Sender.IdType + Sender.IdNumber + Receiver.FirstName + +Receiver.MiddleName + Receiver.LastName + Receiver.Bank + Receiver.AccountNo + Receiver.Mobile + +ProcessIdentifier + +Request example: + +{ + "Body": { + "ControlNo": "SM801536895", + "PartnerTranNo": "10”, "Sender": + “Sender”: { + "FirstName": "KAMALAA", + "MiddleName": "", + "LastName": "KHATRI", + "IdType": "National ID", + "IdNumber": "112233" + }, + "Receiver": { + "FirstName": "BAT", + "MiddleName": " ", + "LastName": "BOLD", + "Bank": "394685", + "AccountNo": "5431109819", + "Mobile": "99990000" + } + }, + "Signature": + "1QS25OE3HI2ZtQ/uXloNOqX6UPmn/D7GmkI8gsX6AGqV6q2ybRFUwB0dnl6hSDieD1ny + /cccCD9bCa9vJvSNR9cCfyuHt/KDXSZCR4mQktq6792hYwXDA9sP4ygXVCd22LuhEkE2v + LQcY2J4r6RLyPK0ZTVRV9AalxIZ1AisPZZ9vYuHgI0kJvVZQEPSBXls", + "ProcessIdentifier": "7AD5922A-29C0-4425-875D-15B424939DBC" + 18 + +} + +Response parameters + +Parameter Description + +Code Error code defines the response status of method + +Message Response message that defines the response status of method + +ProcessIdentifier Process ID(GUID) + +ControlNo PIN number of transaction + +PartnerTranNo Partner transaction number + +TranDate Transaction date(YYYY-MM-DD) + +Response Example: + +{ + "Code": "IB1062", + "Message": "Modify transaction success", + "ProcessIdentifier": "7AD5922A-29C0-4425-875D-15B424939DBC", + "Detail": { + "ControlNo": "80153689586", + "PartnerTranNo": 10, + "TranDate": "4/10/2021 3:39:15 PM" + } + +} + 19 + + 7. Cancel transaction + +This method cancels the transaction created for particular payout partner. + +Method URL + +POST /api/CancelTxn + +Request Parameters Type Description Mandatory + +Parameter Parameter String +Group String + String +Head Username String Username of partner M + String + AgentCode String Partner agent code M + + ControlNo Pin number of transaction M + + Reason Transaction cancel reason M + + Signature Signature of M + + ProcessIdentifier Process ID (GUID) M + +Signature: Username + AgentCode + ControlNo + Reason + ProcessIdentifier + +Request example: + +{ + "Body": { + "ControlNo": "80153689586", + "Reason": "Mistake transaction" + +}, + "Signature": + "1QS25OE3HI2ZtQ/uXloNOqX6UPmn/D7GmkI8gsX6AGqn1VpbsW9gaRsRt6XKbjGKQ7qo + A8Qcrwy/y5LqSWbALR3iyii4Sl7amOksxahc2B1f3rfN/qCKDBLxvw74joywNfvFT9/qR + 20 + + ZU6Zu/8GM6lpA==", + "ProcessIdentifier": "7AD5922A-29C0-4425-875D-15B424939DBC" +} + +Response parameters + +Parameter Description + +Username Username of the partner + +AgentCode Agent code of partner + +ControlNo PIN number of transaction + +PartnerTranNo Partner transaction number + +TranDate Transaction created date(YYYY-MM-DD) + +Signature Signature of the method + +ProcessIdentifier Process ID(GUID) + +Response Example: + +{ + "Code": "IB1066", + "Message": "Cancel transaction success", + "ProcessIdentifier": "7AD5922A-29C0-4425-875D-15B424939DBC", + "Detail": { + "ControlNo": "SM801536895", + "PartnerTranNo": "10”, + "TranDate": "4/10/2021 3:39:15 PM" + } + +} + 21 + +8. Check transaction status + +This method gives details status of transaction. + +Method URL +POST /api/CheckStatusTxn + +Request Parameters Type Description Mandatory + +Parameter Parameter String Username of partner M +Group String Partner agent code M + String Pin number of transfer M +Head Username String Signature of M + String Process ID (GUID) M + AgentCode + +Body ControlNo + + Signature + + ProcessIdentifier + +Signature: Username + AgentCode + ControlNo + ProcessIdentifier + +Request example: + +{ + "Body": { + "ControlNo": "SM80176416622 + }, + "Signature": + "1QS25OE3HI2ZtQ/uXloNOlwGaUxc68ZT9FjhuomhCIiwx5GPzEfD/6DEWhKk/E/drMk3 + KtWlfyMUXa/rpzhNWeo+0WHPL6rsRy26Vosp5Jo=", + "ProcessIdentifier": "92C5D161-4CBB-4DE7-990E-4AF64763E6D7" + +} + 22 + +Response parameters + +Parameter Description + +Code Error code defines the response status of method + +Message Response message that defines the response status of method + +ProcessIdentifier Partner unique process ID(GUID) + +ControlNo PIN number of transaction + +PartnerTranNo Partner transaction number + +Status Transaction status + +TranDate Transaction created date(YYYY-MM-DD) + +PaidDate Transaction paid date(YYYY-MM-DD) + +CancelledDate Transaction cancelled date(YYYY-MM-DD) + +CancelApprovedDateTransaction cancel approved date(YYYY-MM-DD) + +CancelReason Transaction cancel reason + +Response Example: + +{ + "Code": "IB1061", + "Message": "Check status success", + "ProcessIdentifier": "92C5D161-4CBB-4DE7-990E-4AF64763E6D7", + "Detail": { + "ControlNo": "SM80176416622", + "PartnerTranNo": "10", + "Status": "UNPAID", + "TranDate": "Oct 4 2023 1:39 PM", + "PaidDate": "", + "CancelledDate": "" + "CancelRequestDate": " Oct 4 2023 3:39 PM ", + "CancelReason": "us dollar account", }} + 23 + +9. Bill Payment + +This method initiates new transaction to the payout agent. It’s a mandatory function. + +Method URL +POST /SendPayAPI/SendPay + +Request Parameters + +Parameter Parameter Type Description Mandatory +Group + String + TransferReason String Purpose of transfer M + + FundSource String Source of fund of sender country M + FirstName String +Sender String First name of sender M + ISO alpha 2 + MiddleName Country Middle name of sender O + Code[MN,KR] + LastName String Last name of sender M + String + NativeCountry String Native country of sender M + String + City String Sender’s city O + Address String + IdType Sender address M + idNumber + Mobile ID type of sender M + Email + ID number of sender M + + Mobile number of sender M + + Email address of sender O + 24 + +ReceiverCode String Receiver code + + payerFirstNama String Type’s code M + + payerLastName String M + + payerRegister String M + +TxnDescription payerPhone String O + + payerEmail String M + + contractNumber ISO alpha 2 O + + Country + Code[MN,KR] + + deviceNumber String + + setNumber String O + + cardNumber String M + + schoolClass String M + + studentCode String M + ForexSessionId String + Forex session generated during M + + exchange rate calculation + +Detail PartnerTranNo Number Partner transaction number M + PaymentMethod String + Mode of payment M + + SendingAmount Money Sending amount by customer M + + SendingCurrency ISO alpha 2 Sending currency code M + + Country + + Code[MN,KR] + + SendingCountry String Sending Country M + + ReceivingAmount Money Receivable amount by the Receiver M + 25 + + ReceivingCurrency ISO alpha 2 Receiving currency code M + + Country + + Code[MN,KR] + + ReceivingCountry String Receiving Country M + + ExRate Money Exchange rate of transaction M + +Signature String Signature of method M + +ProcessIdentifier String Process ID (GUID) M + +signature = Head.Username+ Head.AgentCode+ Sender.TransferReason + Sender.FundSource + +Sender.FirstName + Sender.MiddleName + Sender.LastName + Sender.NativeCountry + Sender.City + +Sender.Address + Sender.IdType +Sender.IdNumber + Sender.Mobile + Sender.Email +ReceiverCode + +TxnDescription.payerFirstName + TxnDescription.payerLastName + TxnDescription.payerRegister + +TxnDescription.payerPhone + TxnDescription.payerEmail + TxnDescription.contractNumber + +TxnDescription.deviceNumber + TxnDescription.setNumber + TxnDescription.cardNumber +TxnDescription.schoolClass + TxnDescription.studentCode + Detail.ForexSSessionId + +Detail.PartnerTranNo + Detail.PaymentMethod +Detail.SendingAmount + +Detail.SendingCurrency +Detail.SendingCountry + Detail.ReceivingAmount + Detail.ReceivingCurrency + +Detail.ReceivingCountry + Detail.ExRate + ProcessIdentifier; + +Request example: + +{ + "Body": { + "Sender": { + "TransferReason": "Payment", + "FundSource": "Salary", + "FirstName": "SAROJ", + "MiddleName": "KUMAR", + "LastName": "CHALISE", + "NativeCountry": "NP", + "City": "KATHMANDU", + "Address": "SEOUL", + "IdType": " National ID", + "IdNumber": "12345678987654", + 26 + + "Mobile": "9849079513", + "Email": "saroj.chalise@gmeremit.com" + }, + "ReceiverCode": "PM01", + "TxnDescription": { + "payerFirstName": "", + "payerLastName": "", + "payerRegister": "", + "payerPhone": "89117305", + "payerEmail": "", + "contractNumber": "TT123456789", + "deviceNumber": "DD7785412364", + "setNumber": "S1", + "cardNumber": "11582", + "schoolClass": "Мэдээллийн систем", + "studentCode": "SW10D202" + }, + "Detail": { + "ForexSSessionId": forexSessionId, + "PartnerTranNo": "123456789", + "PaymentMethod": "Bank Deposit", + "SendingAmount": sendingAmount.toString(), + "SendingCurrency": "MNT", + "SendingCountry": "K1", + "ReceivingAmount": receivingAmount.toString(), + "ReceivingCurrency": "MNT", + "ReceivingCountry": "MN", + "ExRate": exRate} +}, +"Signature": "1QS25OE3HI2ZtQ/uXloNOq1bbY8RBA1CxTkZt+K+IgOhiKcP2adphD+AEAPIdGNVQir4 +IPR+vFYYkHkyjAUYsIDJzvUizlhYQx8oIsfAYixTODApf4vPVllgd6Z1N/kgZF9JXP7PM +UwvkjkYZpfCRJj6IJKSjDs+XW/k9mbKMXcjh/GuvnVsdAFI87Hr5kLMO0laYKsaJeGvC4Page 11 of 27 +Inbound Remittance Functional Description +nKUlZlPZ71eaWRLEcksGxZq0In9fLh5tNzMMxXHWXWr1uu9i9tfr1SsH36VOaGfxpiGJ+ +HzFfoquYIJ0styEYrT46cDZuXYEehAxySy83elpBAefLJL4rvBbZ3eDDVSCHcXfRaby0b +NNyrcq4eoRcgQusj37ZG++HAkWkiefG5K/Pcw137", +"ProcessIdentifier": "92C5D161-4CBB-4DE7-990E-4AF64763E6D7" + 27 + +} + +Response parameters + +Parameter Description + +Code Error code defines the response status of method + +Message Response message that defines the response status of method + +ProcessIdentifier Process ID (GUID) + +ControlNo PIN number of transaction + +PartnerTranNo Partner transaction number + +Response Example: + +{ + "Code": "0", + "Message": "Send transaction success!", + "ProcessIdentifier": "749f0caa-0b92-4fa6-9106-771fc4789db4", + "Detail": { + "ControlNo": "1019615385240", + "PartnerTranNo": "123456789"" + + } +} + PaymentTy Group BILLS ReceiverCode Mandatory Field + pe Phone fee + P001 ReceiverName PM01 PayerPhone + P002 Data PM02 PayerPhone + P003 Internet fee Mobicom PM03 PayerPhone + Unitel PM04 PayerPhone + P004 Web fee Skytel PD01 PayerPhone + Gmobile PD02 PayerPhone + P006 Electricity Unitel PI01 ContractNumber + P009 bills Gmobile PI02 PayerPhone + Univision PI03 PayerPhone + Leasing Mobinet PI04 DeviceNumber + Skynet PI05 SetNumber, + Ger internet CardNumber + Ddish PW01 ContractNumber + PW02 DeviceNumber + Voo PW03 PayerPhone, PayerEmail + Mongolsat + ORI PG01 ContractNumber + PG02 ContractNumber + Khanbank PG03 ContractNumber + State bank + Trade and PG04 ContractNumber + Development bank PG05 ContractNumber + Golomt bank PayerRegister, + Khas bank PL01 FirstName, LastName + + iLease + + INSURANCE + +Paym Group Paren City ReceiverName Receiver Mandatory +entTy tCod Code field + Social Bayangol + pe insura e ND001 PayerRegister + Ulaanbaatar Bayanzurkh PayerPhone +P007 nce PN00 Baganuur ND002 PayerRegister + PayerPhone + ND003 PayerRegister + PayerPhone + 29 + +P008 Health PE00 Ulaanbaatar Bagakhangai ND004 PayerRegister + insura Nalaikh ND005 PayerPhone + Songinokhairkha ND006 + nce n ND007 PayerRegister + Sukhbaatar ND008 PayerPhone + Khan-Uul ND009 + Chingeltei ED001 PayerRegister + Bayangol ED002 PayerPhone + Bayanzurkh ED003 + Baganuur ED004 PayerRegister + Bagakhangai ED005 PayerPhone + Nalaikh ED006 + Songinokhairkha ED007 PayerRegister + n ED008 PayerPhone + Sukhbaatar ED009 + Khan-Uul PayerRegister + Chingeltei PayerPhone + + PayerRegister + PayerPhone + + PayerRegister + PayerPhone + + PayerRegister + PayerPhone + + PayerRegister + PayerPhone + + PayerRegister + PayerPhone + + PayerRegister + PayerPhone + + PayerRegister + PayerPhone + + PayerRegister + PayerPhone + + PayerRegister + PayerPhone + 10. Get Enumerations + +This method pulls the list of values available in particular selection parameters. + +Method URL + +POST /api/GetEnumerations + +Request Parameters + +ParameterGroup Parameter Type Description Mandatory + +Body Type String Type of enumeration M + ParentCode String City/Province code M + +Signature= Username + AgentCode + Type + ParentCode + +Parameter Request code + +Payment type 01 +Parent code 02 +Receiver name 03 +Receiver code 04 +Mandatory field 05 + +Request example: + +ID Type: +{ + + "Head": { + "Username": "GIPLAPI", + "AgentCode": " EXAMPLE10042" + + }, + 31 + + "Body": { + "Type": "01" + } +} + +Parameter Description +Code Error code defines the response status of method + +Message Response message that defines the response status of method + +ProcessIdentifier Process ID(GUID) + +Enums Enumerations + +Response Example: + +{ + "Code": "IB1064", + "Message": "get enum success", + "ProcessIdentifier": "wertysdfsuiopty7778uiop3456789", "Detail": + { + "Enums": { + "P001": "Phone fee", + "P002": "Data", + "P003": "Internet fee", + "P004": "Web fee" + "P006": "Electricity bill" + "P007": "Social insurance" + "P008": "Health insurance" + "P009": "Leasing" + + } + } +} + 32 + +ID Type: +{ + + "Head": { + "Username": "GIPLAPI", + "AgentCode": " EXAMPLE10042" + + }, + "Body": { + "Type": "02" + } +} + +Parent code: +{ + + "Code": "IB1064", + "Message": "get enum success", + "ProcessIdentifier": "wertysdfsuiopty7778uiop3456789", "Detail": + { + + "Enums": { + "Social insurance": “PN00” + "Health insurance”: “PE00’ + + } + } +} + +ID Type: +{ + + "Head": { + "Username": "GIPLAPI", + "AgentCode": " EXAMPLE10042" + + }, + "Body": { + "Type": "03" + } +} + 33 + +Receiver name: +{ + + "Code": "IB1064", + "Message": "get enum success", + "ProcessIdentifier": "wertysdfsuiopty7778uiop3456789", "Detail": { + + "Enums": { + "PN00": “Bayangol”, “Bayanzurkh”, + + “Baganuur”, “Bagakhangai”, “Nalaikh”, + “Songinokhairkhan”, “Sukhbaatar”, “Khan-Uul”, “Chingeltei” + + "PE00": “Bayangol”, “Bayanzurkh”, + “Baganuur”, “Bagakhangai”, “Nalaikh”, + + “Songinokhairkhan”, “Sukhbaatar”, “Khan-Uul”, “Chingeltei” + + } + } +} +ID Type: +{ + "Head": { + + "Username": "GIPLAPI", + "AgentCode": " EXAMPLE10042" + }, + "Body": { + "Type": "04" + } +} + +Receiver code: +{ + + "Code": "IB1064", + "Message": "get enum success", + "ProcessIdentifier": "wertysdfsuiopty7778uiop3456789", "Detail": + { + + "Enums": { + "Bayangol": "ND001", + "Bayanzurkh": "ND002 " + 34 + + "Baganuur": "ND003", + "Bagakhangai": "ND004", + "Nalaikh": "ND005", + "Songinokhairkhan": "ND006", + "Sukhbaatar": "ND007", + "Khan-Uul": "ND008", + "Chingeltei": "ND009", + + } + } +} + +ID Type: +{ + + "Head": { + "Username": "GIPLAPI", + "AgentCode": " EXAMPLE10042" + + }, + "Body": { + "Type": "05" + } +} + +Mandatory field: +{ + + "Code": "IB1064", + "Message": "get enum success", + "ProcessIdentifier": "wertysdfsuiopty7778uiop3456789", "Detail": + { + + "Enums": { + "ND001": " PayerRegister, PayerPhone", + "ND002": " PayerRegister, PayerPhone", + "ND003": " PayerRegister, PayerPhone", + "ND004": " PayerRegister, PayerPhone", + "ND005": " PayerRegister, PayerPhone", + "ND006": " PayerRegister, PayerPhone", + "ND007": " PayerRegister, PayerPhone", + 35 + + "ND008": " PayerRegister, PayerPhone", + "ND009": " PayerRegister, PayerPhone", + } + } +} + +11. Leasing Request + +This method updates the beneficiary information of a money transfer registered in the partner. + +Method URL + +POST /api/SendPayAPI/iLease + +Request Parameters Type Description Mandatory + +Parameter Parameter String Payer register number M +Group String Payer first name M + String Payer last name M + PayerRegister String M + String Payer phone number M +Body FirstName String M + String Payer e-mail address M + LastName + Country where payer lives + PayerPhone in + City where payer lives in + PayerEmail + + PayerCountry + + PayerCity + 36 + +VisaType String Payer’s visa type M + +TimeStay String Duration of payer’s stay M + +PayerWork String Payer’s job title M + +MonthSalary String Payer’s salary M + +District String 9 districts of Ulaanbaatar M +Square + city + + String Square m2 of apartment M + +Room String Number of rooms M + +Price String Price of the apartment M + +Description String Payer’s request M + +Signature String Signature of method M + +ProcessIdentifier String Process ID (GUID) M + +Signature = Head.Username+ Head.AgentCode+ Body. PayerRegister + Body. FirstName + Body. LastName + +Body. PayerPhone + Body. PayerEmail + Body. PayerCountry + Body.PayerCity + Body.VisaType + +Body.TimeStay + Body.PayerWork + Body.MonthSalary + Body. District + Body. Square + Body. Room + +Body.Price + Body.Description + ProcessIdentifier + +Request example: + +{ + "Body": { + "ControlNo": "SM801499187", + "PartnerTranNo": "10", + "IsApproved": true + }, + "Signature": + 37 + + "1QS25OE3HI2ZtQ/uXloNOlwGaUxc68ZT9FjhuomhCIhbOrQWeoBti9kiX+PtwwsP8n2D + bOe1G2d9JwQ5C3vJAwGJsfMtncMPLOe0WY32CBk=", + "ProcessIdentifier": "92C5D161-4CBB-4DE7-990E-4AF64763E6D7" +} + +Response parameters + +Parameter Description + +Code Error code defines the response status of method + +Message Response message that defines the response status of method + +ProcessIdentifier Process ID (GUID) + +Response Example: + +{ + "Code": "IB1055", + "Message": "Success", + "ProcessIdentifier": "wertysdfsuiopty7778uiop3456789", } + \ No newline at end of file