openapi: 3.1.0 info: title: Transfer Agency Holding description: > The Transfer Agency Holding API provides programmatic access to investor holding and balance data maintained on the Transfer Agency register. It allows applications to retrieve current share balances and associated valuation details for a specified value date, supporting End‑of‑Day and near real-time use cases. The API supports efficient reconciliation, oversight activities, and near real-time tracking of investor positions. Download our SDKs: * [Python SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=python&apiTitle=all&isClientSecReq=true) * [Java SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=java&apiTitle=all&isClientSecReq=true) * [.Net SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=dotnet&apiTitle=all&isClientSecReq=true) * [Ruby SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=ruby&apiTitle=all&isClientSecReq=true) * [NodeJS SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=nodejs&apiTitle=all&isClientSecReq=true) * [Go SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=go&apiTitle=all&isClientSecReq=true) * [CLI Tool SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=ccapi-cli&apiTitle=all&isClientSecReq=true) Note: You must be logged in to download the SDKs. version: v2.0.0 servers: - url: >- https://sit.b2b.api.icg.citi.com/citiconnect/sit5/iis/api/funds/transferagency description: dev gateway url - url: >- https://sandbox.b2b.api.icg.citi.com/citiconnect/sb/iis/api/funds/transferagency description: sandbox url - url: https://b2b.api.icg.citi.com/citiconnect/prod/iis/api/funds/transferagency description: production gateway url paths: /v1/holdings/{fundManagerId}: get: tags: - Holdings summary: Query current holdings across various funds and asset classes. description: Query current holdings across various funds and asset classes. operationId: getAccountHoldings parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Trade-Date' - $ref: '#/components/parameters/Account-Id' - $ref: '#/components/parameters/Fund-Manager-Id' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' responses: '200': description: OK headers: x-request-id: $ref: '#/components/headers/x-request-id' pagination-metadata: $ref: '#/components/headers/pagination-metadata' content: application/json: schema: $ref: '#/components/schemas/Get-Investor-Account-Holdings-Response' example: fundManagerId: FM123 accountsHoldings: - accountId: ACCT123 holdings: - fundCode: FC001 shareClassCode: SCC001 shareClassCurrency: USD isin: US1234567890 cusip: '123456789' sedol: B000000 shareBalanceAmount: 100.5 shareBalanceValue: 1500.75 valuationPrice: 15 tradeDate: '2023-01-15' settledBalanceAmount: 100.5 estimatedBalanceAmount: 100.5 group1Units: 50.25 group2Units: 50.25 '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '415': $ref: '#/components/responses/Unsupported-Media-Type' '500': $ref: '#/components/responses/Internal-Server-Error' security: - oAuth2: - /authenticationservices/v1 components: parameters: Client-Id: description: >- Your unique identification, the same one you use for OAuth token generation, was shared with you by Citi during the CitiConnect API integration. name: client_id in: query required: true schema: type: string example: '54563213246' Fund-Manager-Id: name: fundManagerId in: path required: true description: The unique identifier for Fund Manager. schema: type: string example: FM001 Inverstor-Id: name: investorId in: query required: false description: The unique identifier for Investor. schema: type: string Inverstor-Status: name: investorStatus in: query required: false description: Indicated whether an investor is Active, Inactive or Closed. schema: type: string enum: - ACTIVE - INACTIVE - CLOSED Account-Id: name: accountId in: query description: The unique ID for a trading Account linked to an Investor. schema: type: string Account-Status: name: accountStatus in: query required: false description: Indicates if the account is Active, Inactive or Closed. schema: type: string enum: - ACTIVE - INACTIVE - CLOSED Trade-Date: name: tradeDate in: query required: true description: >- The trade date the transaction actually received on the system. If a trade missed cut-off this date is the next available business date after the Booking Date. Date in ISO format(YYYY-MM-DD) schema: type: string format: date From-Trade-Date: name: fromTradeDate in: query required: true description: >- The trade date the transaction actually received on the system. If a trade missed cut-off this date is the next available business date after the Booking Date. Date in ISO format(YYYY-MM-DD) schema: type: string format: date To-Trade-Date: name: toTradeDate in: query required: true description: >- The trade date the transaction actually received on the system. If a trade missed cut-off this date is the next available business date after the Booking Date. Date in ISO format(YYYY-MM-DD) schema: type: string format: date Offset: name: offset in: query description: Offset records by a given number (optional). required: false schema: type: integer format: int32 default: 0 Limit: name: limit in: query description: The maximum number of records to return. required: false schema: type: integer format: int32 default: 5000 headers: x-request-id: description: >- Unique system-generated reference number generated by Citi. Use this number when reporting an issue to a Citi representative in case of any discrepancy. schema: type: string maxLength: 36 minLength: 1 title: APIGEE GUID examples: - 6c29faa6-8e39-4829-b8ce-0ffa32c1a96c 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 xml: name: paginationMetadata examples: - current_page: 2 total_pages: 10 page_size: 100 has_more: true responses: Bad-Request: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error-Response' examples: Bad-Request-Example: $ref: '#/components/examples/Bad-Request-Example' Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error-Response' examples: Unauthorized-Example: $ref: '#/components/examples/Unauthorized-Example' Not-Found: description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error-Response' examples: Not-Found-Example: $ref: '#/components/examples/Not-Found-Example' Method-Not-Allowed: description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error-Response' examples: Method-Not-Allowed-Example: $ref: '#/components/examples/Method-Not-Allowed-Example' Unsupported-Media-Type: description: Unsupported Media Type content: application/json: schema: $ref: '#/components/schemas/Error-Response' examples: Unsupported-Media-Type-Example: $ref: '#/components/examples/Unsupported-Media-Type-Example' Internal-Server-Error: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error-Response' examples: Internal-Server-Error-Example: $ref: '#/components/examples/Internal-Server-Error-Example' examples: Bad-Request-Example: value: ref_id: 444d0f3f-4x55-7g99-8b2c-0cf2a921a5ab errors: - issue: path-param fundManagerId is mandatory and it cannot be empty action: please provide valid value for fundManagerId code: VC00010 Unauthorized-Example: value: ref_id: 444d0f3f-4x55-7g99-8b2c-0cf2a921a5ab errors: - issue: User not authorized for this functionality action: please use valid credentials to access this functionality code: CC00007 Not-Found-Example: value: ref_id: 444d0f3f-4x55-7g99-8b2c-0cf2a921a5ab errors: - issue: Resource that you are searching is not found action: Please use valid resource details code: CC00006 Method-Not-Allowed-Example: value: ref_id: 444d0f3f-4x55-7g99-8b2c-0cf2a921a5ab errors: - issue: Method not supported action: please use valid http verb code: CC00001 Unsupported-Media-Type-Example: value: ref_id: 444d0f3f-4x55-7g99-8b2c-0cf2a921a5ab errors: - issue: Media type not supported action: please use valid content-type in header code: CC00002 Internal-Server-Error-Example: value: ref_id: 444d0f3f-4x55-7g99-8b2c-0cf2a921a5ab errors: - issue: unable to serve your request at this moment action: Please refer to documentation provided or contact support team code: CC00004 schemas: Error-Response: type: object title: ErrorResponse xml: name: ErrorResponse properties: ref_id: type: string maxLength: 60 description: Unique ID for the Transaction title: ref_id xml: name: RefId errors: type: array title: Error Detail uniqueItems: true items: $ref: '#/components/schemas/Error-Detail' Error-Detail: type: object title: Error Detail xml: name: errors properties: issue: type: string maxLength: 150 description: more details about the issue title: issue xml: name: Issue action: type: string maxLength: 150 description: corrective action to be taken to resolve above issue title: action xml: name: Action code: type: string maxLength: 10 description: unique code representing the issue title: code xml: name: Code Accounts-Holdings: title: AccountsHoldings type: object properties: accountId: title: Account ID type: string description: Provide the unique ID for a trading Account linked to an Investor. maxLength: 35 holdings: title: Holdings type: array items: $ref: '#/components/schemas/Holdings-Response' additionalProperties: false Get-Investor-Account-Holdings-Response: title: GetInvestorAccountHoldingsResponse type: object properties: fundManagerId: title: Fund Manager ID type: string description: Provides the unique identifier for Fund Manager maxLength: 32 accountsHoldings: title: Accounts Holdings type: array items: $ref: '#/components/schemas/Accounts-Holdings' additionalProperties: false Holdings-Response: title: HoldingsResponse type: object properties: fundCode: title: Fund Code type: string description: Fund Code identifier. maxLength: 35 shareClassCode: title: Share Class Code type: string description: Share Class Code identifier. maxLength: 35 shareClassCurrency: title: Share Class Currency type: string description: The Share Class currency, in ISO4217. maxLength: 32 isin: title: ISIN type: string description: The Share Class ISIN - primary Share Class identifier. maxLength: 32 cusip: title: CUSIP type: string description: The Share Class CUSIP. maxLength: 32 sedol: title: SEDOL type: string description: The Share Class SEDOL. maxLength: 32 shareBalanceAmount: title: Share Balance Amount type: number format: double description: The current shareholder share balance. shareBalanceValue: title: Share Balance Value type: number format: double description: The current shareholder share value. valuationPrice: title: Valuation Price type: number format: double description: The current Valuation Price. tradeDate: title: Trade Date type: string format: date description: >- The trade date the transaction actually received on the system. If a trade missed cut-off this date is the next available business date after the Booking Date. settledBalanceAmount: title: Settled Balance Amount type: number format: double description: The settled balance of the holding. estimatedBalanceAmount: title: Estimated Balance Amount type: number format: double description: >- The estimated balance of the holding e.g. the unsettled holding amount. group1Units: title: Group 1 Units type: number format: double description: >- The number of units that a shareholder holds that fall under the Group 1 category. group2Units: title: Group 2 Units type: number format: double description: >- The number of units that a shareholder holds that fall under the Group 2 category. additionalProperties: false securitySchemes: oAuth2: type: oauth2 flows: clientCredentials: tokenUrl: /authenticationservices/v3/oauth/token scopes: /authenticationservices/v1: Grant read-only access to IIS Funds TA apis tags: - name: Holdings description: Operations related to Holdings