Skip to main content
POST
/
getallfidata
Get All FI Data
curl --request POST \
  --url https://api.example.com/getallfidata \
  --header 'appIdentifier: <appidentifier>' \
  --header 'client_id: <client_id>' \
  --header 'client_secret: <client_secret>' \
  --header 'content-Type: <content-type>' \
  --header 'organisationId: <organisationid>' \
  --data '
{
  "consentID": "<string>",
  "transactionsStartDate": "<string>",
  "transactionsEndDate": "<string>"
}
'
{
  "ver": "<string>",
  "status": "<string>",
  "data": [
    {
      "linkReferenceNumber": "<string>",
      "maskedAccountNumber": "<string>",
      "fiType": "<string>",
      "bank": "<string>",
      "transactions": [
        {}
      ],
      "balance": {},
      "profile": {},
      "holder": {},
      "summary": {}
    }
  ],
  "timestamp": "<string>"
}

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:
client_id
string
required
Your unique client identifier provided by FinPro during onboarding. This ID is used to authenticate your application.
client_secret
string
required
Your confidential client secret key provided by FinPro. This must be kept secure and never exposed in client-side code.
appIdentifier
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.
organisationId
string
required
Your organization’s unique identifier assigned by FinPro. This identifies your organization in the FinPro system.
content-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.

Query Parameters

The following optional query parameters can be used to control the pagination of results:
limit
boolean
When set to true, limits the number of records returned in the response. This is useful for handling large datasets.
offset
boolean
When set to true, offsets the starting point of records. Use this in combination with limit for pagination.
Example: ?limit=true&offset=true

Request Body

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.
transactionsStartDate
string
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.
transactionsEndDate
string
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.

Request Example

{
  "consentID": "84001bb6-b1d0-4443-aeff-dd482255a058"
}

Request Example with Transaction Date Filtering

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

Response Parameters

ver
string
The version of the API that processed the request. This helps track which version of the API handled your request.
status
string
The overall status of the API response. Returns "success" when data is successfully retrieved, or "failure" if there was an error.
data
array
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.
timestamp
string
The timestamp when the API response was generated, in UTC time format. This can be used for logging and audit purposes.

Success Response 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"
      }
    }
  ]
}

Error Responses

When the provided consent ID does not exist:
{
  "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 CodeError MessageDescriptionHTTP Status
InvalidRequesttransactionsStartDate must be a valid ISO dateThe start date is not in valid ISO 8601 format400
InvalidRequestconsentID must be a stringThe consentID parameter is null or not a string400
InvalidRequesttransactionsEndDate must be a valid ISO dateThe end date is not in valid ISO 8601 format400
InvalidRequestconsentID value can have only A to Z, a to z, 0 to 9, _ , - and . charactersThe consentID contains invalid characters400
InvalidPayloadEither consentId or accountID should be passed and both consentID and accountID should not be passed in payloadMissing or conflicting parameters400
InvalidConsentIdConsent ID does not exist.The provided consent ID is not found in the system400
InvalidRequestConsent ID is Revoked with consent type as VIEW.Cannot retrieve data for a revoked VIEW-type consent400
NoDataAvailableData is not available for the given consentNo financial data has been fetched for this consent yet400
DataIsDeletedData is deleted for this consentThe data has expired and been deleted per data retention policy400
NoDataFoundData is not availableNo linked accounts or data found for this consent400
InternalErrorInternal Server Error : accountFIDataListUnexpected server error during data retrieval500

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:
  • 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.