American Express Global Business Travel bookings v1 API

The bookings v1 API from American Express Global Business Travel — 12 operation(s) for bookings v1.

Operations 13

POST /v1/bookings/{bookingId}/approve Approve the complete booking based on booking ID #
POST /v1/bookings/{bookingId}/deny Deny the complete booking based on booking ID #
POST /v1/bookings/{bookingId}/items/{itemId}/approve Approve a particular booking item based on booking ID and item ID #
POST /v1/bookings/{bookingId}/items/{itemId}/deny Deny a particular booking item based on booking ID and item ID #
GET /v1/bookings/{bookingId} Retrieve trip details for a particular booking based on booking ID #
GET /v1/bookings/{bookingId}/items/{itemId} Retrieve booking item details for a particular item based on booking item Id #
POST /v1/bookings/{bookingId}/items/{itemId}/cancel Cancel booking item for a particular booking #
POST /v1/bookings/{bookingId}/items/{itemId}/delete Delete trip item for a particular booking ID #
GET /v1/bookings/{bookingId}/items/{itemId}/receipts Fetch receipt for a booking item #
POST /v1/bookings/{bookingId}/cancel Cancel trip for a particular booking ID #
POST /v1/bookings/{bookingId}/delete Delete trip items for a particular booking ID #
POST /v1/bookings #

Documentation

📖
APIReference
https://apis.egencia.com/openconnect/docs/api-docs/UserSyncAPI
📖
Documentation
https://apis.egencia.com/openconnect/v1/api-info?name=User
📖
Authentication
https://apis.egencia.com/auth/v1/token
📖
APIReference
https://apis.egencia.com/openconnect-sso/docs/api-docs/sso
📖
Documentation
https://www.egencia.com/openconnect-sso-service/v1/api-info
📖
APIReference
https://apis.egencia.com/company/docs/api-docs/company-info-api
📖
Documentation
https://apis.egencia.com/company/v1/api-info?name=company-details
📖
APIReference
https://apis.egencia.com/openconnect/docs/api-docs/CompanyCDFAPI
📖
Documentation
https://apis.egencia.com/openconnect/v1/api-info?name=CompanyCustomData
📖
APIReference
https://apis.egencia.com/openconnect-validation/docs/api-docs/validation
📖
Documentation
https://www.egencia.com/openconnect-validation-service/v1/api-info
📖
APIReference
https://apis.egencia.com/openconnect-expense/docs/api-docs/expense
📖
Documentation
https://www.egencia.com/openconnect-expensestream-service/v1/api-info
📖
APIReference
https://apis.egencia.com/openconnect/docs/api-docs/GetBookingAPI
📖
Documentation
https://apis.egencia.com/openconnect/v1/api-info?name=Booking
📖
APIReference
https://apis.egencia.com/openconnect/docs/api-docs/CancellationDeletionAPI
📖
Documentation
https://apis.egencia.com/openconnect/v1/api-info?name=CancelAndDelete
📖
APIReference
https://apis.egencia.com/openconnect/docs/api-docs/ApprovalWorkflowAPI
📖
Documentation
https://apis.egencia.com/openconnect/v1/api-info?name=Approval
📖
APIReference
https://apis.egencia.com/approval/docs/api-docs
📖
Documentation
https://www.egencia.com/openconnect-approval-service/v1/api-info
📖
APIReference
https://apis.egencia.com/openconnect/docs/api-docs/ReceiptAPISPI
📖
Documentation
https://apis.egencia.com/openconnect/v1/api-info?name=Receipt
📖
APIReference
https://apis.egencia.com/dutyofcare/docs/api-docs/doc-service
📖
Documentation
https://apis.egencia.com/dutyofcare/v1/api-info
📖
APIReference
https://apis.egencia.com/bi/docs/api-docs/transaction-data-service
📖
Documentation
https://apis.egencia.com/bi/v1/api-info

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/amex-gbt-bookings-v1-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

amex-gbt-bookings-v1-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Amex Gbt bookings v1 API
  version: '1.0'
  description: 'Operations tagged bookings v1 across 4 of this provider''s published API definitions: amex-gbt-approval-workflow-api-openapi.json, amex-gbt-booking-api-openapi.json, amex-gbt-cancellation-deletion-api-openapi.json, amex-gbt-service-openconnect-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://apis.egencia.com/openconnect/api
  description: Generated server url
tags:
- name: bookings v1
paths:
  /v1/bookings/{bookingId}/approve:
    post:
      description: "<p>Creates an Approval request (Action: Approve) for a specific booking Id</p>\n<p><b>Request Parameters</b></p>\n<div>\n    <table>\n        <thead>\n        <tr>\n            <th>\n               Attribute\n            </th>\n            <th>\n                Type\n            </th>\n            <th>\n                Description\n            </th>\n        </tr>\n        </thead>\n        <tbody>\n        <tr><td colspan=\"3\"><strong>metadata</strong></td></tr>\n        <tr>\n            <td>bookingId</td>\n            <td>String</td>\n            <td>Trip id corresponding to each booked product</td>\n        </tr>\n        <tr>\n            <td>approve</td>\n            <td>String</td>\n            <td>Approval action: Approve</td>\n        </tr>\n        </tbody>\n    </table>\n</div>\n<p><b>Response Parameters</b></p>\n<div>\n    <table>\n        <thead>\n        <tr>\n            <th>\n               Attribute\n            </th>\n            <th>\n                Type\n            </th>\n            <th>\n                Description\n            </th>\n        </tr>\n        </thead>\n        <tbody>\n        <tr><td colspan=\"3\"><strong>metadata</strong></td></tr>\n        <tr>\n            <td>booking_id</td>\n            <td>String</td>\n            <td>Trip id corresponding to the booking which is to be approved</td>\n        </tr>\n        <tr>\n            <td>status</td>\n            <td>String</td>\n            <td>Approval action: Approved</td>\n        </tr>\n        <tr>\n            <td>items</td>\n            <td>List</td>\n            <td>List of items to be approved</td>\n        </tr>\n        <tr>\n            <td>item_id</td>\n            <td>String</td>\n            <td>Trip item id which is to be approved</td>\n        </tr>\n        </tbody>\n    </table>\n</div>\n<p><b>Success Response</b></p>\n<p>If the request is successful, you will receive the following output:</p>\n<pre>\n    <code>\n    {\n        \"booking_id\": \"123\",\n        \"status\": \"APPROVED\",\n        \"items\": [\n            {\n                \"item_id\": \"1\",\n                \"status\": \"APPROVED\"\n            },\n            {\n                \"item_id\": \"2\",\n                \"status\": \"APPROVED\"\n            }\n        ]\n    }\n    </code>\n</pre>\n<p><b>500 Error Response</b></p>\n<pre>\n   <code>\n   {\n       \"error\": {\n           \"code\": \"EGE-ER-OS-5004\",\n           \"message\": \"There was an error in approving/denying the following items [5fb4d1d3ef80270001a1d1fd, 5fb4d1a7ef80270001a1d1f9]. Please try again.\"\n       }\n   }\n   </code>\n</pre>\n"
      operationId: approveBooking
      parameters:
      - in: path
        name: bookingId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApprovalResponse'
          description: <b>OK</b>.
        '400':
          description: '<b>Bad Request</b> : Invalid input or request'
        '401':
          description: '<b>Unauthorized</b> : <i>authentication token</i> empty, invalid or expired.'
        '403':
          description: '<b>Forbidden</b> : User is not authorized for the operation.'
        '422':
          description: '<b>Invalid input</b> : invalid or missing required input.'
        '500':
          description: '<b>Internal Server Error</b> : unable to process request'
        '501':
          description: '<b>Not Implemented</b> : Not Implemented.'
      security:
      - OAuth2: []
      summary: Approve the complete booking based on booking ID
      tags:
      - bookings v1
    servers:
    - url: https://apis.egencia.com/openconnect/api
      description: Generated server url
  /v1/bookings/{bookingId}/deny:
    post:
      description: "<p>Creates a Deny request (Action: Deny) for a booking</p>\n<p><b>Request Parameters</b></p>\n<div>\n    <table>\n        <thead>\n        <tr>\n            <th>\n               Attribute\n            </th>\n            <th>\n                Type\n            </th>\n            <th>\n                Description\n            </th>\n        </tr>\n        </thead>\n        <tbody>\n        <tr><td colspan=\"3\"><strong>metadata</strong></td></tr>\n        <tr>\n            <td>bookingId</td>\n            <td>String</td>\n            <td>Trip id corresponding to the booking which is to be denied</td>\n        </tr>\n        <tr>\n            <td>deny</td>\n            <td>String</td>\n            <td>Approval action: Denied</td>\n        </tr>\n        </tbody>\n    </table>\n</div>\n<p><b>Response Parameters</b></p>\n<div>\n    <table>\n        <thead>\n        <tr>\n            <th>\n               Attribute\n            </th>\n            <th>\n                Type\n            </th>\n            <th>\n                Description\n            </th>\n        </tr>\n        </thead>\n        <tbody>\n        <tr><td colspan=\"3\"><strong>metadata</strong></td></tr>\n        <tr>\n            <td>booking_id</td>\n            <td>String</td>\n            <td>Trip id corresponding to the booking which is to be denied</td>\n        </tr>\n        <tr>\n            <td>status</td>\n            <td>String</td>\n            <td>Approval action: Denied</td>\n        </tr>\n        <tr>\n            <td>item_id</td>\n            <td>String</td>\n            <td>Trip item id which is to be denied</td>\n        </tr>\n        </tbody>\n    </table>\n</div>\n<p><b>Success Response</b></p>\n<p>If the request is successful, you will receive the following output:</p>\n<pre>\n    <code>\n    {\n        \"booking_id\": \"123\",\n        \"status\": \"DENIED\",\n        \"items\": [\n            {\n                \"item_id\": \"1\",\n                \"status\": \"DENIED\"\n            },\n            {\n                \"item_id\": \"2\",\n                \"status\": \"DENIED\"\n            }\n        ]\n    }\n    </code>\n</pre>\n<p><b>500 Error Response</b></p>\n<pre>\n   <code>\n   {\n       \"error\": {\n           \"code\": \"EGE-ER-OS-5004\",\n           \"message\": \"There was an error in approving/denying the following items [5fb4d1d3ef80270001a1d1fd, 5fb4d1a7ef80270001a1d1f9]. Please try again.\"\n       }\n   }\n   </code>\n</pre>\n"
      operationId: denyBooking
      parameters:
      - in: path
        name: bookingId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApprovalResponse'
          description: <b>OK</b>.
        '400':
          description: '<b>Bad Request</b> : Invalid input or request'
        '401':
          description: '<b>Unauthorized</b> : <i>authentication token</i> empty, invalid or expired.'
        '403':
          description: '<b>Forbidden</b> : User is not authorized for the operation.'
        '422':
          description: '<b>Invalid input</b> : invalid or missing required input.'
        '500':
          description: '<b>Internal Server Error</b> : unable to process request'
        '501':
          description: '<b>Not Implemented</b> : Not Implemented.'
      security:
      - OAuth2: []
      summary: Deny the complete booking based on booking ID
      tags:
      - bookings v1
    servers:
    - url: https://apis.egencia.com/openconnect/api
      description: Generated server url
  /v1/bookings/{bookingId}/items/{itemId}/approve:
    post:
      description: "<p>Creates an Approval request (Action: Approve) for specific item Id.</p>\n<p><b>Request Parameters</b></p>\n<div>\n    <table>\n        <thead>\n        <tr>\n            <th>\n               Attribute\n            </th>\n            <th>\n                Type\n            </th>\n            <th>\n                Description\n            </th>\n        </tr>\n        </thead>\n        <tbody>\n        <tr><td colspan=\"3\"><strong>metadata</strong></td></tr>\n        <tr>\n            <td>bookingId</td>\n            <td>String</td>\n            <td>Trip id corresponding to the booking which is to be approved</td>\n        </tr>\n        <tr>\n            <td>approve</td>\n            <td>String</td>\n            <td>Approval action: approve</td>\n        </tr>\n        <tr>\n            <td>item_id</td>\n            <td>String</td>\n            <td>Trip item id which is to be approved</td>\n        </tr>\n        <tr>\n            <td>level</td>\n            <td>String (optional)</td>\n            <td>Targets a specific approver level. Allowed values: ONE, TWO, SECURITY. If not provided, the first approver is used.</td>\n        </tr>\n        </tbody>\n    </table>\n</div>\n<p><b>Response Parameters</b></p>\n<div>\n    <table>\n        <thead>\n        <tr>\n            <th>\n               Attribute\n            </th>\n            <th>\n                Type\n            </th>\n            <th>\n                Description\n            </th>\n        </tr>\n        </thead>\n        <tbody>\n        <tr><td colspan=\"3\"><strong>metadata</strong></td></tr>\n        <tr>\n            <td>booking_id</td>\n            <td>String</td>\n            <td>Trip id corresponding to the booking which was approved</td>\n        </tr>\n        <tr>\n            <td>status</td>\n            <td>String</td>\n            <td>Approval action: Approved</td>\n        </tr>\n        <tr>\n            <td>item_id</td>\n            <td>String</td>\n            <td>Trip item id which was approved</td>\n        </tr>\n        </tbody>\n    </table>\n</div>\n<p><b>Success Response</b></p>\n<p>If the request is successful, you will receive the following output:</p>\n<pre>\n    <code>\n        {\n            \"booking_id\": \"1\",\n            \"item_id\": \"2\",\n            \"status\": \"APPROVED\"\n        }\n    </code>\n</pre>\n<p><b>500 Error Response</b></p>\n<pre>\n   <code>\n   {\n       \"error\": {\n           \"code\": \"EGE-ER-OS-5004\",\n           \"message\": \"There was an error in approving/denying the following items [5fb4d1d3ef80270001a1d1fd]. Please try again.\"\n       }\n   }\n   </code>\n</pre>\n"
      operationId: approveBookingItem
      parameters:
      - description: Booking ID of the trip containing the item to approve
        example: 2000-2587-907
        in: path
        name: bookingId
        required: true
        schema:
          type: string
      - description: ID of the booking item to approve
        example: 5f964c44e7b72600017fc8bb
        in: path
        name: itemId
        required: true
        schema:
          type: string
      - description: Targets a specific hierarchical approver level or security level. If not provided, the first approver is used.
        example: ONE
        in: query
        name: level
        required: false
        schema:
          type: string
          enum:
          - ONE
          - TWO
          - SECURITY
      responses:
        '200':
          content:
            application/json;charset=utf-8:
              examples:
                Item approved:
                  description: Item approved
                  value:
                    booking_id: 2000-2587-907
                    item_id: 5f964c44e7b72600017fc8bb
                    status: APPROVED
                Pending further level approvals:
                  description: Pending further level approvals
                  value:
                    booking_id: 2000-2587-907
                    item_id: 5f964c44e7b72600017fc8bb
                    status: PENDING
              schema:
                $ref: '#/components/schemas/ApprovalItemResponse'
          description: <b>OK</b>.
        '400':
          description: '<b>Bad Request</b> : Invalid input or request'
        '401':
          description: '<b>Unauthorized</b> : <i>authentication token</i> empty, invalid or expired.'
        '403':
          description: '<b>Forbidden</b> : User is not authorized for the operation.'
        '422':
          description: '<b>Invalid input</b> : invalid or missing required input.'
        '500':
          content:
            application/json;charset=utf-8:
              examples:
                Item could not be approved (e.g. cancelled downstream):
                  description: Item could not be approved (e.g. cancelled downstream)
                  value:
                    error:
                      code: EGE-ER-OS-5004
                      message: There was an error in approving/denying the following items [5f964c44e7b72600017fc8bb]. Please try again.
          description: '<b>Internal Server Error</b> : unable to process request'
        '501':
          description: '<b>Not Implemented</b> : Not Implemented.'
      security:
      - OAuth2: []
      summary: Approve a particular booking item based on booking ID and item ID
      tags:
      - bookings v1
    servers:
    - url: https://apis.egencia.com/openconnect/api
      description: Generated server url
  /v1/bookings/{bookingId}/items/{itemId}/deny:
    post:
      description: "<p>Creates a Deny request (Action: Deny) for specific item Id.</p>\n<p><b>Request Parameters</b></p>\n<div>\n    <table>\n        <thead>\n        <tr>\n            <th>\n               Attribute\n            </th>\n            <th>\n                Type\n            </th>\n            <th>\n                Description\n            </th>\n        </tr>\n        </thead>\n        <tbody>\n        <tr><td colspan=\"3\"><strong>metadata</strong></td></tr>\n        <tr>\n            <td>bookingId</td>\n            <td>String</td>\n            <td>Trip id corresponding to the booking which is to be denied</td>\n        </tr>\n        <tr>\n            <td>deny</td>\n            <td>String</td>\n            <td>Approval action: deny</td>\n        </tr>\n        <tr>\n            <td>item_id</td>\n            <td>String</td>\n            <td>Trip item id which is to be denied</td>\n        </tr>\n        <tr>\n            <td>level</td>\n            <td>String (optional)</td>\n            <td>Targets a specific approver level. Allowed values: ONE, TWO, SECURITY. If not provided, the first approver is used.</td>\n        </tr>\n        </tbody>\n    </table>\n</div>\n<p><b>Response Parameters</b></p>\n<div>\n    <table>\n        <thead>\n        <tr>\n            <th>\n               Attribute\n            </th>\n            <th>\n                Type\n            </th>\n            <th>\n                Description\n            </th>\n        </tr>\n        </thead>\n        <tbody>\n        <tr><td colspan=\"3\"><strong>metadata</strong></td></tr>\n        <tr>\n            <td>booking_id</td>\n            <td>String</td>\n            <td>Trip id corresponding to the booking which was denied</td>\n        </tr>\n        <tr>\n            <td>status</td>\n            <td>String</td>\n            <td>Approval action: Denied</td>\n        </tr>\n        <tr>\n            <td>item_id</td>\n            <td>String</td>\n            <td>Trip item id which was denied</td>\n        </tr>\n        </tbody>\n    </table>\n</div>\n<p><b>Success Response</b></p>\n<p>If the request is successful, you will receive the following output:</p>\n<pre>\n    <code>\n        {\n            \"booking_id\": \"1\",\n            \"item_id\": \"2\",\n            \"status\": \"DENIED\"\n        }\n    </code>\n</pre>\n<p><b>500 Error Response</b></p>\n<pre>\n   <code>\n   {\n       \"error\": {\n           \"code\": \"EGE-ER-OS-5004\",\n           \"message\": \"There was an error in approving/denying the following items [5fb4d1d3ef80270001a1d1fd]. Please try again.\"\n       }\n   }\n   </code>\n</pre>\n"
      operationId: denyBookingItem
      parameters:
      - description: Booking ID of the trip containing the item to deny
        example: 2000-2587-907
        in: path
        name: bookingId
        required: true
        schema:
          type: string
      - description: ID of the booking item to deny
        example: 5f964c44e7b72600017fc8bb
        in: path
        name: itemId
        required: true
        schema:
          type: string
      - description: Targets a specific hierarchical approver level or security level. If not provided, the first approver is used.
        example: ONE
        in: query
        name: level
        required: false
        schema:
          type: string
          enum:
          - ONE
          - TWO
          - SECURITY
      responses:
        '200':
          content:
            application/json;charset=utf-8:
              examples:
                Item denied:
                  description: Item denied
                  value:
                    booking_id: 2000-2587-907
                    item_id: 5f964c44e7b72600017fc8bb
                    status: DENIED
              schema:
                $ref: '#/components/schemas/ApprovalItemResponse'
          description: <b>OK</b>.
        '400':
          description: '<b>Bad Request</b> : Invalid input or request'
        '401':
          description: '<b>Unauthorized</b> : <i>authentication token</i> empty, invalid or expired.'
        '403':
          description: '<b>Forbidden</b> : User is not authorized for the operation.'
        '422':
          description: '<b>Invalid input</b> : invalid or missing required input.'
        '500':
          content:
            application/json;charset=utf-8:
              examples:
                Item could not be denied (e.g. cancelled downstream):
                  description: Item could not be denied (e.g. cancelled downstream)
                  value:
                    error:
                      code: EGE-ER-OS-5004
                      message: There was an error in approving/denying the following items [5f964c44e7b72600017fc8bb]. Please try again.
          description: '<b>Internal Server Error</b> : unable to process request'
        '501':
          description: '<b>Not Implemented</b> : Not Implemented.'
      security:
      - OAuth2: []
      summary: Deny a particular booking item based on booking ID and item ID
      tags:
      - bookings v1
    servers:
    - url: https://apis.egencia.com/openconnect/api
      description: Generated server url
  /v1/bookings/{bookingId}:
    get:
      description: "<p>Creates a Retrieve Booking details request for a specific Booking Id</p>\n<br>\n<p>The response contains booking level as well as item level action links to approve/deny the booking request. The approve/deny action links will be coming in the response when approval status is PENDING and booking status is BOOKED.</p>\n<br>\n<p><b>Request Parameters</b></p>\n<div>\n    <table>\n        <thead>\n        <tr>\n            <th>\n               Attribute\n            </th>\n            <th>\n                Type\n            </th>\n            <th>\n                Description\n            </th>\n        </tr>\n        </thead>\n        <tbody>\n        <tr><td colspan=\"3\"><strong>metadata</strong></td></tr>\n        <tr>\n            <td>bookingId</td>\n            <td>String</td>\n            <td>Trip id corresponding to the booking which is to be retrieved</td>\n        </tr>\n        </tbody>\n    </table>\n</div>\n"
      operationId: getBookingProduct
      parameters:
      - in: path
        name: bookingId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/hal+json:
              examples:
                Booking details for product type CAR:
                  description: Booking details for product type CAR
                  value:
                    booking_id: 2000-2598-094
                    egencia_trip_link: https://www.egencia.eu/trip-webapp/2000-2598-094?auth_gpid=53590
                    company:
                      id: 53590
                      name: Test SGP EU Approval
                      organization_parent_id: 53590
                    point_of_sale:
                      country_code: FR
                    partner:
                      name: xxx
                    total_price:
                      amount: 56.98
                      currency: EUR
                    items:
                    - id: 5fc5df57d4ccd20001470900
                      travelers:
                      - id: 6532166
                        first_name: Test
                        last_name: User
                        email: test.user@example.com
                        custom_data_fields:
                        - label: Primary Cost Center
                          value: cc
                        - label: Secondary Cost Center
                          value: C&D
                        - label: Free field 2
                          value: test
                      booker:
                        id: 6532166
                        first_name: Test
                        last_name: User
                        email: test.user@example.com
                        is_agent: false
                      price:
                        currency: EUR
                        amount: 52.17
                        cost_to_customer: 52.17
                        breakdowns:
                        - type: Base price
                          currency: EUR
                          amount: 28.05
                        - type: Taxes and fees
                          currency: EUR
                          amount: 24.12
                      approval_triggered: true
                      booking_date_time: '2021-09-30T12:35:20.000Z'
                      approval_status: APPROVED
                      approval_deadline: '2021-04-20T20:30:00.000Z'
                      payment_method: DIRECT_BILLING
                      product_type: CAR
                      gds_reference: PQ5NK6 (SGP)
                      vendor_reference: J5980968464
                      booking_reference: PQ5NK6
                      mission_number: '12345'
                      custom_data_fields:
                      - label: Primary Cost Center
                        value: cc
                      - label: Secondary Cost Center
                        value: C&D
                      - label: Free field 2
                        value: test
                      receipt_provision_available: 'false'
                      rate_type:
                        name: CR
                        code: EGENCIA
                      rules_and_regulations:
                        details:
                        - One Way Information
                        - 'Miscellaneous


                          VALUE ADDED BENEFITS MAY NOT APPLY TO PERSONAL RENTALS'
                        - 'Miscellaneous


                          VALUE ADDED BENEFITS MAY NOT APPLY TO PERSONAL RENTALS'
                        - 160 miles included
                        - Vehicle Licensing Fee And Road Tax
                        - Location service charge
                        - Additional Mileage - EUR0.17 MILE
                        - Navigation guaranteed - EUR25.91 for the trip.
                        - Child seat for toddler (4-7YR/15-30KG) - EUR15.55 for the trip.
                        - Child seat for infant (0-12M/0-13KG) - EUR15.55 for the trip.
                      booking_status: BOOKED
                      policy_compliance:
                        is_compliant: false
                        reasons:
                        - type: PRICE_LIMIT
                          message: This car does not comply with your company's daily fixed price policy of EUR100.00
                      vendor:
                        code: ZE
                        name: Hertz
                      vehicle:
                        name: Vauxhall Corsa or Seat Ibiza
                        acriss_code: ECMR
                        category: E
                        mileage_limit: 160 miles
                      pick_up:
                        location:
                          type: ADDRESS
                          code: LHR
                          address:
                            street_name: LHR-Heathrow, Heathrow Airport, Northrop Rd
                            country_code: GBR
                            city_name: London Heathrow
                            state_province_name: England
                            postal_code: TW6 2QD
                        date_time: '2021-02-01T09:00:00.000Z'
                      drop_off:
                        location:
                          type: ADDRESS
                          code: LHR
                          address:
                            street_name: LHR-Heathrow, Heathrow Airport, Northrop Rd
                            country_code: GBR
                            city_name: London Heathrow
                            state_province_name: England
                            postal_code: TW6 2QD
                        date_time: '2021-02-02T09:00:00.000Z'
                      amenities: []
                      number_of_drivers: 1
                Booking details for product type CAR (Cancellation):
                  description: Booking details for product type CAR (Cancellation)
                  value:
                    booking_id: 2000-3177-352
                    company:
                      id: 64143
                      name: caspianTestCompany_FR
                      organization_parent_id: 6556965
                    point_of_sale:
                      country_code: FR
                    total_price:
                      currency: EUR
                      amount: 18
                    items:
                    - id: 68f64b9b602c01fefa264d1e
                      traveler:
                        id: 7819084
                        first_name: Test
                        last_name: User
                        email: test.user@example.com
                        preferred_language: fr
                        is_guest: false
                        custom_data_fields:
                        - label: Main cost centre
                          value: CC1
                        - label: Employee ID
                          value: '2222'
                      travelers:
                      - id: 7819084
                        first_name: Test
                        last_name: User
                        email: test.user@example.com
                        preferred_language: fr
                        is_guest: false
                        custom_data_fields:
                        - label: Main cost centre
                          value: CC1
                        - label: Employee ID
                          value: '2222'
                      price:
                        currency: EUR
                        amount: 18
                        cost_to_customer: 18
                        breakdowns: []
                      approval_triggered: false
                      payment_method: CREDIT_CARD
                      product_type: FEE
                      custom_data_fields:
                      - label: Main cost centre
                        value: CC1
                      - label: Employee ID
                        value: '2222'
                      booking_date_time: '2025-10-20T14:47:55.000Z'
                      booking_status: BOOKED
                      label: Frais Egencia Frais d'intervention - Annulation
                      associated_booking_reference: ZJNAOQ
                      _links:
                        cancel:
                          href: https://apis.egencia.eu/openconnect/api/v1/bookings/2000-3177-352/items/68f64b9b602c01fefa264d1e/cancel
                    - id: 68e67a5a772f0921253cd6f4
                      traveler:
                        id: 7819084
                        first_name: Test
                        last_name: User
                        email: test.user@example.com
                        preferred_language: fr
                        is_guest: false
                        custom_data_fields:
                        - label: Main cost centre
                          value: CC1
                        - label: Employee ID
                          value: '2222'
                      travelers:
                      - id: 7819084
                        first_name: Test
                        last_name: User
                        email: test.user@example.com
                        preferred_language: fr
                        is_guest: false
                        custom_data_fields:
                        - label: Main cost centre
                          value: CC1
                        - label: Employee ID
                          value: '2222'
                      booker:
                        id: 7805999
                        first_name: Test
                        last_name: User
                        email: test.user@example.com
                        is_agent: true
                      price:
                        currency: EUR
                        amount: 76.8
                        cost_to_customer: 0
                        breakdowns:
                        - type: Base price
                          currency: EUR
                          amount: 48
                        - type: Taxes and fees
                          currency: EUR
                          amount: 28.8
                        refunds:
                        - type: Complete Refund
                          currency: EUR
                          amount: 76.8
                      approval_triggered: false
                      payment_method: PAY_AT_COUNTER
                      product_type: CAR
                      gds_reference: ZJNAOQ (SGP)
                      vendor_reference: 2003153466COUNT
                      booking_reference: ZJNAOQ
                      custom_data_fields:
                      - label: Main cost centre
                        value: CC1
                      - label: Employee ID
                        value: '2222'
                      rate_type:
                        name: ED2FR
                        code: EGENCIA
                      rules_and_regulations:
                        details:
                        - GENERAL SURCHARGE
                        - ONE WAY CHARGE
                        - TAX
                        - COLLISION DAMAGE WAIVER - EUR18.0 per day.
                        - SUPER PERSONAL ACCIDENT INSURANCE - EUR10.03 per day.
                        - PERSONAL ACCIDENT INSURANCE - EUR6.02 per day.
                        - EP - EUR15.0 per day.
                        - S/DW1 - EUR10.03 per day.
                      policy_compliance:
                        is_compliant: true
                      booking_date_time: '2025-10-08T00:00:00.000Z'
                      cancellation_date_time: '2025-10-20T14:47:55.917Z'
                      booking_status: CANCELLED
                      vendor:
                        code: ET
                        name: Enterprise
                      vehicle:
                        name: CITROEN C3 OR SIMILAR
                        acriss_code: EDMR
                        category: E
                        mileage_limit: Unlimited
                      pick_up:
                        location:
                          type: ADDRESS
                          code: PAR
                          address:
                            street_name: TERMINAL 1 ET 2 ROISSY APT BP 332 CEDE
                            country_code: FRA
                            city_name: ROISSY
                            state_province_name: J
                            postal_code: '95716'
                        date_time: '2025-10-31T09:00:00.000+01:00'
                      drop_off:
                        location:
                          type: ADDRESS
                          code: PAR
                          address:
                            street_name: AEROGARE ORLY OUEST 

# --- truncated at 32 KB (305 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/amex-gbt/refs/heads/main/openapi/amex-gbt-bookings-v1-api-openapi.yml