Deposit via mobile money
curl --request POST \
--url https://preview.kotanipay.com/api/v3/deposit/mobile-money \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_key": "customer-key-123",
"amount": 10,
"wallet_id": "5f9b2c7b9c9d6b0017b4e6b1",
"callback_url": "https://example.com",
"customer_redirect_url": "https://example.com/success",
"reference_id": "5f9b2c7b9c9d6b0017b4e6b1",
"currency": "USD"
}
'import requests
url = "https://preview.kotanipay.com/api/v3/deposit/mobile-money"
payload = {
"customer_key": "customer-key-123",
"amount": 10,
"wallet_id": "5f9b2c7b9c9d6b0017b4e6b1",
"callback_url": "https://example.com",
"customer_redirect_url": "https://example.com/success",
"reference_id": "5f9b2c7b9c9d6b0017b4e6b1",
"currency": "USD"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customer_key: 'customer-key-123',
amount: 10,
wallet_id: '5f9b2c7b9c9d6b0017b4e6b1',
callback_url: 'https://example.com',
customer_redirect_url: 'https://example.com/success',
reference_id: '5f9b2c7b9c9d6b0017b4e6b1',
currency: 'USD'
})
};
fetch('https://preview.kotanipay.com/api/v3/deposit/mobile-money', 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://preview.kotanipay.com/api/v3/deposit/mobile-money",
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([
'customer_key' => 'customer-key-123',
'amount' => 10,
'wallet_id' => '5f9b2c7b9c9d6b0017b4e6b1',
'callback_url' => 'https://example.com',
'customer_redirect_url' => 'https://example.com/success',
'reference_id' => '5f9b2c7b9c9d6b0017b4e6b1',
'currency' => 'USD'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://preview.kotanipay.com/api/v3/deposit/mobile-money"
payload := strings.NewReader("{\n \"customer_key\": \"customer-key-123\",\n \"amount\": 10,\n \"wallet_id\": \"5f9b2c7b9c9d6b0017b4e6b1\",\n \"callback_url\": \"https://example.com\",\n \"customer_redirect_url\": \"https://example.com/success\",\n \"reference_id\": \"5f9b2c7b9c9d6b0017b4e6b1\",\n \"currency\": \"USD\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://preview.kotanipay.com/api/v3/deposit/mobile-money")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_key\": \"customer-key-123\",\n \"amount\": 10,\n \"wallet_id\": \"5f9b2c7b9c9d6b0017b4e6b1\",\n \"callback_url\": \"https://example.com\",\n \"customer_redirect_url\": \"https://example.com/success\",\n \"reference_id\": \"5f9b2c7b9c9d6b0017b4e6b1\",\n \"currency\": \"USD\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://preview.kotanipay.com/api/v3/deposit/mobile-money")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_key\": \"customer-key-123\",\n \"amount\": 10,\n \"wallet_id\": \"5f9b2c7b9c9d6b0017b4e6b1\",\n \"callback_url\": \"https://example.com\",\n \"customer_redirect_url\": \"https://example.com/success\",\n \"reference_id\": \"5f9b2c7b9c9d6b0017b4e6b1\",\n \"currency\": \"USD\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Deposit has been successfully created.",
"data": {
"id": "<string>",
"message": "<string>",
"reference_id": "<string>",
"reference_number": 123,
"customer_key": "<string>",
"redirect_url": "<string>"
}
}{
"success": false,
"message": "Bad Request",
"data": {}
}{
"success": false,
"message": "Unauthorized",
"data": {}
}Mobile Money Deposits
Deposit via Mobile Money
An integrator’s customers can initiate a deposit from their respective mobile money wallets. An STK push will be sent to the customer and the respective amount will be deducted from their mobile money wallets and deposited into the integrator’s fiat wallet
POST
/
api
/
v3
/
deposit
/
mobile-money
Deposit via mobile money
curl --request POST \
--url https://preview.kotanipay.com/api/v3/deposit/mobile-money \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_key": "customer-key-123",
"amount": 10,
"wallet_id": "5f9b2c7b9c9d6b0017b4e6b1",
"callback_url": "https://example.com",
"customer_redirect_url": "https://example.com/success",
"reference_id": "5f9b2c7b9c9d6b0017b4e6b1",
"currency": "USD"
}
'import requests
url = "https://preview.kotanipay.com/api/v3/deposit/mobile-money"
payload = {
"customer_key": "customer-key-123",
"amount": 10,
"wallet_id": "5f9b2c7b9c9d6b0017b4e6b1",
"callback_url": "https://example.com",
"customer_redirect_url": "https://example.com/success",
"reference_id": "5f9b2c7b9c9d6b0017b4e6b1",
"currency": "USD"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customer_key: 'customer-key-123',
amount: 10,
wallet_id: '5f9b2c7b9c9d6b0017b4e6b1',
callback_url: 'https://example.com',
customer_redirect_url: 'https://example.com/success',
reference_id: '5f9b2c7b9c9d6b0017b4e6b1',
currency: 'USD'
})
};
fetch('https://preview.kotanipay.com/api/v3/deposit/mobile-money', 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://preview.kotanipay.com/api/v3/deposit/mobile-money",
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([
'customer_key' => 'customer-key-123',
'amount' => 10,
'wallet_id' => '5f9b2c7b9c9d6b0017b4e6b1',
'callback_url' => 'https://example.com',
'customer_redirect_url' => 'https://example.com/success',
'reference_id' => '5f9b2c7b9c9d6b0017b4e6b1',
'currency' => 'USD'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://preview.kotanipay.com/api/v3/deposit/mobile-money"
payload := strings.NewReader("{\n \"customer_key\": \"customer-key-123\",\n \"amount\": 10,\n \"wallet_id\": \"5f9b2c7b9c9d6b0017b4e6b1\",\n \"callback_url\": \"https://example.com\",\n \"customer_redirect_url\": \"https://example.com/success\",\n \"reference_id\": \"5f9b2c7b9c9d6b0017b4e6b1\",\n \"currency\": \"USD\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://preview.kotanipay.com/api/v3/deposit/mobile-money")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_key\": \"customer-key-123\",\n \"amount\": 10,\n \"wallet_id\": \"5f9b2c7b9c9d6b0017b4e6b1\",\n \"callback_url\": \"https://example.com\",\n \"customer_redirect_url\": \"https://example.com/success\",\n \"reference_id\": \"5f9b2c7b9c9d6b0017b4e6b1\",\n \"currency\": \"USD\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://preview.kotanipay.com/api/v3/deposit/mobile-money")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_key\": \"customer-key-123\",\n \"amount\": 10,\n \"wallet_id\": \"5f9b2c7b9c9d6b0017b4e6b1\",\n \"callback_url\": \"https://example.com\",\n \"customer_redirect_url\": \"https://example.com/success\",\n \"reference_id\": \"5f9b2c7b9c9d6b0017b4e6b1\",\n \"currency\": \"USD\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Deposit has been successfully created.",
"data": {
"id": "<string>",
"message": "<string>",
"reference_id": "<string>",
"reference_number": 123,
"customer_key": "<string>",
"redirect_url": "<string>"
}
}{
"success": false,
"message": "Bad Request",
"data": {}
}{
"success": false,
"message": "Unauthorized",
"data": {}
}An integrator’s customers can initiate a deposit from their respective mobile money wallets. An STK push will be sent to the customer and the respective amount will be deducted from their mobile money wallets and deposited into the integrator’s fiat wallet.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Customer key
Example:
"customer-key-123"
amount to deposit
Example:
10
deposit id
Example:
"5f9b2c7b9c9d6b0017b4e6b1"
callback url
Example:
"https://example.com"
customer redirect url
Example:
"https://example.com/success"
reference id
Example:
"5f9b2c7b9c9d6b0017b4e6b1"
Override transaction currency (e.g. USD for USD mobile money in Congo/Zambia). When provided and matches the wallet currency, phone-country currency validation is skipped.
Example:
"USD"