cURL
curl -X PUT "https://api.onekhusa.com/sandbox/v1/disbursements/single/approve" \
--header "Authorization: Bearer your-jwt-token" \
--header "Content-Type: application/json" \
--header "Accept-Language: en" \
--header "X-Idempotency-Key: your-idempotency-key" \
-d '{
"merchantAccountNumber": 35253486,
"transactionReferenceNumber": "251105CJZ16U",
"actionedBy": "johndoe@onekhusa.com"
}'import requests
url = "https://api.onekhusa.com/sandbox/v1/disbursements/single/approve"
payload = {
"merchantAccountNumber": 35253486,
"transactionReferenceNumber": "251105CJZ16U",
"actionedBy": "johndoe@onekhusa.com"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
merchantAccountNumber: 35253486,
transactionReferenceNumber: '251105CJZ16U',
actionedBy: 'johndoe@onekhusa.com'
})
};
fetch('https://api.onekhusa.com/sandbox/v1/disbursements/single/approve', 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/disbursements/single/approve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'merchantAccountNumber' => 35253486,
'transactionReferenceNumber' => '251105CJZ16U',
'actionedBy' => 'johndoe@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/disbursements/single/approve"
payload := strings.NewReader("{\n \"merchantAccountNumber\": 35253486,\n \"transactionReferenceNumber\": \"251105CJZ16U\",\n \"actionedBy\": \"johndoe@onekhusa.com\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.onekhusa.com/sandbox/v1/disbursements/single/approve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"merchantAccountNumber\": 35253486,\n \"transactionReferenceNumber\": \"251105CJZ16U\",\n \"actionedBy\": \"johndoe@onekhusa.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onekhusa.com/sandbox/v1/disbursements/single/approve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"merchantAccountNumber\": 35253486,\n \"transactionReferenceNumber\": \"251105CJZ16U\",\n \"actionedBy\": \"johndoe@onekhusa.com\"\n}"
response = http.request(request)
puts response.read_body{
"merchantAccountNumber": 37463669,
"transactionReferenceNumber": "251105CJZ16U",
"responseCode": "S100"
}Banks and Mobile Wallets
Approve Payout
This endpoint allows the merchant user to approve a single disbursement transaction that has been created. It is used in the 4-Eye (Initiator + Approver) and 6-Eye (Initiator + Reviewer + Approver) workflows. Once approved, the transaction automatically proceeds to funds transfer immediately.
WARNING: Once the transaction has been approved, the funds transfer process cannot be undone or stopped. You will be required to reconcile manually with the beneficiary who received funds to return the funds to your merchant account.
PUT
/
disbursements
/
single
/
approve
cURL
curl -X PUT "https://api.onekhusa.com/sandbox/v1/disbursements/single/approve" \
--header "Authorization: Bearer your-jwt-token" \
--header "Content-Type: application/json" \
--header "Accept-Language: en" \
--header "X-Idempotency-Key: your-idempotency-key" \
-d '{
"merchantAccountNumber": 35253486,
"transactionReferenceNumber": "251105CJZ16U",
"actionedBy": "johndoe@onekhusa.com"
}'import requests
url = "https://api.onekhusa.com/sandbox/v1/disbursements/single/approve"
payload = {
"merchantAccountNumber": 35253486,
"transactionReferenceNumber": "251105CJZ16U",
"actionedBy": "johndoe@onekhusa.com"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
merchantAccountNumber: 35253486,
transactionReferenceNumber: '251105CJZ16U',
actionedBy: 'johndoe@onekhusa.com'
})
};
fetch('https://api.onekhusa.com/sandbox/v1/disbursements/single/approve', 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/disbursements/single/approve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'merchantAccountNumber' => 35253486,
'transactionReferenceNumber' => '251105CJZ16U',
'actionedBy' => 'johndoe@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/disbursements/single/approve"
payload := strings.NewReader("{\n \"merchantAccountNumber\": 35253486,\n \"transactionReferenceNumber\": \"251105CJZ16U\",\n \"actionedBy\": \"johndoe@onekhusa.com\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.onekhusa.com/sandbox/v1/disbursements/single/approve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"merchantAccountNumber\": 35253486,\n \"transactionReferenceNumber\": \"251105CJZ16U\",\n \"actionedBy\": \"johndoe@onekhusa.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onekhusa.com/sandbox/v1/disbursements/single/approve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"merchantAccountNumber\": 35253486,\n \"transactionReferenceNumber\": \"251105CJZ16U\",\n \"actionedBy\": \"johndoe@onekhusa.com\"\n}"
response = http.request(request)
puts response.read_body{
"merchantAccountNumber": 37463669,
"transactionReferenceNumber": "251105CJZ16U",
"responseCode": "S100"
}Authorizations
Bearer authentication header of the form Bearer Token, Where accessToken is the access token used to authenticate the request.
Body
application/json
The unique identifier of the merchant account (Required string length: 8)
Required range:
10000000 <= x <= 99999999Example:
35253486
The unique transaction reference number to approve
Example:
"251105CJZ16U"
The username or identifier of the user approving the transaction
Maximum string length:
60Example:
"johndoei@onekhusa.com"