curl --request GET \
--url https://secureapi.tender.cash/v1/api/agent \
--header 'authorization: <api-key>' \
--header 'x-access-id: <x-access-id>' \
--header 'x-request-id: <x-request-id>' \
--header 'x-timestamp: <x-timestamp>'const options = {
method: 'GET',
headers: {
authorization: '<api-key>',
'x-timestamp': '<x-timestamp>',
'x-request-id': '<x-request-id>',
'x-access-id': '<x-access-id>'
}
};
fetch('https://secureapi.tender.cash/v1/api/agent', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://secureapi.tender.cash/v1/api/agent"
headers = {
"authorization": "<api-key>",
"x-timestamp": "<x-timestamp>",
"x-request-id": "<x-request-id>",
"x-access-id": "<x-access-id>"
}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://secureapi.tender.cash/v1/api/agent",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"authorization: <api-key>",
"x-access-id: <x-access-id>",
"x-request-id: <x-request-id>",
"x-timestamp: <x-timestamp>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"status": "success",
"message": "success",
"data": {
"agents": [
{
"id": "66f33b1fa9446a6b6b8f32cd",
"reference": "vbibtucm9ynq3k2x7p",
"name": "Lagos Fashion Store",
"type": "online",
"email": "<string>",
"phoneNumber": "<string>",
"location": "<string>",
"country": "<string>",
"active": true,
"merchantId": "<string>",
"currency": "NGN",
"totalSales": "0",
"defaultFiatCurrency": {
"currency": "<string>",
"rate": "<string>",
"useSystemRate": true
},
"createdAt": "2023-11-07T05:31:56Z"
}
],
"page": 1,
"pages": 1,
"limit": 12,
"total": 1
}
}{
"status": "error",
"message": "INVALID_REQUEST_SIGNATURE",
"data": {}
}{
"status": "error",
"message": "Too many requests. Max 120 per 60s.",
"data": null
}List Outlets
List the outlets (agents or sub-businesses) under your merchant account
curl --request GET \
--url https://secureapi.tender.cash/v1/api/agent \
--header 'authorization: <api-key>' \
--header 'x-access-id: <x-access-id>' \
--header 'x-request-id: <x-request-id>' \
--header 'x-timestamp: <x-timestamp>'const options = {
method: 'GET',
headers: {
authorization: '<api-key>',
'x-timestamp': '<x-timestamp>',
'x-request-id': '<x-request-id>',
'x-access-id': '<x-access-id>'
}
};
fetch('https://secureapi.tender.cash/v1/api/agent', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://secureapi.tender.cash/v1/api/agent"
headers = {
"authorization": "<api-key>",
"x-timestamp": "<x-timestamp>",
"x-request-id": "<x-request-id>",
"x-access-id": "<x-access-id>"
}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://secureapi.tender.cash/v1/api/agent",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"authorization: <api-key>",
"x-access-id: <x-access-id>",
"x-request-id: <x-request-id>",
"x-timestamp: <x-timestamp>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"status": "success",
"message": "success",
"data": {
"agents": [
{
"id": "66f33b1fa9446a6b6b8f32cd",
"reference": "vbibtucm9ynq3k2x7p",
"name": "Lagos Fashion Store",
"type": "online",
"email": "<string>",
"phoneNumber": "<string>",
"location": "<string>",
"country": "<string>",
"active": true,
"merchantId": "<string>",
"currency": "NGN",
"totalSales": "0",
"defaultFiatCurrency": {
"currency": "<string>",
"rate": "<string>",
"useSystemRate": true
},
"createdAt": "2023-11-07T05:31:56Z"
}
],
"page": 1,
"pages": 1,
"limit": 12,
"total": 1
}
}{
"status": "error",
"message": "INVALID_REQUEST_SIGNATURE",
"data": {}
}{
"status": "error",
"message": "Too many requests. Max 120 per 60s.",
"data": null
}x-access-id, x-request-id, x-timestamp, and an HMAC-SHA256
authorization signature. See Authentication.Headers
{"timeStamp":"<x-timestamp>","requestId":"<x-request-id>","accessId":"<x-access-id>"}, signed with your access secret. The request body is not part of the signature.Example: "pV3n0o8kq0lK2mJ8bZ1yq3Yt6hR0cXK9u4mVJ2l9sE0=""2026-10-15T09:45:53.000Z""550e8400-e29b-41d4-a716-446655440000""your-access-id-here"Query Parameters
112"lagos"Response
"success""success"Show data properties
Show data properties
Show outlet object
Show outlet object
"66f33b1fa9446a6b6b8f32cd""vbibtucm9ynq3k2x7p""Lagos Fashion Store""lagosfashion@store.com""+2348012345678""Lagos""Nigeria"true"6538e8f9bdec6d1a21978a64""NGN""0"currency (string), rate (string) and
useSystemRate (boolean)"2026-10-15T09:45:53.000Z"page query parameter as sent (a string) when you pass one.Example: 11limit query parameter as sent (a string) when you pass one.Example: 121Example request
curl "https://sandbox-api.tender.cash/v1/api/agent?search=lagos" \
-H "x-access-id: your-access-id-here" \
-H "x-request-id: 550e8400-e29b-41d4-a716-446655440000" \
-H "x-timestamp: 2026-10-15T09:45:53.000Z" \
-H "authorization: pV3n0o8kq0lK2mJ8bZ1yq3Yt6hR0cXK9u4mVJ2l9sE0="
Example response
{
"status": "success",
"message": "success",
"data": {
"agents": [
{
"id": "66f33b1fa9446a6b6b8f32cd",
"name": "Lagos Fashion Store",
"email": "lagosfashion@store.com",
"location": "Lagos",
"country": "Nigeria",
"active": true,
"reference": "vbibtucm9ynq3k2x7p",
"merchantId": "6538e8f9bdec6d1a21978a64",
"currency": "NGN",
"totalSales": "0",
"defaultFiatCurrency": {
"currency": "NGN",
"rate": "1500",
"useSystemRate": true
},
"createdAt": "2026-10-15T09:45:53.000Z"
}
],
"pages": 1,
"page": 1,
"limit": 12,
"total": 1
}
}
Authorizations
Signed (HMAC) authentication. Required headers: x-access-id, x-request-id (UUID v4), x-timestamp (ISO 8601, must be within 5 minutes of server time), and authorization: the Base64 HMAC-SHA256 of the JSON string {"timeStamp":"","requestId":"","accessId":""} (keys in that order, no whitespace) using your access secret. The request body, method and path are not signed. The API key must be linked to an outlet.
Headers
Base64-encoded HMAC-SHA256 signature of {"timeStamp":"<x-timestamp>","requestId":"<x-request-id>","accessId":"<x-access-id>"}, signed with your access secret. The request body is not part of the signature.
ISO 8601 timestamp; must be within 5 minutes of server time
A unique UUID v4 per request
Your API access ID provided by Tender
Query Parameters
x >= 1x >= 1Matches name, email, phone number, reference, location or country