# Ticketing Workflow

The diagram below illustrates the workflow to ticket an existing reservation.

You can add optional seats and ancillaries during either booking or ticketing, or in a separate workbench session, per the support noted in the [Seats](/docs/flights/guides/seats-and-ancillaries/seats-guide) and [Ancillaries](/docs/flights/guides/seats-and-ancillaries/ancillaries-and-emd-guide) guides.

Add Payment references both the form of payment (FOP) to use and the offer to pay for with that FOP. To ticket an itinerary, at a minimum you must send payment for the offer for the flight/s. It may be optional or mandatory to add payment for offers for any ancillaries or paid seats that have been added, if those have not already been paid for. See the [Ancillary and EMD Guide](/docs/flights/guides/seats-and-ancillaries/ancillaries-and-emd-guide) for more about ancillary and seat payment requirements.

Each box in the diagram represents one API call in the workflow.

#### Ticketing workflow: Required steps

```mermaid
flowchart TD
    A["Create post-commit\nworkbench"]
    B["Form of payment\n(if not stored\nin reservation)"]
    C["Payment for air\noffer/s"]
    D["Commit workbench;\nissue ticket/s"]

    A --> B --> C --> D
```