-- HikaShop version -- : HikaShop Essential 6.7.1
-- Joomla version -- : Joomla 5.4
-- PHP version -- : PHP 8.3.36
-- Browser(s) name and version -- : Vivaldi 8.2.4133.96
-- Error-message(debug-mod must be tuned on) -- : payment notification was received with the state paid
Title: Stripe Checkout – Expired webhook cancels an already paid and confirmed HikaShop order
Hello,
I am experiencing a problem with Stripe Checkout in HikaShop.
The payment is completed successfully, Stripe confirms the transaction, and HikaShop correctly changes the order status to
Confirmed.
However, approximately 24 hours later, Stripe sends another webhook notification with the status
. HikaShop processes this notification and automatically changes the already paid order status to
Cancelled.
Example from my order logs:
- October 19, 2026, 12:32 (server time): successful payment, order status: Confirmed.
- Transaction ID:
Code:
pi_3USFkCHwuXBczTHH15IY23nP
- October 20, 2026, 12:28 (server time): HikaShop receives an
notification and changes the order status to Cancelled.
- Stripe event:
Code:
checkout.session.expired
(October 20, 2026, 14:28:34 CEST).
I also noticed in the Stripe Dashboard that two different Checkout Sessions sometimes appear to be created for the same order. One is successfully paid, while the other remains unpaid and expires after approximately 24 hours.
Could this be the reason why the expired webhook incorrectly cancels an already paid order?
There are two additional problems:
- When the order is cancelled, HikaShop also increases the product stock quantity by one.
- Since I sell digital products, the customer loses access to the download, even though the payment was successful.
My questions:
- Why are two different Stripe Checkout Sessions created for the same order?
- How can I prevent an
webhook from changing an already paid and confirmed order to Cancelled?
- How can I ensure that the stock quantity and the customer's download permissions remain unchanged in this situation?
Thank you in advance for your help!