Search Developer Site

Recurring Billing

Automated Recurring Billing (ARB) enables you to automatically process installment-based credit card or eCheck.Net payments without having to store sensitive payment data, which is passed directly to Authorize.Net’s secure server. For Recurring Billing API reference information, see the API Reference Guide

A subscription is a set of multiple transactions, or payments, created for the purchase of an installment-based payment plan. The payment gateway then generates payments for the subscription later, based on a specified payment schedule and subscription period.

Subscriptions

A subscription functions the same whether a merchant creates, updates, and cancels a subscription in the Merchant Interface, or the merchant uses the Authorize.Net API. When a merchant creates a subscription in the Merchant Interface, he or she enters all required information into the Create New ARB Subscription form. When the merchant submits the information, the Subscription Confirmation page returns a message to the merchant indicating whether or not the subscription was created successfully. The subscription ID assigned for a successfully created subscription is also displayed.

The Authorize.Net API accomplishes the same functions through an XML call and subsequent XML response. Whether a subscription is created in the Merchant Interface or through the API, the results are the same. For descriptions and code samples of the API elements used for subscriptions, see the API Reference Guide.

Subscriptions do not process transactions in real time. Creating a subscription transaction successfully does not guarantee that subscription payments will process through your account successfully. Subscription transactions process at approximately 2:00 a.m. PST on scheduled payment dates. Therefore, the first scheduled transaction is not sent to the customer’s bank for authorization until approximately 2:00 a.m. PST on the start date that you specify when you create the subscription in your account. If you create a subscription with a start date that equals the creation date, the first scheduled payment does not process until after 2:00 a.m. the following day. If you wish to validate your customer’s payment information before creating their subscription in your account, use one of the real-time transaction processing methods, such as the Advanced Integration Method (AIM).

You can create, update, and cancel a subscription. Subscriptions contain the following information.

Subscription ID

The subscription ID is generated by Authorize.Net and is used to manage a subscription. It is also stored with any transaction generated by that subscription so that you can better track it.

Payment Schedule

Start Date — this date is the date of the first transaction. Credit card data is verified at this time.

Interval Units — intervals define the number of total charges to be made and on what schedule; for example, weekly or monthly.

Trial Period — for a trial period, you can specify an amount and then charge a different amount for the remainder of the subscription.

Payment Method

Credit Card — customers’ encrypted credit card information is stored on Authorize. Net’s secure servers. Note that the card code is not supported because it cannot be stored.

eCheck — customers’ banking information is stored on Authorize.Net’s secure servers.

Customer Information

Customer information includes:

  • Name
  • Billing address
  • Shipping address

TIP: The first transaction conducted after a subscription is created or edited is processed like any other transaction and is subject to the Address Verification settings of your account. Subsequent transactions are flagged as recurring when we send them to the processor. In most cases, the processor does not verify addresses for transactions flagged as recurring.

Subscriptions with a monthly interval whose payments begin on the 31st of the month occur on the last day of every month.

Here are a few things to keep in mind:

  • The subscription start date (subscription.paymentSchedule.startDate) may be updated only if no successful payments have been completed.
  • The subscription interval information (subscription.paymentSchedule.interval.length and subscription.paymentSchedule.interval.unit) may not be updated.
  • The number of trial occurrences (subscription.paymentSchedule.trialOccurrences) may be updated only if the subscription has not yet begun or is still in the trial period.
  • When the start date is the 31st, and the interval is monthly, the billing date is the last day of each month (even when the month does not have 31 days). All other fields are optional.

Payment Schedule

When you receive a response from the payment gateway with an Ok result code, your subscription has been successfully created. The response will include a subscription ID. Individual transactions, or payments, for a subscription are generated automatically after 2 a.m. PST by the payment gateway according to the designated payment schedule and subscription period. Each payment is viewable only in the merchant’s payment gateway account when it is actually generated.

For example, if a new subscription is created with a start date of June 6, with a monthly payment interval, the first payment for the subscription will not be viewable in the merchant’s payment gateway account until June 6. All subsequent payments will be visible on their scheduled dates.

If you create a new subscription with the first payment scheduled for the same day, the initial payment for the subscription will actually be submitted the next business day.

Merchant Notification

When a scheduled transaction in a subscription has been submitted, which is usually at 2 a.m. PST for ARB transactions, the merchant receives an email from the payment gateway indicating the transaction status.

A merchant can also configure his or her account in the Merchant Interface to receive the following ARB emails:

  • Daily Transaction Summary.
  • Failed Transaction Notice — sent when a payment in a subscription declines or receives an error response from the processor.
  • Subscription Due for Expiration — sent after the second-to-last payment in a subscription is submitted, to notify a merchant that the next payment is the final one in the subscription.
  • Credit Card Expiration — sent immediately after the last possible successful payment in a subscription, to notify a merchant that the credit card will expire before the next scheduled payment in the subscription.
  • Subscription Suspension — sent to notify a merchant that a subscription has been suspended. A subscription is suspended if the first payment in the subscription is declined, rejected, or receives an error response. Additionally, if a subscription is edited (for example, payment or shipping information is changed), the subscription is suspended if the first payment after the edits is declined, rejected, or receives an error response.
  • Subscription Termination — sent when a subscription is terminated. If a suspended subscription is not edited to fix the problem that caused the suspension, it is terminated on the next scheduled payment.
  • Subscription Expiration — sent after a subscription expires. Once expired, a subscription cannot be reactivated. Instead, a new subscription must be created. The Daily Transaction Summary email returns an Excel file in comma-separated value (.csv) format. The merchant will receive Successful.csv, Failed.csv, or both files.

Subscription Status

A subscription can have one of the following statuses at any given time.

Active An active subscription is currently scheduled to be charged at a specified interval, which does not necessarily mean that payments will be successful.
Expired The schedule of payments has ended.
Suspended When the credit card information for a subscription expires, the subscription becomes suspended. A suspended subscription is not charged until the merchant corrects the problem. The merchant has until the next run date to correct the problem, or the subscription is terminated.
Canceled The subscription was cancelled using ARBCancelSubscriptionRequest. A cancelled subscription no longer exists and cannot be reactivated.
Terminated When a merchant takes no action on a suspended account before the next runDate, the subscription is terminated. Once terminated, a subscription can no longer be reactivated and must be recreated.

Updating Subscriptions

You can update any of the values from the ARBCreateSubscriptionRequest by entering them in the ARBUpdateSubscriptionRequest. The only difference is that you must include the subscriptionId value that was returned in the ARBCreateSubscriptionReponse. Here are a few things to keep in mind:

  • The subscription start date (subscription.paymentSchedule.startDate) may only be updated if no successful payments have been completed.
  • The subscription interval information (subscription.paymentSchedule.interval.length and subscription.paymentSchedule.interval.unit) may not be updated.
  • The number of trial occurrences (subscription.paymentSchedule.trialOccurrences) may only be updated if the subscription has not yet begun or is still in the trial period.
  • If the start date is the 31st, and the interval is monthly, the billing date is the last day of each month (even when the month does not have 31 days).

All other fields are optional.

Cancel Subscription Request

To cancel a subscription, call ARBCancelSubscription and enter the subscriptionId. If this call is successful, the subscription will no longer exist in our system.

Subscription Reporting

Detailed subscription information is included in the Transaction Details API. For more information, see the Transaction Details Reporting Guide.