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:
- Is there a supported Shopify API to re-authorize a vaulted payment mandate — e.g.
orderCreateMandatePaymentwithautoCapture: falseto create a fresh authorization? Is that the correct approach? - What is the recommended way to keep funds secured when the trial period is longer than the 7-day authorization window?
- 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!