Live and bookable — pre-production, and no payment
These endpoints work against real American Airlines inventory: a search returns real offers and you can create a real booking with a carrier PNR. Two limits are worth knowing before you build against them.
- Orders are pre-production. They are genuine reservations in the airline's pre-production system, not commercial tickets — nobody flies on them. Cancel what you create; anything left over expires on its own payment time limit.
- Payment and ticketing cannot complete. An order is created as an unpaid hold, which is the normal agency flow, but ticketing is inhibited on this IATA number, so
POST /v1/orders/{orderID}/commitreturns502. Everything up to and including the reservation works.
Servicing
Refund eligibility
Is this order refundable, and for how much?
GET
/v1/orders/{orderID}/refund-eligibilityRequires X-API-KeyReturns a
RefundEligibility: whether a refund is possible, the amount, the penalty and a deadline.**A GET, so it is not blocked by the booking feature gate** — this works even in environments where order writes return coming_soon.> Derived, not authoritative. eligible is computed as *penalty < original fare*; refund_amount is *original fare − penalty*; deadline is a flat 24 hours from now, not a date the airline supplied. All of it comes from the airline's order reprice rather than a refund quote, so use it as guidance and confirm the real figure before promising money back.?airline= is required.Request example
curl --request GET \
--url https://api.norba.io/v1/orders/{orderID}/refund-eligibility \
--header "X-API-Key: $NORBA_KEY"Response example
Response example
{
"order_id": "AA001Y1XD7ZA6",
"eligible": true,
"refund_amount": 380.62,
"refund_currency": "EUR",
"penalty_amount": 0,
"penalty_currency": "EUR",
"deadline": "2026-08-15T09:15:00Z"
}Path parameters
orderIDstringRequiredCanonical order ID.
Example:
AA001Y1XD7ZA6Query parameters
airlinestringRequiredIATA code. Required.
Example:
AAResponse fields
order_idstringRequiredThe order assessed.
eligiblebooleanRequiredtrue when the penalty is smaller than the original fare.refund_amountnumberOriginal fare minus penalty.
refund_currencystringISO 4217 code.
penalty_amountnumberFee the airline retains.
penalty_currencystringISO 4217 code.
deadlinestring (RFC 3339)Currently always 24 hours from the request — not an airline-supplied date.
reasonsarray<string>Restrictions, when known.
Error codes
400unknown airline when ?airline= is missing.502The airline rejected the reprice.