Shopify Payments: Unraveling Manual Capture in Test Mode (Online vs. POS)
Hey there, fellow store owners! Let's talk about something that often trips up even the most seasoned Shopify users: testing payment flows, specifically when you want to manually capture payments. It sounds simple enough, right? Flip a setting, run a test transaction, and watch the magic happen. But as a recent lively discussion in the Shopify community showed, it's not always that straightforward, especially when you bring Shopify POS into the mix.
Our friend Paul (p_mac in the forums) kicked off a thread because he was trying to test a delayed payment capture workflow in his non-production store. He had Shopify Payments in test mode and had set his Payment capture method to Manually. Yet, payments were still being automatically captured on checkout. Talk about frustrating!
The Initial Head-Scratcher: Why Won't My Payments Stay Authorized?
Paul's initial problem is a classic one, and it sparked some great insights from the community. When you're trying to get a payment to sit in an 'Authorized' state, waiting for you to manually capture it later, there are a few common pitfalls that Ecom_swift_LLC and Josh-FiveAcreCode quickly helped uncover:
- Bogus Gateway vs. Shopify Payments Test Mode: This is a big one! As Ecom_swift_LLC pointed out, many development stores default to the 'Bogus Gateway'. While useful for basic testing, it often auto-captures transactions instantly, regardless of your manual capture settings. To truly test the authorize/capture gap, you need to be using Shopify Payments itself in test mode. Make sure your store has Shopify Payments set up and test mode toggled on in
Settings > Payments. - Using the Right Test Cards: Josh-FiveAcreCode emphasized that for Shopify Payments in test mode, you need to use specific test card numbers. For example, a Visa number like
4242 4242 4242 4242. Avoid using real card numbers (obviously!) and also be cautious with Apple Pay, Google Pay, or local payment methods during these specific tests, as their behavior can sometimes differ. - Checking the Transaction Status: After a test checkout, always dive into the order in your Shopify Admin. You should see the payment sitting as
Authorized, notPAID. If you're seeing a transaction type ofSALE, as Paul initially did, that's a clear indicator it was automatically captured.
So, for anyone looking to test manual payment capture specifically for their online store orders, here’s a quick rundown of the steps:
Setting Up Manual Payment Capture for Your Shopify Online Store (Test Mode)
- Enable Shopify Payments Test Mode:
- Go to your Shopify Admin.
- Navigate to
Settings > Payments. - Under 'Shopify Payments', click 'Manage'.
- Scroll down and ensure 'Test mode' is checked. Save your changes.
- Set Payment Capture Method to Manually:
- Still in
Settings > Payments, find the 'Payment capture method' section. - Select 'Manually capture payment for orders'. Save your changes.
- Still in
- Conduct a Fresh Online Checkout:
- Open your online store in an incognito or private browser window to ensure a fresh session.
- Add a product to your cart and proceed to checkout.
- When prompted for payment, use a Shopify Payments test card number (e.g.,
4242 4242 4242 4242for Visa, along with any future expiry date and CVV). - Complete the checkout.
- Verify Authorization in Admin:
- Go back to your Shopify Admin, navigate to 'Orders'.
- Find your test order. You should see its payment status as
Authorized. - You'll then see a 'Capture payment' button, allowing you to manually process the payment when you're ready.
The Plot Twist: Shopify POS Behaves Differently!
After a bit more back-and-forth, Paul had a classic "facepalming" moment
. He realized he should have mentioned a crucial piece of the puzzle earlier: he was testing through the Shopify POS app! This, as Ryan-BuildShed confirmed, makes all the difference.
Here's the key takeaway from that part of the discussion:
The normal payment capture setting in Settings > Payments that we just walked through only applies to online store orders. Shopify specifically states that POS orders aren’t affected by that setting. For card payments made through Shopify Payments on POS Pro, payments are authorized first and then automatically captured after a delay of up to 15 minutes. During that brief window, the order should show as Authorized, giving you a chance to cancel it if there’s a mistake. However, you cannot configure POS to behave like the Admin/online store setup where you leave the payment authorized indefinitely and capture it later.
So, unfortunately, if your goal is to test an indefinite delayed capture workflow through POS, it's just not designed to work that way. The POS system prioritizes quick, in-person transaction finalization, which means authorizations are always followed by an automated capture relatively quickly.
Bringing It All Together for Your Store
This community thread really highlights a critical distinction in how Shopify handles payments across its different sales channels. Whether you're just starting your journey to build a Shopify store or you're a seasoned merchant, understanding these nuances is incredibly important for accurate testing and smooth operations:
- Online Store: You absolutely have the flexibility for manual, delayed payment capture. Follow the steps above, ensure you're using Shopify Payments in test mode, and the correct test cards.
- Shopify POS: Expect authorizations to be followed by an automatic capture within about 15 minutes. There's a short window for cancellation, but not for long-term manual capture. This means your POS workflows need to account for this automated finalization.
Kudos to Paul for bringing this up and to Josh-FiveAcreCode, Ryan-BuildShed, and Ecom_swift_LLC for sharing their expertise and clearing up this common point of confusion. It's these kinds of discussions that make the Shopify community such an invaluable resource!