> For the complete documentation index, see [llms.txt](https://resources.atriptech.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://resources.atriptech.com/api-document/troubleshooting-and-support/faqs/atlas-api-order.md).

# Orders & Ticketing

{% hint style="info" %}
💬 **Need help?** If you're stuck, ask Eva on ATRIP for instant diagnostics.

<a href="https://www.atriptech.com/" class="button primary" data-icon="comments">Ask Eva</a>
{% endhint %}

Use this page for order hold, contact email, split orders, and ancillary mapping questions.

Start here when you need to:

* understand what happens after `order.do`
* confirm how to handle `pay.do` and ticketing polling
* decide how to work with airline PNR, split orders, or ancillaries

### FAQ

#### Does `order.do` hold inventory and price?

Yes.

Atlas holds inventory and price for 30 minutes after order creation.

If payment is not completed in that window, the hold expires.

### Does `order.do` hold inventory?

Yes.\
Atlas holds inventory and price for 30 minutes after order creation.

If payment is not completed in that window, the hold expires.

### Can we manually release held inventory?

No.\
Atlas releases it automatically after the hold period.

### Which email should we send in booking contact details?

You can use either:

* the traveler email
* your agency email
* an Atlas-generated email

Some airlines block repeated bookings from the same email address.\
To reduce that risk, use `useAtlasMailForContact`.

### What does `useAtlasMailForContact` do?

* `true`: Atlas generates a unique booking email and sends that to the airline
* `false`: Atlas uses the email you send in `order.do`

When Atlas-generated email is used, airline replies may appear in ATRIP email records.\
Delivery is best effort, not guaranteed.

If your own email is blocked by the airline, Atlas may cancel the booking and return error `321`.

#### Do we need to poll after `pay.do`?

Yes.

Payment and ticket issuance are not always the same moment.

Use `queryOrderDetails.do` until the order reaches the final ticketed state.

### Do we need to poll after `pay.do`?

Yes.\
Payment and ticket issuance are not always the same moment.

Use `queryOrderDetails.do` until the order reaches the final ticketed state.\
Webhook can help, but it should not be your only confirmation path.

### Is `pnrCode` the airline PNR?

No.\
`pnrCode` is the Atlas booking reference.

The airline PNR is returned later in order query after the airline generates it.

#### How should we handle split orders for round trips?

Use `allowGenerateMultipleOrders: true` when the itinerary may split into separate one-way orders.

Read each returned `orderNo` separately and pay each supported order separately.

### When do airline PNR and ticket numbers appear?

They appear after ticketing completes.\
Read them from `paxTicketInfos.airlinePNRs` and `ticketNos` in order query.

### What should we do if ticketing is still processing?

Do not retry payment blindly.\
Query the order state first.

Wait for final `orderStatus` and `ticketStatus`, or reconcile with webhook events if configured.

### Which seat selection scenarios are supported?

Atlas supports seat selection for airlines that support Atlas API seat capability.

Atlas supports Atlas-issued orders and seat selection purchased with the ticket in the booking flow.

Atlas does not support non-Atlas-issued orders or post-ticketing seat selection.

See [Seats](/api-document/readme/booking-overview/seats-and-baggage.md) for the current support scope.

### Can VCC be used for a round trip built from two one-way fares?

Yes, but the booking may split into two separate orders.

Use:

* `allowGenerateMultipleOrders: true`

If Atlas cannot issue the itinerary as one round trip, it may return two comma-separated `orderNo` values.

### How should split-order payment work?

1. Create the order with `allowGenerateMultipleOrders: true`
2. Read each returned order separately
3. Call payment separately for each order

Check payment support for each returned order before paying.

### How should ancillaries be sent for connecting flights?

Every flown segment must have its own `segmentIndex` entry.

If verification returns two segments, the order request must also include two ancillary entries when the product applies to both segments.

#### How should ancillaries be mapped for connecting flights?

Map ancillaries at the flown-segment level.

If a product applies to two segments, send one entry per `segmentIndex`.

### Example

If one baggage product applies across a two-segment journey, send:

```json
"ancillaries": [
  {
    "productCode": "SCI_BAG_1PC_20KG",
    "segmentIndex": "1"
  },
  {
    "productCode": "SCI_BAG_1PC_20KG",
    "segmentIndex": "2"
  }
]
```

### Related pages

* [Create Order](/api-document/readme/booking-overview/create-order.md)
* [Payment & Ticketing](/api-document/readme/booking-overview/payment-and-ticketing.md)
* [Query Order](/api-document/readme/booking-overview/query-order.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://resources.atriptech.com/api-document/troubleshooting-and-support/faqs/atlas-api-order.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
