Re-authorizing a vaulted payment mandate before the 7-day authorization expires (Try Before You Buy / deferred purchase)

Hi,

I’m building a Try Before You Buy solution on Shopify using deferred purchases with vaulted payment methods (payment mandates).

My current flow:

  • When an order is created (via the order-create webhook), my app authorizes the full order value on the customer’s card.
  • The merchant configures a trial period — for example, 10 days.
  • At the end of the trial, my app captures the payment from the stored payment mandate (using orderCreateMandatePayment), charging only the value of the items the customer keeps.

The problem:
Card authorizations typically expire after ~7 days, but the trial period can be longer (e.g. 10 days). By day 7 the original authorization has expired. My app can still capture on day 10 via the vaulted payment mandate — but only if the funds are still available on the card. If they aren’t (insufficient balance/credit), the merchant loses the sale.

My question:
Is it possible to re-authorize the customer’s card on day 7 (before the original authorization expires), using the stored payment mandate, so the funds stay secured until I capture on day 10?

Specifically:

  1. Is there a supported Shopify API to re-authorize a vaulted payment mandate — e.g. orderCreateMandatePayment with autoCapture: false to create a fresh authorization? Is that the correct approach?
  2. What is the recommended way to keep funds secured when the trial period is longer than the 7-day authorization window?
  3. Are there any limitations — e.g. number of re-authorizations allowed, differences between Shopify Payments / Adyen / Stripe, or plan requirements?

Any guidance on the correct, supported way to handle authorization expiry for long Try Before You Buy trials would be greatly appreciated.

Thanks!

Hey @malik_hammad - thanks for laying this out. Before we dig into this further on our end, could you confirm:

  • Which payment gateway you’re testing with, and whether the store is on Shopify Plus?
  • Which Admin API version you’re using, and whether the initial authorization is also created with orderCreateMandatePayment and autoCapture: false?
  • Have you tested a second authorization with a new idempotency key? If so, could you share the returned userErrors, payment status, and any x-request-id values?

The gateway and plan can affect the available authorization behaviour. Once we have those details, I’m definitely happy to investigate further though, hope to hear from you soon :slight_smile: