Feature Request: ShopifyPOS custom payment methods not auto-paid

We use POS custom/external payment types that integrate with an external processor.
We need a configuration so orders created via a specific external payment method are not automatically marked as paid (and possibly fulfilled).

Instead, we want the ability to have the order created in a pending/unpaid state until our external system confirms settlement. Like how there is currently the ability to create an unpaid order by itself. This would drastically reduce the need for reconciliation-time full refunds and inventory adjustments when settlements fail.

Is this a Shopify can track and implement please?

Hey @Damian_Wilson - thanks for flagging. These forums are generally for partner developers using our APIs and development tools, but I’m happy to pass this along as a feature request for sure.

Just wanted to confirm some things here with you so I can send this up:

  • The end-to-end flow between POS and your external processor
  • Whether Shopify should automatically mark the order as paid after receiving settlement confirmation
  • Roughly how often failed settlements lead to refunds or inventory adjustments?

I can’t guarantee a timeline or implementation, but this helps with writing things up on my end here so I can advocate as best as I can for the feature :slight_smile:

Hope to hear from you soon!

Thanks Alan, appreciate you passing this along.

At a high level, the flow is:

  1. A cashier selects an external payment method in the native Shopify POS checkout.
  2. The payment is initiated with the external processor.
  3. The processor confirms the outcome asynchronously.
  4. Shopify should keep the order pending or unpaid until that confirmation is received.

Once settlement is confirmed, Shopify should automatically transition the order to paid. If payment fails or times out, the order should remain pending or unpaid. Like with the orderMarkAsPaid mutation on the current admin API, we could use that existing mechanism.

The exact implementation could be a payment-method configuration or a supported confirmation API. The important distinction is that selecting the payment method should not itself mean settlement has succeeded. Like using the “Mark Unpaid” option.

Failed or abandoned settlements are a minority of transactions, but occur regularly enough to create unnecessary reconciliation, refund and inventory work.

Could this please be logged as a formal feature request, and is there a reference we can use to track it?

Hey @Damian_Wilson, no worries and thanks for this. I’ve logged the request on our end here.

There isn’t a public feature-request ID or tracker I can share, so this thread will be the best reference and I’ll loop back here if there’s anything new to share.

As a workaround today, the order could be marked as unpaid in POS and then transitioned using orderMarkAsPaid after settlement confirmation. That isn’t fully equivalent though for sure, since the later transaction won’t retain the custom tender details, and fulfillment needs to be configured separately, but it can avoid marking an unsettled payment as successful.

Let me know if I can clarify anything on our end here.

Any updates here @Alan_G ?

This is still a feature we genuinely want