Support Center

Recurring Billing FAQ

Can a customer have duplicate subscriptions? 

Absolutely. A subscription only requires a valid payment method and there is no maximum imposed on the number of subscriptions that can be tied to a card. These subscriptions can effectively be copies of one another without issue. It's worth noting that duplicate subscriptions are not subject to duplicate transaction rules

Additionally, you can have multiple subscriptions for each customer under different plans. You can actually create as many subscriptions as you would like for each payment method token and each subscription can be for whatever plan you have configured in the gateway. The process for creating subscriptions under multiple plans is the same as if you were creating only one subscription for the customer. Basically, you’re just going to use the payment method token and the plan ID to create a new subscription, regardless of how many subscriptions are already on the card, as outlined in our developer documentation.

You can also do this manually within the gateway by following the steps outlined here.

Back to top

Can I update the price of a subscription? 

Yes! If you update a plan's price this will only affect future subscriptions. Any subscription that was already associated with the plan will continue to have the original price. If you would like to have all subscriptions associated with the plan to have the new price, you'll have to update the existing subscriptions. 

The easiest way to do this is via the API, particularly if you have a number of subscriptions to update. You can also make these changes manually in the Control Panel by doing the following:

  1. Go to Search -> Subscriptions
  2. Adjust the search options on the Subscription Search page to provide the list of subscriptions that you want to update
  3. Click Search
  4. Click Edit next to a subscription
  5. Update the price associated with the subscription under Subscription Details -> Price
  6. Click Save
  7. Repeat the above steps for all of the remaining subscriptions

Please note that if you have proration enabled and you increase the price, Braintree will create a prorated transaction based on the change in price for the remainder of the billing cycle. If you decrease the price, the change will take effect in the next billing period. Proration can be configured for use with upgrades and/or downgrades and is outlined in detail in our developer documentation.

Back to top

Without a trial period, can I charge a customer immediately but delay the next charge so that all of my subscriptions charge on the same date?

The billing date is a subscription attribute set at the time the subscription is created. Since this isn’t an updateable field, it’s not possible to charge the customer initially on the 10th of the month, then alter the subscription to charge on the 1st of the month.

An alternative would be to vault the customer’s card, immediately run a one-time transaction for the signup cost, then create a subscription which bills on the desired day of month.

Back to top

Can I “hold” the funds on a customer’s card to guarantee that the next charge goes through? 

Our recurring billing system is designed to charge customers upfront for services merchants render. Because of this, all recurring billing transactions initiated by Braintree's system are authorized and submitted for settlement at the same time. This means that you cannot authorize the transaction days or weeks before it’s submitted for settlement as a way of ensuring the transaction will be approved. This flow ensures that payment is collected before a service is provided, meaning you won't have a situation in which you've already provided a service and cannot collect payment. 

That being said, you can setup retry logic within the Braintree Control Panel to automatically retry failed recurring billing transactions at a set interval. This may help you to have fewer Past Due subscriptions and ensure that your customers are up to date in their payments. 

Back to top

The subscription price will vary month to month. How does it work and what are the best practices? 

​This will require some logic on your end that keeps track of the price you would like to charge each billing cycle. Your server would then issue a subscription update call with the new price before each billing cycle. If you're using this model, you'll want to make sure that you are not using proration.

Back to top

Can I download a subscription history report from the Control Panel? 

​By going to Search -> Subscriptions in the Control Panel, you can run a search for all of your subscriptions. The results will display the following information about your subscriptions:

  • Subscription ID
  • Plan Name
  • Price
  • Trial Period
  • Billing Cycle
  • Customer Name
  • Status
  • Actions available
  • Edit
  • Cancel
  • Retry (if applicable)

You can download these subscription details as a .csv file by clicking the Download Subscriptions button. If you want to download a report of your Add-ons and Discounts, those can be downloaded as a separate .csv.

If you wish to retrieve information that's not provided in the downloads (e.g. cancellation date), we recommend setting up a Subscription Canceled webhook and storing the data in a local database. If you have additional questions in this regard, please email us for assistance.

Back to top

Can I use Braintree to offer free subscriptions that don't require a credit card? 

Because you need to associate subscriptions with a live credit card, ​we don't explicitly support free or $0 subscriptions. This is something that you could handle on your end using a combination of a trial period and discounts, but a credit card would need to be collected if you wish to use Braintree's recurring billing system. If you'd like to expound a bit on what you're trying to accomplish, contact us and we can discuss the best workflow for your use-case.

Back to top

Thoughts or suggestions about this article? Let us know!

Contact Us
seconds ago
a minute ago
minutes ago
an hour ago
hours ago
a day ago
days ago
Invalid characters found