> ## Documentation Index
> Fetch the complete documentation index at: https://developer.moneyone.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Get All FI Data

> Retrieve complete financial information in JSON format for accounts associated with an approved consent.

## Overview

The Get All FI Data API allows you to download complete financial information in JSON format for all accounts associated with a specific consent. This API provides comprehensive access to financial data including account profiles, transaction histories, balances, and account holder information. It supports all Financial Information (FI) types that are active in the Account Aggregator ecosystem.

### Key Use Cases

* **Complete Data Retrieval**: Download all available financial data linked to a given consent in a structured JSON format.
* **Transaction Filtering**: Optionally filter transactions by specifying a custom date range to retrieve only relevant transaction data.
* **Multi-Account Support**: Retrieve data for all accounts linked to a consent in a single API call.
* **All FI Types**: Supports various financial information types including Deposit accounts, Mutual Funds, Equities, Insurance, and more.

### Important Notes

* Data will only be returned if it is available in FinPro. You must first successfully complete the FI Request and ensure the status shows `DATA_READY` before calling this API.
* The requested data must align with the parameters and scope specified in the approved consent.
* If you need data in PDF format instead of JSON, use the Get All FI Data PDF API.
* For periodic/recurring consents, this API returns cumulative data. To get only incremental data since the last fetch, use the Get All Latest FI Data API instead.

## Authentication

This API requires authentication using the following headers:

<ParamField header="client_id" type="string" required>
  Your unique client identifier provided by FinPro during onboarding. This ID is used to authenticate your application.
</ParamField>

<ParamField header="client_secret" type="string" required>
  Your confidential client secret key provided by FinPro. This must be kept secure and never exposed in client-side code.
</ParamField>

<ParamField header="appIdentifier" type="string" required>
  The unique identifier for your application (e.g., your application's package name or bundle ID). This helps FinPro identify which application is making the request.
</ParamField>

<ParamField header="organisationId" type="string" required>
  Your organization's unique identifier assigned by FinPro. This identifies your organization in the FinPro system.
</ParamField>

<ParamField header="content-Type" type="string" required>
  Must be set to `application/json` to indicate that the request body contains JSON data and that the response will be in JSON format.
</ParamField>

## Query Parameters

The following optional query parameters can be used to control the pagination of results:

<ParamField query="limit" type="boolean" optional>
  When set to `true`, limits the number of records returned in the response. This is useful for handling large datasets.
</ParamField>

<ParamField query="offset" type="boolean" optional>
  When set to `true`, offsets the starting point of records. Use this in combination with `limit` for pagination.
</ParamField>

**Example**: `?limit=true&offset=true`

## Request Body

<ParamField body="consentID" type="string" required>
  The unique consent identifier provided by the Account Aggregator after consent approval. This must be a valid GUID format. Only alphanumeric characters, underscores (\_), hyphens (-), and periods (.) are allowed.
</ParamField>

<ParamField body="transactionsStartDate" type="string" optional>
  The start date from when transaction data is required. Must be in ISO 8601 UTC date format (e.g., `2023-01-01T00:00:00Z`). When provided, only transactions on or after this date will be included in the response.
</ParamField>

<ParamField body="transactionsEndDate" type="string" optional>
  The end date until when transaction data is required. Must be in ISO 8601 UTC date format (e.g., `2023-01-31T23:59:59Z`). When provided, only transactions on or before this date will be included in the response.
</ParamField>

### Request Example

```json theme={null}
{
  "consentID": "84001bb6-b1d0-4443-aeff-dd482255a058"
}
```

### Request Example with Transaction Date Filtering

```json theme={null}
{
  "consentID": "84001bb6-b1d0-4443-aeff-dd482255a058",
  "transactionsStartDate": "2023-01-01T00:00:00Z",
  "transactionsEndDate": "2023-01-31T23:59:59Z"
}
```

## Response Parameters

<ResponseField name="ver" type="string" optional>
  The version of the API that processed the request. This helps track which version of the API handled your request.
</ResponseField>

<ResponseField name="status" type="string" optional>
  The overall status of the API response. Returns `"success"` when data is successfully retrieved, or `"failure"` if there was an error.
</ResponseField>

<ResponseField name="data" type="array" optional>
  An array of account objects, each containing comprehensive financial information for a linked account. Each object in the array represents one account associated with the consent.

  <Expandable title="data array item properties">
    <ResponseField name="linkReferenceNumber" type="string" required>
      The unique linked reference number for this account. This identifier ties the account data to a specific account authorization.
    </ResponseField>

    <ResponseField name="maskedAccountNumber" type="string" required>
      The masked account number for privacy and security purposes. Typically displays only the last few digits (e.g., `XXXXXX1234`).
    </ResponseField>

    <ResponseField name="fiType" type="string" required>
      The type of financial information. Supported values include:

      * `DEPOSIT`: Savings and current accounts
      * `TERM_DEPOSIT`, `TERM-DEPOSIT`: Fixed deposit accounts
      * `RECURRING_DEPOSIT`: Recurring deposit accounts
      * `SIP`: Systematic Investment Plans
      * `MUTUAL_FUNDS`: Mutual fund holdings
      * `EQUITIES`: Equity/stock holdings
      * `BONDS`, `DEBENTURES`: Bond and debenture investments
      * `ETF`: Exchange Traded Funds
      * `INSURANCE_POLICIES`: Insurance policies
      * `LIFE_INSURANCE`, `GENERAL_INSURANCE`: Specific insurance types
      * `NPS`: National Pension Scheme
      * `GSTR1_3B`: GST returns
      * And other types as per the ReBIT FI Schema
    </ResponseField>

    <ResponseField name="bank" type="string" required>
      The name of the financial institution (bank or Financial Information Provider) that holds this account.
    </ResponseField>

    <ResponseField name="transactions" type="array" optional>
      An array of transaction objects containing the transaction history for this account. Each transaction includes details like amount, type, timestamp, and narration. This array may be filtered based on the `transactionsStartDate` and `transactionsEndDate` parameters if provided.
    </ResponseField>

    <ResponseField name="balance" type="object" optional>
      An object containing current balance information for the account, including the balance amount, currency, and the timestamp when the balance was calculated.
    </ResponseField>

    <ResponseField name="profile" type="object" optional>
      An object containing account profile information, including account holder details, account type, and account opening date. This typically includes holder names, contact information, and KYC details.
    </ResponseField>

    <ResponseField name="holder" type="object" optional>
      An object containing detailed information about the account holder(s), including name, date of birth, PAN, address, mobile number, and email address.
    </ResponseField>

    <ResponseField name="summary" type="object" optional>
      An object containing summary information about the account, such as current balance, account type (SAVINGS/CURRENT), branch details, IFSC code, MICR code, and account status.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="timestamp" type="string" optional>
  The timestamp when the API response was generated, in UTC time format. This can be used for logging and audit purposes.
</ResponseField>

### Success Response Example

```json theme={null}
{
  "ver": "1.0",
  "status": "success",
  "data": [
    {
      "linkReferenceNumber": "e72534d6-0016-4f0e-9da5-3e05ad405394",
      "maskedAccountNumber": "XXXXXXXX3900",
      "fiType": "DEPOSIT",
      "bank": "FinShareBankServer",
      "transactions": [
        {
          "type": "CREDIT",
          "mode": "UPI",
          "amount": "5000.00",
          "currentBalance": "45000.00",
          "transactionTimestamp": "2023-01-15T10:30:00.000Z",
          "valueDate": "2023-01-15",
          "txnId": "UPI123456789",
          "narration": "Payment received from XYZ",
          "reference": "REF123456"
        }
      ],
      "balance": {
        "amount": "45000.00",
        "currency": "INR"
      },
      "profile": {
        "accountType": "SAVINGS",
        "accountNumber": "1234567890"
      },
      "holder": {
        "name": "John Doe",
        "pan": "ABCDE1234F",
        "mobile": "9876543210"
      },
      "summary": {
        "currentBalance": "45000.00",
        "type": "SAVINGS",
        "ifscCode": "HDFC0001234",
        "status": "ACTIVE"
      }
    }
  ]
}
```

## Error Responses

### Invalid Consent ID

When the provided consent ID does not exist:

```json theme={null}
{
  "ver": "1.21.0",
  "timestamp": "2025-10-01T11:49:28.920Z",
  "errorCode": "InvalidConsentId",
  "errorMsg": "Consent ID does not exist."
}
```

**HTTP Status Code**: `400 Bad Request`

## Error Code Catalogue

| Error Code         | Error Message                                                                                                     | Description                                                     | HTTP Status |
| ------------------ | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | ----------- |
| `InvalidRequest`   | `transactionsStartDate must be a valid ISO date`                                                                  | The start date is not in valid ISO 8601 format                  | 400         |
| `InvalidRequest`   | `consentID must be a string`                                                                                      | The consentID parameter is null or not a string                 | 400         |
| `InvalidRequest`   | `transactionsEndDate must be a valid ISO date`                                                                    | The end date is not in valid ISO 8601 format                    | 400         |
| `InvalidRequest`   | `consentID value can have only A to Z, a to z, 0 to 9, _ , - and . characters`                                    | The consentID contains invalid characters                       | 400         |
| `InvalidPayload`   | `Either consentId or accountID should be passed and both consentID and accountID should not be passed in payload` | Missing or conflicting parameters                               | 400         |
| `InvalidConsentId` | `Consent ID does not exist.`                                                                                      | The provided consent ID is not found in the system              | 400         |
| `InvalidRequest`   | `Consent ID is Revoked with consent type as VIEW.`                                                                | Cannot retrieve data for a revoked VIEW-type consent            | 400         |
| `NoDataAvailable`  | `Data is not available for the given consent`                                                                     | No financial data has been fetched for this consent yet         | 400         |
| `DataIsDeleted`    | `Data is deleted for this consent`                                                                                | The data has expired and been deleted per data retention policy | 400         |
| `NoDataFound`      | `Data is not available`                                                                                           | No linked accounts or data found for this consent               | 400         |
| `InternalError`    | `Internal Server Error : accountFIDataList`                                                                       | Unexpected server error during data retrieval                   | 500         |

## Rate Limiting

This API is subject to rate limiting to ensure fair usage and system stability:

* **Rate Limit**: 1000 requests per time window
* **Headers Returned**:
  * `X-RateLimit-Limit`: Maximum number of requests allowed
  * `X-RateLimit-Remaining`: Number of requests remaining in current window
  * `X-RateLimit-Reset`: Unix timestamp when the rate limit resets

If you exceed the rate limit, you will receive a `429 Too Many Requests` response.

## Supported FI Types

This API supports all Financial Information types defined in the [ReBIT FI Schema](https://api.rebit.org.in/schema):

* **Banking**: DEPOSIT, TERM\_DEPOSIT, TERM-DEPOSIT, RECURRING\_DEPOSIT
* **Investments**: MUTUAL\_FUNDS, EQUITIES, BONDS, DEBENTURES, ETF, SIP
* **Government Securities**: GOVT\_SECURITIES, CP
* **Insurance**: INSURANCE\_POLICIES, LIFE\_INSURANCE, GENERAL\_INSURANCE
* **Pension**: NPS
* **Alternative Investments**: AIF, INVIT, REIT, IDR, CIS
* **Tax/GST**: GSTR1\_3B
* **Others**: OTHER

Each FI type has its own specific schema structure as defined by ReBIT specifications.

## Usage Flow

1. **Verify Data Readiness**: Before calling this API, use the FI Request Status API to ensure the `eventStatus` is `DATA_READY`.

2. **Retrieve Data**: Call this API with the `consentID` to retrieve all financial information associated with the consent.

3. **Optional Filtering**: If you only need transactions for a specific period, include the `transactionsStartDate` and `transactionsEndDate` parameters.

4. **Process Response**: Parse the JSON response to extract account information, transaction details, balances, and other financial data for your application's use case.

5. **Handle Multiple Accounts**: The response contains an array of account objects. Process each account separately as they may have different FI types and data structures.

6. **Data Expiry Awareness**: Note that the fetched data has a limited lifetime based on the consent's data life parameter. Plan to re-fetch data before it expires if needed.

## Best Practices

* **Status Check First**: Always verify that data is ready using the FI Request Status API before attempting to retrieve it. Calling this API when data is not ready will result in a `NoDataAvailable` error.

* **Transaction Filtering**: When you only need recent transactions, use the `transactionsStartDate` and `transactionsEndDate` parameters to reduce payload size and improve performance.

* **Handle Different FI Types**: Different FI types have different data structures. Implement flexible parsing logic to handle various FI type schemas as per ReBIT specifications.

* **Error Handling**: Implement comprehensive error handling for all error codes, especially:
  * `NoDataAvailable`: Indicates you need to wait longer or initiate an FI request
  * `DataIsDeleted`: Indicates data has expired and you need to fetch fresh data
  * `InvalidConsentId`: Indicates the consent may be invalid, expired, or revoked

* **Data Persistence**: Store the retrieved financial data in your system with appropriate security measures. Do not rely on fetching data repeatedly as it may be deleted after the data life period.

* **Pagination**: For consents with large amounts of data, use the `limit` and `offset` query parameters to implement pagination and avoid timeout issues.

* **Schema Validation**: Validate the received data against the ReBIT FI Schema to ensure data integrity before processing.

* **Consent Scope**: Ensure you only request and process data that falls within the scope approved by the user in the consent.

* **Security**: Always transmit and store financial data securely. Use HTTPS for API calls and encrypt data at rest in your systems.


## OpenAPI

````yaml POST /getallfidata
openapi: 3.0.3
info:
  title: FinPro API
  description: MoneyOne FinPro - Account Aggregator FIU Platform APIs
  version: 1.21.0
servers:
  - url: '{baseUrl}'
    description: FinPro API Server
    variables:
      baseUrl:
        default: https://scramblerpay-uat.moneyone.in
        description: API Base URL - change this to your environment
security:
  - clientId: []
    clientSecret: []
    organisationId: []
    appIdentifier: []
paths:
  /getallfidata:
    post:
      tags:
        - Data Retrieval
      summary: Get All FI Data
      description: >-
        Retrieve complete financial information in JSON format for all accounts
        associated with a specific consent. This API provides comprehensive
        access to financial data including account profiles, transaction
        histories, balances, and account holder information. It supports all
        Financial Information (FI) types that are active in the Account
        Aggregator ecosystem.
      operationId: getAllFIData
      parameters:
        - name: limit
          in: query
          required: false
          description: >-
            When set to true, limits the number of records returned in the
            response. This is useful for handling large datasets.
          schema:
            type: boolean
        - name: offset
          in: query
          required: false
          description: >-
            When set to true, offsets the starting point of records. Use this in
            combination with limit for pagination.
          schema:
            type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetAllFIDataRequest'
            examples:
              basic:
                summary: Basic request with consent ID only
                value:
                  consentID: 84001bb6-b1d0-4443-aeff-dd482255a058
              withDateFiltering:
                summary: Request with transaction date filtering
                value:
                  consentID: 84001bb6-b1d0-4443-aeff-dd482255a058
                  transactionsStartDate: '2023-01-01T00:00:00Z'
                  transactionsEndDate: '2023-01-31T23:59:59Z'
      responses:
        '200':
          description: Financial data retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllFIDataResponse'
              example:
                ver: '1.0'
                status: success
                data:
                  - linkReferenceNumber: e72534d6-0016-4f0e-9da5-3e05ad405394
                    maskedAccountNumber: XXXXXXXX3900
                    fiType: DEPOSIT
                    bank: FinShareBankServer
                    transactions:
                      - type: CREDIT
                        mode: UPI
                        amount: '5000.00'
                        currentBalance: '45000.00'
                        transactionTimestamp: '2023-01-15T10:30:00.000Z'
                        valueDate: '2023-01-15'
                        txnId: UPI123456789
                        narration: Payment received from XYZ
                        reference: REF123456
                    balance:
                      amount: '45000.00'
                      currency: INR
                    profile:
                      accountType: SAVINGS
                      accountNumber: '1234567890'
                    holder:
                      name: John Doe
                      pan: ABCDE1234F
                      mobile: '9876543210'
                    summary:
                      currentBalance: '45000.00'
                      type: SAVINGS
                      ifscCode: HDFC0001234
                      status: ACTIVE
        '400':
          description: Bad Request - Invalid consent ID or validation failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalidConsentId:
                  summary: Invalid Consent ID
                  value:
                    ver: 1.21.0
                    timestamp: '2025-10-01T11:49:28.920Z'
                    errorCode: InvalidConsentId
                    errorMsg: Consent ID does not exist.
                invalidStartDate:
                  summary: Invalid Start Date Format
                  value:
                    ver: 1.21.0
                    timestamp: '2025-10-01T11:49:28.920Z'
                    errorCode: InvalidRequest
                    errorMsg: transactionsStartDate must be a valid ISO date
                noDataAvailable:
                  summary: No Data Available
                  value:
                    ver: 1.21.0
                    timestamp: '2025-10-01T11:49:28.920Z'
                    errorCode: NoDataAvailable
                    errorMsg: Data is not available for the given consent
                dataDeleted:
                  summary: Data Has Been Deleted
                  value:
                    ver: 1.21.0
                    timestamp: '2025-10-01T11:49:28.920Z'
                    errorCode: DataIsDeleted
                    errorMsg: Data is deleted for this consent
        '401':
          description: Authentication Failed - Invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests - Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                ver: 1.21.0
                timestamp: '2025-10-01T11:49:28.920Z'
                errorCode: InternalError
                errorMsg: 'Internal Server Error : accountFIDataList'
      security:
        - clientId: []
          clientSecret: []
          organisationId: []
          appIdentifier: []
components:
  schemas:
    GetAllFIDataRequest:
      type: object
      required:
        - consentID
      properties:
        consentID:
          type: string
          format: uuid
          description: >-
            The unique consent identifier (UUID) for which you want to retrieve
            financial information. This must be an ACTIVE consent that has
            already been approved by the customer and for which data has been
            fetched.
        transactionsStartDate:
          type: string
          format: date-time
          description: >-
            Optional ISO 8601 date-time filter to retrieve transactions starting
            from this date. Use this to limit the transaction history to a
            specific time range. Must be within the consent's approved data
            range.
        transactionsEndDate:
          type: string
          format: date-time
          description: >-
            Optional ISO 8601 date-time filter to retrieve transactions up to
            this date. Use in combination with transactionsStartDate to define a
            specific date range. Must be within the consent's approved data
            range.
    GetAllFIDataResponse:
      type: object
      properties:
        ver:
          type: string
          description: The version of the FinPro API that processed this request.
        status:
          type: string
          description: Overall API call status. Will be 'success' for successful requests.
        data:
          type: array
          description: >-
            An array of financial account data objects. Each object represents
            one linked account under the consent.
          items:
            $ref: '#/components/schemas/FIAccountData'
    ErrorResponse:
      type: object
      properties:
        ver:
          type: string
          description: API version
        timestamp:
          type: string
          format: date-time
          description: When the error occurred
        errorCode:
          type: string
          description: Error category code
        errorMsg:
          type: string
          description: Detailed error message
        status:
          type: string
          description: FinPro-specific error code (FPxxxx format)
    FIAccountData:
      type: object
      description: >-
        Complete financial information for a single account including
        transactions, balance, profile, and holder information.
      properties:
        linkReferenceNumber:
          type: string
          format: uuid
          description: >-
            The unique reference number that links this account to the consent.
            Use this identifier when fetching data for specific accounts.
        maskedAccountNumber:
          type: string
          description: >-
            The account number with most digits masked for privacy (e.g.,
            XXXXXXXX3900).
        fiType:
          type: string
          description: >-
            The type of financial information (e.g., DEPOSIT, TERM_DEPOSIT,
            RECURRING_DEPOSIT, SIP, MUTUAL_FUNDS, INSURANCE_POLICIES, etc.).
        bank:
          type: string
          description: >-
            The name or identifier of the Financial Information Provider (bank
            or financial institution).
        transactions:
          type: array
          description: >-
            Array of transaction records for this account within the requested
            date range.
          items:
            $ref: '#/components/schemas/FITransaction'
        balance:
          type: object
          description: Current balance information for the account.
          properties:
            amount:
              type: string
              description: The balance amount as a string (to preserve precision).
            currency:
              type: string
              description: The currency code (e.g., INR).
        profile:
          type: object
          description: Account profile information.
          properties:
            accountType:
              type: string
              description: Type of account (e.g., SAVINGS, CURRENT, CC).
            accountNumber:
              type: string
              description: The full or partial account number.
        holder:
          type: object
          description: Account holder information.
          properties:
            name:
              type: string
              description: Name of the account holder.
            pan:
              type: string
              description: PAN of the account holder (if available).
            mobile:
              type: string
              description: Mobile number of the account holder.
        summary:
          type: object
          description: Account summary information.
          properties:
            currentBalance:
              type: string
              description: Current balance of the account.
            type:
              type: string
              description: Account type (e.g., SAVINGS, CURRENT).
            ifscCode:
              type: string
              description: IFSC code of the bank branch.
            status:
              type: string
              description: Status of the account (e.g., ACTIVE, INACTIVE).
    FITransaction:
      type: object
      description: A single financial transaction record.
      properties:
        type:
          type: string
          enum:
            - CREDIT
            - DEBIT
          description: >-
            The type of transaction - CREDIT for money coming in, DEBIT for
            money going out.
        mode:
          type: string
          description: >-
            The mode or channel of the transaction (e.g., UPI, NEFT, IMPS, CARD,
            ATM, CASH).
        amount:
          type: string
          description: The transaction amount as a string (to preserve precision).
        currentBalance:
          type: string
          description: The account balance after this transaction was processed.
        transactionTimestamp:
          type: string
          format: date-time
          description: ISO 8601 timestamp when the transaction occurred.
        valueDate:
          type: string
          format: date
          description: The value date of the transaction in YYYY-MM-DD format.
        txnId:
          type: string
          description: Unique transaction identifier assigned by the FIP.
        narration:
          type: string
          description: A description or narrative for the transaction provided by the FIP.
        reference:
          type: string
          description: A reference number or identifier associated with this transaction.
  securitySchemes:
    clientId:
      type: apiKey
      in: header
      name: client_id
      description: Your unique client identifier provided by MoneyOne during FIU onboarding
    clientSecret:
      type: apiKey
      in: header
      name: client_secret
      description: Your confidential client secret provided by MoneyOne
    organisationId:
      type: apiKey
      in: header
      name: organisationId
      description: Your organization's unique identifier in the FinPro system
    appIdentifier:
      type: apiKey
      in: header
      name: appIdentifier
      description: Application-specific identifier for tracking API calls

````