Docs
Delayed Capture & Saved Cards

Delayed Capture & Saved Cards

Authorize a card at checkout and capture later from the order screen — full, partial, or void — plus mandatory card saving and charging Square cards on file for unpaid orders.

Some stores don't want to charge the card the moment an order is placed — wholesale accounts that confirm stock before billing, made-to-order goods, or anywhere the final amount can change between order and fulfilment. Delayed capture places a hold on the customer's card at checkout instead of charging it; you capture the payment from the WooCommerce order screen when you're ready, for the full amount or less. Alongside it, Require Card Save stores every card used at checkout on the buyer's Square customer profile, and any saved card can be charged directly from the order screen for unpaid orders.

No extra plugins are needed — this is built into the Square payment gateway from 9.13.0. Nothing changes until you switch the settings on: by default, payments capture immediately at checkout exactly as before.

Authorize vs. capture

An authorization reserves the funds on the customer's card — the money is held but hasn't moved, and the order sits On hold in WooCommerce. A capture completes that payment and takes the money. Until you capture, you can also void the authorization, which releases the hold without charging anything.

Square keeps online authorizations for a maximum of 7 days. If you don't capture within that window, Square cancels the hold automatically and the customer is never charged.

Requirements

  • SquareSync for Woo Pro 9.13.0+ with the Square payment gateway enabled.
  • A connected Square account (the same connection your payments already use).

Enabling delayed capture

  1. Go to WooCommerce → Settings → Payments and open the Square gateway's settings
  2. Under Payment Capture, set Payment Action to Authorize only — capture later from the order screen
  3. Save changes
Square gateway settings showing the Payment Capture and Card on File sections
SettingWhat it doesDefault
Payment ActionCharge immediately keeps today's behaviour; Authorize only holds the funds and sets the order On holdCharge immediately
Capture on CompletedAutomatically captures the authorization when you change the order status to CompletedOff
Require Card SaveStores every card used at checkout on the buyer's Square customer profile — see Require Card SaveOff

What still charges immediately

Authorize only applies to plain card and digital-wallet payments. These flows complete their payment as part of checkout and always charge immediately, even with Authorize only selected:

  • Orders paying (fully or partly) with a Square gift card
  • Orders redeeming a loyalty reward
  • Orders containing a subscription or a gift card product
  • Orders split across locations (Split Orders by Product Locations)

Capturing a payment

Every authorized order gets a Square Payment box on its order screen showing the held amount and when Square will release it:

The Square Payment box on an order, showing the authorized amount, capture amount field, and Capture / Void buttons
  • Capture the full amount — leave the pre-filled amount and click Capture. The order is marked paid (Processing) and the Square order completes, so Square reporting records the sale as normal.
  • Capture a partial amount — lower the amount first. The payment is adjusted down before capture and the remainder of the hold is released back to the customer. Typical wholesale flow: edit the WooCommerce order to what you're actually shipping, then capture the new total.
  • Prefer the dropdown? Order actions has Capture Square payment (full amount) and Void Square authorization entries too.
WooCommerce Order actions dropdown showing the Capture Square payment and Void Square authorization actions

With Capture on Completed enabled, marking the order Completed captures automatically — and if that capture fails, the order returns to On hold with the reason in the order notes, so a Completed order never silently hides an uncollected payment.

Voiding an authorization

Click Void authorization in the Square Payment box (or use the order action). Voiding:

  • Cancels the payment on Square, releasing the hold on the customer's card
  • Cancels the attached Square order
  • Cancels the WooCommerce order and restocks it — on both platforms
  • Releases any synced discount-code redemptions the order had reserved

Cancelling the WooCommerce order does the same thing: an authorized order that's cancelled voids its hold automatically, so funds are never left reserved on a card for an order you've abandoned.

Stock and reporting stay accurate

Stock reduces once, when the order is placed (the authorization puts it On hold, which reduces stock like any paid order), and the reduction syncs to Square as usual. When you capture — even days later — the plugin prevents Square's own capture-time stock movement from deducting the sale a second time, and Square still counts exactly one sale for the order. Voiding restocks both sides. You don't need to do anything for this; it's automatic.

Require Card Save

Under Card on File in the same settings screen, Require Card Save replaces the optional "save payment information" checkbox: every new card used at checkout is stored on the buyer's profile in the Square Customer Directory, and a notice at checkout tells the customer their card will be saved.

  • Logged-in customers can reuse the saved card at future checkouts and manage it under My Account → Payment methods.
  • Guests are covered too — every order creates or matches a Square customer from the billing email, and the card attaches to that profile. Guests can't reuse it at checkout themselves (there's no account to list it under), but the card is fully chargeable from the Square Dashboard, Square Invoices, and the WooCommerce order screen.
  • Cards already saved keep working; paying with a saved card doesn't re-save anything.

Saving is always forced for subscription orders regardless of this setting, exactly as before.

Charging a saved card from the order screen

Any unpaid order (Pending, Failed, or On hold without an authorization) whose customer has cards on file gets the Square Payment box with a card selector and a Charge saved card button. Charging:

  • Creates the Square order and charges the selected card immediately for the current order total
  • Marks the WooCommerce order paid, with normal stock and reporting behaviour
  • Works for account customers and guest orders alike (guests are matched by billing email)
  • Only ever offers cards that belong to that customer's Square profile

This pairs naturally with delayed capture on longer timelines: if an authorization expires past the 7-day window, charge the customer's saved card instead of asking them to check out again.

Refunds

Captured payments refund exactly like any other Square payment — from the WooCommerce order screen or the Square Dashboard. An uncaptured authorization can't be refunded (there's nothing to refund yet) — void it instead.

Troubleshooting

The Square Payment box isn't on the order

The box appears on orders with a Square authorization (whatever its state), and on unpaid orders whose customer has saved cards. A paid order with no authorization history and no saved cards has nothing to show.

Capture says the payment can't be captured

The authorization has expired or was cancelled — Square holds online authorizations for at most 7 days. Ask the customer to pay again, or charge their saved card from the same box if they have one.

Partial capture was rejected

Whether an authorization's amount can be adjusted down depends on the card. If Square rejects the adjustment, the exact reason is added to the order notes — you can still capture the full amount and refund the difference afterwards.

Orders skip the authorization and charge immediately

That order used a flow that always captures at checkout — gift card payment, loyalty redemption, subscription, gift card product, or a location-split order. See What still charges immediately.

A customer's card isn't offered for charging

The card selector only shows cards on that customer's Square profile. For guest orders the customer is matched by billing email — if the email on the order differs from the one used when the card was saved, Square won't match them.