---
search:
  tags:
    - orders
    - GET
seo:
  description: >-
    Public (no auth). Order status: pending | paid | expired | cancelled. Once
    paid… Reference for the GET /orders/{id} endpoint in the FreeTicket Public
    API.
sidebar:
  label: Get a B2C order's status (and tickets once paid)
  badge: GET
title: Get a B2C order's status (and tickets once paid)
type: openapi-operation
---
Public (no auth). Order status: `pending | paid | expired | cancelled`. Once paid (`paid`) it includes the issued ticket codes; the QR/ticket is delivered by email. While still `pending` it returns `expiresAt`, the instant (ISO 8601, UTC) at which its reservation expires — the SAME one returned by `POST /orders`, so a countdown can resume after a reload instead of restarting. It may be in the PAST: that means the reservation has already expired and there is no point sending the buyer to pay, even if the `checkoutUrl` still opens. A null `expiresAt` NEVER means 'no time limit': it means the order is no longer pending, or there is no reservation. The id is a non-enumerable cuid; no buyer data is exposed.

`GET /orders/{id}`
