Add whitelisted address
curl --request POST \
--url https://staging.api.payluk.ng/v1/whitelist-address \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'customer-id: <customer-id>' \
--data '
{
"walletAddress": "0x0915ea16f52b11444695d283e6c0f5936d1e0d56",
"network": "BSC",
"label": "My Wallet address",
"otp": "<string>"
}
'import requests
url = "https://staging.api.payluk.ng/v1/whitelist-address"
payload = {
"walletAddress": "0x0915ea16f52b11444695d283e6c0f5936d1e0d56",
"network": "BSC",
"label": "My Wallet address",
"otp": "<string>"
}
headers = {
"customer-id": "<customer-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'customer-id': '<customer-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
walletAddress: '0x0915ea16f52b11444695d283e6c0f5936d1e0d56',
network: 'BSC',
label: 'My Wallet address',
otp: '<string>'
})
};
fetch('https://staging.api.payluk.ng/v1/whitelist-address', 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://staging.api.payluk.ng/v1/whitelist-address",
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([
'walletAddress' => '0x0915ea16f52b11444695d283e6c0f5936d1e0d56',
'network' => 'BSC',
'label' => 'My Wallet address',
'otp' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"customer-id: <customer-id>"
],
]);
$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://staging.api.payluk.ng/v1/whitelist-address"
payload := strings.NewReader("{\n \"walletAddress\": \"0x0915ea16f52b11444695d283e6c0f5936d1e0d56\",\n \"network\": \"BSC\",\n \"label\": \"My Wallet address\",\n \"otp\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("customer-id", "<customer-id>")
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://staging.api.payluk.ng/v1/whitelist-address")
.header("customer-id", "<customer-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"walletAddress\": \"0x0915ea16f52b11444695d283e6c0f5936d1e0d56\",\n \"network\": \"BSC\",\n \"label\": \"My Wallet address\",\n \"otp\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.api.payluk.ng/v1/whitelist-address")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["customer-id"] = '<customer-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"walletAddress\": \"0x0915ea16f52b11444695d283e6c0f5936d1e0d56\",\n \"network\": \"BSC\",\n \"label\": \"My Wallet address\",\n \"otp\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": 201,
"message": "Wallet address whitelisted successfully",
"data": {
"id": "69badc24766aab029e6dc789",
"walletAddress": "0x0915ea16f52b11444695d283e6c0f5936d1e0d56",
"network": "BASE",
"label": "My Wallet address",
"dateAdded": "2026-03-18T17:08:52.374Z",
"lastUpdated": "2026-03-18T17:08:52.374Z"
}
}{
"status": 400,
"message": "Whitelist limit reached",
"data": {}
}{
"status": 429,
"message": "Too many request"
}Other: Crypto Whitelist
Add whitelisted address
POST
/
v1
/
whitelist-address
Add whitelisted address
curl --request POST \
--url https://staging.api.payluk.ng/v1/whitelist-address \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'customer-id: <customer-id>' \
--data '
{
"walletAddress": "0x0915ea16f52b11444695d283e6c0f5936d1e0d56",
"network": "BSC",
"label": "My Wallet address",
"otp": "<string>"
}
'import requests
url = "https://staging.api.payluk.ng/v1/whitelist-address"
payload = {
"walletAddress": "0x0915ea16f52b11444695d283e6c0f5936d1e0d56",
"network": "BSC",
"label": "My Wallet address",
"otp": "<string>"
}
headers = {
"customer-id": "<customer-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'customer-id': '<customer-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
walletAddress: '0x0915ea16f52b11444695d283e6c0f5936d1e0d56',
network: 'BSC',
label: 'My Wallet address',
otp: '<string>'
})
};
fetch('https://staging.api.payluk.ng/v1/whitelist-address', 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://staging.api.payluk.ng/v1/whitelist-address",
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([
'walletAddress' => '0x0915ea16f52b11444695d283e6c0f5936d1e0d56',
'network' => 'BSC',
'label' => 'My Wallet address',
'otp' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"customer-id: <customer-id>"
],
]);
$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://staging.api.payluk.ng/v1/whitelist-address"
payload := strings.NewReader("{\n \"walletAddress\": \"0x0915ea16f52b11444695d283e6c0f5936d1e0d56\",\n \"network\": \"BSC\",\n \"label\": \"My Wallet address\",\n \"otp\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("customer-id", "<customer-id>")
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://staging.api.payluk.ng/v1/whitelist-address")
.header("customer-id", "<customer-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"walletAddress\": \"0x0915ea16f52b11444695d283e6c0f5936d1e0d56\",\n \"network\": \"BSC\",\n \"label\": \"My Wallet address\",\n \"otp\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.api.payluk.ng/v1/whitelist-address")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["customer-id"] = '<customer-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"walletAddress\": \"0x0915ea16f52b11444695d283e6c0f5936d1e0d56\",\n \"network\": \"BSC\",\n \"label\": \"My Wallet address\",\n \"otp\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": 201,
"message": "Wallet address whitelisted successfully",
"data": {
"id": "69badc24766aab029e6dc789",
"walletAddress": "0x0915ea16f52b11444695d283e6c0f5936d1e0d56",
"network": "BASE",
"label": "My Wallet address",
"dateAdded": "2026-03-18T17:08:52.374Z",
"lastUpdated": "2026-03-18T17:08:52.374Z"
}
}{
"status": 400,
"message": "Whitelist limit reached",
"data": {}
}{
"status": 429,
"message": "Too many request"
}Authorizations
Your secret key as a Bearer token. The key prefix selects the environment: sk_test_... (staging) or sk_live_... (production); a key on the wrong host is refused with 403 Unauthorized Access. Each key is limited to 10 requests per minute (429 beyond that) and, on production, to the IP addresses on your dashboard allowlist when one is configured.
Headers
The merchant customer this request acts on behalf of.
Body
application/json
Recipient wallet address: 0x followed by 40 hexadecimal characters.
Example:
"0x0915ea16f52b11444695d283e6c0f5936d1e0d56"
Available options:
BSC Example:
"BSC"
Maximum string length:
50Example:
"My Wallet address"
Optional one-time password, if required.
Response
Address whitelisted.