curl --request POST \
--url https://sandbox.users.niobi.co/api/v4/niobi-unified-payments \
--header 'Content-Type: application/json' \
--data '
{
"client_id": "K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr",
"params": {
"amount": 1000,
"currency": "KES",
"payment_reference": "TRANS-123456789",
"first_name": "John",
"last_name": "Doe",
"mobile": "254647647649",
"email": "john@doe.com",
"country_id": "1",
"city": "Nairobi",
"postal_code": "001001",
"line1": "123 Main St",
"client_callback_url": "https://your-domain.com/niobi/result",
"payment_method_type": "send money",
"customer_identifier": 1234,
"description": "Invoice payment",
"third_party_reference_1": "<string>",
"third_party_reference_2": "<string>",
"sub_merchant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_third_party_reference_1_unique": true,
"is_third_party_reference_2_unique": true,
"mtn": [
{
"phone_number": "254647647649"
}
],
"Orange": [
{
"phone_number": "254647647649"
}
],
"Vodacom": [
{
"phone_number": "254647647649"
}
],
"Airtel": [
{
"phone_number": "254647647649"
}
],
"at": [
{
"phone_number": "254647647649"
}
],
"Vodafone": [
{
"phone_number": "254647647649"
}
],
"tnm": [
{
"phone_number": "254647647649"
}
],
"Zamtel": [
{
"phone_number": "254647647649"
}
],
"Halotel": [
{
"phone_number": "254647647649"
}
],
"Tigo": [
{
"phone_number": "254647647649"
}
],
"Free": [
{
"phone_number": "254647647649"
}
],
"sendmoney": [
{
"phone_number": "254647647649"
}
],
"paybill": [
{
"paybill_number": "123456",
"account_number": "123456789"
}
],
"tillnumber": [
{
"till_number": "123456"
}
],
"pesalink": [
{
"bank_name": "ABC",
"bank_code": "00",
"branch_name": "ABC",
"account_name": "ABC",
"account_number": "123456789"
}
],
"bank": [
{
"bank_name": "First Bank of Nigeria",
"bank_code": "011",
"branch_name": "Victoria Island",
"account_name": "John Doe",
"account_number": "0123456789"
}
],
"sender_firstname": "John",
"sender_lastname": "Doe",
"sender_phone_number": "237600000000"
},
"salt": "justrandomstring",
"sender": "John.co",
"timestamp": 1709363033,
"signature": "2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807"
}
'import requests
url = "https://sandbox.users.niobi.co/api/v4/niobi-unified-payments"
payload = {
"client_id": "K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr",
"params": {
"amount": 1000,
"currency": "KES",
"payment_reference": "TRANS-123456789",
"first_name": "John",
"last_name": "Doe",
"mobile": "254647647649",
"email": "john@doe.com",
"country_id": "1",
"city": "Nairobi",
"postal_code": "001001",
"line1": "123 Main St",
"client_callback_url": "https://your-domain.com/niobi/result",
"payment_method_type": "send money",
"customer_identifier": 1234,
"description": "Invoice payment",
"third_party_reference_1": "<string>",
"third_party_reference_2": "<string>",
"sub_merchant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_third_party_reference_1_unique": True,
"is_third_party_reference_2_unique": True,
"mtn": [{ "phone_number": "254647647649" }],
"Orange": [{ "phone_number": "254647647649" }],
"Vodacom": [{ "phone_number": "254647647649" }],
"Airtel": [{ "phone_number": "254647647649" }],
"at": [{ "phone_number": "254647647649" }],
"Vodafone": [{ "phone_number": "254647647649" }],
"tnm": [{ "phone_number": "254647647649" }],
"Zamtel": [{ "phone_number": "254647647649" }],
"Halotel": [{ "phone_number": "254647647649" }],
"Tigo": [{ "phone_number": "254647647649" }],
"Free": [{ "phone_number": "254647647649" }],
"sendmoney": [{ "phone_number": "254647647649" }],
"paybill": [
{
"paybill_number": "123456",
"account_number": "123456789"
}
],
"tillnumber": [{ "till_number": "123456" }],
"pesalink": [
{
"bank_name": "ABC",
"bank_code": "00",
"branch_name": "ABC",
"account_name": "ABC",
"account_number": "123456789"
}
],
"bank": [
{
"bank_name": "First Bank of Nigeria",
"bank_code": "011",
"branch_name": "Victoria Island",
"account_name": "John Doe",
"account_number": "0123456789"
}
],
"sender_firstname": "John",
"sender_lastname": "Doe",
"sender_phone_number": "237600000000"
},
"salt": "justrandomstring",
"sender": "John.co",
"timestamp": 1709363033,
"signature": "2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
client_id: 'K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr',
params: {
amount: 1000,
currency: 'KES',
payment_reference: 'TRANS-123456789',
first_name: 'John',
last_name: 'Doe',
mobile: '254647647649',
email: 'john@doe.com',
country_id: '1',
city: 'Nairobi',
postal_code: '001001',
line1: '123 Main St',
client_callback_url: 'https://your-domain.com/niobi/result',
payment_method_type: 'send money',
customer_identifier: 1234,
description: 'Invoice payment',
third_party_reference_1: '<string>',
third_party_reference_2: '<string>',
sub_merchant_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
is_third_party_reference_1_unique: true,
is_third_party_reference_2_unique: true,
mtn: [{phone_number: '254647647649'}],
Orange: [{phone_number: '254647647649'}],
Vodacom: [{phone_number: '254647647649'}],
Airtel: [{phone_number: '254647647649'}],
at: [{phone_number: '254647647649'}],
Vodafone: [{phone_number: '254647647649'}],
tnm: [{phone_number: '254647647649'}],
Zamtel: [{phone_number: '254647647649'}],
Halotel: [{phone_number: '254647647649'}],
Tigo: [{phone_number: '254647647649'}],
Free: [{phone_number: '254647647649'}],
sendmoney: [{phone_number: '254647647649'}],
paybill: [{paybill_number: '123456', account_number: '123456789'}],
tillnumber: [{till_number: '123456'}],
pesalink: [
{
bank_name: 'ABC',
bank_code: '00',
branch_name: 'ABC',
account_name: 'ABC',
account_number: '123456789'
}
],
bank: [
{
bank_name: 'First Bank of Nigeria',
bank_code: '011',
branch_name: 'Victoria Island',
account_name: 'John Doe',
account_number: '0123456789'
}
],
sender_firstname: 'John',
sender_lastname: 'Doe',
sender_phone_number: '237600000000'
},
salt: 'justrandomstring',
sender: 'John.co',
timestamp: 1709363033,
signature: '2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807'
})
};
fetch('https://sandbox.users.niobi.co/api/v4/niobi-unified-payments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.users.niobi.co/api/v4/niobi-unified-payments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'client_id' => 'K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr',
'params' => [
'amount' => 1000,
'currency' => 'KES',
'payment_reference' => 'TRANS-123456789',
'first_name' => 'John',
'last_name' => 'Doe',
'mobile' => '254647647649',
'email' => 'john@doe.com',
'country_id' => '1',
'city' => 'Nairobi',
'postal_code' => '001001',
'line1' => '123 Main St',
'client_callback_url' => 'https://your-domain.com/niobi/result',
'payment_method_type' => 'send money',
'customer_identifier' => 1234,
'description' => 'Invoice payment',
'third_party_reference_1' => '<string>',
'third_party_reference_2' => '<string>',
'sub_merchant_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'is_third_party_reference_1_unique' => true,
'is_third_party_reference_2_unique' => true,
'mtn' => [
[
'phone_number' => '254647647649'
]
],
'Orange' => [
[
'phone_number' => '254647647649'
]
],
'Vodacom' => [
[
'phone_number' => '254647647649'
]
],
'Airtel' => [
[
'phone_number' => '254647647649'
]
],
'at' => [
[
'phone_number' => '254647647649'
]
],
'Vodafone' => [
[
'phone_number' => '254647647649'
]
],
'tnm' => [
[
'phone_number' => '254647647649'
]
],
'Zamtel' => [
[
'phone_number' => '254647647649'
]
],
'Halotel' => [
[
'phone_number' => '254647647649'
]
],
'Tigo' => [
[
'phone_number' => '254647647649'
]
],
'Free' => [
[
'phone_number' => '254647647649'
]
],
'sendmoney' => [
[
'phone_number' => '254647647649'
]
],
'paybill' => [
[
'paybill_number' => '123456',
'account_number' => '123456789'
]
],
'tillnumber' => [
[
'till_number' => '123456'
]
],
'pesalink' => [
[
'bank_name' => 'ABC',
'bank_code' => '00',
'branch_name' => 'ABC',
'account_name' => 'ABC',
'account_number' => '123456789'
]
],
'bank' => [
[
'bank_name' => 'First Bank of Nigeria',
'bank_code' => '011',
'branch_name' => 'Victoria Island',
'account_name' => 'John Doe',
'account_number' => '0123456789'
]
],
'sender_firstname' => 'John',
'sender_lastname' => 'Doe',
'sender_phone_number' => '237600000000'
],
'salt' => 'justrandomstring',
'sender' => 'John.co',
'timestamp' => 1709363033,
'signature' => '2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.users.niobi.co/api/v4/niobi-unified-payments"
payload := strings.NewReader("{\n \"client_id\": \"K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr\",\n \"params\": {\n \"amount\": 1000,\n \"currency\": \"KES\",\n \"payment_reference\": \"TRANS-123456789\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"mobile\": \"254647647649\",\n \"email\": \"john@doe.com\",\n \"country_id\": \"1\",\n \"city\": \"Nairobi\",\n \"postal_code\": \"001001\",\n \"line1\": \"123 Main St\",\n \"client_callback_url\": \"https://your-domain.com/niobi/result\",\n \"payment_method_type\": \"send money\",\n \"customer_identifier\": 1234,\n \"description\": \"Invoice payment\",\n \"third_party_reference_1\": \"<string>\",\n \"third_party_reference_2\": \"<string>\",\n \"sub_merchant_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"is_third_party_reference_1_unique\": true,\n \"is_third_party_reference_2_unique\": true,\n \"mtn\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Orange\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Vodacom\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Airtel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"at\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Vodafone\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"tnm\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Zamtel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Halotel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Tigo\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Free\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"sendmoney\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"paybill\": [\n {\n \"paybill_number\": \"123456\",\n \"account_number\": \"123456789\"\n }\n ],\n \"tillnumber\": [\n {\n \"till_number\": \"123456\"\n }\n ],\n \"pesalink\": [\n {\n \"bank_name\": \"ABC\",\n \"bank_code\": \"00\",\n \"branch_name\": \"ABC\",\n \"account_name\": \"ABC\",\n \"account_number\": \"123456789\"\n }\n ],\n \"bank\": [\n {\n \"bank_name\": \"First Bank of Nigeria\",\n \"bank_code\": \"011\",\n \"branch_name\": \"Victoria Island\",\n \"account_name\": \"John Doe\",\n \"account_number\": \"0123456789\"\n }\n ],\n \"sender_firstname\": \"John\",\n \"sender_lastname\": \"Doe\",\n \"sender_phone_number\": \"237600000000\"\n },\n \"salt\": \"justrandomstring\",\n \"sender\": \"John.co\",\n \"timestamp\": 1709363033,\n \"signature\": \"2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.users.niobi.co/api/v4/niobi-unified-payments")
.header("Content-Type", "application/json")
.body("{\n \"client_id\": \"K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr\",\n \"params\": {\n \"amount\": 1000,\n \"currency\": \"KES\",\n \"payment_reference\": \"TRANS-123456789\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"mobile\": \"254647647649\",\n \"email\": \"john@doe.com\",\n \"country_id\": \"1\",\n \"city\": \"Nairobi\",\n \"postal_code\": \"001001\",\n \"line1\": \"123 Main St\",\n \"client_callback_url\": \"https://your-domain.com/niobi/result\",\n \"payment_method_type\": \"send money\",\n \"customer_identifier\": 1234,\n \"description\": \"Invoice payment\",\n \"third_party_reference_1\": \"<string>\",\n \"third_party_reference_2\": \"<string>\",\n \"sub_merchant_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"is_third_party_reference_1_unique\": true,\n \"is_third_party_reference_2_unique\": true,\n \"mtn\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Orange\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Vodacom\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Airtel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"at\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Vodafone\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"tnm\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Zamtel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Halotel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Tigo\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Free\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"sendmoney\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"paybill\": [\n {\n \"paybill_number\": \"123456\",\n \"account_number\": \"123456789\"\n }\n ],\n \"tillnumber\": [\n {\n \"till_number\": \"123456\"\n }\n ],\n \"pesalink\": [\n {\n \"bank_name\": \"ABC\",\n \"bank_code\": \"00\",\n \"branch_name\": \"ABC\",\n \"account_name\": \"ABC\",\n \"account_number\": \"123456789\"\n }\n ],\n \"bank\": [\n {\n \"bank_name\": \"First Bank of Nigeria\",\n \"bank_code\": \"011\",\n \"branch_name\": \"Victoria Island\",\n \"account_name\": \"John Doe\",\n \"account_number\": \"0123456789\"\n }\n ],\n \"sender_firstname\": \"John\",\n \"sender_lastname\": \"Doe\",\n \"sender_phone_number\": \"237600000000\"\n },\n \"salt\": \"justrandomstring\",\n \"sender\": \"John.co\",\n \"timestamp\": 1709363033,\n \"signature\": \"2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.users.niobi.co/api/v4/niobi-unified-payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"client_id\": \"K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr\",\n \"params\": {\n \"amount\": 1000,\n \"currency\": \"KES\",\n \"payment_reference\": \"TRANS-123456789\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"mobile\": \"254647647649\",\n \"email\": \"john@doe.com\",\n \"country_id\": \"1\",\n \"city\": \"Nairobi\",\n \"postal_code\": \"001001\",\n \"line1\": \"123 Main St\",\n \"client_callback_url\": \"https://your-domain.com/niobi/result\",\n \"payment_method_type\": \"send money\",\n \"customer_identifier\": 1234,\n \"description\": \"Invoice payment\",\n \"third_party_reference_1\": \"<string>\",\n \"third_party_reference_2\": \"<string>\",\n \"sub_merchant_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"is_third_party_reference_1_unique\": true,\n \"is_third_party_reference_2_unique\": true,\n \"mtn\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Orange\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Vodacom\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Airtel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"at\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Vodafone\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"tnm\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Zamtel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Halotel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Tigo\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Free\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"sendmoney\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"paybill\": [\n {\n \"paybill_number\": \"123456\",\n \"account_number\": \"123456789\"\n }\n ],\n \"tillnumber\": [\n {\n \"till_number\": \"123456\"\n }\n ],\n \"pesalink\": [\n {\n \"bank_name\": \"ABC\",\n \"bank_code\": \"00\",\n \"branch_name\": \"ABC\",\n \"account_name\": \"ABC\",\n \"account_number\": \"123456789\"\n }\n ],\n \"bank\": [\n {\n \"bank_name\": \"First Bank of Nigeria\",\n \"bank_code\": \"011\",\n \"branch_name\": \"Victoria Island\",\n \"account_name\": \"John Doe\",\n \"account_number\": \"0123456789\"\n }\n ],\n \"sender_firstname\": \"John\",\n \"sender_lastname\": \"Doe\",\n \"sender_phone_number\": \"237600000000\"\n },\n \"salt\": \"justrandomstring\",\n \"sender\": \"John.co\",\n \"timestamp\": 1709363033,\n \"signature\": \"2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Payment process initiated successfully.",
"data": {
"reference": "NIO-PAY-001",
"type": "send money",
"total": 1000,
"creation_date": "2026-08-29T12:00:00Z",
"execution_date": "2026-08-29T12:00:00Z",
"from": "John Doe",
"to": "254161166649",
"invoice_date": "2026-08-29T12:00:00Z",
"invoice_amount": 1000,
"payment_step": 1
},
"status_code": "000000"
}{
"success": false,
"message": "Country was not found or Niobi user not found or Payment process initiation failed."
}{
"success": false,
"message": "Entity integration record not found or Client id not matched or Request was not verified."
}{
"success": false,
"message": "User not found."
}Unified Disbursements
One endpoint for all disbursement methods across all supported markets. Sends payouts via mobile money, bank transfer, or other supported rails. Each request must carry a freshly generated signature, signatures cannot be reused across requests. See the Making Payments Guide and Payout Methods for the full field matrix per market.
curl --request POST \
--url https://sandbox.users.niobi.co/api/v4/niobi-unified-payments \
--header 'Content-Type: application/json' \
--data '
{
"client_id": "K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr",
"params": {
"amount": 1000,
"currency": "KES",
"payment_reference": "TRANS-123456789",
"first_name": "John",
"last_name": "Doe",
"mobile": "254647647649",
"email": "john@doe.com",
"country_id": "1",
"city": "Nairobi",
"postal_code": "001001",
"line1": "123 Main St",
"client_callback_url": "https://your-domain.com/niobi/result",
"payment_method_type": "send money",
"customer_identifier": 1234,
"description": "Invoice payment",
"third_party_reference_1": "<string>",
"third_party_reference_2": "<string>",
"sub_merchant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_third_party_reference_1_unique": true,
"is_third_party_reference_2_unique": true,
"mtn": [
{
"phone_number": "254647647649"
}
],
"Orange": [
{
"phone_number": "254647647649"
}
],
"Vodacom": [
{
"phone_number": "254647647649"
}
],
"Airtel": [
{
"phone_number": "254647647649"
}
],
"at": [
{
"phone_number": "254647647649"
}
],
"Vodafone": [
{
"phone_number": "254647647649"
}
],
"tnm": [
{
"phone_number": "254647647649"
}
],
"Zamtel": [
{
"phone_number": "254647647649"
}
],
"Halotel": [
{
"phone_number": "254647647649"
}
],
"Tigo": [
{
"phone_number": "254647647649"
}
],
"Free": [
{
"phone_number": "254647647649"
}
],
"sendmoney": [
{
"phone_number": "254647647649"
}
],
"paybill": [
{
"paybill_number": "123456",
"account_number": "123456789"
}
],
"tillnumber": [
{
"till_number": "123456"
}
],
"pesalink": [
{
"bank_name": "ABC",
"bank_code": "00",
"branch_name": "ABC",
"account_name": "ABC",
"account_number": "123456789"
}
],
"bank": [
{
"bank_name": "First Bank of Nigeria",
"bank_code": "011",
"branch_name": "Victoria Island",
"account_name": "John Doe",
"account_number": "0123456789"
}
],
"sender_firstname": "John",
"sender_lastname": "Doe",
"sender_phone_number": "237600000000"
},
"salt": "justrandomstring",
"sender": "John.co",
"timestamp": 1709363033,
"signature": "2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807"
}
'import requests
url = "https://sandbox.users.niobi.co/api/v4/niobi-unified-payments"
payload = {
"client_id": "K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr",
"params": {
"amount": 1000,
"currency": "KES",
"payment_reference": "TRANS-123456789",
"first_name": "John",
"last_name": "Doe",
"mobile": "254647647649",
"email": "john@doe.com",
"country_id": "1",
"city": "Nairobi",
"postal_code": "001001",
"line1": "123 Main St",
"client_callback_url": "https://your-domain.com/niobi/result",
"payment_method_type": "send money",
"customer_identifier": 1234,
"description": "Invoice payment",
"third_party_reference_1": "<string>",
"third_party_reference_2": "<string>",
"sub_merchant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_third_party_reference_1_unique": True,
"is_third_party_reference_2_unique": True,
"mtn": [{ "phone_number": "254647647649" }],
"Orange": [{ "phone_number": "254647647649" }],
"Vodacom": [{ "phone_number": "254647647649" }],
"Airtel": [{ "phone_number": "254647647649" }],
"at": [{ "phone_number": "254647647649" }],
"Vodafone": [{ "phone_number": "254647647649" }],
"tnm": [{ "phone_number": "254647647649" }],
"Zamtel": [{ "phone_number": "254647647649" }],
"Halotel": [{ "phone_number": "254647647649" }],
"Tigo": [{ "phone_number": "254647647649" }],
"Free": [{ "phone_number": "254647647649" }],
"sendmoney": [{ "phone_number": "254647647649" }],
"paybill": [
{
"paybill_number": "123456",
"account_number": "123456789"
}
],
"tillnumber": [{ "till_number": "123456" }],
"pesalink": [
{
"bank_name": "ABC",
"bank_code": "00",
"branch_name": "ABC",
"account_name": "ABC",
"account_number": "123456789"
}
],
"bank": [
{
"bank_name": "First Bank of Nigeria",
"bank_code": "011",
"branch_name": "Victoria Island",
"account_name": "John Doe",
"account_number": "0123456789"
}
],
"sender_firstname": "John",
"sender_lastname": "Doe",
"sender_phone_number": "237600000000"
},
"salt": "justrandomstring",
"sender": "John.co",
"timestamp": 1709363033,
"signature": "2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
client_id: 'K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr',
params: {
amount: 1000,
currency: 'KES',
payment_reference: 'TRANS-123456789',
first_name: 'John',
last_name: 'Doe',
mobile: '254647647649',
email: 'john@doe.com',
country_id: '1',
city: 'Nairobi',
postal_code: '001001',
line1: '123 Main St',
client_callback_url: 'https://your-domain.com/niobi/result',
payment_method_type: 'send money',
customer_identifier: 1234,
description: 'Invoice payment',
third_party_reference_1: '<string>',
third_party_reference_2: '<string>',
sub_merchant_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
is_third_party_reference_1_unique: true,
is_third_party_reference_2_unique: true,
mtn: [{phone_number: '254647647649'}],
Orange: [{phone_number: '254647647649'}],
Vodacom: [{phone_number: '254647647649'}],
Airtel: [{phone_number: '254647647649'}],
at: [{phone_number: '254647647649'}],
Vodafone: [{phone_number: '254647647649'}],
tnm: [{phone_number: '254647647649'}],
Zamtel: [{phone_number: '254647647649'}],
Halotel: [{phone_number: '254647647649'}],
Tigo: [{phone_number: '254647647649'}],
Free: [{phone_number: '254647647649'}],
sendmoney: [{phone_number: '254647647649'}],
paybill: [{paybill_number: '123456', account_number: '123456789'}],
tillnumber: [{till_number: '123456'}],
pesalink: [
{
bank_name: 'ABC',
bank_code: '00',
branch_name: 'ABC',
account_name: 'ABC',
account_number: '123456789'
}
],
bank: [
{
bank_name: 'First Bank of Nigeria',
bank_code: '011',
branch_name: 'Victoria Island',
account_name: 'John Doe',
account_number: '0123456789'
}
],
sender_firstname: 'John',
sender_lastname: 'Doe',
sender_phone_number: '237600000000'
},
salt: 'justrandomstring',
sender: 'John.co',
timestamp: 1709363033,
signature: '2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807'
})
};
fetch('https://sandbox.users.niobi.co/api/v4/niobi-unified-payments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.users.niobi.co/api/v4/niobi-unified-payments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'client_id' => 'K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr',
'params' => [
'amount' => 1000,
'currency' => 'KES',
'payment_reference' => 'TRANS-123456789',
'first_name' => 'John',
'last_name' => 'Doe',
'mobile' => '254647647649',
'email' => 'john@doe.com',
'country_id' => '1',
'city' => 'Nairobi',
'postal_code' => '001001',
'line1' => '123 Main St',
'client_callback_url' => 'https://your-domain.com/niobi/result',
'payment_method_type' => 'send money',
'customer_identifier' => 1234,
'description' => 'Invoice payment',
'third_party_reference_1' => '<string>',
'third_party_reference_2' => '<string>',
'sub_merchant_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'is_third_party_reference_1_unique' => true,
'is_third_party_reference_2_unique' => true,
'mtn' => [
[
'phone_number' => '254647647649'
]
],
'Orange' => [
[
'phone_number' => '254647647649'
]
],
'Vodacom' => [
[
'phone_number' => '254647647649'
]
],
'Airtel' => [
[
'phone_number' => '254647647649'
]
],
'at' => [
[
'phone_number' => '254647647649'
]
],
'Vodafone' => [
[
'phone_number' => '254647647649'
]
],
'tnm' => [
[
'phone_number' => '254647647649'
]
],
'Zamtel' => [
[
'phone_number' => '254647647649'
]
],
'Halotel' => [
[
'phone_number' => '254647647649'
]
],
'Tigo' => [
[
'phone_number' => '254647647649'
]
],
'Free' => [
[
'phone_number' => '254647647649'
]
],
'sendmoney' => [
[
'phone_number' => '254647647649'
]
],
'paybill' => [
[
'paybill_number' => '123456',
'account_number' => '123456789'
]
],
'tillnumber' => [
[
'till_number' => '123456'
]
],
'pesalink' => [
[
'bank_name' => 'ABC',
'bank_code' => '00',
'branch_name' => 'ABC',
'account_name' => 'ABC',
'account_number' => '123456789'
]
],
'bank' => [
[
'bank_name' => 'First Bank of Nigeria',
'bank_code' => '011',
'branch_name' => 'Victoria Island',
'account_name' => 'John Doe',
'account_number' => '0123456789'
]
],
'sender_firstname' => 'John',
'sender_lastname' => 'Doe',
'sender_phone_number' => '237600000000'
],
'salt' => 'justrandomstring',
'sender' => 'John.co',
'timestamp' => 1709363033,
'signature' => '2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.users.niobi.co/api/v4/niobi-unified-payments"
payload := strings.NewReader("{\n \"client_id\": \"K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr\",\n \"params\": {\n \"amount\": 1000,\n \"currency\": \"KES\",\n \"payment_reference\": \"TRANS-123456789\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"mobile\": \"254647647649\",\n \"email\": \"john@doe.com\",\n \"country_id\": \"1\",\n \"city\": \"Nairobi\",\n \"postal_code\": \"001001\",\n \"line1\": \"123 Main St\",\n \"client_callback_url\": \"https://your-domain.com/niobi/result\",\n \"payment_method_type\": \"send money\",\n \"customer_identifier\": 1234,\n \"description\": \"Invoice payment\",\n \"third_party_reference_1\": \"<string>\",\n \"third_party_reference_2\": \"<string>\",\n \"sub_merchant_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"is_third_party_reference_1_unique\": true,\n \"is_third_party_reference_2_unique\": true,\n \"mtn\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Orange\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Vodacom\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Airtel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"at\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Vodafone\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"tnm\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Zamtel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Halotel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Tigo\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Free\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"sendmoney\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"paybill\": [\n {\n \"paybill_number\": \"123456\",\n \"account_number\": \"123456789\"\n }\n ],\n \"tillnumber\": [\n {\n \"till_number\": \"123456\"\n }\n ],\n \"pesalink\": [\n {\n \"bank_name\": \"ABC\",\n \"bank_code\": \"00\",\n \"branch_name\": \"ABC\",\n \"account_name\": \"ABC\",\n \"account_number\": \"123456789\"\n }\n ],\n \"bank\": [\n {\n \"bank_name\": \"First Bank of Nigeria\",\n \"bank_code\": \"011\",\n \"branch_name\": \"Victoria Island\",\n \"account_name\": \"John Doe\",\n \"account_number\": \"0123456789\"\n }\n ],\n \"sender_firstname\": \"John\",\n \"sender_lastname\": \"Doe\",\n \"sender_phone_number\": \"237600000000\"\n },\n \"salt\": \"justrandomstring\",\n \"sender\": \"John.co\",\n \"timestamp\": 1709363033,\n \"signature\": \"2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.users.niobi.co/api/v4/niobi-unified-payments")
.header("Content-Type", "application/json")
.body("{\n \"client_id\": \"K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr\",\n \"params\": {\n \"amount\": 1000,\n \"currency\": \"KES\",\n \"payment_reference\": \"TRANS-123456789\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"mobile\": \"254647647649\",\n \"email\": \"john@doe.com\",\n \"country_id\": \"1\",\n \"city\": \"Nairobi\",\n \"postal_code\": \"001001\",\n \"line1\": \"123 Main St\",\n \"client_callback_url\": \"https://your-domain.com/niobi/result\",\n \"payment_method_type\": \"send money\",\n \"customer_identifier\": 1234,\n \"description\": \"Invoice payment\",\n \"third_party_reference_1\": \"<string>\",\n \"third_party_reference_2\": \"<string>\",\n \"sub_merchant_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"is_third_party_reference_1_unique\": true,\n \"is_third_party_reference_2_unique\": true,\n \"mtn\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Orange\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Vodacom\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Airtel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"at\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Vodafone\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"tnm\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Zamtel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Halotel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Tigo\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Free\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"sendmoney\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"paybill\": [\n {\n \"paybill_number\": \"123456\",\n \"account_number\": \"123456789\"\n }\n ],\n \"tillnumber\": [\n {\n \"till_number\": \"123456\"\n }\n ],\n \"pesalink\": [\n {\n \"bank_name\": \"ABC\",\n \"bank_code\": \"00\",\n \"branch_name\": \"ABC\",\n \"account_name\": \"ABC\",\n \"account_number\": \"123456789\"\n }\n ],\n \"bank\": [\n {\n \"bank_name\": \"First Bank of Nigeria\",\n \"bank_code\": \"011\",\n \"branch_name\": \"Victoria Island\",\n \"account_name\": \"John Doe\",\n \"account_number\": \"0123456789\"\n }\n ],\n \"sender_firstname\": \"John\",\n \"sender_lastname\": \"Doe\",\n \"sender_phone_number\": \"237600000000\"\n },\n \"salt\": \"justrandomstring\",\n \"sender\": \"John.co\",\n \"timestamp\": 1709363033,\n \"signature\": \"2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.users.niobi.co/api/v4/niobi-unified-payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"client_id\": \"K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr\",\n \"params\": {\n \"amount\": 1000,\n \"currency\": \"KES\",\n \"payment_reference\": \"TRANS-123456789\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"mobile\": \"254647647649\",\n \"email\": \"john@doe.com\",\n \"country_id\": \"1\",\n \"city\": \"Nairobi\",\n \"postal_code\": \"001001\",\n \"line1\": \"123 Main St\",\n \"client_callback_url\": \"https://your-domain.com/niobi/result\",\n \"payment_method_type\": \"send money\",\n \"customer_identifier\": 1234,\n \"description\": \"Invoice payment\",\n \"third_party_reference_1\": \"<string>\",\n \"third_party_reference_2\": \"<string>\",\n \"sub_merchant_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"is_third_party_reference_1_unique\": true,\n \"is_third_party_reference_2_unique\": true,\n \"mtn\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Orange\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Vodacom\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Airtel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"at\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Vodafone\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"tnm\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Zamtel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Halotel\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Tigo\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"Free\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"sendmoney\": [\n {\n \"phone_number\": \"254647647649\"\n }\n ],\n \"paybill\": [\n {\n \"paybill_number\": \"123456\",\n \"account_number\": \"123456789\"\n }\n ],\n \"tillnumber\": [\n {\n \"till_number\": \"123456\"\n }\n ],\n \"pesalink\": [\n {\n \"bank_name\": \"ABC\",\n \"bank_code\": \"00\",\n \"branch_name\": \"ABC\",\n \"account_name\": \"ABC\",\n \"account_number\": \"123456789\"\n }\n ],\n \"bank\": [\n {\n \"bank_name\": \"First Bank of Nigeria\",\n \"bank_code\": \"011\",\n \"branch_name\": \"Victoria Island\",\n \"account_name\": \"John Doe\",\n \"account_number\": \"0123456789\"\n }\n ],\n \"sender_firstname\": \"John\",\n \"sender_lastname\": \"Doe\",\n \"sender_phone_number\": \"237600000000\"\n },\n \"salt\": \"justrandomstring\",\n \"sender\": \"John.co\",\n \"timestamp\": 1709363033,\n \"signature\": \"2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Payment process initiated successfully.",
"data": {
"reference": "NIO-PAY-001",
"type": "send money",
"total": 1000,
"creation_date": "2026-08-29T12:00:00Z",
"execution_date": "2026-08-29T12:00:00Z",
"from": "John Doe",
"to": "254161166649",
"invoice_date": "2026-08-29T12:00:00Z",
"invoice_amount": 1000,
"payment_step": 1
},
"status_code": "000000"
}{
"success": false,
"message": "Country was not found or Niobi user not found or Payment process initiation failed."
}{
"success": false,
"message": "Entity integration record not found or Client id not matched or Request was not verified."
}{
"success": false,
"message": "User not found."
}Integration Quick Reference
| Requirement | Standard | Rule / Action |
|---|---|---|
| Settlement Rule | payment_step: 2 only | Funds remain in transit during payment_step: 1. Update your ledger and notify recipients only upon receiving payment_step: 2 with status: "success" (statusCode: "000000"). |
| Signatures | Fresh per request | Compute a fresh SHA-256 signature for every API call. Signatures cannot be reused. See Signature Generation. |
| Wallet Balance | Available balance | Always check available_balance (not total balance) before disbursing. See Payout Best Practices. |
| Amount Format | Whole integers | Pass whole numbers in major currency units (for example, 1000 KES). No decimals allowed. |
| Idempotency | Unique payout ref | Pass a distinct payment_reference / third_party_reference_1 per payout to prevent duplicate disbursements. See the Idempotency Guide. |
| Delayed Webhook | Query status | If a callback is delayed, query the Get Transaction Status API before re-attempting or failing a transfer. |
| Sandbox Testing | Mapped test MSISDNs | Use designated Sandbox Test Numbers mapped to outcomes (success, invalid wallet, timeout) instead of real phone numbers. |
| Production Prep | Technical checklist | Fund your merchant payout wallet, verify public HTTPS callback URL, and review corridor limits in the Go-Live Checklist. |
List of Supported Countries
| Country Id | Country | Code | Currency | Payment Methods | Status |
|---|---|---|---|---|---|
| 1 | Kenya | 254 | KES | send money, pay bill, till number, pesalink, Airtel | Active |
| 2 | Benin | 229 | XOF | Mtn, Moov | Active |
| 3 | Cote D’Ivoire | 225 | XOF | Mtn,Orange, Moov, Wave | Active |
| 4 | Cameroon | 237 | XAF | Mtn, Orange | Active |
| 5 | DRC | 243 | CDF | Airtel, Orange, Vodacom | Active |
| 8 | Rwanda | 250 | RWF | Mtn, Airtel | Active |
| 9 | Senegal | 221 | XOF | Orange, Free, Wave | Active |
| 10 | Tanzania | 255 | TZS | Airtel, Halotel, Tigo, Vodacom | Active |
| 11 | Uganda | 256 | UGX | Mtn, Airtel | Active |
| 12 | Zambia | 260 | ZMW | Mtn, Zamtel, Airtel | Active |
| 13 | Sierra Leone | 232 | SLE | Orange | Active |
| 15 | South Africa | 27 | ZAR | bank | Active |
| 16 | Ghana | 233 | GHS | Mtn, At(AirtelTigo), Vodafone | Active |
| 17 | Nigeria | 234 | NGN | bank | Active |
| 19 | Burkina Faso | 226 | XOF | Orange, Moov | Active |
| 18 | Mali | 223 | XOF | Orange, Moov | Active |
| 20 | Togo | 228 | XOF | moov, tmoney | Active |
| Country | Code | Currency | Payment Methods |
|---|---|---|---|
| Ethiopia | 251 | ETB | teleBirr, mBirr |
| Malawi | 265 | MWK | Airtel, tnm |
| Egypt | 20 | EGP | Vodafone, Orange |
| Mozambique | 258 | MZN | Vodacom, Movitel, Tmcel |
List of Supported Kenyan Banks
Supported Kenyan Banks
Supported Kenyan Banks
| bank_name | niobi_bank_code |
|---|---|
| Kenya Commercial Bank | 1 |
| Standard Chartered | 2 |
| Absa Bank Kenya | 3 |
| Ncba Bank Kenya | 7 |
| Prime Bank | 10 |
| Cooperative Bank | 11 |
| National Bank of Kenya | 12 |
| Citibank N.A Kenya | 16 |
| Middle East Bank Kenya | 18 |
| Bank of Africa Kenya | 19 |
| Credit Bank Limited | 25 |
| CFC Stanbic Kenya | 31 |
| Paramount Bank | 50 |
| Jamii Bora Bank | 51 |
| Guaranty Trust Bank | 53 |
| Guardian Bank | 55 |
| I&M Bank | 57 |
| Diamond Trust Bank | 63 |
| Sidian Bank | 66 |
| Equity Bank Kenya | 68 |
| Family Bank Limited | 70 |
| Gulf African Bank | 72 |
| First Community Bank | 74 |
| Kenya Women’s Finance Trust | 78 |
| Choice Microfinance Bank | 82 |
List of Supported Nigerian Banks
Supported Nigerian Banks
Supported Nigerian Banks
| bank_name | bank_code |
|---|---|
| AL-Barakah Microfinance Bank | 090133 |
| 9 Payment Service Bank | 120001 |
| AB Microfinance Bank | 090270 |
| Abbey Mortgage Bank | 070010 |
| Above Only Microfinance Bank | 090260 |
| ABU Microfinance Bank | 090197 |
| Access Bank Nigeria | 044 |
| Access Bank Plc (Diamond) | 063 |
| ACCESS MOBILE | 323 |
| Access Money | 927 |
| Access Yello & Beta | 100052 |
| Accion Microfinance Bank | 090134 |
| Addosser Microfinance Bank | 090160 |
| Adeyemi College Staff Microfinance Bank | 090268 |
| AG Mortgage Bank | 100028 |
| Al-Hayat Microfinance Bank | 090277 |
| Alekun Microfinance Bank | 090259 |
| Alert MFB | 090297 |
| Allworkers Microfinance Bank | 090131 |
| Alpha Kapital Microfinance Bank | 090169 |
| AMJU Unique Microfinance Bank | 090180 |
| AMML Micro-finance Bank | 914 |
| Apeks Microfinance Bank | 090143 |
| Arise MFB | 090282 |
| Aso Savings and Loans | 401 |
| Astrapolaris Microfinance Bank | 090172 |
| Auchi Microfinance Bank | 090264 |
| Baines Credit Microfinance Bank | 090188 |
| Balogun Gambari MFB | 090326 |
| Bayero MICROFINANCE BANK | 090316 |
| BC Kash Microfinance Bank | 090127 |
| BIPC MICROFINANCE BANK | 090336 |
| BOCTrust Micro-finance Bank | 952 |
| Bosak Microfinance Bank | 090176 |
| Bowen Microfinance Bank | 090148 |
| Brent Mortgage Bank | 070015 |
| BRETHREN MICROFINANCE BANK | 090293 |
| BRIDGEWAY MICROFINANCE BANK | 090393 |
| Brightway MFB | 090308 |
| Cellulant | 919 |
| CEMCS Microfinance Bank | 090154 |
| Chams Mobile | 929 |
| Chikum Microfinance Bank | 090141 |
| CIT Microfinance Bank | 090144 |
| Citi Bank | 023 |
| Consumer Microfinance Bank | 090130 |
| Contec Global Infotech Limited (NowNow) | 100032 |
| Coronation Merchant Bank | 559 |
| Covenant Micro-finance Bank | 949 |
| Credit Afrique Microfinance Bank | 090159 |
| Daylight Microfinance Bank | 090167 |
| e-Barcs Microfinance Bank | 090156 |
| Eagle Flight MFB | 090294 |
| Eartholeum | 935 |
| Ecobank | 050 |
| EcoBank Express Account | 922 |
| Ecobank Mobile | 307 |
| Edfin MFB | 090310 |
| Ekondo MFB | 090097 |
| Emeralds Microfinance Bank | 090273 |
| Empire Trust Micro-finance Bank | 913 |
| Enterprise Bank | 084 |
| Esan Microfinance Bank | 090189 |
| Eso-E Microfinance Bank | 090166 |
| eTRANZACT | 920 |
| Evangel MFB | 090304 |
| Evergreen MICROFINANCE BANK | 090332 |
| Eyowo MFB | 090328 |
| FAST Microfinance Bank | 090179 |
| FBN MOBILE | 309 |
| FBN Mortgages Limited | 090107 |
| FBNQuest Merchant Bank | 911 |
| FCMB Easy Account | 100031 |
| FCMB Plc | 214 |
| FCT MFB | 090290 |
| FEDERAL UNIVERSITY DUTSE MICROFINANCE BANK | 090318 |
| FederalPoly NasarawaMFB | 090298 |
| FETS | 915 |
| FFS Microfinance Bank | 090153 |
| Fidelity Bank | 070 |
| Fidelity Mobile | 933 |
| Fidfund Microfinance Bank | 090126 |
| FINATRUST MICROFINANCE BANK | 090111 |
| Firmus MFB | 090366 |
| First Bank of Nigeria | 011 |
| First Generation Mortgage Bank | 070014 |
| First Multiple MFB | 090163 |
| First Option MFB | 090285 |
| First Royal Microfinance Bank | 090164 |
| First Trust Mortgage Bank Plc | 910 |
| FirstMonie Wallet | 928 |
| FlutterWave Technology Solutions Limited | 110002 |
| Fortis Micro-finance Bank | 948 |
| Fortis Mobile | 930 |
| FSDH Merchant Bank | 601 |
| Fullrange Microfinance Bank | 090145 |
| Futo Microfinance Bank | 090158 |
| Gashua Microfinance Bank | 090168 |
| Gateway Mortgage Bank | 070009 |
| Globus Bank | 103 |
| Glory MFB | 090278 |
| GoMoney | 100022 |
| GOODNEWS MICROFINANCE BANK | 090495 |
| Gowans Microfinance Bank | 090122 |
| GreenBank Microfinance Bank | 090178 |
| Greenville Microfinance Bank | 090269 |
| Greenwich Merchant Bank | 060004 |
| Grooming Microfinance Bank | 090195 |
| GT MOBILE | 923 |
| GTBank Mobile Money | 315 |
| GTBank Plc | 058 |
| Hackman Microfinance Bank | 090147 |
| Haggai Mortgage Bank Limited | 070017 |
| Hala MFB | 090291 |
| Hasal Micro-finance Bank | 958 |
| Hedonmark | 931 |
| Heritage Bank | 030 |
| IBILE Microfinance Bank | 090118 |
| IKENNE MFB | 090324 |
| Ikire MFB | 090279 |
| Imo State Microfinance Bank | 090258 |
| Imperial Homes Mortgage Bank | 938 |
| Infinity Microfinance Bank | 090157 |
| Infinity Trust Mortgage Bank | 070016 |
| Innovectives Kesh | 100029 |
| Intellfin | 941 |
| IRL Microfinance Bank | 090149 |
| JAIZ Bank | 301 |
| Jubliee Life | 906 |
| Kadick Integration Limited | 110008 |
| Kadpoly MICROFINANCE BANK | 090320 |
| KCMB Microfinance Bank | 090191 |
| Kegow | 100015 |
| Keystone Bank | 082 |
| Kontagora MFB | 090299 |
| Kuda Micro-finance Bank | 50211 |
| La Fayette Microfinance Bank | 090155 |
| Lagos Building Investment Company | 070012 |
| Lapo Microfinance Bank | 090177 |
| Lavender Microfinance Bank | 090271 |
| Letshego MFB | 090420 |
| Lovonus Microfinance Bank | 090265 |
| M36 | 100035 |
| Mainland MICROFINANCE BANK | 090323 |
| Mainstreet Micro-finance Bank | 014 |
| Malachy Microfinance Bank | 090174 |
| Manny Microfinance bank | 090383 |
| MAUTECH Microfinance Bank | 090423 |
| Mayfair MFB | 090321 |
| MayFresh Mortgage Bank | 070019 |
| Megapraise Microfinance Bank | 090280 |
| Meridian MFB | 090275 |
| Microcred Microfinance Bank | 090136 |
| Midland Microfinance Bank | 090192 |
| Mint-Finex Micro-finance Bank | 50304 |
| Mkudi | 100011 |
| Money Trust Micro-finance Bank | 963 |
| MoneyBox | 934 |
| Mutual Benefits Microfinance Bank | 090190 |
| Mutual Trust Microfinance Bank | 090151 |
| Nagarta Microfinance Bank | 090152 |
| Navy Microfinance Bank | 090263 |
| Ndiorah Microfinance Bank | 090128 |
| New Dawn Microfinance Bank | 090205 |
| New Prudential Bank | 090108 |
| NIP Virtual Bank | 999999 |
| NIRSAL Microfinance Bank | 090194 |
| Nnew women MFB | 090283 |
| Nova Merchant Bank | 637 |
| NPF Micro-finance Bank | 947 |
| Oche MFB | 090333 |
| Ohafia Microfinance Bank | 090119 |
| Okpoga Microfinance Bank | 090161 |
| Olabisi Onabanjo University Microfinance Bank | 090272 |
| Omiye MFB | 090295 |
| Omoluabi Mortgage Bank Plc | 950 |
| One Finance | 940 |
| PAGA | 916 |
| Page Micro-finance Bank | 951 |
| PALMPAY | 100033 |
| PARALLEX BANK | 526 |
| Parkway | 311 |
| ParkWay-ReadyCash | 917 |
| Parralex Microfinance bank | 090004 |
| PatrickGold Microfinance Bank | 090317 |
| PayAttitude Online | 943 |
| PAYCOM | 305 |
| PecanTrust Microfinance Bank | 090137 |
| Pennywise Microfinance Bank | 090196 |
| Personal Trust Microfinance Bank | 090135 |
| Petra Microfinance Bank | 090165 |
| Pillar MFB | 090289 |
| Platinum Mortgage Bank | 070013 |
| Polaris Bank | 076 |
| Polyuwanna MFB | 090296 |
| Prestige Microfinance bank | 090274 |
| Providus Bank | 101 |
| Purplemoney MFB | 090303 |
| Quickfund Microfinance Bank | 090261 |
| Rahama MFB | 090170 |
| Rand Merchant Bank | 502 |
| Refuge Mortgage Bank | 070011 |
| Regent Micro-finance Bank | 955 |
| Reliance Microfinance Bank | 090173 |
| RenMoney Microfinance Bank | 090198 |
| Rephidim MICROFINANCE BANK | 090322 |
| Richway Microfinance Bank | 090132 |
| Royal Exchange Microfinance Bank | 090138 |
| Rubies Micro-finance Bank | 125 |
| Safe Haven MFB | 090286 |
| SafeTrust | 909 |
| Sagamu Micro-finance Bank | 966 |
| Seed Capital Micro-finance Bank | 609 |
| Sparkle | 090325 |
| Stanbic IBTC @ease Wallet | 921 |
| Stanbic IBTC Bank | 221 |
| Stanbic Mobile | 304 |
| Standard Chartered Bank | 068 |
| Stanford Microfinance Bak | 090162 |
| Stellas Microfinance Bank | 090262 |
| Sterling Bank | 232 |
| Sterling Mobile | 936 |
| Sulsap MFB | 090305 |
| Suntrust Bank Nigeria Limited | 100 |
| TAGPAY | 937 |
| Taj Bank | 302 |
| TCF Micro-finance Bank | 567 |
| Teasy MOBILE | 924 |
| Titan Trust Bank | 102 |
| Trident Microfinance Bank | 090146 |
| Trust MFB | 090327 |
| Trustbond Mortgage Bank | 090005 |
| Trustfund Microfinance Bank | 090276 |
| U AND C MFB | 090315 |
| UNAAB MFB | 090331 |
| Uniben Microfinance Bank | 090266 |
| Unical Microfinance Bank | 090193 |
| Union Bank | 032 |
| United Bank for Africa | 033 |
| Unity Bank | 215 |
| UNN MFB | 090251 |
| Verite Microfinance Bank | 090123 |
| VFD Micro-finance Bank | 566 |
| Virtue Microfinance Bank | 090150 |
| Visa Microfinance Bank | 090139 |
| VT Networks | 926 |
| Wema Bank | 035 |
| WetLand Micro-finance Bank | 954 |
| Xslnce Microfinance Bank | 090124 |
| Yes Microfinance Bank | 090142 |
| Zenith Bank Plc | 057 |
| ZENITH Mobile | 322 |
| ZINTERNET - KONGAPAY | 939 |
Special Disbursement Flows
Some payout corridors require custom nested payload shapes (such as Kenya Paybill, Till Number, and PesaLink) or additional mandatory compliance details (such as Cameroon CEMAC sender identity). For complete architectural walkthroughs and country rules, see:- Payout Methods Guide: Step-by-step technical guides for all disbursement channels.
- Country Guides Index: Country-specific payout corridors, network rules, and test numbers.
- Kenya Paybill
- Kenya Till Number
- Kenya PesaLink
- Bank Transfer (e.g. Nigeria / South Africa)
- Cameroon (CEMAC Compliance)
payment_method_type: "pay bill"Disburse directly to an M-Pesa Paybill business number with an associated account reference.Documentation & Guides:{
"client_id": "YOUR_CLIENT_ID",
"sender": "YOUR_INTEGRATION_NAME",
"timestamp": 1724835600,
"salt": "random_salt_12345",
"signature": "a1b2c3d4e5f60718293a4b5c6d7e8f90123456789abcdef0123456789abcdef0",
"params": {
"amount": 500,
"currency": "KES",
"country_id": 1,
"first_name": "John",
"last_name": "Doe",
"payment_method_type": "pay bill",
"payment_reference": "YOUR-PAYOUT-REF",
"client_callback_url": "https://yourdomain.com/niobi/payout-callback",
"third_party_reference_1": "TX-KES-PAYBILL-01",
"paybill": [
{
"paybill_number": "333111",
"account_number": "00000000"
}
]
}
}
payment_method_type: "till number"Disburse directly to an M-Pesa Buy Goods till merchant.Documentation & Guides:{
"client_id": "YOUR_CLIENT_ID",
"sender": "YOUR_INTEGRATION_NAME",
"timestamp": 1724835600,
"salt": "random_salt_12345",
"signature": "a1b2c3d4e5f60718293a4b5c6d7e8f90123456789abcdef0123456789abcdef0",
"params": {
"amount": 500,
"currency": "KES",
"country_id": 1,
"first_name": "John",
"last_name": "Doe",
"payment_method_type": "till number",
"payment_reference": "YOUR-PAYOUT-REF",
"client_callback_url": "https://yourdomain.com/niobi/payout-callback",
"third_party_reference_1": "TX-KES-TILL-01",
"tillnumber": [
{
"till_number": "222750"
}
]
}
}
payment_method_type: "pesalink"Real-time bank transfer to any commercial bank in Kenya. See Supported Kenyan Banks above for bank_code values.Documentation & Guides:{
"client_id": "YOUR_CLIENT_ID",
"params": {
"amount": 5000,
"client_callback_url": "https://example.com/callback",
"country_id": 1,
"currency": "KES",
"first_name": "John",
"last_name": "Doe",
"payment_method_type": "pesalink",
"payment_reference": "YOUR-PAYOUT-REF",
"third_party_reference_1": "TX-KES-PESA-2002",
"pesalink": [
{
"bank_name": "Co-operative Bank",
"bank_code": "11",
"branch_name": "Nairobi",
"account_name": "John Doe",
"account_number": "123223837"
}
]
},
"salt": "random_salt_12345",
"sender": "YOUR_INTEGRATION_NAME",
"timestamp": 1724835600,
"signature": "a1b2c3d4e5f60718293a4b5c6d7e8f90123456789abcdef0123456789abcdef0"
}
payment_method_type: "bank"Direct bank disbursements to commercial and microfinance banks (e.g. Nigeria NUBAN, South Africa RTC/EFT, or International SWIFT/SEPA/Wire).Documentation & Guides:- Payout Methods: Nigeria NGN Bank Payouts
- Nigeria Country Guide: Bank Payouts
- South Africa Country Guide: Bank Payouts
{
"client_id": "YOUR_CLIENT_ID",
"sender": "YOUR_INTEGRATION_NAME",
"timestamp": 1724835600,
"salt": "random_salt_12345",
"signature": "a1b2c3d4e5f60718293a4b5c6d7e8f90123456789abcdef0123456789abcdef0",
"params": {
"amount": 5000,
"currency": "NGN",
"country_id": 17,
"first_name": "John",
"last_name": "Doe",
"payment_method_type": "bank",
"payment_reference": "YOUR-PAYOUT-REF",
"client_callback_url": "https://yourdomain.com/niobi/payout-callback",
"third_party_reference_1": "TX-NGN-DISB-1001",
"bank": [
{
"bank_name": "First Bank of Nigeria",
"bank_code": "011",
"branch_name": "Victoria Island",
"account_name": "John Doe",
"account_number": "0123456789"
}
]
}
}
country_id: 4, currency XAF) require the identification details of the originating sender: sender_firstname, sender_lastname, and sender_phone_number (all required).Documentation & Guides:{
"client_id": "YOUR_CLIENT_ID",
"sender": "YOUR_INTEGRATION_NAME",
"timestamp": 1724835600,
"salt": "random_salt_12345",
"signature": "d4e5f6a7b8c90123456789abcdef0123456789abcdef0123456789abcdef01",
"params": {
"amount": 10000,
"currency": "XAF",
"country_id": 4,
"first_name": "Jean",
"last_name": "Dupont",
"mobile": "237791189789",
"email": "jean.dupont@example.com",
"city": "Yaounde",
"sender_firstname": "John",
"sender_lastname": "Doe",
"sender_phone_number": "237690000000",
"payment_method_type": "Orange",
"Orange": [
{ "phone_number": "237791189789" }
],
"client_callback_url": "https://yourdomain.com/niobi/payout-callback",
"payment_reference": "CAM-DISB-3001"
}
}
Body
Signed request envelope. All root fields except params are authentication fields.
Your Client ID from the Niobi Dashboard under Workspace > Integrations.
"K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr"
Show child attributes
Show child attributes
A unique random string you generate per request. Must be the same value used when generating the signature.
"justrandomstring"
The exact title of your integration as registered in the Dashboard. Case-sensitive.
"John.co"
Unix timestamp in seconds at the time of signing. Must match the value used to generate the signature.
1709363033
SHA-256 signature computed from this payload. Generate via the Signature endpoint or your own backend.
"2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807"
Response
Payment process initiated successfully.

