Skip to main content
A recurring plan tells OzuraPay to charge a customer’s card automatically at a fixed interval — weekly, monthly, yearly, or any cadence you choose. Create the plan once; OzuraPay handles every charge after that.

Quick Start

Create a monthly plan and start billing immediately:
A successful response returns a planId. Save it — you’ll need it to pause, cancel, or query the plan later.

The Basics

Never call this from the browser. Your API keys must stay on the server. Use a backend (Node.js, Python, PHP, etc.) to create plans and store the returned planId in your own database.

Required Headers

Every request needs both headers:
Merchant API Key (x-api-key): Developers → API Keys.Vault API Key (vault-api-key): Developers → Vault Key.

Required Fields

Your request body must include all of the following:
Where do I get ozuraVaultToken and ozuraCvcSession? These come from the Ozura Vault after your customer enters their card details. See the Vault documentation to learn how to tokenize a card before creating a plan.

Optional Fields

Initial Pricing Config

Three optional fields let you offer introductory pricing before the standard rate kicks in.

setupFee

A one-time fee charged alongside the first billing cycle payment. It does not repeat.
On the first cycle the customer is charged $9.99 + $29.99 = $39.98. Every cycle after that is just $29.99.

initialAmount + initialCycles

Override the charge amount for the first N cycles. After initialCycles is exhausted, billing automatically switches to the standard amount.
You can combine all three. For example, a setupFee of "4.99", an initialAmount of "9.99" for 2 cycles, and a standard amount of "29.99" would charge $14.98 on the first cycle, $9.99 on the second, and $29.99 every cycle after that.
initialCycles has no effect if initialAmount is not set.

Enums

RecurringInterval

Controls how frequently the plan bills. Use intervalCount together with interval to express non-standard cadences — for example, interval: "weekly" + intervalCount: 2 means every two weeks.

RecurringPlanStatus

The lifecycle state of a plan, returned in all plan responses.

TransactionChannel

TransactionInitiationType

All plans must use "cit"

Response

What’s Next?

You have a live planId. Head to Manage Recurring Plans to learn how to pause, cancel, or update a plan.