NAV
Python Ruby PHP Go Perl

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 organized 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.

Versioning

Endpoints of the API are prefixed with a corresponding version number.

This is done to provide complete isolation between implementations and to ensure that subsequent major changes to the API will never affect existing integrations.

Transaction states

transaction states

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

Conditions marked as “Upon request to customer care team” pertains to reversal and/or cancellation, which must be requested through and performed by Thunes’ customer care team.

As changes in transaction status occur, updates will be sent in real-time when a callback URL is provided. In conjunction, 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 in the perspective of the sending partner and functions to retrieve transaction details when exceptions occur, such as when the supposed response was not received, as an example.

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.

Example Flow

transaction flow

As soon as a transaction is confirmed, the transfer order will be sent to the receiving partner for immediate processing.

During this time, the sending partner will receive a CONFIRMED status for the transaction.

Callback

POST /callback HTTP/1.1
Date: Wed, 02 Nov 2016 09:17:54 GMT
Content-Type: application/json
X-TransferTo-Apikey: 00000000-0000-0000-0000-000000000000
X-TransferTo-Nonce: 1478078334
X-TransferTo-Hmac: g41AgixMSFMQj0TZgyXIK6+odCVgy76fxfGpAtWwhE8=
{
   "id": 1,
   "status": 70000,
   "status_message": "COMPLETED",
   "status_class": 7,
   "status_class_message": "COMPLETED",
   "external_id": "1478078339357",
   "external_code": null,
   "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",
      "precision": 2,
      "increment": 0.01,
      "currency": "USD",
      "country_iso_code": "ZWE",
      "minimum_transaction_amount": 0,
      "maximum_transaction_amount": null,
      "credit_party_identifiers_accepted": [
         [
            "msisdn"
         ]
      ],
      "required_sender_fields": [
         [
            "lastname",
            "firstname"
         ]
      ],
      "required_beneficiary_fields": [
         [
            "lastname",
            "firstname"
         ]
      ],
      "service": {
         "id": 1,
         "name": "MobileWallet"
      },
      "credit_party_information": {
         "credit_party_identifiers_accepted": [
            []
         ]
      },
      "credit_party_verification": {
         "credit_party_identifiers_accepted": [
            []
         ],
         "required_beneficiary_fields": [
            []
         ]
      }
   },
   "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",
      "bank": null,
      "bank_account": null,
      "card": null,
      "province_state": null,
      "beneficiary_relationship": null,
      "source_of_funds": 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",
   "additional_information_1": null,
   "additional_information_2": null,
   "additional_information_3": null
}

As the transfer order is being processed, changes in status will be notified in realtime if a callback URL was provided.

This endpoint must be implemented by the sending partner, which should expect an HTTP POST request containing a transaction object represented in JSON.

The same sets of credentials used to access the Money Transfer API will be used in authenticating to the callback endpoint, via digest auth.

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 one of the following means:

  1. HTTP Basic Auth
  2. Digest Auth (HMAC)

Basic Auth

curl https://api.mm.thunes.com/ping \
  -u "${API_KEY}:${API_SECRET}"
URL Part Value
user-ID API key
password API secret

Digest Auth

apikey = "XXX"
apisecret = "YYY"
url = "ZZZ"

nonce = int(time.time())
date = email.utils.formatdate(usegmt = True)

message = bytes(apikey + str(nonce) + date).encode('utf-8')
secret = bytes(apisecret).encode('utf-8')
hmac = base64.b64encode(hmac.new(secret, message, digestmod = hashlib.sha256).digest())

response = requests.get(url, headers = {
    'X-TransferTo-apikey': apikey,
    'X-TransferTo-nonce': nonce,
    'X-TransferTo-hmac': hmac,
    'Date': date
})
apikey = 'XXX'
apisecret = 'YYY'
url = 'ZZZ'

nonce = Time.now.strftime('%s').to_s
date = Time.now.httpdate

def sign(key, base_string)
  digest = OpenSSL::Digest::SHA256.new
  hmac = OpenSSL::HMAC.digest(digest, key, base_string)
  hmac64 = Base64.encode64(hmac).chomp.gsub(/\n/, '')
  return hmac64
end

hmac = sign(apisecret, apikey + nonce + date)

req = Net::HTTP::Get.new(url)
req['X-TransferTo-apikey'] = apikey
req['X-TransferTo-nonce'] = nonce
req['X-TransferTo-hmac'] = hmac
req['Date'] = date

http = Net::HTTP.start(url.hostname, url.port, :use_ssl => true)
response = http.request(req)
<?php
$api_key = 'XXX';
$api_secret = 'YYY';
$url = 'ZZZ';

$nonce = time();
$date = gmdate('D, d M Y H:i:s T');

$hmac = base64_encode(hash_hmac('sha256', $api_key.$nonce.$date, $api_secret, true ));

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "X-TransferTo-apikey: $api_key",
    "X-TransferTo-nonce: $nonce",
    "X-TransferTo-hmac: $hmac",
    "Date: $date"
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
var apikey string = "XXX"
var secret string = "YYY"
var url string = "ZZZ"

var date string = time.Now().Format(time.RFC1123)
var nonce string = strconv.FormatInt(time.Now().Unix(), 10)

func main() {
    digest := hmac.New(sha256.New, []byte(secret))
    digest.Write([]byte(apikey + nonce + date))
    hmac := base64.StdEncoding.EncodeToString(digest.Sum(nil))

    request, err := http.NewRequest("GET", url, nil)
    request.Header.Add("X-TransferTo-apikey", apikey)
    request.Header.Add("X-TransferTo-nonce", nonce)
    request.Header.Add("X-TransferTo-hmac", hmac)
    request.Header.Add("Date", date)

    client := &http.Client{}

    response, err := client.Do(request)
}
my $api_key = 'XXX';
my $api_secret = 'YYY';
my $url = 'ZZZ';

my $nonce = time();
my $date = HTTP::Date::time2str();

my $hmac = hmac_sha256_base64($api_key, $nonce, $date, $api_secret);
$hmac .= '=' while length($hmac) % 4;

my $client = REST::Client->new;
$client->addHeader('X-TransferTo-apikey', $api_key);
$client->addHeader('X-TransferTo-nonce', $nonce);
$client->addHeader('X-TransferTo-hmac', $hmac);
$client->addHeader('Date', $date);

my $response = $client->get($url);
Header Field Description
X-TransferTo-apikey API key
X-TransferTo-nonce Unique value per request (max 64 chars)
X-TransferTo-hmac HMAC-SHA-256 (Base64 Encoded)
Date Current date in HTTP format

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:
Error occurred on Thunes

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 over maximum of the selected payer
1005001 Account is invalid
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
1007100 Method is not supported by this payer
1007101 Method is currently unavailable
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, max 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

Connectivity

Ping

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

GET /ping

Query API status.

Output

Field Type Description
status String API status

Expected value of status should be “up”.

Discovery

Services

GET /v1/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 /v1/money-transfer/services

Retrieve list of all available services.

Input

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

Output

Array of service objects in a paginated fashion.

Payers

GET /v1/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",
      "minimum_transaction_amount": 0,
      "maximum_transaction_amount": null,
      "service": {
         "id": 1,
         "name": "MobileWallet"
      },
      "credit_party_identifiers_accepted": [
         [
            "msisdn"
         ]
      ],
      "required_sender_fields": [
         [
            "firstname",
            "lastname",
            "date_of_birth"
         ]
      ],
      "required_beneficiary_fields": [
         [
            "firstname",
            "lastname"
         ]
      ],
      "credit_party_information": {
         "credit_party_identifiers_accepted": [
            []
         ]
      },
      "credit_party_verification": {
         "credit_party_identifiers_accepted": [
            []
         ],
         "required_beneficiary_fields": [
            []
         ]
      }
   },
   {
      "id": 2,
      "name": "CashPickup Payer",
      "precision": 2,
      "increment": 0.01,
      "currency": "PHP",
      "country_iso_code": "PHL",
      "minimum_transaction_amount": 0,
      "maximum_transaction_amount": null,
      "service": {
         "name": "CashPickup",
         "id": 3
      },
      "credit_party_identifiers_accepted": [
         [
            "msisdn"
         ]
      ],
      "required_sender_fields": [
         [
            "firstname",
            "lastname",
            "date_of_birth"
         ]
      ],
      "required_beneficiary_fields": [
         [
            "firstname",
            "lastname"
         ]
      ],
      "credit_party_information": {
         "credit_party_identifiers_accepted": [
            []
         ]
      },
      "credit_party_verification": {
         "credit_party_identifiers_accepted": [
            []
         ],
         "required_beneficiary_fields": [
            []
         ]
      }
   }
]

GET /v1/money-transfer/payers

Retrieve information for all payers available for a given account, optionally filtered based on specified parameters.

Input

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

Output

Array of payer objects in a paginated fashion.

GET /v1/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",
    "minimum_transaction_amount": 0,
    "maximum_transaction_amount": null,
    "service": {
         "id": 1,
         "name": "MobileWallet"
    },
    "credit_party_identifiers_accepted": [
         [
                "msisdn"
         ]
    ],
    "required_sender_fields": [
         [
                "firstname",
                "date_of_birth",
                "lastname"
         ]
    ],
    "required_beneficiary_fields": [
         [
                "firstname",
                "lastname"
         ]
    ],
    "credit_party_information": {
        "credit_party_identifiers_accepted": [
            []
        ]
    },
    "credit_party_verification": {
        "credit_party_identifiers_accepted": [
            []
        ],
        "required_beneficiary_fields": [
            []
        ]
    }
}

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

Retrieve information for a given payer.

Output

Payer object.

Payer Rates

GET /v1/money-transfer/payers/362/rates HTTP/1.1
200 OK
{
    "destination_currency": "CUC",
    "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
            }
        ]
    }
}

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

Retrieve rates under a given payer.

Output

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

Countries

GET /v1/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 /v1/money-transfer/countries

Retrieve list of countries for all money transfer services available for a given account.

Input

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 country objects in a paginated fashion.

Administrative Divisions

GET /v1/money-transfer/countries/CUB/administrative-division-categories HTTP/1.1
X-Total: 2
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
    {
        "id": 1,
        "name": "Province"
    },
    {
        "id": 2,
        "name": "Municipality"
    }
]

GET /v1/money-transfer/countries/{iso_code}/administrative-division-categories

Retrieve list of all administrative division categories available for a given account.

Input

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 administrative division category objects in a paginated fashion.

GET /v1/money-transfer/countries/CUB/administrative-divisions HTTP/1.1
X-Total: 16
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 1,
        "depth": 1,
        "name": "Artemisa Province",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 13,
        "depth": 1,
        "name": "Camagüey Province",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 27,
        "depth": 1,
        "name": "Ciego de Ávila Province",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 38,
        "depth": 1,
        "name": "Cienfuegos Province",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 47,
        "depth": 1,
        "name": "Granma Province",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 61,
        "depth": 1,
        "name": "Guantánamo Province",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 72,
        "depth": 1,
        "name": "Havana",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 88,
        "depth": 1,
        "name": "Holguín Province",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 103,
        "depth": 1,
        "name": "Isla de la Juventud",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 105,
        "depth": 1,
        "name": "Las Tunas Province",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 114,
        "depth": 1,
        "name": "Matanzas Province",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 128,
        "depth": 1,
        "name": "Mayabeque Province",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 140,
        "depth": 1,
        "name": "Pinar del Río Province",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 152,
        "depth": 1,
        "name": "Sancti Spíritus Province",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 161,
        "depth": 1,
        "name": "Santiago de Cuba Province",
        "parent_id": null
    },
    {
        "category": {
            "id": 1,
            "name": "Province"
        },
        "id": 171,
        "depth": 1,
        "name": "Villa Clara Province",
        "parent_id": null
    }
]

GET /v1/money-transfer/countries/{iso_code}/administrative-divisions

Retrieve list of all administrative divisions available for a given account.

Input

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 administrative division objects in a paginated fashion.

GET /v1/money-transfer/administrative-divisions/1 HTTP/1.1
200 OK
{
    "id": 1,
    "depth": 1,
    "name": "Artemisa Province",
    "parent_id": null,
    "category": {
        "id": 1,
        "name": "Province"
    }
}

GET /v1/money-transfer/administrative-divisions/{id}

Retrieve information for a given administrative division.

Output

Administrative division object.

GET /v1/money-transfer/administrative-divisions/1/administrative-divisions HTTP/1.1
X-Total: 11
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
    {
        "category": {
            "id": 2,
            "name": "Municipality"
        },
        "id": 2,
        "depth": 2,
        "name": "Alquízar",
        "parent_id": 1
    },
    {
        "category": {
            "id": 2,
            "name": "Municipality"
        },
        "id": 3,
        "depth": 2,
        "name": "Artemisa",
        "parent_id": 1
    },
    {
        "category": {
            "id": 2,
            "name": "Municipality"
        },
        "id": 4,
        "depth": 2,
        "name": "Bahía Honda",
        "parent_id": 1
    },
    {
        "category": {
            "id": 2,
            "name": "Municipality"
        },
        "id": 5,
        "depth": 2,
        "name": "Bauta",
        "parent_id": 1
    },
    {
        "category": {
            "id": 2,
            "name": "Municipality"
        },
        "id": 6,
        "depth": 2,
        "name": "Caimito",
        "parent_id": 1
    },
    {
        "category": {
            "id": 2,
            "name": "Municipality"
        },
        "id": 7,
        "depth": 2,
        "name": "Candelaria",
        "parent_id": 1
    },
    {
        "category": {
            "id": 2,
            "name": "Municipality"
        },
        "id": 8,
        "depth": 2,
        "name": "Guanajay",
        "parent_id": 1
    },
    {
        "category": {
            "id": 2,
            "name": "Municipality"
        },
        "id": 9,
        "depth": 2,
        "name": "Güira de Melena",
        "parent_id": 1
    },
    {
        "category": {
            "id": 2,
            "name": "Municipality"
        },
        "id": 10,
        "depth": 2,
        "name": "Mariel",
        "parent_id": 1
    },
    {
        "category": {
            "id": 2,
            "name": "Municipality"
        },
        "id": 11,
        "depth": 2,
        "name": "San Antonio de los Baños",
        "parent_id": 1
    },
    {
        "category": {
            "id": 2,
            "name": "Municipality"
        },
        "id": 12,
        "depth": 2,
        "name": "San Cristóbal",
        "parent_id": 1
    }
]

GET /v1/money-transfer/administrative-divisions/{id}/administrative-divisions

Retrieve information for all administrative divisions under a given administrative division.

Input

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 administrative division objects in a paginated fashion.

Entities

GET /v1/money-transfer/countries/IND/entity-categories HTTP/1.1
X-Total: 2
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
    {
        "id": 1,
        "name": "Bank"
    },
    {
        "id": 2,
        "name": "Branch"
    }
]

GET /v1/money-transfer/countries/{iso_code}/entity-categories

Retrieve information for all entity categories under a given country.

Input

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 entity category objects in a paginated fashion.

GET /v1/money-transfer/countries/IND/entity-identifiers HTTP/1.1
X-Total: 1
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
    {
        "id": 2,
        "code": "IFS_CODE"
    }
]

GET /v1/money-transfer/countries/{iso_code}/entity-identifiers

Retrieve list of entity identifiers under a given country.

Input

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 entity identifier objects in a paginated fashion.

GET /v1/money-transfer/countries/IND/payment-systems HTTP/1.1
X-Total: 1
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
    {
        "id": 2,
        "code": "NEFT"
    }
]

GET /v1/money-transfer/countries/{iso_code}/payment-systems

Retrieve information for all entity payment systems under a given country.

Input

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 entity payment system objects in a paginated fashion.

GET /v1/money-transfer/countries/IND/entities HTTP/1.1
X-Total: 1
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
    {
        "id": 328,
        "name": "DBS",
        "address": null,
        "administrative_division": {
            "id": 315,
            "name": "Delhi",
            "category": {
                "id": 5,
                "name": "Union Territory"
            },
            "depth": 1,
            "parent_id": null
        },
        "category": {
            "id": 1,
            "name": "Bank"
        },
        "country_iso_code": "IND",
        "depth": 1,
        "identifiers": [],
        "parent_id": null,
        "payers": [
            {
                "id": 358,
                "name": "All Banks",
                "currency": "INR"
            }
        ],
        "payment_systems": []
    }
]

GET /v1/money-transfer/countries/{iso_code}/entities

Retrieve information for all entities under a given country.

Input

Field Required Type Description
page No Integer Page number
per_page No Integer Number of results per page (default 50, max 100)
category_id No Integer Entity category to filter results by
service_id No Integer Entity service to filter results by
payer_id No Integer Entity payer to filter results by

Output

Array of entity objects in a paginated fashion.

GET /v1/money-transfer/entities HTTP/1.1
X-Total: 2
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
    {
        "id": 2,
        "name": "Banco Metropolitano",
        "address": null,
        "administrative_division": {
            "id": 84,
            "name": "Playa",
            "category": {
                "id": 2,
                "name": "Municipality"
            },
            "depth": 2,
            "parent_id": 72
        },
        "category": {
            "id": 1,
            "name": "Bank"
        },
        "country_iso_code": "CUB",
        "depth": 1,
        "identifiers": [],
        "parent_id": null,
        "payers": [
            {
                "id": 364,
                "name": "Cash Pickup Network",
                "currency": "CUC"
            }
        ],
        "payment_systems": []
    },
    {
        "id": 328,
        "name": "DBS",
        "address": null,
        "administrative_division": {
            "id": 315,
            "name": "Delhi",
            "category": {
                "id": 5,
                "name": "Union Territory"
            },
            "depth": 1,
            "parent_id": null
        },
        "category": {
            "id": 1,
            "name": "Bank"
        },
        "country_iso_code": "IND",
        "depth": 1,
        "identifiers": [],
        "parent_id": null,
        "payers": [
            {
                "id": 358,
                "name": "All Banks",
                "currency": "INR"
            }
        ],
        "payment_systems": []
    }
]

GET /v1/money-transfer/entities

Retrieve information for all entities available for a given account.

Input

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
category_id No Integer Entity category to filter results by
service_id No Integer Entity service to filter results by
payer_id No Integer Entity payer to filter results by

Output

Array of entity objects in a paginated fashion.

GET /v1/money-transfer/entities/2 HTTP/1.1
200 OK
{
    "id": 2,
    "name": "Banco Metropolitano",
    "address": null,
    "administrative_division": {
        "id": 84,
        "name": "Playa",
        "category": {
            "id": 2,
            "name": "Municipality"
        },
        "depth": 2,
        "parent_id": 72
    },
    "category": {
        "id": 1,
        "name": "Bank"
    },
    "country_iso_code": "CUB",
    "depth": 1,
    "identifiers": [],
    "parent_id": null,
    "payers": [
        {
            "id": 364,
            "name": "Cash Pickup Network",
            "currency": "CUC"
        }
    ],
    "payment_systems": []
}

GET /v1/money-transfer/entities/{id}

Retrieve information for a given entity.

Output

Entity object.

GET /v1/money-transfer/entities/2/entities HTTP/1.1
X-Total: 2
X-Total-Pages: 1
X-Per-Page: 50
X-Page: 1
200 OK
[
    {
        "id": 15,
        "name": "10 DE OCT.",
        "address": "10 DE OCT. #415 10 DE OCT. Y LUYANO 10 DE OCT.",
        "administrative_division": {
            "id": 78,
            "name": "Diez de Octubre",
            "category": {
                "id": 2,
                "name": "Municipality"
            },
            "depth": 2,
            "parent_id": 72
        },
        "category": {
            "id": 2,
            "name": "Branch"
        },
        "country_iso_code": "CUB",
        "depth": 2,
        "identifiers": [],
        "parent_id": 2,
        "payers": [
            {
                "id": 364,
                "name": "Cash Pickup Network",
                "currency": "CUC"
            }
        ],
        "payment_systems": []
    },
    {
        "id": 21,
        "name": "ALTAHABANA",
        "address": "CALLE L NRO.15802.ALTAHABANA.BOYEROS.",
        "administrative_division": {
            "id": 74,
            "name": "Boyeros",
            "category": {
                "id": 2,
                "name": "Municipality"
            },
            "depth": 2,
            "parent_id": 72
        },
        "category": {
            "id": 2,
            "name": "Branch"
        },
        "country_iso_code": "CUB",
        "depth": 2,
        "identifiers": [],
        "parent_id": 2,
        "payers": [
            {
                "id": 364,
                "name": "Cash Pickup Network",
                "currency": "CUC"
            }
        ],
        "payment_systems": []
    }
]

GET /v1/money-transfer/entities/{id}/entities

Retrieve information for all entities under a given entity.

Input

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 entity objects in a paginated fashion.

Lookups

GET /v1/money-transfer/lookups/IFS/SBIN0007336 HTTP/1.1
200 OK
{
    "id": 96558,
    "name": "MIRIK",
    "address": "MIRIK",
    "administrative_division": {
        "id": 8516,
        "name": "MIRIK",
        "category": {
            "id": 3,
            "name": "City"
        },
        "depth": 2,
        "parent_id": 414
    },
    "category": {
        "id": 2,
        "name": "Branch"
    },
    "country_iso_code": "IND",
    "depth": 2,
    "identifiers": [
        {
            "id": 2,
            "code": "IFS_CODE",
            "values": [
                "SBIN0007336"
            ]
        }
    ],
    "parent_id": 414,
    "payers": [
        {
            "id": 358,
            "name": "All Banks / Payment System: Default",
            "currency": "INR"
        }
    ],
    "payment_systems": [
        {
            "id": 2,
            "code": "NEFT"
        }
    ]
}

GET /v1/money-transfer/lookups/IFS/{ifs_code}

Retrieve entity information for a given IFS code.

Output

Entity object.

GET /v1/money-transfer/lookups/BIC/ABNAIDJA HTTP/1.1
200 OK
{
    "id": 197,
    "name": "ABN AMRO Bank",
    "address": null,
    "administrative_division": {
        "id": 190,
        "name": "Central Java",
        "category": {
            "id": 1,
            "name": "Province"
        },
        "depth": 1,
        "parent_id": null
    },
    "category": {
        "id": 1,
        "name": "Bank"
    },
    "country_iso_code": "IDN",
    "depth": 1,
    "identifiers": [
        {
            "id": 3,
            "code": "SWIFT_BIC_8",
            "values": [
                "ABNAIDJA"
            ]
        }
    ],
    "parent_id": null,
    "payers": [
        {
            "id": 241,
            "name": "ABN AMRO Bank",
            "currency": "IDR"
        }
    ],
    "payment_systems": []
}

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

Retrieve entity information for a given SWIFT BIC code.

Output

Entity object.

GET /v1/money-transfer/lookups/ATM-cards/9704361234123456?country_iso_code=VNM HTTP/1.1
200 OK
{
    "id": 136,
    "name": "Vietcombank",
    "address": null,
    "administrative_division": {
        "id": 243,
        "name": "Hà Nội",
        "category": {
            "id": 2,
            "name": "Municipality"
        },
        "depth": 1,
        "parent_id": null
    },
    "category": {
        "id": 1,
        "name": "Bank"
    },
    "country_iso_code": "VNM",
    "depth": 1,
    "identifiers": [
        {
            "id": 5,
            "code": "ATM_CARD_PREFIX",
            "values": [
                "970436",
                "686868"
            ]
        }
    ],
    "parent_id": null,
    "payers": [
        {
            "id": 323,
            "name": "Vietcombank - ATM Card",
            "currency": "VND"
        }
    ],
    "payment_systems": []
}

GET /v1/money-transfer/lookups/ATM-cards/{card_number}

Retrieve entity information from a given ATM card number.

Input

Field Required Type Description
country_iso_code Yes String Country code in ISO 3166-1 alpha-3 format

Output

Entity object.

Account

Balances

GET /v1/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,
        "available_balance": 10000000,
        "credit_facility": 0
    }
]

GET /v1/money-transfer/balances

Retrieve information for all account balances per currency.

Input

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 balance objects.

Credit Parties

Information

POST /v1/money-transfer/payers/1/credit-party-information HTTP/1.1
200 OK
{
    "credit_party_identifier": {
        "msisdn": "263775892364"
    }
}
{
    "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
}

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

Retrieve beneficiary information based on account details under a given payer.

Input

Field Required Type Description
credit_party_identifier Yes Object Credit party identifier information

Output

Beneficiary object.

Verification

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

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

Validate status of an account under a given payer.

Input

Field Required Type Description
credit_party_identifier Yes Object Credit party identifier information
beneficiary No Object Beneficiary information

†: Requiredness will depend on the payer configuration

Output

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

Transfers

Quotations

POST /v1/money-transfer/quotations HTTP/1.1
201 Created
{
    "external_id": "1481184321405",
    "payer_id": "1",
    "mode": "SOURCE_AMOUNT",
    "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",
        "precision": 2,
        "increment": 0.01,
        "currency": "USD",
        "country_iso_code": "ZWE",
        "minimum_transaction_amount": 0,
        "maximum_transaction_amount": null,
        "service": {
            "id": 1,
            "name": "MobileWallet"
        },
        "credit_party_identifiers_accepted": [
            [
                "msisdn"
            ]
        ],
        "required_sender_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "required_beneficiary_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "credit_party_information": {
            "credit_party_identifiers_accepted": [
                []
            ]
        },
        "credit_party_verification": {
            "credit_party_identifiers_accepted": [
                []
            ],
            "required_beneficiary_fields": [
                []
            ]
        }
    },
    "mode": "SOURCE_AMOUNT",
    "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 /v1/money-transfer/quotations

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

Input

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

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

Output

Quotation object.

GET /v1/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",
        "minimum_transaction_amount": 0,
        "maximum_transaction_amount": null,
        "service": {
            "id": 1,
            "name": "MobileWallet"
        },
        "credit_party_identifiers_accepted": [
            [
                "msisdn"
            ]
        ],
        "required_sender_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "required_beneficiary_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "credit_party_information": {
            "credit_party_identifiers_accepted": [
                []
            ]
        },
        "credit_party_verification": {
            "credit_party_identifiers_accepted": [
                []
            ],
            "required_beneficiary_fields": [
                []
            ]
        }
    },
    "mode": "SOURCE_AMOUNT",
    "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 /v1/money-transfer/quotations/{id}

Retrieve information for a given quotation.

Output

Quotation object.

GET /v1/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",
        "minimum_transaction_amount": 0,
        "maximum_transaction_amount": null,
        "service": {
            "id": 1,
            "name": "MobileWallet"
        },
        "credit_party_identifiers_accepted": [
            [
                "msisdn"
            ]
        ],
        "required_sender_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "required_beneficiary_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "credit_party_information": {
            "credit_party_identifiers_accepted": [
                []
            ]
        },
        "credit_party_verification": {
            "credit_party_identifiers_accepted": [
                []
            ],
            "required_beneficiary_fields": [
                []
            ]
        }
    },
    "mode": "SOURCE_AMOUNT",
    "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 /v1/money-transfer/quotations/ext-{external_id}

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

Output

Quotation object.

Transactions

POST /v1/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",
    "callback_url": "{URL_PLACEHOLDER}"
}
{
     "id": 1,
     "status": "10000",
     "status_message": "CREATED",
     "status_class": "1",
     "status_class_message": "CREATED",
     "external_id": "1478078339357",
     "external_code": null,
     "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",
        "precision": 2,
        "increment": 0.01,
        "currency": "USD",
        "country_iso_code": "ZWE",
        "minimum_transaction_amount": 0,
        "maximum_transaction_amount": null,
        "service": {
            "id": 1,
            "name": "MobileWallet"
        },
        "credit_party_identifiers_accepted": [
            [
                "msisdn"
            ]
        ],
        "required_sender_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "required_beneficiary_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "credit_party_information": {
            "credit_party_identifiers_accepted": [
                []
            ]
        },
        "credit_party_verification": {
            "credit_party_identifiers_accepted": [
                []
            ],
            "required_beneficiary_fields": [
                []
            ]
        }
     },
     "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",
        "bank": null,
        "bank_account": null,
        "card": null,
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": 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",
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null
}

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

Create a new transaction with transfer values specified from a given quotation.

Input

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 No String Purpose of the remittance
additional_information_1 No String Additional information
additional_information_2 No String Additional information
additional_information_3 No String Additional information

Output

Transaction object.

POST /v1/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",
    "callback_url": "{URL_PLACEHOLDER}"
}
{
     "id": 1,
     "status": "10000",
     "status_message": "CREATED",
     "status_class": "1",
     "status_class_message": "CREATED",
     "external_id": "1478078339357",
     "external_code": null,
     "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",
        "precision": 2,
        "increment": 0.01,
        "currency": "USD",
        "country_iso_code": "ZWE",
        "minimum_transaction_amount": 0,
        "maximum_transaction_amount": null,
        "service": {
            "id": 1,
            "name": "MobileWallet"
        },
        "credit_party_identifiers_accepted": [
            [
                "msisdn"
            ]
        ],
        "required_sender_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "required_beneficiary_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "credit_party_information": {
            "credit_party_identifiers_accepted": [
                []
            ]
        },
        "credit_party_verification": {
            "credit_party_identifiers_accepted": [
                []
            ],
            "required_beneficiary_fields": [
                []
            ]
        }
     },
     "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",
        "bank": null,
        "bank_account": null,
        "card": null,
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": 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",
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null
}

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

Create a new transaction with transfer values specified from a given quotation based on the external ID.

Input

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 No String Purpose of the remittance
additional_information_1 No String Additional information
additional_information_2 No String Additional information
additional_information_3 No String Additional information

Output

Transaction object.

POST /v1/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,
     "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",
        "precision": 2,
        "increment": 0.01,
        "currency": "USD",
        "country_iso_code": "ZWE",
        "minimum_transaction_amount": 0,
        "maximum_transaction_amount": null,
        "service": {
            "id": 1,
            "name": "MobileWallet"
        },
        "credit_party_identifiers_accepted": [
            [
                "msisdn"
            ]
        ],
        "required_sender_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "required_beneficiary_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "credit_party_information": {
            "credit_party_identifiers_accepted": [
                []
            ]
        },
        "credit_party_verification": {
            "credit_party_identifiers_accepted": [
                []
            ],
            "required_beneficiary_fields": [
                []
            ]
        }
     },
     "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",
        "bank": null,
        "bank_account": null,
        "card": null,
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": 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",
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null
}

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

Confirm a previously-created transaction to initiate processing.

Output

Transaction object.

POST /v1/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,
     "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",
        "precision": 2,
        "increment": 0.01,
        "currency": "USD",
        "country_iso_code": "ZWE",
        "minimum_transaction_amount": 0,
        "maximum_transaction_amount": null,
        "service": {
            "id": 1,
            "name": "MobileWallet"
        },
        "credit_party_identifiers_accepted": [
            [
                "msisdn"
            ]
        ],
        "required_sender_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "required_beneficiary_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "credit_party_information": {
            "credit_party_identifiers_accepted": [
                []
            ]
        },
        "credit_party_verification": {
            "credit_party_identifiers_accepted": [
                []
            ],
            "required_beneficiary_fields": [
                []
            ]
        }
     },
     "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",
        "bank": null,
        "bank_account": null,
        "card": null,
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": 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",
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null
}

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

Confirm a previously-created transaction, through an external ID, to initiate processing.

Output

Transaction object.

GET /v1/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,
     "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",
        "precision": 2,
        "increment": 0.01,
        "currency": "USD",
        "country_iso_code": "ZWE",
        "minimum_transaction_amount": 0,
        "maximum_transaction_amount": null,
        "service": {
            "id": 1,
            "name": "MobileWallet"
        },
        "credit_party_identifiers_accepted": [
            [
                "msisdn"
            ]
        ],
        "required_sender_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "required_beneficiary_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "credit_party_information": {
            "credit_party_identifiers_accepted": [
                []
            ]
        },
        "credit_party_verification": {
            "credit_party_identifiers_accepted": [
                []
            ],
            "required_beneficiary_fields": [
                []
            ]
        }
     },
     "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",
        "bank": null,
        "bank_account": null,
        "card": null,
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": 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",
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null
}

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

Retrieve information for a given transaction.

Output

Transaction object.

GET /v1/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,
     "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",
        "precision": 2,
        "increment": 0.01,
        "currency": "USD",
        "country_iso_code": "ZWE",
        "minimum_transaction_amount": 0,
        "maximum_transaction_amount": null,
        "service": {
            "id": 1,
            "name": "MobileWallet"
        },
        "credit_party_identifiers_accepted": [
            [
                "msisdn"
            ]
        ],
        "required_sender_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "required_beneficiary_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "credit_party_information": {
            "credit_party_identifiers_accepted": [
                []
            ]
        },
        "credit_party_verification": {
            "credit_party_identifiers_accepted": [
                []
            ],
            "required_beneficiary_fields": [
                []
            ]
        }
     },
     "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",
        "bank": null,
        "bank_account": null,
        "card": null,
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": 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",
     "additional_information_1": null,
     "additional_information_2": null,
     "additional_information_3": null
}

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

Retrieve information for a given transaction from an external ID.

Output

Transaction object.

Resources

Resources

Designed around REST principles, data interchanged on various endpoints of the API are in terms of resources. These resources are expressed as objects in JSON.

Service

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

Represents the various money transfer services enabled for a given account.

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"
    },
    "credit_party_identifiers_accepted": [
         [
                "msisdn"
         ]
    ],
    "required_sender_fields": [
         [
                "firstname",
                "date_of_birth",
                "lastname"
         ]
    ],
    "required_beneficiary_fields": [
         [
                "firstname",
                "lastname"
         ]
    ],
    "credit_party_information": {
        "credit_party_identifiers_accepted": [
            []
        ]
    },
    "credit_party_verification": {
        "credit_party_identifiers_accepted": [
            []
        ],
        "required_beneficiary_fields": [
            []
        ]
    }
}

Represents payer information.

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
minimum_transaction_amount Number Minimum transaction amount
maximum_transaction_amount Number Maximum transaction amount
service Object Service information
credit_party_identifiers_accepted Array List of accepted credit party identifiers
required_sender_fields Array List of required sender information
required_beneficiary_fields Array List of required beneficiary information
credit_party_information Object Required credit party information
credit_party_verification Object Required credit party verification information

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 under 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
}

Represents an individual rate information under 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,
    "available_balance": 10000000,
    "credit_facility": 0
}

Represents account balance for a given currency.

Field Type Description
id Integer Balance ID
currency String Currency in ISO 4217 format
balance Number Current balance
available_balance Number Available balance
credit_facility Number Credit facility

Quotation

{
    "id": 1,
    "external_id": "1481184321405",
    "payer": {
        "id": 1,
        "name": "Sample Payer",
        "precision": 2,
        "increment": 0.01,
        "currency": "USD",
        "country_iso_code": "ZWE",
        "minimum_transaction_amount": 0,
        "maximum_transaction_amount": null,
        "service": {
            "id": 1,
            "name": "MobileWallet"
        },
        "credit_party_identifiers_accepted": [
            [
                "msisdn"
            ]
        ],
        "required_sender_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "required_beneficiary_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "credit_party_information": {
            "credit_party_identifiers_accepted": [
                []
            ]
        },
        "credit_party_verification": {
            "credit_party_identifiers_accepted": [
                []
            ],
            "required_beneficiary_fields": [
                []
            ]
        }
    },
    "mode": "SOURCE_AMOUNT",
    "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
payer Object Payer information
mode String Quotation mode
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,
    "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",
        "precision": 2,
        "increment": 0.01,
        "currency": "USD",
        "country_iso_code": "ZWE",
        "minimum_transaction_amount": 0,
        "maximum_transaction_amount": null,
        "service": {
            "id": 1,
            "name": "MobileWallet"
        },
        "credit_party_identifiers_accepted": [
            [
                "msisdn"
            ]
        ],
        "required_sender_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "required_beneficiary_fields": [
            [
                "lastname",
                "firstname"
            ]
        ],
        "credit_party_information": {
            "credit_party_identifiers_accepted": [
                []
            ]
        },
        "credit_party_verification": {
            "credit_party_identifiers_accepted": [
                []
            ],
            "required_beneficiary_fields": [
                []
            ]
        }
    },
    "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",
        "bank": null,
        "bank_account": null,
        "card": null,
        "province_state": null,
        "beneficiary_relationship": null,
        "source_of_funds": 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",
    "additional_information_1": null,
    "additional_information_2": null,
    "additional_information_3": 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
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
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
additional_information_1 String Additional information
additional_information_2 String Additional information
additional_information_3 String Additional information

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† String Entity ID
account_type No† String Account type
account_number No† String Account number
email No† String Email address

†: 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_beneficiary_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_beneficiary_fields Yes Array List of required beneficiary 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",
    "bank": null,
    "bank_account": null,
    "card": null,
    "province_state": null,
    "beneficiary_relationship": null,
    "source_of_funds": null
}

Represents sender information for a given transaction.

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 No† String Name of bank
bank_account No† String Bank account number
card No† String Credit card 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

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.

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

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 ID
name String Entity category name

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

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
10000 CREATED
20000 CONFIRMED
20110 CONFIRMED-UNDER-REVIEW-SLS
20150 CONFIRMED-WAITING-FOR-PICKUP
30000 REJECTED
30110 REJECTED-SLS-SENDER
30120 REJECTED-SLS-BENEFICIARY
30200 REJECTED-INVALID-BENEFICIARY
30201 REJECTED-BARRED-BENEFICIARY
30202 REJECTED-BARRED-SENDER
30210 REJECTED-INVALID-BENEFICIARY-DETAILS
30305 REJECTED-LIMITATIONS-ON-TRANSACTION-VALUE
30310 REJECTED-LIMITATIONS-ON-SENDER-VALUE
30320 REJECTED-LIMITATIONS-ON-BENEFICIARY-VALUE
30330 REJECTED-LIMITATIONS-ON-ACCOUNT-VALUE
30350 REJECTED-LIMITATIONS-ON-SENDER-QUANTITY
30360 REJECTED-LIMITATIONS-ON-BENEFICIARY-QUANTITY
30370 REJECTED-LIMITATIONS-ON-ACCOUNT-QUANTITY
30400 REJECTED-PAYER-CURRENTLY-UNAVAILABLE
30500 REJECTED-INSUFFICIENT-BALANCE
40000 CANCELLED
50000 SUBMITTED
60000 AVAILABLE
70000 COMPLETED
80000 REVERSED
90000 DECLINED
90110 DECLINED-SLS-SENDER
90120 DECLINED-SLS-BENEFICIARY
90200 DECLINED-INVALID-BENEFICIARY
90201 DECLINED-BARRED-BENEFICIARY
90202 DECLINED-UNSUPPORTED-BENEFICIARY
90210 DECLINED-INVALID-BENEFICIARY-DETAILS
90305 DECLINED-LIMITATIONS-ON-TRANSACTION-VALUE
90310 DECLINED-LIMITATIONS-ON-SENDER-VALUE
90320 DECLINED-LIMITATIONS-ON-BENEFICIARY-VALUE
90330 DECLINED-LIMITATIONS-ON-ACCOUNT-VALUE
90331 DECLINED-LIMITATIONS-ON-ACCOUNT-VALUE-DAILY
90332 DECLINED-LIMITATIONS-ON-ACCOUNT-VALUE-WEEKLY
90333 DECLINED-LIMITATIONS-ON-ACCOUNT-VALUE-MONTHLY
90334 DECLINED-LIMITATIONS-ON-ACCOUNT-VALUE-YEARLY
90350 DECLINED-LIMITATIONS-ON-SENDER-QUANTITY
90360 DECLINED-LIMITATIONS-ON-BENEFICIARY-QUANTITY
90370 DECLINED-LIMITATIONS-ON-ACCOUNT-QUANTITY
90380 DECLINED-DUPLICATED-TRANSACTION
90400 DECLINED-PAYER-CURRENTLY-UNAVAILABLE

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

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

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
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
OTHER_FEES Broker, commitment, guarantee and other fees
OTHER Other purposes