> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Shopify post-purchase API limitations

> The platform-level limits of Shopify's Post-Purchase Extensions API that decide whether a post-purchase offer can appear: order and checkout requirements, payment restrictions, and platform caps.

Shopify's **Post-Purchase Extensions API** has platform-level limits that decide whether a post-purchase offer can appear at all. They apply to **every** post-purchase app, not just Aftersell, and Aftersell cannot override them. When an order doesn't meet them, Shopify skips the post-purchase page (the original order still completes normally). This page is the canonical list of those limits; [Thank You Page upsells](/aftersell/how_can_i_set_up_and_customize_thank_you_page_upsells_in_aftersell) are the standard way to reach customers whose orders can't show one.

<Info>
  Shopify's own [post-purchase checkout extension documentation](https://shopify.dev/docs/apps/build/checkout/product-offers#limitations) is the **source of truth** for these limitations and may change at any time. Where this page and Shopify's disagree, Shopify's is correct. If you notice a difference, let the docs team know so we can update this page.
</Info>

## Order and checkout requirements

The order must meet **all** of the following, or Shopify will not show the post-purchase page:

| Requirement | What it means |
| - | - |
| **Minimum order value** | At least \$0.50. Fully discounted or free orders don't qualify. |
| **Store default currency** | The order must be placed in the store's default currency. Orders in a non-default currency or Shopify Markets market are skipped, even if the payment itself is supported. See [Does multi-currency checkout impact Aftersell?](/aftersell/does_multi_currency_checkout_impact_aftersell) |
| **No duties or landed costs** | Orders that include duties or landed costs don't qualify. |
| **Shipping destination country** | The order needs a shipping address with a destination country. Digital-only orders and local pickup collect no shipping address, so they can't show post-purchase offers. |
| **No local delivery or pickup** | Orders using local delivery or local pickup are skipped. |
| **Supported sales channel** | Only the Online Store, a supported headless or custom storefront channel, or a draft-order payment link. POS, marketplaces (for example TikTok), and subscription contract renewal orders are not supported. |

## Payment method restrictions

Shopify's post-purchase API works only with specific payment methods. Unsupported methods cause the page to be skipped. The unsupported categories are:

* **Buy Now, Pay Later / installments** (Klarna, Afterpay, Affirm, Sezzle, Shop Pay Installments, Zip, and similar)
* **Digital wallets and accelerated buttons** (Apple Pay, Google Pay, Amazon Pay, the PayPal button, the Shop Pay button)
* **Bank transfers** (iDEAL, Bancontact, Blik, Przelewy24, and similar)
* **Providers that retain the CVV/CVN** (PayPal Payments Pro, Payflow Pro, Eway)
* **Gift card, COD, or Shopify store credit** (any gift card payment on the order disqualifies it, even partial)

For the full provider-by-provider list of supported, conditionally supported, and unsupported methods, see [Payment methods](/aftersell/payment_methods).

## Platform caps

| Limit | Detail |
| - | - |
| **Max 3 accepted offers per checkout** | A customer can accept at most three post-purchase offers per order. The Thank You Page allows one more, separate from this cap. |
| **One subscription per order** | Shopify allows only one subscription product per order, so a subscription offer is skipped when the order already contains a subscription. |
| **No bundle products as upsells** | Bundle products can't be offered as post-purchase upsell items. A customer can buy a bundle in the original order and still trigger a funnel; the restriction is on the upsell product itself. |

## When Shopify skips the page anyway

Even when an order meets every requirement, Shopify can still bypass the post-purchase page:

* **Shopify skipped it.** Shopify occasionally bypasses post-purchase for an order with no reason exposed to Aftersell (the Order Browser shows the error code `no_activity`). This is entirely within Shopify's platform, so contact Shopify support.
* **Platform load.** During flash sales or unusually high load, Shopify may delay order creation, and the page may not appear.

## Reaching ineligible orders

When an order can't show a post-purchase offer for any reason above, [Thank You Page upsells](/aftersell/how_can_i_set_up_and_customize_thank_you_page_upsells_in_aftersell) are the recommended workaround. They run on the order status page and are not subject to the post-purchase API limits, so they reach payment methods, currencies, sales channels, and order values that post-purchase can't. Product-level limits still apply: bundle products can't be upsold, and the one-subscription-per-order rule holds on the Thank You Page too.

## Related

* [Why isn't my post-purchase offer displaying?](/aftersell/why_isnt_my_1_click_offer_displaying) - step-by-step troubleshooting for a specific order
* [Order browser reference](/aftersell/order_browser_reference#ineligibility-reasons) - how these reasons appear per order in the Order Browser
* [Payment methods](/aftersell/payment_methods) - the full supported and unsupported payment matrix
