openapi: 3.2.0 info: title: Transfer Agency Holding Holdings API description: The Transfer Agency Holding API provides programmatic access to investor holding and balance data maintained on the Transfer Agency register. 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 tags: - name: Holdings description: Operations related to Holdings 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: examples: 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 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 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 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 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 responses: 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' 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' 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' Bad-Request: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error-Response' examples: Bad-Request-Example: $ref: '#/components/examples/Bad-Request-Example' 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 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 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 parameters: Fund-Manager-Id: name: fundManagerId in: path required: true description: The unique identifier for Fund Manager. schema: type: string example: FM001 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 Offset: name: offset in: query description: Offset records by a given number (optional). required: false schema: type: integer format: int32 default: 0 Account-Id: name: accountId in: query description: The unique ID for a trading Account linked to an Investor. schema: type: string Limit: name: limit in: query description: The maximum number of records to return. required: false schema: type: integer format: int32 default: 5000 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' 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 xml: name: paginationMetadata examples: - current_page: 2 total_pages: 10 page_size: 100 has_more: true 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 securitySchemes: oAuth2: type: oauth2 flows: clientCredentials: tokenUrl: /authenticationservices/v3/oauth/token scopes: /authenticationservices/v1: Grant read-only access to IIS Funds TA apis