Consent Start
Introduction
About the Signzy Account Aggregator (AAA) product. The Account Aggregator (AA) framework is an RBI-regulated, consent-driven system that lets a customer securely share their financial data from banks and other institutions (FIPs — Financial Information Providers) with a business that needs it (an FIU — Financial Information User), through a licensed Account Aggregator. No data moves without the customer's explicit, purpose-bound, time-bound digital consent.
Signzy's TSP solution is the FIU-side integration that hides all of this complexity behind a small set of REST APIs. It manages Sahamati onboarding, consent creation and signing, the AA webview/redirect handshake, encrypted FI data pulls from each bank, decryption, and normalization — so you only deal with four calls: start, status, and data (plus fetch for periodic refreshes).
Where start fits. start is the entry point of a consent journey. You call it with the customer's identifier (mobile) and one or more of your configured consent templates; it creates the consent(s) and returns a redirectUrl to which you send the customer. The typical journey is:
- start → create the consent(s), get journeyId + redirectUrl.
- Redirect the customer to redirectUrl — the AA consent screen (if you passed fipIds) or Signzy's bank-selection screen (if you didn't).
- status (poll with journeyId) → wait until journeyStatus is SUCCESS.
- data (per consentHandle) → retrieve the fetched, normalized financial data. (Or receive a dataReady webhook if you passed a callbackUrl.)
How to call the API
Send a POST request. Every request must carry your Signzy API key in the Authorization header and Content-Type: application/json.
Authorization: Content-Type: application/json
API Input Guidelines
You need to pass the following information:
- mobile
- consentTemplateIds — one or more consent templates configured for you (one consent is created per template).
- Optionally fipIds (pre-selected banks), aaId, redirect URL(for return redirection to your screen), and a callbackUrl (for data in webhook).
- aaId mapping
- UAT
Finvu ---> "aaId": "[email protected]", Saafe ---> "aaId": "dashboard-aa-preprod", NADL ---> "aaId": "AA00023403", Anumati ---> "aaId": "Anumati-UAT", CamsFinserv ---> "aaId": "AA00022222", Onemoney ---> "aaId": "onemoney-aa"
Production
Finvu ---> "aaId": "cookiejaraalive@finvu", Saafe --> "aaId": "saafe", Onemoney ---> "aaId": "onemoney", NADL ---> "aaId": "AA00023404", Anumati ---> "aaId": "Anumati", camsfinserv ---> "aaId": "AA00022277"
fipIds mapping
UAT
PROD
In UAT for Success Flow select Millenium Bank account ending with XXX5877, XXX5876 in Account Aggregator UI.
- OTP for AA login in uat
- Finvu: 111111
- Saafe: 1234
- OTP for Account Linking in AA uat screen (can click continue if already have accounts linked before)
- Millenium Bank: 367560
Sample Curl
curl --location 'https://api.signzy.app/api/v3/aa-switch/consent/start' \
--header 'Content-Type: application/json' \
--header 'Authorization:<signzy-auth-key>' \
--data-raw '{
"mobile": "<10-digit mobile number>",
"consentTemplateIds": [
"<your configured templateId (ONETIME, PERIODIC)>"
],
"includePdf":false,
"callbackUrl": "<open post endpoint to recieve data on callback>",
"redirectSuccessUrl": "https://www.google.com/",
"redirectFailureUrl": "https://www.google.com/",
"fipIds": [
"<fipId if banks are known before the journey>"
],
"aaId": "if want to redirect to particular configured account aggregator"
}'
Input Parameters
PARAMETER NAME | REQUIRED/OPTIONAL | DESCRIPTION |
|---|---|---|
mobile | Required | Customer mobile number (E.164, e.g. 9876543210). |
consentTemplateIds | Required | Array of one or more consent template ids configured for you. One consent is created per template. |
includePdf | Optional | Optional boolean flag to get pdf of accounts data fetched from account aggregator. |
redirectSuccessUrl | Optional | URL the user is returned to after a successful consent. Omit to use Signzy's own success screen. |
redirectFailureUrl | Optional | URL the user is returned to on failure / decline. Omit to use Signzy's own failure screen. |
callbackUrl | Optional | If passed in request body, Signzy POSTs a dataReady event here with the full data payload once the data is ready |
aaId | Optional | The Account Aggregator to use. If omitted, oneof your configured AA is used based on availability. |
fipIds | Optional | Pre-selected banks. If omitted, the response redirectUrl is Signzy's bank-selection screen — the user picks banks there, which then resolves to the AA consent screen. |
Sample Response
{
"journeyId": "fe2e8638-0348-47aa-b736-7f3fd1d2fb41",
"consents": [
{
"consentHandle": "08785f8e-a8e6-41a6-8a0c-df5990d215c2",
"consentTemplateId": "RICHMAN-ONETIME-single-01KVYTT71VB1NRQM8N92S46STP"
},
{
"consentHandle": "94692ba5-8a37-4ad6-8b30-33757c542d7b",
"consentTemplateId": "RICHMAN-PERIODIC-single-01KVZ0J1SS6H91A0QG65N3XVNT"
}
],
"redirectUrl": "https://snz.bz/SIGNZY/vfLEjB",
"expiresAt": "2026-07-08T11:09:37.967Z"
}Response Parameter
PARAMETER NAME | Type | DESCRIPTION |
|---|---|---|
journeyId | String | The journey id. Use it with the status call. |
consents[] | Array | One { consentHandle, consentTemplateId } per consent template. Use each consentHandle with the data call. |
consents[].consentHandle | String | The consent handle for that template. |
consents[].consentTemplateId | String | The consent template the consent was created from. |
redirectUrl | String | Short URL to redirect the customer to: the AA consent screen (when fipIds passed) or Signzy's bank-selection screen (when omitted). |
expiresAt | String | the redirect link expiry in ISO date format — ~30 minutes for the bank-selection screen (no fipIds), or the journey lifetime for the AA consent screen (with fipIds). |