Subscriptions Integration Guide
Last updated:July 25, 2026
This Subscription Integration guide describes how you can schedule subscription payments. Like recurring payments, the money gets auto-debited from consumer's bank account to the merchant account in fixed time periods (e.g. weekly, monthly, quarterly, yearly). Similarly, money can be auto-credited using payouts. Subscription businesses benefit from the flexibility of creating different plans and pricing structures to meet market demands.
A subscription payment can be scheduled as a pre-authorization (PA), debit (DB) or credit (CD) transaction.
Use cases
Start subscription
The merchant collects card data from the shopper and schedules a subscription payment. You can set the value of the transaction, the schedule for when the charges should occur, and the number of times the payment transaction should happen based on your subscription plan.
How it works
1. Store the payment data
Collect the customer payment information via COPYandPAY or Server-to-Server. With any of the options, please consider having a card-on-file agreement with the shopper. It is best to tokenize the card during the cardholder (CIT) initiated payment so that a merchant (MIT) agreement is in place for the future subscription payments.
Sample request:

2. Schedule a payment
Perform a server-to-server POST request with the registration id, payment type and the job schedule parameters
which describes when and how often the transaction should be executed. For a complete reference of the scheduling job parameters,
please check API Reference.
[job.second] [job.minute] [job.hour] [job.dayOfMonth] [job.month] [job.dayOfWeek]
| Value | Description | Allowed in |
|---|---|---|
| , | List. Specify several values. For example:
|
All fields |
| - | Range. Specify a range of values. For example:
|
All fields |
| * | Wildcard. Specify all valid values. For example:
|
All fields |
| ? | Question mark. Specify no value. Can only be used in the dayOfMonth and dayOfWeek fields. Used when you wish to specify a particular value in one of those fields, but not the other. For example:
|
job.dayOfMonth job.dayOfWeek |
| / | Step. Specify increments (value/value_to_increment). For example:
|
All fields |
| L | Last. Specify the last day of the month or week. For example:
|
job.dayOfMonth job.dayOfWeek |
| W | Nearest weekday. Specify the weekday (Monday-Friday) nearest the given day. For example:
|
job.dayOfMonth |
| # | Weekday of the month. Specify "the nth Sun-Sat day of the month". For example, the value of:
|
job.dayOfWeek |
Sample request:

3. We execute the transaction for you
The scheduled payment is executed automatically at the defined time using the stored payment information and subscription plan.
4. Review the subscription plan
Query the schedule using the schedule ID — the active subscription plan is highlighted in the query response.
Sample request:

Update subscription plan
Modify an existing active subscription plan in place using the RS (Reschedule) payment type — changing
the pricing, timing, or structure without cancelling the current schedule and starting over. Submit your updated plan to the
/scheduling/v1/schedules/{id}/reschedule endpoint, referencing either the original schedule (SD) or your most
recent reschedule (RS). Each update is recorded as a step in the same session, giving you a continuous history
of how the plan has changed over time.
How it works
We execute the transaction for you
Execute the updated subscription payment at the scheduled time.
1. Reschedule an existing plan
Submit your updated plan to the /scheduling/v1/schedules/{id}/reschedule endpoint using the RS payment type,
referencing either the original schedule (SD) or your most recent reschedule (RS). The new plan
takes effect immediately within the same active session, preserving the full change history without disrupting your customers'
experience.
For example, if you initially set up a monthly billing cycle and need to switch a customer to quarterly,
simply submit an RS request referencing the original schedule — no need to cancel and rebuild.
You can chain multiple rescheduling requests in sequence, with each new RS referencing the previous one.
Sample request:

2. We execute the transaction for you
The scheduled payment is executed automatically at the defined time using the stored payment information and subscription plan.
3. Review the subscription plan
Query the reschedule ID to confirm the updated subscription plan is in effect — the active plan is highlighted in the query response.
Sample request:

Cancel subscription
The merchant scheduled one or multiple subscription payments. You can cancel any of the subscriptions.
How it works
1. List subscriptions
Perform a server-to-server GET request with the registration id to retrieve all scheduling records — including the
original schedule (SD), any plan updates (RS), and cancellations (DS). Use this to identify
the schedule ID you want to reference when cancelling.
Sample request:

2. Cancel the subscription
Send a de-scheduling (DS) request specifying any schedule ID belonging to the subscription — the original
SD or any subsequent RS. Cancelling any one of them cancels the entire subscription and stops
all future scheduled payments.
Sample request:
