Skip to main content

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:

StatusDescription
DraftThe plan exists but has not been activated. Draft plans can be fully amended.
ActiveThe plan is available for use with subscriptions. For active plans, only planInformation.billingPeriod, planInformation.billingCycles, and orderInformation.amountDetails.currency can be amended.
InactiveThe plan has been deactivated. You cannot amend an inactive plan. To make changes, the plan must first be moved to active or draft status.
DeletedThe 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

StatusDescription
PendingThe first payment is scheduled, or the subscription is in transition to another state.
ActiveThe 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.
DelinquentWhen 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.
SuspendedThe 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.
CancelledYou 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.
CompletedAll 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 frequencyRetry intervalMaximum retries
Daily1 hour1
Weekly1 day3
Monthly2 days5
Yearly15 days3

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.

Last published: September 29, 2026