If you run an e-commerce store you're well aware that chargebacks on credit card transactions can be costly. You may also occasionally have upset customers if you charge a card right away and take a few days to ship the order. One of the strategies you can use to avoid these problems is to capture the payment when you ship the order instead of automatically capturing it during checkout.
Wait – What Does Capturing a Charge Mean?
There are a couple things that a payment processor can do with a credit card during checkout. It can capture a charge, it can authorize a charge, or it can do both at the same time.
Authorizing a Charge
The first thing a processor can do is authorize a charge. Authorizing a charge ensures that the account has enough credit in it for the transaction but no cash is transferred.
A good example of this would be a restaurant. A restaurant might authorize an amount slightly higher than the bill. This practice makes sure that there is enough credit in the account to pay for the bill and a possible tip.
Capturing a Charge
Now that you know what authorizing a charge means you probably have a pretty good idea what capturing a charge means. If you have already authorized the funds you can capture them which allows you to capture up to the amount authorized. Usually this can be done up to seven days after the initial authorization.
Authorizing and Capturing
The last option which is usually the default option in e-commerce is to authorize and capture at the same time. A good example would be a grocery store. There's no need to capture the charge later that day so you might as well capture the funds right away.
So When Do You Capture A Charge?
So do you capture charges immediately or should you capture them later? My suggestion is that if your deliverables are all automatic (ex. downloadable products) you should capture the charge immediately. There's no benefit to waiting. If your deliverables have to be shipped you might be capturing the charge too early. The user may want to add something to their order and cancel the charge (ugh). Capturing when you ship the order minimizes that risk.
Payment Gateways With the Most Flexibility
Unfortunately while this sounds really nice not all payment gateways allow you to do this easily. There are three WooCommerce payment gateways that do this pretty well: Stripe, Braintree, & Authorize.net AIM.
Stripe & Braintree allow you to authorize charges and you can manually charge them later. The only downside is that you have to manually log into the payment gateway and make the charge. Kind of a pain in the butt and to be honest I don't know if it's worth it.
Authorize.net AIM on the other hand is an awesome solution. They give you a menu on the edit order page which allows you to capture the charge right there. Now that's a nice user experience.
Happy capturing!
Hey Patrick! Thanks for another great tutorial :). We do love the ability to capture charges later, especially in the situations that you’ve mentioned. You can actually do this per order or in bulk for several orders with Authorize.net AIM.
Others that can do this that I know of – since they’re from SkyVerge 😉 – Chase Paymentech, NETbilling, Intuit QBMS, Moneris, and Mollie. Braintree will be able to do so within the next month or two!
Hi Beka,
I came across Patrick’s site searching for a solution to my current dilemma.
I posted something about this to the SkyVerge FirstData payment gateway extension product page too on the SkyVerge.com site. My client wants to authorize funds only until the product is shipped. However, we have WooCommerce hooked to ShipStation so that it will make the warehouse guys jobs easier to print the label and mark the order as complete in WooCommerce.
Shipstation’s WooCommerce extension will change the order status to “Completed” when the FedEx label is printed in the warehouse. However, right now our tests show it doesn’t trigger the capture of the authorized funds when the order is set to Completed.
I wanted to see if there is a hook/function that can trigger the Capture Charge in the FirstData payment gateway extension for the order when it is set to Completed to help automate the capturing of funds when the guys ship the product.
If there is a reason why this shouldn’t be automated, I’m all ears.
Thanks!
Only problem with this is if you wait more than 24 hours to capture you can be hit with “interchange” fees. Check what the policies are for Visa and MC (and any other card regarding) you accept.
Thanks, very simply explained.