CitiConnect Trade Services APIs

Trade finance over a lightweight message exchange interface: standby letters of credit, trade finance undertakings, amendment and cancellation, and receivables finance. Citi publishes 2 machine-readable specifications for this family covering 7 operations, served from developer.citi.com.

Operations 4

GET /trade-finance-undertakings Get Trade Finance Undertaking. #
POST /trade-finance-undertakings Create Trade Finance Undertaking. #
GET /trade-finance-undertakings/{application-reference} Get Trade Finance Undertaking. #
PATCH /trade-finance-undertakings/{application-reference} Update Trade Finance Undertaking. #

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/citiconnect-trade-services-apis"
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

citi-finance-undertaking-api-openapi.yaml Raw ↑
openapi: 3.0.2
info:
  title: Trade Finance Undertaking API
  description: >
    Manage all processes involved in the life cycle of a Trade Finance
    Undertaking application between corporate and banks :
                
    `The API supports following functionalities:`

    * Request for application :  Sent by the party requesting issuance of the
    undertaking (applicant or obligor) to the party issuing the undertaking
    (demand guarantee or standby letter of credit or dependent undertaking or
    counter-guarantee or counter-standby) and provides details on the applicable
    rules, terms, conditions and content of the undertaking to be issued.

    * Amendment of an already issued undertaking (reduction, release, extend,
    cancellation or termination)

    * Demand for payment or extension of undertaking expiry date


    `Error Responses`


    The API uses common HTTP status codes in the response header to indicate
    success or failure. Specific error code and description will be returned in
    the custom error schema.


    `Query Parameters`


    Each URL query parameter specifies an API query parameter that must be URL
    encoded.
  version: 0.0.1
tags:
  - name: Trade Finance Undertaking
paths:
  /trade-finance-undertakings:
    get:
      tags:
        - Trade Finance Undertaking
      summary: Get Trade Finance Undertaking.
      description: >
        Request details of all avaiable Trade Finance Undertaking applications
        or issued Trade Finance Undertaking, including any amendments, demands,
        release, extensions.


        The endpoint will return an empty array when no resource is found.
      operationId: getBankGuarantees
      parameters:
        - name: X-Request-ID
          in: header
          description: >-
            Specify an unique end to end tracking request ID. The element will
            be populated by the Citi API gateway
          required: false
          style: simple
          explode: false
          schema:
            type: string
          x-requiredByAPIGateway: true
          x-requiredByServiceProvider: true
        - name: X-UserContext
          in: header
          description: >-
            Provides requester entitlement information to service provider. A
            JWT containing a claim representing the entitlements of the API
            consumer as defined at the Citi Identity Provider. This header is
            provided by the Citi API Gateway and is not required to be provided
            by the API consumer.
          required: false
          style: simple
          explode: false
          schema:
            type: string
          example: >-
            eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIiLCJuYW1lIjoiIiwiaWF0IjowfQ.u_kftAUkjiUZO-OhIyj24H7lOUk1wi9GUF-e14JmCtQ
        - name: X-BIC
          in: header
          description: >-
            Specify the BIC of the provider of the service. The identification
            will be used by the API Gateway to forward the request to service
            provider.
          required: true
          style: simple
          explode: false
          schema:
            type: string
          example: CITIIE20
        - name: applicant-issuance-request-identification
          in: query
          description: >
            Unique business reference of the Issuance Request, assigned by the
            applicant.


            Usage: The undertaking-identification must not be used in
            conjunction with any other filter criteria. The anticipation is that
            the value is unique to retrieve a specific application by the
            reference.
          required: false
          style: form
          explode: false
          schema:
            maxLength: 16
            minLength: 1
            type: string
          example: Corporateref1
        - name: undertaking-identification
          in: query
          description: >
            Globally unique identification of the Trade Finance Undertaking
            application. The value must be constant throughout the lifecycle of
            the account. This identification shall be used as a unique reference
            to support application lifecycle to support interoperability between
            API and other channel.


            Usage: The undertaking-identification must not be used in
            conjunction with any other filter criteria. The anticipation is that
            the value is unique to retrieve a specific application by the
            reference.
          required: false
          style: form
          explode: false
          schema:
            maxLength: 16
            minLength: 1
            type: string
          example: '5000052001'
        - name: application-date
          in: query
          description: >
            Date on which the applicant lodge the application for issuance of
            Trade Finance Undertaking. Expressed in the YYYY-MM-DD format. The
            date cannot be in the future.


            Usage: The application-date must not be used in conjunction with
            application-from-date or application-to-date or issuance-date.
          required: false
          style: form
          explode: false
          schema:
            pattern: >-
              ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)(?:Z|[+-][01]\d:[0-5]\d)?$
            type: string
        - name: application-from-date
          in: query
          description: >
            Date on which the applicant lodge the application for issuance of
            Trade Finance Undertaking. Expressed in the YYYY-MM-DD format. The
            date cannot be in the future.


            Usage: The application-date must be used in conjunction with
            application-to-date. When used in conjunction with the
            application-to-date, the endpoint returns the application where the
            application date fall within that period.
          required: false
          style: form
          explode: false
          schema:
            pattern: >-
              ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)(?:Z|[+-][01]\d:[0-5]\d)?$
            type: string
          example: '2023-05-22'
        - name: application-to-date
          in: query
          description: >
            Date on which the applicant lodge the application for issuance of
            Trade Finance Undertaking. Expressed in the YYYY-MM-DD format. The
            date cannot be in the future.


            Usage: The application-date must not be used in conjunction with
            application-from-date. When used in conjunction with the
            application-from-date, the endpoint returns the application where
            the application date fall within that period.
          required: false
          style: form
          explode: false
          schema:
            pattern: >-
              ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)(?:Z|[+-][01]\d:[0-5]\d)?$
            type: string
          example: '2023-05-23'
        - name: issuance-date
          in: query
          description: >-
            Date on which the Trade Finance Undertaking is issued by the issuing
            bank. Expressed in the YYYY-MM-DD format. The date cannot be in the
            future.
          required: false
          style: form
          explode: false
          schema:
            pattern: >-
              ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)(?:Z|[+-][01]\d:[0-5]\d)?$
            type: string
        - name: application-lifecycle-status
          in: query
          description: >
            Specifies the state of a Trade Finance Undertaking in its processing
            cycle.


            Type of Trade Finance Undertaking status, in a codified form
              
              * AMRQ  - Trade Finance Undertaking Amendment Request
              * APPL  - Trade Finance Undertaking Application
          required: false
          style: form
          explode: false
          schema:
            type: string
          example: APLA
      responses:
        '200':
          description: OK
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_200'
              examples:
                GETBankGuaranteeResponseCollectionEx-1:
                  $ref: '#/components/examples/GETBankGuaranteeResponseCollectionEx-1'
                GETBankGuaranteeResponseCollectionEx-2:
                  $ref: '#/components/examples/GETBankGuaranteeResponseCollectionEx-2'
                GETBankGuaranteeResponseCollectionEx-3:
                  $ref: '#/components/examples/GETBankGuaranteeResponseCollectionEx-3'
        '400':
          description: Bad Request
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '401':
          description: Unauthorized
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '403':
          description: Forbidden
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '404':
          description: Not Found
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '406':
          description: Not Acceptable
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '413':
          description: URI Too Long
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '415':
          description: Unsupported Media Type
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '429':
          description: Too Many Requests
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '500':
          description: Internal Server Error
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '502':
          description: Bad Gateway
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '503':
          description: Service Unavailable
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '504':
          description: Gateway Timeout
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        default:
          description: Internal Server Error
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
    post:
      tags:
        - Trade Finance Undertaking
      summary: Create Trade Finance Undertaking.
      description: >-
        Application for issuance of Trade Finance Undertaking. The request is
        sent by a corporate (Applicant) to its bank for bank review or as a
        final draft to issue a guarantee.
      operationId: createBankGuarantee
      parameters:
        - name: X-Request-ID
          in: header
          description: >-
            Specify an unique end to end tracking request ID. The element will
            be populated by the  API gateway
          required: false
          style: simple
          explode: false
          schema:
            type: string
          x-requiredByAPIGateway: true
          x-requiredByServiceProvider: true
        - name: X-UserContext
          in: header
          description: >-
            Provides requester entitlement information to service provider. A
            JWT containing a claim representing the entitlements of the API
            consumer as defined at the Citi Identity Provider. This header is
            provided by the Citi API Gateway and is not required to be provided
            by the API consumer.
          required: false
          style: simple
          explode: false
          schema:
            type: string
          example: >-
            eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIiLCJuYW1lIjoiIiwiaWF0IjowfQ.u_kftAUkjiUZO-OhIyj24H7lOUk1wi9GUF-e14JmCtQ
        - name: X-BIC
          in: header
          description: >-
            Specify the BIC of the provider of the service. The identification
            will be used by the API Gateway to forward the request to service
            provider.
          required: true
          style: simple
          explode: false
          schema:
            type: string
          example: CITIIE20
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TradeFinanceInstruction'
            examples:
              CreateBankGuaranteeEx-1:
                $ref: '#/components/examples/CreateBankGuaranteeEx-1'
              CreateBankGuaranteeEx-2:
                $ref: '#/components/examples/CreateBankGuaranteeEx-2'
              CreateBankGuaranteeEx-3:
                $ref: '#/components/examples/CreateBankGuaranteeEx-3'
              CreateBankGuaranteeEx-4:
                $ref: '#/components/examples/CreateBankGuaranteeEx-4'
        required: true
      responses:
        '201':
          description: Created
          headers:
            Location:
              $ref: '#/components/headers/Location'
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '202':
          description: Accepted
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradeFinanceInstructionReference'
              example:
                application-reference: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        '400':
          description: Bad Request
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '401':
          description: Unauthorized
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '403':
          description: Forbidden
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '404':
          description: Not Found
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '406':
          description: Not Acceptable
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '415':
          description: Unsupported Media Type
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '429':
          description: Too Many Requests
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '500':
          description: Internal Server Error
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '502':
          description: Bad Gateway
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '503':
          description: Service Unavailable
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '504':
          description: Gateway Timeout
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        default:
          description: Internal Server Error
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
  /trade-finance-undertakings/{application-reference}:
    get:
      tags:
        - Trade Finance Undertaking
      summary: Get Trade Finance Undertaking.
      description: >-
        Request details of a specific Trade Finance Undertaking application or
        issued Trade Finance Undertaking, including any amendments, demands,
        release, extensions etc.
      operationId: getBankGuarantee
      parameters:
        - name: X-Request-ID
          in: header
          description: >-
            Specify an unique end to end tracking request ID. The element will
            be populated by the  API gateway
          required: false
          style: simple
          explode: false
          schema:
            type: string
          x-requiredByAPIGateway: true
          x-requiredByServiceProvider: true
        - name: X-UserContext
          in: header
          description: >-
            Provides requester entitlement information to service provider. A
            JWT containing a claim representing the entitlements of the API
            consumer as defined at the  Identity Provider. This header is
            provided by the  API Gateway and is not required to be provided by
            the API consumer.
          required: false
          style: simple
          explode: false
          schema:
            type: string
          example: >-
            eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIiLCJuYW1lIjoiIiwiaWF0IjowfQ.u_kftAUkjiUZO-OhIyj24H7lOUk1wi9GUF-e14JmCtQ
        - name: X-BIC
          in: header
          description: >-
            Specify the BIC of the provider of the service. The identification
            will be used by the API Gateway to forward the request to service
            provider.
          required: true
          style: simple
          explode: false
          schema:
            type: string
          example: CITIIE20
        - name: application-reference
          in: path
          description: >
            An unique and unambiguous identification of the Trade Finance
            Undertaking Application as assigned by the origin server. The value
            must be constant throughout the lifecycle of the application. On
            successful creation, the application can be retrieved using the
            application reference. This identification shall be used as a
            resource identifier for all state transition.
          required: true
          style: simple
          explode: false
          schema:
            type: string
            format: uuid
          example: 123e456-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: OK
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            ETag:
              $ref: '#/components/headers/ETag'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradeFinanceInstruction'
              examples:
                GETBankGuaranteeResponseEx-1:
                  $ref: '#/components/examples/GETBankGuaranteeResponseEx-1'
                GETBankGuaranteeResponseEx-2:
                  $ref: '#/components/examples/GETBankGuaranteeResponseEx-2'
                GETBankGuaranteeResponseEx-3:
                  $ref: '#/components/examples/GETBankGuaranteeResponseEx-3'
                GETBankGuaranteeResponseEx-4:
                  $ref: '#/components/examples/GETBankGuaranteeResponseEx-4'
        '400':
          description: Bad Request
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '401':
          description: Unauthorized
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '403':
          description: Forbidden
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '404':
          description: Not Found
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '406':
          description: Not Acceptable
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '413':
          description: URI Too Long
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '415':
          description: Unsupported Media Type
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '429':
          description: Too Many Requests
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '500':
          description: Internal Server Error
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '502':
          description: Bad Gateway
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '503':
          description: Service Unavailable
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '504':
          description: Gateway Timeout
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        default:
          description: Internal Server Error
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
    patch:
      tags:
        - Trade Finance Undertaking
      summary: Update Trade Finance Undertaking.
      description: >-
        Post issuance amendments of the Trade Finance Undertaking including any
        permitted modification to the application such as reduction, release,
        extend.
      operationId: modifyBankGuarantee
      parameters:
        - name: X-Request-ID
          in: header
          description: >-
            Specify an unique end to end tracking request ID. The element will
            be populated by the  API gateway
          required: false
          style: simple
          explode: false
          schema:
            type: string
          x-requiredByAPIGateway: true
          x-requiredByServiceProvider: true
        - name: X-UserContext
          in: header
          description: >-
            Provides requester entitlement information to service provider. A
            JWT containing a claim representing the entitlements of the API
            consumer as defined at the  Identity Provider. This header is
            provided by the  API Gateway and is not required to be provided by
            the API consumer.
          required: false
          style: simple
          explode: false
          schema:
            type: string
          example: >-
            eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIiLCJuYW1lIjoiIiwiaWF0IjowfQ.u_kftAUkjiUZO-OhIyj24H7lOUk1wi9GUF-e14JmCtQ
        - name: X-BIC
          in: header
          description: >-
            Specify the BIC of the provider of the service. The identification
            will be used by the API Gateway to forward the request to service
            provider.
          required: true
          style: simple
          explode: false
          schema:
            type: string
          example: CITIIE20
        - name: If-Match
          in: header
          description: >-
            This header will contain the Etag of the resource representation to
            be manipulate. If the server ETag value does not match with the
            provided ETag value, the error response 412 - precondition fail will
            be returned. This signifies the resource is out of date.
          required: false
          style: simple
          explode: false
          schema:
            type: string
          example: f88dd058fe004909615a64f01be66a7
        - name: application-reference
          in: path
          description: >
            An unique and unambiguous identification of the Trade Finance
            Undertaking Application as assigned by the origin server. The value
            must be constant throughout the lifecycle of the application. On
            successful creation, the application can be retrieved using the
            application reference. This identification shall be used as a
            resource identifier for all state transition.
          required: true
          style: simple
          explode: false
          schema:
            type: string
            format: uuid
          example: 123e456-e89b-12d3-a456-426614174000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TradeFinanceInstruction'
            examples:
              updateBankGuarantee_success:
                $ref: '#/components/examples/UpdateBankGuarantee'
        required: true
      responses:
        '202':
          description: Accepted
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Bad Request
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '401':
          description: Unauthorized
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '403':
          description: Forbidden
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '404':
          description: Not Found
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '406':
          description: Not Acceptable
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '412':
          description: Precondition Failed
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '415':
          description: Unsupported Media Type
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '429':
          description: Too Many Requests
 

# --- truncated at 32 KB (233 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/citi/refs/heads/main/openapi/citi-finance-undertaking-api-openapi.yaml