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

Confirm a cancellation

Cancel the order and get the cancelled order back — unlike DELETE, which returns no body.

POST/v1/orders/{orderID}/cancel/confirmRequires X-API-Key
Cancels the order at the airline, then re-reads it and returns the updated canonical Order with status: cancelled, persisting the new state.**Choose this over DELETE /v1/orders/{orderID} when you want the resulting order object.** DELETE does the same cancellation but answers 204 with no body.If the post-cancel re-read fails, the response degrades to a minimal {"order_id", "status"} rather than failing the call — the cancellation already happened at the airline, and reporting a 5xx would push clients into retries against an order that is already closed.> cancellation_quote_id in the body is accepted but not validated against the quote.?airline= is required.

Request example

curl --request POST \
  --url https://api.norba.io/v1/orders/{orderID}/cancel/confirm \
  --header "X-API-Key: $NORBA_KEY" \
  --header "Content-Type: application/json" \
  --data '{ "cancellation_quote_id": "qte_01K2M8ZC3AC5N8" }'

Response example

Response example
{
  "order_id": "AA001Y1XD7ZA6",
  "pnr": "JBQGEY",
  "status": "cancelled",
  "currency": "EUR",
  "total_amount": 380.62
}

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

Request body

cancellation_quote_idstring
The quote you are accepting. Accepted but not currently validated.

Error codes

400
invalid json, or unknown airline.
502
The airline rejected the cancellation.
503
coming_soon — order writes disabled.
POST /v1/orders/{orderID}/cancel/confirm | Norba API