Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,35 @@ Cloning and editing in local is faster due to virtual workspace in online VS Cod

Go through this [detailed guide](./content/README.md) on how to write content

## Asset Management

### Strapi Assets Bucket

All images and assets for the documentation are stored in the `strapi-assets` bucket. When uploading images or assets:

1. **Bucket Name**: `strapi-assets`
2. **Folder Structure**: Follow the same folder structure as the content layer in `/content`
3. **URL Format**: `https://docs-assets.setu.co/latest/{path-to-asset}`

### Example Asset Upload

If you have an image for the Account Aggregator consent object flow diagram:

- **Content path**: `/content/data/account-aggregator/consent-object.mdx`
- **Asset path**: `/data/account-aggregator/consent-object-flow.png`
- **Final URL**: `https://docs-assets.setu.co/latest/data/account-aggregator/consent-object-flow.png`

### Using Assets in Content

Reference assets in your MDX files using the `MainImage` component:

```mdx
<MainImage
src="https://docs-assets.setu.co/latest/data/account-aggregator/your-image.png"
alt="Description of your image"
/>
```

### Install VS code extensions

For easy syntax higlighting, `VSCode MDX`
Expand Down
2 changes: 1 addition & 1 deletion content/data/account-aggregator/api-integration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Setu’s AA APIs can be broken down into 3 broad flows—
- **Notifications flow**—To receive notifications from Setu for key events like approval/rejection of consent or be notified when FI data is ready to be fetched.

<img
src="https://storage.googleapis.com/strapi-assets/latest/consent_flow_1ffd2d17b6/consent_flow_1ffd2d17b6.png"
src="https://docs-assets.setu.co/latest/consent_flow_1ffd2d17b6/consent_flow_1ffd2d17b6.png"
style={{ width: "75%", margin: "2em auto" }}
/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ In the Account Aggregator (AA) ecosystem in India, the multi consent feature all

<br />

<img src="https://storage.googleapis.com/strapi-assets/latest/dual-consent-approval-page/dual-consent-approval-page.png" />
<img src="https://docs-assets.setu.co/latest/dual-consent-approval-page/dual-consent-approval-page.png" />

##### Features

Expand Down
4 changes: 2 additions & 2 deletions content/data/account-aggregator/api-integration/data-apis.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Below is a summary of the APIs you need to use to fetch FI data. These APIs are
- **Create Data Session**—Call this API against an `APPROVED` consent. This initiates data preparation at user's linked FIP accounts. You will be notified by Setu once the data is ready to be fetched.
- **Fetch FI data**—Fetch decrypted FI data with data session id.

![](https://storage.googleapis.com/strapi-assets/latest/data_session_56485983c0/data_session_56485983c0.png)
![](https://docs-assets.setu.co/latest/data_session_56485983c0/data_session_56485983c0.png)

<hr class="primary" />

Expand Down Expand Up @@ -453,7 +453,7 @@ Auto-Fetch data feature aims to absorb this complexity from the FIUs. With Auto-
- For one time consents, Auto-Fetch executes only once, right after the consent is approved.
- For recurring consents, Auto-Fetch can fetch data periodically. Set up the frequency of Auto-Fetch data in your configuration on the Bridge.

<img src="https://storage.googleapis.com/strapi-assets/latest/auto-fetch-workflow/auto-fetch-workflow.png" />
<img src="https://docs-assets.setu.co/latest/auto-fetch-workflow/auto-fetch-workflow.png" />

<Callout type="tip">
Auto-Fetch can be set up on Bridge, under Step 1 of your product
Expand Down
138 changes: 138 additions & 0 deletions content/data/account-aggregator/consent-object.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -155,4 +155,142 @@ The `context` parameter accepts key-value pairs to customize the consent flow. B

<br />

<hr class="primary" />

## FIP Selector Screen

### Overview

The FIP Selector Screen is a feature that helps improve AA journey success rates by intelligently routing users to the best performing Account Aggregator (AA) - FIP pair.

It enables FIUs to:

- Select the best-performing AA for a given FIP (instead of just the highest overall-performing AA).
- Provide explicit user consent for using PII (mobile number) to discover pre-existing handles on AAs.
- Reduce drop-offs on the account linking page by routing users to an AA where they already have a handle.
- Move away from latency-prone autodiscovery flows by adopting a faster, targeted manual discovery approach.

All of this enables better consent conversion across the funnel

### How it works

1. User lands on the FIP Selector Screen before the AA journey
2. FIU (or Setu module) shows available FIPs and takes explicit user consent to use PII data via a checkbox.
3. Setu uses this consent to:
- Discover pre-existing AA handles (using mobile number).
- Route requests to the best-performing AA for that specific FIP.
4. The improved routing logic kicks in, reducing drop-offs and boosting success rates.

### Flow diagram

<MainImage
src="https://docs-assets.setu.co/latest/consent_object_flow/fip-selector-flow.png"
alt="FIP Selector Screen flow diagram showing the consent object flow process"
/>

The FIP Selector Screen flow works as follows:

1. **User selects FIP** → User chooses their preferred Financial Information Provider
2. **Consent checkbox for discovery** → User provides explicit consent for PII usage
3. **Setu checks AA handles using mobile number** → System discovers pre-existing handles
4. **Best performing AA for FIP** → Intelligent routing based on performance data
5. **Consent creation via AA** → Consent is created through the optimal AA
6. **Account linking + Data fetch** → Final step of account connection and data retrieval

### How FIUs can enable this

#### ✅ Case 1: FIUs with an existing FIP Selector Screen

1. Add the consent checkbox to your FIP Selector Screen.
2. Share a screenshot of the updated screen with Setu.
3. For Finvu, also complete the AA Profile Discovery API Access Request form.
4. For OneMoney and Anumati, Setu will share your screenshot with the AA for approval.
5. Once confirmed, this data will be used in the AA routing logic.

#### ✅ Case 2: FIUs without an FIP Selector Screen

1. Setu will provide an opt-in module for the FIP Selector Screen.
2. No need to share screenshots - Setu will handle UI, routing, and compliance requirements end-to-end.
3. Setu will also assist with form submissions for AA sign-offs

### Tech implementation

#### Case 1: FIUs NOT passing Account Aggregator the context filter (Multi AA)

**Create Consent API Changes**

Request Payload:

<CodeBlockWithCopy language="json">
{`{
"vua": "9999999999" // Only mobile number (no AA suffix)
}`}
</CodeBlockWithCopy>

Response Payload:

<CodeBlockWithCopy language="json">
{`{
"vua": "9999999999", // Only mobile number
"status": "INITIATED", // Initial status (PENDING status sent via notification once actual consent is created with AA)
// ...other fields remain unchanged
}`}
</CodeBlockWithCopy>

**Key Changes:**
- Initial status is `INITIATED` instead of `PENDING`
- VUA contains only mobile number without AA suffix
- Actual `PENDING` status communicated via notification after consent creation

**Notification Handler Updates**

Once the user completes the bank selection, we'll create consent on the most optimal Account Aggregator (AA) for the selected Financial Information Provider (FIP) and then send the PENDING status.

Success Notification Payload:

<CodeBlockWithCopy language="json">
{`{
"data": {
"status": "PENDING", // New additional status
"vua": "9999999999@selectedAA" // Updated with selected AA
},
"success": true,
"type": "CONSENT_STATUS_UPDATE",
"error": null,
"consentId": "<<consentId>>",
"notificationId": "<<notificationId>>",
"timestamp": "2024-01-29T07:28:24.547Z"
}`}
</CodeBlockWithCopy>

Failure Notification Payload:

<CodeBlockWithCopy language="json">
{`{
"success": false,
"error": {
"code": "ConsentObjectCreationFailure",
"message": "Internal server error occurred while fetching consent details from upstream AA"
},
"data": null,
"consentId": "<<consentId>>",
"notificationId": "<<notificationId>>",
"timestamp": "2024-01-29T07:28:24.547Z",
"type": "CONSENT_STATUS_UPDATE"
}`}
</CodeBlockWithCopy>

**Required Implementation:**
- Add `CONSENT_STATUS_UPDATE` notification handler
- Update status management logic
- Handle VUA format changes

#### Case 2: FIUs passing specific AA in the context filter

✅ **No changes required from FIUs for Case 2**

This case works immediately with existing implementations as it's purely an optimization that doesn't affect consent status transitions.

<br />

<WasPageHelpful />
8 changes: 4 additions & 4 deletions content/data/account-aggregator/embed-setu-aa.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ The Account Aggregator ecosystem does not have a native method to truly auto dis
mobileSpan="12"
>
<Element as="div" shadow="soft" shape="rounded">
<img src="https://storage.googleapis.com/strapi-assets/latest/Lite-auto-discovery/Lite-auto-discovery.gif" />
<img src="https://docs-assets.setu.co/latest/Lite-auto-discovery/Lite-auto-discovery.gif" />
</Element>
<Text marginTop="none">
<b>Setu managed lite auto discovery</b>—<i>Setu FIP</i> is the
Expand All @@ -83,7 +83,7 @@ The Account Aggregator ecosystem does not have a native method to truly auto dis
mobileSpan="12"
>
<Element as="div" shadow="soft" shape="rounded">
<img src="https://storage.googleapis.com/strapi-assets/latest/Manual-discovery/Manual-discovery.gif" />
<img src="https://docs-assets.setu.co/latest/Manual-discovery/Manual-discovery.gif" />
</Element>
<Text>
<b>Setu managed manual discovery</b>—<i>Setu FIP</i> and{" "}
Expand All @@ -97,7 +97,7 @@ The Account Aggregator ecosystem does not have a native method to truly auto dis
mobileSpan="12"
>
<Element as="div" shadow="soft" shape="rounded">
<img src="https://storage.googleapis.com/strapi-assets/latest/Guided-auto-discovery/Guided-auto-discovery.gif" />
<img src="https://docs-assets.setu.co/latest/Guided-auto-discovery/Guided-auto-discovery.gif" />
</Element>
<Text>
<b>FIU managed guided auto discovery</b>—<i>Setu FIP</i> and{" "}
Expand Down Expand Up @@ -155,7 +155,7 @@ Please find the below integration steps to embed Setu’s consent manager screen

Redirect your customer to consent manager `url` received after Create Consent request. Once your customer has approved or rejected consent, this final screen in the consent manager will show a button that will redirect your customer to the `redirectUrl` provided by you in the Create consent API.<a href="https://staging.docs.setu.co/data/account-aggregator/api-integration/consent-flow#create-consent-api" target="_blank"></a>

![](https://storage.googleapis.com/strapi-assets/latest/Screenshot_2022_01_06_at_1_28_54_PM_d76f6260c9/Screenshot_2022_01_06_at_1_28_54_PM_d76f6260c9.png)
![](https://docs-assets.setu.co/latest/Screenshot_2022_01_06_at_1_28_54_PM_d76f6260c9/Screenshot_2022_01_06_at_1_28_54_PM_d76f6260c9.png)

<hr class="tertiary" />

Expand Down
2 changes: 1 addition & 1 deletion content/data/account-aggregator/multi-aa-gateway.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Setu’s multi-AA gateway is a powerful enhancement for Account Aggregator (AA)
This improves consent conversion, offers redundancy with multiple AA partners, and ensures higher performance across AA integrations.

<MainImage
src="https://storage.googleapis.com/strapi-assets/latest/AAGatewayImage/AAGatewayImage.png"
src="https://docs-assets.setu.co/latest/AAGatewayImage/AAGatewayImage.png"
alt="How multi-AA works image"
/>

Expand Down
2 changes: 1 addition & 1 deletion content/data/account-aggregator/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ _Note_—Setu’s AA gateway has introduced a powerful enhancement in the form o
For example, let’s say a lender wants to check the bank statements of a user to check their loan eligibility. Here’s how the AA handles it—

<MainImage
src="https://storage.googleapis.com/strapi-assets/latest/AA_webpage_infographic_e88a02182f/AA_webpage_infographic_e88a02182f.png"
src="https://docs-assets.setu.co/latest/AA_webpage_infographic_e88a02182f/AA_webpage_infographic_e88a02182f.png"
alt="How AA works infographic"
/>

Expand Down
10 changes: 5 additions & 5 deletions content/data/account-aggregator/quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ Try out our sample app built using Setu AA sandbox <a href="https://github.com/S

- Set up an FIU by providing basic details

<img src="https://storage.googleapis.com/strapi-assets/latest/AA-setup-FIU/AA-setup-FIU.gif" />
<img src="https://docs-assets.setu.co/latest/AA-setup-FIU/AA-setup-FIU.gif" />
<br />

- Create Account Aggreagator Data product
<img src="https://storage.googleapis.com/strapi-assets/latest/AA-create-data-product/AA-create-data-product.gif" />
<img src="https://docs-assets.setu.co/latest/AA-create-data-product/AA-create-data-product.gif" />
<br />

<hr class="tertiary" />
Expand All @@ -53,7 +53,7 @@ You can also enable developer specific features to reduce your integration effor
- Partial fetch
- Auto-Fetch data

<img src="https://storage.googleapis.com/strapi-assets/latest/AA-configure-product-optimised/AA-configure-product-optimised.gif" />
<img src="https://docs-assets.setu.co/latest/AA-configure-product-optimised/AA-configure-product-optimised.gif" />

<hr class="tertiary" />

Expand All @@ -80,15 +80,15 @@ You will be notified for two types of events—

You can read about notifications in detail <a href="/data/account-aggregator/api-integration/notifications" target="_blank">here</a>.

![](https://storage.googleapis.com/strapi-assets/latest/AA-callback-URL/AA-callback-URL.png)
![](https://docs-assets.setu.co/latest/AA-callback-URL/AA-callback-URL.png)

<hr class="tertiary" />

##### Test your product

Once all the above steps are complete, you will find `x-product-instance-id`, `x-client_id` and `x-client-secret` in Step 2. You're now ready to make API calls using Postman on sandbox or integrate with sandbox FIU APIs.

![](https://storage.googleapis.com/strapi-assets/latest/AA-test-your-product/AA-test-your-product.png)
![](https://docs-assets.setu.co/latest/AA-test-your-product/AA-test-your-product.png)

<hr class="primary" />

Expand Down
2 changes: 1 addition & 1 deletion content/data/account-aggregator/v1/api-integration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Setu’s AA APIs can be broken down into 3 broad flows—
- **Notifications flow**—To receive notifications from Setu for key events like approval/rejection of consent or be notified when FI data is ready to be fetched.

<img
src="https://storage.googleapis.com/strapi-assets/latest/consent_flow_1ffd2d17b6/consent_flow_1ffd2d17b6.png"
src="https://docs-assets.setu.co/latest/consent_flow_1ffd2d17b6/consent_flow_1ffd2d17b6.png"
style={{ width: "75%", margin: "2em auto" }}
/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Below is a summary of the APIs you need to use to fetch FI data. These APIs are
- **Create Data Session**—Call this API against an `APPROVED` consent. This initiates data preparation at user's linked FIP accounts. You will be notified by Setu once the data is ready to be fetched.
- **Fetch FI data**—Fetch decrypted FI data with data session id.

![](https://storage.googleapis.com/strapi-assets/latest/data_session_56485983c0/data_session_56485983c0.png)
![](https://docs-assets.setu.co/latest/data_session_56485983c0/data_session_56485983c0.png)

<hr class="primary" />

Expand Down
2 changes: 1 addition & 1 deletion content/data/account-aggregator/v1/embed-setu-aa.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Please find the below integration steps to embed Setu’s consent manager screen

Redirect your customer to consent manager `url` received after Create Consent request. Once your customer has approved or rejected consent, this final screen in the consent manager will show a button that will redirect your customer to the `redirectUrl` provided by you in the Create consent API.<a href="https://staging.docs.setu.co/data/account-aggregator/api-integration/consent-flow#create-consent-api" target="_blank"></a>

![](https://storage.googleapis.com/strapi-assets/latest/Screenshot_2022_01_06_at_1_28_54_PM_d76f6260c9/Screenshot_2022_01_06_at_1_28_54_PM_d76f6260c9.png)
![](https://docs-assets.setu.co/latest/Screenshot_2022_01_06_at_1_28_54_PM_d76f6260c9/Screenshot_2022_01_06_at_1_28_54_PM_d76f6260c9.png)

### React Native

Expand Down
2 changes: 1 addition & 1 deletion content/data/account-aggregator/v1/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Account aggregators(AAs) are <a href="https://www.rbi.org.in/Scripts/bs_viewcont
For example, let’s say a lender wants to check the bank statements of a user to check their loan eligibility. Here’s how the AA handles it—

<MainImage
src="https://storage.googleapis.com/strapi-assets/latest/AA_webpage_infographic_e88a02182f/AA_webpage_infographic_e88a02182f.png"
src="https://docs-assets.setu.co/latest/AA_webpage_infographic_e88a02182f/AA_webpage_infographic_e88a02182f.png"
alt="AA web page"
/>

Expand Down
2 changes: 1 addition & 1 deletion content/data/account-aggregator/v1/postman.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Postman collection comes wth default test credentials. Set the following variabl
- Set `client_secret` to the FIU app client secret received on Bridge.
- Set `mobile_number` to the user's mobile number that will be used for testing.

![](https://storage.googleapis.com/strapi-assets/latest/Screenshot_2022-02-21_at_12.55.07_PM/Screenshot_2022-02-21_at_12.55.07_PM.png)
![](https://docs-assets.setu.co/latest/Screenshot_2022-02-21_at_12.55.07_PM/Screenshot_2022-02-21_at_12.55.07_PM.png)

<Callout type="warning">
Remove any new lines at the end after pasting values, to avoid errors.
Expand Down
2 changes: 1 addition & 1 deletion content/data/account-aggregator/v1/quickstart-v1.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ The following flowchart gives a quick snapshot of how the overall API flow works

<Row>
<Portion desktopSpan="18">
<img src="https://storage.googleapis.com/strapi-assets/latest/AA_API_flowchart_80809027f6/AA_API_flowchart_80809027f6.png" />
<img src="https://docs-assets.setu.co/latest/AA_API_flowchart_80809027f6/AA_API_flowchart_80809027f6.png" />
</Portion>
</Row>

Expand Down
Loading