Skip to main content

Overview

A Subscription Plan is the template that defines how much to charge, how often, and for how long. Think of it as the product you are selling on a recurring basis — for example, “Pro Plan at ₦5,000/month” or “Annual Access at ₦50,000/year”. Before you can subscribe a customer and start billing them, you must first create a plan. The plan generates a unique planCode which is the only thing you need when creating a subscription later. How it fits into the bigger picture:
  1. You create a plan → get a planCode
  2. You create a subscription using that planCode + the customer’s card details → billing begins
This page covers everything you need to manage plans. See Create a Subscription for the next step.

Key Requirements

Retrieve your API keys from your dashboard by following the steps on our Authentication page. Use your public API key for all subscription plan requests.
Set the following headers on every request:
Set X-TenantID to test while developing and live when processing real payments.

Billing intervals

When creating a plan, you set how often the customer is billed using the interval field:

Step 1 — Create a Plan

Creates a new subscription plan. The planCode in the response is what you pass when subscribing a customer — save it.
Request body parameters Sample response
Save data.planCode immediately after creating a plan. This is the identifier you pass when creating a subscription — without it, you cannot subscribe customers to this plan.
API reference: Create Plan

Step 2 — List Plans

Retrieve a paginated list of all plans you have created. Useful for displaying available pricing tiers in your UI or confirming a plan exists before subscribing a customer.
Query parameters Sample response
API reference: List Plans

Step 3 — Get Plan Details

Retrieve the full details of a specific plan using its planCode.
Path parameter Sample response
API reference: Get Plan Details

Step 4 — Update Plan Details (optional)

Update the editable properties of an existing plan. All body fields are optional — include only what you want to change. Fields you omit keep their current values.
You can only update name, description, trialPeriodDays, and billingLimit. The plan’s amount, currency, and interval cannot be changed after creation. To change pricing or frequency, create a new plan and use Change Plan to move active subscribers to it.
Path parameter Updatable body parameters (all optional) Sample response
API reference: Update Plan Details

Developer notes

  • Always save data.planCode from the Create Plan response — it is the only way to reference the plan when subscribing customers.
  • Plans are reusable across unlimited customers. Create a plan once and reference it for every customer who subscribes to that pricing tier.
  • amount and currency cannot be updated after a plan is created. If you need to change pricing, create a new plan and migrate existing subscribers using the Change Plan endpoint.
  • Setting billingLimit to null or leaving it empty creates an unlimited recurring plan — the customer will be charged every billing cycle until cancelled.
  • trialPeriodDays: 0 means no trial — the first charge is attempted immediately when the subscription is created.
  • Plans can be filtered by status on the List Plans endpoint. ACTIVE plans are available for new subscriptions; ARCHIVED plans can no longer accept new subscribers.

What’s next

Now that you have a plan and its planCode, you are ready to subscribe your first customer.

Create a Subscription

Enrol a customer’s card against a plan and start recurring billing.