Created and pending
An order starts as a request for a specific amount. It may remain pending while the customer opens the checkout, scans the QR, or completes approval in their UPI app. Do not treat any of these steps as a completed payment. Keep the order reference stable so your support team can trace the same request across the checkout and dashboard.
Paid or expired
Use the gateway's verified status before providing a digital product, marking an invoice paid, or dispatching goods. Expiry means the checkout's allowed window has ended; it is not a statement about every bank transaction. If a customer reports a late payment, investigate the receiving account and order record before deciding what to do next.
Design for retries
Networks can delay callbacks or status refreshes. Your application should be able to ask for the latest status and handle repeated updates safely. Make fulfilment idempotent so a second paid notification cannot create a second delivery. Keep the customer-facing wording precise: “waiting for payment” and “payment confirmed” are materially different states.
