VerseOne API Docs
Royalties
Payouts list
GET /api/v1/payouts
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: application/json
Accept
Example: application/json
Example Request
const url = new URL(
"http://verseone.test/api/v1/payouts"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/payouts'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/payouts';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request GET \
--get "http://verseone.test/api/v1/payouts" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example Response
{
"error": "Invalid token"
}
Create Payout Request
POST /api/v1/payouts
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: application/json
Accept
Example: application/json
Body Parameters
amount number required
amount cannot exceed available/withdrawable balance.
Notes:Use a period . as decimal separator. Must be at least 100.
Example Request
const url = new URL(
"http://verseone.test/api/v1/payouts"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"amount": 250
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/payouts'
payload = {
"amount": 250
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/payouts';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'amount' => 250.0,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request POST \
"http://verseone.test/api/v1/payouts" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"amount\": 250
}"
Example Response
{
"status": true,
"payout": {
"id": "pout_98765",
"user_id": "usr_123",
"amount": "250.00",
"currency": "USD",
"fees": "5.00",
"net_amount": "245.00",
"wallet": 238.468,
"status": "pending",
"method": null,
"reference": null,
"created_at": "2025-10-30T21:35:18Z",
"processed_at": null,
"notes": null,
"metadata": {
"idempotency_key": "7b8b8c4f-2a0f-4b17-82a1-8e5b9f7e0f56"
}
},
"withdrawal_type": 1,
"message": "Payout saved successfully"
}
{
"status": false,
"message": "Payout request failed due to insufficient funds",
"type": 1
}
{
"status": false,
"message": "You cannot change the withdrawal type to request at this time",
"type": 0
}
Set Threshold
POST /api/v1/setThreshold
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: application/json
Accept
Example: application/json
Body Parameters
amount number required
amount Must be at least 100.
Example Request
const url = new URL(
"http://verseone.test/api/v1/setThreshold"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"amount": 99
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/setThreshold'
payload = {
"amount": 99
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/setThreshold';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'amount' => 99,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request POST \
"http://verseone.test/api/v1/setThreshold" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"amount\": 99
}"
Get Pending Payouts for The User
GET /api/v1/payouts/pending
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: application/json
Accept
Example: application/json
Example Request
const url = new URL(
"http://verseone.test/api/v1/payouts/pending"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/payouts/pending'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/payouts/pending';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request GET \
--get "http://verseone.test/api/v1/payouts/pending" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example Response
{
"error": "Invalid token"
}
Set Monthly Type
POST /api/v1/payouts/set-monthly-type
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: application/json
Accept
Example: application/json
Example Request
const url = new URL(
"http://verseone.test/api/v1/payouts/set-monthly-type"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/payouts/set-monthly-type'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/payouts/set-monthly-type';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request POST \
"http://verseone.test/api/v1/payouts/set-monthly-type" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Income List
GET /api/v1/incomes
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: application/json
Accept
Example: application/json
Example Request
const url = new URL(
"http://verseone.test/api/v1/incomes"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/incomes'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/incomes';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request GET \
--get "http://verseone.test/api/v1/incomes" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example Response
{
"error": "Invalid token"
}
Get Invoice
GET /api/v1/invoice
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: application/json
Accept
Example: application/json
Example Request
const url = new URL(
"http://verseone.test/api/v1/invoice"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/invoice'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/invoice';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request GET \
--get "http://verseone.test/api/v1/invoice" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example Response
{
"error": "Invalid token"
}