---
title: "Get Order Status Public"
method: GET
path: "/api/v1/payment/order-status/{order_no}"
tags: ["payment"]
---

# Get Order Status Public

`GET /api/v1/payment/order-status/{order_no}`

Public order status — for /payment/processing waiting page polling.

No auth required: the user lands on /payment/processing from the hosted
checkout's tab, where the qcode session cookie may not be present (same
reason /payment/success is public). Returns ONLY
{order_no, status} — no PII, no amount, no email — so disclosure of an
order_no doesn't leak balance info.

Order numbers are 14-digit timestamp + 6 random chars (sufficient
unguessability for the short 1-5 minute crypto polling window). Status
transitions: pending → processing (crypto chain confirming) → paid|failed.

## Path parameters

- `order_no` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/qcode/apis/qcode-web.md) · [All operations](https://skmtc.dev/qcode/apis/qcode-web/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/qcode/qcode-web/revisions/2f2f5f49ffc7/schema)
