If you already know that HK means confirmed and HL means waitlisted, this guide goes further — covering the full range of action and status codes you'll encounter across a GDS career, organized by what they actually mean for the booking. Status confusion is one of the more common GDS challenges agents run into day to day, and it only gets more confusing once you're switching between systems — see the GDS Commands Hub for the full command reference across Amadeus, Sabre, and Galileo/Apollo.
For a beginner-friendly introduction to the three most common codes first, see our HK vs HL vs KK guide. This page is the complete reference once you're ready to go beyond the basics.
Confirmed Status Codes
| Code | Meaning |
|---|---|
| HK | Holding Confirmed — segment is confirmed |
| KK | Confirmed — airline's response confirming a previously requested segment |
| KL | Confirmed from waitlist — airline has cleared a waitlisted segment |
| RR | Reconfirmed — used in some markets requiring reconfirmation of onward segments |
Waitlisted / Pending Codes
| Code | Meaning |
|---|---|
| HL | Have Listed — passenger is waitlisted for the segment |
| PN | Pending — a request has been made but not yet actioned |
| NN | Need — a new request awaiting airline action |
Unable / Cancelled Codes
| Code | Meaning |
|---|---|
| UN | Unable — the airline could not accommodate the segment, typically because that specific flight isn't operating |
| UC | Unable, waitlist Closed — the airline can neither confirm nor waitlist the request |
| HX | Have Cancelled — the segment is no longer active. Most often follows an airline-side operational change, though it can also result from an agent or GDS-side cancellation action, so the exact trigger isn't always obvious from the code alone |
| XX | Cancelled segment (older/alternate notation for the same inactive status as HX in some system displays) |
Schedule Change / Action Codes
| Code | Meaning |
|---|---|
| TK | Two different meanings depending on where it appears — see below |
| SC | Schedule change notification from the airline, awaiting agent action |
| NO | No action taken yet on a request |
| GK | Airline-initiated confirmation without a prior request (a "gift" segment added by the carrier) |
Why TK Means Two Different Things
TK is the code that trips up more people than any other on this list, because it shows up in two unrelated places with two unrelated meanings. As one of the five mandatory elements every PNR needs before it can be saved, TK marks the ticketing arrangement — the deadline by which the ticket must be issued. That has nothing to do with the flight schedule.
Separately, TK can appear as a segment status code sent by another airline, meaning a schedule change has occurred and the times have shifted, though the booking still holds. In this context it's telling you to check the new departure and arrival times, not a ticketing deadline. The two uses look identical — same two letters — but which one applies depends entirely on whether the TK is sitting in the booking's required-elements section or next to a specific flight segment.
Codes can vary slightly in meaning by GDS and by airline-specific configuration in rare cases. When in doubt on a specific booking, the safest confirmation is always the airline's own system, but the codes above cover the vast majority of what you'll see day to day.
Why Agents Care About Inactive Codes Even After Rebooking
There's a consequence to codes like UN, UC, and HX that goes beyond just knowing what they mean. Airlines expect agencies to clear inactive segments out of a PNR within a set window before departure, often 24 hours. Leaving one sitting past that window can trigger an Agency Debit Memo (ADM) — a fee charged back to the agency for not cleaning up the booking. If you're an agent and see one of these codes lingering, it's not just a display issue to note and move on from; it's worth actively cancelling or rebooking that segment before it becomes a billing problem.
Why Getting This Right Matters
Sending a client an itinerary that still shows HL as if it were confirmed is one of the more common — and most avoidable — mistakes new agents make. Always double-check the status column before sharing an itinerary, and don't assume every two-letter code means "confirmed" just because a segment appears in the PNR.
Watching a Status Code Change: A Worked Example
Status codes aren't static — they move through a lifecycle as a booking progresses, and seeing that lifecycle laid out helps more than any table on its own. Take a single segment from request through to ticketing:
Day 1 — request submitted 3 UA 934 K 08NOV 7*SFOHND NN1 1145A 305P/09NOV Day 1, later — airline responds 3 UA 934 K 08NOV 7*SFOHND HL1 1145A 305P/09NOV Day 4 — waitlist clears 3 UA 934 K 08NOV 7*SFOHND HK1 1145A 305P/09NOV
On day one, the segment starts as NN — a fresh request the airline hasn't actioned yet. The airline's first response comes back as HL: no seat available immediately, so the passenger is placed on the waitlist. Three days later, another passenger's cancellation frees up inventory and the airline clears the waitlist, flipping the status to HK — now genuinely confirmed. Nothing about the flight number, date, or route changed; only the two-letter code did, and each change meant something different for whether that passenger actually had a seat.
The practical lesson is that a PNR pulled up once and never rechecked can go stale. If you quoted or documented this booking on day one while it showed HL, that information was accurate at the time but wrong by day four. Redisplaying the PNR — or watching for the airline's queue placement notifying the agency of the change — is the only reliable way to catch the update.
Codes That Look Alike and Get Mixed Up
A few pairs on the tables above are confused constantly enough to be worth calling out on their own:
| Pair | Why Agents Confuse Them | The Actual Difference |
|---|---|---|
| HK vs KK | Both mean confirmed, and both are common enough that agents read them as interchangeable | HK is a direct confirmed sell; KK is a confirmation that came back after the request was referred to the airline rather than sold instantly — same result, different path |
| UN vs UC | Both start with U and both signal failure | UN means this specific request failed but a waitlist attempt might still work; UC means the request failed and the waitlist is also closed, so there's no fallback on that flight |
| SC vs TK (segment) | Both can appear next to a segment and both relate to timing | SC flags an airline-initiated schedule change awaiting your review; TK on a segment (as opposed to the mandatory ticketing element) flags that a schedule change already happened and the times shifted |
| GK vs HK | Both look like a normal confirmed status at a glance | HK follows an agent request; GK is a segment the airline added on its own — a "gift" segment — without the agency having requested it, which is worth double-checking against what was actually sold |
Non-Standard and Legacy Codes
Every code covered on this page reflects standard GDS conventions, but you won't always see a standard code. Airlines connected through older host-to-host messaging, some regional and codeshare partners, and carriers still transitioning content onto NDC distribution can occasionally return a status that doesn't match anything in a reference table like this one. This is more likely on unusual routings, ancillary-heavy fares, or bookings involving a smaller carrier's own internal reservation system.
When you hit a code you don't recognize, the wrong move is guessing based on which letter it resembles. The right move is checking the GDS's own encode/decode or help reference for that specific code, or contacting the airline directly. Until you've verified it, treat an unfamiliar code the same way you'd treat HL or NN — as not confirmed.
Mapping GDS Codes to What the Client's Confirmation Shows
It's worth remembering that almost none of the two-letter codes on this page are visible to the passenger in their raw form. The airline's own confirmation page, app, and e-ticket translate them into something far simpler:
| GDS Code(s) | What the Client Sees |
|---|---|
| HK, KK, KL, RR | A normal confirmed flight, shown the same way regardless of which of these it started as |
| HL, NN, PN | Usually nothing in the airline's own app yet — the client may get a separate waitlist notice by email, or hear about it only from the agent |
| UN, UC, HX, XX | The flight simply doesn't appear as booked — if the client checks in or looks up their confirmation independently, they'll find no active reservation for that segment |
| SC | An updated departure or arrival time on their itinerary, sometimes with a separate schedule-change email from the airline |
That gap between the raw record and what a client actually sees is exactly why it's worth translating a PNR before sharing it, rather than forwarding the codes as-is and hoping they're self-explanatory.
Never Misread a Status Code Again
PNRGenius automatically translates every status code into plain English on your itinerary — no memorization required.
Try the Free Converter →