# GDS Exchange Workflows

Exchange functionality for GDS itineraries is handled by the GDS Exchange APIs.

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

Form of payment and Payment are required only in the case of an even exchange or add collect (there is an additional amount due). Otherwise, Form of Payment is optional but can be used to send a waiver code, forfeit residual amounts, or add an additional FOP.

```mermaid
flowchart TD
    A["Exchange Eligibility\n(optional)"]
    B["Create post-commit\nworkbench"]
    C["Exchange Search"]
    D["Add/Modify Offer"]
    E["Form of payment\n(only if even exchange\nor add collect)"]
    F["Payment\n(only if even exchange\nor add collect)"]
    D1{"Ticket now?"}
    E1["Commit workbench\nwith payLaterInd=false;\nissue new ticket"]
    E2["Commit workbench\nwith payLaterInd=true;\ncreate held booking"]

    A --> B --> C --> D --> E --> F --> D1
    D1 -- Yes --> E1
    D1 -- No --> E2
```