Citi Fx API

The Fx API from Citi — 2 operation(s) for fx.

Operations 2

POST /merchants/v1/fx-rate FX Query #
POST /fx/oauth2/token Request Access Token #

Documentation

📖
Documentation
https://developer.citi.com/apidocs/authentication/authentication-only-guide
📖
APIReference
https://developer.citi.com/apidocs/authentication/authentication-api-reference
📖
Authentication
https://raw.githubusercontent.com/api-evangelist/citi/refs/heads/main/authentication/citi-authentication.yml
📖
Documentation
https://developer.citi.com/apidocs/account-reporting/balances/balances-overview
📖
APIReference
https://developer.citi.com/apidocs/account-reporting/balances/balances-api-reference
📖
Documentation
https://developer.citi.com/apidocs/outgoing-payments/payments/payments-overview
📖
APIReference
https://developer.citi.com/apidocs/outgoing-payments/payments/payments-api-reference
📖
Documentation
https://developer.citi.com/apidocs/accept-payments/online-payment-acceptance/online-payment-acceptance-overview
📖
APIReference
https://developer.citi.com/apidocs/accept-payments/online-payment-acceptance/online-payment-acceptance-api-reference
📖
Documentation
https://developer.citi.com/apidocs/commercial-cards/virtual-cards/commercial-cards-overview
📖
APIReference
https://developer.citi.com/apidocs/commercial-cards/virtual-cards/virtual-cards-api-reference
📖
Documentation
https://developer.citi.com/apidocs/fx/gateway/citifx-gateway-overview
📖
APIReference
https://developer.citi.com/apidocs/fx/instant-fx/instant-fx-overview
📖
Documentation
https://developer.citi.com/apidocs/custody/accounts/accounts-overview
📖
APIReference
https://developer.citi.com/apidocs/custody/safekeeping-positions/safekeeping-positions-api-reference
📖
Documentation
https://developer.citi.com/apidocs/transfer-agency/accounts/accounts-overview
📖
APIReference
https://developer.citi.com/apidocs/transfer-agency/accounts/accounts-api-reference
📖
Documentation
https://developer.citi.com/apidocs/open-banking/ukraine-open-banking/ukraine-open-banking-overview
📖
APIReference
https://developer.citi.com/apidocs/open-banking/ukraine-open-banking/ukraine-bank-data-sharing-api-reference
📖
Documentation
https://developer.citi.com/apidocs/trade/standby-letters-of-credit/trade-overview
📖
APIReference
https://developer.citi.com/apidocs/trade/standby-letters-of-credit/trade-api-reference
📖
Documentation
https://developer.citi.com/apidocs/gateway-services/gateway-services-user-guide
📖
APIReference
https://developer.citi.com/apidocs/gateway-services/gateway-services-api-reference
📖
Documentation
https://developer.citi.com/apidocs/additional-payment-services/additional-payment-services/additional-payment-services-overview
📖
APIReference
https://developer.citi.com/apidocs/additional-payment-services/additional-payment-services/additional-payment-services-api-reference

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/citi-fx-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

citi-fx-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Citi Fx API
  version: '1.0'
  description: 'Operations tagged Fx across 2 of this provider''s published API definitions: citi-marketplace-management-openapi.yaml, fx_authentication_api.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices
  description: production gateway url
- url: https://sandbox.b2b.api.icg.citi.com/citiconnect/sb/gatewayservices
  description: sbox url
- url: https://sandbox.api.citivelocity.com/markets/cv/api
  description: sandbox URL
- url: https://api.citivelocity.com/markets/cv/api
  description: production URL
tags:
- name: FX
  description: FX Rate Inquiry
paths:
  /merchants/v1/fx-rate:
    post:
      summary: FX Query
      description: You can use this to get fx rate to be used for transaction. The latest rate you get is valid for 5 minutes , during which time you can use this rate to transaction
      operationId: fxQuery
      servers:
      - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices
      tags:
      - FX
      parameters:
      - $ref: '#/components/parameters/Client-Id'
      - $ref: '#/components/parameters/Idempotency-Id'
      - $ref: '#/components/parameters/Merchant-Id'
      - $ref: '#/components/parameters/Country-Code'
      requestBody:
        description: This section holds the request parameters for FX Rate Inquiry.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Fx-Query-Request'
            examples:
              fxquery-request:
                $ref: '#/components/examples/Fx-Query-Request-Example'
      responses:
        '200':
          description: FX Query completed successfully.
          headers:
            apim-guid:
              $ref: '#/components/headers/Apim-Guid'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fx-Query-Response'
              examples:
                success-response:
                  $ref: '#/components/examples/Fx-Query-Success-Example'
        '400':
          $ref: '#/components/responses/Bad-Request'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/Not-Found'
        '405':
          $ref: '#/components/responses/Method-Not-Allowed'
        '409':
          $ref: '#/components/responses/Conflict'
        '415':
          $ref: '#/components/responses/Unsupported-Media-Type'
        '429':
          $ref: '#/components/responses/Too-Many-Requests'
        '500':
          $ref: '#/components/responses/Internal-Server-Error'
        '503':
          $ref: '#/components/responses/Service-Unavailable'
        '504':
          $ref: '#/components/responses/Gateway-Timeout'
      security:
      - oAuth2:
        - /authenticationservices/v1
    servers:
    - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices
      description: production gateway url
    - url: https://sandbox.b2b.api.icg.citi.com/citiconnect/sb/gatewayservices
      description: sbox url
  /fx/oauth2/token:
    post:
      summary: Request Access Token
      description: The OAuth token request authenticates your API message and responds with an access token.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Request'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              example:
                httpMessage: Bad Request
                httpCode: 400
        '401':
          description: Unauthorized
          content:
            application/json:
              example:
                error: invalid_client
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              example:
                httpMessage: NOT FOUND
                httpCode: 404
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              example:
                httpMessage: METHOD NOT ALLOWED
                httpCode: 405
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              example:
                httpMessage: Internal Server Error
                httpCode: 500
      deprecated: false
      security:
      - basicAuth: []
      tags:
      - FX
      operationId: postFxOauth2Token
      x-operation-id-source: derived
    servers:
    - url: https://sandbox.api.citivelocity.com/markets/cv/api
      description: sandbox URL
    - url: https://api.citivelocity.com/markets/cv/api
      description: production URL
components:
  schemas:
    Multiple-Currency-Amount:
      title: FxQuery
      type: object
      properties:
        buy_currency_code:
          allOf:
          - $ref: '#/components/schemas/Currency-Code'
          title: buy_currency_code
          description: The currency that the client is buying.
          example: CNH
        buy_amount:
          allOf:
          - $ref: '#/components/schemas/Amount'
          title: buy_amount
          description: The amount of buy_currency for the transaction. (You ONLY need to define one amount, either buy_amount or sell_amount in a request.)
          example: 100.11
        sell_currency_code:
          allOf:
          - $ref: '#/components/schemas/Currency-Code'
          title: sell_currency_code
          description: The currency that the client is selling.
          example: USD
        sell_amount:
          allOf:
          - $ref: '#/components/schemas/Amount'
          title: sell_amount
          description: The amount of sell_currency for the transaction. (You ONLY need to define one amount, either buy_amount or sell_amount in a request.)
          example: 80.1
    Fx-Query-Request:
      title: FxQueryRequest
      allOf:
      - $ref: '#/components/schemas/Multiple-Currency-Amount'
      - type: object
        title: Fx-Query-Request
        required:
        - buy_currency_code
        - sell_currency_code
        - reference_id
        - seller_markup
        properties:
          seller_markup:
            type: string
            title: seller_markup
            description: Seller markup consists of country code + markup.
            example: CN-150
          reference_id:
            $ref: '#/components/schemas/Reference-Id'
    Amount:
      type: number
      title: amount
      description: Amount in currency.
      minimum: 0.01
      maximum: 10000000000000
      example: 1000
    Fx-Rate:
      type: number
      title: fx_rate
      description: The indicative FX rate which is for reference only. The number indicates how much units of buy_currency you can get from one unit of sell_currency.
    Reference-Id:
      type: string
      title: reference_id
      description: Unique identifier for this request from your system.
      example: '12456'
      minLength: 1
      maxLength: 120
    Fx-Rate-Id:
      type: string
      title: fx_rate_id
      description: When you request a guaranteed quote of Instant FX and Reserved FX, the Citi will return a `fx_rate_id`, which is the unique ID only for guaranteed `fx_indi_rate. <b> fx_rate_id is mandatory for other than USD to USD transfer.
      minLength: 1
      maxLength: 64
      example: '16098876465273400000'
    Service-Error-Response:
      title: ServiceErrorResponse
      type: object
      required:
      - ref_id
      - error_details
      properties:
        ref_id:
          type: string
          maxLength: 120
          description: Unique ID for the Transaction
          title: ref_id
          example: 444d0f3f-4x55-7g99-8b2c-0cf2a921a5ab
        error_details:
          type: array
          description: List of error details
          title: error_details
          items:
            $ref: '#/components/schemas/Error-Detail'
    Currency-Code:
      type: string
      title: currency_code
      description: The currency code in the transaction.
      pattern: ^[A-Z]{3}$
      example: USD
    Gateway-Error-Response:
      type: object
      title: GatewayErrorResponse
      required:
      - httpCode
      - httpMessage
      - moreInformation
      properties:
        httpCode:
          type: string
          maxLength: 3
          description: Numeric HTTP Staus code
          title: httpCode
        httpMessage:
          type: string
          maxLength: 128
          description: HTTP error message
          title: httpMessage
          example: Bad Request
        moreInformation:
          type: string
          maxLength: 128
          description: HTTP error message
          title: moreInformation
          example: please provide valid value for request
    Error-Detail:
      type: object
      title: ErrorDetail
      properties:
        issue:
          type: string
          minLength: 1
          maxLength: 200
          description: more details about the issue
          title: issue
          example: property emailAddress is mandatory and it cannot be empty
        action:
          type: string
          maxLength: 350
          description: corrective action to be taken to resolve above issue
          title: action
          example: please provide valid value for property emailAddress
        code:
          type: string
          minLength: 1
          maxLength: 64
          description: unique code representing the issue
          title: code
          example: VC00010
    Fx-Query-Response:
      title: FxQueryResponse
      allOf:
      - $ref: '#/components/schemas/Multiple-Currency-Amount'
      - type: object
        title: Fx-Query-Response
        required:
        - buy_currency_code
        - buy_amount
        - sell_currency_code
        - sell_amount
        - fx_rate
        - reference_id
        properties:
          fx_rate_id:
            $ref: '#/components/schemas/Fx-Rate-Id'
          fx_rate:
            $ref: '#/components/schemas/Fx-Rate'
          value_date:
            allOf:
            - $ref: '#/components/schemas/Common-Date'
            title: value_date
            description: Settlement date of the FX transaction (yyyy-MM-dd, not required for Instant FX transactions).
          expiry_time:
            allOf:
            - $ref: '#/components/schemas/Created-Time'
            title: expiry_time
            description: 'The expiration timestamp of the quote. If the transaction is not executed, the `fx_rate_id` will expire after the date and time. After the expiration timestamp, you should request new fx_rate format : YYYY-MM-DDTHH:mm:ssZ).'
          reference_id:
            $ref: '#/components/schemas/Reference-Id'
    Common-Date:
      type: string
      title: date
      format: date
      description: Date in ISO 8601 (YYYY-MM-DD).
      example: '1975-03-07'
    Created-Time:
      type: string
      format: date-time
      description: Date and time of the file created. Pattern YYYY-MM-DDTHH:mm:ssZ
      title: created_time
      example: '2026-01-06T10:56:25Z'
    Request:
      required:
      - grantType
      - client_id
      - client_secret
      - scope
      properties:
        grantType:
          type: string
          description: You must always pass 'client_credentials' in this field because Citi only provides credentials-based authentication for API users.
        client_id:
          type: string
          description: Your client ID.
        client_secret:
          type: string
          description: Your client secret.
        scope:
          type: string
          description: This is the scope of the authentication call. Value should be `fxpai`.
      example:
        grantType: client_credentials
        scope: fxpai
        client_id: YOUR_CLIENT_ID_HERE
        client_secret: YOUR_CLIENT_SECRET_HERE
    Response:
      title: oAuthTokenResponse
      description: The response body to retrieve an OAuth token.
      required:
      - access_token
      - expires_in
      - scope
      properties:
        access_token:
          type: string
          description: Contains the OAuth Token that will be used for authenticating successive API calls. The token should be passed in the request header "Authorization", prefixed with "Bearer" and a space in between.
        token_type:
          type: string
          description: Default value will be “Bearer".
        scope:
          type: string
          description: The scope of the authentication call. The value will be `fxapi`.
        expires_in:
          type: string
          description: The expiry time of the OAuth Token in seconds.
      example:
        token_type: Bearer
        access_token: AAIkYWNkODQwNzgtZTczMi00ZjczLTg3MDktYmYzODE0MTU2OGYxKbY9QECipkzJXDAf5HQONqyXdZbeJUHEykY5cgI7zk3gHsXOqZrKMeAoHRoglUyCnQ6Iye5r21XB4nOr8_t0BQ0AiJAoLZleFFZYWt2y2YAhOKxd-yBQF8XtqiOs5z32Wr-eOZwIdnyvx7_Vak2Fzw
        expires_in: '900'
        scope: fxapi
    ErrorMessage:
      required:
      - httpCode
      properties:
        httpCode:
          type: integer
        httpMessage:
          type: string
  examples:
    Un-Supported-Media-Type-Service-Error-Example:
      value:
        ref_id: ec689822-9864-4c4d-9d68-222467627902
        error_details:
        - issue: Media type not supported
          action: please use valid content-type in header
          code: CC00002
    Fx-Query-Request-Example:
      summary: Sample FX Query request
      value:
        buy_currency_code: CNH
        buy_amount: 100.11
        sell_currency_code: USD
        sell_amount: 80.1
        reference_id: '12456'
        seller_markup: CN-150
    Unauthorized-Service-Error-Example:
      value:
        ref_id: ec689822-9864-4c4d-9d68-222467627902
        error_details:
        - issue: User not authorized for this functionality
          action: please use valid credentials to access this functionality
          code: CC00007
    Internal-Server-Service-Error-Example:
      value:
        ref_id: ec689822-9864-4c4d-9d68-222467627902
        error_details:
        - issue: unable to serve your request at this moment
          action: Please refer to documentation provided or contact support team
          code: CC00004
    Bad-Request-Service-Error-Example:
      value:
        ref_id: ec689822-9864-4c4d-9d68-222467627901
        error_details:
        - issue: record that you are searching is not found
          action: resend the request with valid values
          code: VC00003
    Not-Found-Gateway-Error-Example:
      value:
        httpCode: '404'
        httpMessage: Not Found
        moreInformation: No resources match requested URI
    Bad-Request-Gateway-Error-Example:
      value:
        httpCode: '400'
        httpMessage: Bad Request
        moreInformation: please provide valid value for request
    Too-Many-Requests-Gateway-Example:
      value:
        httpCode: '429'
        httpMessage: Too Many Requests
        moreInformation: Rate Limit exceeded
    Method-Not-Allowed-Service-Error-Example:
      value:
        ref_id: ec689822-9864-4c4d-9d68-222467627901
        error_details:
        - issue: Method not supported
          action: Method not supported for this endpoint, please use valid http verb
          code: CC00001
    Fx-Query-Success-Example:
      summary: Sample 200 response
      value:
        buy_currency_code: CNH
        buy_amount: 100.11
        sell_currency_code: USD
        sell_amount: 80.1
        value_date: '2025-12-15'
        fx_rate_id: '16098876465273400000'
        fx_rate: 7.13909
        expiry_time: '2025-08-22T12:00:00Z'
        reference_id: '12456'
    Service-Unavailable-Gateway-Example:
      value:
        httpCode: '503'
        httpMessage: Service is temporarily unavailable
        moreInformation: Retry the request after some time
    Forbidden-Service-Example:
      value:
        ref_id: ec689822-9864-4c4d-9d68-222467627902
        error_details:
        - code: CC00008
          issue: User does not have privilege to access this functionality.
          action: Please reach out to support team to enable this feature.
    Un-Supported-Media-Type-Gateway-Error-Example:
      value:
        httpCode: '415'
        httpMessage: Unsupported Media Type
        moreInformation: Unsupported Content-Type application/octet-stream
    Unauthorized-Gateway-Error-Example:
      value:
        httpCode: '401'
        httpMessage: Unauthorized
        moreInformation: The server could not verify that you are authorized to access the URL
    Method-Not-Allowed-Gateway-Error-Example:
      value:
        httpCode: '405'
        httpMessage: Method Not Allowed
        moreInformation: The method is not allowed for the requested URL
    Internal-Server-Gateway-Error-Example:
      value:
        httpCode: '500'
        httpMessage: Internal Server Error
        moreInformation: Internal Server Error
  responses:
    Gateway-Timeout:
      description: Gateway Timeout
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Gateway-Error-Response'
    Too-Many-Requests:
      description: Too Many Requests - Rate limit exceeded. Retry after the specified time.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Gateway-Error-Response'
          examples:
            Too-Many-Requests-Gateway-Example:
              $ref: '#/components/examples/Too-Many-Requests-Gateway-Example'
    Bad-Request:
      description: Bad Request
      content:
        application/json:
          schema:
            title: Bad-Request-Response
            oneOf:
            - $ref: '#/components/schemas/Gateway-Error-Response'
            - $ref: '#/components/schemas/Service-Error-Response'
          examples:
            Bad-Request-Service-Error-Example:
              $ref: '#/components/examples/Bad-Request-Service-Error-Example'
            Bad-Request-Gateway-Error-Example:
              $ref: '#/components/examples/Bad-Request-Gateway-Error-Example'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            title: Unauthorized-Response
            oneOf:
            - $ref: '#/components/schemas/Service-Error-Response'
            - $ref: '#/components/schemas/Gateway-Error-Response'
          examples:
            Unauthorized-Service-Error-Example:
              $ref: '#/components/examples/Unauthorized-Service-Error-Example'
            Unauthorized-Gateway-Error-Example:
              $ref: '#/components/examples/Unauthorized-Gateway-Error-Example'
    Not-Found:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Gateway-Error-Response'
          examples:
            Not-Found-Gateway-Error-Example:
              $ref: '#/components/examples/Not-Found-Gateway-Error-Example'
    Conflict:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Service-Error-Response'
    Method-Not-Allowed:
      description: Method Not Allowed
      content:
        application/json:
          schema:
            title: Method-Not-Allowed-Response
            oneOf:
            - $ref: '#/components/schemas/Gateway-Error-Response'
            - $ref: '#/components/schemas/Service-Error-Response'
          examples:
            Method-Not-Allowed-Gateway-Error-Example:
              $ref: '#/components/examples/Method-Not-Allowed-Gateway-Error-Example'
            Method-Not-Allowed-Service-Error-Example:
              $ref: '#/components/examples/Method-Not-Allowed-Service-Error-Example'
    Unsupported-Media-Type:
      description: Unsupported Media Type
      content:
        application/json:
          schema:
            title: Unsupported-Media-Type-Response
            oneOf:
            - $ref: '#/components/schemas/Gateway-Error-Response'
            - $ref: '#/components/schemas/Service-Error-Response'
          examples:
            Un-Supported-Media-Type-Gateway-Error-Example:
              $ref: '#/components/examples/Un-Supported-Media-Type-Gateway-Error-Example'
            Un-Supported-Media-Type-Service-Error-Example:
              $ref: '#/components/examples/Un-Supported-Media-Type-Service-Error-Example'
    Internal-Server-Error:
      description: Internal Server Error
      content:
        application/json:
          schema:
            title: Internal-Server-Error-Response
            oneOf:
            - $ref: '#/components/schemas/Gateway-Error-Response'
            - $ref: '#/components/schemas/Service-Error-Response'
          examples:
            Internal-Server-Service-Error-Example:
              $ref: '#/components/examples/Internal-Server-Service-Error-Example'
            Internal-Server-Gateway-Error-Example:
              $ref: '#/components/examples/Internal-Server-Gateway-Error-Example'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Service-Error-Response'
          examples:
            Forbidden-Service-Example:
              $ref: '#/components/examples/Forbidden-Service-Example'
    Service-Unavailable:
      description: Service Unavailable - The server is temporarily unable to  handle the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Gateway-Error-Response'
          examples:
            Service-Unavailable-Gateway-Example:
              $ref: '#/components/examples/Service-Unavailable-Gateway-Example'
  headers:
    Apim-Guid:
      description: Unique system generated reference number generated by   Citi. Refer to this number in case of any discrepancy reporting to a Citi representative.
      schema:
        type: string
        maxLength: 128
        minLength: 1
        title: Apim-Guid
      required: true
      example: na-apimgwgtds04~4a98cbc5-d813-4e65-bc81-d70f0f87f6ec
  parameters:
    Client-Id:
      in: query
      name: client_id
      description: Your unique identification, same as the identification you use for OAuth token generation, Citi shared with you during your CitiConnect API onboarding.
      schema:
        type: string
        title: Client-Id
        example: 6d3cf821-db6d-496d-bec0-064a362e9c31
        minimum: 1
        maximum: 128
      required: true
    Merchant-Id:
      in: header
      name: Merchant-Id
      description: CITI generated Merchant ID during merchant creation.
      schema:
        type: string
        title: Merchant-Id
        minLength: 1
        maxLength: 36
        example: ec689822-9864-4c4d-9d68-22246762901
      required: true
    Country-Code:
      in: header
      name: Country-Code
      description: Marketplace's country code.
      schema:
        pattern: ^[A-Z]{2,2}$
        type: string
        title: Country-Code
        example: US
      required: true
    Idempotency-Id:
      in: header
      name: Idempotency-Id
      description: "Your unique identification for a POST request \n - Maximum length is 128. \n-CitiConnect API responds with an error (HTTP status 4XX) if your POST request idempotency identification value is a duplicate across a recent history of idempotency identifications in Citi's database. \n- If you don't receive any response (HTTP status 2XX, 4XX or 5XX) from Citi to your POST request and you wish to retry, reinitiate your request with the same idempotency identification to prevent accidental duplicate payment."
      schema:
        type: string
        title: Idempotency-Id
        minLength: 1
        maxLength: 128
        example: a44cbb606de4edb9a7a123414bba3bb
      required: true
  securitySchemes:
    oAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://b2b.api.icg.citi.com/authenticationservices/v3/oauth/token
          scopes:
            /authenticationservices/v1: Access to marketplace management APIs
    basicAuth:
      type: http
      scheme: basic
      description: Username is the application's client_id and password is the client_secret.
x-refined-from:
- citi-marketplace-management-openapi.yaml
- fx_authentication_api.yaml