All authorizations expire, though the time frames differ by payment method. This is a common challenge for businesses that wait to collect funds until they are ready to ship their products or provide their services. Below are some options and limitations to be aware of when managing your authorization workflow.
Merchants in some industries may want an authorization to stay active on a customer's account for longer than the timeframe established by the customer’s bank. There are two ways to do this in the Braintree gateway—one which we recommend, and one which we don’t; it’s up to you to decide what works best for your business.
- Store the customer's payment method in the Vault
- For credit cards, use card verification to ensure that the card is valid
- Store the customer ID and/or payment method token in your business’s database
- When you’re ready to collect funds, create a transaction from the Vault
- Little development work needed
- May save you money in fees, compared with the alternate option
- No guarantee that the customer has sufficient funds
- No guarantee that the customer’s account will be active at the time of the charge
Because of the complications that this method can introduce to your customers and your developers, we don’t recommend it as a standard workflow. However, if you decide that this is the best fit for your business, you will need to create logic on your end that identifies the payment method type from the details returned in a results object and then implement rules based on the payment method type’s expiration timeframe. Here’s a suggestion of what this logic could look like:
- Create a transaction to authorize the amount you plan to charge; do not submit for settlement yet
- Void the transaction within the appropriate expiration timeframe
- Create a new transaction to authorize the amount again; do not submit for settlement yet
- Repeat steps 2 and 3 if you need to continue to extend the authorization
- When you’re ready to collect funds, submit the latest transaction for settlement
- Can guarantee that the customer has sufficient funds
- Considerable development work needed
- May cost more in fees
- May result in duplicate pending transactions on a customer’s account, preventing them from using those funds
Still have questions?
If you can’t find an answer, contact our Support team.