curl -X POST "https://api.onekhusa.com/sandbox/v1/merchants/accounts/add" \
--header "Authorization: Bearer your-jwt-token" \
--header "Content-Type: application/json" \
--header "Accept-Language: en" \
-d '{
"accountName": "AVIATION",
"currencyCode": "MWK",
"categoryCode": "8352",
"postalAddress": "SKYLINK PO Box 30245, Lilongwe, Malawi",
"collectionFeeRuleCode": "CM",
"disbursementFeeRuleCode": "CM",
"organisationId": "FYH0NTVW0DXK",
"levelNumber": 1,
"capturedBy": "admin@onekhusa.com"
}'import requests
url = "https://api.onekhusa.com/sandbox/v1/merchants/accounts/add"
payload = {
"accountName": "AVIATION",
"currencyCode": "MWK",
"categoryCode": "8352",
"postalAddress": "SKYLINK PO Box 30245, Lilongwe, Malawi",
"collectionFeeRuleCode": "CM",
"disbursementFeeRuleCode": "CM",
"organisationId": "FYH0NTVW0DXK",
"levelNumber": 1,
"capturedBy": "admin@onekhusa.com"
}
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({
accountName: 'AVIATION',
currencyCode: 'MWK',
categoryCode: '8352',
postalAddress: 'SKYLINK PO Box 30245, Lilongwe, Malawi',
collectionFeeRuleCode: 'CM',
disbursementFeeRuleCode: 'CM',
organisationId: 'FYH0NTVW0DXK',
levelNumber: 1,
capturedBy: 'admin@onekhusa.com'
})
};
fetch('https://api.onekhusa.com/sandbox/v1/merchants/accounts/add', 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://api.onekhusa.com/sandbox/v1/merchants/accounts/add",
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([
'accountName' => 'AVIATION',
'currencyCode' => 'MWK',
'categoryCode' => '8352',
'postalAddress' => 'SKYLINK PO Box 30245, Lilongwe, Malawi',
'collectionFeeRuleCode' => 'CM',
'disbursementFeeRuleCode' => 'CM',
'organisationId' => 'FYH0NTVW0DXK',
'levelNumber' => 1,
'capturedBy' => 'admin@onekhusa.com'
]),
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://api.onekhusa.com/sandbox/v1/merchants/accounts/add"
payload := strings.NewReader("{\n \"accountName\": \"AVIATION\",\n \"currencyCode\": \"MWK\",\n \"categoryCode\": \"8352\",\n \"postalAddress\": \"SKYLINK PO Box 30245, Lilongwe, Malawi\",\n \"collectionFeeRuleCode\": \"CM\",\n \"disbursementFeeRuleCode\": \"CM\",\n \"organisationId\": \"FYH0NTVW0DXK\",\n \"levelNumber\": 1,\n \"capturedBy\": \"admin@onekhusa.com\"\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://api.onekhusa.com/sandbox/v1/merchants/accounts/add")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"accountName\": \"AVIATION\",\n \"currencyCode\": \"MWK\",\n \"categoryCode\": \"8352\",\n \"postalAddress\": \"SKYLINK PO Box 30245, Lilongwe, Malawi\",\n \"collectionFeeRuleCode\": \"CM\",\n \"disbursementFeeRuleCode\": \"CM\",\n \"organisationId\": \"FYH0NTVW0DXK\",\n \"levelNumber\": 1,\n \"capturedBy\": \"admin@onekhusa.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onekhusa.com/sandbox/v1/merchants/accounts/add")
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 \"accountName\": \"AVIATION\",\n \"currencyCode\": \"MWK\",\n \"categoryCode\": \"8352\",\n \"postalAddress\": \"SKYLINK PO Box 30245, Lilongwe, Malawi\",\n \"collectionFeeRuleCode\": \"CM\",\n \"disbursementFeeRuleCode\": \"CM\",\n \"organisationId\": \"FYH0NTVW0DXK\",\n \"levelNumber\": 1,\n \"capturedBy\": \"admin@onekhusa.com\"\n}"
response = http.request(request)
puts response.read_body{
"merchantAccountNumber": 53494120,
"accountBalance": 51027168.89,
"revenueAmount": 0,
"dateCreated": "2025-11-20T09:11:55.405442",
"statusCode": "A",
"statusName": "Active",
"levelName": "Initiator Only",
"categoryName": "Other Services",
"classificationCode": "0021",
"classificationName": "Services",
"collectionFeeRuleName": "Charge Fees To The Merchant",
"disbursementFeeRuleName": "Charge Fees To The Merchant",
"accountName": "AVIATION",
"currencyCode": "MWK",
"categoryCode": "8352",
"postalAddress": "FAKE ADDRESS, P.O. BOX 1234567, MALAWI",
"collectionFeeRuleCode": "CM",
"disbursementFeeRuleCode": "CM",
"organisationId": "FYH0NTVW0DXK",
"levelNumber": 1,
"capturedBy": "admin@onekhusa.com"
}Create Merchant
This endpoint allows merchants to create a new merchant account within an organization which will be used for transactions processing i.e. disbursements and collections.
curl -X POST "https://api.onekhusa.com/sandbox/v1/merchants/accounts/add" \
--header "Authorization: Bearer your-jwt-token" \
--header "Content-Type: application/json" \
--header "Accept-Language: en" \
-d '{
"accountName": "AVIATION",
"currencyCode": "MWK",
"categoryCode": "8352",
"postalAddress": "SKYLINK PO Box 30245, Lilongwe, Malawi",
"collectionFeeRuleCode": "CM",
"disbursementFeeRuleCode": "CM",
"organisationId": "FYH0NTVW0DXK",
"levelNumber": 1,
"capturedBy": "admin@onekhusa.com"
}'import requests
url = "https://api.onekhusa.com/sandbox/v1/merchants/accounts/add"
payload = {
"accountName": "AVIATION",
"currencyCode": "MWK",
"categoryCode": "8352",
"postalAddress": "SKYLINK PO Box 30245, Lilongwe, Malawi",
"collectionFeeRuleCode": "CM",
"disbursementFeeRuleCode": "CM",
"organisationId": "FYH0NTVW0DXK",
"levelNumber": 1,
"capturedBy": "admin@onekhusa.com"
}
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({
accountName: 'AVIATION',
currencyCode: 'MWK',
categoryCode: '8352',
postalAddress: 'SKYLINK PO Box 30245, Lilongwe, Malawi',
collectionFeeRuleCode: 'CM',
disbursementFeeRuleCode: 'CM',
organisationId: 'FYH0NTVW0DXK',
levelNumber: 1,
capturedBy: 'admin@onekhusa.com'
})
};
fetch('https://api.onekhusa.com/sandbox/v1/merchants/accounts/add', 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://api.onekhusa.com/sandbox/v1/merchants/accounts/add",
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([
'accountName' => 'AVIATION',
'currencyCode' => 'MWK',
'categoryCode' => '8352',
'postalAddress' => 'SKYLINK PO Box 30245, Lilongwe, Malawi',
'collectionFeeRuleCode' => 'CM',
'disbursementFeeRuleCode' => 'CM',
'organisationId' => 'FYH0NTVW0DXK',
'levelNumber' => 1,
'capturedBy' => 'admin@onekhusa.com'
]),
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://api.onekhusa.com/sandbox/v1/merchants/accounts/add"
payload := strings.NewReader("{\n \"accountName\": \"AVIATION\",\n \"currencyCode\": \"MWK\",\n \"categoryCode\": \"8352\",\n \"postalAddress\": \"SKYLINK PO Box 30245, Lilongwe, Malawi\",\n \"collectionFeeRuleCode\": \"CM\",\n \"disbursementFeeRuleCode\": \"CM\",\n \"organisationId\": \"FYH0NTVW0DXK\",\n \"levelNumber\": 1,\n \"capturedBy\": \"admin@onekhusa.com\"\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://api.onekhusa.com/sandbox/v1/merchants/accounts/add")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"accountName\": \"AVIATION\",\n \"currencyCode\": \"MWK\",\n \"categoryCode\": \"8352\",\n \"postalAddress\": \"SKYLINK PO Box 30245, Lilongwe, Malawi\",\n \"collectionFeeRuleCode\": \"CM\",\n \"disbursementFeeRuleCode\": \"CM\",\n \"organisationId\": \"FYH0NTVW0DXK\",\n \"levelNumber\": 1,\n \"capturedBy\": \"admin@onekhusa.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onekhusa.com/sandbox/v1/merchants/accounts/add")
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 \"accountName\": \"AVIATION\",\n \"currencyCode\": \"MWK\",\n \"categoryCode\": \"8352\",\n \"postalAddress\": \"SKYLINK PO Box 30245, Lilongwe, Malawi\",\n \"collectionFeeRuleCode\": \"CM\",\n \"disbursementFeeRuleCode\": \"CM\",\n \"organisationId\": \"FYH0NTVW0DXK\",\n \"levelNumber\": 1,\n \"capturedBy\": \"admin@onekhusa.com\"\n}"
response = http.request(request)
puts response.read_body{
"merchantAccountNumber": 53494120,
"accountBalance": 51027168.89,
"revenueAmount": 0,
"dateCreated": "2025-11-20T09:11:55.405442",
"statusCode": "A",
"statusName": "Active",
"levelName": "Initiator Only",
"categoryName": "Other Services",
"classificationCode": "0021",
"classificationName": "Services",
"collectionFeeRuleName": "Charge Fees To The Merchant",
"disbursementFeeRuleName": "Charge Fees To The Merchant",
"accountName": "AVIATION",
"currencyCode": "MWK",
"categoryCode": "8352",
"postalAddress": "FAKE ADDRESS, P.O. BOX 1234567, MALAWI",
"collectionFeeRuleCode": "CM",
"disbursementFeeRuleCode": "CM",
"organisationId": "FYH0NTVW0DXK",
"levelNumber": 1,
"capturedBy": "admin@onekhusa.com"
}Authorizations
Bearer authentication header of the form Bearer Token, Where accessToken is the access token used to authenticate the request.
Headers
Preferred language for the response
Body
The name of the merchant account
"SkyLink Aviation Services"
The currency code for the merchant (e.g., "MWK")
"MWK"
The category a merchant account belongs to i.e. Other Services
"8352"
The postal address of the merchant
"P.O. Box 30245, Lilongwe, Malawi"
The rule code to apply when charging the transaction fee on collection payment whether should be borne by the merchant or customer
"CM"
The rule code to apply when charging the transaction fee on disbursement (payout) payment whether should be borne by the merchant or customer
"CM"
The unique identifier of the organization
"S7JZOQY8ILJ4"
The level number for the merchant. See Get Authorization Levels for available levels.
1
Email address of the user creating the merchant
"admin@onekhusa.com"
Response
Created - Merchant successfully created
The merchant account number
53494120
Current account balance
51027168.89
Revenue amount for the merchant account
0
Account creation timestamp (ISO 8601)
"2025-11-20T09:11:55.405442"
Account status code
"A"
Human-readable status name
"Active"
Human-readable level name
"Initiator Only"
The name qualifying the category code
"Other Services"
The code assigned to merchant classification.
"0021"
The name qualifying the classification code
"Services"
The description qualifying the rule code
"Charge Fees To The Merchant"
The description qualifying the rule code
"Charge Fees To The Merchant"
The name of the merchant account
"NOEL DEV"
The currency code for the merchant (e.g., "MWK")
"MWK"
The category a merchant account belongs to
"8352"
The postal address of the merchant
"FAKE ADDRESS, P.O. BOX 1234567, MALAWI"
The rule code to apply when charging the transaction fee on collection payment
"CM"
The rule code to apply when charging the transaction fee on disbursement (payout) payment
"CM"
The unique identifier of the organization
"S7JZOQY8ILJ4"
The level number for the merchant
1
Email address of the user creating the merchant
"admin@onekhusa.com"