Retrieve comprehensive transaction details and account information for a specific linked account in XML format, designed for systems requiring structured XML data processing.
| Header | Type | Required | Description |
|---|---|---|---|
client_id | string | Yes | The unique client identifier assigned to your organization during onboarding. This value is available in the FinPro admin portal. |
client_secret | string | Yes | The confidential client secret key paired with your client_id. Store this securely and never expose it in client-side code. |
organisationId | string | Yes | Your organization’s unique identifier in the FinPro system, used to scope all API requests to your tenant. |
appIdentifier | string | Yes | The application identifier that distinguishes different applications within your organization, useful for multi-product setups. |
Content-Type | string | Yes | Must be set to application/json for the request body. Note that while the request uses JSON, the response will be in XML format. |
| Parameter | Type | Required | Validation | Description |
|---|---|---|---|---|
consentID | string | Yes | Must be a valid GUID (Globally Unique Identifier) provided by the Account Aggregator after consent approval. | The unique identifier for the consent record under which this account is linked. The consent must be in ACTIVE status to retrieve data. |
linkReferenceNumber | string | Yes | Must be a valid UUID that exists in the system and is associated with the specified consent ID. | The unique identifier for the specific financial account you want to retrieve data for. This value is obtained from webhook notifications or previous API responses when accounts are linked. |
| Parameter | Type | Required | Description | Supported Values |
|---|---|---|---|---|
status | string | Yes | Indicates whether the request was processed successfully. | success, failure |
ver | string | Yes | The version number of the API specification being used in this response. | e.g., “1.21.0” |
data | object | Yes | The main data container holding all account and transaction information. | Data object |
data.linkReferenceNumber | string | Yes | The unique identifier for this linked account, matching the value provided in the request. | UUID format |
data.maskedAccountNumber | string | Yes | The account number with most digits masked for security and privacy purposes, typically showing only the last 4 digits. | e.g., “XXXXXXXX3900” |
data.balance | string | Yes | The current account balance as of the most recent data fetch, represented as a string to preserve decimal precision. | Numeric string (e.g., “101666.33”) |
data.fipName | string | Yes | The name of the Financial Information Provider (FIP), which is typically the bank or financial institution holding the account. | Institution name string |
data.fipId | string | Yes | The unique identifier for the Financial Information Provider in the Account Aggregator ecosystem. | FIP identifier (e.g., “finsharebank”) |
data.fiType | string | Yes | Categorizes the type of financial information being shared from this account. | DEPOSIT, TERM_DEPOSIT, TERM-DEPOSIT, RECURRING_DEPOSIT |
data.fiData | array | Yes | A collection of transaction elements, each representing a single financial transaction on the account. | Array of transaction objects |
data.fiData.transactionTimestamp | string | Yes | The exact date and time when the transaction was processed by the financial institution. | ISO 8601 timestamp format |
data.fiData.txnId | string | Yes | The unique transaction identifier assigned by the financial institution, useful for transaction tracking and reconciliation. | Transaction ID string |
data.fiData.type | string | Yes | Indicates whether money was added to or removed from the account. | CREDIT, DEBIT |
data.fiData.amount | string | Yes | The transaction amount in the account’s base currency, represented as a string to maintain precision. | Numeric string (e.g., “5000.00”) |
data.fiData.balance | string | Yes | The account balance immediately after this transaction was processed, essential for balance reconciliation and verification. | Numeric string |
data.fiData.mode | string | Yes | The payment method or channel through which the transaction was executed. | CASH, UPI, IMPS, NEFT, RTGS, CARD, ATM, CHEQUE, DEMAND_DRAFT, AUTO_DEBIT, INTEREST_CREDIT, NACH, ECS, REMITTANCE, OTHERS |
data.fiData.narration | string | Yes | A descriptive text provided by the financial institution explaining the transaction purpose or source/destination details. | Free-form text string |
data.fiData.reference | string | Yes | Additional reference information such as cheque numbers, UPI transaction IDs, or other institution-specific identifiers. | Reference string |
data.fiData.valueDate | string | Yes | The effective date when the transaction amount was actually credited or debited for interest calculation purposes, which may differ from the transaction timestamp. | Date string (YYYY-MM-DD format) |
| Field | Type | Required | Description |
|---|---|---|---|
ver | string | Optional | The API version number, included when the error occurs after version validation. |
timestamp | string | Optional | The exact time when the error was encountered, useful for log correlation and debugging. |
errorCode | string | Optional | A machine-readable error identifier that categorizes the type of failure encountered. |
errorMsg | string | Optional | A human-readable description of the error, providing context about what went wrong and potentially how to fix it. |
status | string | Optional | Set to “failure” to indicate the request did not complete successfully. |
| Error Code | Error Message | Description | Resolution |
|---|---|---|---|
InvalidRequest | ”consentID is required” or “linkReferenceNumber is required” | One or both mandatory parameters are missing from the request body. | Ensure both consentID and linkReferenceNumber are included in the request body. |
InvalidConsentId | ”Consent ID does not exist” | The provided consent ID is not found in the system or belongs to a different organization. | Verify the consent ID is correct and was successfully created for your organization. |
InvalidLinkReference | ”Link Reference Number does not exist” or “Link Reference Number not associated with this consent” | The linkReferenceNumber is invalid or doesn’t belong to the specified consent. | Check that the linkReferenceNumber was obtained from a webhook notification or API response for this specific consent. |
ConsentNotActive | ”Consent is not in active state” | The consent has been paused, revoked, or expired, preventing data access. | Check the consent status and obtain a new consent approval if needed. |
DataNotAvailable | ”Financial data not available” | The FIP has not yet provided data for this account, or data fetch is still in progress. | Wait for the DATA_READY webhook notification before attempting to retrieve data. |
Unauthorized | ”Invalid credentials” | The authentication headers are incorrect, missing, or the credentials have expired. | Verify your client_id, client_secret, organisationId, and appIdentifier are correct and active. |
RateLimitExceeded | ”Too many requests” | The API rate limit has been exceeded for your organization. | Implement exponential backoff and reduce request frequency. Check rate limit headers in the response. |
TERM_DEPOSIT and others using TERM-DEPOSIT (hyphenated). Your XML parsing logic should handle both variations.
<fiData> element are typically ordered reverse chronologically (most recent transactions first), though ordering should be verified by examining transactionTimestamp values.<balance> field within each transaction element shows the running balance after that specific transaction, enabling you to verify transaction sequences and detect any missing transactions.<mode> field provides standardized payment method codes, but the specific codes available depend on what the FIP includes in their data; not all modes may be present for all transactions.<narration> field contains unstructured text that varies significantly in format and content across different banks; implement pattern matching or natural language processing to extract meaningful information like merchant names or transaction purposes.<transaction> elements within <fiData>.<status> element value before attempting to extract data elements.