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