openapi: 3.2.0 info: title: Bank Data Sharing API 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 security: - oAuth: - authenticationservices/v1 tags: - name: BankDataSharing description: API services to provide accounts, balances and transactions details. paths: /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: schemas: 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-Ref: type: string description: '**This parameter is required for GET Transactions and optional for GET Accounts and GET Balances.** Unique reference assigned to an account; when omitted (where optional), data is returned for all accounts linked to the client_id.' title: Account Identifier example: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 Bank-Rte-Id: type: string description: Routing identifier for the servicing bank or branch.
- For GET Account, this parameter is optional.
- For GET Balance, this parameter is not required.
- For GET Transaction, this parameter is not required. title: Bank Routing Code example: '042000013' Branch-Name: type: string description: Name of the branch or local bank location servicing the account.
* For GET Account, this parameter is optional.
- For GET Balance, this parameter is optional.
- For GET Transaction, this parameter is not required. title: Branch Name example: Central Branch Account-Category: type: string description: Account category value describing the account class (for example, debit/credit category representations).
- For GET Account, this parameter is optional.
- For GET Balance, this parameter is not required.
- For GET Transaction, this parameter is not required. title: Account Category example: INTRN 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' Branch-Code: type: string description: Unique code identifying the servicing branch location.
- For GET Account, this parameter is optional.
- For GET Balance, this parameter is optional.
- For GET Transaction, this parameter is not required. title: Branch Code example: '234' Transaction-Details: title: TransactionDetails description: Detailed transaction record for an account entry returned by the transactions endpoint. required: - transaction_currency - amount - transaction_status type: object properties: value_date: type: string description: Processing date of the transaction. title: Value Date format: date-time example: '2024-03-17T10:30:00Z' statement_date: type: string description: Date on which the posting took place to the account. title: Statement Date format: date-time example: '2024-03-17T10:30:00Z' beneficiary: type: string description: Party whose account is being credited. title: Beneficiary example: Jacky Smith transaction_currency: type: string description: Currency of the transaction instructed to be debited. title: Transaction Currency example: CNY amount: pattern: ^\d{1,18}$|^\d{1,18}\.\d{1,5}$ type: string description: Transaction amount instructed to debit from debtor's account. title: Amount example: '10.01' transaction_status: type: string description: Status of the transaction. title: Transaction Status example: Completed transaction_type: type: string description: Type of the transaction (payment method). title: Transaction Type example: DFT description: type: string description: Description of the transaction. title: Description example: Domestic Fund Transfer bank_reference: type: string description: Unique transaction reference generated by the bank. title: Bank Reference minLength: 1 maxLength: 16 example: CD0987654321 customer_reference: type: string description: Unique transaction reference inputted by the customer. title: Customer Reference minLength: 1 maxLength: 54 example: AB1234567890 end_to_end_id: type: string description: Unique transaction reference inputted by the customer. title: end_to_end_id minLength: 1 maxLength: 54 example: AB1234567890 entry_date: type: string description: Date when the transaction was initiated. title: Entry Date format: date-time example: '2024-03-17T10:30:00Z' uetr: type: string 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}$.' title: Uetr 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: 7c6e36c0-8538-4309-afe2-535053df2a42 transaction_number: type: string description: Unique transaction reference number. title: Transaction Number example: '20240205111133214283' base_currency: type: string description: Debit account's home currency. title: Base Currency example: USD bene_acct_no: type: string description: Beneficiary account number. Party's account number to whose account is credited. title: Beneficiary account number example: '11123344' org_acct_name: type: string description: Original account name. The account name of the party that initiated the request. title: Originating account name example: mns org_acct_no: type: string description: Originating account number. The account number of the party that initiated the request. title: Originating account number example: '87576476' bene_name: type: string description: Beneficiary Name. The name of the party whose account is being credited. title: Beneficiary Name example: Jacky Smith payment_details: type: string description: A freeform text parameter where the ordering party bank user can enter some information about the transaction. title: Payment Details example: paymentDetails account_type: type: string description: Type of financial accounts. title: accountType example: 2-Saving iban_account_number: type: string description: International Bank Account Number (IBAN). This is a standard international numbering system developed to identify an overseas bank account. title: Iban Account Number example: FI21 1234 5698 7654 3210 bank_name: type: string description: Name of the bank where the account is held. title: Bank Name example: CITIBANK orgnl_tran_virt_acct_no: type: string description: Original transaction virtual account number. title: Original transaction virtual account number example: '900000000000000007' tran_detl: type: string description: A freeform text parameter where the ordering party/bank user can enter some information about the transaction. title: Transaction detail example: transaction details bank_rte_id: type: string description: Bank routing ID. The unique routing ID of each bank/branch. title: Bank routing identifier example: '12342432' prod_typ: type: string description: This parameter holds the payment type which was considered by the clearing system at the time of settlement. title: Product type example: DE-Data Entry credit_debit_mark: type: string description: Indicator of the transaction. Allowed values are
* D - Debit
* C - Credit title: Credit debit indicator example: D transaction_actual_time: type: string description: Date when the transaction was initiated. title: transaction actual time format: date-time example: '2024-03-17T10:30:00Z' swift_transaction_code: type: string maxLength: 4 description: Swift transaction code. Examples include 'FEX', 'MSC', 'TRF', 'INTR' title: swift transaction code example: INTR Currency-Code: type: string pattern: ^[A-Z]{3}$ description: Three-letter currency code defined by ISO 4217.
- For GET Account, this parameter is required.
- For GET Balance, this parameter is required.
- For GET Transaction, this parameter is not required. title: Currency Code example: TRY 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 Overdraft-Details: title: Overdraft Details type: object description: Overdraft-related values associated with the reported account balance. properties: overdraft_amount: pattern: ^\d{1,18}$|^\d{1,18}\.\d{1,5}$ type: number description: This field shows the portion of your balance that is currently utilizing an approved overdraft limit. If your account is not in overdraft, this will typically be zero. title: Overdraft Amount example: 13.21 Transaction-Information: title: Transaction Information description: Response containing transaction data returned to the TPP based on the requested filters. type: object properties: consent_id: $ref: '#/components/schemas/Consent-Id' transactions: type: array title: transactions description: Transactions Details. items: $ref: '#/components/schemas/Accounts-Info' 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. Account-Type: type: string minimum: 1 maximum: 242 description: Classification of the financial account.
- For GET Account, this parameter is optional.
- For GET Balance, this parameter is optional.
- For GET Transaction, this parameter is not required. title: Account Type example: 2-Saving Consent-Id: type: string description: Unique identifier of the account information consent used to authorize TPP data access. title: Consent Identifier example: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 Iban-Account-Number: type: string description: International Bank Account Number (IBAN) used to identify the account in cross-border and domestic contexts where applicable.
- For GET Account, this parameter is optional.
- For GET Balance, this parameter is not required.
- For GET Transaction, this parameter is not required. title: IBAN Account Number example: FI21 1234 5698 7654 3210 Account-Name: type: string description: Name or title assigned to the account.
- For GET Account, this parameter is optional.
- For GET Balance, this parameter is optional.
- For GET Transaction, this parameter is not required. title: Account Name example: CITIBANK NA Accounts-Info: title: Accounts Information description: Account identification and context details associated with the returned transactions. required: - account_ref type: object properties: account_ref: $ref: '#/components/schemas/Account-Ref' account_number: type: string description: Citi's corporate client's account number. title: Account Number example: '0000001007' account_name: type: string description: Title given to the specific account. title: Account Name example: CITIBANK NA branch_name: type: string description: Name of the local bank location offering financial services. title: Branch Name example: DOMINICAN REPUBLIC CITIBANK branch_number: type: string description: Number of the local bank located where the branch offers financial services. title: Branch Number example: '214' transaction_details: type: array title: transactions details description: Transactions Details. items: $ref: '#/components/schemas/Transaction-Details' Legal-Entity: type: string description: Legal entity name associated with the account (individual, corporate, or institution).
- For GET Account, this parameter is optional.
- For GET Balance, this parameter is optional.
- For GET Transaction, this parameter is not required. title: Legal Entity example: ASIA 4.6 Account-Opening-Date: type: string description: Date and time when the account was originally opened.
- For GET Account, this parameter is optional.
- For GET Balance, this parameter is not required.
* For GET Transaction, this parameter is not required. title: Account Opening Date format: date-time example: '2024-03-17T10:30:00Z' 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' 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 Account-Number: type: string minimum: 1 maximum: 35 description: Account number of Citi's corporate client account.
- For GET Account, this parameter is required.
- For GET Balance, this parameter is required.
- For GET Transaction, this parameter is optional. title: Account Number. example: TR123456789012345678901234 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' Country-Code: type: string description: ISO country code for the jurisdiction of the branch or account location.
- For GET Account, this parameter is required.
- For GET Balance, this parameter is not required.
- For GET Transaction, this parameter is not required. title: Country Code example: US 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 account but may include items (like recently deposited checks) that have not yet cleared and are not part of your available balance. title: Opening ledger balance example: 10.01 closing_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 end of the business day. It is calculated as the opening ledger balance adjusted for all credit and debit transactions posted during that day, regardless of their settlement status. title: Closing ledger balance example: 10.01 intraday_ledger_balance: pattern: ^-?\d{1,18}$|^-?\d{1,18}\.\d{1,5}$ type: number description: This is the ledger balance of your account reflecting transactions that have been posted during the current business day but before the official end-of-day processing. title: Intraday Ledger Balance example: 10.01 total_credit_amount: pattern: ^\d{1,18}$|^\d{1,18}\.\d{1,5}$ type: number description: This represents the sum of all incoming funds (credits) posted to your account during the business day. title: Total credit amount example: 10.01 total_debit_amount: pattern: ^\d{1,18}$|^\d{1,18}\.\d{1,5}$ type: number description: This represents the sum of all outgoing funds (debits) posted from your account during the business day. title: Total debit amount example: 10.01 net_amount: pattern: ^\d{1,18}$|^\d{1,18}\.\d{1,5}$ type: number description: This is the net change in your account's balance for the day, calculated as Total Credit Amount minus Total Debit Amount. title: Net amount example: 10.01 opening_available_balance_eqv_ccy: pattern: ^-?\d{1,18}$|^-?\d{1,18}\.\d{1,5}$ type: number description: This is your opening available balance converted into a different currency of your choice. The conversion is performed using the provided fx_rate. title: Opening Available Balance in Equivalent Currency example: 10.01 closing_available_balance_eqv_ccy: pattern: ^-?\d{1,18}$|^-?\d{1,18}\.\d{1,5}$ type: number description: This is your closing available balance converted into a different currency of your choice (e.g., viewing your INR account balance in USD). The conversion is performed using the provided fx_rate. title: Closing Available Balance in Equivalent Currency example: 10.01 intraday_available_balance_eqv_ccy: pattern: ^-?\d{1,18}$|^-?\d{1,18}\.\d{1,5}$ type: number description: This is your intraday available balance converted into a different currency of your choice. title: Intraday Available Balance in Equivalent Currency example: 10.01 opening_ledger_balance_eqv_ccy: pattern: ^-?\d{1,18}$|^-?\d{1,18}\.\d{1,5}$ type: number description: This is your opening ledger balance converted into a different currency of your choice. The conversion is performed using the provided fx_rate. title: Opening Ledger Balance in Equivalent Currency example: 10.01 closing_ledger_balance_eqv_ccy: pattern: ^-?\d{1,18}$|^-?\d{1,18}\.\d{1,5}$ type: number description: This is your closing ledger balance converted into a different currency of your choice. The conversion is performed using the provided fx_rate. title: Closing Ledger Balance in Equivalent Currency example: 10.01 intraday_ledger_balance_eqv_ccy: pattern: ^-?\d{1,18}$|^-?\d{1,18}\.\d{1,5}$ type: number description: This is your intraday ledger balance converted into a different currency of your choice. title: Intraday Ledger Balance in Equivalent Currency example: 10.01 total_credit_amount_eqv_ccy: pattern: ^\d{1,18}$|^\d{1,18}\.\d{1,5}$ type: number description: This represents the sum of all incoming funds (credits) posted to your account during the business day in equivalent currency. title: Total credit amount example: 10.01 total_debit_amount_eqv_ccy: pattern: ^\d{1,18}$|^\d{1,18}\.\d{1,5}$ type: number description: This represents the sum of all outgoing funds (debits) posted from your account during the business day in equivalent currency. title: Total debit amount example: 10.01 statement_date: type: string description: This is the specific date to which the balance information applies. title: Statement date format: date-time example: '2024-03-17T10:30:00Z' eod_date: type: string description: This field indicates the date of the last business day that has been fully processed and closed for the account's specific region. Due to global time zones, this may be the previous calendar day (e.g., an account in Japan will have an EOD date of the 18th while it is still the 18th in the US). title: End of the day date format: date-time example: '2024-03-17T10:30:00Z' fx_rate: type: number description: This is the foreign exchange rate used to convert the account's native currency balance into the equivalent currency (_eqv_ccy) amounts. title: FOREX Rate example: 4.1 effective_rate: type: number description: This represents the final, all-in exchange rate applied to the currency conversion, which may include any applicable spreads or transaction costs. title: Effective Rate example: 4.1 intraday_last_update_date_time: type: string description: This timestamp indicates the exact date and time (in GMT) when the intraday balance information was last refreshed. title: Intraday Last Update Date Time format: date-time example: '2024-03-17T10:30:00Z' last_entry_date: type: string description: This is the date on which the most recent transaction was formally posted to your account's ledger. title: Last Entry Date format: date-time example: '2024-03-17T10:30:00Z' overdraft_details: $ref: '#/components/schemas/Overdraft-Details' Status: type: string description: Current lifecycle status of the account (for example, Open or Closed).
- For GET Account, this parameter is required.
- For GET Balance, this parameter is not required.
- For GET transaction, this parameter is not required. title: Status example: Open 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' responses: Gateway-Timeout: description: Gateway Timeout content: application/json: schema: $ref: '#/components/schemas/Gateway-Error-Response' examples: Gateway-Timeout-Example: $ref: '#/components/examples/Gateway-Timeout-Example' Unsupported-Media-Type: description: Unsupported Media Type content: application/json: schema: $ref: '#/components/schemas/Common-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' 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' examples: Idempotency-Id-Conflict-Example: $ref: '#/components/examples/Idempotency-Id-Conflict-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' Forbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Service-Error-Response' examples: Forbidden-Service-Example: $ref: '#/components/examples/Forbidden-Service-Example' Internal-Server-Error: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Common-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' Method-Not-Allowed: description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Common-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' Bad-Request: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Common-Error-Response' examples: Bad-Request-Example: $ref: '#/components/examples/Bad-Request-Example' Bad-Request-Example-From-Date: $ref: '#/components/examples/Bad-Request-Example-From-Date' Bad-Request-Example-Account-Ref: $ref: '#/components/examples/Bad-Request-Example-Account-Ref' Bad-Request-Example-Limit: $ref: '#/components/examples/Bad-Request-Example-Limit' Bad-Request-Gateway-Error-Example: $ref: '#/components/examples/Bad-Request-Gateway-Error-Example' Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Common-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' 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' examples: 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 Bad-Request-Example-From-Date: value: ref_id: 344d0f3f-4x55-7g99-8b2c-0cf2a921a5ac error_details: - code: VC00012 issue: Balance date(s) out of range action: From date or To date should not be greater than 180 days from current date. 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 Unauthorized-Gateway-Error-Example: value: httpCode: '401' httpMessage: Unauthorized moreInformation: The server could not verify that you are authorized to access the URL Un-Supported-Media-Type-Gateway-Error-Example: value: httpCode: '415' httpMessage: Unsupported Media Type moreInformation: Unsupported Content-Type application/octet-stream Too-Many-Requests-Gateway-Example: value: httpCode: '429' httpMessage: Too Many Requests moreInformation: Rate Limit exceeded Not-Found-Gateway-Error-Example: value: httpCode: '404' httpMessage: Not Found moreInformation: No resources match requested URI Gateway-Timeout-Example: value: httpCode: '504' httpMessage: Gateway Timeout moreInformation: 'Response took longer than timeout: PTxxS' Bad-Request-Gateway-Error-Example: value: httpCode: '400' httpMessage: Bad Request moreInformation: please provide valid value for request Transaction-Response: value: consent_id: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 transactions: - account_ref: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 account_number: '0000001007' account_name: CITIBANK NA branch_name: DOMINICAN REPUBLIC CITIBANK branch_number: '214' transaction_details: - value_date: '2024-03-17T10:30:00Z' statement_date: '2024-03-17T10:30:00Z' beneficiary: Jacky Smith transaction_currency: CNY amount: '10.01' transaction_status: Completed transaction_type: DFT description: Domestic Fund Transfer bank_reference: CD0987654321 customer_reference: AB1234567890 end_to_end_id: AB1234567890 entry_date: '2024-03-17T10:30:00Z' uetr: 7c6e36c0-8538-4309-afe2-535053df2a42 transaction_number: '20240205111133214283' base_currency: USD bene_acct_no: '11123344' org_acct_name: mns org_acct_no: '87576476' bene_name: Jacky Smith payment_details: paymentDetails account_type: 2-Saving iban_account_number: FI21 1234 5698 7654 3210 bank_name: CITIBANK orgnl_tran_virt_acct_no: '900000000000000007' tran_detl: transaction details bank_rte_id: '12342432' prod_typ: DE-Data Entry credit_debit_mark: D transaction_actual_time: '2024-04-22T00:00:00.000+00:00' swift_transaction_code: INTR Balance-Response-Eod-Base-Ccy: value: consent_id: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 balances: - account_ref: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 account_number: TR123456789012345678901234 currency_code: TRY account_name: CITIBANK NA account_type: 2-Saving branch_code: '234' legal_entity: ASIA 4.6 branch_name: Central Branch balance: - equivalent_currency_code: TRY opening_available_balance: 460.3 closing_available_balance: 460.3 opening_ledger_balance: 460.3 closing_ledger_balance: 460.3 total_credit_amount: 0 total_debit_amount: 0 net_amount: 10.01 statement_date: '2024-03-17T10:30:00Z' eod_date: '2024-03-17T10:30:00Z' fx_rate: 4.1 effective_rate: 4.1 last_entry_date: '2024-03-17T10:30:00Z' overdraft_details: overdraft_amount: 13.21 Balance-Response-Intraday-Base-Ccy: value: consent_id: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 balances: - account_ref: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 account_number: TR123456789012345678901234 currency_code: TRY account_name: CITIBANK NA account_type: 2-Saving branch_code: '234' legal_entity: ASIA 4.6 branch_name: Central Branch balance: - equivalent_currency_code: TRY opening_available_balance: 460.3 intraday_available_balance: 460.3 opening_ledger_balance: 460.3 intraday_ledger_balance: 460.3 total_credit_amount: 0 total_debit_amount: 0 net_amount: 10.01 statement_date: '2024-03-17T10:30:00Z' eod_date: '2024-03-17T10:30:00Z' fx_rate: 4.1 effective_rate: 4.1 last_entry_date: '2024-03-17T10:30:00Z' overdraft_details: overdraft_amount: 13.21 Balance-Response-Eod-Eqv-Ccy: value: consent_id: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 balances: - account_ref: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 account_number: TR123456789012345678901234 currency_code: TRY account_name: CITIBANK NA account_type: 2-Saving branch_code: '234' legal_entity: ASIA 4.6 branch_name: Central Branch balance: - equivalent_currency_code: TRY opening_available_balance: 460.3 closing_available_balance: 460.3 opening_ledger_balance: 460.3 closing_ledger_balance: 460.3 total_credit_amount: 0 total_debit_amount: 0 net_amount: 10.01 opening_available_balance_eqv_ccy: 10.1 closing_available_balance_eqv_ccy: 10.1 opening_ledger_balance_eqv_ccy: 10.1 closing_ledger_balance_eqv_ccy : 10.1 total_credit_amount_eqv_ccy: 0 total_debit_amount_eqv_ccy: 0 statement_date: '2024-03-17T10:30:00Z' eod_date: '2024-03-17T10:30:00Z' fx_rate: 4.1 effective_rate: 4.1 last_entry_date: '2024-03-17T10:30:00Z' overdraft_details: overdraft_amount: 13.21 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. Service-Unavailable-Gateway-Example: value: httpCode: '503' httpMessage: Service is temporarily unavailable moreInformation: Retry the request after some time 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 Idempotency-Id-Conflict-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627902 error_details: - issue: Idempotency-Id provided is currently being used in another request action: please do not repeat the same request again Balance-Response-Intraday-Eqv-Ccy: value: consent_id: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 balances: - account_ref: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 account_number: TR123456789012345678901234 currency_code: TRY account_name: CITIBANK NA account_type: 2-Saving branch_code: '234' legal_entity: ASIA 4.6 branch_name: Central Branch balance: - equivalent_currency_code: TRY opening_available_balance: 460.3 intraday_available_balance: 460.3 opening_ledger_balance: 460.3 intraday_ledger_balance: 460.3 total_credit_amount: 0 total_debit_amount: 0 net_amount: 10.01 opening_available_balance_eqv_ccy: 10.1 intraday_available_balance_eqv_ccy: 10.1 opening_ledger_balance_eqv_ccy: 10.1 intraday_ledger_balance_eqv_ccy: 10.1 total_credit_amount_eqv_ccy: 0 total_debit_amount_eqv_ccy: 0 statement_date: '2024-03-17T10:30:00Z' eod_date: '2024-03-17T10:30:00Z' fx_rate: 4.1 effective_rate: 4.1 intraday_last_update_date_time: '2024-03-17T10:30:00Z' last_entry_date: '2024-03-17T10:30:00Z' overdraft_details: overdraft_amount: 13.21 Account-Response: value: consent_id: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 account_details: - account_ref: 22SDKJ29DJW32EDJ3EJ2E3JIU8SDDS2 account_number: TR123456789012345678901234 base_currency_code: TRY account_name: CITIBANK NA account_type: 2-Saving branch_code: '234' legal_entity: ASIA 4.6 branch_name: Central Branch iban_account_number: FI21 1234 5698 7654 3210 client_name: Jacky Smith account_category: INTRN status: Open account_opening_date: '2024-03-17T10:30:00Z' country_code: US bank_rte_id: '042000013' Bad-Request-Example-Limit: value: ref_id: 344d0f3f-4x55-7g99-8b2c-0cf2a921a5ac error_details: - code: VC00012 issue: provided value is not within the range for query-param limit. action: please provide valid value for query-param limit, must be greater than or equal to 1. Bad-Request-Example-Account-Ref: value: ref_id: 344d0f3f-4x55-7g99-8b2c-0cf2a921a5ac error_details: - code: VC00012 issue: The account reference number is invalid action: Please provide a valid value and retry. Bad-Request-Example: value: ref_id: 444d0f3f-4x55-7g99-8b2c-0cf2a921a5ab error_details: - code: VC00012 issue: The provided value is not within the range for header_account.branch_code parameter action: Please provide a valid value for the header_account.branch_code parameter, size must be between 3 and 4. 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 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 parameters: 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 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 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' 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 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 Branch-Code: in: query name: branch_code description: Accounts branch code. schema: maxLength: 35 minLength: 1 type: string title: Branch Identifier 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. Date: in: header name: Date required: true schema: type: string title: , :: 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.

Format: day-name, day month year hour:minute:second GMT
(for example, Mon, 8 Jul 2026 14:25:30 GMT).' 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 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 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. 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 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' 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. 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 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 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 Limit: in: query name: limit description: The number of records to display per page. schema: maximum: 10000 minimum: 1 type: integer title: Limit headers: Pagination-Metadata: description: '
current_page: current page number
total_page: Total number of pages available for your request
page_size: Total number of records available in the current page
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}' securitySchemes: oAuth: type: oauth2 flows: clientCredentials: tokenUrl: /authenticationservices/v3/oauth/token scopes: authenticationservices/v1: Access to Accounts, Balances, Transactions Information auth: type: oauth2 flows: clientCredentials: tokenUrl: https://secure.api-preprod.bkm.com.tr/oauth-provider/oauth2/token scopes: account_information: Account Information