Get a Free Quote

WooCommerce Authorize and Capture: Charge Only After You Approve an Order

Some stores cannot charge the card the moment an order arrives. Stock has to be confirmed, a quote has to be checked, or a made-to-order job has to be accepted. WooCommerce can hold the payment instead of taking it, then charge once you approve. This guide covers how that works, which gateways support it, how to set it up without losing sales, and what to tell the customer.

The short answer

You need a payment gateway set to authorize at checkout and capture later, so the customer's card is checked and the funds are held but no money moves until you approve the order. In WooCommerce this is usually a setting in the gateway, often called manual capture, authorize only, or capture on order status change. The order then sits in a holding status until someone in your team captures the payment from the order screen.

This is the right setup for made-to-order goods, stock you have to confirm, custom quotes, wholesale accounts and anything where you might have to cancel before shipping. It is not a workaround for slow stock control, because authorizations expire. The rest of this guide covers how the flow works, which gateways support it, how to set it up safely, and the mistakes that cost sales.

How authorize and capture actually works

An online card payment has two separate steps that most stores run together. Splitting them is what gives you an approval step.

StepWhat happensWhat the customer sees
AuthorizationThe gateway checks the card and reserves the amountA pending or held amount on their statement, not a charge
CaptureYou confirm and the funds move to youThe charge settles and appears as a normal purchase
Void or cancelYou release the authorization before captureThe hold disappears, usually within a few days
RefundYou return money after captureA refund on the statement, which takes longer than a void
ExpiryThe hold lapses if you never capture itThe hold drops off and you have no payment

The point that catches stores out is expiry. Authorizations do not last forever, and the window varies by gateway, card type and country. Confirm the window in your gateway's own documentation and build your approval process to finish comfortably inside it.

Thinking about a new WordPress website?Get a free consultation and a fixed-scope quote. A senior engineer replies within 24 hours. No obligation.
Get a Free Quote

Which gateways support it

Support depends on the gateway and its WooCommerce extension, not on WooCommerce itself. Several of the major gateways, including Square, Stripe, PayPal and Authorize.net, offer some form of authorize now and capture later, but the setting name, the hold window and the partial capture rules differ, so check the extension's documentation for your account and country before you promise a workflow to your team.

  • Look for the wording. In extension settings this appears as a transaction type or capture mode, with options along the lines of authorize and capture, or authorize only.
  • Check partial capture. Some gateways let you capture less than the authorized amount, which matters if quantities change. Others require the full amount or a void and a fresh payment.
  • Check the hold window. This decides how long your approval step can take.
  • Check subscriptions and saved cards. Recurring payments usually behave differently from one-off orders.

For a wider comparison of what each gateway does well, see our guide to WooCommerce payment gateways, and the setup walkthroughs for Square and Stripe.

Setting it up in WooCommerce

The setup is short. The discipline around it is what makes it work.

  1. Test on a staging copy first. Never change payment settings on a live store. Use the gateway's sandbox or test mode.
  2. Switch the gateway to authorize only. In the extension settings, change the transaction or capture mode.
  3. Decide the holding status. Authorized orders should land in a status your team treats as an approval queue rather than as paid.
  4. Agree who approves. Name the person and the deadline. An approval step with no owner is how authorizations expire.
  5. Capture from the order. Most extensions add a capture button or a status change that triggers capture. Confirm the money arrived in the gateway dashboard, not just in WooCommerce.
  6. Void promptly when you decline. Release the hold as soon as you know the order is not going ahead.
  7. Fix the customer emails. The order confirmation should say the card has been authorized and will be charged when the order is approved.

If you are building the store from scratch, our guide on how to build a WooCommerce store covers the order statuses and emails this depends on, and adding a payment gateway in WooCommerce covers the basic connection.

An approval workflow that does not lose sales

Aim to approve or decline every held order well inside the authorization window, with a clear message to the customer at each step. Most complaints about this setup are about silence, not about the hold itself.

  • Tell the customer at checkout. A line above the payment button explaining that the card is authorized now and charged on approval prevents most support tickets.
  • Alert the approver. Send held orders to a shared inbox or channel, not to one person's email.
  • Set a daily cut-off. Same-day review is a promise you can keep. Reviewing when someone remembers is not.
  • Log the decision. Add an order note saying who approved it and why, which is invaluable in a dispute.
  • Watch the queue. Any order approaching the end of the hold window needs a decision today, or a void and a fresh payment link.
Ready to bring your WordPress project to life?Get a free consultation and a fixed-scope quote. A senior engineer replies within 24 hours. No obligation.
Get a Free Quote

What goes wrong

Four failures account for most of the trouble.

ProblemCausePrevention
Expired authorizationApproval took longer than the hold windowA named owner, a daily cut-off and a queue report
Customer thinks they were charged twiceThe hold appears, then the capture appears before the hold clearsExplain it at checkout and in the confirmation email
Stock sold twiceHeld orders do not reserve stock in the way the team assumesConfirm how your setup handles stock, and test it
Amount changed after checkoutShipping or quantity changed and the gateway cannot capture moreCapture less if supported, otherwise void and send a new payment

Keeping the checkout secure

Manual capture does not change your security duties. Card data should never touch your server: use the gateway's hosted fields or its own checkout so the card details go straight to the gateway, keep the site on HTTPS everywhere, and keep the gateway extension updated like any other plugin.

Beyond that, the basics that protect a store are the ones that protect any WordPress site: strong administrator accounts with two-factor authentication, limited admin access for staff who only process orders, tested off-server backups and an update routine. Our WordPress security guide covers those, and the payments side is worth a conversation with your gateway about fraud rules and strong customer authentication in your market.

Before you go live

  • Manual capture tested end to end in sandbox mode, including a void and a refund.
  • The hold window confirmed in the gateway's documentation.
  • Order statuses set so held orders cannot be treated as paid.
  • A named approver and a daily deadline, with a shared alert.
  • Checkout copy and the confirmation email explain the hold in plain language.
  • Partial capture rules known and written down.
  • Stock behaviour tested with two orders for the last item.
  • Staff accounts limited to the permissions they need.
  • Gateway dashboard checked after the first live capture.
Want a clear plan and price for your website?Get a free consultation and a fixed-scope quote. A senior engineer replies within 24 hours. No obligation.
Get a Free Quote

Next step

If you want held orders, an approval queue and a checkout that explains itself, that is a short piece of configuration plus a workflow your team will actually follow. Tell us which gateway you use and what you need to check before charging, and we will confirm what your gateway supports and set it up on a staging copy first. See our WooCommerce development service or use the contact page.

Need approval before you charge? Tell us your gateway and your order flow. A senior developer replies within 24 hours with a setup plan.
Hamza Hai

Hamza Hai writes about WordPress development, performance and growth for Canadian businesses.

FAQ

Frequently asked questions

No. An authorization checks the card and reserves the amount, so the customer sees a pending hold rather than a completed payment. The money only moves when you capture it.

It varies by gateway, card type and country, so check your gateway's documentation. Build your approval step to finish comfortably inside that window, because an expired authorization leaves you with no payment.

Some gateways allow partial capture and some do not. Confirm this before you promise customers that quantities can change after checkout.

Recurring payments behave differently from one-off orders, and not every gateway handles both the same way. Test a renewal in sandbox mode before relying on it.

Some will, because the hold can still be visible when the capture appears. Say at checkout and in the confirmation email that the card is authorized now and charged on approval.

Have a project?

Let's Build Your Next WordPress Website

Get a free consultation and a fixed-scope quote. No obligations.

  • Free Consultation
  • No Hidden Costs
  • 100% Confidential

Request your free quote

Tell us what you are building. A senior engineer replies within 24 hours.

Please enter your name.

Please enter a valid email address.

Please tell us a little more about your project (10+ characters).

No obligation. Your details are only used to prepare your quote.