Skip to main content
GET
/
subscription
/
api
/
v1
/
subscription-plans?page=
{page}
&size=
{size}
&status=
{status}
List Plans
curl --request GET \
  --url 'https://api.payaza.africa/live/subscription/api/v1/subscription-plans?page={page}&size={size}&status={status}' \
  --header 'Authorization: <api-key>'
import requests

url = "https://api.payaza.africa/live/subscription/api/v1/subscription-plans?page={page}&size={size}&status={status}"

headers = {"Authorization": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: '<api-key>'}};

fetch('https://api.payaza.africa/live/subscription/api/v1/subscription-plans?page={page}&size={size}&status={status}', 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.payaza.africa/live/subscription/api/v1/subscription-plans?page={page}&size={size}&status={status}",
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>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.payaza.africa/live/subscription/api/v1/subscription-plans?page={page}&size={size}&status={status}"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.payaza.africa/live/subscription/api/v1/subscription-plans?page={page}&size={size}&status={status}")
.header("Authorization", "<api-key>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.payaza.africa/live/subscription/api/v1/subscription-plans?page={page}&size={size}&status={status}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'

response = http.request(request)
puts response.read_body
{
  "success": true,
  "message": "Success",
  "data": {
    "content": [
      {
        "id": 69,
        "name": "Basic Monthly (B)",
        "description": "Basic tier billed monthly",
        "amount": 100,
        "currency": "NGN",
        "interval": "MONTHLY",
        "intervalCount": 1,
        "trialPeriodDays": 2,
        "billingLimit": 1,
        "status": "ACTIVE",
        "planCode": "PLN_821DCFD",
        "billingDaysOfWeek": null,
        "metadata": null,
        "createdAt": "2026-07-08T17:17:14.173361",
        "updatedAt": "2026-07-08T17:17:14.173362"
      }
    ],
    "pageable": {
      "sort": {
        "unsorted": false,
        "sorted": true,
        "empty": false
      },
      "pageNumber": 0,
      "pageSize": 1,
      "offset": 0,
      "paged": true,
      "unpaged": false
    },
    "totalPages": 4,
    "totalElements": 4,
    "last": false,
    "numberOfElements": 1,
    "size": 1,
    "number": 0,
    "sort": {
      "unsorted": false,
      "sorted": true,
      "empty": false
    },
    "first": true,
    "empty": false
  }
}

Authorizations

Authorization
string
header
required

Payaza {{Public API Key in Base 64}}

Path Parameters

page
integer
required

The page number to be retrieved.

size
integer
required

The number of records per page.

status
string

Filter plans by status (ACTIVE or ARCHIVED).

Response

200 - application/json

Payment successful

success
boolean

Indicates if the request was successful.

Example:

true

message
string

Descriptive message regarding the operation.

Example:

"Success"

data
object

The payload containing the paginated list of plans.