Remittance
Introduction
The Masspay payout instruction functionality is implemented to allow a user to perform multiple payout requests with a single click. Efficiency and productivity are the main drivers of this feature as it allows a user to perform up to 1000 payouts in a single operation.
The focus of this guide is remittances, via API, in currencies other than EUR or GBP. In order to make use of the remittance service, your ISX relationship manager needs to apply the relevant configuration settings.
Remittances (via API) in EUR or GBP are described here.
What is an Application Programming Interface (API)?
An API is a way for two or more apps to communicate with each other. An API is a type of software interface offering a service to other pieces of software. APIs work by sharing data between apps, systems, and devices. This happens through a request and response cycle. A user initiates a request for data by interacting with an app. The request is sent to an API, which retrieves the data and then returns it to a user. A document that describes how to build or use such a connection or interface is called an API specification.
This API documentation makes extensive use of country codes expressed as ISO 3166-1 Alpha-2 and currency codes expressed as ISO 4217. The links provide relevant reference material.
Authentication
The authentication process is described here.
If you require assistance, contact your Relationship Manager.
API batch request
The base stage URL is: https://masspay-api-stage.isxtech.com
The base production URL is: https://masspay-api.isxtech.com
Required transfer details
Request method: Post
Content-Type: application/json
Endpoint: /v2/remittance/required-transfer-details
Get the transfer required attributes for provider and currency.
Request body
{
"items": [
{
"toCurrency": "string",
"bankCountry": "string",
"beneficiaryCountry": "string",
"entityType": "BUSINESS/INDIVIDUAL"
}
]
}Example
{
"items": [
{
"to_currency": "CAD",
"bankCountry": "CA",
"beneficiaryCountry": "CA",
"entityType": "INDIVIDUAL"
}
]
}cURL
curl -X 'POST' \
'https://masspay-api-stage.isxtech.com/v2/remittance/required-transfer-details' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"items": [
{
"to_currency": "CAD",
"bankCountry": "CA",
"beneficiaryCountry": "CA",
"entity_type": "INDIVIDUAL"
}
]
}'Responses
Success
Content-Type: application/json
{
"items": [
{
"toCurrency": "CAD",
"bankCountry": "CA",
"beneficiaryCountry": "CA",
"entityType": "INDIVIDUAL",
"beneficiaryAttributes": [
{
"attributeName": "bankAccount.accountNumber",
"description": "Enter the beneficiary's bank account number."
},
{
"attributeName": "bankAccount.address.countryCode",
"description": "Select the country where the beneficiary's bank branch is located."
},
{
"attributeName": "bankAccount.address.stateOrProvince",
"description": "Enter the beneficiary bank's state or province"
},
{
"attributeName": "bankAccount.bankBranchCode",
"description": "Enter a valid 9-digit transit code. 4 digit bank number followed by 5 digit branch number."
},
{
"attributeName": "bankAccount.bankName",
"description": "Enter the name of the beneficiary bank."
},
{
"attributeName": "beneficiary.address.city",
"description": "Enter the beneficiary's city."
},
{
"attributeName": "beneficiary.address.countryCode",
"description": "Select the country of the beneficiary."
},
{
"attributeName": "beneficiary.address.line1",
"description": "Enter the full street address. PO Boxes and other invalid entries not allowed. Max length is 70 characters."
},
{
"attributeName": "beneficiary.address.stateOrProvince",
"description": "Enter the beneficiary's state or province."
},
{
"attributeName": "beneficiary.address.zipOrPostal",
"description": "Enter the beneficiary's postal code."
},
{
"attributeName": "beneficiary.firstName",
"description": "Enter the beneficiary's first name."
},
{
"attributeName": "beneficiary.lastName",
"description": "Enter the beneficiary's last name."
},
{
"attributeName": "payments.currencyCode",
"description": "Select the currency to pay the beneficiary."
}
]
}
]
}Error
This unsupported request:
{
"items": [
{
"toCurrency": "AUD",
"bankCountry": "CY",
"beneficiaryCountry": "CY",
"entityType": "INDIVIDUAL"
}
]
}would result in this:
{
"error_id": "ERR400RPIV",
"message": "Only ACH payment method is supported for remittance: [toCurrency: AUD, bankCountry: CY]",
"code": 400
}Submit batch
Request method: Post
Content-Type: application/json
Endpoint: /v2/remittance/batch/submit
Endpoint for payroll: /v2/remittance/batch/payroll/submit
Submit the remittance batch.
Dataset details
Payload table
Batch details | Mandatory | Comment |
|---|---|---|
| Yes |
|
| Yes | This is one of the merchant’s IBANs or account numbers. |
| No | Default value is EUR. If using any other currency, express the currency as ISO 4217. If, for example CHF is sent to CHF, then the selected currency goes to its own batch & FX is not involved. |
| No |
|
| No |
|
Payments | Mandatory | Comment |
|---|---|---|
| Yes | Depends on merchant config. |
| Yes | Expressed as ISO 4217. Currently supported: AUD, CAD, CHF, HKD, NZD, PLN. If, the |
| No |
|
| No | Used for merchant payment reference. |
Beneficiary | Mandatory | Comment |
|---|---|---|
| Yes |
|
| Yes |
|
| No | Can be either BUSINESS or INDIVIDUAL. |
| Conditional | Mandatory only if the entityType is BUSINESS. |
| No |
|
Address | Mandatory | Comment |
|---|---|---|
| Conditional | Required for AUD & CAD. |
| Conditional | Required for AUD & CAD. |
| Conditional | Required for AUD & CAD. |
| Conditional | Required for AUD & CAD. |
| Yes | Expressed as ISO 3166-1 Alpha-2. |
Bank account | Mandatory | Comment |
|---|---|---|
| Yes | AUD: 6-10 digits. CAD: 7-12 digits. CHF: 21 alphanumeric character IBAN. IBAN format: CHkk BBBB BCCC CCCC CCCC C, where CH = Country Code, kk = Check Digits, B = Bank Code, and C = Account No. HKD: 6-9 digits. NZD: 9-10 digits. PLN: 28 alphanumeric character IBAN. IBAN format: PLkk BBBB BBBB CCCC CCCCCCCCCCCC, where PL = Country Code, kk = Check Digits, B = Bank Code, and C = Account No. |
| Yes |
|
| Yes | Expressed as ISO 3166-1 Alpha-2. |
| Conditional | Required for AUD & CAD. |
| Conditional | Required for CHF & PLN. |
| Conditional | Required for AUD, CAD, HKD & NZD. AUD: this is called the BSB. A Bank State Branch (BSB) number is a 6-digit identification number that indicates the state and branch at which a bank account was opened. CAD: this is the branch transit code. A 12 digit account number may comprise of the last 5 digits of the transit code (known as branch identifier) followed by the 7 digit account number. HKD: composed of 6 digits. |
Request body
{
"merchantId": "Jane.Merchant",
"senderIban": "CY12702202009743735424",
"description": "API Remittance",
"callbackUrl": "...",
"payments": [
{
"amount": 10000,
"currencyCode": "AUD",
"paymentDetails": "Payment 10/25",
"referenceId": "my-ref-id1234",
"beneficiary": {
"firstName": "Joe",
"lastName": "Doe",
"type": "INDIVIDUAL",
"address": {
"line1": "123 George Street",
"city": "Sydney",
"stateOrProvince": "NSW",
"zipOrPostal": "2000",
"countryCode": "AU"
}
},
"bankAccount": {
"accountNumber": "12345678",
"bankName": "AU Bank Pty Ltd",
"bankBranchCode": "123456",
"address": {
"countryCode": "AU"
}
}
}
]
}Required fields based on currencies
Click the arrow toggle button to expand each currency.
cURL
curl -X 'POST' \
'https://masspay-api.isxtech.com/v2/remittance/batch/submit' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"merchantId": "Jane.Merchant",
"senderIban": "CY12702202009743735424",
"description": "API Remittance",
"callbackUrl": "...",
"payments": [
{
"amount": 10000,
"currencyCode": "AUD",
"paymentDetails": "Payment 10/25",
"referenceId": "my-ref-id1234",
"beneficiary": {
"firstName": "Joe",
"lastName": "Doe",
"type": "INDIVIDUAL",
"address": {
"line1": "123 George Street",
"city": "Sydney",
"stateOrProvince": "NSW",
"zipOrPostal": "2000",
"countryCode": "AU"
}
},
"bankAccount": {
"accountNumber": "12345678",
"bankName": "AU Bank Pty Ltd",
"bankBranchCode": "123456",
"address": {
"countryCode": "AU"
}
}
}
]
}'Responses
Success
Content-Type: application/json
{
"batch_id": "c123d123-ec80-441f-8cbf-29de5dc0c8c9"
}Get batch quote
Request method: Post
Content-Type: application/json
Endpoint: /v2/remittance/batch/quote
Get batch quote.
Request body
{
"batch_id": "string"
}Example
{
"batch_id": "c123d123-ec80-441f-8cbf-29de5dc0c8c9"
}cURL
curl -X 'POST' \
'https://masspay-api-stage.isxtech.com/v2/remittance/batch/quote' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"batch_id": "c123d123-ec80-441f-8cbf-29de5dc0c8c9"
}'Responses
Success
Content-Type: application/json
{
"quote_pairs": [
{
"to_currency": "AUD",
"rate": "0.5628"
},
{
"to_currency": "CAD",
"rate": "0.617551"
},
{
"to_currency": "CHF",
"rate": "1.077122"
},
{
"to_currency": "HKD",
"rate": "0.111828"
},
{
"to_currency": "NZD",
"rate": "0.487948"
}
],
"total_amount": 100.00,
"total_fees": 2.23,
"active_number_of_payments": 5
}Get batch state
Request method: Get
Content-Type: application/json
Endpoint: /v2/remittance/batch/{batchUid}
Get information for a previously submitted batch.
cURL: create an API request
curl --location '{backend_url}/v2/remittance/batch/{batch_id}' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer *****'Response
{
"state": "PROCESSING"
}Get batch details
Request method: Get
Content-Type: application/json
Endpoint: /v2/remittance/batchdetails/{batchUid}
Get statuses of all transactions associated with a previously submitted batch.
cURL: create an API request
curl --location '{backend_url}/v2/remittance/batchdetails/{batch_id}' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer ****'Response
Successful
{
"batch_details": [
{
"reference_id": "my-ref-id1234",
"status": "PENDING",
"exchange_rate": "0.650123",
"transaction_id": "5d15e560-5bf8-4316-8f5b-134a1a05efa3"
}
]
}Failed
{
"error_id": "ERR401A",
"message": "Unauthorized",
"code": 401
}Batch statuses
Batch statuses are listed here.
Transaction statuses
Transaction statuses are listed here.
Callbacks
Callbacks refers to the channel that is used for notification purposes.
This happens on:
Batch status changed (incl. finalisation).
End of day for non-finalised batches of the last 5 days.
Notification sample for a remittance batch:
{
"batch_id": "9f5a42f8-09d7-4911-99f1-f2ffe589d275",
"state": "PENDING_APPROVAL",
"batch_details": [
{
"reference_id": "my-ref-id1",
"status": "PENDING",
"exchange_rate": "0.5619",
"transaction_id": "a0edc971-eec8-4fc0-b4ce-3444c4c53731"
},
{
"reference_id": "my-ref-id2",
"status": "PENDING",
"exchange_rate": "0.619042",
"transaction_id": "300bed70-0eb8-45e4-847f-2b4fb03d63dd"
},
{
"reference_id": "my-ref-id3",
"status": "PENDING",
"exchange_rate": "0.488234",
"transaction_id": "7ff1f5dd-e1c3-4837-a80f-5818d499fdb1"
},
{
"reference_id": "my-ref-id4",
"status": "PENDING",
"exchange_rate": "1.083541",
"transaction_id": "9f898b47-6b91-4b95-b29f-39fbf3056357"
}
]
}Notification sample for a remittance batch with the same settlement currency:
{
"batch_id": "bad3bb48-8fbc-470b-9bc5-204992f8f190",
"state": "PROCESSING",
"batch_details": [
{
"reference_id": "my-ref-id5",
"status": "PENDING",
"exchange_rate": "N/A",
"transaction_id": "8f64308f-763d-4296-9014-f674e9427a25"
}
]
}