How can I hold payments until an order is delivered?

Topic summary

A business operates a bag rental system where users receive refunds upon returning bags via drivers. The main challenge is preventing financial loss when users fail to return bags after driver delivery.

Current Goal:

  • Hold payment authorization until order delivery is confirmed
  • Release or capture funds based on whether bags are returned

Proposed Solution:

  • Implement Stripe’s payment hold feature (placing-a-hold on charges)
  • Add confirmation events in both user and driver apps
  • Finalize payment based on mutual agreement from both parties

Question:
Seeking guidance on whether Shopify API supports this payment hold functionality, or if alternative methods exist to achieve this authorization-capture workflow within their system.

Summarized with AI on November 21. AI used: claude-sonnet-4-5-20250929.

Hi, hope you are fine and have a good day, I have a question regarding capturing payments, let me please specify a scenario for a better understanding of you guys.

We have a user and a driver app, we give bags to users and when they return the bag, we just simply give them the money back, our concern is there can be some cases where our driver go there and they don’t return the bags, so we would like to capture the card till the order is delivered. We want to add events on both apps, when they both agree, we just cut the payment or return to the user depending on the circumstances.

Is there any shopify API or any thing we can do to achieve our goal, we can do it also with the tags if its ok, stripe provides it, let me share the link here: https://stripe.com/docs/charges/placing-a-hold

Thank you for the help.