RotsiDocs
  • 😃Welcome to ROTSI API Documentation
  • Reference
    • API Reference
      • STK Push
      • B2C Disbursements
      • Paybill
      • BuyGoods
      • Bank Payments
        • Bank Code List
      • Bulk SMS
      • Thank you Page
Powered by GitBook
On this page
  1. Reference
  2. API Reference

B2C Disbursements

B2C API is an API used to make payments from a Business to Customers (Pay Outs), also known as Bulk Disbursements. B2C API is used in several scenarios by businesses that require to either make Salary

PreviousSTK PushNextPaybill

Last updated 1 year ago

Creating a B2C Request.

For this to be successful, ensure that you have a minimum of 10 KSH in your account. Also ensure that the amount is equal or greater than 10 Kenyan Shillings.

Endpoint for the API request.

POST

Make an B2C Disbursement to your customers, suppliers Mpesa or Non-Mpesa Registered phone number.

Request Body

Name
Type
Description

username*

string

The username of the account, as per the Rotsi Dashboard.

amount*

Integer

The amount of the transaction

phone*

string

The phone number to receive the money. USe the 254 format. Eg. 254722000000

const axios = require('axios');

const data = {
  amount: 1,
  phone: "254722000000",
  username: "username"
};

const config = {
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'secret_key'
  }
};

axios.post('https://api.rotsi.co.ke/payments/b2c/v1', data, config)
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });
import requests

url = "https://api.rotsi.co.ke/payments/b2c/v1"
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'secret_key'
}
data = {
    "amount": 1,
    "phone": "254722000000",
    "username": "username"
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://api.rotsi.co.ke/payments/b2c/v1")
request = Net::HTTP::Post.new(uri)
request.content_type = "application/json"
request["Authorization"] = "secret_key"
request.body = JSON.dump({
  "amount" => 1,
  "phone" => "254722000000",
  "username" => "username"
})

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end

puts response.body
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

public class ApiRequest {
    public static void main(String[] args) {
        try {
            URL url = new URL("https://api.rotsi.co.ke/payments/b2c/v1");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");
            connection.setRequestProperty("Content-Type", "application/json");
            connection.setRequestProperty("Authorization", "secret_key");
            connection.setDoOutput(true);

            String jsonInputString = "{\"amount\": 1, \"phone\": \"254722000000\", \"username\": \"username\"}";
            
            try(OutputStream os = connection.getOutputStream()) {
                byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
                os.write(input, 0, input.length);           
            }

            int code = connection.getResponseCode();
            System.out.println("Response Code: " + code);
            // Read response if needed

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
<?php

$url = "https://api.rotsi.co.ke/payments/b2c/v1";
$data = array(
    "amount" => 10
    "username" => "username",
    "phone" => "254722000000"
);
$headers = array(
    'Content-Type: application/json',
    'Authorization: secret_key'
);

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
} else {
    echo $response;
}

curl_close($ch);

?>
curl -X POST \
  https://api.rotsi.co.ke/payments/b2c/v1 \
  -H 'Content-Type: application/json' \
  -H 'Authorization: secret_key' \
  -d '{
    "amount": 1,
    "phone": "254722000000",
    "username": "username"
}'
{
    "status": "Success",
    "Service": "RotsiB2C",
    "RotsiAPITransactionId": B2C719hcbjh2,
    "CustomerMessage": "The request is being processed"
}
{ 
"status": "Failed",
"Service": "RotsiB2C",
"message": "Payment request cancelled by the user",
"RotsiAPITransactionId": B2C719hcbjh2,
}
https://api.rotsi.co.ke/payments/b2c/v1