Shopify POS vs. Online Store: Decoding Manual Payment Capture in Test Mode
Hey everyone! As your friendly Shopify expert, I often dive into the community forums to see what real store owners are grappling with. It’s always fascinating to see the unique challenges and brilliant solutions that emerge. Recently, a thread titled "Manually capture payments in test mode" caught my eye, and it turned into a fantastic discussion that really highlighted some subtle but critical differences in how Shopify handles payments, especially when you throw Shopify POS into the mix.
The original question came from Paul (p_mac), who was trying to test a delayed payment capture workflow on his non-production store. He wanted payments to be authorized, but not captured immediately, giving him time to review orders before finalizing the charge. He’d set his store’s Payment capture method to Manually in his Shopify Payments test mode, but to his surprise, payments were still being automatically captured right after checkout. Frustrating, right?
Untangling the Initial Payment Puzzle: Bogus vs. Shopify Payments Test Mode
This is a common hurdle many merchants hit, and the community was quick to jump in with some initial troubleshooting. One of the first things Ecom_swift_LLC pointed out was a classic gotcha: the distinction between Shopify’s default “Bogus Gateway” and Shopify Payments in actual test mode. Many development stores default to the Bogus Gateway, and here’s the kicker: transactions through the Bogus Gateway always auto-capture instantly, regardless of your manual capture setting. It’s designed for basic functionality testing, not for granular payment flow. So, if you're seeing payments go straight to PAID and the transaction type is SALE, this could be your culprit.
To properly test manual capture, you absolutely need to be using Shopify Payments itself, with test mode toggled on in your store's Settings > Payments. Then, you use Shopify’s specific test card numbers (like Visa: 4242 4242 4242 4242) to simulate transactions.
How to Properly Test Manual Capture for Online Orders
Josh-FiveAcreCode later confirmed this setup works perfectly for online store orders. Here’s a quick rundown of what he and others advised to ensure your online store orders are set up for manual capture:
- Set Capture Method to Manually: Head to Settings > Payments in your Shopify Admin, find your Shopify Payments provider, and ensure the payment capture method is set to
Manually. - Start a Fresh Online Checkout: It’s always best to use an incognito or private browser window to avoid any cached data.
- Avoid Express Payment Methods: Stick to traditional credit card entry. Don't use Apple Pay, Google Pay, or other accelerated checkout methods for this specific test, as their behavior can sometimes bypass certain manual capture settings due to their pre-authorized nature.
- Use a Shopify Payments Test Card: For Visa, use
4242 4242 4242 4242. Shopify provides other test card numbers for different card types too. - Verify in Admin: After the "purchase," check your order in the Shopify Admin. The payment status should show as
Authorized, and you'll see a prominent "Capture payment" button. This confirms your manual capture is working as expected for online orders.
Paul confirmed he was indeed using Shopify Payments test mode (shopify_payments gateway) and still seeing SALE transactions and PAID orders. This ruled out the Bogus Gateway issue for him, which made the puzzle even more intriguing.
The Missing Piece: Shopify POS Changes Everything
This is where the discussion took a crucial turn. Paul had a bit of a "facepalm" moment (complete with a
emoji!) and realized he’d left out a vital piece of information: he was trying to test this delayed capture workflow through the Shopify POS app.
And this, my friends, is the key takeaway from the entire discussion. As Ryan-BuildShed clearly explained in his final reply, the normal payment capture setting in Settings > Payments only applies to online store orders. Shopify explicitly states that POS orders are not affected by that setting.
For Shopify Payments on POS (specifically POS Pro), the workflow is different:
- Card payments are initially authorized.
- They are then automatically captured after a brief delay, typically up to 15 minutes.
During that short 15-minute window, the order will show as Authorized, giving you a small window to cancel it if there’s a mistake. However, you cannot configure Shopify POS to behave like the Admin/online store setup where you can leave a payment authorized indefinitely and capture it much later. The POS system is designed for immediate, in-person transactions where the expectation is that the payment will be completed shortly after authorization.
Why This Nuance Matters for Your Store
This distinction is incredibly important for store owners, especially those running both an online presence and a brick-and-mortar or pop-up shop using Shopify POS. If your business model relies on a delayed capture workflow – perhaps for custom orders, pre-orders, or fulfilling items that aren't immediately available – you need to be aware that this functionality behaves differently between your online store and your POS system.
For online orders, you have the flexibility to authorize and capture later, which is fantastic for managing inventory, fraud checks, or simply ensuring an item is ready to ship before the customer is fully charged. But for POS, that immediate capture (within 15 minutes) is the standard. This means your testing strategies and operational procedures need to account for these differing behaviors.
The biggest lesson here, as always, is to be super clear about the context of your questions when seeking help, and to remember that different parts of the Shopify ecosystem (like online store vs. POS) can have their own specific rules and workflows. This community discussion was a perfect example of how diving into the specifics really helps uncover these vital distinctions. So, next time you're troubleshooting a payment flow, remember to ask yourself: am I testing an online order or a POS transaction?