Introduction
Welcome to RemitFX API.
API Endpoint
https://remitfx.uat.moneymatch.xyz (UAT environment)
Authentication
Get an access token
Authorize a client to access the user's account.
Please be noted this api is throttle to 5 calls per minute.
Include your access_token
to prove your identity and access protected resources.
The expires_in
attribute contains the number of seconds until the access token expires.
Example request:
curl -X POST "http://mm-remitfx.test/api/v1/oauth/token" \
-H "Content-Type: application/json" \
-d '{"grant_type":"client_credentials","client_id":"{your-client-id}","client_secret":"{your-client-secret}"}'
const url = new URL("http://mm-remitfx.test/api/v1/oauth/token");
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
}
let body = {
"grant_type": "client_credentials",
"client_id": "{your-client-id}",
"client_secret": "{your-client-secret}"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"token_type": "Bearer",
"expires_in": 21600,
"access_token": "{your-access-token}"
}
HTTP Request
POST api/v1/oauth/token
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
grant_type | string | required | grant type. |
client_id | string | required | Production client id can be retrieve here. |
client_secret | string | required | Production client secret can be retrieve here. |
Reference
Nationalities
Requires authentication
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/references/nationalities" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/references/nationalities");
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": [
{
"code": "AF",
"name": "Afghanistan"
},
{
"code": "AL",
"name": "Albania"
},
"..."
]
}
HTTP Request
GET api/v1/references/nationalities
Countries
Requires authentication
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/references/countries" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/references/countries");
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": [
{
"id": 1,
"code": "MY",
"name": "Malaysia"
},
{
"id": 2,
"code": "SG",
"name": "Singapore"
},
"..."
]
}
HTTP Request
GET api/v1/references/countries
Banks
Requires authentication
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/references/banks" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/references/banks");
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": [
{
"beneficiary_country": "MY",
"name": "HSBC BANK",
"bank_identifier": "HSBC"
},
{
"beneficiary_country": "MY",
"name": "MAYBANK",
"bank_identifier": "MBB"
},
{
"beneficiary_country": "MY",
"name": "HONG LEONG BANK BERHAD",
"bank_identifier": "HLBB"
},
"..."
]
}
HTTP Request
GET api/v1/references/banks
Customer Types
Requires authentication
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/references/customer-types" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/references/customer-types");
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": [
"individual",
"business"
]
}
HTTP Request
GET api/v1/references/customer-types
Relationships
Requires authentication
Please select the respective option by type_of_customer
and type_of_beneficiary
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/references/relationships" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/references/relationships");
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": [
{
"type_of_customer": "INDIVIDUAL",
"type_of_beneficiary": "INDIVIDUAL",
"name": "SELF"
},
{
"type_of_customer": "INDIVIDUAL",
"type_of_beneficiary": "BUSINESS",
"name": "BANKING_PROVIDER"
},
{
"type_of_customer": "BUSINESS",
"type_of_beneficiary": "BUSINESS",
"name": "TRADE_SUPPLIER"
},
"..."
]
}
HTTP Request
GET api/v1/references/relationships
Regency Codes
Requires authentication
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/references/regency-codes" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/references/regency-codes");
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": [
{
"name": "KAB. ACEH SELATAN",
"code": "1101"
},
{
"name": "KAB. ACEH TENGGARA",
"code": "1102"
},
"..."
]
}
HTTP Request
GET api/v1/references/regency-codes
Purpose
Requires authentication
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/references/purposes" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/references/purposes");
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": [
{
"sender_type": "individual",
"name": "Donation or gifts"
},
{
"sender_type": "individual",
"name": "Education"
},
{
"sender_type": "individual",
"name": "Family maintenance"
},
"..."
]
}
HTTP Request
GET api/v1/references/purposes
Source of funds
Requires authentication
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/references/source-of-funds" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/references/source-of-funds");
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": [
"ADDITIONAL_INCOME",
"BUSINESS_INCOME",
"SALARY",
"FAMILY_WEALTH",
"LOAN_FACILITY",
"PRIZES_OR_WINNINGS",
"INVESTMENT_GAINS",
"SAVINGS",
"RETAINED_EARNINGS",
"PAID_UP_CAPITAL"
]
}
HTTP Request
GET api/v1/references/source-of-funds
Australian States
Requires authentication
Only used for Australian beneficiaries
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/references/australian-states" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/references/australian-states");
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": [
"New South Wales",
"Queensland",
"South Australia",
"..."
]
}
HTTP Request
GET api/v1/references/australian-states
Australian Suburbs
Requires authentication
Only used for Australian beneficiaries
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/references/australian-suburbs" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/references/australian-suburbs");
let params = {
"state_name": "facilis",
};
Object.keys(params).forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": [
{
"name": "Acton",
"state_name": "Australian Capital Territory"
},
{
"name": "Ainslie",
"state_name": "Australian Capital Territory"
},
{
"name": "Amaroo",
"state_name": "Australian Capital Territory"
},
{
"name": "Aranda",
"state_name": "Australian Capital Territory"
},
{
"name": "Australian National University",
"state_name": "Australian Capital Territory"
},
{
"name": "Banks",
"state_name": "Australian Capital Territory"
},
{
"name": "Barton",
"state_name": "Australian Capital Territory"
},
"..."
]
}
HTTP Request
GET api/v1/references/australian-suburbs
Query Parameters
Parameter | Status | Description |
---|---|---|
state_name | optional | The name of the Australian state |
Transfer
List transfers
Requires authentication
Result are paginated
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/transfers" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/transfers");
let params = {
"page": "8",
"before": "2019-05-13 11:20:10",
"after": "2019-05-13 11:20:10",
};
Object.keys(params).forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": [
{
"id": 1,
"ref": "RFX5B48YXT1",
"sender_name": "Chris Evans",
"sender_id_no": "901225065203",
"sender_date_of_birth": "1981-06-13",
"sender_nationality": "AU",
"sender_address": "1873 Meadowview Drive",
"occupation_or_business_type": "actor",
"type_of_customer": "INDIVIDUAL",
"purpose": "EDUCATION",
"source_of_fund": "SAVINGS",
"beneficiary_name": "Steve Rogers",
"beneficiary_id_no": "921225065203",
"source_country": "AU",
"type_of_beneficiary": "INDIVIDUAL",
"bank_name": "RHB BANK BERHAD",
"account_no": "774738222",
"relationship": "SIBLINGS",
"to_amount": 1000.5,
"rate": 4.1382,
"to_currency": "MYR",
"from_amount": 241.77,
"from_currency": "USD",
"fee_amount": 2,
"fee_currency": "USD",
"sender_remark": "expedita",
"partner_transaction_id": "enim",
"status": "Pending",
"created_at": "2019-05-08 01:29:22",
"updated_at": "2019-05-08 01:29:22"
},
"..."
],
"links": {
"first": "{endpoint}\/api\/{version}\/transfers?page=1",
"last": "{endpoint}\/api\/{version}\/transfers?page=7",
"prev": null,
"next": "{endpoint}\/api\/{version}\/transfers?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 7,
"path": "{endpoint}\/api\/{version}\/transfers",
"per_page": 20,
"to": 20,
"total": 139
}
}
HTTP Request
GET api/v1/transfers
Query Parameters
Parameter | Status | Description |
---|---|---|
page | optional | The page number to return |
before | optional | To filter by transfers created before a specific timestamp. |
after | optional | To filter by transfers created after a specific timestamp. |
Create a transfer
Requires authentication
Example request:
curl -X POST "http://mm-remitfx.test/api/v1/transfers" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"sender_name":"Chris Evans","sender_id_no":"901225065203","sender_date_of_birth":"1981-06-13","sender_nationality":"AU","sender_address":"1873 Meadowview Drive","sender_occupationnature_of_business":"actor","type_of_customer":"INDIVIDUAL","purpose":"EDUCATION","source_of_fund":"SAVINGS","beneficiary_name":"Steve Rogers","type_of_beneficiary":"INDIVIDUAL","source_country":"AU","beneficiary_id_no":"921225065203","bank_name":"RHB BANK BERHAD","swift_code":"BOFAUS3N","account_no":"774738222","relationship":"SIBLINGS","sender_remark":"monthly allowance","partner_transaction_id":"REF7423918","to_amount":1000.5,"to_currency":"MYR","sender_id_type":"NRIC","sender_contact_no":"01731374890","sender_city":"Sydney","sender_country":"AU","beneficiary_id_type":"PASSPORT","beneficiary_address":"1873 Meadowview Drive","beneficiary_city":"Kuala Lumpur","beneficiary_country":"MY","bank_account_title":"Steve Rogers","beneficiary_bank_address":"RHB Centre, Jalan Tun Razak, 50400 Kuala Lumpur","branch_name":"6000 Wellington","branch_code":"064158","iban_no":"GB33BUKB20201555555555","sort_code":"560003","bank_address":"23 Zhongshan East 1st Rd, Wai Tan, Huangpu Qu, Shanghai Shi, China","routing_number":"122235821","account_type":"Savings","clabe":"031597563218794125","tax_registration_number":"91903840192423","transit_number":"04625","institution_number":"012","home_city":"Jakarta","home_address":"73, Jalan Cilaki","home_postal_code":"11130","home_country_iso":"10","home_state":"Australian Capital Territory","home_suburb":"Amaroo","owner_phone_number":"1065529988","pic_name":"Li Xiaoming","cnaps":"50122200000017","regency_code":"1109"}'
const url = new URL("http://mm-remitfx.test/api/v1/transfers");
let headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
}
let body = {
"sender_name": "Chris Evans",
"sender_id_no": "901225065203",
"sender_date_of_birth": "1981-06-13",
"sender_nationality": "AU",
"sender_address": "1873 Meadowview Drive",
"sender_occupationnature_of_business": "actor",
"type_of_customer": "INDIVIDUAL",
"purpose": "EDUCATION",
"source_of_fund": "SAVINGS",
"beneficiary_name": "Steve Rogers",
"type_of_beneficiary": "INDIVIDUAL",
"source_country": "AU",
"beneficiary_id_no": "921225065203",
"bank_name": "RHB BANK BERHAD",
"swift_code": "BOFAUS3N",
"account_no": "774738222",
"relationship": "SIBLINGS",
"sender_remark": "monthly allowance",
"partner_transaction_id": "REF7423918",
"to_amount": 1000.5,
"to_currency": "MYR",
"sender_id_type": "NRIC",
"sender_contact_no": "01731374890",
"sender_city": "Sydney",
"sender_country": "AU",
"beneficiary_id_type": "PASSPORT",
"beneficiary_address": "1873 Meadowview Drive",
"beneficiary_city": "Kuala Lumpur",
"beneficiary_country": "MY",
"bank_account_title": "Steve Rogers",
"beneficiary_bank_address": "RHB Centre, Jalan Tun Razak, 50400 Kuala Lumpur",
"branch_name": "6000 Wellington",
"branch_code": "064158",
"iban_no": "GB33BUKB20201555555555",
"sort_code": "560003",
"bank_address": "23 Zhongshan East 1st Rd, Wai Tan, Huangpu Qu, Shanghai Shi, China",
"routing_number": "122235821",
"account_type": "Savings",
"clabe": "031597563218794125",
"tax_registration_number": "91903840192423",
"transit_number": "04625",
"institution_number": "012",
"home_city": "Jakarta",
"home_address": "73, Jalan Cilaki",
"home_postal_code": "11130",
"home_country_iso": "10",
"home_state": "Australian Capital Territory",
"home_suburb": "Amaroo",
"owner_phone_number": "1065529988",
"pic_name": "Li Xiaoming",
"cnaps": "50122200000017",
"regency_code": "1109"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": {
"id": 1,
"ref": "RFX5B48YXT1",
"sender_name": "Chris Evans",
"sender_id_no": "901225065203",
"sender_date_of_birth": "1981-06-13",
"sender_nationality": "AU",
"sender_address": "1873 Meadowview Drive",
"occupation_or_business_type": "actor",
"type_of_customer": "INDIVIDUAL",
"purpose": "EDUCATION",
"source_of_fund": "SAVINGS",
"beneficiary_name": "Steve Rogers",
"beneficiary_id_no": "921225065203",
"source_country": "AU",
"type_of_beneficiary": "INDIVIDUAL",
"bank_name": "RHB BANK BERHAD",
"account_no": "774738222",
"relationship": "SIBLINGS",
"to_amount": 1000.5,
"rate": 4.1382,
"to_currency": "MYR",
"from_amount": 241.77,
"from_currency": "USD",
"fee_amount": 2,
"fee_currency": "USD",
"sender_remark": "expedita",
"partner_transaction_id": "enim",
"status": "Pending",
"created_at": "2019-05-08 01:29:22",
"updated_at": "2019-05-08 01:29:22"
}
}
HTTP Request
POST api/v1/transfers
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
sender_name | string | required | Sender name. |
sender_id_no | alphanumeric | required | Sender ID number. |
sender_date_of_birth | date:Y-m-d | required | Sender date of birth. Required if type_of_customer is INDIVIDUAL . |
sender_nationality | string | required | Sender nationality country code in ISO 3166-2 format. Required if to_currency is not MYR . |
sender_address | string | required | Sender current address. Required if to_currency is not MYR . |
sender_occupationnature_of_business | string | required | Sender occupation or nature of business. Required if to_currency is not MYR . |
type_of_customer | string | required | Type of customer, eg. INDIVIDUAL or BUSINESS. |
purpose | string | required | Purpose of transfer. |
source_of_fund | string | required | Source of fund. |
beneficiary_name | string | required | Beneficiary name. |
type_of_beneficiary | string | required | beneficiary type, eg. INDIVIDUAL or BUSINESS. |
source_country | string | required | Transaction source country in ISO 3166-2 format. |
beneficiary_id_no | alphanumeric | required | Beneficiary ID number. Required if to_currency is not MYR . |
bank_name | string | required | Beneficiary bank name. Please refer to api/v1/references/banks for bank list. |
swift_code | string | required | bank address. Required if to_currency is not MYR . |
account_no | alphanumeric | required | Beneficiary bank account number. |
relationship | string | required | Beneficiary relationship to sender. Please refer to api/v1/references/relationships for relationship list. |
sender_remark | string | required | sender remark. |
partner_transaction_id | string | optional | optional Partner transaction id. |
to_amount | float | required | Amount to transfer. |
to_currency | string | required | Currency to transfer. |
sender_id_type | string | required | Sender ID type, e.g. NRIC, PASSPORT, GOVERNMENT_ISSUED_ID or BUSINESS_REGISTRATION_NUMBER. Required if to_currency is not MYR . |
sender_contact_no | numeric | required | Sender contact number. Required if to_currency is not MYR . |
sender_city | string | required | Sender city name. Required if to_currency is not MYR . |
sender_country | string | required | Sender country name in ISO 3166-2 format. Required if to_currency is not MYR . |
beneficiary_id_type | string | required | Beneficiary ID type, e.g. NRIC, PASSPORT, GOVERNMENT_ISSUED_ID or BUSINESS_REGISTRATION_NUMBER. Required if to_currency is not MYR . |
beneficiary_address | string | required | Beneficiary address. Required if to_currency is not MYR . |
beneficiary_city | string | required | Beneficiary city name. Required if to_currency is not MYR . |
beneficiary_country | string | required | Beneficiary country code in ISO 3166-2 format. |
bank_account_title | string | required | Name of beneficiary bank account holder. Required if to_currency is not MYR . |
beneficiary_bank_address | string | required | Beneficiary bank address. Required if to_currency is not MYR . |
branch_name | string | optional | Beneficiary bank branch name. Required if beneficiary_country is any one of the following: IN, BD, VN, LK, NZ . |
branch_code | alphanumeric | optional | Beneficiary bank branch code. Required if beneficiary_country is any one of the following: IN, BD, AU, HK, BR . |
iban_no | alphanumeric | optional | Beneficiary bank IBAN number. Required if beneficiary_country is any one of the following: GB, DE, ES, CZ, DK, HU, NO, PL, SE, SA, TR, BG, HR, PK, RO, BE, EE, FI, FR, GR, IE, IT, LT, LU, MT, MC, NL, PT, SM, AT, AE, VA, CH, BR, LV . |
sort_code | alphanumeric | optional | Beneficiary bank sort code. Required if beneficiary_country is UK . |
bank_address | string | optional | Beneficiary bank address. Required if beneficiary_country is CN . |
routing_number | alphanumeric | optional | Beneficiary bank routing number. Required if beneficiary_country is US . |
account_type | string | optional | Beneficiary bank account type, e.g. Savings, Checkings. Required if beneficiary_country is any one of the following: US, KH, BR . |
clabe | alphanumeric | optional | Beneficiary bank account CLABE number. Required if beneficiary_country is MX . |
tax_registration_number | alphanumeric | optional | Beneficiary tax registration number. Required if beneficiary_country is BR . |
transit_number | alphanumeric | optional | Beneficiary bank transit number. Required if beneficiary_country is any one of the following: CA, HK . |
institution_number | alphanumeric | optional | Beneficiary bank institution number. Required if beneficiary_country is CA . |
home_city | string | optional | Beneficiary home city. Required if type_of_beneficiary is INDIVIDUAL , and beneficiary_country is any one of the following: AU, ID |
home_address | string | optional | Beneficiary home address. Required if type_of_beneficiary is INDIVIDUAL , and beneficiary_country is any one of the following: AU, ID . |
home_postal_code | alphanumeric | optional | Beneficiary home postal code. Required if type_of_beneficiary is INDIVIDUAL , and beneficiary_country is any one of the following: AU, ID . |
home_country_iso | alphanumeric | optional | Beneficiary home country ID. Required if type_of_beneficiary is INDIVIDUAL , and beneficiary_country is any one of the following: AU, ID . Please refer to api/v1/references/countries for list of country IDs. |
home_state | alphanumeric | optional | Beneficiary home state. Required if beneficiary_country is AU . |
home_suburb | alphanumeric | optional | Beneficiary home suburb. Required if beneficiary_country is AU |
owner_phone_number | alphanumeric | optional | Beneficiary owner phone number. Required if type_of_beneficiary is BUSINESS , and beneficiary_country is CN . |
pic_name | string | optional | Beneficiary business person in charge name. Required if type_of_beneficiary is BUSINESS , and beneficiary_country is CN . |
cnaps | string | optional | Beneficiary bank CNAPS code. Required if type_of_beneficiary is BUSINESS , beneficiary_country is CN and to_currency is CNY . |
regency_code | Beneficiary | optional | regency code. Required if beneficiary_country is ID . Please refer to api/v1/references/regency-codes for list of regency codes. |
Get a transfer
Requires authentication
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/transfers/1" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/transfers/1");
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": {
"id": 1,
"ref": "RFX5B48YXT1",
"sender_name": "Chris Evans",
"sender_id_no": "901225065203",
"sender_date_of_birth": "1981-06-13",
"sender_nationality": "AU",
"sender_address": "1873 Meadowview Drive",
"occupation_or_business_type": "actor",
"type_of_customer": "INDIVIDUAL",
"purpose": "EDUCATION",
"source_of_fund": "SAVINGS",
"beneficiary_name": "Steve Rogers",
"beneficiary_id_no": "921225065203",
"source_country": "AU",
"type_of_beneficiary": "INDIVIDUAL",
"bank_name": "RHB BANK BERHAD",
"account_no": "774738222",
"relationship": "SIBLINGS",
"to_amount": 1000.5,
"rate": 4.1382,
"to_currency": "MYR",
"from_amount": 241.77,
"from_currency": "USD",
"fee_amount": 2,
"fee_currency": "USD",
"sender_remark": "expedita",
"partner_transaction_id": "enim",
"status": "Pending",
"created_at": "2019-05-08 01:29:22",
"updated_at": "2019-05-08 01:29:22"
}
}
HTTP Request
GET api/v1/transfers/{transfer}
Cancel a transfer
Requires authentication
Only applicable to transfer in 'pending' status
Example request:
curl -X POST "http://mm-remitfx.test/api/v1/transfers/1/cancel" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/transfers/1/cancel");
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": {
"id": 1,
"ref": "RFX5B48YXT1",
"sender_name": "Chris Evans",
"sender_id_no": "901225065203",
"sender_date_of_birth": "1981-06-13",
"sender_nationality": "AU",
"sender_address": "1873 Meadowview Drive",
"occupation_or_business_type": "actor",
"type_of_customer": "INDIVIDUAL",
"purpose": "EDUCATION",
"source_of_fund": "SAVINGS",
"beneficiary_name": "Steve Rogers",
"beneficiary_id_no": "921225065203",
"source_country": "AU",
"type_of_beneficiary": "INDIVIDUAL",
"bank_name": "RHB BANK BERHAD",
"account_no": "774738222",
"relationship": "SIBLINGS",
"to_amount": 1000.5,
"rate": 4.1382,
"to_currency": "MYR",
"from_amount": 241.77,
"from_currency": "USD",
"fee_amount": 2,
"fee_currency": "USD",
"sender_remark": "expedita",
"partner_transaction_id": "enim",
"status": "Cancelled",
"created_at": "2019-05-08 01:29:22",
"updated_at": "2019-05-08 01:29:22"
}
}
HTTP Request
POST api/v1/transfers/{transfer}/cancel
Get a quotation
Requires authentication
Example request:
curl -X POST "http://mm-remitfx.test/api/v1/quote" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"to_currency":"MYR","to_amount":1000,"from_amount":1000}'
const url = new URL("http://mm-remitfx.test/api/v1/quote");
let headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
}
let body = {
"to_currency": "MYR",
"to_amount": 1000,
"from_amount": 1000
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": {
"from_currency": "USD",
"from_amount": 86.99,
"to_currency": "SGD",
"to_amount": 99.2,
"rate": 1.14039,
"quoted_at": "2019-11-28 16:41:47"
}
}
HTTP Request
POST api/v1/quote
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
to_currency | string | required | Quote currency to transfer. |
to_amount | float | required | Required if from_amount is not provided. Quote amount to transfer. Accept numeric with up to 2 decimal places. |
from_amount | float | required | Required if to_amount is not provided. Quote by from amount. Accept numeric with up to 2 decimal places. |
Wallet
List transactions
Requires authentication
Result are paginated
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/transactions" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/transactions");
let params = {
"page": "7",
"before": "2019-05-13 11:20:10",
"after": "2019-05-13 11:20:10",
};
Object.keys(params).forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": [
{
"id": 222,
"type": "Fee",
"order_ref": "RFX1H3D7DNA",
"amount_on_rate": "",
"wallet_value": -2,
"previous_balance": 4835.39,
"wallet_balance": 4833.39,
"created_at": "2019-05-08 01:29:22",
"updated_at": "2019-05-08 01:29:22"
},
{
"id": 221,
"type": "Send",
"order_ref": "RFX1H3D7DNA",
"amount_on_rate": "USD 362.48 \/ 4.1382",
"wallet_value": -362.48,
"previous_balance": 5197.87,
"wallet_balance": 4835.39,
"created_at": "2019-05-08 01:29:22",
"updated_at": "2019-05-08 01:29:22"
},
"..."
],
"links": {
"first": "{endpoint}\/api\/{version}\/transactions?page=1",
"last": "{endpoint}\/api\/{version}\/transactions?page=7",
"prev": null,
"next": "{endpoint}\/api\/{version}\/transactions?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 7,
"path": "{endpoint}\/api\/{version}\/transactions",
"per_page": 20,
"to": 20,
"total": 139
}
}
HTTP Request
GET api/v1/transactions
Query Parameters
Parameter | Status | Description |
---|---|---|
page | optional | The page number to return |
before | optional | To filter by transactions created before a specific timestamp. |
after | optional | To filter by transactions created after a specific timestamp. |
Get your wallet balance
Requires authentication
Example request:
curl -X GET -G "http://mm-remitfx.test/api/v1/balance" \
-H "Authorization: Bearer {token}"
const url = new URL("http://mm-remitfx.test/api/v1/balance");
let headers = {
"Authorization": "Bearer {token}",
"Accept": "application/json",
"Content-Type": "application/json",
}
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": {
"amount": "4833.39",
"currency": "USD"
}
}
HTTP Request
GET api/v1/balance