This API reference provides developers with a reference to the various methods exposed by Flex Money Transfer. It provides various requests and responses needed for the implementation. You can request the test credentials and use them for your own development or on the sandbox (you can send requests without writing any code).
You can access the sandbox environment from Here.
https://testbed.flex-money.tech
For Most Areas within the Application, you will need Authentication and Authorization. To Proceed, ensure your have been provided with the following
290yyyyMMddHHmmsstestPass!| Method | Endpoint | Description |
| POST | /md5Password | Returns the MD5 hashed Password MD5(userCode+timestamp+rawPassword) |
| GET | /tokens | Returns Token |
No data
For Most Areas within the Application, you will need Authentication and Authorization. To Proceed, ensure your have been provided with the following
yyyyMMddHHmmss
This Method returns a hashed value of the combination of userCode,timestamp and rawPassword.
timestamp format : yyyyMMddHHmmss
Password - MD5(username+password+timestamp)
POST https://testbed.flex-money.tech/md5Password
| Parameter | Type | Mandatory | Description |
| userCode | String | M | Code identifying user making transaction |
| timestamp | String | M | System Timestamp format : yyyyMMddHHmmss |
| rawPassword | String | M | Raw Password provided |
curl --request POST \
'https://testbed.flex-money.tech/md5Password' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"userCode":"","timestamp":"","rawPassword":""}' \
--compressed
POST https://testbed.flex-money.tech/md5Password HTTP/1.1
Accept: application/json
Content-Type: application/json
{
"userCode": "",
"timestamp": "",
"rawPassword": ""
}
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/md5Password"
requestBody = {
"userCode": "",
"timestamp": "",
"rawPassword": ""
}
requestHeaders = {
"Accept": "application/json",
"Content-Type": "application/json"
}
request = requests.post(requestUrl, headers=requestHeaders, json=requestBody)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/md5Password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
));
$bodyArray = array(
'userCode' => '',
'timestamp' => '',
'rawPassword' => '',
);
$body = json_encode($bodyArray);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/md5Password");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
String body = "{\"userCode\":\"\",\"timestamp\":\"\",\"rawPassword\":\"\"}";
writer.write(body);
writer.flush();
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/md5Password",
"method": "POST",
"json": {
"userCode": "",
"timestamp": "",
"rawPassword": ""
},
"headers": {
"Accept": "application/json",
"Content-Type": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/md5Password";
const options = {
method: "POST",
headers: {
"Accept": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
"userCode": "",
"timestamp": "",
"rawPassword": ""
}),
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
For Most Areas within the Application, you will need Authentication and Authorization.
For ALL POST requests, a Header is required. To Proceed, ensure your have been provided with the following
This Method returns a token, access_token and validity, expires_in for specifies CLINET_ID and CLIENT_SECRET
GET https://testbed.flex-money.tech/tokens
| Parameter | Type | Mandatory | Description |
| clientId | String | M | clientId provided |
| clientSecret | String | M | clientSecret Provided |
curl 'https://testbed.flex-money.tech/tokens?clientId=XXX&clientSecret=YYYY' --header 'Accept: application/json' --compressed
GET https://testbed.flex-money.tech/tokens?clientId=XXX&clientSecret=YYYY HTTP/1.1
Accept: application/json
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/tokens?clientId=XXX&clientSecret=YYYY"
requestHeaders = {
"Accept": "application/json"
}
request = requests.get(requestUrl, headers=requestHeaders)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/tokens?clientId=XXX&clientSecret=YYYY';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
));
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/tokens?clientId=XXX&clientSecret=YYYY");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept", "application/json");
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/tokens?clientId=XXX&clientSecret=YYYY",
"method": "GET",
"headers": {
"Accept": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/tokens?clientId=XXX&clientSecret=YYYY";
const options = {
method: "GET",
headers: {
"Accept": "application/json"
},
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
The Balance Check API allows for the retrieving of partner balance.
| Method | Endpoint | Description |
| GET | /balanceCheck | Returns the Balance for Partner |
| GET | /balanceAllWallets | Returns all the partner Wallets and Balances |
No data
Returns the Balance for Partner
GET https://testbed.flex-money.tech/balanceCheck?couCode={couCode}
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
curl --request GET \
'https://testbed.flex-money.tech/balanceCheck?couCode={couCode}' \
--header 'authorization: Bearer XXXXXXXXX' \
--header 'x-userId: XXXXXXXXX' \
--header 'x-password: XXXXXXXXX' \
--header 'x-timestamp: XXXXXXXXX' \
--header 'Accept: application/json' \
--compressed
GET https://testbed.flex-money.tech/balanceCheck?couCode={couCode} HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/balanceCheck?couCode={couCode}"
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
}
request = requests.get(requestUrl, headers=requestHeaders)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/balanceCheck?couCode={couCode}';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
));
curl_setopt($ch, CURLOPT_POSTFIELDS);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/balanceCheck?couCode={couCode}");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
connection.setDoOutput(false);
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/balanceCheck?couCode={couCode}",
"method": "GET",
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
}
};
request(options, function (err, res) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/balanceCheck?couCode={couCode}";
const options = {
method: "GET",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
},
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
Returns all the partner Wallets and Balances
GET https://testbed.flex-money.tech/balanceAllWallets
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
curl --request GET \ 'https://testbed.flex-money.tech/balanceAllWallets' \ --header 'authorization: Bearer XXXXXXXXX' \ --header 'x-userId: XXXXXXXXX' \ --header 'x-password: XXXXXXXXX' \ --header 'x-timestamp: XXXXXXXXX' \ --header 'Accept: application/json' \ --compressed
GET https://testbed.flex-money.tech/balanceAllWallets HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/balanceAllWallets"
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
}
request = requests.get(requestUrl, headers=requestHeaders)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/balanceAllWallets';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
));
curl_setopt($ch, CURLOPT_POSTFIELDS);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/balanceAllWallets");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
connection.setDoOutput(false);
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/balanceAllWallets",
"method": "GET",
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
}
};
request(options, function (err, res) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/balanceAllWallets";
const options = {
method: "GET",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
},
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
The Validation API allows for the verification of the registered details for MSISDN.
| Method | Endpoint | Description |
| POST | /iVeryfy | Returns the Registered Name for msisdn |
| POST | /accountVerify | Bank account name verification |
| POST | /billValidate | Validate Paybill or Till Number |
| POST | /ifscValidate | Validate IFSC code |
No data
Returns the Registered Name for msisdn
POST https://testbed.flex-money.tech/iVeryfy
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
| Parameter | Type | Mandatory | Description |
| payload | String | M | Valid MSISDN 254XXXXXXXXX |
curl --request POST \
'https://testbed.flex-money.tech/iVeryfy' \
--header 'authorization: Bearer XXXXXXXXX' \
--header 'x-userId: XXXXXXXXX' \
--header 'x-password: XXXXXXXXX' \
--header 'x-timestamp: XXXXXXXXX' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"payload":""}' \
--compressed
POST https://testbed.flex-money.tech/iVeryfy HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
Content-Type: application/json
{
"payload": ""
}
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/iVeryfy"
requestBody = {
"payload": ""
}
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
request = requests.post(requestUrl, headers=requestHeaders, json=requestBody)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/iVeryfy';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
'Content-Type: application/json',
));
$bodyArray = array(
'payload' => '',
);
$body = json_encode($bodyArray);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/iVeryfy");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
String body = "{\"payload\":\"\"}";
writer.write(body);
writer.flush();
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/iVeryfy",
"method": "POST",
"json": {
"payload": ""
},
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/iVeryfy";
const options = {
method: "POST",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
"payload": ""
}),
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
Returns the Acccount Name for Account Number
POST https://testbed.flex-money.tech/accountVerify
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
| Parameter | Type | Mandatory | Description |
| payload | String | M | Valid Account Number |
| bankCode | String | M | Bank Code |
| couCode | String | M | Country Code ISOCode |
curl --request POST \
'https://testbed.flex-money.tech/accountVerify' \
--header 'authorization: Bearer XXXXXXXXX' \
--header 'x-userId: XXXXXXXXX' \
--header 'x-password: XXXXXXXXX' \
--header 'x-timestamp: XXXXXXXXX' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"payload":"","bankCode":"","couCode":""}' \
--compressed
POST https://testbed.flex-money.tech/accountVerify HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
Content-Type: application/json
{
"payload": "",
"bankCode": "",
"couCode": ""
}
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/accountVerify"
requestBody = {
"payload": "","bankCode":"","couCode":""
}
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
request = requests.post(requestUrl, headers=requestHeaders, json=requestBody)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/accountVerify';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
'Content-Type: application/json',
));
$bodyArray = array(
'payload' => '','bankCode' => '','couCode' => '',
);
$body = json_encode($bodyArray);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/accountVerify");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
String body = "{\"payload\":\"\",\"bankCode\":\"\",\"couCode\":\"\"}";
writer.write(body);
writer.flush();
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/accountVerify",
"method": "POST",
"json": {
"payload": "",
"bankCode": "",
"couCode": ""
},
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/accountVerify";
const options = {
method: "POST",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
"payload": "","bankCode": "","couCode": ""
}),
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
Returns name of Paybill or TillNumber
POST https://testbed.flex-money.tech/billValidate
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
| Parameter | Type | Mandatory | Description |
| type | String | M | Paybill TillNumber |
| payload | String | M | Paybill or Till Number Value e.g 888888 |
curl --request POST \
'https://testbed.flex-money.tech/billValidate' \
--header 'authorization: Bearer XXXXXXXXX' \
--header 'x-userId: XXXXXXXXX' \
--header 'x-password: XXXXXXXXX' \
--header 'x-timestamp: XXXXXXXXX' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"","payload":""}' \
--compressed
POST https://testbed.flex-money.tech/billValidate HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
Content-Type: application/json
{
"type": "",
"payload": ""
}
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/billValidate"
requestBody = {
"type": "","payload":""
}
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
request = requests.post(requestUrl, headers=requestHeaders, json=requestBody)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/billValidate';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
'Content-Type: application/json',
));
$bodyArray = array(
'type' => '','payload' => '',
);
$body = json_encode($bodyArray);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/billValidate");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
String body = "{\"type\":\"\",\"payload\":\"\"}";
writer.write(body);
writer.flush();
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/billValidate",
"method": "POST",
"json": {
"type": "",
"payload": ""
},
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/billValidate";
const options = {
method: "POST",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
"type": "","payload": ""
}),
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
Returns Bank and Branch of IFSC code
POST https://testbed.flex-money.tech/ifscValidate
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
| Parameter | Type | Mandatory | Description |
| type | String | M | IFSC |
| payload | String | M | IFSC Code |
curl --request POST \
'https://testbed.flex-money.tech/ifscValidate' \
--header 'authorization: Bearer XXXXXXXXX' \
--header 'x-userId: XXXXXXXXX' \
--header 'x-password: XXXXXXXXX' \
--header 'x-timestamp: XXXXXXXXX' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"","payload":""}' \
--compressed
POST https://testbed.flex-money.tech/ifscValidate HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
Content-Type: application/json
{
"type": "",
"payload": ""
}
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/ifscValidate"
requestBody = {
"type": "","payload":""
}
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
request = requests.post(requestUrl, headers=requestHeaders, json=requestBody)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/ifscValidate';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
'Content-Type: application/json',
));
$bodyArray = array(
'type' => '','payload' => '',
);
$body = json_encode($bodyArray);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/ifscValidate");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
String body = "{\"type\":\"\",\"payload\":\"\"}";
writer.write(body);
writer.flush();
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/ifscValidate",
"method": "POST",
"json": {
"type": "",
"payload": ""
},
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/ifscValidate";
const options = {
method: "POST",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
"type": "","payload": ""
}),
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
This Method allows for the Paying out of funds to the following
| Method | Endpoint | Description |
| POST | /newPayment | Submit Transaction Payload and Get Transaction Status. This is asynchronous. Later, via resultURL, you will receive transaction Result. |
| POST | /queryTrans | Query Status of Transaction |
No data
To make a payout, ensure all the mandatory parameters are provided for the Transfer Type being done
POST https://testbed.flex-money.tech/newPayment
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
| Parameter | Type | Mandatory | Description |
| transactionReference | String | M | Unique reference identifying a transaction |
| transferType | String | M | BankTransfer MobileMoney InPerson Paybill TillNumber |
| payingAmount | double | M | Sending Amount |
| payoutAmount | double | M | Receiving Amount |
| receiverContactNo | String | M | for Mobile Money should be MSISDN |
| purposeforFunds | String | M | Purpose for Funds |
| bankName | String | O | Bank Name or Bank Code (from Banks API) for Bank Transfer Mandatory for Bank Transfers |
| swiftCode | String | O | Swift Code for Bank Transfer Mandatory for USD Bank Transfers |
| bankBranch | String | O | Bank Branch for Bank Transfer Paybill Number for Paybill Till Number for TillNumber |
| ibanCode | String | O | IBAN for Bank Transfer Mandatory for SEPA, Pakistani and UAE Bank Transfers |
| ifscCode | String | O | IFSC Code for Bank Transfer Mandatory for Indian Bank Transfers |
| routingCode | String | O | Routing Code for Bank Transfer Mandatory for Bangladesh Bank Transfers |
| receiverBankAcc | String | O | Account Number for Bank Transfer or Paybill Mandatory for Bank Transfers and Paybills |
remarks | String | O | Remarks |
| receiverOthernames | String | M | Receiver Other names |
| receiverSurname | String | M | Receiver Surname |
| receiverDocument | String | O | Receiver Document Type |
| receiverDocumentId | String | O | Receiver Document ID Mandatory for UAE Transactions |
| receiverIssueDate | String | O | Receiver Document Id Issue Date dd-MM-yyyyMandatory for UAE Transactions |
| receiverExpiryDate | String | O | Receiver Document Id Expiry Date dd-MM-yyyyMandatory for UAE Transactions |
| receiverEmail | String | O | Receiver Email Address Mandatory for SA Transactions |
| resultURL | String | M | Valid callback Url value |
| originCountry | String | M | Origin Country ISOCode |
| payoutCountry | String | M | Payout Country ISOCode |
| tariff | String | M | Charge Levied to Customer |
| currencyRate | String | M | Exchange Rate for Transaction |
| currencyPair | String | M | Currency Pair of Transaction e.g.USD - KES |
| senderOtherNames | String | M | Sender Other names |
| senderSurname | String | M | Sender Surname |
| senderTelephoneNo | String | M | Sender Phone Number |
| senderNationality | String | M | Sender Nationality ISOCode |
| senderDocType | String | M | Sender Document Type |
| senderDocNumber | String | M | Sender Document Number |
| senderDocDateOfIssue | String | O | Sender Document Issue Date dd-MM-yyyy |
| senderDocExpiryDate | String | O | Sender Document Expiry Date dd-MM-yyyy |
| senderDocPlaceOfIssue | String | O | Sender Document Place of Issue |
| senderDob | String | M | Sender Date Of Birth dd-MM-yyyy |
| senderOccupation | String | O | Sender Occupation |
| senderPhysicalAddress | String | O | Sender Physical Address |
| sourceOfFundsDocumentation | String | O | Sender Source of Funds |
| relationship | String | M | Relation between Sender and Receiver |
curl --request POST \
'https://testbed.flex-money.tech/newPayment' \
--header 'authorization: Bearer XXXXXXXXX' \
--header 'x-userId: XXXXXXXXX' \
--header 'x-password: XXXXXXXXX' \
--header 'x-timestamp: XXXXXXXXX' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"payoutAmount":0,"payingAmount":0,"senderNationality":"","senderTelephoneNo":"","senderDocType":"","senderOtherNames":"","senderSurname":"","receiverContactNo":"","purposeforFunds":"","tariff":"","payoutCountry":"","originCountry":"","currencyPair":"","senderDocNumber":"","transactionReference":"","receiverOthernames":"","receiverSurname":"","transferType":"","currencyRate":"","resultURL":"","bankName":"","receiverBankAcc":"","remarks":"","receiverDocument":"","receiverDocumentId":"","senderDob":"","senderDocDateOfIssue":"","senderDocExpiryDate":"","senderDocPlaceOfIssue":"","senderDocumentation":"","senderOccupation":"","senderPhysicalAddress":"","sourceOfFundsDocumentation":""}' \
--compressed
POST https://testbed.flex-money.tech/newPayment HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
Content-Type: application/json
{
"payoutAmount": 0,
"payingAmount": 0,
"senderNationality": "",
"senderTelephoneNo": "",
"senderDocType": "",
"senderOtherNames": "",
"senderSurname": "",
"receiverContactNo": "",
"purposeforFunds": "",
"tariff": "",
"payoutCountry": "",
"originCountry": "",
"currencyPair": "",
"senderDocNumber": "",
"transactionReference": "",
"receiverOthernames": "",
"receiverSurname": "",
"transferType": "",
"currencyRate": "",
"resultURL": "",
"bankName": "",
"receiverBankAcc": "",
"remarks": "",
"receiverDocument": "",
"receiverDocumentId": "",
"senderDob": "",
"senderDocDateOfIssue": "",
"senderDocExpiryDate": "",
"senderDocPlaceOfIssue": "",
"senderDocumentation": "",
"senderOccupation": "",
"senderPhysicalAddress": "",
"sourceOfFundsDocumentation": ""
}
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/newPayment"
requestBody = {
"payoutAmount": 0,
"payingAmount": 0,
"senderNationality": "",
"senderTelephoneNo": "",
"senderDocType": "",
"senderOtherNames": "",
"senderSurname": "",
"receiverContactNo": "",
"purposeforFunds": "",
"tariff": "",
"payoutCountry": "",
"originCountry": "",
"currencyPair": "",
"senderDocNumber": "",
"transactionReference": "",
"receiverOthernames": "",
"receiverSurname": "",
"transferType": "",
"currencyRate": "",
"resultURL": "",
"bankName": "",
"receiverBankAcc": "",
"remarks": "",
"receiverDocument": "",
"receiverDocumentId": "",
"senderDob": "",
"senderDocDateOfIssue": "",
"senderDocExpiryDate": "",
"senderDocPlaceOfIssue": "",
"senderDocumentation": "",
"senderOccupation": "",
"senderPhysicalAddress": "",
"sourceOfFundsDocumentation": ""
}
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
request = requests.post(requestUrl, headers=requestHeaders, json=requestBody)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/newPayment';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
'Content-Type: application/json',
));
$bodyArray = array(
'payoutAmount' => 0,
'payingAmount' => 0,
'senderNationality' => '',
'senderTelephoneNo' => '',
'senderDocType' => '',
'senderOtherNames' => '',
'senderSurname' => '',
'receiverContactNo' => '',
'purposeforFunds' => '',
'tariff' => '',
'payoutCountry' => '',
'originCountry' => '',
'currencyPair' => '',
'senderDocNumber' => '',
'transactionReference' => '',
'receiverOthernames' => '',
'receiverSurname' => '',
'transferType' => '',
'currencyRate' => '',
'resultURL' => '',
'bankName' => '',
'receiverBankAcc' => '',
'remakrs' => '',
'receiverDocument' => '',
'receiverDocumentId' => '',
'senderDob' => '',
'senderDocDateOfIssue' => '',
'senderDocExpiryDate' => '',
'senderDocPlaceOfIssue' => '',
'senderDocumentation' => '',
'senderOccupation' => '',
'senderPhysicalAddress' => '',
'sourceOfFundsDocumentation' => '',
);
$body = json_encode($bodyArray);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/newPayment");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
String body = "{\"payoutAmount\":0,\"payingAmount\":0,\"senderNationality\":\"\",\"senderTelephoneNo\":\"\",\"senderDocType\":\"\",\"senderOtherNames\":\"\",\"senderSurname\":\"\",\"receiverContactNo\":\"\",\"purposeforFunds\":\"\",\"tariff\":\"\",\"payoutCountry\":\"\",\"originCountry\":\"\",\"currencyPair\":\"\",\"senderDocNumber\":\"\",\"transactionReference\":\"\",\"receiverOthernames\":\"\",\"receiverSurname\":\"\",\"transferType\":\"\",\"currencyRate\":\"\",\"resultURL\":\"\",\"bankName\":\"\",\"receiverBankAcc\":\"\",\"remarks\":\"\",\"receiverDocument\":\"\",\"receiverDocumentId\":\"\",\"senderDob\":\"\",\"senderDocDateOfIssue\":\"\",\"senderDocExpiryDate\":\"\",\"senderDocPlaceOfIssue\":\"\",\"senderDocumentation\":\"\",\"senderOccupation\":\"\",\"senderPhysicalAddress\":\"\",\"sourceOfFundsDocumentation\":\"\"}";
writer.write(body);
writer.flush();
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/newPayment",
"method": "POST",
"json": {
"payoutAmount": 0,
"payingAmount": 0,
"senderNationality": "",
"senderTelephoneNo": "",
"senderDocType": "",
"senderOtherNames": "",
"senderSurname": "",
"receiverContactNo": "",
"purposeforFunds": "",
"tariff": "",
"payoutCountry": "",
"originCountry": "",
"currencyPair": "",
"senderDocNumber": "",
"transactionReference": "",
"receiverOthernames": "",
"receiverSurname": "",
"transferType": "",
"currencyRate": "",
"resultURL": "",
"bankName": "",
"receiverBankAcc": "",
"remarks": "",
"receiverDocument": "",
"receiverDocumentId": "",
"senderDob": "",
"senderDocDateOfIssue": "",
"senderDocExpiryDate": "",
"senderDocPlaceOfIssue": "",
"senderDocumentation": "",
"senderOccupation": "",
"senderPhysicalAddress": "",
"sourceOfFundsDocumentation": ""
},
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/newPayment";
const options = {
method: "POST",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
"payoutAmount": 0,
"payingAmount": 0,
"senderNationality": "",
"senderTelephoneNo": "",
"senderDocType": "",
"senderOtherNames": "",
"senderSurname": "",
"receiverContactNo": "",
"purposeforFunds": "",
"tariff": "",
"payoutCountry": "",
"originCountry": "",
"currencyPair": "",
"senderDocNumber": "",
"transactionReference": "",
"receiverOthernames": "",
"receiverSurname": "",
"transferType": "",
"currencyRate": "",
"resultURL": "",
"bankName": "",
"receiverBankAcc": "",
"remarks": "",
"receiverDocument": "",
"receiverDocumentId": "",
"senderDob": "",
"senderDocDateOfIssue": "",
"senderDocExpiryDate": "",
"senderDocPlaceOfIssue": "",
"senderDocumentation": "",
"senderOccupation": "",
"senderPhysicalAddress": "",
"sourceOfFundsDocumentation": ""
}),
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
Provide all the parameeters required to query for the status of a transaction
POST https://testbed.flex-money.tech/queryTrans
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
| Parameter | Type | Mandatory | Description |
| transactionReference | String | M | Unique reference identifying a transaction |
curl --request POST \
'https://testbed.flex-money.tech/queryTrans' \
--header 'authorization: Bearer XXXXXXXXX' \
--header 'x-userId: XXXXXXXXX' \
--header 'x-password: XXXXXXXXX' \
--header 'x-timestamp: XXXXXXXXX' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"transactionReference":""}' \
--compressed
POST https://testbed.flex-money.tech/queryTrans HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
Content-Type: application/json
{
"transactionReference": ""
}
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/queryTrans"
requestBody = {
"transactionReference": ""
}
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
request = requests.post(requestUrl, headers=requestHeaders, json=requestBody)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/queryTrans';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
'Content-Type: application/json',
));
$bodyArray = array(
'transactionReference' => ''
);
$body = json_encode($bodyArray);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/queryTrans");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
String body = "{\"transactionReference\":\"\"}";
writer.write(body);
writer.flush();
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/queryTrans",
"method": "POST",
"json": {
"transactionReference": ""
},
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/queryTrans";
const options = {
method: "POST",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
"transactionReference": ""
}),
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
This Method allows for Forex Determination
| Method | Endpoint | Description |
| POST | /forexRate | Get Forex Rate for Currency Pair |
No data
Get Forex Rate for the Currency Pair provided
POST https://testbed.flex-money.tech/forexRate
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
| Parameter | Type | Mandatory | Description |
| currPair | String | M | Currency Pair e.g.USD - KES |
curl --request POST \
'https://testbed.flex-money.tech/forexRate' \
--header 'authorization: Bearer XXXXXXXXX' \
--header 'x-userId: XXXXXXXXX' \
--header 'x-password: XXXXXXXXX' \
--header 'x-timestamp: XXXXXXXXX' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"currPair":""}' \
--compressed
POST https://testbed.flex-money.tech/forexRate HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
Content-Type: application/json
{
"currPair": ""
}
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/forexRate"
requestBody = {
"currPair": ""
}
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
request = requests.post(requestUrl, headers=requestHeaders, json=requestBody)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/forexRate';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
'Content-Type: application/json',
));
$bodyArray = array(
'currPair' => ''
);
$body = json_encode($bodyArray);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/forexRate");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
String body = "{\"currPair\":\"\"}";
writer.write(body);
writer.flush();
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/forexRate",
"method": "POST",
"json": {
"currPair": ""
},
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/forexRate";
const options = {
method: "POST",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
"currPair": ""
}),
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
The Collections API allows for the notifications for all payments done via a particular Paybill or Till Number.
| Method | Endpoint | Description |
| POST | /stkPush | Initiate Payment request to Customer MSISDN |
| POST | /paymentLink | Embedded Link to Collect Payments from customers based on their preferences |
| POST | /querySTK | Query STK transaction |
No data
This Method allows for the Initialization of payment requests to be done from the following to the Customer's phone number
POST https://testbed.flex-money.tech/stkPush
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
| Parameter | Type | Mandatory | Description |
| transactionReference | String | M | Unique reference identifying a transaction |
| msisdn | String | M | MSISDN to collect funds from |
| collectionAmount | double | M | Amount value |
| paymentDesc | String | M | Payment Description |
| callbackUrl | String | M | Valid HTTP/HTTPS Callback Endpoint - Results will be sent to this URL |
curl --request POST \
'https://testbed.flex-money.tech/stkPush' \
--header 'authorization: Bearer XXXXXXXXX' \
--header 'x-userId: XXXXXXXXX' \
--header 'x-password: XXXXXXXXX' \
--header 'x-timestamp: XXXXXXXXX' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"transactionReference":"","collectionAmount":0,"msisdn":"","callbackUrl":""}' \
--compressed
POST https://testbed.flex-money.tech/stkPush HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
Content-Type: application/json
{
"transactionReference": "",
"collectionAmount": 0,
"msisdn": "",
"callbackUrl": ""
}
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/stkPush"
requestBody = {
"transactionReference": "",
"collectionAmount": 0,
"msisdn": "",
"callbackUrl": ""
}
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
request = requests.post(requestUrl, headers=requestHeaders, json=requestBody)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/stkPush';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
'Content-Type: application/json',
));
$bodyArray = array(
'transactionReference' => '',
'collectionAmount' => 0,
'msisdn' => '',
'callbackUrl' => '',
);
$body = json_encode($bodyArray);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/stkPush");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
String body = "{\"transactionReference\":\"\",\"collectionAmount\":0,\"msisdn\":\"\",\"callbackUrl\":\"\"}";
writer.write(body);
writer.flush();
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/stkPush",
"method": "POST",
"json": {
"transactionReference": "",
"collectionAmount": 0,
"msisdn": "",
"callbackUrl": ""
},
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/stkPush";
const options = {
method: "POST",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
"transactionReference": "",
"collectionAmount": 0,
"msisdn": "",
"callbackUrl": ""
}),
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
This Method allows for the embedding of Link from Customer Portal, Website or App and Collect payments by redirecting to the Pyxis Check-out Page
POST https://testbed.flex-money.tech/paymentLink
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
| Parameter | Type | Mandatory | Description |
| orderId | String | M | Unique reference identifying a transaction |
| msisdn | String | M | Phone Number of Customer |
| String | O | Email Address of Customer | |
| collectionAmount | double | M | Amount value |
| collectionCurrency | String | M | Currency of Collection amount ISO CODE |
| orderDesc | String | M | Brief Description of Order |
| callbackUrl | String | M | Valid HTTP/HTTPS Callback Endpoint - Results will be sent to this URL |
curl --request POST \
'https://testbed.flex-money.tech/paymentLink' \
--header 'authorization: Bearer XXXXXXXXX' \
--header 'x-userId: XXXXXXXXX' \
--header 'x-password: XXXXXXXXX' \
--header 'x-timestamp: XXXXXXXXX' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"orderId":"","orderDesc":"","collectionAmount":0,"collectionCurrency":"","msisdn":"","callbackUrl":""}' \
--compressed
POST https://testbed.flex-money.tech/paymentLink HTTP/1.1
authorization: Bearer XXXXXXXXX
Accept: application/json
Content-Type: application/json
{
"orderId": "",
"orderDesc": "",
"collectionAmount": 0,
"collectionCurrency": "",
"msisdn": "",
"callbackUrl": ""
}
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/paymentLink"
requestBody = {
"orderId": "",
"orderDesc": "",
"collectionAmount": 0,
"collectionCurrency": "",
"msisdn": "",
"callbackUrl": ""
}
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
request = requests.post(requestUrl, headers=requestHeaders, json=requestBody)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/paymentLink';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
'Content-Type: application/json',
));
$bodyArray = array(
'orderId' => '',
'orderDesc' => '',
'collectionAmount' => 0,
'collectionCurrency' => '',
'msisdn' => '',
'callbackUrl' => '',
);
$body = json_encode($bodyArray);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/paymentLink");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
String body = "{\"orderId\":\"\",\"orderDesc\":\"\",\"collectionAmount\":0,\"collectionCurrency\":\"\",\"msisdn\":\"\",\"callbackUrl\":\"\"}";
writer.write(body);
writer.flush();
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/paymentLink",
"method": "POST",
"json": {
"orderId": "",
"orderDesc": "",
"collectionAmount": 0,
"collectionCurrency": "",
"msisdn": "",
"callbackUrl": ""
},
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/paymentLink";
const options = {
method: "POST",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
"orderId": "",
"orderDesc": "",
"collectionAmount": 0,
"collectionCurrency": "",
"msisdn": "",
"callbackUrl": ""
}),
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
Provide all the parameeters required to query for the status of a transaction
POST https://testbed.flex-money.tech/querySTK
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
| Parameter | Type | Mandatory | Description |
| transactionReference | String | M | Unique reference identifying a transaction |
curl --request POST \
'https://testbed.flex-money.tech/querySTK' \
--header 'authorization: Bearer XXXXXXXXX' \
--header 'x-userId: XXXXXXXXX' \
--header 'x-password: XXXXXXXXX' \
--header 'x-timestamp: XXXXXXXXX' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"transactionReference":""}' \
--compressed
POST https://testbed.flex-money.tech/querySTK HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
Content-Type: application/json
{
"transactionReference": ""
}
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/querySTK"
requestBody = {
"transactionReference": ""
}
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
request = requests.post(requestUrl, headers=requestHeaders, json=requestBody)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/querySTK';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
'Content-Type: application/json',
));
$bodyArray = array(
'transactionReference' => ''
);
$body = json_encode($bodyArray);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/querySTK");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
String body = "{\"transactionReference\":\"\"}";
writer.write(body);
writer.flush();
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/querySTK",
"method": "POST",
"json": {
"transactionReference": ""
},
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/querySTK";
const options = {
method: "POST",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
"transactionReference": ""
}),
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
Get Information regarding the following
| Method | Endpoint | Description |
| GET | /countries | Countries ISO Code. |
| GET | /outboundCountries | Supoorted Countries Termination |
| POST | /banks | Banks for Supported Countries |
| GET | /currencyPairs | Supported Currency Pairs |
No data
Countries ISO Code
GET https://testbed.flex-money.tech/countries
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
curl \ 'https://testbed.flex-money.tech/countries' \ --header 'authorization: Bearer XXXXXXXXX' \ --header 'x-userId: XXXXXXXXX' \ --header 'x-password: XXXXXXXXX' \ --header 'x-timestamp: XXXXXXXXX' \ --header 'Accept: application/json' \ --compressed
GET https://testbed.flex-money.tech/countries HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/countries"
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
}
request = requests.get(requestUrl, headers=requestHeaders)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/countries';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
));
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/countries");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/countries",
"method": "GET",
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/countries";
const options = {
method: "GET",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
},
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
List of Supported Payout Countries
GET https://testbed.flex-money.tech/outboundCountries
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
curl \ 'https://testbed.flex-money.tech/outboundCountries' \ --header 'authorization: Bearer XXXXXXXXX' \ --header 'x-userId: XXXXXXXXX' \ --header 'x-password: XXXXXXXXX' \ --header 'x-timestamp: XXXXXXXXX' \ --header 'Accept: application/json' \ --compressed
GET https://testbed.flex-money.tech/outboundCountries HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/outboundCountries"
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
}
request = requests.get(requestUrl, headers=requestHeaders)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/outboundCountries';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
));
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/outboundCountries");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/outboundCountries",
"method": "GET",
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/outboundCountries";
const options = {
method: "GET",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
},
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
Listing of Supported Banks for Provided Country
POST https://testbed.flex-money.tech/banks
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
| Parameter | Type | Mandatory | Description |
| couCode | String | M | Country Code ISO Code |
curl --request POST \
'https://testbed.flex-money.tech/banks' \
--header 'authorization: Bearer XXXXXXXXX' \
--header 'x-userId: XXXXXXXXX' \
--header 'x-password: XXXXXXXXX' \
--header 'x-timestamp: XXXXXXXXX' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"couCode":""}' \
--compressed
POST https://testbed.flex-money.tech/banks HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
Content-Type: application/json
{
"couCode": ""
}
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/banks"
requestBody = {
"couCode": ""
}
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
request = requests.post(requestUrl, headers=requestHeaders, json=requestBody)
print request.content
if __name__ == "__main__":
execute()
$url = 'https://testbed.flex-money.tech/banks';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
'Content-Type: application/json',
));
$bodyArray = array(
'couCode' => '',
);
$body = json_encode($bodyArray);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/banks");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
String body = "{\"couCode\":\"\"}";
writer.write(body);
writer.flush();
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/banks",
"method": "POST",
"json": {
"couCode": ""
},
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/banks";
const options = {
method: "POST",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
"couCode": ""
}),
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
Supported Currency Pairs
GET https://testbed.flex-money.tech/currencyPairs
Headers
authorization:Bearer [token]
x-userId:[userCode]
x-password:[MD5password]
x-timestamp:[timestamp]
curl \ 'https://testbed.flex-money.tech/currencyPairs' \ --header 'authorization: Bearer XXXXXXXXX' \ --header 'x-userId: XXXXXXXXX' \ --header 'x-password: XXXXXXXXX' \ --header 'x-timestamp: XXXXXXXXX' \ --header 'Accept: application/json' \ --compressed
GET https://testbed.flex-money.tech/currencyPairs HTTP/1.1
authorization: Bearer XXXXXXXXX
x-userId: XXXXXXXXX
x-password: XXXXXXXXX
x-timestamp: XXXXXXXXX
Accept: application/json
import requests
def execute():
requestUrl = "https://testbed.flex-money.tech/currencyPairs"
requestHeaders = {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
}
request = requests.get(requestUrl, headers=requestHeaders)
print request.content
if __name__ == "__main__":
execute()
<$url = 'https://testbed.flex-money.tech/currencyPairs';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer XXXXXXXXX',
'x-userId: XXXXXXXXX',
'x-password: XXXXXXXXX',
'x-timestamp: XXXXXXXXX',
'Accept: application/json',
));
$result = curl_exec($ch);
if ($result === false) {
echo curl_error($ch);
}
else {
echo $result;
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.stream.Collectors;
public class ApiExample {
public static String execute() throws IOException {
URL url = new URL("https://testbed.flex-money.tech/currencyPairs");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("authorization", "Bearer XXXXXXXXX");
connection.setRequestProperty("x-userId", "XXXXXXXXX");
connection.setRequestProperty("x-password", "XXXXXXXXX");
connection.setRequestProperty("x-timestamp", "XXXXXXXXX");
connection.setRequestProperty("Accept", "application/json");
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
return r.lines().collect(Collectors.joining("\n"));
}
}
public static void main(String[] args) throws IOException {
System.out.println(execute());
}
}
const request = require('request');
function execute() {
const options = {
"url": "https://testbed.flex-money.tech/currencyPairs",
"method": "GET",
"headers": {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
}
};
request(options, function (err, res, body) {
if (err) {
console.error(err);
}
else {
console.log(body);
}
});
}
execute();
function execute() {
const url = "https://testbed.flex-money.tech/currencyPairs";
const options = {
method: "GET",
headers: {
"authorization": "Bearer XXXXXXXXX",
"x-userId": "XXXXXXXXX",
"x-password": "XXXXXXXXX",
"x-timestamp": "XXXXXXXXX",
"Accept": "application/json"
},
};
fetch(url, options).then(
response => {
if (response.ok) {
return response.text();
}
return response.text().then(err => {
return Promise.reject({
status: response.status,
statusText: response.statusText,
errorMessage: err,
});
});
})
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
}
| 200 | OK |
|---|---|
| 400 | Bad Request |
| 401 | Unauthorized |
| 402 | Request Failed |
| 404 | Not Found |
| 409 | Conflict |
| 429 | Too Many Requests |
| 500, 502, 503, 504 | Server Errors |