AA Connect
8 endpoints · WealthSync API
Submit multi-consent request — initiates consent requests for multiple financial data types in a single API call.
This API is used when the same user needs more than one active consent, each for a different use-case. For example: Consent 1: Personal Finance Management (PFM) and Consent 2: F&O (for trading behavior insights). Both consents are created separately, but can be initiated in one single call using this API.
Request Body Parameters:
→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription.
→ aaCustId (optional): The user's Account Aggregator customer ID. Not needed when the customer ID is the user's mobile number followed by the AA handle; send it only when the AA customer ID must differ from the mobile number.
→ redirectUrl (required): URL where the customer is redirected after completing the consent journey. Send a full URL, for example "https://example.com/consent-done".
→ userSessionId (optional): Free-form session ID from your app, used to track the session that started the consent request.
→ consentTemplates (required): Array of strings. Names of the consent templates registered for you, for example ["YOUR_TEMPLATE_NAME"]. The field must be present with at least one template name.
Q. What is a consent template?
A consent template is a predefined configuration that specifies what financial data will be shared, why, and how often. It simplifies and standardizes the consent process for all users. This will be shared with FIU by the Wealthsync team.
Q. How is a consent template decided?
The consent template is created as per Sahamati guidelines and contains values as specified by ReBIT. Refer to the Sahamati templates here: https://sahamati.org.in/aa-fair-use-template-library/consent-template-id-ct008-personal-finance-management/
Q. What does the redirectUrl do?
The redirectUrl field will redirect the user to land on the URL provided in the value of this field after the consent journey has been completed.
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- uniqueIdentifierstringrequiredRequired. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.minLength 1default user-12345
- aaCustIdstringoptionalOptional. The user's Account Aggregator customer ID. Not needed when the customer ID is the mobile number followed by the AA handle; send it only when it must differ from the mobile number.nullable
- userSessionIdstringoptionalOptional. Free-form session ID from your app, used to track the session that started the consent request.nullable
- redirectUrlstringrequiredRequired. Full URL where the customer is redirected after completing the consent journey.minLength 1default https://example.com/consent-done
- consentTemplatesarray<string>requiredRequired. Names of the consent templates registered for you. Provide at least one name.default ["YOUR_TEMPLATE_NAME"]
Sample request body
Responses
200OK
- urlstringoptionalNo description.nullable
- consentHandlesobjectoptionalNo description.nullable
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500
Code samplescurl · Node.js · Python
Submit consent revoke request.
Request Body Parameters:
→ <b>uniqueIdentifier</b> (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.
→ <b>consentIds</b> (optional): Array of consent IDs (strings) to revoke. When omitted or empty, all existing consents of the user are included in the revoke request.
→ <b>redirectUrl</b> (optional): Full URL where the user is sent after the revoke is processed, for example "https://example.com/revoke-done".
Q. What is consentId?
The consentId uniquely identifies each consent given by the user to the Account Aggregator.
A consent may hold multiple accounts, so all accounts within the consent will be considered for revocation.
List of consent IDs to revoke. When consent IDs are not provided, all existing consents of the user will be included in revoke request to AA
Q. Where do you get the consentId from?
You receive consentId in the /webhook/consent notification and by calling
/pfm/api/v2/account-consents-latest API.
A consent may hold multiple accounts, so all accounts within the consent will be considered for revocation.
Q. What does the submit consent revoke request API do?
Will it stop sending the data associated with that account?
The submit consent revoke request API returns a URL where the user has to go and confirm revocation.
Once a consent is revoked:
-> No new data will be fetched for accounts associated with that consent(s).
-> Daily refresh for accounts associated with that consent(s) stops.
-> Any new analytics or insights will not include this account.
-> FIUs can expect to receive the /webhook/consent with status as "REVOKED" once the user confirms on AA.
-> We support an optional configuration in Wealthsync to delete the data immediately after revoke.
By default this is turned off, i.e., data is NOT deleted on revoke.
-> Currently the revoke journey is supported only for consents created through some Account Aggregators.
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- uniqueIdentifierstringrequiredRequired. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.minLength 1default user-12345
- consentIdsarray<string>optionalOptional. Consent IDs to revoke. When omitted or empty, all existing consents of the user are included in the revoke request.nullable
- redirectUrlstringoptionalOptional. Full URL where the user is redirected after the revoke is processed.nullable
Sample request body
Responses
200OK
- encryptedRequeststringoptionalNo description.nullable
- requestDatestringoptionalNo description.nullable
- encryptedFiuIdstringoptionalNo description.nullable
- urlstringoptionalNo description.nullable
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500
Code samplescurl · Node.js · Python
Submit consent request plus (AA Connect).
This API initiates a single consent request with flexible parameters. Unlike submit-multi-consent-request, this is for creating one consent at a time with fine-grained control. After calling this API, the user is redirected to the AA (Account Aggregator) to approve the consent.
Request Body Parameters:
→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.
→ aaCustId (required): The user's Account Aggregator customer ID in the format: 10-digit mobile number + "@" + the AA handle.
Example: "9999999999@your-aa-handle"
→ templateName (required): The consent template name as configured in Wealthsync.
Example values: "BANK_STATEMENT_INSURANCE", "FNO_Activation", "BANK_STATEMENT_PERIODIC".
→ userSessionId (optional): A free-form session tracking ID from your app to track which user session
initiated the consent flow. Example: "sessionid123".
→ redirectUrl (required): The URL where the user will be redirected after completing the consent journey on AA.
→ pan (required): The user's 10-character PAN in the format AAAAA9999A.
→ consentDetails (required): Object with a required "fiTypes" array of strings — the list of financial information types
the user is consenting to share, for example {"fiTypes": ["DEPOSIT", "MUTUAL_FUNDS"]}. Supported fiTypes (upper case):
"DEPOSIT", "TERM_DEPOSIT", "RECURRING_DEPOSIT", "SIP", "EQUITIES", "MUTUAL_FUNDS", "ETF",
"IDR", "CIS", "AIF", "INVIT", "REIT", "LIFE_INSURANCE", "GENERAL_INSURANCE", "NPS",
"GSTR1_3B", "INSURANCE_POLICIES".
FAQ:
Q. What is a consent template?
A consent template is a predefined configuration that specifies what financial data will be shared, why, and how often. It simplifies and standardizes the consent process for all users. This will be shared with FIU by the Wealthsync team.
Q. How is a consent template decided?
The consent template is created as per Sahamati guidelines and contains values as specified by ReBIT. Refer to the Sahamati templates here: https://sahamati.org.in/aa-fair-use-template-library/consent-template-id-ct008-personal-finance-management/
Q. What does the redirectUrl do?
The redirectUrl field will redirect the user to land on the URL provided in the value of this field after the consent journey has been completed. Send a full URL, for example "https://example.com/consent-done".
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- uniqueIdentifierstringrequiredRequired. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.minLength 1default user-12345
- aaCustIdstringrequiredRequired. The user's Account Aggregator customer ID: 10-digit mobile number + "@" + the AA handle.nullabledefault 9999999999@your-aa-handle
- templateNamestringrequiredRequired. Name of the consent template to use, as configured for you.minLength 1
- userSessionIdstringoptionalOptional. Free-form session ID from your app. It is returned to you as an encrypted parameter in the redirect URL.nullable
- redirectUrlstringrequiredRequired. Full URL where the user is redirected after the consent journey is completed.nullabledefault https://example.com/consent-done
- panstringrequiredRequired. 10-character PAN of the user in the format AAAAA9999A.nullabledefault ABCDE1234F
- consentDetailsobjectoptionalNo description.
1 field
- fiTypesarray<string>requiredRequired. Financial information types the user consents to share, for example DEPOSIT, MUTUAL_FUNDS (upper case).default ["DEPOSIT","MUTUAL_FUNDS"]
Sample request body
Responses
200OK
- urlstringoptionalNo description.nullable
- consentHandlestringoptionalNo description.nullable
- encryptedFiuIdstringoptionalNo description.nullable
- requestDatestringoptionalNo description.nullable
- encryptedRequeststringoptionalNo description.nullable
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500
Code samplescurl · Node.js · Python
Submit FI request for a user.
Fetches data for all the accounts that a user has given across different consents.
Q. What is FI Request?
FI Request (Financial Information Request) is the request that your application sends to the Account Aggregator to retrieve financial data from the user’s linked Financial Information Providers (FIPs), such as banks, brokers, insurance companies, etc.
Q. Does an FIU do the FI request or is it handled by Wealthsync?
By default, Wealthsync performs a batch request every day for the FIUs. FIUs can opt out if they wish to handle the data refresh on their end.
Request Body Parameters:
→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- uniqueIdentifierstringrequiredRequired. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.minLength 1default user-12345
Sample request body
Responses
200OK
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500
Code samplescurl · Node.js · Python
Submit FI request for an account.
This API triggers a Financial Information (FI) request for a specific individual account. Use this when you want to refresh data for just one account instead of all accounts.
Prerequisites: → First call any linked accounts API to get the fiDataId of the account. → Pass that fiDataId as the "accountId" parameter in this API.
Request Body Parameters:
→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.
→ accountId (required): The fiDataId of the specific account to fetch data for. To get the accountId (fiDataId) for different FI types, call the corresponding linked accounts API:
-
Bank Savings/Current accounts: POST deposit/user-linked-accounts
-
Fixed Deposits (FD): POST term-deposit/user-linked-accounts
-
Recurring Deposits (RD): POST recurring-deposit/user-linked-accounts
-
Mutual Funds: POST mutual-fund/user-linked-accounts
-
ETFs: POST etf/user-linked-accounts
-
Stocks: POST equities/user-linked-accounts
-
Stocks + ETFs combined: POST equities-and-etfs/user-linked-accounts
-
Life Insurance: POST life-insurance/user-linked-accounts
-
General Insurance: POST general-insurance/user-linked-accounts
-
NPS: POST nps/user-linked-accounts
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- uniqueIdentifierstringrequiredRequired. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.minLength 1default user-12345
- accountIdstringrequiredRequired. The fiDataId of the account to refresh (from the matching linked accounts API).nullabledefault YOUR_FI_DATA_ID
Sample request body
Responses
200OK
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500
Code samplescurl · Node.js · Python
Get List of all FIPs.
This API returns the complete list of Financial Information Providers (FIPs) registered with the AA ecosystem. Each FIP includes fipId, fipName, supported fiTypes, enable status, entity logos/icons, and OTP length. Use this to show the user which banks, brokers, or insurers are available for linking.
Request Body Parameters:
→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- uniqueIdentifierstringrequiredRequired. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.minLength 1default user-12345
Sample request body
Responses
200OK
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500
Code samplescurl · Node.js · Python
Get raw data for account as received via AA for recurring consents.
This API returns the raw, unanalyzed financial data exactly as received from the Account Aggregator. Useful when you need the original data without any Wealthsync processing or analysis. The response includes Profile (holder info), Summary (account details), and Transactions.
Prerequisites: → First call any linked accounts API to get the fiDataId of the account. → Pass that fiDataId as the "accountId" parameter.
Request Body Parameters:
→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.
→ accountId (required): The fiDataId of the account whose raw data you want. To get the accountId (fiDataId) for different FI types, call the corresponding linked accounts API:
-
Bank Savings/Current accounts: POST deposit/user-linked-accounts
-
Fixed Deposits (FD): POST term-deposit/user-linked-accounts
-
Recurring Deposits (RD): POST recurring-deposit/user-linked-accounts
-
Mutual Funds: POST mutual-fund/user-linked-accounts
-
ETFs: POST etf/user-linked-accounts
-
Stocks: POST equities/user-linked-accounts
-
Stocks + ETFs combined: POST equities-and-etfs/user-linked-accounts
-
Life Insurance: POST life-insurance/user-linked-accounts
-
General Insurance: POST general-insurance/user-linked-accounts
-
NPS: POST nps/user-linked-accounts
→ fromDate (optional): Start date for the data range. Format: yyyy-MM-dd.
→ toDate (optional): End date for the data range. Format: yyyy-MM-dd.
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- uniqueIdentifierstringrequiredRequired. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.minLength 1default user-12345
- accountIdstringrequiredRequired. The fiDataId of the account whose raw data you want (from the matching linked accounts API).minLength 1default YOUR_FI_DATA_ID
- fromDatestringoptionalOptional. Start date of the data range, in yyyy-MM-dd format (for example 2025-01-01).nullabledefault 2025-01-01
- toDatestringoptionalOptional. End date of the data range, in yyyy-MM-dd format (for example 2025-12-31).nullabledefault 2025-12-31
Sample request body
Responses
200OK
- profileobjectoptionalNo description.
1 field
- holdersobjectoptionalNo description.
2 fields
- holderobjectoptionalNo description.
9 fields
- namestringoptionalNo description.nullable
- dobstringoptionalNo description.nullable
- mobilestringoptionalNo description.nullable
- nomineestringoptionalNo description.nullable
- addressstringoptionalNo description.nullable
- emailstringoptionalNo description.nullable
- panstringoptionalNo description.nullable
- ckycCompliancebooleanoptionalNo description.nullable
- ckycRegisteredstringoptionalNo description.nullable
- typestringoptionalNo description.nullable
- summaryobjectoptionalNo description.
12 fields
- typestringoptionalNo description.nullable
- branchstringoptionalNo description.nullable
- facilitystringoptionalNo description.nullable
- ifscCodestringoptionalNo description.nullable
- micrCodestringoptionalNo description.nullable
- openingDatestringoptionalNo description.nullable
- currentODLimitstringoptionalNo description.nullable
- drawingLimitstringoptionalNo description.nullable
- currentBalancestringoptionalNo description.nullable
- currencystringoptionalNo description.nullable
- balanceDateTimestringoptionalNo description.nullable
- statusstringoptionalNo description.nullable
- transactionsobjectoptionalNo description.
3 fields
- transactionarray<object>optionalNo description.nullable
Each item: 10 fields
- typestringoptionalNo description.nullable
- transactionTimestampstringoptionalNo description.nullable
- valueDatestringoptionalNo description.nullable
- txnIdstringoptionalNo description.nullable
- narrationstringoptionalNo description.nullable
- referencestringoptionalNo description.nullable
- currentBalancestringoptionalNo description.nullable
- modestringoptionalNo description.nullable
- merchantsarray<any>optionalNo description.nullable
- amountnumber (double)optionalNo description.nullable
- startDatestringoptionalNo description.nullable
- endDatestringoptionalNo description.nullable
- typestringoptionalNo description.nullable
- maskedAccNumberstringoptionalNo description.nullable
- versionstringoptionalNo description.nullable
- linkedAccRefstringoptionalNo description.nullable
- schemaLocationstringoptionalNo description.nullable
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500
Code samplescurl · Node.js · Python
Get consent details for an account.
This API returns the latest consent details for a specific account. The response includes consentId, consent start/expiry dates, consent mode, fetch type, fiTypes, data consumer/provider details, purpose, FI data range, data life, and frequency.
Use this to check the current consent status of an account or to get the consentId needed for the submit-consent-revoke-request API.
Request Body Parameters:
→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.
→ accountId (required): The fiDataId of the account whose consent details you want. To get the accountId (fiDataId) for different FI types, call the corresponding linked accounts API:
-
Bank Savings/Current accounts: POST deposit/user-linked-accounts
-
Fixed Deposits (FD): POST term-deposit/user-linked-accounts
-
Recurring Deposits (RD): POST recurring-deposit/user-linked-accounts
-
Mutual Funds: POST mutual-fund/user-linked-accounts
-
ETFs: POST etf/user-linked-accounts
-
Stocks: POST equities/user-linked-accounts
-
Stocks + ETFs combined: POST equities-and-etfs/user-linked-accounts
-
Life Insurance: POST life-insurance/user-linked-accounts
-
General Insurance: POST general-insurance/user-linked-accounts
-
NPS: POST nps/user-linked-accounts
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- uniqueIdentifierstringrequiredRequired. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.minLength 1default user-12345
- accountIdstringrequiredRequired. The fiDataId of the account whose latest consent details you want.minLength 1default YOUR_FI_DATA_ID
Sample request body
Responses
200OK
- consentIdstringoptionalNo description.nullable
- consentCreateTimestampstringoptionalNo description.nullable
- consentStartstringoptionalNo description.nullable
- consentExpirystringoptionalNo description.nullable
- consentModestringoptionalNo description.nullable
- fetchTypestringoptionalNo description.nullable
- consentTypesarray<string>optionalNo description.nullable
- fiTypesarray<string>optionalNo description.nullable
- dataConsumerobjectoptionalNo description.
2 fields
- idstringoptionalNo description.nullable
- typestringoptionalNo description.nullable
- dataProviderobjectoptionalNo description.
2 fields
- idstringoptionalNo description.nullable
- typestringoptionalNo description.nullable
- customerobjectoptionalNo description.
1 field
- idstringoptionalNo description.nullable
- accountsarray<object>optionalNo description.nullable
Each item: 5 fields
- fiTypestringoptionalNo description.nullable
- fipIdstringoptionalNo description.nullable
- accTypestringoptionalNo description.nullable
- linkRefNumberstringoptionalNo description.nullable
- maskedAccNumberstringoptionalNo description.nullable
- purposeobjectoptionalNo description.
4 fields
- codestringoptionalNo description.nullable
- refUristringoptionalNo description.nullable
- textstringoptionalNo description.nullable
- categoryobjectoptionalNo description.
1 field
- typestringoptionalNo description.nullable
- fiDataRangeobjectoptionalNo description.
2 fields
- fromstringoptionalNo description.nullable
- tostringoptionalNo description.nullable
- dataLifeobjectoptionalNo description.
2 fields
- unitstringoptionalNo description.nullable
- valueinteger (int32)optionalNo description.nullable
- frequencyobjectoptionalNo description.
2 fields
- unitstringoptionalNo description.nullable
- valueinteger (int32)optionalNo description.nullable
- dataFilterarray<object>optionalNo description.nullable
Each item: 3 fields
- typestringoptionalNo description.nullable
- operatorstringoptionalNo description.nullable
- valuestringoptionalNo description.nullable
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500