NAV
JSON

Overview

Introduction

money transfer

Welcome to the Money Transfer API reference.

This API serves as the primary gateway to facilitate money transfers through Thunes’ platform.

The Money Transfer API is organised according to REST principles and provides the following functionalities:

Environments

This API is available in 2 environments: production and pre-production, reachable via IPSec VPN or HTTPS.

Specific details relating to the endpoints will be provided upon account creation.

For HTTPS connections, TLS version 1.2 onwards is required to reach production and pre-production environments.

Versioning

Endpoints of the API are prefixed with a corresponding version number. This documentation describes version 2 of the API. Documentation for version 1 of the API can be found here.

This method of versioning provides complete isolation between implementations and ensures that subsequent major changes to the API will not affect existing integrations. No breaking changes will be introduced within a major version.

Whenever possible, Thunes will not change the API contract in a non-backward compatible way, if required, a new major version of the API will be released, however Thunes reserves the right to make additive changes or any non-breaking changes to our API without releasing a new major version or notifying clients.

Clients should design their implementation not to break if new fields or other non-breaking changes are introduced

Non-breaking changes

Thunes regularly introduce backwards-compatible changes to our API to provide additional product features and capabilities. Non-breaking changes may be introduced without prior warning to users of the Thunes API. Examples of non-breaking changes would be:

The client implementation should be designed with the above in mind, so that non-breaking changes do not adversely affect the implementation.

Breaking changes

A breaking change refers to a change that requires an application update to continue working with the API. Examples of breaking changes would be:

Whenever possible, a new major version will be introduced if a breaking change is introduced. In the event that a breaking change is unavoidable and a new major version in not possible (e.g., change in regulation, compliance) Thunes will contact clients in advance to ensure there is sufficient time to update the client’s application.

Headers

The endpoints of the API will respond with various header fields, such as Pagination information. All header fields in both requests and responses are case-insensitive, following the HTTP/1.1 specification (RFC 7230). It is advised not to rely on the case-sensitivity of any header fields.

Getting started

transaction flow

transaction flow

Thunes Money Transfer API allows the sending of transfers globally accross different payout ecosystems, Mobile Wallet, Bank Account, and Cash Pickup.

To send a transfer, the typical flow would be:

Discovery endpoints allow Thunes’ partner to retrieve a list of services, countries and payers that are accessible to them. A payer in Thunes system represents the targeted destination crediting the money into the beneficiary account. Thunes coverage supports different payers across all services (banks, mobile wallets or cash pick-up networks) per country.

As part of the payer information, an API user can dynamically retrieve requirement and information linked to the selected payer, like lower and upper limits of accepted transfers, mandatory parameters, currencies (including precision and increment).

The quotation step allows a partner to book a rate for a transfer to a specific payer. The quotation will indicate the amount that is being sent as well as the amount that will be received by the beneficiary of the transfer.

From the quotation previously created, a partner is able to create a transaction, and input further details for the transfer, such as sender/beneficiary, or account details for instance. Optional documents can be uploaded at this stage.

After the transaction has been created, the last step to process a transfer is to confirm the transaction. Balance verification for instance will happen at that stage of the process.

To check the status of the transfer, a partner can provide a callback url. Thunes’ system will send a callback to this url when the transaction status is updated. A partner is also able to query the status of a transaction in the API, to check its current status.

Transaction states

transaction states

During the course of a transfer, a transaction will undergo various status changes as illustrated in the diagram.

Conditions marked as “Upon request to customer care team” pertain to reversal and/or cancellation. These must be requested through the Thunes customer care team, who will act accordingly.

If a callback URL has been provided, updates will be sent to the URL in real-time when changes in transaction status occur. In addition, transaction status can be queried through one of two means: via the returned id or a provided external_id.

The latter serves as a unique reference from the perspective of the sending partner. This allows transaction details to be retrieved when exceptions occur, for example if an expected response was not received and the transaction success is unknown.

The numerical values within each of the illustrated states correspond to the transaction status, while the labels correspond to that of the transaction status class message.

Callback

POST /callback HTTP/1.1
Date: Wed, 02 Nov 2016 09:17:54 GMT
Content-Type: application/json
{
   "id": 1,
   "status": "70000",
   "status_message": "COMPLETED",
   "status_class": "7",
   "status_class_message": "COMPLETED",
   "external_id": "1478078339357",
   "external_code": null,
   "transaction_type": "C2C",
   "payer_transaction_reference": "SP-000-123",
   "payer_transaction_code": "SP-ABC-DEF",
   "creation_date": "2016-11-02T09:19:15",
   "expiration_date": "2016-11-03T09:07:44",
   "credit_party_identifier": {
      "msisdn": "+263775892100",
      "bank_account_number": "0123456789",
      "swift_bic_code": "ABCDEFGH"
   },
   "source": {
      "country_iso_code": "FRA",
      "currency": "EUR",
      "amount": 10
   },
   "destination": {
      "currency": "USD",
      "amount": 10.69
   },
   "payer": {
      "id": 1,
      "name": "Sample Payer",
      "currency": "USD",
      "country_iso_code": "ZWE",
      "service": {
         "id": 1,
         "name": "MobileWallet"
      }
   },
   "sender": {
      "lastname": "Doe",
      "lastname2": null,
      "middlename": null,
      "firstname": "John",
      "nativename": null,
      "nationality_country_iso_code": "FRA",
      "code": null,
      "date_of_birth": "1970-01-01",
      "country_of_birth_iso_code": "FRA",
      "gender": "MALE",
      "address": "42 Rue des fleurs",
      "postal_code": "75000",
      "city": "Paris",
      "country_iso_code": "FRA",
      "msisdn": "33712345678",
      "email": "john.doe@mail.com",
      "id_type": "SOCIAL_SECURITY",
      "id_country_iso_code": null,
      "id_number": "502-42-0158",
      "id_delivery_date": "2016-01-01",
      "id_expiration_date": null,
      "occupation": "Residential Advisor",
      "province_state": null,
      "beneficiary_relationship": null,
      "source_of_funds": null,
      "bank_account_number": null
   },
   "beneficiary": {
      "lastname": "Doe",
      "lastname2": null,
      "middlename": null,
      "firstname": "Jane",
      "nativename": null,
      "nationality_country_iso_code": "FRA",
      "code": null,
      "date_of_birth": "1971-01-01",
      "country_of_birth_iso_code": "ZWE",
      "gender": "MALE",
      "address": "3 Norfolk Road",
      "postal_code": "4581",
      "city": "Harare",
      "country_iso_code": "ZWE",
      "msisdn": "263775892364",
      "email": "jane.doe@mail.com",
      "id_type": "SOCIAL_SECURITY",
      "id_country_iso_code": "ZWE",
      "id_number": "178027317681327",
      "id_delivery_date": null,
      "id_expiration_date": null,
      "occupation": "Sales Executive",
      "bank_account_holder_name": null,
      "province_state": null
   },
   "callback_url": "{URL_PLACEHOLDER}",
   "sent_amount": {
      "currency": "EUR",
      "amount": 10
   },
   "wholesale_fx_rate": 1.06891969534071,
   "retail_rate": null,
   "retail_fee": 1,
   "retail_fee_currency": "EUR",
   "fee": {
      "currency": "EUR",
      "amount": 1.88
   },
   "purpose_of_remittance": "FAMILY_SUPPORT",
   "document_reference_number": null,
   "additional_information_1": null,
   "additional_information_2": null,
   "additional_information_3": null
}

While the transfer order is processed, changes in status will be notified in realtime to the provided callback URL (if provided).

The sending partner must implement this endpoint to receive these status changes. The endpoint should expect an HTTP POST request containing a transaction object represented in JSON.

Upon sucessful receipt of data, the callback endpoint should respond with an HTTP 2XX. In the event that the Money Transfer platform did not receive this response, callback notifications will be retried several times, beyond which, the transaction status will have to be queried by the sending partner.

Topics

Authentication

Access to all endpoints of the API requires authentication through HTTP Basic Authentication.

Basic Authentication

curl https://${API_ENDPOINT}/ping \
  -u "${API_KEY}:${API_SECRET}"
URL Part Value
user-ID API key
password API secret

Your API keys and secrets represent your identity and authorization. Please keep and store them securely!

API credentials should not be shared or stored in clear text. Once in your possession, it is on you to keep those credentials safe.

Avoid storing your credentials in your source code, or in your version control system, like github for instance. Instead, you can use environment variables to pass secrets into your application, following the 12 factor app principles, use a vault mechanism (HashiCorp Vault, AWS Secret Manager, Secret in Kubernetes, …), or provide them through a configuration file excluded from your version control, provisioned automatically within your deployment process, only readable by the application.

Errors

HTTP Response

HTTP/1.1 401 Unauthorized
{
    "errors": [
        {
            "code": "1000401",
            "message": "Unauthorized"
        }
    ]
}

Thunes uses standard HTTP response codes to indicate whether an API request is successful or not.

Status Description
200 OK
400 Bad Request:
Request was malformed
401 Unauthorized:
Credentials missing or invalid
404 Not Found:
Resource doesn’t exist
500 Server Error:
An internal server error occurred processing the request

Details will always be contained within the HTTP body.

API Error Codes

Code Description
1000401 Unauthorized
1000404 Resource not found
1000999 Invalid parameter
1000998 Source country not authorized
1003001 Payer is inactive in your account
1003002 Invalid payer
1003007 Payer is currently unavailable
1003008 Destination amount is invalid
1003009 Parameter page is outside of the page range
1003010 Destination currency not provided by payer
1003011 Transaction amount below minimum of the selected payer
1003012 Transaction amount exceeds maximum of the selected payer
1005001 Account is invalid
1006001 Transaction amount limit exceeded
1006002 Account quantity limit exceeded
1006099 Limit exceeded
1007001 External ID has already been used
1007002 Transaction has already been confirmed
1007003 Transaction can not be confirmed
1007004 Transaction can no longer be confirmed, quotation has expired
1007005 Transaction can not be confirmed, insufficient balance
1007014 Transaction can not be cancelled
1007100 Method is not supported by this payer
1007101 Method is currently unavailable
1007401 Attachment is too big
1007402 Max number of attachments reached
1007403 Adding attachment is not allowed after transaction is confirmed
1007404 Transaction attachment not found
1007405 Attachment file type is invalid
1008002 Quotation not found
1008003 Quotation has expired
1008004 Transaction not found
1009001 Unexpected error, please contact our support team

Pagination

GET /{resource}?page=1&per_page=50 HTTP/1.1
X-Total: 1
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1

API resources supporting bulk fetches via “list” API methods will be returned in a paginated fashion.

Input Parameters

Field Required Type Description
page No Integer Page number
per_page No Integer Number of results per page (default 50, maximum 100)

Output Headers

Field Description
X-Total Total number of records
X-Total-Pages Total number of pages
X-Per-Page Number of records per page
X-Page Current page number
X-Next-Page Next page number (if any)
X-Prev-Page Previous page number (if any)

Endpoints

The various endpoints to the Thunes API are described in the following sections.

Connectivity

Ping

GET /ping HTTP/1.1
200 OK
{
   "status": "up"
}

GET /ping

Query API status and check connectivity.

Returns

Field Type Description
status String API status

Expected value of status should be “up”.

Discovery

These endpoints are used to provide lists of information to the caller.

Services

List services available

GET /v2/money-transfer/services HTTP/1.1
X-Total: 1
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
   {
      "id": 1,
      "name": "MobileWallet"
   },
   {
      "id": 2,
      "name": "BankAccount"
   },
   {
      "id": 3,
      "name": "CashPickup"
   }
]

GET /v2/money-transfer/services

Retrieves a list of all services available to the caller.

Request parameters

Field Required Type Description
page No Integer Page number
per_page No Integer Number of results per page (default 50, max 100)
country_iso_code No String Country code in ISO 3166-1 alpha-3 format

Returns

An array of service objects in a paginated fashion.

Payers

List payers available

GET /v2/money-transfer/payers HTTP/1.1
X-Total: 1
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
   {
      "id": 1,
      "name": "MobileWallet Payer",
      "precision": 2,
      "increment": 0.01,
      "currency": "USD",
      "country_iso_code": "USA",
      "service": {
         "id": 1,
         "name": "MobileWallet"
      },
      "transaction_types" : {
         "C2C": {
            "minimum_transaction_amount": 0,
            "maximum_transaction_amount": null,
            "credit_party_identifiers_accepted": [
               [
                  "msisdn"
               ]
            ],
            "required_sending_entity_fields": [
               [
                  "firstname",
                  "lastname",
                  "date_of_birth"
               ]
            ],
            "required_receiving_entity_fields": [
               [
                  "firstname",
                  "lastname"
               ]
            ],
            "required_documents": [
                [
                    "invoice",
                    "purchase_order",
                    "contract"
                ]
            ],
            "credit_party_information": {
               "credit_party_identifiers_accepted": [
                  []
               ]
            },
            "credit_party_verification": {
               "credit_party_identifiers_accepted": [
                  []
               ],
               "required_receiving_entity_fields": [
                  []
               ]
            },
            "purpose_of_remittance_values_accepted": [
            ]
         }
      }
   },
   {
      "id": 2,
      "name": "Bank Payer",
      "precision": 2,
      "increment": 0.01,
      "currency": "PHP",
      "country_iso_code": "PHL",      
      "service": {
         "name": "BankAccount",
         "id": 2
      },
      "transaction_types" : {
         "B2C": {
            "minimum_transaction_amount": 0,
            "maximum_transaction_amount": null,
            "credit_party_identifiers_accepted": [
               [
                  "account_number"
               ]
            ],
            "required_sending_entity_fields": [
               [
                  "registered_name",
                  "representative_lastname",
                  "representative_firstname"
               ]
            ],
            "required_receiving_entity_fields": [
               [
                  "firstname",
                  "lastname"
               ]
            ],
            "required_documents": [
                []
            ],
            "credit_party_information": {
               "credit_party_identifiers_accepted": [
                  []
               ]
            },
            "credit_party_verification": {
               "credit_party_identifiers_accepted": [
                  []
               ],
               "required_receiving_entity_fields": [
                  []
               ]
            },
            "purpose_of_remittance_values_accepted": [
            ]
         }
      }
   }
]

GET /v2/money-transfer/payers

Retrieves a list of all payers available for the caller, optionally filtered based on specified parameters.

Request parameters

Field Required Type Description
page No Integer Page number
per_page No Integer Number of results per page (default 50, max 100)
service_id No Integer Service ID
country_iso_code No String Country code in ISO 3166-1 alpha-3 format
currency No String Currency in ISO 4217 format

Returns

Array of payer objects in a paginated fashion.

Get payer details

GET /v2/money-transfer/payers/3 HTTP/1.1
200 OK
{
    "id": 3,
    "name": "Sample Payer",
    "precision": 0,
    "increment": 0.01,
    "currency": "IDR",
    "country_iso_code": "IDN",
    "service": {
         "id": 1,
         "name": "MobileWallet"
    },
    "transaction_types": {
        "C2C": {
            "minimum_transaction_amount": 0,
            "maximum_transaction_amount": null,
            "credit_party_identifiers_accepted": [
                 [
                        "msisdn"
                 ]
            ],
            "required_sending_entity_fields": [
                 [
                        "firstname",
                        "date_of_birth",
                        "lastname"
                 ]
            ],
            "required_receiving_entity_fields": [
                 [
                        "firstname",
                        "lastname"
                 ]
            ],
            "required_documents": [
                [
                    "invoice",
                    "contract"
                ]
            ],
            "credit_party_information": {
                "credit_party_identifiers_accepted": [
                    []
                ]
            },
            "credit_party_verification": {
                "credit_party_identifiers_accepted": [
                    []
                ],
                "required_receiving_entity_fields": [
                    []
                ]
            },
            "purpose_of_remittance_values_accepted": [
            ]
        }
    }
}

GET /v2/money-transfer/payers/{id}

Retrieve information for a given payer. The payer id must be supplied replacing {id} in the URI path.

Returns

Payer object.

Payer Rates

Retrieve rates for a given payer

GET /v2/money-transfer/payers/362/rates HTTP/1.1
200 OK
{
    "destination_currency": "USD",
    "rates": {
        "C2C": {
            "EUR": [
                {
                    "source_amount_min": 0,
                    "source_amount_max": 88,
                    "wholesale_fx_rate": 1.10847692409526
                },
                {
                    "source_amount_min": 88,
                    "source_amount_max": 8800,
                    "wholesale_fx_rate": 1.10847692409526
                }
            ]
        }
    }
}

GET /v2/money-transfer/payers/{id}/rates

Retrieve rates for a given payer. The id of the payer must be supplied replacing {id} in the URI path.

Returns

Field Type Description
destination_currency String Currency in ISO 4217 format
rates Object Rates information

Countries

List countries available

GET /v2/money-transfer/countries HTTP/1.1
X-Total: 1
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
    {
        "iso_code": "KEN",
        "name": "Kenya"
    }
]

GET /v2/money-transfer/countries

Retrieve list of countries for all money transfer services available for the caller.

Request parameters

Field Required Type Description
page No Integer Page number
per_page No Integer Number of results per page (default 50, max 100)

Returns

Array of country objects in a paginated fashion.

Lookups

BIC code lookup

GET /v2/money-transfer/lookups/BIC/ABNAIDJA HTTP/1.1
X-Total: 1
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
    {
        "id": 123
    }
]

GET /v2/money-transfer/lookups/BIC/{swift_bic_code}

Retrieve list of payers’ identifier for a given SWIFT BIC code.

Available for selected countries only

Request parameters

Field Required Type Description
page No Integer Page number
per_page No Integer Number of results per page (default 50, max 100)

Output

Array of payers’ identifiers, paginated.

Account

Balances

GET /v2/money-transfer/balances HTTP/1.1
X-Total: 1
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
    {
        "id": 1,
        "currency": "EUR",
        "balance": 10000000,
        "pending": 0,
        "available": 10000000,
        "credit_facility": 0
    }
]

GET /v2/money-transfer/balances

Retrieve information for all account balances per currency.

available = balance - pending + credit_facility

Request parameters

Field Required Type Description
page No Integer Page number
per_page No Integer Number of results per page (default 50, max 100)

Returns

Array of balance objects.

Balance Movements

GET /v2/money-transfer/balances/1/movements?from_date=2022-12-01T00:00:00Z&to_date=2022-12-02T00:00:00Z&limit=50 HTTP/1.1
X-Next-Url: /v2/money-transfer/balances/1/movements?cursor=eyJu....
X-Next-Cursor: eyJuZXh0X3JvdyI6NDM3NSwibGltaXQiOjF9
200 OK
[
    {
        "balance_operation_number": 4376,
        "creation_date": "2022-12-01T16:28:03Z",
        "movement_type": "PAYOUT_FEES",
        "amount": -1.25,
        "currency": "USD",
        "transaction_reference_id": 123,
        "operation": "AUTHORIZE",
        "balance": 1162.56,
        "pending_balance": -120.39
    },
    {
        "balance_operation_number": 4375,
        "creation_date": "2022-12-01T16:28:03Z",
        "movement_type": "PAYOUT",
        "amount": -1.07,
        "currency": "USD",
        "transaction_reference_id": 123,
        "operation": "AUTHORIZE",
        "balance": 1162.56,
        "pending_balance": -119.14
    }
]

GET /v2/money-transfer/balances/{balance_id}/movements

Retrieve information for balances movements for {balance_id} provided. Balance ID can be retrieved from Balances API.

Request parameters

Field Required Type Description
from_date Yes Datetime from date in HTTP format
to_date Yes Datetime to date in HTTP format
limit No integer Default 100, Max 200
cursor No string Base64 Encoded string, from X-Next-Cursor response header field

† : to_date should be within 24 hours of from_date.

Returns

Array of Balance Movements.

Reports

List reports available

GET /v2/money-transfer/reports HTTP/1.1
X-Total: 1
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
  {
    "id": 123,
    "type": "PARTNER_TRANSACTION_REPORT_DAILY",
    "timezone": "UTC",
    "cut_off_time": "00:00:00",
    "report_date": "2023-10-23",
    "period_start": "2023-10-23T00:00:00Z",
    "period_end": "2023-10-24T00:00:00Z",
    "files": [
      {
        "id": 4567,
        "report_type": "PARTNER_TRANSACTION_REPORT_DAILY",
        "file_type": "TRANSACTION_STATS",
        "name": "daily_transaction_report_2023-10-23.csv"
      }
    ]
  },
  {
    "id": 124,
    "type": "PARTNER_TRANSACTION_REPORT_DAILY",
    "timezone": "UTC",
    "cut_off_time": "00:00:00",
    "report_date": "2023-10-21",
    "period_start": "2023-10-21T00:00:00Z",
    "period_end": "2023-10-22T00:00:00Z",
    "files": [
      {
        "id": 4568,
        "report_type": "PARTNER_TRANSACTION_REPORT_DAILY",
        "file_type": "TRANSACTION_STATS",
        "name": "daily_transaction_report_2023-10-21.csv"
      }
    ]
  },
  {
    "id": 4569,
    "type": "PARTNER_TRANSACTION_REPORT_DAILY",
    "timezone": "UTC",
    "cut_off_time": "00:00:00",
    "report_date": "2023-10-17",
    "period_start": "2023-10-17T00:00:00Z",
    "period_end": "2023-10-18T00:00:00Z",
    "files": [
      {
        "id": 45610,
        "report_type": "PARTNER_TRANSACTION_REPORT_DAILY",
        "file_type": "TRANSACTION_STATS",
        "name": "daily_transaction_report_2023-10-17.csv"
      }
    ]
  }
]

GET /v2/money-transfer/reports

Retrieves a list of all reports available for the caller, optionally filtered based on specified parameters.

Request parameters

Field Required Type Description
from_date No Datetime From date in HTTP format
to_date No Datetime To date in HTTP format
report_type No String Type of report
page No Integer Page number
per_page No Integer Number of results per page (default 50, max 100)

Returns

An array of Report objects in a paginated fashion.

Get report details

GET /v2/money-transfer/reports/123 HTTP/1.1
200 OK
{
  "id": 123,
  "type": "PARTNER_TRANSACTION_REPORT_DAILY",
  "timezone": "UTC",
  "cut_off_time": "00:00:00",
  "report_date": "2023-10-17",
  "period_start": "2023-10-17T00:00:00Z",
  "period_end": "2023-10-18T00:00:00Z",
  "files": [
    {
      "id": 4567,
      "report_type": "PARTNER_TRANSACTION_REPORT_DAILY",
      "file_type": "TRANSACTION_STATS",
      "name": "daily_transaction_report_2023-10-17.csv"
    }
  ]
}

GET /v2/money-transfer/reports/{id}

Retrieve information for a given report. The report id must be supplied replacing {id} in the URI path.

Returns

Report object.

List report files available

GET /v2/money-transfer/reports/123/files HTTP/1.1
X-Total: 1
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
  {
    "id": 4567,
    "report_type": "PARTNER_TRANSACTION_REPORT_DAILY",
    "file_type": "TRANSACTION_STATS",
    "name": "daily_transaction_report_2023-10-17.csv"
  }
]

GET /v2/money-transfer/reports/{id}/files

Retrieve files for a given report. The report id must be supplied replacing {id} in the URI path.

Request parameters

Field Required Type Description
page No Integer Page number
per_page No Integer Number of results per page (default 50, max 100)

Returns

List of Report File object.

Get report file details

GET /v2/money-transfer/reports/123/files/4567 HTTP/1.1
200 OK
{
  "url": "<Signed URL>"
}

GET /v2/money-transfer/reports/{report_id}/files/{id}

Retrieve information for a given report file, It will return signed URL to download the file contents. The report id and file id must be supplied replacing {report_id} and {id} in the URI path respectively.

Returns

Field Type Description
url String File download url

Credit Parties

Information

POST /v2/money-transfer/payers/1/C2C/credit-party-information HTTP/1.1
200 OK
{
    "credit_party_identifier": {
        "msisdn": "263775892364"
    }
}
{
    "beneficiary": {
        "address": "3 Norfolk Road",
        "bank_account_holder_name": null,
        "city": "Harare",
        "code": null,
        "country_iso_code": "ZWE",
        "country_of_birth_iso_code": "ZWE",
        "date_of_birth": "1971-01-01",
        "email": "jane.doe@mail.com",
        "firstname": "Jane",
        "gender": "MALE",
        "id_country_iso_code": "ZWE",
        "id_delivery_date": null,
        "id_expiration_date": null,
        "id_number": "178027317681327",
        "id_type": "SOCIAL_SECURITY",
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "msisdn": "263775892364",
        "nationality_country_iso_code": "FRA",
        "nativename": null,
        "occupation": "Sales Executive",
        "postal_code": "4581",
        "province_state": null
    }
    "id": 10252292
}

POST /v2/money-transfer/payers/{id}/{transaction_type}/credit-party-information

Retrieve beneficiary or Receiving business information information based on account details for a given payer and transaction type. The id of the payer and transaction type must be supplied replacing {id} and {transaction_type} respectively in the URI path.

Request parameters

Field Required Type Description
credit_party_identifier Yes Object Credit party identifier information

Returns

Beneficiary object if C2C or B2C transaction type.

Receiving business information object if C2B or B2B transaction type.

Verification

POST /v2/money-transfer/payers/1/C2C/credit-party-verification HTTP/1.1
200 OK
{
    "credit_party_identifier": {
        "msisdn": "263775892364"
    }
}
{
    "id": 31,
    "account_status": "AVAILABLE"
}

POST /v2/money-transfer/payers/{id}/{transaction_type}/credit-party-verification

Validate status of an account for a given payer and transaction type. The id of the payer and transaction type must be supplied replacing {id} and {transaction_type} respectively in the URI path.

Request parameters

Field Required Type Description
credit_party_identifier Yes Object Credit party identifier information
beneficiary No† Object Beneficiary information
receiving_business No† Object Receiving business information information

†: Requiredness will depend on the payer

Returns

Field Type Description
id Integer Verification request ID
account_status String Account status

Transfers

Quotations

Create a quotation

POST /v2/money-transfer/quotations HTTP/1.1
201 Created
{
    "external_id": "1481184321405",
    "payer_id": "1",
    "mode": "SOURCE_AMOUNT",
    "transaction_type": "C2C",
    "source": {
        "amount": "10",
        "currency": "EUR",
        "country_iso_code": "FRA"
    },
    "destination": {
        "amount": null,
        "currency": "USD"
    }
}
{
    "id": 1,
    "external_id": "1481184321405",
    "payer": {
        "id": 1,
        "name": "Sample Payer",
        "currency": "USD",
        "country_iso_code": "ZWE",
        "service": {
            "id": 1,
            "name": "MobileWallet"
        }
    },
    "mode": "SOURCE_AMOUNT",
    "transaction_type": "C2C",
    "source": {
        "country_iso_code": "FRA",
        "currency": "EUR",
        "amount": 10
    },
    "destination": {
        "currency": "USD",
        "amount": 10.69
    },
    "sent_amount": {
        "currency": "EUR",
        "amount": 10
    },
    "wholesale_fx_rate": 1.06891969534071,
    "fee": {
        "currency": "EUR",
        "amount": 1.88
    },
    "creation_date": "2016-11-02T09:07:44",
    "expiration_date": "2016-11-03T09:07:44"
}

POST /v2/money-transfer/quotations

Creates a new quotation for a given source or destination value.

Request parameters

Field Required Type Description
external_id Yes String External reference ID
payer_id Yes Integer Payer ID
mode Yes String Quotation mode
transaction_type Yes String Transaction type
source Yes Object Source information
destination Yes Object Destination information

Depending on the mode, amount is optional in either Source or Destination object.

Returns

Quotation object.

Retrieve a quotation by id

GET /v2/money-transfer/quotations/1 HTTP/1.1
200 OK
{
    "id": 1,
    "external_id": "1481184321405",
    "payer": {
        "id": 1,
        "name": "Sample Payer",
        "precision": 2,
        "increment": 0.01,
        "currency": "USD",
        "country_iso_code": "ZWE",
        "service": {
            "id": 1,
            "name": "MobileWallet"
        }
    },
    "mode": "SOURCE_AMOUNT",
    "transaction_type": "C2C",
    "source": {
        "country_iso_code": "FRA",
        "currency": "EUR",
        "amount": 10
    },
    "destination": {
        "currency": "USD",
        "amount": 10.69
    },
    "sent_amount": {
        "currency": "EUR",
        "amount": 10
    },
    "wholesale_fx_rate": 1.06891969534071,
    "fee": {
        "currency": "EUR",
        "amount": 1.88
    },
    "creation_date": "2016-11-02T09:07:44",
    "expiration_date": "2016-11-03T09:07:44"
}

GET /v2/money-transfer/quotations/{id}

Retrieve information for a given quotation. The id of the quotation must be supplied replacing {id} in the URI path.

Returns

Quotation object.

Retrieve quotation by external id

GET /v2/money-transfer/quotations/ext-1481184321405 HTTP/1.1
200 OK
{
    "id": 1,
    "external_id": "1481184321405",
    "payer": {
        "id": 1,
        "name": "Sample Payer",
        "precision": 2,
        "increment": 0.01,
        "currency": "USD",
        "country_iso_code": "ZWE",
        "service": {
            "id": 1,
            "name": "MobileWallet"
        }
    },
    "mode": "SOURCE_AMOUNT",
    "transaction_type": "C2C",
    "source": {
        "country_iso_code": "FRA",
        "currency": "EUR",
        "amount": 10
    },
    "destination": {
        "currency": "USD",
        "amount": 10.69
    },
    "sent_amount": {
        "currency": "EUR",
        "amount": 10
    },
    "wholesale_fx_rate": 1.06891969534071,
    "fee": {
        "currency": "EUR",
        "amount": 1.88
    },
    "creation_date": "2016-11-02T09:07:44",
    "expiration_date": "2016-11-03T09:07:44"
}

GET /v2/money-transfer/quotations/ext-{external_id}

Retrieve information for a given quotation through an external reference ID.

Returns

Quotation object.

Transactions

Create a transaction from a quotation id

POST /v2/money-transfer/quotations/1/transactions HTTP/1.1
201 Created
{
    "credit_party_identifier": {
        "msisdn": "+263775892100",
        "bank_account_number": "0123456789",
        "swift_bic_code": "ABCDEFGH"
    },
    "sender": {
        "lastname": "Doe",
        "firstname": "John",
        "nationality_country_iso_code": "FRA",
        "date_of_birth": "1970-01-01",
        "country_of_birth_iso_code": "FRA",
        "gender": "MALE",
        "address": "42 Rue des fleurs",
        "postal_code": "75000",
        "city": "Paris",
        "country_iso_code": "FRA",
        "msisdn": "33712345678",
        "email": "john.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_number": "502-42-0158",
        "id_delivery_date": "2016-01-01",
        "occupation": "Residential Advisor"
    },
    "beneficiary": {
        "lastname": "Doe",
        "firstname": "Jane",
        "nationality_country_iso_code": "FRA",
        "date_of_birth": "1971-01-01",
        "country_of_birth_iso_code": "ZWE",
        "gender": "MALE",
        "address": "3 Norfolk Road",
        "postal_code": "4581",
        "city": "Harare",
        "country_iso_code": "ZWE",
        "msisdn": "263775892364",
        "email": "jane.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": "ZWE",
        "id_number": "178027317681327",
        "occupation": "Sales Executive"
    },
    "external_id": "1478078339357",
    "retail_fee": 1,
    "retail_fee_currency": "EUR",
    "purpose_of_remittance": "FAMILY_SUPPORT",
    "document_reference_number": "12345678",
    "callback_url": "{URL_PLACEHOLDER}",
    "reference": "some reference"
}
{
     "id": 1,
     "status": "10000",
     "status_message": "CREATED",
     "status_class": "1",
     "status_class_message": "CREATED",
     "external_id": "1478078339357",
     "external_code": null,
     "transaction_type": "C2C",
     "payer_transaction_reference": null,
     "payer_transaction_code": null,
     "creation_date": "2016-11-02T09:19:15",
     "expiration_date": "2016-11-03T09:07:44",
     "credit_party_identifier": {
        "msisdn": "+263775892100",
        "bank_account_number": "0123456789",
        "swift_bic_code": "ABCDEFGH"
     },
     "source": {
        "country_iso_code": "FRA",
        "currency": "EUR",
        "amount": 10
     },
     "destination": {
        "currency": "USD",
        "amount": 10.69
     },
     "payer": {
        "id": 1,
        "name": "Sample Payer",
        "currency": "USD",
        "country_iso_code": "ZWE",
        "service": {
            "id": 1,
            "name": "MobileWallet"
        }
     },
     "sender": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "John",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1970-01-01",
        "country_of_birth_iso_code": "FRA",
        "gender": "MALE",
        "address": "42 Rue des fleurs",
        "postal_code": "75000",
        "city": "Paris",
        "country_iso_code": "FRA",
        "msisdn": "33712345678",
        "email": "john.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": null,
        "id_number": "502-42-0158",
        "id_delivery_date": "2016-01-01",
        "id_expiration_date": null,
        "occupation": "Residential Advisor",
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": null,
        "bank_account_number": null
     },
     "beneficiary": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "Jane",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1971-01-01",
        "country_of_birth_iso_code": "ZWE",
        "gender": "MALE",
        "address": "3 Norfolk Road",
        "postal_code": "4581",
        "city": "Harare",
        "country_iso_code": "ZWE",
        "msisdn": "263775892364",
        "email": "jane.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": "ZWE",
        "id_number": "178027317681327",
        "id_delivery_date": null,
        "id_expiration_date": null,
        "occupation": "Sales Executive",
        "bank_account_holder_name": null,
        "province_state": null
     },
     "callback_url": "{URL_PLACEHOLDER}",
     "sent_amount": {
        "currency": "EUR",
        "amount": 10
     },
     "wholesale_fx_rate": 1.06891969534071,
     "retail_rate": null,
     "retail_fee": 1,
     "retail_fee_currency": "EUR",
     "fee": {
        "currency": "EUR",
        "amount": 1.88
     },
     "purpose_of_remittance": "FAMILY_SUPPORT",
     "document_reference_number": "12345678",
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null,
     "reference": "some reference"
}

POST /v2/money-transfer/quotations/{id}/transactions

Create a new transaction with transfer values specified from a given quotation. The id of the quotation must be supplied replacing {id} in the URI path.

Request parameters

Field Required Type Description
credit_party_identifier Yes Object Credit party identifier
retail_rate No Number Retail rate
retail_fee No Number Retail fee
retail_fee_currency No String Retail fee currency in ISO 4217 format
sender Yes† Object Sender information
beneficiary Yes† Object Beneficiary information
sending_business Yes† Object Sending business information
receiving_business Yes† Object Receiving business information
external_id Yes String External ID
external_code No String External reference code
callback_url No String Callback URL
purpose_of_remittance Yes String Purpose of the remittance
document_reference_number B2B: Yes
Other: No
String Reference number of document related to the transaction
additional_information_1 No String Additional information
additional_information_2 No String Additional information
additional_information_3 No String Additional information
reference No String Reference value that will be reflected on the Beneficiary’s/Receiving Business’ statement

†: Requiredness will depend on the chosen transaction type, quotation of type :

Returns

Transaction object.

Create a transaction from a quotation external id

POST /v2/money-transfer/quotations/ext-1481184321405/transactions HTTP/1.1
201 Created
{
    "credit_party_identifier": {
        "msisdn": "+263775892100",
        "bank_account_number": "0123456789",
        "swift_bic_code": "ABCDEFGH"
    },
    "sender": {
        "lastname": "Doe",
        "firstname": "John",
        "nationality_country_iso_code": "FRA",
        "date_of_birth": "1970-01-01",
        "country_of_birth_iso_code": "FRA",
        "gender": "MALE",
        "address": "42 Rue des fleurs",
        "postal_code": "75000",
        "city": "Paris",
        "country_iso_code": "FRA",
        "msisdn": "33712345678",
        "email": "john.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_number": "502-42-0158",
        "id_delivery_date": "2016-01-01",
        "occupation": "Residential Advisor"
    },
    "beneficiary": {
        "lastname": "Doe",
        "firstname": "Jane",
        "nationality_country_iso_code": "FRA",
        "date_of_birth": "1971-01-01",
        "country_of_birth_iso_code": "ZWE",
        "gender": "MALE",
        "address": "3 Norfolk Road",
        "postal_code": "4581",
        "city": "Harare",
        "country_iso_code": "ZWE",
        "msisdn": "263775892364",
        "email": "jane.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": "ZWE",
        "id_number": "178027317681327",
        "occupation": "Sales Executive"
    },
    "external_id": "1478078339357",
    "retail_fee": 1,
    "retail_fee_currency": "EUR",
    "purpose_of_remittance": "FAMILY_SUPPORT",
    "document_reference_number": "12345678",
    "callback_url": "{URL_PLACEHOLDER}"
}
{
     "id": 1,
     "status": "10000",
     "status_message": "CREATED",
     "status_class": "1",
     "status_class_message": "CREATED",
     "external_id": "1478078339357",
     "external_code": null,
     "transaction_type": "C2C",
     "payer_transaction_reference": null,
     "payer_transaction_code": null,
     "creation_date": "2016-11-02T09:19:15",
     "expiration_date": "2016-11-03T09:07:44",
     "credit_party_identifier": {
        "msisdn": "+263775892100",
        "bank_account_number": "0123456789",
        "swift_bic_code": "ABCDEFGH"
     },
     "source": {
        "country_iso_code": "FRA",
        "currency": "EUR",
        "amount": 10
     },
     "destination": {
        "currency": "USD",
        "amount": 10.69
     },
     "payer": {
        "id": 1,
        "name": "Sample Payer",
        "currency": "USD",
        "country_iso_code": "ZWE",
        "service": {
            "id": 1,
            "name": "MobileWallet"
        }
     },
     "sender": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "John",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1970-01-01",
        "country_of_birth_iso_code": "FRA",
        "gender": "MALE",
        "address": "42 Rue des fleurs",
        "postal_code": "75000",
        "city": "Paris",
        "country_iso_code": "FRA",
        "msisdn": "33712345678",
        "email": "john.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": null,
        "id_number": "502-42-0158",
        "id_delivery_date": "2016-01-01",
        "id_expiration_date": null,
        "occupation": "Residential Advisor",
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": null,
        "bank_account_number": null
     },
     "beneficiary": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "Jane",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1971-01-01",
        "country_of_birth_iso_code": "ZWE",
        "gender": "MALE",
        "address": "3 Norfolk Road",
        "postal_code": "4581",
        "city": "Harare",
        "country_iso_code": "ZWE",
        "msisdn": "263775892364",
        "email": "jane.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": "ZWE",
        "id_number": "178027317681327",
        "id_delivery_date": null,
        "id_expiration_date": null,
        "occupation": "Sales Executive",
        "bank_account_holder_name": null,
        "province_state": null
     },
     "callback_url": "{URL_PLACEHOLDER}",
     "sent_amount": {
        "currency": "EUR",
        "amount": 10
     },
     "wholesale_fx_rate": 1.06891969534071,
     "retail_rate": null,
     "retail_fee": 1,
     "retail_fee_currency": "EUR",
     "fee": {
        "currency": "EUR",
        "amount": 1.88
     },
     "purpose_of_remittance": "FAMILY_SUPPORT",
     "document_reference_number": "12345678",
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null,
     "reference": null
}

POST /v2/money-transfer/quotations/ext-{external_id}/transactions

Create a new transaction with transfer values specified from a given quotation based on the external ID. The external ID of the quotation must be supplied replacing {external_id} in the URI path.

Request parameters

Field Required Type Description
credit_party_identifier Yes Object Credit party identifier
retail_rate No Number Retail rate
retail_fee No Number Retail fee
retail_fee_currency No String Retail fee currency in ISO 4217 format
sender Yes Object Sender information
beneficiary Yes Object Beneficiary information
external_id Yes String External ID
external_code No String External reference code
callback_url No String Callback URL
purpose_of_remittance Yes String Purpose of the remittance
document_reference_number B2B: Yes
Other: No
String Reference number of document related to the transaction
additional_information_1 No String Additional information
additional_information_2 No String Additional information
additional_information_3 No String Additional information
reference No String Reference value that will be reflected on the Beneficiary’s/Receiving Business’ statement

Returns

Transaction object.

Add attachment to a transaction by id

POST /v2/money-transfer/transactions/1/attachments HTTP/1.1
201 OK

name=invoice.pdf
type=invoie
file=./invoice.pdf
{
    "id": 1,
    "content_type": "application/pdf",
    "name": "invoice.pdf",
    "transaction_id": 1,
    "type": "invoice"
}

POST /v2/money-transfer/transactions/{id}/attachments

Add an attachment to a transaction. The id of the transaction must be supplied replacing {id} in the URI path.

To upload an attachment to a transaction, you’ll need to send a request of type multipart/form-data.

Request parameters

Field Required Type Description
name Yes String Name of the attachment
type Yes String Transaction attachment type
file Yes File File to upload as an attachment

Returns

Transaction Attachment object.

Add attachment to a transaction by external id

POST /v2/money-transfer/transactions/ext-ABC123/attachments HTTP/1.1
201 OK

name=invoice.pdf
type=invoie
file=./invoice.pdf
{
    "id": 1,
    "content_type": "application/pdf",
    "name": "invoice.pdf",
    "transaction_id": 1,
    "type": "invoice"
}

POST /v2/money-transfer/transactions/ext-{external_id}/attachments

Add an attachment to a transaction. The external ID of the quotation must be supplied replacing {external_id} in the URI path.

To upload an attachment to a transaction, you’ll need to send a request of type multipart/form-data.

Request parameters

Field Required Type Description
name Yes String Name of the attachment
type Yes String Transaction attachment type
file Yes File File to upload as an attachment

Returns

Transaction Attachment object.

Confirm a transaction by id

POST /v2/money-transfer/transactions/1/confirm HTTP/1.1
200 OK
{
     "id": 1,
     "status": "20000",
     "status_message": "CONFIRMED",
     "status_class": "2",
     "status_class_message": "CONFIRMED",
     "external_id": "1478078339357",
     "external_code": null,
     "transaction_type": "C2C",
     "payer_transaction_reference": null,
     "payer_transaction_code": null,
     "creation_date": "2016-11-02T09:19:15",
     "expiration_date": "2016-11-03T09:07:44",
     "credit_party_identifier": {
        "msisdn": "+263775892100",
        "bank_account_number": "0123456789",
        "swift_bic_code": "ABCDEFGH"
     },
     "source": {
        "country_iso_code": "FRA",
        "currency": "EUR",
        "amount": 10
     },
     "destination": {
        "currency": "USD",
        "amount": 10.69
     },
     "payer": {
        "id": 1,
        "name": "Sample Payer",
        "currency": "USD",
        "country_iso_code": "ZWE",
        "service": {
            "id": 1,
            "name": "MobileWallet"
        }
     },
     "sender": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "John",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1970-01-01",
        "country_of_birth_iso_code": "FRA",
        "gender": "MALE",
        "address": "42 Rue des fleurs",
        "postal_code": "75000",
        "city": "Paris",
        "country_iso_code": "FRA",
        "msisdn": "33712345678",
        "email": "john.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": null,
        "id_number": "502-42-0158",
        "id_delivery_date": "2016-01-01",
        "id_expiration_date": null,
        "occupation": "Residential Advisor",
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": null,
        "bank_account_number": null
     },
     "beneficiary": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "Jane",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1971-01-01",
        "country_of_birth_iso_code": "ZWE",
        "gender": "MALE",
        "address": "3 Norfolk Road",
        "postal_code": "4581",
        "city": "Harare",
        "country_iso_code": "ZWE",
        "msisdn": "263775892364",
        "email": "jane.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": "ZWE",
        "id_number": "178027317681327",
        "id_delivery_date": null,
        "id_expiration_date": null,
        "occupation": "Sales Executive",
        "bank_account_holder_name": null,
        "province_state": null
     },
     "callback_url": "{URL_PLACEHOLDER}",
     "sent_amount": {
        "currency": "EUR",
        "amount": 10
     },
     "wholesale_fx_rate": 1.06891969534071,
     "retail_rate": null,
     "retail_fee": 1,
     "retail_fee_currency": "EUR",
     "fee": {
        "currency": "EUR",
        "amount": 1.88
     },
     "purpose_of_remittance": "FAMILY_SUPPORT",
     "document_reference_number": null,
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null
}

POST /v2/money-transfer/transactions/{id}/confirm

Confirm a previously-created transaction to initiate processing. The id of the transaction must be supplied replacing {id} in the URI path.

Returns

Transaction object.

Confirm a transaction by external id

POST /v2/money-transfer/transactions/ext-1478078339357/confirm HTTP/1.1
200 OK
{
     "id": 1,
     "status": "20000",
     "status_message": "CONFIRMED",
     "status_class": "2",
     "status_class_message": "CONFIRMED",
     "external_id": "1478078339357",
     "external_code": null,
     "transaction_type": "C2C",
     "payer_transaction_reference": null,
     "payer_transaction_code": null,
     "creation_date": "2016-11-02T09:19:15",
     "expiration_date": "2016-11-03T09:07:44",
     "credit_party_identifier": {
        "msisdn": "+263775892100",
        "bank_account_number": "0123456789",
        "swift_bic_code": "ABCDEFGH"
     },
     "source": {
        "country_iso_code": "FRA",
        "currency": "EUR",
        "amount": 10
     },
     "destination": {
        "currency": "USD",
        "amount": 10.69
     },
     "payer": {
        "id": 1,
        "name": "Sample Payer",
        "currency": "USD",
        "country_iso_code": "ZWE",
        "service": {
            "id": 1,
            "name": "MobileWallet"
        }
     },
     "sender": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "John",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1970-01-01",
        "country_of_birth_iso_code": "FRA",
        "gender": "MALE",
        "address": "42 Rue des fleurs",
        "postal_code": "75000",
        "city": "Paris",
        "country_iso_code": "FRA",
        "msisdn": "33712345678",
        "email": "john.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": null,
        "id_number": "502-42-0158",
        "id_delivery_date": "2016-01-01",
        "id_expiration_date": null,
        "occupation": "Residential Advisor",
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": null,
        "bank_account_number": null
     },
     "beneficiary": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "Jane",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1971-01-01",
        "country_of_birth_iso_code": "ZWE",
        "gender": "MALE",
        "address": "3 Norfolk Road",
        "postal_code": "4581",
        "city": "Harare",
        "country_iso_code": "ZWE",
        "msisdn": "263775892364",
        "email": "jane.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": "ZWE",
        "id_number": "178027317681327",
        "id_delivery_date": null,
        "id_expiration_date": null,
        "occupation": "Sales Executive",
        "bank_account_holder_name": null,
        "province_state": null
     },
     "callback_url": "{URL_PLACEHOLDER}",
     "sent_amount": {
        "currency": "EUR",
        "amount": 10
     },
     "wholesale_fx_rate": 1.06891969534071,
     "retail_rate": null,
     "retail_fee": 1,
     "retail_fee_currency": "EUR",
     "fee": {
        "currency": "EUR",
        "amount": 1.88
     },
     "purpose_of_remittance": "FAMILY_SUPPORT",
     "document_reference_number": null,
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null
}

POST /v2/money-transfer/transactions/ext-{external_id}/confirm

Confirm a previously-created transaction, through an external ID, to initiate processing. The external ID of the quotation must be supplied replacing {external_id} in the URI path.

Returns

Transaction object.

Retrieve transaction information by transaction id

GET /v2/money-transfer/transactions/1 HTTP/1.1
200 OK
{
     "id": 1,
     "status": "50000",
     "status_message": "SUBMITTED",
     "status_class": "5",
     "status_class_message": "SUBMITTED",
     "external_id": "1478078339357",
     "external_code": null,
     "transaction_type": "C2C",
     "payer_transaction_reference": null,
     "payer_transaction_code": null,
     "creation_date": "2016-11-02T09:19:15",
     "expiration_date": "2016-11-03T09:07:44",
     "credit_party_identifier": {
        "msisdn": "+263775892100",
        "bank_account_number": "0123456789",
        "swift_bic_code": "ABCDEFGH"
     },
     "source": {
        "country_iso_code": "FRA",
        "currency": "EUR",
        "amount": 10
     },
     "destination": {
        "currency": "USD",
        "amount": 10.69
     },
     "payer": {
        "id": 1,
        "name": "Sample Payer",
        "currency": "USD",
        "country_iso_code": "ZWE",
        "service": {
            "id": 1,
            "name": "MobileWallet"
        }
     },
     "sender": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "John",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1970-01-01",
        "country_of_birth_iso_code": "FRA",
        "gender": "MALE",
        "address": "42 Rue des fleurs",
        "postal_code": "75000",
        "city": "Paris",
        "country_iso_code": "FRA",
        "msisdn": "33712345678",
        "email": "john.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": null,
        "id_number": "502-42-0158",
        "id_delivery_date": "2016-01-01",
        "id_expiration_date": null,
        "occupation": "Residential Advisor",
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": null,
        "bank_account_number": null
     },
     "beneficiary": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "Jane",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1971-01-01",
        "country_of_birth_iso_code": "ZWE",
        "gender": "MALE",
        "address": "3 Norfolk Road",
        "postal_code": "4581",
        "city": "Harare",
        "country_iso_code": "ZWE",
        "msisdn": "263775892364",
        "email": "jane.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": "ZWE",
        "id_number": "178027317681327",
        "id_delivery_date": null,
        "id_expiration_date": null,
        "occupation": "Sales Executive",
        "bank_account_holder_name": null,
        "province_state": null
     },
     "callback_url": "{URL_PLACEHOLDER}",
     "sent_amount": {
        "currency": "EUR",
        "amount": 10
     },
     "wholesale_fx_rate": 1.06891969534071,
     "retail_rate": null,
     "retail_fee": 1,
     "retail_fee_currency": "EUR",
     "fee": {
        "currency": "EUR",
        "amount": 1.88
     },
     "purpose_of_remittance": "FAMILY_SUPPORT",
     "document_reference_number": null,
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null
}

GET /v2/money-transfer/transactions/{id}

Retrieve information for a given transaction. The id of the transaction must be supplied replacing {id} in the URI path.

Returns

Transaction object.

Retrieve transaction information by external id

GET /v2/money-transfer/transactions/ext-1478078339357 HTTP/1.1
200 OK
{
     "id": 1,
     "status": "50000",
     "status_message": "SUBMITTED",
     "status_class": "5",
     "status_class_message": "SUBMITTED",
     "external_id": "1478078339357",
     "external_code": null,
     "transaction_type": "C2C",
     "payer_transaction_reference": null,
     "payer_transaction_code": null,
     "creation_date": "2016-11-02T09:19:15",
     "expiration_date": "2016-11-03T09:07:44",
     "credit_party_identifier": {
        "msisdn": "+263775892100",
        "bank_account_number": "0123456789",
        "swift_bic_code": "ABCDEFGH"
     },
     "source": {
        "country_iso_code": "FRA",
        "currency": "EUR",
        "amount": 10
     },
     "destination": {
        "currency": "USD",
        "amount": 10.69
     },
     "payer": {
        "id": 1,
        "name": "Sample Payer",
        "currency": "USD",
        "country_iso_code": "ZWE",
        "service": {
            "id": 1,
            "name": "MobileWallet"
        }
     },
     "sender": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "John",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1970-01-01",
        "country_of_birth_iso_code": "FRA",
        "gender": "MALE",
        "address": "42 Rue des fleurs",
        "postal_code": "75000",
        "city": "Paris",
        "country_iso_code": "FRA",
        "msisdn": "33712345678",
        "email": "john.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": null,
        "id_number": "502-42-0158",
        "id_delivery_date": "2016-01-01",
        "id_expiration_date": null,
        "occupation": "Residential Advisor",
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": null,
        "bank_account_number": null
     },
     "beneficiary": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "Jane",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1971-01-01",
        "country_of_birth_iso_code": "ZWE",
        "gender": "MALE",
        "address": "3 Norfolk Road",
        "postal_code": "4581",
        "city": "Harare",
        "country_iso_code": "ZWE",
        "msisdn": "263775892364",
        "email": "jane.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": "ZWE",
        "id_number": "178027317681327",
        "id_delivery_date": null,
        "id_expiration_date": null,
        "occupation": "Sales Executive",
        "bank_account_holder_name": null,
        "province_state": null
     },
     "callback_url": "{URL_PLACEHOLDER}",
     "sent_amount": {
        "currency": "EUR",
        "amount": 10
     },
     "wholesale_fx_rate": 1.06891969534071,
     "retail_rate": null,
     "retail_fee": 1,
     "retail_fee_currency": "EUR",
     "fee": {
        "currency": "EUR",
        "amount": 1.88
     },
     "purpose_of_remittance": "FAMILY_SUPPORT",
     "document_reference_number": null,
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null
}

GET /v2/money-transfer/transactions/ext-{external_id}

Retrieve information for a given transaction from an external ID. The external ID of the quotation must be supplied replacing {external_id} in the URI path.

Returns

Transaction object.

List attachments of a transaction by id

GET /v2/money-transfer/transactions/1/attachments HTTP/1.1
200 OK
[
    {
        "id": 1,
        "content_type": "application/pdf",
        "name": "invoice.pdf",
        "transaction_id": 1,
        "type": "invoice"
    },
    {
        "id": 2,
        "content_type": "application/pdf",
        "name": "po.pdf",
        "transaction_id": 1,
        "type": "purchase_order"
    }
]

GET /v2/money-transfer/transactions/{id}/attachments

List attachments related to a transaction. The id of the transaction must be supplied replacing {id} in the URI path.

Returns

List of Transaction Attachment object.

List attachments of a transaction by external id

GET /v2/money-transfer/transactions/ext-ABC123/attachments HTTP/1.1
200 OK
[
    {
        "id": 1,
        "content_type": "application/pdf",
        "name": "invoice.pdf",
        "transaction_id": 1,
        "type": "invoice"
    },
    {
        "id": 2,
        "content_type": "application/pdf",
        "name": "po.pdf",
        "transaction_id": 1,
        "type": "purchase_order"
    }
]

GET /v2/money-transfer/transactions/ext-{external-id}/attachments

List attachments related to a transaction. The external ID of the quotation must be supplied replacing {external_id} in the URI path.

Returns

List of Transaction Attachment object.

Cancel a transaction by id

POST /v2/money-transfer/transactions/1/cancel HTTP/1.1
200 OK
{
     "id": 1,
     "status": "40000",
     "status_message": "CANCELLED",
     "status_class": "4",
     "status_class_message": "CANCELLED",
     "external_id": "1478078339357",
     "external_code": null,
     "transaction_type": "C2C",
     "payer_transaction_reference": null,
     "payer_transaction_code": null,
     "creation_date": "2016-11-02T09:19:15",
     "expiration_date": "2016-11-03T09:07:44",
     "credit_party_identifier": {
        "msisdn": "+263775892100",
        "bank_account_number": "0123456789",
        "swift_bic_code": "ABCDEFGH"
     },
     "source": {
        "country_iso_code": "FRA",
        "currency": "EUR",
        "amount": 10
     },
     "destination": {
        "currency": "USD",
        "amount": 10.69
     },
     "payer": {
        "id": 1,
        "name": "Sample Payer",
        "currency": "USD",
        "country_iso_code": "ZWE",
        "service": {
            "id": 1,
            "name": "MobileWallet"
        }
     },
     "sender": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "John",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1970-01-01",
        "country_of_birth_iso_code": "FRA",
        "gender": "MALE",
        "address": "42 Rue des fleurs",
        "postal_code": "75000",
        "city": "Paris",
        "country_iso_code": "FRA",
        "msisdn": "33712345678",
        "email": "john.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": null,
        "id_number": "502-42-0158",
        "id_delivery_date": "2016-01-01",
        "id_expiration_date": null,
        "occupation": "Residential Advisor",
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": null,
        "bank_account_number": null
     },
     "beneficiary": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "Jane",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1971-01-01",
        "country_of_birth_iso_code": "ZWE",
        "gender": "MALE",
        "address": "3 Norfolk Road",
        "postal_code": "4581",
        "city": "Harare",
        "country_iso_code": "ZWE",
        "msisdn": "263775892364",
        "email": "jane.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": "ZWE",
        "id_number": "178027317681327",
        "id_delivery_date": null,
        "id_expiration_date": null,
        "occupation": "Sales Executive",
        "bank_account_holder_name": null,
        "province_state": null
     },
     "callback_url": "{URL_PLACEHOLDER}",
     "sent_amount": {
        "currency": "EUR",
        "amount": 10
     },
     "wholesale_fx_rate": 1.06891969534071,
     "retail_rate": null,
     "retail_fee": 1,
     "retail_fee_currency": "EUR",
     "fee": {
        "currency": "EUR",
        "amount": 1.88
     },
     "purpose_of_remittance": "FAMILY_SUPPORT",
     "document_reference_number": null,
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null
}

POST /v2/money-transfer/transactions/{id}/cancel

When sending a cash pickup transaction, and a transaction is in status CONFIRMED-WAITING-FOR-PICKUP, a partner can call the API to cancel the previously-created transaction. The ID of transaction must be supplied replacing {id} in the URI path.

Returns

Transaction object.

If the action can’t be performed, an error 1007014 (Transaction can not be cancelled) will be returned

Cancel a transaction by external id

POST /v2/money-transfer/transactions/ext-1478078339357/cancel HTTP/1.1
200 OK
{
     "id": 1,
     "status": "40000",
     "status_message": "CANCELLED",
     "status_class": "4",
     "status_class_message": "CANCELLED",
     "external_id": "1478078339357",
     "external_code": null,
     "transaction_type": "C2C",
     "payer_transaction_reference": null,
     "payer_transaction_code": null,
     "creation_date": "2016-11-02T09:19:15",
     "expiration_date": "2016-11-03T09:07:44",
     "credit_party_identifier": {
        "msisdn": "+263775892100",
        "bank_account_number": "0123456789",
        "swift_bic_code": "ABCDEFGH"
     },
     "source": {
        "country_iso_code": "FRA",
        "currency": "EUR",
        "amount": 10
     },
     "destination": {
        "currency": "USD",
        "amount": 10.69
     },
     "payer": {
        "id": 1,
        "name": "Sample Payer",
        "currency": "USD",
        "country_iso_code": "ZWE",
        "service": {
            "id": 1,
            "name": "MobileWallet"
        }
     },
     "sender": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "John",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1970-01-01",
        "country_of_birth_iso_code": "FRA",
        "gender": "MALE",
        "address": "42 Rue des fleurs",
        "postal_code": "75000",
        "city": "Paris",
        "country_iso_code": "FRA",
        "msisdn": "33712345678",
        "email": "john.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": null,
        "id_number": "502-42-0158",
        "id_delivery_date": "2016-01-01",
        "id_expiration_date": null,
        "occupation": "Residential Advisor",
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": null,
        "bank_account_number": null
     },
     "beneficiary": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "Jane",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1971-01-01",
        "country_of_birth_iso_code": "ZWE",
        "gender": "MALE",
        "address": "3 Norfolk Road",
        "postal_code": "4581",
        "city": "Harare",
        "country_iso_code": "ZWE",
        "msisdn": "263775892364",
        "email": "jane.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": "ZWE",
        "id_number": "178027317681327",
        "id_delivery_date": null,
        "id_expiration_date": null,
        "occupation": "Sales Executive",
        "bank_account_holder_name": null,
        "province_state": null
     },
     "callback_url": "{URL_PLACEHOLDER}",
     "sent_amount": {
        "currency": "EUR",
        "amount": 10
     },
     "wholesale_fx_rate": 1.06891969534071,
     "retail_rate": null,
     "retail_fee": 1,
     "retail_fee_currency": "EUR",
     "fee": {
        "currency": "EUR",
        "amount": 1.88
     },
     "purpose_of_remittance": "FAMILY_SUPPORT",
     "document_reference_number": null,
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null
}

POST /v2/money-transfer/transactions/ext-{external_id}/cancel

When sending a cash pickup transaction, and a transaction is in status CONFIRMED-WAITING-FOR-PICKUP, a partner can call the API to cancel the previously-created transaction, through its external ID, to initiate processing. The external ID of transaction must be supplied replacing {external_id} in the URI path.

Returns

Transaction object.

If the action can’t be performed, an error 1007014 (Transaction can not be cancelled) will be returned

Resources

Resources

Designed around REST principles, data are passed to and from endpoints of the API as resources. These resources are expressed as objects in JSON, and are described in more detail below.

Service

{
    "id": 1,
    "name": "MobileWallet"
}

Represents a money transfer service. For an example of such a service, refer to the JSON object.

Field Type Description
id Integer Service ID
name String Service name

Payer

{
    "id": 3,
    "name": "Sample Payer",
    "precision": 0,
    "increment": 1,
    "currency": "IDR",
    "country_iso_code": "IDN",
    "minimum_transaction_amount": 0,
    "maximum_transaction_amount": null,
    "service": {
         "id": 1,
         "name": "MobileWallet"
    },
    "transaction_types": {
        "C2C" : {
            "credit_party_identifiers_accepted": [
                 [
                        "msisdn"
                 ]
            ],
            "required_sending_entity_fields": [
                 [
                        "firstname",
                        "date_of_birth",
                        "lastname"
                 ]
            ],
            "required_receiving_entity_fields": [
                 [
                        "firstname",
                        "lastname"
                 ]
            ],
            "required_documents": [
                [
                    "invoice",
                    "purchase_order",
                    "contract"
                ]
            ],
            "credit_party_information": {
                "credit_party_identifiers_accepted": [
                    []
                ]
            },
            "credit_party_verification": {
                "credit_party_identifiers_accepted": [
                    []
                ],
                "required_receiving_entity_fields": [
                    []
                ]
            },
            "purpose_of_remittance_values_accepted": [
            ]
        }
    }
}

A payer in Thunes system represents the targeted destination crediting the money into the beneficiary account. For bank account, it would be the bank where the beneficiary of a transaction holds his account, for mobile wallet, the payer will be the mobile wallet receiving the transaction.

Field Type Description
id Integer Payer ID
name String Payer name
precision Integer Number of digits after decimal point
increment Number Unit of increment for transaction amounts
currency String Currency in ISO-4217 format
country_iso_code String Country in ISO 3166-1 alpha-3 format
service Object Service information
transaction_types Object List of transaction types supported with relevant information

Additional Information

Click here to view more information on some of our selected payers

Payer summary view

{
    "id": 3,
    "name": "Sample Payer",
    "currency": "IDR",
    "country_iso_code": "IDN",
    "service": {
         "id": 1,
         "name": "MobileWallet"
    }
}

Represents payer information, in summary view. For instance, the summary view excludes transaction types.

Field Type Description
id Integer Payer ID
name String Payer name
currency String Currency in ISO-4217 format
country_iso_code String Country in ISO 3166-1 alpha-3 format
service Object Service information

Transaction type information list

{
    "C2C" : {
        "credit_party_identifiers_accepted": [
             [
                    "msisdn"
             ]
        ],
        "required_sending_entity_fields": [
             [
                    "firstname",
                    "date_of_birth",
                    "lastname"
             ]
        ],
        "required_receiving_entity_fields": [
             [
                    "firstname",
                    "lastname"
             ]
        ],
        "credit_party_information": {
            "credit_party_identifiers_accepted": [
                []
            ]
        },
        "credit_party_verification": {
            "credit_party_identifiers_accepted": [
                []
            ],
            "required_receiving_entity_fields": [
                []
            ]
        }
    },
    "B2B" : { "...": "..." }
}

List of transaction types supported by the Thunes money transfer platform.

Field Type Description
C2C Object Transaction type information relevant to C2C
C2B Object Transaction type information relevant to C2B
B2C Object Transaction type information relevant to B2C
B2B Object Transaction type information relevant to B2B

Transaction type information

{
    "credit_party_identifiers_accepted": [
         [
                "msisdn"
         ]
    ],
    "required_sending_entity_fields": [
         [
                "firstname",
                "date_of_birth",
                "lastname"
         ]
    ],
    "required_receiving_entity_fields": [
         [
                "firstname",
                "lastname"
         ]
    ],
    "required_documents": [
        [
            "contract",
            "invoice"
        ]
    ],
    "credit_party_information": {
        "credit_party_identifiers_accepted": [
            []
        ]
    },
    "credit_party_verification": {
        "credit_party_identifiers_accepted": [
            []
        ],
        "required_receiving_entity_fields": [
            []
        ]
    },
    "purpose_of_remittance_values_accepted": [
    ]
}

Defines the data which are required for a particular transaction type.

Field Type Description
minimum_transaction_amount Number Minimum transaction amount
maximum_transaction_amount Number Maximum transaction amount
credit_party_identifiers_accepted Array List of accepted credit party identifiers
required_sending_entity_fields Array List of required sender information
required_receiving_entity_fields Array List of required beneficiary information
required_documents Array List of required document types
credit_party_information Object Required credit party information
credit_party_verification Object Required credit party verification information
purpose_of_remittance_values_accepted Array List of accepted Purpose of Remittance

An empty list of accepted Purpose of Remittance means this Payer can accept all values. Otherwise, this Payer can only accept the values populated in the list.

Rates Per Transaction Type

{
    "C2C": {
        "EUR": [
            {
                "source_amount_min": 0,
                "source_amount_max": 88,
                "wholesale_fx_rate": 1.10847692409526
            },
            {
                "source_amount_min": 88,
                "source_amount_max": 8800,
                "wholesale_fx_rate": 1.10847692409526
            }
        ]
    },
    "B2B": {
        "EUR": [
            "...": "..."
        ],
    }
}

Represents the rates information per transaction type for a given payer.

Field Type Description
transaction_type Object a object rates for the specfic transaction type of payer

Rates

{
    "EUR": [
        {
            "source_amount_min": 0,
            "source_amount_max": 88,
            "wholesale_fx_rate": 1.10847692409526
        },
        {
            "source_amount_min": 88,
            "source_amount_max": 8800,
            "wholesale_fx_rate": 1.10847692409526
        }
    ]
}

Represents all rate information for a given payer.

Field Type Description
{currency} Array List of payer rate information

Rate

{
    "source_amount_min": 0,
    "source_amount_max": 88,
    "wholesale_fx_rate": 1.10847692409526
}

Describes the range of source amounts that a rate applies to for a given payer.

Field Type Description
source_amount_min Number Minimum source amount value
source_amount_max Number Maximum source amount value
wholesale_fx_rate Number Wholesale FX rate

Balance

{
    "id": 1,
    "currency": "EUR",
    "balance": 10000000,
    "pending": 0,
    "available": 10000000,
    "credit_facility": 0
}

Represents the account balance for a given currency.

available = balance - pending + credit_facility

Field Type Description
id Integer Balance ID
currency String Currency in ISO 4217 format
balance Number Current balance
pending Number Amount in transit (Transaction confirmed, not completed nor decliend yet)
available Number Available amount for transacting
credit_facility Number Credit facility

Balance Movement

{
  "balance_operation_number": 4376,
  "creation_date": "2022-12-01T16:28:03Z",
  "movement_type": "PAYOUT_FEES",
  "amount": -1.25,
  "currency": "USD",
  "transaction_reference_id": 123,
  "operation": "AUTHORIZE",
  "balance": 1162.56,
  "pending_balance": -120.39
}

Represents a balance movement for a given balance id.

Field Type Description
balance_operation_number Integer Balance Operation number
creation_date Integer Creation date in HTTP format
movement_type String Balance Movement Type
amount Number Amount of the balance movement
currency String Currency in ISO 4217 format
transaction_reference_id Number Transaction ID that generated this balance movement.
operation String Operation on balance
balance Number Current balance
pending_balance Number Amount in transit at the time of this recorded movement for Transaction(s) that have not reached a final status

Quotation

{
    "id": 1,
    "external_id": "1481184321405",
    "payer": {
        "id": 1,
        "name": "Sample Payer",
        "currency": "USD",
        "country_iso_code": "ZWE",
        "service": {
            "id": 1,
            "name": "MobileWallet"
        }
    },
    "mode": "SOURCE_AMOUNT",
    "transaction_type": "C2C",
    "source": {
        "country_iso_code": "FRA",
        "currency": "EUR",
        "amount": 10
    },
    "destination": {
        "currency": "USD",
        "amount": 10.69
    },
    "sent_amount": {
        "currency": "EUR",
        "amount": 10
    },
    "wholesale_fx_rate": 1.06891969534071,
    "fee": {
        "currency": "EUR",
        "amount": 1.88
    },
    "creation_date": "2016-11-02T09:07:44",
    "expiration_date": "2016-11-03T09:07:44"
}

Represents quotation information used to create transactions.

Field Type Description
id Integer Quotation ID
external_id String External reference ID. This is the reference for this quotation from the external system.
payer Object Payer information
mode String Quotation mode
transaction_type String Transaction type
source Object Source information
destination Object Destination information
sent_amount Object Sent amount information
wholesale_fx_rate Number Wholesale FX rate
fee Object Fee information
creation_date String Creation date in HTTP format
expiration_date String Expiration date in HTTP format

Transaction

{
    "id": 1,
    "status": "10000",
    "status_message": "CREATED",
    "status_class": "1",
    "status_class_message": "CREATED",
    "external_id": "1478078339357",
    "external_code": null,
    "transaction_type": "C2C",
    "payer_transaction_reference": null,
    "payer_transaction_code": null,
    "creation_date": "2016-11-02T09:19:15",
    "expiration_date": "2016-11-03T09:07:44",
    "credit_party_identifier": {
        "msisdn": "+263775892100",
        "bank_account_number": "0123456789",
        "swift_bic_code": "ABCDEFGH"
    },
    "source": {
        "country_iso_code": "FRA",
        "currency": "EUR",
        "amount": 10
    },
    "destination": {
        "currency": "USD",
        "amount": 10.69
    },
    "payer": {
        "id": 1,
        "name": "Sample Payer",
        "currency": "USD",
        "country_iso_code": "ZWE",
        "service": {
            "id": 1,
            "name": "MobileWallet"
        }
    },
    "sender": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "John",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1970-01-01",
        "country_of_birth_iso_code": "FRA",
        "gender": "MALE",
        "address": "42 Rue des fleurs",
        "postal_code": "75000",
        "city": "Paris",
        "country_iso_code": "FRA",
        "msisdn": "33712345678",
        "email": "john.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": null,
        "id_number": "502-42-0158",
        "id_delivery_date": "2016-01-01",
        "id_expiration_date": null,
        "occupation": "Residential Advisor",
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": null,
        "bank_account_number": null
    },
    "beneficiary": {
        "lastname": "Doe",
        "lastname2": null,
        "middlename": null,
        "firstname": "Jane",
        "nativename": null,
        "nationality_country_iso_code": "FRA",
        "code": null,
        "date_of_birth": "1971-01-01",
        "country_of_birth_iso_code": "ZWE",
        "gender": "MALE",
        "address": "3 Norfolk Road",
        "postal_code": "4581",
        "city": "Harare",
        "country_iso_code": "ZWE",
        "msisdn": "263775892364",
        "email": "jane.doe@mail.com",
        "id_type": "SOCIAL_SECURITY",
        "id_country_iso_code": "ZWE",
        "id_number": "178027317681327",
        "id_delivery_date": null,
        "id_expiration_date": null,
        "occupation": "Sales Executive",
        "bank_account_holder_name": null,
        "province_state": null
    },
    "callback_url": "{URL_PLACEHOLDER}",
    "sent_amount": {
        "currency": "EUR",
        "amount": 10
    },
    "wholesale_fx_rate": 1.06891969534071,
    "retail_rate": null,
    "retail_fee": 1,
    "retail_fee_currency": "EUR",
    "fee": {
        "currency": "EUR",
        "amount": 1.88
    },
    "purpose_of_remittance": "FAMILY_SUPPORT",
    "document_reference_number": "12345678",
    "additional_information_1": null,
    "additional_information_2": null,
    "additional_information_3": null,
    "reference": null
}

Represents transaction information for a transfer request.

Field Type Description
id Integer Transaction ID
status String Transaction status code
status_message String Transaction status description
status_class String Transaction status class
status_class_message String Transaction status class description
external_id String External ID
external_code String External reference code
transaction_type String Transaction type
payer_transaction_reference String Payer transaction reference
payer_transaction_code String Payer transaction code
creation_date String Creation date in HTTP format
expiration_date String Expiration date in HTTP format
credit_party_identifier Object Credit party information
source Object Source information
destination Object Destination information
payer Object Payer information
sender Object Sender information
beneficiary Object Beneficiary information
sending_business Object Sending business information
receiving_business Object Receiving business information
callback_url String Callback URL
sent_amount Object Sent amount information
wholesale_fx_rate Number Wholesale FX rate
retail_rate Number Retail rate
retail_fee Number Retail fee
retail_fee_currency String Retail fee currency in ISO 4217 format
fee Object Fee information
purpose_of_remittance String Purpose of remittance
document_reference_number String Reference number of document related to the transaction
additional_information_1 String Additional information
additional_information_2 String Additional information
additional_information_3 String Additional information
reference String Reference value that will be reflected on the Beneficiary’s/Receiving Business’ statement

Fields sender, beneficiary, sending_business, receiving_business will be present depending on the transaction type.

Transaction attachment

{
    "id": 1,
    "content_type": "application/pdf",
    "name": "invoice.pdf",
    "transaction_id": 1,
    "type": "invoice"
}

Represents an attachment which has been added to a transaction.

Field Type Description
id Integer Transaction Attachment ID
transaction_id Integer Transaction ID of related Transaction
name String Name of the attachment
content_type String Content type of the attachment
type String Transaction attachment type

Source

{
    "country_iso_code": "FRA",
    "currency": "EUR",
    "amount": 10
}

Represents source amount details for a given transaction.

Field Required Type Description
country_iso_code Yes String Country code in ISO 3166-1 alpha-3 format
currency Yes String Source currency in ISO 4217 format
amount Yes† Number Source amount

† : Required when chosen mode is SOURCE_AMOUNT

Destination

{
    "currency": "USD",
    "amount": 10
}

Represents destination amount details for a given transaction.

Field Required Type Description
currency Yes String Destination currency in ISO 4217 format
amount Yes† Number Destination amount

†: Required when chosen mode is DESTINATION_AMOUNT

Credit Party Identifier

{
    "msisdn": "263775892100",
    "bank_account_number": "0123456789",
    "swift_bic_code": "ABCDEFGH"
}

Represents identification details for a given credit party.

Field Required Type Description
msisdn No† String MSISDN in international format
bank_account_number No† String Bank account number
iban No† String Bank account number in IBAN format
clabe No† String Bank account number in CLABE format
cbu No† String Bank account number in CBU format
cbu_alias No† String Bank account number in CBU ALIAS format
swift_bic_code No† String SWIFT-BIC code
bik_code No† String Russian BIK code
ifs_code No† String IFSC code
sort_code No† String Sort code
aba_routing_number No† String ABA Routing Transfer Number
bsb_number No† String BSB number
branch_number No† String Branch number
routing_code No† String Routing code
entity_tt_id No† Int Entity ID
account_type No† String Account type
account_number No† String Account number
email No† String Email address
card_number No† String Card Number

†: Requiredness will depend on the payer configuration

Required Credit Party Information

{
    "credit_party_identifiers_accepted": [
        [
            "msisdn"
        ]
    ]
}

Represents required credit party identifiers to perform a credit party information request.

Field Required Type Description
credit_party_identifiers_accepted Yes Array List of credit party identifier fields

Required Credit Party Verification

{
    "credit_party_verification": {
        "credit_party_identifiers_accepted": [
            [
                "msisdn"
            ]
        ],
        "required_receiving_entity_fields": [
             [
                "msisdn",
                "firstname",
                "lastname"
             ]
        ]
    }
}

Represents required credit party identifiers to perform a credit party verification request.

Field Required Type Description
credit_party_identifiers_accepted Yes Array List of credit party identifier fields
required_receiving_entity_fields Yes Array List of required receiving entity information

Sender

{
    "lastname": "Doe",
    "lastname2": null,
    "middlename": null,
    "firstname": "John",
    "nativename": null,
    "nationality_country_iso_code": "FRA",
    "code": null,
    "date_of_birth": "1970-01-01",
    "country_of_birth_iso_code": "FRA",
    "gender": "MALE",
    "address": "42 Rue des fleurs",
    "postal_code": "75000",
    "city": "Paris",
    "country_iso_code": "FRA",
    "msisdn": "33712345678",
    "email": "john.doe@mail.com",
    "id_type": "SOCIAL_SECURITY",
    "id_country_iso_code": null,
    "id_number": "502-42-0158",
    "id_delivery_date": "2016-01-01",
    "id_expiration_date": null,
    "occupation": "Residential Advisor",
    "province_state": null,
    "beneficiary_relationship": null,
    "source_of_funds": null
}

Represents sender information for a given transaction of type C2C or C2B.

Field Required Type Description
lastname No† String Last name
lastname2 No† String Additional last name(s)
middlename No† String Middle name
firstname No† String First name
nativename No† String Full name in native characters
nationality_country_iso_code No† String Nationality in ISO 3166-1 alpha-3 format
code No† String Sender identification code
date_of_birth No† String Date of birth in ISO 8601 format
country_of_birth_iso_code No† String Country of birth in ISO 3166-1 alpha-3 format
gender No† String Gender
address No† String Address
postal_code No† String Postal code
city No† String City
country_iso_code No† String Address country in ISO 3166-1 alpha-3 format
msisdn No† String MSISDN in international format
email No† String Email address
id_type No† String Presented identification type
id_country_iso_code No† String ID country in ISO 3166-1 alpha-3 format
id_number No† String Presented identification number
id_delivery_date No† String ID delivery date in ISO 8601 format
id_expiration_date No† String ID expiration date in ISO 8601 format
occupation No† String Occupation
bank_account_number No† String Bank account number
province_state No† String Address province/state
beneficiary_relationship No† String Relationship to beneficiary
source_of_funds No† String Source of funds

†: Requiredness will depend on payer configuration

Sending business

{
    "registered_name": "Company ABC",
    "trading_name": "Brand name",
    "address": "12, Victoria Lane",
    "postal_code": "12345",
    "city": "Singapore",
    "province_state": null,
    "country_iso_code": "SGP",
    "msisdn": "33712345678",
    "email": "john.doe@mail.com",
    "registration_number": null,
    "code": null,
    "tax_id": null,
    "date_of_incorporation": "2014-10-01",
    "representative_lastname": "Doe",
    "representative_lastname2": null,
    "representative_firstname": "John",
    "representative_middlename": null,
    "representative_nativename": null,
    "representative_id_type": null,
    "representative_id_country_iso_code": "SGP",
    "representative_id_number": null,
    "representative_id_delivery_date": null,
    "representative_id_expiration_date": null,
    "business_relationship": null
}

Represents sending business information for a given transaction of type B2C or B2B.

Field Required Type Description
registered_name No† String Registered name of the business
trading_name No† String Trading name of the business
address No† String Adress
postal_code No† String Postal code
city No† String City
province_state No† String Address province/state
country_iso_code No† String Country of the business in ISO 3166-1 alpha-3 format
msisdn No† String MSISDN in international format
email No† String Email address
registration_number No† String Registration number
code No† String Sending Business identification code
tax_id No† String Tax identifier
date_of_incorporation No† String Date of incorporation of the business in ISO 8601 format
representative_lastname No† String Last name of the representative of the business
representative_lastname2 No† String Additional last name(s) of the representative of the business
representative_firstname No† String First name of the representative of the business
representative_middlename No† String Middle name of the representative of the business
representative_nativename No† String Full name in native characters of the representative of the business
representative_id_type No† String Presented identification type of the representative of the business
representative_id_country_iso_code No† String ID delivery date in ISO 8601 format
representative_id_number No† String Presented identification number
representative_id_delivery_date No† String ID delivery date in ISO 8601 format
representative_id_expiration_date No† String ID expiration date in ISO 8601 format
business_relationship No† String Business relationship to beneficiary

†: Requiredness will depend on payer configuration

Beneficiary

{
    "lastname": "Doe",
    "lastname2": null,
    "middlename": null,
    "firstname": "Jane",
    "nativename": null,
    "nationality_country_iso_code": "FRA",
    "code": null,
    "date_of_birth": "1971-01-01",
    "country_of_birth_iso_code": "ZWE",
    "gender": "MALE",
    "address": "3 Norfolk Road",
    "postal_code": "4581",
    "city": "Harare",
    "country_iso_code": "ZWE",
    "msisdn": "263775892364",
    "email": "jane.doe@mail.com",
    "id_type": "SOCIAL_SECURITY",
    "id_country_iso_code": "ZWE",
    "id_number": "178027317681327",
    "id_delivery_date": null,
    "id_expiration_date": null,
    "occupation": "Sales Executive",
    "bank_account_holder_name": null,
    "province_state": null
}

Represents beneficiary information for a given transaction of type C2C or B2C.

Field Required Type Description
lastname No† String Last name
lastname2 No† String Additional last name(s)
middlename No† String Middle name
firstname No† String First name
nativename No† String Full name in native characters
nationality_country_i No† String Nationality in ISO 3166-1 alpha-3 format so_code
code No† String Beneficiary identification code
date_of_birth No† String Date of birth in ISO 8601 format
country_of_birth_iso_code No† String Country of birth in ISO 3166-1 alpha-3 format
gender No† String Gender
address No† String Address
postal_code No† String Postal code
city No† String City
country_iso_code No† String Address country in ISO 3166-1 alpha-3 format
msisdn No† String MSISDN in international format
email No† String Email address
id_type No† String Presented identification type
id_country_iso_code No† String ID country in ISO 3166-1 alpha-3 format
id_number No† String Presented identification number
id_delivery_date No† String ID delivery date in ISO 8601 format
id_expiration_date No† String ID expiration date in ISO 8601 format
occupation No† String Occupation
bank_account_holder_name No† String Bank account holder name
province_state No† String Address province/state

†: Requiredness will depend on payer configuration

Receiving business

{
    "registered_name": "Company ABC",
    "trading_name": "Brand name",
    "address": "12, Victoria Lane",
    "postal_code": "12345",
    "city": "Singapore",
    "province_state": null,
    "country_iso_code": "SGP",
    "msisdn": "33712345678",
    "email": "john.doe@mail.com",
    "registration_number": null,
    "tax_id": null,
    "date_of_incorporation": "2014-10-01",
    "representative_lastname": "Doe",
    "representative_lastname2": null,
    "representative_firstname": "John",
    "representative_middlename": null,
    "representative_nativename": null,
    "representative_id_type": null,
    "representative_id_country_iso_code": "SGP",
    "representative_id_number": null,
    "representative_id_delivery_date": null,
    "representative_id_expiration_date": null
}

Represents receiving business information for a given transaction of type C2B or B2B.

Field Required Type Description
registered_name No† String Registered name of the business
trading_name No† String Trading name of the business
address No† String Adress
postal_code No† String Postal code
city No† String City
province_state No† String Address province/state
country_iso_code No† String Country of the business in ISO 3166-1 alpha-3 format
msisdn No† String MSISDN in international format
email No† String Email address
registration_number No† String Registration number
tax_id No† String Tax identifier
date_of_incorporation No† String Date of incorporation of the business in ISO 8601 format
representative_lastname No† String Last name of the representative of the business
representative_lastname2 No† String Additional last name(s) of the representative of the business
representative_firstname No† String First name of the representative of the business
representative_middlename No† String Middle name of the representative of the business
representative_nativename No† String Full name in native characters of the representative of the business
representative_id_type No† String Presented identification type of the representative of the business
representative_id_country_iso_code No† String ID delivery date in ISO 8601 format
representative_id_number No† String Presented identification number
representative_id_delivery_date No† String ID delivery date in ISO 8601 format
representative_id_expiration_date No† String ID expiration date in ISO 8601 format

†: Requiredness will depend on payer configuration

Sent Amount

{
    "currency": "EUR",
    "amount": 10
}

Represent sent amount details for a given transaction.

Field Type Description
currency String Sent amount currency in ISO 4217 format
amount Number Sent amount value

Value within these fields will correspond to values in source amount.

Fee

{
    "currency": "EUR",
    "amount": 1.50
}

Represents fee information for a given transaction.

Field Type Description
currency String Fee amount currency in ISO 4217 format
amount Number Fee amount value

Country

{
    "iso_code": "SGP",
    "name": "Singapore"
}

Represents country information.

Field Type Description
iso_code String Country in ISO 3166-1 alpha-3 format
name String Country name

Administrative Division Category

{
    "id": 1,
    "name": "Province"
}

Represents administrative division category information.

Field Type Description
id Integer Category ID
name String Category name

Administrative Division

{
    "id": 1,
    "name": "Artemisa Province",
    "depth": 1,
    "parent_id": null,
    "category": {
        "id": 1,
        "name": "Province"
    }
}

Represents administrative division information.

Field Type Description
id Integer Division ID
name String Division name
depth Integer Depth relative to hierarchy
parent_id Integer Division parent (if any)
category Object Administrative division category information

Entity

{
    "id": 328,
    "name": "DBS",
    "depth": 1,
    "address": null,
    "country_iso_code": "IND",
    "parent_id": null,
    "identifiers": [],
    "payment_systems": [],
    "payers": [
        {
            "id": 358,
            "name": "All Banks",
            "currency": "INR"
        }
    ],
    "category": {
        "id": 1,
        "name": "Bank"
    },
    "administrative_division": {
        "id": 315,
        "name": "Delhi",
        "depth": 1,
        "parent_id": null,
        "category": {
            "id": 5,
            "name": "Union Territory"
        }
    }
}

Represents entity information.

Field Type Description
id Integer Entity ID
name String Entity name
depth Integer Depth relative to hierarchy
address String Registered address
country_iso_code String Address country in ISO 3166-1 alpha-3 format
parent_id Integer Division parent (if any)
identifiers Array List of entity identifier objects
payment_systems Array List of entity payment system objects
payers Array List of entity payer objects
category Object Entity category information
administrative_division Object Administrative division information

Entity Identifier

{
    "id": 2,
    "code": "IFS_CODE",
    "values": [
        "SBIN0007336"
    ]
}

Represents entity identifier information.

Field Type Description
id Integer Entity identifier ID
code String Entity identifier code
values Array List of entity identifier values

Entity Payment System

{
    "id": 2,
    "code": "IFS_CODE",
    "values": [
        "SBIN0007336"
    ]
}

Represents entity identifier information.

Field Type Description
id Integer Entity identifier ID
code String Entity identifier code
values Array List of entity identifier values

Entity Payer

{
    "id": 358,
    "name": "All Banks",
    "currency": "INR"
}

Represents entity payer information.

Field Type Description
id Integer Entity payer ID
name String Entity payer name
currency String Currency in ISO-4217 format

Entity Category

{
    "id": 1,
    "name": "Bank"
}

Represents entity category information.

Field Type Description
id Integer Entity category IDname

Report

{
  "id": 123,
  "type": "PARTNER_TRANSACTION_REPORT_DAILY",
  "timezone": "UTC",
  "cut_off_time": "00:00:00",
  "report_date": "2023-10-17",
  "period_start": "2023-10-17T00:00:00Z",
  "period_end": "2023-10-18T00:00:00Z",
  "files": [
    {
      "id": 4567,
      "report_type": "PARTNER_TRANSACTION_REPORT_DAILY",
      "file_type": "TRANSACTION_STATS",
      "name": "daily_transaction_report_2023-10-17.csv"
    }
  ]
}

Represents a report.

Field Type Description
id Integer Report ID
type String Report type
timezone String timezone
cut_off_time String cut off time
report_date String Report date in HTTP format
period_start String Period start date in HTTP format
period_end String Period end date in HTTP format
files Array list of Report File

Report File

 {
  "id": 7890,
  "report_type": "PARTNER_TRANSACTION_REPORT_DAILY",
  "file_type": "TRANSACTION_STATS",
  "name": "daily_transaction_report_2023-10-17.csv"
}

Represents a report file

Field Type Description
id Integer Report file ID
name String File name
report_type String Report Type
file_type String Report File Type

Enumerations

Enumerations

A number of resource fields will only accept a list of known values, as outlined in this section.

Quotation Mode

Mode Description
SOURCE_AMOUNT Quotation created by specifying desired source
DESTINATION_AMOUNT Quotation created by specifying desired destination

Transaction Type

Mode Description
C2C Quotation or Transaction is from an individual end user to an individual end user
C2B Quotation or Transaction is from an individual end user to a business
B2C Quotation or Transaction is from a business to an individual end user
B2B Quotation or Transaction is from a business to a business

Gender

Gender Description
MALE Male
FEMALE Female

Transaction Status Class

Status Class Message
1 CREATED
2 CONFIRMED
3 REJECTED
4 CANCELLED
5 SUBMITTED
6 AVAILABLE
7 COMPLETED
8 REVERSED
9 DECLINED

Transaction Status

Status Message Details
10000 CREATED The transaction is created.
20000 CONFIRMED The transaction is confirmed.
20110 CONFIRMED-UNDER-REVIEW-SLS The transaction is under sanctions list screening for sender or beneficiary.
20150 CONFIRMED-WAITING-FOR-PICKUP The transaction is available for cash pick up by the beneficiary. Applicable for universal cash pick up only.
30000 REJECTED The transaction is rejected.
30110 REJECTED-SLS-SENDER The transaction is rejected as the sender failed the sanctions list screening.
30120 REJECTED-SLS-BENEFICIARY The transaction is rejected as the beneficiary failed the sanctions list screening.
30200 REJECTED-INVALID-BENEFICIARY The transaction is rejected as the beneficiary account is invalid.
30201 REJECTED-BARRED-BENEFICIARY The transaction is rejected as the beneficiary is blacklisted.
30202 REJECTED-BARRED-SENDER The transaction is rejected as the sender is blacklisted.
30210 REJECTED-INVALID-BENEFICIARY-DETAILS The transaction is rejected as the beneficiary details are invalid, e.g. name, email, phone number.
30305 REJECTED-LIMITATIONS-ON-TRANSACTION-VALUE The transaction is rejected as the transaction value exceeds the transaction value limit.
30310 REJECTED-LIMITATIONS-ON-SENDER-VALUE The transaction is rejected as the transaction value exceeds the value that the sender can send.
30320 REJECTED-LIMITATIONS-ON-BENEFICIARY-VALUE The transaction is rejected as the transaction value exceeds the value that the beneficiary can receive.
30330 REJECTED-LIMITATIONS-ON-ACCOUNT-VALUE The transaction is rejected as the transaction value exceeds the value that the account can receive.
30350 REJECTED-LIMITATIONS-ON-SENDER-QUANTITY The transaction is rejected as the sender exceeded the number of transactions that the sender can send.
30360 REJECTED-LIMITATIONS-ON-BENEFICIARY-QUANTITY The transaction is rejected as the beneficiary exceeded the number of transactions that the beneficiary can receive.
30370 REJECTED-LIMITATIONS-ON-ACCOUNT-QUANTITY The transaction is rejected as the account exceeded the number of transactions that the account can receive.
30392 REJECTED-COMPLIANCE-REASON The transaction is rejected due to compliance reason.
30400 REJECTED-PAYER-CURRENTLY-UNAVAILABLE The transaction is rejected as the payer is either under payer maintenance or currently unavailable.
30500 REJECTED-INSUFFICIENT-BALANCE The transaction is rejected due to insufficient balance on the pay-in partner’s account.
40000 CANCELLED The transaction is cancelled upon request.
50000 SUBMITTED The transaction is submitted to the pay-out partner for processing.
60000 AVAILABLE The transaction is available for cash pick up by the beneficiary.
70000 COMPLETED The transaction is completed and payout has been made to the beneficiary.
80000 REVERSED The transaction is reversed.
90000 DECLINED The transaction is declined by the pay-out partner.
90110 DECLINED-SLS-SENDER The transaction is declined by the pay-out partner as the sender failed the sanctions list screening.
90120 DECLINED-SLS-BENEFICIARY The transaction is declined by the pay-out partner as the beneficiary failed the sanctions list screening.
90200 DECLINED-INVALID-BENEFICIARY The transaction is declined by the pay-out partner due to invalid beneficiary, e.g. bank account number.
90201 DECLINED-BARRED-BENEFICIARY The transaction is declined by the pay-out partner as the beneficiary is blacklisted.
90202 DECLINED-UNSUPPORTED-BENEFICIARY The transaction is declined by the pay-out partner as the beneficary does not allow overseas transaction or payer is unavailable for pay out.
90210 DECLINED-INVALID-BENEFICIARY-DETAILS The transaction is declined by the pay-out partner as the beneficiary’s details is invalid, e.g. name or address.
90211 DECLINED-INVALID-SENDER-DETAILS The transaction is declined by the pay-out partner as the sender details is in wrong format per pay-out partners’ rules on sender. eg: character type length.
90305 DECLINED-LIMITATIONS-ON-TRANSACTION-VALUE The transaction is declined by the pay-out partner as the value exceeds the amount allowed per transaction.
90310 DECLINED-LIMITATIONS-ON-SENDER-VALUE The transaction is declined by the pay-out partner as the transaction value exceeds the value that the sender can send per transaction.
90320 DECLINED-LIMITATIONS-ON-BENEFICIARY-VALUE The transaction is declined by the pay-out partner as the transaction value exceeds the total value that the beneficiary can receive.
90330 DECLINED-LIMITATIONS-ON-ACCOUNT-VALUE The transaction is declined by the pay-out partner as the transaction value exceeds the total value that the beneficiary can receive per account.
90331 DECLINED-LIMITATIONS-ON-ACCOUNT-VALUE-DAILY The transaction is declined by the pay-out partner as the transaction value exceeds the total value that the beneficiary can receive per day.
90332 DECLINED-LIMITATIONS-ON-ACCOUNT-VALUE-WEEKLY The transaction is been declined by the pay-out partner as the transaction value exceeds the total value that the beneficiary can receive per week.
90333 DECLINED-LIMITATIONS-ON-ACCOUNT-VALUE-MONTHLY The transaction is declined by the pay-out partner as the transaction value exceeds the total value that the beneficiary can receive per month.
90334 DECLINED-LIMITATIONS-ON-ACCOUNT-VALUE-YEARLY The transaction is declined by the pay-out partner as the transaction value exceeds the total value that the beneficiary can receive per year.
90350 DECLINED-LIMITATIONS-ON-SENDER-QUANTITY The transaction is declined by the pay-out partner as the sender has exceeded the number of transactions that the sender can send.
90360 DECLINED-LIMITATIONS-ON-BENEFICIARY-QUANTITY The transaction is declined by the pay-out partner as the beneficiary exceeds the total number of transactions that the beneficiary can receive.
90370 DECLINED-LIMITATIONS-ON-ACCOUNT-QUANTITY The transaction is declined by the pay-out partner as the beneficiary’s account exceeds the total number of transactions that the account can receive.
90380 DECLINED-DUPLICATED-TRANSACTION The transaction is declined by the pay-out partner due to duplication in the transaction.
90390 DECLINED-CANCELLED The transaction is declined by the pay-out partner as the pay-in partner contacted support and asked for the transaction to be cancelled.
90391 DECLINED-REFUSED The transaction is declined by the pay-out partner as the beneficiary has actively refused to perform the required onboarding, the time has elapsed or the beneficiary was unresponsive.
90392 DECLINED-COMPLIANCE-REASON The transaction is declined by the pay-out partner due to compliance reason.
90393 DECLINED-INVALID-PURPOSE-OF-REMITTANCE The transaction is declined by the pay-out partner due to invalid purpose of remittance, e.g. pay-out partner does not allow gifts/donations.
90400 DECLINED-PAYER-CURRENTLY-UNAVAILABLE The transaction is declined by the pay-out partner as their system are not available.

Transaction attachment type

Type Description
invoice Attachment is an invoice
purchase_order Attachment is a purchase order
delivery_slip Attachment is a delivery slip
contract Attachment is a contract
customs_declaration Attachment is a customs declaration
bill_of_landing Attachment is a bill of landing
others Anything else not covered in this list

Transaction attachment allowed file types

Extension Description File Mime Type
.txt Plain Text text/plain
.pdf Adobe Portable Document Format application/pdf
.doc Microsoft Word Document application/msword
.docx Microsoft Word (OpenXML) application/vnd.openxmlformats-officedocument.wordprocessingml.document
.jpg, .jpeg JPEG images image/jpeg
.png Portable Network Graphics image/png
.bmp Windows OS/2 Bitmap Graphics image/bmp
.rtf Rich Text Format (RTF) application/rtf
.xls Microsoft Excel application/vnd.ms-excel
.xlsx Microsoft Excel (OpenXML) application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Account Status

Status Message
AVAILABLE Credit party account is available and can receive a transfer
UNREGISTERED Credit party account is not registered but can still receive a transfer
UNAVAILABLE Credit party account is not available and will not receive a transfer
UNAVAILABLE-BENEFICIARY-MISMATCH Credit party account does not match the beneficiary details
UNAVAILABLE-INVALID-ACCOUNT Credit party account number is invalid
UNAVAILABLE-BARRED-ACCOUNT Credit party account number is barred

Beneficiary Relationship

Relationship Description
AUNT Aunt
BROTHER Brother
BROTHER_IN_LAW Brother-in-law
COUSIN Cousin
DAUGHTER Daughter
FATHER Father
FATHER_IN_LAW Father-in-law
FRIEND Friend
GRAND_FATHER Grandfather
GRAND_MOTHER Grandmother
HUSBAND Husband
MOTHER Mother
MOTHER_IN_LAW Mother-in-law
NEPHEW Nephew
NIECE Niece
SELF Self (i.e. the sender, himself)
SISTER Sister
SISTER_IN_LAW Sister-in-law
SON Son
UNCLE Uncle
WIFE Wife
OTHER Others not listed

Business Relationship

Relationship Description
EMPLOYEE Employee
CUSTOMER Customer
VENDOR_SERVICE Vendor Service
PROVIDER Provider
BUSINESS_PARTNER Business Partner
INVESTOR Investor
THIRD_PARTY Third Party

Source of Funds

Source Description
CASH Cash
BUSINESS Business
GIFT Gift
SALARY Salary
LOTTERY Lottery
SAVINGS Savings
OTHER Others not listed

ID Type

Type Description
PASSPORT Passport
NATIONAL_ID National Identification Card
DRIVING_LICENSE Driving License
SOCIAL_SECURITY Social Security Card/Number
TAX_ID Tax Payer Identification Card/Number
SENIOR_CITIZEN_ID Senior Citizen Identification Card
BIRTH_CERTIFICATE Birth Certificate
VILLAGE_ELDER_ID Village Elder Identification Card
RESIDENT_CARD Permanent Residency Identification Card
ALIEN_REGISTRATION Alien Registration Certificate/Card
PAN_CARD PAN Card
VOTERS_ID Voter’s Identification Card
HEALTH_CARD Health Insurance Card/Number
EMPLOYER_ID Employer Identification Card
OTHER Others not listed

Purpose of Remittance

Purpose Description
COMPUTER_SERVICES Computer service
FAMILY_SUPPORT Family support
EDUCATION Education
GIFT_AND_DONATION Gift and other donations
MEDICAL_TREATMENT Medical treatment
MAINTENANCE_EXPENSES Maintenance or other expenses
TRAVEL Travel
SMALL_VALUE_REMITTANCE Small value remittance
LIBERALIZED_REMITTANCE Liberalized remittance
CONSTRUCTION_EXPENSES Construction expenses
HOTEL_ACCOMMODATION Hotel accommodation
ADVERTISING_EXPENSES Advertising and/or public relations related expenses
ADVISORY_FEES Fees for advisory or consulting service
BUSINESS_INSURANCE Business related insurance payment
INSURANCE_CLAIMS Insurance claims payment
DELIVERY_FEES Delivery fees
EXPORTED_GOODS Payments for exported goods
SERVICE_CHARGES Payment for services
LOAN_PAYMENT Payment of loans
OFFICE_EXPENSES Office expenses
PROPERTY_PURCHASE Residential property purchase
PROPERTY_RENTAL Property rental payment
ROYALTY_FEES Royalty, trademark, patent and copyright fees
SHARES_INVESTMENT Investment in shares
FUND_INVESTMENT Fund investment
TAX_PAYMENT Tax payment
TRANSPORTATION_FEES Transportation fees
UTILITY_BILLS Utility bills
PERSONAL_TRANSFER Personal transfer
SALARY_PAYMENT Payment of salary
REWARD_PAYMENT Payment of rewards
INFLUENCER_PAYMENT Payment of Influencer
OTHER_FEES Broker, commitment, guarantee and other fees
OTHER Other purposes

Bank Account Type

Value Description
CHECKING Checking Account
SAVINGS Savings Account
DEPOSIT Deposit Account
OTHERS Other type of account

Balance Movement Type

Value Description
PAYOUT Payout transaction
PAYOUT_FEES Fee for payout transaction
RETAIL_FEE_SHARING Retail fee sharing
COMMISSION_ON_SPREAD Commission on spread
RETAIL_RATE_SHARING Retail rate sharing
WITHDRAWAL Withdrawal from balance
MINIMUM_COMMITMENT_FEE Minimum commitment fee
TRANSFER Credit to balance
CO_MARKETING_SUPPORT_FEE Co-marketing support fee
REVERSAL Reversal of payout transaction
TRADE_CREDIT Credit of funds via trading desk
TRADE_DEBIT Debit of funds via trading desk

Balance Operation

Value Description
AUTHORIZE Authorizes amount from balance
CAPTURE Captures Authorised amount
REVERSAL Reversal balance movement
VOID Cancels authorization

Report Type

Value Description
PARTNER_ACCOUNT_STATEMENT_DAILY Daily account statement report
PARTNER_ACCOUNT_STATEMENT_MONTHLY Monthly account statement report
PARTNER_TRANSACTION_REPORT_DAILY Daily transaction report
PARTNER_TRANSACTION_REPORT_MONTHLY Monthly transaction report

Report File Type

Value Description
UNDERLYING_STATS Individual account statement record(s)
TRANSACTION_STATS Individual Transaction record(s)
AGGREGATED_STATS Aggregated account statement record(s)

Payer Information

Payer Information

Additional information on some selected payers are outlined in this section.

WeChat Pay

What is WeChat Pay

WeChat Pay is a mobile payment and digital wallet service by WeChat based in China that allows users to make mobile payments and online transactions. In addition to that, WeChat Pay allows users to receive money in their wallet or their Chinese bank accounts (if selected as the receiving account) for cross-border remittance.

Our Service with WeChat Pay

Note: A user must have a valid account with WeChat pay first before being able to receive a cross-border remittance. However, Thunes still has the capability to reach more than 95% of bank accounts in China depending on the beneficiary’s settings. See the “Beneficiary Experience” section below for more details.

Beneficiary Experience

  1. A beneficiary receives a payment notification
  2. If this is the first time a beneficiary receives a cross-border remittance:
    1. The beneficiary receives a SMS with a URL for the payment
    2. Clicking on the URL would redirect the beneficiary to the mobile application
    3. Follow the steps in the app for authorization
  3. Funds will arrive in the wallet balance (User selected Wallet as the receiving account) OR
  4. Funds will arrive in the bank account (User selected BA as the receiving account)

Alipay

What is Alipay

Alipay is a digital eWallet that allows users to make payments on their phone by storing their debit or credit card or bank account. In addition to that, Alipay allows users to receive money directly to their Chinese bank accounts (if successfully linked) for cross-border remittance.

Our Service with Alipay

Note: A user must have a valid account with Alipay first before being able to receive a cross-border remittance. However, Thunes still has the capability to reach more than 95% of bank accounts in China if the beneficiary has successfully linked his/her bank account. See the “Beneficiary Experience” section below for more details.

Beneficiary Experience

  1. A beneficiary receives a payment notification
  2. The beneficiary accepts the payment
  3. Funds will arrive in the linked Bank account (User has successfully linked a BA) OR
  4. Beneficiary is given 72hrs to link a bank account (User has not linked a BA)