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

How to authorize a WooCommerce payment at checkout and capture it only after you approve the order: gateway settings, hold windows and a safe approval flow.

Our content is written and reviewed by the Four Cents team. We may recommend our own services. Read our editorial standards.

On this page

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.

Frequently asked questions

Is an authorization the same as a charge?

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.

How long can a WooCommerce authorization be held?

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.

Can I capture less than the authorized amount?

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

Does manual capture work with WooCommerce Subscriptions?

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.

Will customers think they were charged twice?

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.

About the author

Hamza Hai

Founder, Accountant & Project Manager, Four Cents

Hamza Hai is a founder of Four Cents and its accountant and project manager. She keeps projects on track and the numbers clear.

She manages timelines, scope and client communication, so there are no surprises for clients along the way.

She writes the guides on WPDeveloper.ca, including its WordPress planning guides. They draw on the quoting and scoping work she does for Four Cents clients every week.

Areas of expertise

  • Software and app project management
  • Development costing and estimates
  • Project scoping
  • Budgeting for software projects

All articles by Hamza Hai (128 on Four Cents WordPress Studio)

Reviewed by Zee, Founder & Lead Developer, Four Cents

Zee leads every Four Cents build as the senior full-stack engineer, from the first call to launch and beyond, and technically reviews the articles on this site.

Our editorial standards: who writes and reviews our articles, where our prices come from and how to report a correction.

Start here

Get a fixed quote in 24 hours

Tell us what is wrong or what you need. Within 24 hours you get a written, fixed price or the questions we need answered to give you one.

  • A reply within 24 hours
  • Fixed price agreed before any work starts
  • You own the code, content and accounts

Site down or hacked right now? Call +1 (365) 440-1786 or email info@fourcents.ca.

Request your fixed quote

Fields marked with an asterisk are required. Phone and budget are optional.

Please enter your name.

Please enter a valid email address.

Please tell us a little more (10 characters or more).

That phone number does not look right. Check it, or leave it blank.