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}/commit returns 502. 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-Key
Returns 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"
}

Authorization

X-API-KeystringRequired
Opaque API key issued from the Norba dashboard. Sent on every request as the X-API-Key HTTP header. Missing or invalid keys are rejected with 401 Unauthorized.

Path parameters

orderIDstringRequired
Canonical order ID.
Example: AA001Y1XD7ZA6

Query parameters

airlinestringRequired
IATA code. Required.
Example: AA

Response fields

order_idstringRequired
The order assessed.
eligiblebooleanRequired
true when the penalty is smaller than the original fare.
refund_amountnumber
Original fare minus penalty.
refund_currencystring
ISO 4217 code.
penalty_amountnumber
Fee the airline retains.
penalty_currencystring
ISO 4217 code.
deadlinestring (RFC 3339)
Currently always 24 hours from the request — not an airline-supplied date.
reasonsarray<string>
Restrictions, when known.

Error codes

400
unknown airline when ?airline= is missing.
502
The airline rejected the reprice.
GET /v1/orders/{orderID}/refund-eligibility | Norba API