Getting Started

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.

  • Authentication.
    1. MD5 Generation
    2. Getting Token
  • Balance Check.
    1. Check Balance
    2. Check Balance - All Wallets
  • Verification.
    1. Verify MSISDN
    2. Verify Account
    3. Bill Validate
    4. IFSC Code Validate
  • Payouts.
    1. New Payout
    2. Query Transaction
  • Forex.
    1. Get Rate
  • Collections.
    1. Initiate STK-Push
    2. Payment Link
    3. Query Transaction
  • Utilities.
    1. Countries
    2. Payout Countries
    3. Banks
    4. Currency Pairs
  • Response Codes.
  • 						https://testbed.flex-money.tech
    					

    Authentication

    For Most Areas within the Application, you will need Authentication and Authorization. To Proceed, ensure your have been provided with the following

  • userCode: 290
  • timestamp: System Timestamp format : yyyyMMddHHmmss
  • rawPassword: testPass!
  • Operations
    Method Endpoint Description
    POST /md5Password Returns the MD5 hashed Password MD5(userCode+timestamp+rawPassword)
    GET /tokens Returns Token
    No data

    MD5 Password (Testing Only)

    For Most Areas within the Application, you will need Authentication and Authorization. To Proceed, ensure your have been provided with the following

  • userCode:
  • timestamp: System Timestamp format : yyyyMMddHHmmss
  • rawPassword:
  • 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);
        });
    }
    

    Token

    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

  • clientId
  • clientSecret
  • 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);
        });
    }
    
    

    Balance Check

    The Balance Check API allows for the retrieving of partner balance.

    Operations
    Method Endpoint Description
    GET /balanceCheck Returns the Balance for Partner
    GET /balanceAllWallets Returns all the partner Wallets and Balances
    No data

    Balance Check

    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);
        });
    }
    

    Balance Check - All Wallets

    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);
        });
    }
    

    Validation

    The Validation API allows for the verification of the registered details for MSISDN.

    Operations
    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

    Verify MSISDN

    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);
        });
    }
    

    Verify Account

    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);
        });
    }
    

    Bill Validate

    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);
        });
    }
    

    IFSC Code Validate

    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);
        });
    }
    

    Payouts

    This Method allows for the Paying out of funds to the following

    1. Phone Number
    2. Paybill
    3. Till
    4. Bank Account
    Operations
    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

    New Payout

    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-yyyy
    Mandatory for UAE Transactions
    receiverExpiryDate String O Receiver Document Id Expiry Date dd-MM-yyyy
    Mandatory 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);
        });
    }
    
    
    

    Query Transaction

    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);
        });
    }
    

    Forex

    This Method allows for Forex Determination

    Operations
    Method Endpoint Description
    POST /forexRate Get Forex Rate for Currency Pair
    No data

    Get Rate

    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);
        });
    }
    

    Collections

    The Collections API allows for the notifications for all payments done via a particular Paybill or Till Number.

    Operations
    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

    Inititate STK-Push

    This Method allows for the Initialization of payment requests to be done from the following to the Customer's phone number

    1. Mobile App
    2. Website
    3. Web Portal/App
    4. USSD
    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);
        });
    }
    

    Payment Links

    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

    1. Mobile App
    2. Website
    3. Web Portal/App
    4. USSD
    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
    email 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);
        });
    }
    

    Query Transaction

    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);
        });
    }
    

    Utilities

    Get Information regarding the following

    1. Countries
    2. Supported Banks
    3. Currency Pairs
    Operations
    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

    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);
        });
    }
    
    

    Payout Countries

    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);
        });
    }
    
    

    Banks

    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);
        });
    }
    
    

    Currency Pairs

    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);
        });
    }
    
    

    Response Codes

    0
    Paid Out
    0
    Success
    100
    The service request is processed successfully.
    -1
    Not Allowed
    1002
    Msisdn cannot be found
    2001
    Rejected - Remitter / Beneficiary in Ofac List
    2002
    Rejected - Remitter / Beneficiary in EU Sanctions List
    2003
    Rejected - Remitter / Beneficiary in UN sanctions List
    2004
    Rejected - Credit Party customer type (Unregistered or Registered Customer) cant be supported by the service .
    2005
    Rejected - Declined due to limit rule: would exceed the maximum balance.
    2006
    Cancelled
    2007
    Rejected - The balance is insufficient for the transaction.
    2008
    Rejected - Declined due to limit rule: greater than the maximum transaction amount.
    2009
    Rejected - The ReceiverParty information is invalid.
    2010
    Rejected - The CreditParty is in an invalid state.
    2011
    Rejected - Request cancelled by user
    2012
    Rejected - DS timeout.
    3000
    Pending
    3001
    Approved
    3002
    Approved-Bank
    3003
    Auto-Pend
    3004
    Auto-Pay/Processing
    3005
    Other Error

    HTTP Response Codes

    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