openapi: 3.1.0 info: title: Transfer Agency Account description: > The Transfer Agency Account API provides programmatic access to account-level data maintained on the Transfer Agency register. It enables applications to retrieve up-to-date account static information, supporting End‑of‑Day and near real-time data use cases. The API delivers a current snapshot of account details and status, eliminating reliance on periodic file-based data delivery and manual reconciliation. 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/accounts/{fundManagerId}: get: tags: - Accounts summary: Access all fund accounts, including balances and status. description: Access all fund accounts, including balances and status. operationId: getAccounts parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Account-Id' - $ref: '#/components/parameters/Fund-Manager-Id' - $ref: '#/components/parameters/Account-Status' - $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-Account-Response' example: fundManagerId: FM123 accounts: - id: ACC789 jointAccountStatus: Primary name: John Doe firstName: John middleName: M lastName: Doe status: Active designation: Individual amlStatus: Compliant pep: 'No' fullDealingRestrictionsIndicator: false purchaseRestrictionsIndicator: false redemptionRestrictionsIndicator: false transferInRestrictionsIndicator: false transferOutRestrictionsIndicator: false exchangeInRestrictionsIndicator: false exchangeOutRestrictionsIndicator: false settlementRestrictionsIndicator: false registerAddressLine1: 123 Main St registerAddressLine2: Apt 4 registerAddressLine3: 'null' registerAddressLine4: 'null' registerAddressLine5: 'null' registerAddressTown: Anytown registerAddressPostCode: '12345' registerAddressCountry: USA correspondenceAddressLine1: 456 Oak Ave correspondenceAddressLine2: 'null' correspondenceAddressLine3: 'null' correspondenceAddressLine4: 'null' correspondenceAddressLine5: 'null' correspondenceAddressTown: Springfield correspondenceAddressPostCode: '67890' correspondenceAddressCountry: USA emailAddress: john.doe@example.com activationDate: '2023-01-15' deactivationDate: '2025-01-15' dealerId: DL789 dealerName: Acme Investments branchId: BR101 branchName: Main Branch repId: RP202 repName: Jane Smith dealerAddressLine1: 789 Pine Ln dealerAddressLine2: 'null' dealerAddressLine3: 'null' dealerAddressLine4: 'null' dealerAddressLine5: 'null' dealerTown: Hometown dealerPostCode: '54321' dealerCountry: USA nonDigitalInvestor: 'No' investorIds: - INV123 - INV456 '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 Account: title: Account type: object properties: id: title: Account ID type: string description: Provide the unique ID for a trading Account linked to an Investor. maxLength: 35 jointAccountStatus: title: Joint Account Status type: string description: Indicates if the investor is primary / secondary owner. enum: - Primary - Secondary name: title: Account Name type: string description: >- A party refers to an individual, institution, or entity involved in a financial transaction, agreement, or contractual relationship. In banking, parties can include account holders, investors, banks, fund managers, and regulatory bodies. Each party has defined roles, rights, and responsibilities. minLength: 1 maxLength: 256 firstName: title: Account First Name type: string description: The individual investor's first name(s). minLength: 1 maxLength: 32 middleName: title: Account Middle Name type: string description: The individual investor's middle name. minLength: 1 maxLength: 32 lastName: title: Account Last Name type: string description: The individual investor's surname. minLength: 1 maxLength: 32 status: title: Account Status type: string description: Indicates if the account is Active, Inactive or Closed. enum: - Active - InActive - Closed designation: title: Account Designation type: string amlStatus: title: Account AML Status type: string description: Indicates if the Account is AML compliant or not. enum: - Compliant - Non-Compliant pep: title: PEP type: string description: Indicates whether individual is a Politically Exposed Person or not. minLength: 1 maxLength: 32 fullDealingRestrictionsIndicator: title: Full Dealing Restrictions Indicator description: >- The unique identifier of the Full Dealing Restriction Type. Indicates if all transactions are blocked for an Investor across for the account. type: boolean purchaseRestrictionsIndicator: title: Purchase Restrictions Indicator type: boolean description: >- The unique identifier of the Purchase Restriction Type.Indicates if only purchase type transactions are blocked for the account. redemptionRestrictionsIndicator: title: Redemption Restrictions Indicator type: boolean description: >- The unique identifier of the Redemption Restriction Type.Indicates if only redemption type transactions are blocked for the account. transferInRestrictionsIndicator: title: Transfer In Restrictions Indicator type: boolean description: >- Indicates if only transfer in type transactions are blocked across all their accounts. transferOutRestrictionsIndicator: title: Transfer Out Restrictions Indicator type: boolean description: >- Indicates if only transfer out type transactions are blocked across all their accounts. exchangeInRestrictionsIndicator: title: Exchange In Restrictions Indicator type: boolean description: >- Indicates if only exchange in type transactions are blocked across all their accounts. exchangeOutRestrictionsIndicator: title: Exchange Restrictions Indicator type: boolean description: >- Indicates if only exchange out type transactions are blocked across all their accounts. settlementRestrictionsIndicator: title: Settlement Restrictions Indicator type: boolean description: >- The unique identifier of the Settlement Restriction Type. Indicates if only settlement type transactions are blocked for the account. registerAddressLine1: title: Account Register Address Line 1 type: string description: Register Address Line 1. maxLength: 200 registerAddressLine2: title: Account Register Address Line 2 type: string description: Register Address Line 2. maxLength: 200 registerAddressLine3: title: Account Register Address Line 3 type: string description: Register Address Line 3. maxLength: 200 registerAddressLine4: title: Account Register Address Line 4 type: string description: Register Address Line 4. maxLength: 200 registerAddressLine5: title: Account Register Address Line 5 type: string description: Register Address Line 5. maxLength: 200 registerAddressTown: title: Account Register Address Town type: string description: Register Address Town. maxLength: 200 registerAddressPostCode: title: Account Register Address Post Code type: string description: Register Address Post Code. maxLength: 16 registerAddressCountry: title: Account Register Address Country type: string description: Register Address Country, in ISO3166 alpha-3. maxLength: 32 correspondenceAddressLine1: title: Account Correspondence Address Line 1 type: string description: Correspondence Address Line 1. maxLength: 200 correspondenceAddressLine2: title: Account Correspondence Address Line 2 type: string description: Correspondence Address Line 2. maxLength: 200 correspondenceAddressLine3: title: Account Correspondence Address Line 3 type: string description: Correspondence Address Line 3. maxLength: 200 correspondenceAddressLine4: title: Account Correspondence Address Line 4 type: string description: Correspondence Address Line 4. maxLength: 200 correspondenceAddressLine5: title: Account Correspondence Address Line 5 type: string description: Correspondence Address Line 5. maxLength: 200 correspondenceAddressTown: title: Account Correspondence Address Town type: string description: Correspondence Address Town. maxLength: 200 correspondenceAddressPostCode: title: Account Correspondence Address Post Code type: string description: Correspondence Address Post Code. maxLength: 16 correspondenceAddressCountry: title: Account Correspondence Address Country type: string description: Correspondence Address Country, in ISO3166 alpha-3. maxLength: 32 emailAddress: title: Email Address type: string description: The investor's email address. maxLength: 256 activationDate: title: Account Activation Date type: string format: date description: The Account activation date. deactivationDate: title: Account Deactivation Date type: string format: date description: The Account deactivation date. dealerId: title: Dealer ID type: string description: The Dealer ID linked to the Account. maxLength: 32 dealerName: title: Dealer Name type: string description: >- Party Name is the official name of a person, organization, or institution that is a participant in a financial transaction. It is used to uniquely identify the party and ensure accurate communication and processing of financial messages. maxLength: 80 branchId: title: Branch ID type: string description: The Branch ID linked to the Account. maxLength: 32 branchName: title: Branch Name type: string description: >- Party Name is the official name of a person, organization, or institution that is a participant in a financial transaction. It is used to uniquely identify the party and ensure accurate communication and processing of financial messages. maxLength: 80 repId: title: Rep ID type: string description: The Rep ID linked to the Account. maxLength: 32 repName: title: Rep Name type: string description: Provide the name of the Rep. maxLength: 80 dealerAddressLine1: title: Dealer Address Line 1 description: Dealer Address Line 1. type: string maxLength: 200 dealerAddressLine2: title: Dealer Address Line 2 description: Dealer Address Line 2. type: string maxLength: 200 dealerAddressLine3: title: Dealer Address Line 3 description: Dealer Address Line 3. type: string maxLength: 200 dealerAddressLine4: title: Dealer Address Line 4 description: Dealer Address Line 4. type: string maxLength: 200 dealerAddressLine5: title: Dealer Address Line 5 description: Dealer Address Line 5. type: string maxLength: 200 dealerTown: title: Dealer Town description: Dealer Address Town. type: string maxLength: 200 dealerPostCode: title: Dealer Post Code description: Dealer Address Post Code. type: string maxLength: 16 dealerCountry: title: Dealer Country description: Dealer Address Country, in ISO3166 alpha-3. type: string maxLength: 32 nonDigitalInvestor: title: Non-Digital Investor description: Indicates if the Investor is non-digital. type: string maxLength: 32 investorIds: title: Investor IDs description: Provides the unique identifier for the Investor type: array items: type: string additionalProperties: false Get-Account-Response: title: GetAccountsResponse type: object properties: fundManagerId: title: Fund Manager ID type: string description: Provides the unique identifier for Fund Manager maxLength: 32 accounts: title: Accounts type: array items: $ref: '#/components/schemas/Account' securitySchemes: oAuth2: type: oauth2 flows: clientCredentials: tokenUrl: /authenticationservices/v3/oauth/token scopes: /authenticationservices/v1: Grant read-only access to Transfer Agency Funds apis tags: - name: Accounts description: Operations related to Accounts