NAV
bash javascript

Introduction

Welcome to RemitFX API.

Get Postman Collection

Get Postman Environment

API Endpoint

https://remitfx.moneymatch.co

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 "https://remitfx.moneymatch.co/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("https://remitfx.moneymatch.co/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 "https://remitfx.moneymatch.co/api/v1/references/nationalities" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/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 "https://remitfx.moneymatch.co/api/v1/references/countries" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/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 "https://remitfx.moneymatch.co/api/v1/references/banks" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/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 "https://remitfx.moneymatch.co/api/v1/references/customer-types" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/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 "https://remitfx.moneymatch.co/api/v1/references/relationships" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/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"
        },
        {
            "sender_type": "individual",
            "name": "spouse"
        },
        "..."
    ]
}

HTTP Request

GET api/v1/references/relationships

Regency Codes


Requires authentication

Example request:

curl -X GET -G "https://remitfx.moneymatch.co/api/v1/references/regency-codes" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/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 "https://remitfx.moneymatch.co/api/v1/references/purposes" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/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 "https://remitfx.moneymatch.co/api/v1/references/source-of-funds" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/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 "https://remitfx.moneymatch.co/api/v1/references/australian-states" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/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 "https://remitfx.moneymatch.co/api/v1/references/australian-suburbs" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/api/v1/references/australian-suburbs");

    let params = {
            "state_name": "dicta",
        };
    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 "https://remitfx.moneymatch.co/api/v1/transfers" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/api/v1/transfers");

    let params = {
            "page": "1",
            "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 "https://remitfx.moneymatch.co/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_id":"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("https://remitfx.moneymatch.co/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_id": "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_id 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 "https://remitfx.moneymatch.co/api/v1/transfers/1" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/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 "https://remitfx.moneymatch.co/api/v1/transfers/1/cancel" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/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 "https://remitfx.moneymatch.co/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("https://remitfx.moneymatch.co/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 "https://remitfx.moneymatch.co/api/v1/transactions" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/api/v1/transactions");

    let params = {
            "page": "2",
            "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 "https://remitfx.moneymatch.co/api/v1/balance" \
    -H "Authorization: Bearer {token}"
const url = new URL("https://remitfx.moneymatch.co/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

Webhook event notification

The RemitFX APIs use webhooks for event notification. Webhooks are HTTP callbacks that receive notification messages for events. You can set your webhook url on the admin dashboard to enable webhook notification.

Any response status code not in 2XX will be considered failed. We will attempt to deliver the notification up to 3 times, in 30 minutes interval.

Please be noted, only transfer created through api will trigger webhook notification.

Transfer status and events

Below are the list of transfer status and details

Status Description Trigger Webhook Event
Pending Transfer pending pick up by our team. Transfer can be cancel by partner in this status. No
Cancelled Partner cancelled transfer. No
Pending Document Additional document required to process the transfer. (DEPRECATED) Yes
Processing We are working on the transfer, and you will not be able to cancel the transfer when your transfer is processing. No
Rejected We are unable to process this transfer. The transfer amount is refunded to your wallet. Yes
Cleared Transfer is disbursed and cleared. Yes
Not Ready Transfer pending pick up by our team. Transfer can be cancel by partner in this status. No
In Transit We are working on the transfer, and you will not be able to cancel the transfer when your transfer is in transit. No
Refunding We are refunding transfer amount to your wallet. No
Refunding Failed We are unable to refund to your wallet. No