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 "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