American Express Global Business Travel Custom Data Fields (CDF) API

CDF APIs to retrieve Definitions and Manage Values.

Operations 7

GET /v1/companies/{companyId}/cdfs Fetch all CDF definitions for a company or corresponding to a CDF name #
GET /v1/companies/{companyId}/cdfs/{definitionId}/values Fetch all CDF values for a company and a CDF definition or corresponding to a CDF value #
POST /v1/companies/{companyId}/cdfs/{definitionId}/values Create a new CDF value for a CDF of field type List #
DELETE /v1/companies/{companyId}/cdfs/{definitionId}/values/{valueId} Delete a CDF value for a CDF of field type List #
GET /v1/companies/{companyId}/cdfs/{definitionId}/values/{valueId} Fetch all linked CDF values #
PUT /v1/companies/{companyId}/cdfs/{definitionId}/values/{valueId} Update a CDF value for a CDF of field type List #
PATCH /v1/companies/{companyId}/cdfs/{definitionId}/values/{valueId}/link Update CDF Value by adding or removing child/parent links. This endpoint is available for CC1/CC2 linking for offices in EU/APAC. #

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-custom-data-fields-cdf-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-custom-data-fields-cdf-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Amex Gbt Custom Data Fields (CDF) API
  version: '1.0'
  description: 'Operations tagged Custom Data Fields (CDF) across 2 of this provider''s published API definitions: amex-gbt-company-cdf-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:
- description: CDF APIs to retrieve Definitions and Manage Values.
  name: Custom Data Fields (CDF)
paths:
  /v1/companies/{companyId}/cdfs:
    get:
      description: "<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>companyId</td>\n               <td>Integer</td>\n               <td>Id of the company for which CDFs needs to be fetched</td>\n           </tr>\n           <tr>\n               <td>name</td>\n               <td>String</td>\n               <td>Name of the CDF if only a particular CDF needs to be fetched</td>\n           </tr>\n        </tbody>\n    </table>\n</div>\n<p><b>Examples:</b></p>\n\n<p>Retrieving CDFs for company_id : 42219</p>\n<pre>\n   <code>\n   GET https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs\n       -> 200 OK\n       {\n           \"cdfs\": [\n               {\n                   \"id\": 27,\n                   \"name\": \"Main cost centre\",\n                   \"code\": \"COST_CENTER_1\",\n                   \"status\": \"ACTIVE\",\n                   \"field_type\": \"LIST\"\n               },\n               {\n                   \"id\": 30,\n                   \"name\": \"Secondary cost centre\",\n                   \"code\": \"COST_CENTER_2\",\n                   \"status\": \"ACTIVE\",\n                   \"field_type\": \"LIST\"\n               },\n               {\n                   \"id\": 1884,\n                   \"name\": \"Employee ID\",\n                   \"code\": \"COST_CENTER_3\",\n                   \"status\": \"ACTIVE\",\n                   \"field_type\": \"FREE_FIELD\"\n               },\n               {\n                   \"id\": 31,\n                   \"name\": \"Free field 1\",\n                   \"code\": \"BDC\",\n                   \"status\": \"ACTIVE\",\n                   \"field_type\": \"FREE_FIELD\"\n               }\n           ]\n       }\n   </code></pre>"
      operationId: getCdfDefinitions
      parameters:
      - in: path
        name: companyId
        required: true
        schema:
          type: integer
          format: int64
      - in: query
        name: name
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/CdfDefinitions'
          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 not Validated for operation.'
        '404':
          description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
        '422':
          description: '<b>Invalid input</b> : invalid or missing required input.'
        '500':
          description: '<b>Internal Server Error</b> : unable to process request'
      security:
      - OAuth2: []
      summary: Fetch all CDF definitions for a company or corresponding to a CDF name
      tags:
      - Custom Data Fields (CDF)
    servers:
    - url: https://apis.egencia.com/openconnect/api
      description: Generated server url
  /v1/companies/{companyId}/cdfs/{definitionId}/values:
    get:
      description: "<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>companyId</td>\n               <td>Integer</td>\n               <td>Id of the company</td>\n           </tr>\n           <tr>\n               <td>definitionId</td>\n               <td>Integer</td>\n               <td>Id of the CDF definition for which values needs to be fetched</td>\n           </tr>\n           <tr>\n               <td>value</td>\n               <td>String</td>\n               <td>CDF value to search based on display value/label</td>\n           </tr>\n           <tr>\n               <td>count</td>\n               <td>Integer</td>\n               <td>Count of CDF values to be fetched</td>\n           </tr>\n           <tr>\n               <td>start</td>\n               <td>Integer</td>\n               <td>Start to support pagination</td>\n           </tr>\n        </tbody>\n    </table>\n</div>\n<p><b>Examples:</b></p>\n\n<p>Successful response while retrieving CDF values for company_id : 42219 and definition_id : 27</p>\n<pre>\n   <code>\n   GET https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs/27/values?count=2&start=0\n       -> 200 OK\n       {\n           \"values\": [\n               {\n                   \"id\": 84429607,\n                   \"value\": \"test A&B\",\n                   \"description\" : \"test A&B\"\n               },\n               {\n                   \"id\": 84740706,\n                   \"value\": \"test AB\",\n                   \"description\" : \"test AB\"\n               }\n           ],\n           \"_links\": {\n               \"next\": {\n                   \"href\": \"https://apis-eu-west-1.lab.egencia.cloud/openconnect-service/v1/companies/42219/cdfs/27/values?count=2&start=2\"\n               }\n           }\n       }\n   </code></pre><br/><p>Successful response to search CDF value : test for company_id : 42219 and definition_id : 27</p>\n<pre>\n   <code>\n   GET https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs/27/values?value=test\n       -> 200 OK\n       {\n           \"values\": [\n               {\n                   \"id\": 83932305,\n                   \"value\": \"Testcc1\",\n                   \"child_count\":0\n               },\n               {\n                   \"id\": 84429607,\n                   \"value\": \"testValue1\",\n                   \"child_count\":0\n               },\n               {\n                   \"id\": 84429608,\n                   \"value\": \"testingCdf\",\n                   \"child_count\":0\n               }\n           ]\n       }\n   </code></pre><br/><p>Error response while retrieving CDF values for company_id : 42219 and definition_id : 1884</p>\n<pre>\n   <code>\n   GET https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs/1884/values?count=2&start=0\n       -> 422 Unprocessable Entity\n       {\n           \"error\": {\n               \"code\": \"EGE-ER-OS-4006\",\n               \"message\": \"CDF given in request has field type as free field.\"\n           }\n       }\n   </code></pre>"
      operationId: getCdfValues
      parameters:
      - in: path
        name: companyId
        required: true
        schema:
          type: integer
          format: int64
      - in: path
        name: definitionId
        required: true
        schema:
          type: integer
          format: int64
      - in: query
        name: value
        required: false
        schema:
          type: string
      - in: query
        name: count
        required: false
        schema:
          type: integer
          format: int32
      - in: query
        name: start
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '200':
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CdfValuesResponse'
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/CdfValuesResponse'
          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 not Validated for operation.'
        '404':
          description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
        '422':
          description: '<b>Invalid input</b> : invalid or missing required input.'
        '500':
          description: '<b>Internal Server Error</b> : unable to process request'
      security:
      - OAuth2: []
      summary: Fetch all CDF values for a company and a CDF definition or corresponding to a CDF value
      tags:
      - Custom Data Fields (CDF)
    post:
      description: "<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>companyId</td>\n               <td>Integer</td>\n               <td>Id of the company</td>\n           </tr>\n           <tr>\n               <td>definitionId</td>\n               <td>Integer</td>\n               <td>Id of the CDF definition</td>\n           </tr>\n           <tr>\n               <td>value</td>\n               <td>String</td>\n               <td>Value of the CDF</td>\n           </tr>\n           <tr>\n               <td>description</td>\n               <td>String</td>\n               <td>Description of the CDF Value</td>\n           </tr>\n        </tbody>\n    </table>\n</div>\n<p><b>Examples:</b></p>\n\n<p>Creating CDF value : testws for company_id : 42219 and definition_id : 27</p>\n<pre>\n   <code>\n   POST https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs/27/values\n       {\n           \"value\":\"testws\",\n           \"description\":\"testws\"\n       }\n   <br>\n   Successful Response: \n       -> 201 Created\n       {\n           \"id\": 84736648\n       }\n   </code></pre>"
      operationId: createCdfValue
      parameters:
      - in: path
        name: companyId
        required: true
        schema:
          type: integer
          format: int64
      - in: path
        name: definitionId
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CdfValue'
        required: true
      responses:
        '201':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/CdfValuesResponse'
          description: <b>Created</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 not Validated for operation.'
        '404':
          description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
        '422':
          description: '<b>Invalid input</b> : invalid or missing required input.'
        '500':
          description: '<b>Internal Server Error</b> : unable to process request'
      security:
      - OAuth2: []
      summary: Create a new CDF value for a CDF of field type List
      tags:
      - Custom Data Fields (CDF)
    servers:
    - url: https://apis.egencia.com/openconnect/api
      description: Generated server url
  /v1/companies/{companyId}/cdfs/{definitionId}/values/{valueId}:
    delete:
      description: "<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>companyId</td>\n               <td>Integer</td>\n               <td>Id of the company</td>\n           </tr>\n           <tr>\n               <td>definitionId</td>\n               <td>Integer</td>\n               <td>Id of the CDF definition</td>\n           </tr>\n           <tr>\n               <td>valueId</td>\n               <td>Integer</td>\n               <td>Id of the CDF value for which values needs to be updated</td>\n           </tr>\n        </tbody>\n    </table>\n</div>\n<p><b>Examples:</b></p>\n\n<p>Delete CDF value with id : 676598 for company_id : 42219 and definition_id : 27</p>\n<pre>\n   <code>\n   DELETE https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs/27/values/676598\n   <br>\n   Successful Response: \n       -> 204 No Content\n   </code></pre>"
      operationId: deleteCdfValue
      parameters:
      - in: path
        name: companyId
        required: true
        schema:
          type: integer
          format: int64
      - in: path
        name: definitionId
        required: true
        schema:
          type: integer
          format: int64
      - in: path
        name: valueId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: <b>No Content</b>.
        '401':
          description: '<b>Unauthorized</b> : <i>authentication token</i> empty, invalid or expired.'
        '403':
          description: '<b>Forbidden</b> : User not Validated for operation.'
        '404':
          description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
        '500':
          description: '<b>Internal Server Error</b> : unable to process request'
      security:
      - OAuth2: []
      summary: Delete a CDF value for a CDF of field type List
      tags:
      - Custom Data Fields (CDF)
    get:
      description: "<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>companyId</td>\n                           <td>Integer</td>\n                           <td>Id of the company</td>\n                       </tr>\n                       <tr>\n                           <td>definitionId</td>\n                           <td>Integer</td>\n                           <td>Id of the CDF definition for which values needs to be fetched</td>\n                       </tr>\n                       <tr>\n                           <td>value</td>\n                           <td>String</td>\n                           <td>CDF value to search based on display value/label</td>\n                       </tr>\n                       <tr>\n                           <td>count</td>\n                           <td>Integer</td>\n                           <td>Count of CDF values to be fetched</td>\n                       </tr>\n                       <tr>\n                           <td>start</td>\n                           <td>Integer</td>\n                           <td>Start to support pagination</td>\n                       </tr>\n                       <tr>\n                           <td>include_links</td>\n                           <td>Boolean</td>\n                           <td>Fetch CDF Links Flag</td>\n                       </tr>\n                    </tbody>\n                </table>\n            </div>\n            <p><b>Examples:</b></p>\n            <p>Successful response while retrieving linked CDF values for company_id : 53092, definition_id : 27, value=84428977</p>\n            <pre>\n               <code>\n               GET https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/53092/cdfs/27/values/84428977?start=0&count=100&include_links=false\n                   -> 200 OK\n                   {\n                       {\n                         \"id\": 84428977,\n                         \"value\": \"Value 1\",\n                         \"child_count\": 4\n                   }\n               </code>\n            </pre>\n            <br/>\n            <p>Successful response to retrieve linked CDF value : test for company_id : 53092, definition_id : 27, value : 84428977</p>\n            <pre>\n               <code>\n               GET https://apis-eu-west-1.lab.egencia.cloud/openconnect/api//v1/companies/53092/cdfs/27/values/84428977?start=0&count=100&include_links=true\n                   -> 200 OK\n                   {\n                    {\n                      \"id\": 84428977,\n                      \"value\": \"Value 1\",\n                      \"child_count\": 4,\n                      \"links\": {\n                       \"child\": [\n                         {\n                           \"value\": \"Link with CC1 - 1\",\n                           \"id\": \"6171129\"\n                         },\n                         {\n                           \"value\": \"Link with CC1 - 2\",\n                           \"id\": \"6171130\"\n                         },\n                         {\n                           \"value\": \"Link with CC1 - 3\",\n                           \"id\": \"6171131\"\n                         },\n                         {\n                           \"value\": \"Link with CC1 - 4\",\n                           \"id\": \"7685276\"\n                         }\n                       ]\n                       }\n                      }\n               </code>\n            </pre>\n            <br/>\n"
      operationId: getCdfLinkedValue
      parameters:
      - in: path
        name: companyId
        required: true
        schema:
          type: integer
          format: int64
      - in: path
        name: definitionId
        required: true
        schema:
          type: integer
          format: int64
      - in: path
        name: valueId
        required: true
        schema:
          type: string
      - in: query
        name: start
        required: false
        schema:
          type: integer
          format: int32
          default: 0
      - in: query
        name: count
        required: false
        schema:
          type: integer
          format: int32
          default: 100
      - in: query
        name: include_links
        required: false
        schema:
          type: boolean
          default: false
      responses:
        '200':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/CdfValueLinks'
          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 not Validated for operation.'
        '404':
          description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
        '422':
          description: '<b>Invalid input</b> : invalid or missing required input.'
        '500':
          description: '<b>Internal Server Error</b> : unable to process request'
      security:
      - OAuth2: []
      summary: Fetch all linked CDF values
      tags:
      - Custom Data Fields (CDF)
    put:
      description: "<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>companyId</td>\n               <td>Integer</td>\n               <td>Id of the company</td>\n           </tr>\n           <tr>\n               <td>definitionId</td>\n               <td>Integer</td>\n               <td>Id of the CDF definition</td>\n           </tr>\n           <tr>\n               <td>valueId</td>\n               <td>Integer</td>\n               <td>Id of the CDF value for which values needs to be updated</td>\n           </tr>\n           <tr>\n               <td>value</td>\n               <td>String</td>\n               <td>Value of the CDF</td>\n           </tr>\n           <tr>\n               <td>description</td>\n               <td>String</td>\n               <td>Description of the CDF Value</td>\n           </tr>\n        </tbody>\n    </table>\n</div>\n<p><b>Examples:</b></p>\n\n<p>Updating CDF value for company_id : 42219, definition_id : 27 and value_id : 676598</p>\n<pre>\n   <code>\n   PUT https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs/27/values/676598\n       {\n           \"value\":\"testWSNew\",\n           \"description\":\"testWSNew\"\n       }\n   <br>\n   Successful Response: \n       -> 204 No Content\n   </code></pre>"
      operationId: updateCdfValue
      parameters:
      - in: path
        name: companyId
        required: true
        schema:
          type: integer
          format: int64
      - in: path
        name: definitionId
        required: true
        schema:
          type: integer
          format: int64
      - in: path
        name: valueId
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CdfValue'
        required: true
      responses:
        '204':
          description: <b>No Content</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 not Validated for operation.'
        '404':
          description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
        '422':
          description: '<b>Invalid input</b> : invalid or missing required input.'
        '500':
          description: '<b>Internal Server Error</b> : unable to process request'
      security:
      - OAuth2: []
      summary: Update a CDF value for a CDF of field type List
      tags:
      - Custom Data Fields (CDF)
    servers:
    - url: https://apis.egencia.com/openconnect/api
      description: Generated server url
  /v1/companies/{companyId}/cdfs/{definitionId}/values/{valueId}/link:
    patch:
      description: "<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>companyId</td>\n               <td>Integer</td>\n               <td>Id of the company</td>\n           </tr>\n           <tr>\n               <td>definitionId</td>\n               <td>Integer</td>\n               <td>Id of the CDF definition</td>\n           </tr>\n           <tr>\n               <td>valueId</td>\n               <td>Integer</td>\n               <td>Id of the CDF value for which values needs to be updated</td>\n           </tr>\n           <tr>\n               <td>op</td>\n               <td>String</td>\n               <td>Operation to be perfomed on Cdf Link</td>\n           </tr>\n           <tr>\n               <td>link</td>\n               <td>String</td>\n               <td>Cdf link on which operation is to be perfomed</td>\n           </tr>\n           <tr>\n               <td>value</td>\n               <td>List</td>\n               <td>Value of the CDF which should be numeric</td>\n           </tr>\n        </tbody>\n    </table>\n</div>\n"
      operationId: patchCdfValue
      parameters:
      - in: path
        name: companyId
        required: true
        schema:
          type: integer
          format: int64
      - in: path
        name: definitionId
        required: true
        schema:
          type: integer
          format: int64
      - in: path
        name: valueId
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json-patch+json:
            examples:
              'Request to link child value to parent CDF for company_id : 53092, definition_id : 27 and value_id : 84428977':
                description: 'Request to link child value to parent CDF for company_id : 53092, definition_id : 27 and value_id : 84428977'
                summary: Add child value to parent CDF
                value:
                - op: add
                  path: /child
                  value:
                  - 6171131
              'Request to link parent value to child CDF for company_id : 53092, definition_id : 30 and value_id : 7685276':
                description: 'Request to link parent value to child CDF for company_id : 53092, definition_id : 30 and value_id : 7685276'
                summary: Add parent value to child CDF
                value:
                - op: add
                  path: /parent
                  value:
                  - 85273140
              'Request to unlink child value from parent CDF for company_id : 53092, definition_id : 27 and value_id : 84428977':
                description: 'Request to unlink child value from parent CDF for company_id : 53092, definition_id : 27 and value_id : 84428977'
                summary: Remove child value from parent CDF
                value:
                - op: remove
                  path: /child/7685276
              'Request to unlink parent value from child CDF for company_id : 53092, definition_id : 30 and value_id : 7685276':
                description: 'Request to unlink parent value from child CDF for company_id : 53092, definition_id : 30 and value_id : 7685276'
                summary: Remove parent value from child CDF
                value:
                - op: remove
                  path: /parent/85273140
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchRequest'
        description: CDF PATCH request schema
        required: true
      responses:
        '204':
          description: <b>No Content</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 not Validated for operation.'
        '404':
          description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
        '415':
          description: '<b>Unsupported Media Type</b> : Incorrect media type provided'
        '422':
          content:
            application/json;charset=utf-8:
              example:
                error:
                  code: EGE-ER-OS-4022
                  message: Invalid CDF Value IDs [7685276] passed for linking
          description: '<b>Unprocessable Entity</b> : Invalid or missing required input.'
        '500':
          description: '<b>Internal Server Error</b> : unable to process request'
      security:
      - OAuth2: []
      summary: Update CDF Value by adding or removing child/parent links. This endpoint is available for CC1/CC2 linking for offices in EU/APAC.
      tags:
      - Custom Data Fields (CDF)
    servers:
    - url: https://apis.egencia.com/openconnect/api
      description: Generated server url
components:
  schemas:
    CdfDefinition:
      type: object
      description: CDF Definition
      properties:
        code:
          type: string
          description: CDF definition code
        fieldType:
          type: string
          description: CDF type
          enum:
          - FREE_FIELD, LIST
        id:
          type: integer
          format: int64
          description: CDF definition id
        maxLength:
          type: integer
          format: int32
          description: CDF max length
        name:
          type: string
          description: CDF definition name
        rules:
          type: array
          description: CDF definition rule
          items:
            $ref: '#/components/schemas/CdfDefinitionRule'
        status:
          type: string
          description: CDF definition status
          enum:
          - ACTIVE
          - PENDING
          - DELETED
          - INACTIVE
      title: CDFDefinition
    CdfValuesResponse:
      type: object
      description: CDF values response based on different user filters
      properties:
        _links:
          $ref: '#/components/schemas/Links'
        values:
          type: array
          description: CDF Values
          items:
            $ref: '#/components/schemas/CdfValue'
      title: CDFValuesResponse
    Links:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/Link'
    CdfLinkValue:
      type: object
      description: Link values
      properties:
        id:
          type: string
          description: Linked CDF id
        value:
          type: string
          description: Linked CDF value
      title: LinkValues
    CdfDefinitions:
      type: object
      description: CDF Definitions
      properties:
        cdfs:
          type: array
          description: List of CDF Definitions for the company
          items:
            $ref: '#/components/schemas/CdfDefinition'
      title: CDFDefinitions
    JsonPatchRequest:
      type: object
      properties:
        op:
          type: string
        path:
          type: string
        value: {}
    CdfDefinitionRule:
      type: object
      properties:
        editable:
          type: boolean
          description: Indicates if the CDF is editable for specific user type and placement.
        mandatory:
          type: boolean
          description: Indicates if the CDF is mandatory for specific user type and placement.
        placement:
          type: string
          description: CDF placement
          enum:
          - CHECKOUT
          - USER_PROFILE
          - GUEST_TEMPLATE
          - GUEST_REGISTRATION_FORM
          - EXPENSE
        userType:
          type: string
          description: Specifies the type of user associated with the rule. If this field is not set, rule applies for travelers.
      required:
      - placement
      title: CdfDefinitionRule
    Link:
      type: object
      properties:
        deprecation:
          type: string
        href:
          type: string
        hreflang:
          type: string
        name:
          type: string
        profile:
          type: string
        templated:
          type: boolean
        title:
          type: string
        type:
          type: string
    CdfValue:
      type: object
      description: CDF value response based on different 

# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/amex-gbt/refs/heads/main/openapi/amex-gbt-custom-data-fields-cdf-api-openapi.yml