Symptom
An order status in Kyren Pay differs from what your system or customer expected.Likely causes
| Status | What it usually means |
|---|---|
pending | Payment is not completed or the gateway has not confirmed the final result. |
paid | Payment succeeded and your system can fulfill if other checks pass. |
failed | Payment was declined, canceled, or failed at the payment gateway. |
closed / expired | The checkout or payment window ended before successful payment. |
refunded | A refund has been recorded where available. |
Check this in Kyren
- Open Dashboard > Orders and search for the order.
- Compare status, amount, currency, creation time, and paid time.
- Check whether the order has an Epay source order identifier.
Check this in your server
- Compare the Kyren order ID with your internal order ID.
- Confirm whether your system relies on Webhooks, polling, or both.
- Check whether an early
pendingstatus was cached after the order later changed. - Use millisecond timestamps when comparing API data, such as
1736932200000.
Fix
Usepaid as the fulfillment signal, keep fulfillment idempotent, and refresh order status before manual reconciliation. Treat pending as waiting unless your business rules explicitly close the internal order.