Skip to main content
Payment Capture

How to avoid missing payments on your post purchase orders

Pierre Gravelle avatar
Written by Pierre Gravelle
Updated over 4 months ago

If your store is using Manual Payment Capture, you may be seeing some in a partially paid status. This article will show you how to resolve this issue while retaining your Manual Payment Capture settings.

Why This Happens

If your store is using a fraud detection app (e.g. NoFraud or Riskified), the fraud detection app might not natively support post-purchase upsells.

In these cases it will often capture payment for the order too early, before the post-purchase upsell is added. The post-purchase upsell payment will be authorized, but only the initial payment would be captured. Such an order would be shown as Partially paid.

How to Fix It

First, you'll need to confirm that you're currently on Manual Payment Capture. If you aren't, then unfortunately the rest of this article won't apply to you.

Confirm Your Payment Capture Settings

Your store may have an automatic payment capture system set up, yet still have the Shopify Manual Payment Capture setting enabled. You can confirm your store’s payment capture settings:

Shopify Admin > Settings > Payments > Payment Capture (Manage)

If you're currently on Manual Payment Capture, continue reading!

Creating a Shopify Flow

The simplest solution to ensure that all payments for an order are captured is to use a Shopify Flow. Below is an image of a Shopify Flow that achieves this:

Explaining the Flow

This flow has 3 steps:

  1. A Trigger is put in place to ensure you only start the flow when an order transaction has been created

    1. The first transaction for an order is created when the customer places the order.

    2. An additional transaction is created if the customer accepts the AfterSell post-purchase upsell
      Our goal is to capture payment on the second transaction, so we will check some conditions in the next step

  2. Conditions are put in place to ensure the flow only continues in certain scenarios

    1. We only want this flow to continue if the transaction that was created is from a post-purchase upsell

    2. We also don’t want to run this flow if payment for the original order hasn’t been captured yet. This flow is only supposed to capture additional payment that was missed

    3. If there hasn’t been any payment captured yet, then we will do nothing in this flow and assume that the regular payment capturing system will capture the full amount

  3. Capture payment once all of your checks have passed.

    1. This will capture the payment only for the extra amount from the post-purchase upsell. Problem solved


After implementing the flow above, if you are using external fulfillment services please ensure that the payment capture Flow doesn't have unintended effects on your fulfillment.

For more details on fulfillment, please see our Fulfillment Documentation by clicking the button below:

Did this answer your question?