The DonaTrainer Handbook
Everything the simulator understands, organized the way you'll actually use it. Keep this open in a second tab while you work the terminal.
Welcome aboard
Amadeus is operated entirely through short, dense commands — "cryptic entries." There's no menu to hunt through; you type an instruction, the system replies, and you build on that reply. It feels unfriendly for about a day and then it feels like the only sane way to work.
Each chapter below pairs a real entry with what it does and what the simulator will say back. Everything is safe to try — DonaTrainer keeps its data in your browser only, and nothing here ever touches a real airline.
The help system
Amadeus is famous for burying its own documentation inside itself. DonaTrainer does the same thing on purpose — type HE for a list of topics, or HE followed by a topic name for a one-line refresher without leaving the terminal.
HE AN, HE PRICING, HE QUEUES. Bare HE lists every topic the terminal knows.Think of it as a quick-reference card that lives inside the tool instead of a separate browser tab — this handbook is the long version.
Decode & encode
Everything in a GDS is a code: airports, cities, airlines, countries. Before you can read an availability display fluently, you need to be able to go from code → name and back.
DAN KUWAIT → KWI.DAC KWI → Kuwait City.DC QA → Qatar.DNA QR → Qatar Airways / QR / 157.Availability — AN
Every booking starts with a question: what's flying? AN (Availability, Neutral) answers it — date, origin, destination, and it hands back a numbered list of flights you can sell straight from.
AN15DECDOHLHR — availability from Doha to London Heathrow on 15 December.Durations and arrival times are calculated from real airport coordinates — a Doha–London flight really does take about seven hours here, and an overnight sector shows +1 on the arrival time when it lands the next day. The header line names the destination airport itself and its country, plus how many days out the search is and the day of the week — ** AMADEUS AVAILABILITY - AN ** LHR HEATHROW.GB 7 TU 15DEC 0000 — the same shape a real display uses.
- /R<DDMMM> — add a return date in the same entry:
AN15DECDOHLHR/R22DEC. - /A<CARRIER> — show one airline only:
AN15DECDOHLHR/AQR. - /D — nonstop flights only, no connections.
- /C<CLASS> — focus the display on one booking class.
- /X<CITY> — exclude a connection city, e.g.
/XMCTto avoid routing through Muscat.
If there's no nonstop service between two cities, the terminal offers up to two one-stop routings through a shared hub automatically — real displays commonly show several connecting options side by side rather than just one, and this is where a lot of the apparent carrier variety on a real screen actually comes from.
A codeshare prints as <MARKETING>:<OPERATING><FLIGHT> — e.g. EY:GA9102 means you're selling Etihad inventory on a flight actually operated by GA9102. That's the real notation; there's no separate footnote line. Airport codes carry a terminal when the airline files one for that pairing, e.g. /DAC 2 FCO 3.
Booking-class inventory is shown in full — 7 to 20 RBD codes per flight depending on the route, wrapping onto one continuation line after the 7th exactly like a real screen. The last leg of each option also prints a stop count and equipment code (E0/788) followed by the option's total elapsed time.
Other display orders and follow-ups. SN is the schedule equivalent of AN; AA, AD and AE re-sort the same flights by arrival time, departure time, or elapsed flight time instead of renumbering from scratch.
AC2 / AC-3 shift the date forward/back by N days. SC is an identical alias for schedule follow-ups.MN) or the previous day (MY).1EKAD12SEPDOHDXB. Numbered from line 21, the way a real direct-access screen continues on from a prior display.Building a PNR
A Passenger Name Record needs five mandatory elements before it can be saved. Miss one and ER will refuse to save it — that's deliberate, it's the same rule a real system enforces.
SS1Y1 — sell 1 seat in Y from line 1 of the last display.NM1SMITH/JOHN MR — the name element.AP 33-123456789 for a phone, APE name@mail.com for email. APH/APM record a home or mobile number separately.Children and infants ride on the same NM entry, with a qualifier in parentheses:
Groups go in one entry too — bump the leading number and chain more first-name/title pairs after the shared surname:
If your selected class shows 0 seats in the availability display, SS won't refuse the sale — it waitlists it (status HL instead of HK) exactly like the real system would.
Optional PNR elements
Beyond the five mandatory pieces, a PNR can carry free-text remarks, special service requests, frequent flyer numbers and seat assignments.
/TAG to categorize it, e.g. RM /VIP CLIENT PREFERS AISLE.FFN QR-1234567.SR VGML VEGETARIAN MEAL, SR DOCS P QA 12345 14JAN30.Seat maps and assignments work the same way you'd expect on a real segment display — the layout depends on the cabin (a 2-2 business layout with lettered A/C/D/F seats, or a 3-3 economy layout with A-F) and which seats are already taken stays consistent every time you look:
ST/24A/P1 — assign 24A to passenger 1 across every segment. Rejects seats that don't exist in that cabin or are already occupied.Confidential and itinerary remarks, open segments, and reconfirmation.
3/RR sets segment 3's status to RR. HK/HL/SC/SS work the same way.Retrieving & servicing a PNR
Once a booking is saved you'll spend most of your time retrieving and adjusting it, not creating new ones from scratch.
RT redisplays whatever's active.RT/SMITH — search by surname. A partial surname (RT/S) returns a numbered list; pick one with RT<n>.IR ignores unsaved changes and re-retrieves the last saved copy. IG just clears the screen.XE2 cancels element number 2 from the itinerary display; XI clears every flight segment at once. Cancelling one leg of a connection sold together cancels both — they're married segments, same as on a real system.SB pulls fresh availability for the disrupted segment (the schedule-changed one, if any) and numbers it. SB2 then rebooks straight onto option 2 — no more guessing a date blind.ER.RRN copies everything (names + itinerary), RRI copies only the itinerary, RRP copies only the passengers.History codes. RH tags each line with the same short element code a real Amadeus history uses — [AN] Added Name, [AS] Added a status/segment element, [AT] Added Ticketing Arrangement, [CN] Changed Name, [CS] Changed Status, [DL] Deleted Element, [SP] Split Party, [TC] Time Change, and so on — so reading a PNR's history trains you to read a real one.
PNR security, flight-based retrieval, and printing.
ESD displays the security elements, ESX<n> cancels one. This is actually enforced — sign into that office (JI.../O<OFFICEID>, Chapter 14) and an N entry will refuse a retrieval.RT<n>, same as any other name search.WRA prints the entire PNR (same as ITR/P); WRS prints just the itinerary screen, no ticket receipt.Ticketing time limits. Beyond plain TKOK, a PNR can carry a real deadline:
Pricing
Four entries price an itinerary; the difference is whether the result gets stored as a Transitional Stored Ticket (TST) and whether it hunts for the lowest available fare.
| Entry | Stores a TST? | Lowest fare? |
|---|---|---|
| FXX | No | No |
| FXR | No | Yes |
| FXP | Yes | No |
| FXB | Yes | Yes |
All four accept a passenger scope: /P1 (passenger 1 only), /PAX (adults and children), /INF (infant only) — and /R,U anywhere in the entry for a discounted private/corporate (UNI) fare. The fare itself is calculated from real distance, the booking class you sold, and the travel month's seasonality (Jul/Aug/Dec price higher, quieter months lower) — a short hop in a discounted class in February prices well below a long-haul in a full-fare class in August. FXR and FXB additionally re-check the class inventory left open on the segment and price against whichever class is actually cheapest and available, exactly like a real lowest-fare search.
Pricing modifiers. Add a percentage fee or markup at pricing time, before a TST even exists, with /F-P<n> (fee) or /M-P<n> (markup) on any of the four pricing entries — e.g. FXP/F-P10 adds a 10% fee during the calculation, FXB/M-P5 finds the lowest fare and adds a 5% markup on top. Both stack with /R,U and the passenger-scope qualifiers.
FXT<line>/P<pax> to pick one. Here, FXP/FXB always compute and store one fare directly — FXT itself isn't implemented./CUSD, /CGBP, /CQAR etc. re-price in another currency.---.Fare-quote follow-ups. Every row an FQD display prints keeps its line number live for these:
Standalone calculators that don't need a fare display first:
FQC100GBP/USD — add a past date for that day's rate.FQMDOHDXBAMM.Best Buy checks a booked itinerary against the lowest fare actually available, rather than pricing whatever class you already sold:
FXU stores a TST, FXZ doesn't.LOWEST SOLD OUT // TRY WAITLIST if it isn't actually open.Payment & ticketing
Three fields have to be on file before TTP will issue anything: a TST (Chapter 08), a validating carrier, and a form of payment.
FV QR.FM10 is a 10% commission, FM7.00 (a decimal point is what tells the two apart) is a flat amount instead. Add /P<n> for one passenger only. Prints on the ticket as FM *M*10 for a percentage or FM EUR 7.00 for a flat one.EMD/L<n> to view, EMDV/L<n> to void, EMDR/L<n> to refund) rather than just a line item — voiding or refunding one drops it back out of the total.TTP/P1, TTP/PAX, TTP/INF scope it to specific passengers.Once issued, tickets carry a realistic number — the validating carrier's own 3-digit numeric code plus a serial, exactly the format printed on a real e-ticket. TTP and TWD print the same full coupon block a real Amadeus ticket display shows: the flight lines, FARE/TAX/TOTAL, the FC (fare calculation) line — e.g. FC DOH QR LHR350.00EUR350.00END — the FB fare basis with its NVB/NVA validity dates, and an FE endorsement line.
TWD/TAX shows the tax breakdown by code (e.g. GB, YQ), TWH its history.TWD (or select one directly). Prints a SAC settlement code, same as a real void — cannot void a reissued ticket.Real e-ticket status codes. Every ticket carries one of the letters a real Amadeus coupon uses: O Open For Use, V Void, R Refunded, E Exchanged/Reissued (plus A/C/F/G/I/L/P/S/T/X for airport control, checked-in, flown, and so on) — shown on TWD, TTP, TJQ and the printed itinerary.
TQT displays the stored TST — passenger list, fare/tax/total, FC, FB with NVB/NVA, FE, FT, additional collection, and commission — exactly what you'd check before deciding what to edit or before issuing. TQT/T<n> selects a specific TST by number when more than one is on file (e.g. after re-pricing more than once).
Editing the TST before ticketing — the same follow-up entries a real reissue or net-fare sale relies on. TTI is the same command as TTK (both names are used in the field):
/T<n>/ to target one TST by number.XE TST deletes every stored TST from the active PNR; XE TST1 (etc.) deletes just that one. Deleting the last remaining TST also clears the PNR's active fare.TWD/TTP/ITR/P.Reissuing a ticket. A reissue is a change to an already-ticketed itinerary, and it's a genuinely different workflow from a refund:
- Rebook the affected segment —
SB. - Re-price the itinerary —
FXP. - Pull the original ticket's issue data onto the new TST —
FO*L<n>(the line of the ticket being replaced). - Set the extra amount the passenger owes —
TTK/T<amount>.TTU/T<n>/S<segs>can flag which segments the reissue covers on a multi-TST PNR. - Issue as usual —
TTP. The original ticket flips to statusE(exchanged); the new one prints aREISSUE OFline and the additional collection.
Automated refunds are a separate, multi-step record rather than a single command:
A for a flat amount, omit it for a percentage.R) or discard the draft instead.Sales reports
TJQ pulls a list of every ticket issued, across every PNR you've saved in this browser.
Queues
A queue is a to-do list PNRs land on automatically — the classic example is queue 5, "Schedule Change." DonaTrainer actually generates that traffic: retrieving a saved, ticketed PNR carries a real chance of triggering a schedule change, which lands it on queue 5 for you to work.
QS is an identical alias.A PNR with a ticketing time limit (TKTL, Chapter 07) lands on queue 8 category C1 automatically the moment it's saved — try QC8CA after setting one. Queue 2 works the same way for waitlists: a segment sold into a full class goes on as HL, and retrieving that PNR carries a chance of clearing it to HK and queuing it to 2 for you to action.
Customer profiles
A profile stores a traveler's — or a company's — name and contact details so they don't have to be retyped on every booking.
PM resumes it).PEE saves and exits profile mode in one step.PD redisplays the loaded profile (labelled Traveler or Company); PT transfers a traveler profile into the active PNR.PT afterwards adds a corporate remark to the PNR.Travel documents
The IEP family simulates emailing an itinerary — nothing actually leaves your browser, which is exactly what you want in a training sandbox.
APE).Session & sign-in
DonaTrainer signs you in automatically, but the real transactions still work if you want the full ritual — or if you want to see what "locked out" looks like.
/O<OFFICEID> to switch the simulated office, e.g. JI0000AA/GS/ODOHQR2900 — useful for testing PNR security (Chapter 07).JI/HE is refused until you sign back in.Reference lookups & calculators
A few self-contained utilities that don't touch a PNR at all.
/-N before) a date. DD<DDMMM1>/<DDMMM2> gives the number of days between two dates, and DD<CITY> estimates local time from that airport's longitude.TIFVFRQA (French national to Qatar). Clearly marked as simulated, not live TIMATIC data.Full command index
Every entry the terminal recognizes, alphabetically. When in doubt, this is the page to search.
| Command | What it does |
|---|---|
| 1<CARRIER>AD... | Direct Access into one carrier's own inventory |
| <n>/RR (or HK/HL/SC/SS) | Reconfirm a segment's status |
| AC / SC | Modify the last availability/schedule display |
| AN / SN | Availability / schedule display |
| AA / AD / AE | Availability re-sorted by arrival / departure / elapsed time |
| AP / APH / APM / APE | Phone / home / mobile / email contact |
| CS | Clear the screen |
| DAN / DAC / DC / DNA | Decode & encode city, airport, country and airline codes |
| DD / DF | Date/time calculator / arithmetic & percentage calculator |
| DO | Flight information (FLIFO) |
| EF | End transaction & file (alias of ER, used on a split's associate PNR) |
| ER | Save (End & Retrieve) the active PNR |
| ES / ESD / ESX | Add / display / cancel a PNR security element |
| FCM | Agency markup |
| FE / FT | Endorsement text / tour code override |
| FFN | Frequent flyer number |
| FHE | Manually insert a ticket number |
| FM | Commission — percentage or flat amount, optionally per passenger |
| FO*L | Pull an original ticket's issue data for reissue |
| FP | Form of payment |
| FQD / FQP / FQN | Fare display / informative pricing / fare rules (FQN also takes a line number) |
| FQK / FQR / FQS | Tax breakdown / routing / booking-class info for an FQD line |
| FQC / FQA / FQX / FQM | Currency conversion / rate-of-exchange table / excess baggage / mileage |
| FV | Validating carrier |
| FXA / FXU / FXZ / FXL | Best Buy: list lower fares / select+store TST / select, no TST / lowest regardless of availability |
| FXD | Master Pricer recommendations |
| FXX / FXR / FXP / FXB | Price (no store / lowest / store / lowest+store) |
| GG | AIS-style reference lookup (airport / country / airline) |
| HE | Help, with an optional topic |
| IEP / IEPJ | Email the itinerary |
| IR / IG | Ignore & re-retrieve / ignore |
| ITR/P / WRA / WRS | Print the full itinerary+receipt / full PNR / first screen only |
| JI / JJ / JO / JD / JB | Sign in / practice sign-in / sign out / work-area status / welcome message |
| LP | List PNRs by flight number and date |
| MN / MY | Replay the last availability display for the next / previous day |
| NM | Passenger name (+ child / infant / youth / group) |
| NU | Update a passenger's name |
| OP | Option queue placement |
| OS | Other service information |
| PM / PME / PMP / PC / PCC / PCA / PIN / PER / PEE / PI / PIR / PDI / PDN / PD / PT / PCN / PBC / PBP / PCO / PBD | Customer profile family (traveler & company) |
| PV | Office profile display |
| QE / QT / QS / QC / QTQ / QN / QD / QI | Queue placement, browsing (by category), counts, and totals |
| RC / RIR | Confidential remark / itinerary remark |
| RE / RE2 | Recall the last (or second-last) entry |
| RF | Received From |
| RH | PNR history, tagged with element codes |
| RM | Remark |
| RRN / RRI / RRP | Copy PNR — full / itinerary only / passengers only |
| RT (+ RTN / RTA / RTG / RTJ / RTK / RTR / RTB / RTTN) | Retrieve (by locator, surname, or selection); element-filtered redisplay |
| SB | Rebook a segment's class, date, or (bare) show rebooking options |
| SI ARNK | Arrival-unknown marker segment |
| SM / ST | Seat map / seat assignment |
| SO | Open segment |
| SP | Split passengers into a new PNR |
| SR | Special service request |
| SS | Sell a segment |
| SVC / EMD / EMDV / EMDR | Ancillary service / display / void / refund its EMD |
| TGBD / TGAD | BSP participants for a country / ticketing agreement between carriers |
| TIFV / TIFH / TIFA | Simulated visa / health / both travel information |
| TJQ | Sales report |
| TKOK / TKTL / TKXL | Ticketing arrangement — none / time limit / auto-cancel limit |
| TRAIN | Start guided scenario training |
| TRF / TRFU / TRFT / TRFP / TRFIG | Open / adjust / show taxes / process / discard an automated refund |
| TQT | Display the stored TST(s) on the active PNR |
| TTK / TTI / TTU / TTF | Edit TST fields (TTI is the same command as TTK) / flag segments for reissue / clear change flag |
| TTP (+ /ETRV) | Issue tickets, or revalidate one with no fare change |
| TWD / TWH / TWX | Display a ticket / its history / void it |
| XE / XE TST / XE TST<n> / XI | Cancel one element / delete all stored TSTs / delete one TST / cancel the itinerary |
Credits
DonaTrainer is built and maintained by Donabil SAS, free for the travel industry, forever.