Revision history
| Version | Change summary | Revised date |
|---|---|---|
| 1.0.0 | Created | 2024/03/09 |
| 2.0.0 | Modified | 2024/10/21 |
| 3.0.0 | Modified | 2024/10/25 |
| 4.0.0 | Modified | 2025/02/14 |
| 5.0.0 | Modified | 2025/06/26 |
Inbound transaction flow
The source document's flowchart shows authentication first, followed by transaction submission, response checking and return of an IME control number.
Methods declared in the web service
Authentication · authenticate
Creates an IME London Core System session for use with the remaining methods.
GetCode · getCode
Returns source of fund, remittance purpose, ID type, relationship, occupation, country, payment type, company registration type and customer type.
CalculateExRate · calculateExRate
Returns exchange-rate and calculated remittance amounts.
AccountValidate · accountValidation
Validates the receiver's bank account details.
sendRemittance · sendRemittance
Sends a new remittance transaction to IME London.
getRemittanceStatus · getRemittanceStatus
Returns the current transaction status.
Authentication
This mandatory method creates the IME session used to invoke the other API methods.
HTTP request header
| Header | Description |
|---|---|
AgentId | ID of partner |
Authorization parameters
| Parameter | Type | Description | Requirement |
|---|---|---|---|
Username | String | Username of partner | M |
Password | String | Password of partner | M |
Response example
{
"responseCode": 100,
"responseMessage": "Success.",
"data": {
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"tokenType": "Bearer",
"expiresIn": 1800,
"sessionIdentifier": "1004025b-cfa7-4291-8081-18bd2a5d2189"
}
}Generate signature
Combine the request parameters in the documented order, then hash the resulting string.
| Order | Parameter | Description |
|---|---|---|
| 1 | AppId | Partner App ID |
| 2 | SecurityKey | Partner security key |
| 3 | Nonce | Unique GUID |
| 4 | Timestamp | Current UTC timestamp in seconds since the Unix epoch |
Documented concatenation
listString = APPID:SecurityKey:Nonce:Timestamp
signature = GetMd5Hash(listString)C# timestamp example
static long GetCurrentTimestamp()
{
DateTime epochStart = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
TimeSpan timeSpan = DateTime.UtcNow - epochStart;
return Convert.ToInt64(timeSpan.TotalSeconds);
}GetMd5Hash. This page preserves the documented MD5 call rather than choosing between them.HTTP headers
All API requests should contain the following elements.
| Parameter | Type | Description | Requirement |
|---|---|---|---|
Content-Type | application/json | JSON content type | M |
Authorization | String | Generated token from the authentication request | M |
Signature | String | Generated request signature | M |
Content-Type: application/json
Authorization: Bearer <access-token>
Signature: <generated-signature>Get Code
Returns the code lists used by remittance requests.
| Parameter | Type | Description | Requirement |
|---|---|---|---|
partnerSessionId | String | Unique random value | 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
Returns the active bank list for a payout country.
| Parameter | Type | Max length | Description | Requirement |
|---|---|---|---|---|
partnerSessionId | String | 15 | Unique random value | M |
countryId | String | 10 | Country ID of payout country | M |
Request example
{
"partnerSessionId": "PARTNER-XXX-SESSION-ID1",
"countryId": "233"
}Response 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
Requests the exchange rate and calculated amounts for a payout country and payout type.
| Parameter | Type | Description | Requirement |
|---|---|---|---|
partnerSessionId | String | Unique random value | 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 in sending currency | M |
payoutAmount | String | Amount in receiving currency | M |
payoutTypeCode | String | Payout type code from Get Code | M |
calcBy | String | C: calculate by sending amount. P: calculate by payout amount. | M |
Request example
{
"partnerSessionId": "PARTNER-XXX-SESSION-ID1",
"sendingCountryCode": "KR",
"sendingCurrencyCode": "USD",
"payoutCountryCode": "UK",
"payoutCurrencyCode": "GBP",
"collectionAmount": "0",
"payoutAmount": "33",
"payoutTypeCode": "BD",
"calcBy": "P"
}Response example
{
"responseCode": 100,
"responseMessage": "Success",
"data": {
"serviceCharge": "05.00",
"exRate": "00.7874",
"payoutCurrencyCode": "GBP",
"currDecimal": "0",
"collectionAmount": "46.91",
"transferAmount": "41.91",
"payoutAmount": "33.00"
}
}Account Validation
Validates the receiver's bank account.
| Parameter | Type | Description | Requirement |
|---|---|---|---|
partnerSessionId | String | Unique random value | M |
receiverFullName | String | Full name of receiver | M |
bankId | String | Bank ID returned by Get Bank | M |
receiverCountry | String | Country of receiver | M |
accountNumber | String | Receiver account number | M |
Request example
{
"partnerSessionId": "PARTNER-XXX-SESSION-ID1",
"receiverFullName": "Jhon Doe",
"bankId": "IME0000843",
"receiverCountry": "NP",
"accountNumber": "124242545555555"
}Response parameters
| Response code | Sub-code | Description |
|---|---|---|
| 100 | 0 | Validate success |
| 101 | 01 | Account name mismatch |
| 101 | 02 | Invalid account number |
| 101 | 03 | Invalid request / validation failed |
| 101 | 04 | Account number of receiver |
| 101 | 05 | Invalid bank / routing code |
| 101 | 06 | Account blocked |
| 999 | — | Technical error occurred |
Create Transaction
This mandatory method initiates a new transaction to the payout agent.
Session and sender details
| Group | Parameter | Type | Max length | Description | Requirement |
|---|---|---|---|---|---|
| Session | partnerSessionId | String | 15 | Unique random value | M |
| Sender details | senderCustomerType | String | 1 | I for individual, B for business | M |
senderFirstName | String | 20 | Required for individual sender | Conditional | |
senderMiddleName | String | 20 | Middle name of sender | O | |
senderLastName | String | 20 | Required for individual sender | Conditional | |
senderDOB | String | 10 | Required for individual sender | Conditional | |
senderIdType | String | 15 | Get from Get Code; required for individual sender | Conditional | |
senderGender | String | 1 | M, F or O; required for individual sender | Conditional | |
senderIdNo | String | 20 | Required for individual sender | Conditional | |
senderIdIssueDate | String | 10 | Required for individual sender | Conditional | |
senderIdValidDate | String | 10 | Required for individual sender | Conditional | |
senderMobile | String | 15 | Mobile number of sender | — | |
senderEmail | String | 25 | Email address of sender | M | |
senderNativeCountryCode | String | 3 | Native country code of sender | M | |
| Sender details | senderCity | String | 15 | City of sender | O |
| Sender details | senderAddress | String | 20 | Address of sender | M |
Sender company details
| Parameter | Type | Max length | Description | Requirement |
|---|---|---|---|---|
companyName | String | 100 | Required for business sender | Conditional |
invoiceNumber | String | 30 | Required for business sender | Conditional |
vatOrTaxNumber | String | 30 | Required for business sender | Conditional |
establishedDate | String | 10 | Required for business sender | Conditional |
registrationType | String | 15 | Get from Get Code; required for business sender | Conditional |
registrationNumber | String | 30 | Required for business sender | Conditional |
registrationIssueDate | String | 10 | Required for business sender | Conditional |
registrationExpiryDate | String | 10 | Required for business sender | Conditional |
extra1 | String | 50 | Optional field | O |
extra2 | String | 50 | Optional field | O |
extra3 | String | 50 | Optional field | O |
Receiver details
| Parameter | Type | Max length | Description | Requirement |
|---|---|---|---|---|
receiverCustomerType | String | 1 | I for individual, B for business | M |
receiverFirstName | String | 20 | Required for individual receiver | Conditional |
receiverMiddleName | String | 20 | Middle name of beneficiary | O |
receiverLastName | String | 20 | Required for individual receiver | Conditional |
receiverIdType | String | 15 | ID type of beneficiary | O |
receiverIdNo | String | 20 | ID number of beneficiary | O |
receiverIdIssueDate | String | 10 | ID issue date of beneficiary | O |
receiverIdValidDate | String | 10 | ID valid date of beneficiary | O |
receiverMobile | String | 15 | Mobile number of beneficiary | M |
receiverCity | String | 15 | City of receiver | O |
receiverAddress | String | 20 | Receiver address | M |
receiverEmail | String | 20 | Email address of receiver | O |
routingNumber/SortCode | String | — | Required for Bank Deposit | Conditional |
accountNo/IBAN | String | — | Required for Bank Deposit | Conditional |
Receiver company details
| Parameter | Type | Max length | Description | Requirement |
|---|---|---|---|---|
companyName | String | 50 | Required for business receiver | Conditional |
invoiceNumber | String | 50 | Required for business receiver | Conditional |
vatOrTaxNumber | String | 30 | Required for business receiver | Conditional |
establishedDate | String | 10 | Required for business receiver | Conditional |
registrationType | String | 15 | Get from Get Code; required for business receiver | Conditional |
registrationNumber | String | 30 | Required for business receiver | Conditional |
registrationIssueDate | String | 10 | Required for business receiver | Conditional |
registrationExpiryDate | String | 10 | Required for business receiver | Conditional |
extra1 | String | 50 | Optional field | O |
extra2 | String | 50 | Optional field | O |
extra3 | String | 50 | Optional field | O |
Remittance details
| Parameter | Type | Max length | Description | Requirement |
|---|---|---|---|---|
sendingCountryCode | String | 3 | Country code of sending country | M |
payoutCountryCode | String | 3 | Country code of receiving country | M |
payoutTypeCode | String | 2 | Payment type from Get Code | M |
payoutBankCode | String | 10 | Bank code from Get Bank; required for Bank Deposit | Conditional |
payoutBranchCode | String | 10 | Payout branch code | O |
remittancePurpose | String | 20 | Purpose from Get Code | M |
otherPurposeOfRemittance | String | 30 | Required when purpose is "Other" (document example ID 11347) | Conditional |
sourceOfFund | String | 20 | Source of fund from Get Code | M |
otherSourceOfFund | String | 30 | Required when source is "Other" (document example ID 11417) | Conditional |
relationship | String | 20 | Receiver relationship from Get Code | M |
otherRelationship | String | 30 | Required when relationship is "Other" (document example ID 11339) | Conditional |
occupation | String | 20 | Occupation from Get Code | M |
otherOccupation | String | 30 | Required when occupation is "Other" | Conditional |
calcBy | String | 1 | C by sending amount; P by payout amount | M |
payoutCurrencyCode | String | 3 | Currency code of receiving country | M |
sendingCurrencyCode | String | 3 | Currency code of sending country | M |
payoutAmount | String | 10 | Receiving amount from Exchange Rate | M |
partnerTransactionId | String | 10 | Partner transaction ID | M |
Individual customer request example
{
"partnerSessionId": "SADASD234432SDDSA",
"remitSenderDetails": {
"SenderCustomerType": "I",
"senderFirstName": "John",
"senderMiddleName": "",
"senderLastName": "Doe",
"senderDOB": "2000-10-01",
"senderIdType": "10997",
"senderIdNo": "9861100000",
"senderIdIssuedDate": "2022-01-01",
"senderIdValidDate": "2030-01-01",
"senderMobile": "986151172883",
"senderNativeCountryCode": "NP",
"senderCity": "London",
"senderAddress": "London, UK",
"senderEmail": "johndoe@gmail.com",
"senderGender": "M"
},
"remitReceiverDetails": {
"receiverCustomerType": "I",
"receiverFirstName": "John",
"receiverMiddleName": "",
"receiverLastName": "Doe",
"receiverIdType": "10997",
"receiverIdNo": "19281982",
"receiverIdIssued": "2022-01-01",
"receiverIdValid": "2030-01-01",
"receiverMobile": "91111111183",
"receiverCity": "KATHMANDU",
"receiverAddress": "KOTESHWOR-32, KATHMANDU, NEPAL",
"accountNo/IBAN": "526598989",
"routingNumber/SortCode": "535353",
"receiverEmail": "johndoe@gmail.com"
},
"remittanceDetails": {
"sendingCountryCode": "KR",
"payoutCountryCode": "UK",
"payoutTypeCode": "BD",
"payoutBankCode": "IME0001495",
"payoutBankBranchCode": "",
"payoutCurrencyCode": "GBP",
"sendingCurrencyCode": "USD",
"payoutAmount": "33.00",
"remittancePurpose": "11411",
"otherPurposeOfRemittance": "",
"sourceOfFund": "11416",
"otherSourceOfFund": "",
"relationship": "11338",
"otherRelationship": "",
"occupation": "11463",
"otherOccupation": "",
"calcBy": "P"
},
"partnerTransactionId": "2222121117"
}Business customer request example
{
"partnerSessionId": "454788",
"RemitSenderDetails": {
"SenderCustomerType": "B",
"SenderFirstName": "",
"SenderMiddleName": "",
"SenderLastName": "",
"SenderDOB": "",
"SenderIdType": "",
"SenderIdNo": "",
"SenderIdIssuedDate": "",
"SenderIdValidDate": "",
"SenderMobile": "01072769833",
"SenderNativeCountryCode": "NP",
"SenderCity": "Seoul",
"SenderAddress": "jeju",
"SenderEmail": "johndoe2000@gmail.com",
"SenderGender": "",
"companyDetails": {
"companyName": "Abc Company",
"invoiceNumber": "15451",
"vatOrTaxNumber": "6741634",
"establishedDate": "2014-08-05",
"registrationType": "11513",
"registrationNumber": "15475457",
"registrationIssueDate": "2014-08-05",
"registrationExpiryDate": "2030-08-05",
"extra1": "string",
"extra2": "string",
"extra3": "string"
}
},
"RemitReceiverDetails": {
"receiverCustomerType": "B",
"ReceiverFirstName": "",
"ReceiverMiddleName": "",
"ReceiverLastName": "",
"ReceiverIdType": "",
"ReceiverIdNo": "",
"ReceiverIdIssuedDate": null,
"ReceiverIdValidDate": null,
"ReceiverMobile": "7760722668",
"ReceiverCity": "B70 9HW 11 BRIDGE STREET",
"ReceiverAddress": "B70 9HW 11 BRIDGE STREET",
"AccountNo/IBAN": "11111111",
"ReceiverEmail": "dineshguragain2000@gmail.com",
"RoutingNumber/SortCode": "232221",
"companyDetails": {
"companyName": "Xyz Company",
"invoiceNumber": "66464",
"vatOrTaxNumber": "6355652",
"establishedDate": "2022-02-21",
"registrationType": "11513",
"registrationNumber": "string",
"registrationIssueDate": "2022-03-29",
"registrationExpiryDate": "2025-12-30",
"extra1": "string",
"extra2": "string",
"extra3": "string"
}
},
"RemittanceDetails": {
"SendingCountryCode": "KR",
"PayoutCountryCode": "UK",
"PayoutTypeCode": "BD",
"PayoutBankCode": "IME0001969",
"PayoutBankBranchCode": "BG",
"PayoutCurrencyCode": "GBP",
"SendingCurrencyCode": "USD",
"PayoutAmount": "1000",
"RemittancePurpose": "11414",
"OtherPurposeOfRemittance": "Family Maintenance",
"SourceOfFund": "11417",
"OtherSourceOfFund": "Family maintenance",
"Relationship": "11392",
"OtherRelationship": "Sister",
"Occupation": "11383",
"OtherOccupation": "Other",
"CalcBy": "P"
},
"PartnerTransactionId": "0000114"
}Response example
{
"responseCode": 100,
"responseMessage": "Transaction is successful!",
"data": {
"imeControlNo": "779201792348",
"partnerTransactionId": "2222122222201117",
"status": "Hold",
"serviceCharge": "05.00",
"collectionAmount": "50.00",
"transferAmount": "45.00",
"payoutAmount": "33.00",
"exRate": "00.7519"
}
}Transaction Status
Returns the current status of a transaction using the partner session and transaction identifiers.
| Parameter | Type | Description | Requirement |
|---|---|---|---|
partnerSessionId | String | Partner session ID | M |
partnerTransactionId | String | Partner transaction ID | M |
imeControlNo | String | IME control number | M |
Request example
{
"partnerSessionId": "PARTNER-XXX-SESSION-ID1",
"imeControlNo": "779206107142",
"partnerTransactionId": ""
}Response example
{
"responseCode": 100,
"responseMessage": "Success",
"data": {
"imeControlNo": "779201792348",
"status": "Hold",
"message": "Transaction is waiting for approval!"
}
}Status meanings
| Response code | Status |
|---|---|
| 100 | Success |
| 101 | Failed |
