Request business NGN wallet withdrawal
curl --request POST \
--url https://api.nexapay.ng/api/v1/business/withdrawal/request \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"businessId": "<string>",
"amount": 1001
}
'import requests
url = "https://api.nexapay.ng/api/v1/business/withdrawal/request"
payload = {
"businessId": "<string>",
"amount": 1001
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({businessId: '<string>', amount: 1001})
};
fetch('https://api.nexapay.ng/api/v1/business/withdrawal/request', 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.nexapay.ng/api/v1/business/withdrawal/request",
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([
'businessId' => '<string>',
'amount' => 1001
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.nexapay.ng/api/v1/business/withdrawal/request"
payload := strings.NewReader("{\n \"businessId\": \"<string>\",\n \"amount\": 1001\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.nexapay.ng/api/v1/business/withdrawal/request")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"businessId\": \"<string>\",\n \"amount\": 1001\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nexapay.ng/api/v1/business/withdrawal/request")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"businessId\": \"<string>\",\n \"amount\": 1001\n}"
response = http.request(request)
puts response.read_bodyPayouts & Withdrawals
Request Payout
Initiates a withdrawal/payout of funds from the merchant’s NGN wallet to their verified settlement bank account. Available also at /request.
POST
/
withdrawal
/
request
Request business NGN wallet withdrawal
curl --request POST \
--url https://api.nexapay.ng/api/v1/business/withdrawal/request \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"businessId": "<string>",
"amount": 1001
}
'import requests
url = "https://api.nexapay.ng/api/v1/business/withdrawal/request"
payload = {
"businessId": "<string>",
"amount": 1001
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({businessId: '<string>', amount: 1001})
};
fetch('https://api.nexapay.ng/api/v1/business/withdrawal/request', 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.nexapay.ng/api/v1/business/withdrawal/request",
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([
'businessId' => '<string>',
'amount' => 1001
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.nexapay.ng/api/v1/business/withdrawal/request"
payload := strings.NewReader("{\n \"businessId\": \"<string>\",\n \"amount\": 1001\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.nexapay.ng/api/v1/business/withdrawal/request")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"businessId\": \"<string>\",\n \"amount\": 1001\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nexapay.ng/api/v1/business/withdrawal/request")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"businessId\": \"<string>\",\n \"amount\": 1001\n}"
response = http.request(request)
puts response.read_bodyInitiates a withdrawal/payout of funds from the merchant’s NGN wallet to their verified settlement bank account.
Payout Webhooks
Successful withdrawals emit awithdrawal.completed webhook event. Failed withdrawals emit withdrawal.failed. See Webhooks for payload schemas and signature details.Authorizations
Merchant API Key (e.g., nexa-prod-... or nexa-test-...)
Headers
Target environment selector (live production vs. simulated sandbox).
Available options:
prod, test Body
application/json
Response
Withdrawal payout transaction processed successfully (e.g. in test mode).