Citi Open Banking APIs

Regulated open banking surfaces: Ukraine bank data sharing, Ukraine OAuth2 authentication and payment service initiation, and European commercial card account balance and statement transaction inquiry. Citi publishes 3 machine-readable specifications for this family covering 11 operations, served from developer.citi.com.

Operations 6

POST /account-consent accountInformationConsent #
GET /account-consent/{consentId} accountInformationConsentInquiry #
DELETE /account-consent/{consentId} accountInformationConsentDeletion #
GET /accounts Account Details #
GET /balances Account Balances #
GET /transactions Transactions Details by Account ID #

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-open-banking-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-ukraine-bank-data-sharing-api-openapi.yaml Raw ↑
openapi: 3.0.2
info:
  title: Bank Data Sharing
  version: 1.0.0
  description: >-
    Manage account consent and access real-time account details, balances, and
    transactions through our secure open banking API.
  contact:
    name: Citi API Support
servers:
  - url: >-
      https://b2b.tts.icgservices.citi.com/citiconnect/openbanking/ukr/accountconsentservices/v1
    description: production gateway url
  - url: >-
      https://sanbox.tts.icgservices.citi.com/citiconnect/openbanking/ukr/accountconsentservices/v1
    description: sbox url
tags:
  - name: ConsentManagement
    description: API services to create, retrieve, and delete account information consent.
  - name: BankDataSharing
    description: API services to provide accounts, balances and transactions details.
security:
  - oAuth:
      - authenticationservices/v1
paths:
  /account-consent:
    post:
      tags:
        - ConsentManagement
      summary: accountInformationConsent
      description: >-
        Create an account information consent resource that captures permission
        scope, participant details, and authentication context, enabling
        subsequent authorized account and balance data access requests by the
        approved TPP.
      servers:
        - url: >-
            https://b2b.tts.icgservices.citi.com/citiconnect/openbanking/ukr/accountconsentservices/v1
      operationId: accountInformationConsent
      parameters:
        - $ref: '#/components/parameters/Request-ID'
        - $ref: '#/components/parameters/Group-ID'
        - $ref: '#/components/parameters/TPP-Code'
        - $ref: '#/components/parameters/PSU-IP-Address'
        - $ref: '#/components/parameters/Date'
      requestBody:
        description: >-
          Account information consent payload containing participant, SCA, and
          permission details.
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountInformationConsentRequest'
            examples:
              Consent-Create-Request:
                $ref: '#/components/examples/Consent-Create-Request'
      responses:
        '201':
          description: Account Information Consent Response.
          headers:
            Request-ID:
              $ref: '#/components/headers/Request-ID'
            Group-ID:
              $ref: '#/components/headers/Group-ID'
            TPP-Code:
              $ref: '#/components/headers/TPP-Code'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountInformationConsent'
              examples:
                Consent-Create-Response:
                  $ref: '#/components/examples/Consent-Create-Response'
        '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:
        - oAuth:
            - authenticationservices/v1
  /account-consent/{consentId}:
    get:
      tags:
        - ConsentManagement
      summary: accountInformationConsentInquiry
      description: >-
        Retrieve the current status and full details of an existing account
        information consent using the provided `consentId`, so clients can
        verify validity, permissions, and lifecycle state before data access.
      servers:
        - url: >-
            https://b2b.tts.icgservices.citi.com/citiconnect/openbanking/ukr/accountconsentservices/v1
      operationId: accountInformationConsentInquiry
      parameters:
        - $ref: '#/components/parameters/Consent-Id-Path'
        - $ref: '#/components/parameters/Request-ID'
        - $ref: '#/components/parameters/Group-ID'
        - $ref: '#/components/parameters/TPP-Code'
        - $ref: '#/components/parameters/PSU-IP-Address'
        - $ref: '#/components/parameters/Date'
      responses:
        '200':
          $ref: '#/components/responses/Account-Consent-Inquiry'
        '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:
        - oAuth:
            - authenticationservices/v1
    delete:
      tags:
        - ConsentManagement
      summary: accountInformationConsentDeletion
      description: >-
        Revoke and delete an existing account information consent identified by
        `consentId`, preventing further use of that consent for account data
        retrieval and ensuring consent lifecycle closure for compliance
        requirements.
      servers:
        - url: >-
            https://b2b.tts.icgservices.citi.com/citiconnect/openbanking/ukr/accountconsentservices/v1
      operationId: accountInformationConsentDeletion
      parameters:
        - $ref: '#/components/parameters/Consent-Id-Path'
        - $ref: '#/components/parameters/Request-ID'
        - $ref: '#/components/parameters/Group-ID'
        - $ref: '#/components/parameters/TPP-Code'
        - $ref: '#/components/parameters/PSU-IP-Address'
        - $ref: '#/components/parameters/Date'
      responses:
        '204':
          $ref: '#/components/responses/No-Content'
        '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:
        - oAuth:
            - authenticationservices/v1
  /accounts:
    get:
      tags:
        - BankDataSharing
      summary: Account Details
      description: >-
        Retrieve detailed account information for every account linked to the
        provided `Client-Id`, including identifiers, account attributes, and
        related metadata needed for downstream account aggregation and
        reconciliation use cases.
      servers:
        - url: >-
            https://b2b.tts.icgservices.citi.com/citiconnect/openbanking/ukr/accountconsentservices/v1
      operationId: getAccountsByClientId
      parameters:
        - $ref: '#/components/parameters/Account-Ref'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Page-No'
        - $ref: '#/components/parameters/Sort-By'
        - $ref: '#/components/parameters/Sort-Type'
        - $ref: '#/components/parameters/Consent-Id'
        - $ref: '#/components/parameters/Request-ID'
        - $ref: '#/components/parameters/PSU-IP-Address'
        - $ref: '#/components/parameters/TPP-Code'
        - $ref: '#/components/parameters/Date'
      responses:
        '200':
          description: Accounts Response.
          headers:
            Pagination-Metadata:
              $ref: '#/components/headers/Pagination-Metadata'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Accounts-Information'
              examples:
                Account-Response:
                  $ref: '#/components/examples/Account-Response'
        '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'
      deprecated: false
      security:
        - oAuth:
            - authenticationservices/v1
  /balances:
    get:
      tags:
        - BankDataSharing
      summary: Account Balances
      description: >-
        Retrieve balance information for all accounts associated with the
        requesting `Client-Id`, or limit the response to a specific account by
        providing `Account_ref`, supporting both account-level inquiries and
        consolidated liquidity monitoring.
      servers:
        - url: >-
            https://b2b.tts.icgservices.citi.com/citiconnect/openbanking/ukr/accountconsentservices/v1
      operationId: getBalancesByClientId
      parameters:
        - $ref: '#/components/parameters/Account-Ref'
        - $ref: '#/components/parameters/From-Date'
        - $ref: '#/components/parameters/To-Date'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Page-No'
        - $ref: '#/components/parameters/Sort-By'
        - $ref: '#/components/parameters/Sort-Type'
        - $ref: '#/components/parameters/Currency-Code'
        - $ref: '#/components/parameters/Branch-Code'
        - $ref: '#/components/parameters/Consent-Id'
        - $ref: '#/components/parameters/Request-ID'
        - $ref: '#/components/parameters/PSU-IP-Address'
        - $ref: '#/components/parameters/TPP-Code'
        - $ref: '#/components/parameters/Date'
      responses:
        '200':
          description: Balance Response.
          headers:
            Pagination-Metadata:
              $ref: '#/components/headers/Pagination-Metadata'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Balance-Information'
              examples:
                Balance-Response-Eod-Base-Ccy:
                  $ref: '#/components/examples/Balance-Response-Eod-Base-Ccy'
                Balance-Response-Eod-Eqv-Ccy:
                  $ref: '#/components/examples/Balance-Response-Eod-Eqv-Ccy'
                Balance-Response-Intraday-Base-Ccy:
                  $ref: '#/components/examples/Balance-Response-Intraday-Base-Ccy'
                Balance-Response-Intraday-Eqv-Ccy:
                  $ref: '#/components/examples/Balance-Response-Intraday-Eqv-Ccy'
        '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'
      deprecated: false
      security:
        - oAuth:
            - authenticationservices/v1
  /transactions:
    get:
      tags:
        - BankDataSharing
      summary: Transactions Details by Account ID
      description: >-
        Retrieve a complete transaction history for a specific account using
        your Client ID and Account Reference. Narrow results by date range,
        transaction type, and additional filters to get exactly the data you
        need.
      servers:
        - url: >-
            https://b2b.tts.icgservices.citi.com/citiconnect/openbanking/ukr/accountconsentservices/v1
      operationId: getTransactionByAccountId
      parameters:
        - $ref: '#/components/parameters/Account-Ref'
        - $ref: '#/components/parameters/Bank-Reference'
        - $ref: '#/components/parameters/End-To-End-Id'
        - $ref: '#/components/parameters/Uetr'
        - $ref: '#/components/parameters/From-Date'
        - $ref: '#/components/parameters/To-Date'
        - $ref: '#/components/parameters/Debit-Credit-Indicator'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Page-No'
        - $ref: '#/components/parameters/Sort-By'
        - $ref: '#/components/parameters/Sort-Type'
        - $ref: '#/components/parameters/Consent-Id'
        - $ref: '#/components/parameters/Request-ID'
        - $ref: '#/components/parameters/PSU-IP-Address'
        - $ref: '#/components/parameters/TPP-Code'
        - $ref: '#/components/parameters/Date'
      responses:
        '200':
          description: Transaction Response
          headers:
            Pagination-Metadata:
              $ref: '#/components/headers/Pagination-Metadata'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction-Information'
              examples:
                Transaction-Response:
                  $ref: '#/components/examples/Transaction-Response'
        '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'
      deprecated: false
      security:
        - oAuth:
            - authenticationservices/v1
components:
  parameters:
    Account-Ref:
      in: query
      name: account_ref
      description: >-
        **This parameter is optional for GET Accounts and conditional mandatory
        for GET Balances. For historical balances it is mandatory and for
        current balances it is optional.** Account Reference number is the
        unique identifier created for each account. If this parameter is not
        used, all accounts associated with `Consent-Id` are returned.
      schema:
        maxLength: 40
        minLength: 5
        type: string
        title: Account Reference Identifier
    Limit:
      in: query
      name: limit
      description: The number of records to display per page.
      schema:
        maximum: 10000
        minimum: 1
        type: integer
        title: Limit
    Page-No:
      in: query
      name: page_no
      description: >-
        You can input a page number and receive the data specific to a requested
        page. Page number is determined based on pagination metadata received in
        the response header of the initial request.
      schema:
        minimum: 1
        type: integer
        title: Page Number
    Sort-By:
      in: query
      name: sort_by
      description: >-
        This parameter contains one or more sort criteria. For GET Account,
        allowed enum value is `accountRef`.For GET Balance, allowed enum value
        is `accountRef`.For GET transaction, allowed enum values are
        `transactionNumber`, `amount`, and `transactionActualTime`.
      schema:
        type: string
        title: Sorting Criteria
    Sort-Type:
      in: query
      name: sort_type
      description: >-
        Sorting direction. Options include DESC - Descending order sorting and
        ASC - Ascending order sorting.
      schema:
        type: string
        title: Sorting Direction
        enum:
          - DESC
          - ASC
    From-Date:
      in: query
      name: from_date
      description: >-
        Start date of the balance range to be retrieved from which balances
        should be fetched. This date should always be a past date. The maximum
        data retrieved is 180 days for historical balances. If to_date is passed
        and from_date is not passed, then the date mentioned in to_date is also
        considered as from_date. If both from_date and to_date are null,
        real-time balance is retrieved.
      schema:
        type: string
        title: From Date
        pattern: >-
          ^(?:(?:(?:19|20)\d{2})-(?:(?:0[13578]|1[02])-(?:31|30|[0-2]\d)|(?:0[469]|11)-(?:30|[0-2]\d)|02-(?:29|[0-2]\d))|(?:19|20)(?:[02468][048]|[13579][26])-02-29)$
        example: '2024-01-26'
    To-Date:
      in: query
      name: to_date
      description: >-
        End date of the balance range to be retrieved from which balances should
        be fetched. This date should always be a past date. The maximum data
        retrieved is 180 days for historical balances. If from_date is passed
        and to_date is not passed, then the current date minus one day is
        considered as to_date.
      schema:
        type: string
        title: To Date
        pattern: >-
          ^(?:(?:(?:19|20)\d{2})-(?:(?:0[13578]|1[02])-(?:31|30|[0-2]\d)|(?:0[469]|11)-(?:30|[0-2]\d)|02-(?:29|[0-2]\d))|(?:19|20)(?:[02468][048]|[13579][26])-02-29)$
        example: '2024-01-26'
    Branch-Code:
      in: query
      name: branch_code
      description: Accounts branch code.
      schema:
        maxLength: 35
        minLength: 1
        type: string
        title: Branch Identifier
    Currency-Code:
      in: query
      name: currency_code
      description: Currency code in which client wanted to see their balance.
      schema:
        maxLength: 40
        minLength: 5
        type: string
        title: Account currency code
    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
    Bank-Reference:
      in: query
      name: bank_reference
      description: Transaction identification generated by bank.
      schema:
        type: string
        minLength: 1
        maxLength: 16
        example: 1L00IF2BCWUZF09
        title: Bank reference Number
    End-To-End-Id:
      in: query
      name: end_to_end_id
      description: Transaction identification provided by the debtor.
      schema:
        type: string
        minLength: 1
        maxLength: 54
        example: 1L00IF2BCWUZF09
        title: End To End Identification Number
    Uetr:
      in: query
      name: uetr
      description: >-
        Unique end-to-end transaction reference, which should adhere to the
        pattern:
        ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$.
      schema:
        type: string
        title: Unique End to End Transaction Reference
        minLength: 1
        maxLength: 40
        pattern: ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$
      example: 0c4fb98b-d77a-4468-96bb-0c88b3b8f75a
    Debit-Credit-Indicator:
      in: query
      name: debit_credit_indicator
      description: >-
        Transaction indicator (type) that you prefer Citi to fetch in the
        response. Options include D – Debit, C – Credit, ALL - both debit and
        credit.
      schema:
        type: string
        title: Debit Credit Indicator
        enum:
          - D
          - C
          - ALL
    Consent-Id:
      in: query
      name: consent_id
      description: '**Unique identifier for the consent. This parameter is optional.**'
      required: true
      schema:
        maxLength: 128
        minLength: 1
        type: string
        title: Consent Id
    Consent-Id-Path:
      in: path
      name: consentId
      required: true
      description: >-
        Unique identifier of the account information consent resource used for
        inquiry and deletion operations.
      schema:
        type: string
        minLength: 1
        maxLength: 128
    Request-ID:
      in: header
      name: Request-ID
      required: true
      schema:
        type: string
        title: Request-ID
        minLength: 1
        maxLength: 36
      description: >-
        The request identifier specific to the call determined by the PSP
        initiating the request.
    Group-ID:
      in: header
      name: Group-ID
      required: true
      schema:
        type: string
        title: Group-ID
        minLength: 1
        maxLength: 36
      description: >-
        The request identifier specific to the transaction flow determined by
        the PSP initiating the request.
    TPP-Code:
      in: header
      name: TPP-Code
      required: true
      schema:
        type: string
        title: TPP-Code
        minLength: 4
        maxLength: 4
        pattern: '[0-9][0-9][0-9][0-9]'
      description: >-
        The code of the Authorized Payment Service Provider sending the request.
        Required if the consent_id is used.
    PSU-IP-Address:
      in: header
      name: PSU-IP-Address
      required: true
      schema:
        type: string
        title: PSU-IP-Address
        minLength: 1
        maxLength: 15
      description: >-
        PSU-IP address of the payment service user (ipv4). Required if the
        consent_id is used in the request.
    Date:
      in: header
      name: Date
      required: true
      schema:
        type: string
        title: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
        pattern: >-
          (Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{1,2}
          (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4}
          \d{2}:\d{2}:\d{2} GMT$
      description: >-
        Date and time when the request is created/sent by the TPP. <br> <br> <b>
        Format: </b> day-name, day month year hour:minute:second GMT <br> (for
        example, Mon, 8 Jul 2026 14:25:30 GMT).
  headers:
    Pagination-Metadata:
      description: >-
        <br> current_page: current page number<br> total_page: Total number of
        pages available for your request<br> page_size: Total number of records
        available in the current page<br> has_more: Any more messages or records
        expected
      schema:
        type: string
        title: Pagination Metadata
        example: '{"current_page":2, "total_pages":10, "page_size":100,"has_more":true}'
    Request-ID:
      description: >-
        The request identifier specific to the call determined by the PSP
        initiating the request.
      schema:
        type: string
        minLength: 1
        maxLength: 36
    Group-ID:
      description: >-
        The request identifier specific to the transaction flow determined by
        the PSP initiating the request.
      schema:
        type: string
        minLength: 1
        maxLength: 36
    TPP-Code:
      description: >-
        The code of the Authorized Payment Service Provider sending the request.
        Required if the consent_id is used.
      schema:
        type: string
        minLength: 4
        maxLength: 4
        pattern: '[0-9][0-9][0-9][0-9]'
  schemas:
    Service-Error-Response:
      type: object
      title: ServiceErrorResponse
      description: >-
        Error payload returned when the backend service cannot process a validly
        routed TPP request.
      required:
        - error_details
      properties:
        ref_id:
          type: string
          maxLength: 60
          description: Unique ID for the transaction.
          title: Identification Reference
        error_details:
          type: array
          items:
            $ref: '#/components/schemas/Error-Detail'
          title: The details of the error.
    Error-Detail:
      type: object
      title: The details of the error.
      description: >-
        Detailed issue information for a service error, including reason,
        remediation, and code.
      properties:
        issue:
          type: string
          maxLength: 200
          description: More details about the issue.
          title: issue
        action:
          type: string
          maxLength: 350
          description: Corrective action to be taken to resolve the issue.
          title: action
        code:
          type: string
          maxLength: 8
          description: System-generated unique code for the issue.
          title: code
    Gateway-Error-Response:
      type: object
      title: Gateway-Error-Response
      description: >-
        This refers to an issue encountered by an API Gateway handling the
        request.
      required:
        - httpCode
      properties:
        httpCode:
          type: string
          maxLength: 3
          description: Numeric HTTP Status code
          title: httpCode
          example: '400'
        httpMessage:
          type: string
          maxLength: 128
          description: HTTP error message
          title: httpMessage
          example: Bad Request
        moreInformation:
          type: string
          maxLength: 128
          description: Additional information with HTTP error message
          title: moreInformation
          example: please provide valid value for request
    Common-Error-Response:
      title: Common Error Response
      description: >-
        Wrapper schema for responses that may return either gateway or service
        error payloads.
      oneOf:
        - $ref: '#/components/schemas/Gateway-Error-Response'
        - $ref: '#/components/schemas/Service-Error-Response'
    Accounts-Information:
      title: AccountsInformation
      description: >-
        Response containing account-level information returned to the TPP based
        on the requested filters.
      type: object
      properties:
        consent_id:
          $ref: '#/components/schemas/Consent-Id'
        account_details:
          type: array
          title: Account Details
          description: >-
            Fetch and provide the account details based on the filter parameters
            received in the request from the client.
          items:
            $ref: '#/components/schemas/Account-Details'
    Account-Details:
      title: Account Details
      description: >-
        Detailed attributes of a single account included in the accounts
        response.
      type: object
      required:
        - account_ref
      properties:
        account_ref:
          $ref: '#/components/schemas/Account-Ref'
        account_number:
          $ref: '#/components/schemas/Account-Number'
        currency_code:
          $ref: '#/components/schemas/Currency-Code'
        account_name:
          $ref: '#/components/schemas/Account-Name'
        account_type:
          $ref: '#/components/schemas/Account-Type'
        branch_code:
          $ref: '#/components/schemas/Branch-Code'
        legal_entity:
          $ref: '#/components/schemas/Legal-Entity'
        branch_name:
          $ref: '#/components/schemas/Branch-Name'
        iban_account_number:
          $ref: '#/components/schemas/Iban-Account-Number'
        account_category:
          $ref: '#/components/schemas/Account-Category'
        status:
          $ref: '#/components/schemas/Status'
        account_opening_date:
          $ref: '#/components/schemas/Account-Opening-Date'
        country_code:
          $ref: '#/components/schemas/Country-Code'
        bank_rte_id:
          $ref: '#/components/schemas/Bank-Rte-Id'
    Balance-Information:
      title: Balance Information
      description: >-
        Response containing balance information returned to the TPP for one or
        more accounts.
      type: object
      properties:
        consent_id:
          $ref: '#/components/schemas/Consent-Id'
        balances:
          type: array
          title: balances
          description: Balance Details.
          items:
            $ref: '#/components/schemas/Account'
    Account:
      title: Balance information per account
      description: >-
        Account context and associated balance records within the balances
        response.
      type: object
      required:
        - account_ref
      properties:
        account_ref:
          $ref: '#/components/schemas/Account-Ref'
        account_number:
          $ref: '#/components/schemas/Account-Number'
        currency_code:
          $ref: '#/components/schemas/Currency-Code'
        account_name:
          $ref: '#/components/schemas/Account-Name'
        account_type:
          $ref: '#/components/schemas/Account-Type'
        branch_code:
          $ref: '#/components/schemas/Branch-Code'
        legal_entity:
          $ref: '#/components/schemas/Legal-Entity'
        branch_name:
          $ref: '#/components/schemas/Branch-Name'
        balance:
          type: array
          title: transactions details
          description: Transactions Details.
          items:
            $ref: '#/components/schemas/Balance'
    Balance:
      title: Balance Details per account
      description: >-
        Balance metrics for a specific account as returned by the balances
        endpoint.
      type: object
      required:
        - opening_available_balance
        - opening_ledger_balance
        - total_credit_amount
        - total_debit_amount
        - net_amount
      properties:
        equivalent_currency_code:
          $ref: '#/components/schemas/Currency-Code'
        opening_available_balance:
          pattern: ^-?\d{1,18}$|^-?\d{1,18}\.\d{1,5}$
          type: number
          description: >-
            SThis is the amount of money in your account at the start of the
            business day that is immediately available for use. It includes all
            settled transactions from previous days and excludes any funds that
            are on hold or pending settlement.
          title: Opening available balance
          example: 10.01
        closing_available_balance:
          pattern: ^-?\d{1,18}$|^-?\d{1,18}\.\d{1,5}$
          type: number
          description: >-
            This is the amount of money in your account at the end of the
            business day (EOD) that is available for use. It represents the
            opening available balance plus all settled credits and minus all
            settled debits from that day.
          title: Closing available balance
          example: 10.01
        intraday_available_balance:
          pattern: ^-?\d{1,18}$|^-?\d{1,18}\.\d{1,5}$
          type: number
          description: >-
            This is the available balance of your account reflecting
            transactions that have occurred during the current business day but
            before the official end-of-day processing.
          title: Intraday Available Balance
          example: 10.01
        opening_ledger_balance:
          pattern: ^-?\d{1,18}$|^-?\d{1,18}\.\d{1,5}$
          type: number
          description: >-
            This is the book balance of your account at the start of the
            business day. It includes all transactions that have been formally
            posted to your accoun

# --- truncated at 32 KB (78 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/citi/refs/heads/main/openapi/citi-ukraine-bank-data-sharing-api-openapi.yaml