New Shopify API specification regarding payment expiry


Shopify distinguishes orders and payments/transactions. This means that the state of the two doesn't necessarily match.

Payment objects on Shopify have an expiry date that is set to 72 hours after creation of the order linked to the payment. This expiry date, however, is effective only for the payments, and therefore the orders stay open and valid even after their relevant payments have expired.

This would yield behaviours like:

  1. An order can be still open and valid, even if its payment has expired, and therefore it doesn't release the reserved inventory.
  2. Upon expiration of a payment, the order linked to it becomes payable. Shoppers can make another payment through the My Page or Order Details page, and the payment can transition the order to the "Paid-but-Unfulfilled" state.
  3. Even if a payment on Shopify has expired, the order linked to it can still accept payments through its pre-existing pending payment. Notably, the default expiry period for Konbini payments is set to the end of the day following 72 hours, which can extend to roughly 96 hours after order creation. This means that, during the period of 24 hours at maximum, a shopper may still pay for an order where its payment on Shopify has expired, using a still-valid payment code. This results in the order moving to the "Paid-but-Unfulfilled" status.

There are 2 possible countermeasures for these situations:

  1. Cancel orders upon expiration of payments on Shopify. This will allow reserved inventories to be released upon expiration of payments, and it will also prevent orders to be paid after the Shopify payments linked to those orders have expired. This can be achieved by manually cancelling orders on Shopify, or implementing a Shopify Flow that runs after 72 hours from payment creation and cancels orders based on "transactions status".
  2. Configure KOMOJU to set expiry date for Konbini/bank transfer/Pay-Easy payments to expire in 2 days. This configuration ensures that KOMOJU payments expire before those on Shopify expire, and therefore shoppers won't be able to make payments thereafter. See also: How to change the Konbini payment deadline
Was this article helpful? Thanks for the feedback! There was a problem submitting your feedback. Please try again later.