Recurring Billing
The Recurring Billing service enables you to create and manage payment plans and subscriptions for recurring payment schedules. It automates the storage and handling of your customer's payment information and personal data within secure Visa data centers in compliance with credentials-on-file (COF) best practices. Storage risks and the PCI Data Security Standard (PCI DSS) scope are reduced using Token Management Service (TMS).
The REST API is the only supported API for Recurring Billing. SCMP and Simple Order APIs are not supported. Comercio Latino and Prosa are not yet supported for Recurring Billing.
Recurring Billing Elements
Recurring Billing consists of three elements:
- Plan: defines the billing schedule for payment frequency, amount, and duration.
- Subscription: combines a TMS token with a plan, plus a start date, name, and optional description.
- Token: stores the customer's billing, shipping, and payment details in TMS.
Prerequisites
Your account must be enabled for Recurring Billing and configured for Token Management Service (TMS). The customer token is the only token type that can be used with Recurring Billing.
Plans
A plan defines the billing schedule for a subscription.
Plan Types
Standard plans are created and stored in the Recurring Billing service for reuse. You can assign standard plans to multiple subscriptions. When you create a standard plan, you can assign a plan code for reference.
One-time plans are created specifically for a single subscription and are embedded in the subscription at creation time. One-time plans do not include a plan code, plan name, or plan description.
Installment-based plans are not available.
Bill Indefinitely Plans
A Bill Indefinitely plan runs until it is canceled. It contains these elements:
- Plan code (optional)
- Plan name
- Plan description (optional)
- Billing frequency
- Currency
- Payment amount
- Set-up fee (optional)
Fixed Number of Payments Plans
A Fixed Number of Payments plan adds one element to the Bill Indefinitely set: the number of billing cycles.
Assigning a Plan Code
When you create a standard plan, you can choose to supply a plan code that relates to your business and is used for reference to the plan. This code can be numeric or alphanumeric with dash (-) and dot (.) characters, and up to 10 characters long.
If no plan code is assigned, the system automatically assigns a system-generated value.
Plan Statuses
Plans transition through these statuses:
| Status | Description |
|---|---|
| Draft | The plan exists but has not been activated. Draft plans can be fully amended. |
| Active | The plan is available for use with subscriptions. For active plans, only planInformation.billingPeriod, planInformation.billingCycles, and orderInformation.amountDetails.currency can be amended. |
| Inactive | The plan has been deactivated. You cannot amend an inactive plan. To make changes, the plan must first be moved to active or draft status. |
| Deleted | The plan is deleted and cannot be used. |
Subscriptions
A subscription combines a TMS customer token with a plan, and adds a start date, name, and optional description.
Subscription elements include:
- Subscription code (optional)
- Subscription name
- Start date
- TMS customer token (
paymentInformation.customer.id) - Plan (standard or one-time)
- Merchant reference number (optional)
Subscriptions can be updated, activated, suspended, or canceled.
Subscription ID
When a subscription is created, the system assigns a unique subscription ID. This ID is required in subsequent requests to retrieve, amend, cancel, reactivate, or suspend the subscription.
The interval between subscription payments cannot exceed 12 months.
Assigning a Subscription Code
When you create a subscription, you can choose to supply a subscription code that relates to your business and is used for reference. This code can be numeric or alphanumeric with dash (-) and dot (.) characters, and up to 10 characters long.
If no subscription code is assigned, the system automatically assigns a system-generated value.
Subscription Statuses
| Status | Description |
|---|---|
| Pending | The first payment is scheduled, or the subscription is in transition to another state. |
| Active | The subscription is currently in use. It is set with a payment instrument, and a payment is scheduled at a pre-determined frequency that you agreed upon with your customer. |
| Delinquent | When a scheduled recurring payment fails, the account is placed in a Delinquent status while the system retries the payment a number of times. If the retries all fail, the account is placed into a Suspended status. |
| Suspended | The automated retry logic failed to obtain successful payment, or you have explicitly suspended the subscription. A suspended subscription can be resumed for the next billing cycle: a different payment method can be collected from the customer and the subscription reactivated, or the subscription can be canceled and a new subscription created for the customer. |
| Cancelled | You have explicitly cancelled the subscription, and it cannot be reactivated. You might cancel an active or pending subscription when you and the customer agree to end the subscription. You might choose to cancel a delinquent subscription rather than wait for the automatic retry logic to proceed. You might cancel a suspended subscription if the customer does not have an acceptable alternate payment method. Important: You cannot cancel a subscription within 10 minutes before or after a payment begins processing. |
| Completed | All scheduled payments were made. This is the state of a subscription that ends with all scheduled payments successfully completed. This state applies to subscriptions set up with a scheduled end date. Important: You cannot reactivate a completed subscription. |
Zero-Amount Authorization
When a subscription is created before the start date, a zero-amount authorization is automatically performed to validate the payment instrument. The authorization validates the address, card verification number (CVN), and expiration date.
When a subscription is created on the start date, no zero-amount authorization is performed: the first payment is processed immediately.
Plan Overrides
When assigning or amending a subscription with a standard plan, you can override specific plan details for the individual subscription. Plan overrides apply only to the individual subscription and do not amend the standard plan details used for other subscriptions.
Account Validation
Account validation is performed using a zero-amount authorization when a subscription is created before the start date. The validation checks:
- Address Verification Service (AVS)
- Card verification number (
CVN) - Expiration date
If your processor does not support zero-amount authorizations, recommends enabling the Data Enrichment for Card Verification feature. See the Payment Services Optional Features Supplement.
For more information about account validation, see the Payments Developer Guide.
Additional Features
Recurring Billing includes several features to help manage payment failures, customer notifications, and third-party integrations.
System Retry Logic
When a payment fails due to an internal error, the system retries the payment until the error is resolved.
When a payment fails due to an external error (such as a declined card), the system retries the payment based on the billing frequency before changing the subscription status to suspended.
If the response contains a "Do Not Retry" reason code, the subscription is immediately suspended without retries.
The maximum number of retries is five. During the retry period, the subscription status changes to Delinquent.
This table describes the retry schedule by billing frequency:
| Billing frequency | Retry interval | Maximum retries |
|---|---|---|
| Daily | 1 hour | 1 |
| Weekly | 1 day | 3 |
| Monthly | 2 days | 5 |
| Yearly | 15 days | 3 |
For a custom billing frequency, the system uses Daily retry logic first, then Weekly retry logic every two weeks.
Customer Notifications
Email notifications are sent to customers for these events:
- Prepayment notification
- Successful payment notification
- Failed payment notification
Notifications are sent from a email address.
You can disable customer notifications in the Recurring Billing settings.
Email templates use these variables:
${paymentDate}: the date the payment is processed.${subscriptionId}: the subscription ID.${subscriptionName}: the subscription name.${billingAmount}: the billing amount.${currency}: the currency.${setupFee}: the set-up fee.${transactionId}: the transaction ID.${merchantName}: the merchant name.
Merchant-Initiated Transactions (MIT)
For information about using Merchant-Initiated Transactions and credentials on file for Visa, Mastercard, and Discover, see the support article on MIT and COF.
Decision Manager Integration
Recurring billing transactions are considered low risk and are not submitted to Decision Manager for fraud screening.
You can access Decision Manager documentation by logging in to the .
Account Updater
Account Updater is integrated with Recurring Billing. Account Updater automatically keeps subscriptions current when a customer's card information changes, including:
- New expiration date
- New card number
- New card brand
Account Updater can be enabled by contacting a representative. For more information, see the Account Updater Developer Guide.
Thanks for your feedback!
Last published: September 29, 2026