Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
77c277c
feat: add Signal IQ product documentation.
siddu1819 Jul 16, 2026
a42fb15
docs: simplify Signal IQ AA trigger and enable BYO FI Data.
siddu1819 Jul 17, 2026
58657da
chore: regenerate menuItems for Signal IQ sidebar.
siddu1819 Jul 17, 2026
da9e2e3
fix: redirect Signal IQ root path to overview.
siddu1819 Jul 17, 2026
a12d2e6
docs: redesign Signal IQ overview solves section with cards.
siddu1819 Jul 21, 2026
6156d9f
docs: clarify Signal IQ onboarding and AA flow start steps.
siddu1819 Jul 21, 2026
9301d33
docs: add spacing after Signal IQ tables before following text.
siddu1819 Jul 22, 2026
f49ecc4
docs: add Signal IQ output APIs and clarify webhook vs fetch model.
siddu1819 Jul 22, 2026
685a7c8
fix: redirect Signal IQ API reference to JSON page and rebuild menuIt…
siddu1819 Jul 22, 2026
8f3a763
fix: rename Signal IQ API docs off api-reference path.
siddu1819 Jul 22, 2026
48d99bc
docs: use OpenAPI for Signal IQ JSON, Excel and XML fetch APIs.
siddu1819 Jul 22, 2026
7af3567
fix: keep Signal IQ API reference landing page reachable.
siddu1819 Jul 22, 2026
045ad32
docs: match Insights API reference sidebar for Signal IQ.
siddu1819 Jul 22, 2026
16a0315
fix: restore Signal IQ API reference like Insights Overview sidebar.
siddu1819 Jul 22, 2026
83fd8c2
fix: use Insights-style Signal IQ API reference with Overview sidebar.
siddu1819 Jul 22, 2026
d0c8a05
fix: break Signal IQ API reference redirect loop on staging.
siddu1819 Jul 22, 2026
8afa507
fix: serve Signal IQ API reference on a fresh URL.
siddu1819 Jul 22, 2026
4406ff9
fix: restore Signal IQ API reference as MDX overview with OpenAPI chi…
siddu1819 Jul 22, 2026
b2b8b93
revert: restore working siq-api OpenAPI reference for Signal IQ.
siddu1819 Jul 22, 2026
5bfc105
fix: improve Signal IQ API reference Overview formatting.
siddu1819 Jul 22, 2026
4875072
fix: move Signal IQ API reference to a fresh URL.
siddu1819 Jul 22, 2026
87535e1
docs: trim Signal IQ API Overview by removing Base URLs section.
siddu1819 Jul 22, 2026
cf4fedf
docs: update Signal IQ report API examples and drop XML.
siddu1819 Jul 22, 2026
24c11f7
docs: shrink Signal IQ JSON success example for page performance.
siddu1819 Jul 22, 2026
a0db4f4
docs: use compact Signal IQ JSON success example.
siddu1819 Jul 22, 2026
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
462 changes: 462 additions & 0 deletions api-references/data/signal-iq.json

Large diffs are not rendered by default.

665 changes: 665 additions & 0 deletions api-references/data/signal-iq/report-apis.json

Large diffs are not rendered by default.

212 changes: 212 additions & 0 deletions content/data/signal-iq/aa-flow.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
---
sidebar_title: AA Flow
page_title: Signal IQ - AA Flow
order: 1
visible_in_sidebar: true
---

## AA Flow

The AA Flow is for clients who use both Setu's <a href="/data/account-aggregator/overview" target="_blank">Account Aggregator</a> and <a href="/data/insights/overview" target="_blank">Setu Insights</a>. Once a customer's financial (FI) data is ready on the AA side, Signal IQ automatically takes over and drives everything through to insights and outputs.

<Callout type="highlight">
You do not call any Signal IQ API to start this flow. The handoff from Account Aggregator to Signal IQ happens automatically. Your integration points are the webhook endpoint where you receive status updates, and the output APIs you call with the `reportId` after success.
</Callout>

<br />

This page explains what happens inside the flow, the exact notifications you will receive, and the output schemas you integrate against.

<hr class="primary" />

### How the flow starts

1. You create an Account Aggregator consent request and redirect your customer to the consent URL. Your customer reviews and approves the request on the AA screens. See Setu's <a href="/data/account-aggregator/api-integration/consent-flow" target="_blank">Account Aggregator consent flow</a> for how to do this.
2. Once the AA data session starts, Signal IQ is triggered automatically for that session.
3. From that handoff point onward, Signal IQ owns the orchestration end to end - processing, progress notifications, insights generation and output coordination.

You do not need to call any Signal IQ API to start this flow. The trigger is handled on the AA flow.

<hr class="primary" />

### What happens inside

Once the flow is triggered, Signal IQ moves through these lifecycle stages. You are kept informed at each important step via webhook (see [Notifications](#notifications-you-receive) below).

1. **Consent lifecycle** - consent status changes are forwarded to you.
2. **Data fetch** - FI data is retrieved (or its failure is reported).
3. **Data block creation** - the fetched data is prepared for analysis inside Setu Insights.
4. **Insights generation started** - the insights job is accepted.
5. **Insights generation success / failure** - the report is produced, or the failure is reported.
6. **Report availability** - the `reportId` is handed to you for output retrieval.

<Callout type="note">
Reliability is handled for you - transient errors are retried automatically, duplicate AA triggers for the same session are de-duplicated (so data is never processed twice), and internal failures are recovered without data loss. You only ever see the clean, final outcome for each stage.
</Callout>

<hr class="primary" />

### Notifications you receive

Every notification is delivered as an HTTP `POST` to your configured webhook URL, and is wrapped in the same envelope -

<CodeBlockWithCopy language="json">
{`{
"type": "AUTO_DI_STATUS",
"data": {
"status": "<STAGE_STATUS>"
}
}`}
</CodeBlockWithCopy>

The `data.status` field tells you which stage was reached. The correlation field in this flow is `consentId`.

#### Full catalogue

| # | Stage | `data.status` |
|---|-------|---------------|
| 1 | Consent lifecycle | `CONSENT_ACTIVE` / `CONSENT_PENDING` / `CONSENT_REJECTED` / `CONSENT_REVOKED` / `CONSENT_PAUSED` / `CONSENT_EXPIRED` |
| 2 | AA data fetch failed | `FI_DATA_FETCH_FAILED` |
| 3 | Data block created | `FI_DATA_BLOCK_CREATION_SUCCESS` / `FI_DATA_BLOCK_CREATION_FAILED` |
| 4 | Insights job started | `INSIGHTS_CREATION_STARTED` |
| 5 | Insights done | `INSIGHTS_CREATION_SUCCESSFUL` |
| 6 | Insights failed | `INSIGHTS_CREATION_FAILED` |

<br />

Treat `INSIGHTS_CREATION_SUCCESSFUL` as terminal success, and `FI_DATA_FETCH_FAILED`, `FI_DATA_BLOCK_CREATION_FAILED` and `INSIGHTS_CREATION_FAILED` as terminal failures.

#### Examples of every schema

<Tabs
tabs={[
{
key: "consent",
label: "Consent lifecycle",
content: (
<CodeBlockWithCopy language="json">
{`{
"type": "AUTO_DI_STATUS",
"data": {
"status": "CONSENT_ACTIVE",
"consentId": "9dee34fe-8449-4f80-914e-b9725f3585cd"
}
}`}
</CodeBlockWithCopy>
),
},
{
key: "fetch-failed",
label: "Data fetch failed",
content: (
<CodeBlockWithCopy language="json">
{`{
"type": "AUTO_DI_STATUS",
"data": {
"status": "FI_DATA_FETCH_FAILED",
"consentId": "9dee34fe-8449-4f80-914e-b9725f3585cd",
"errorCode": "FIP_TIMEOUT",
"errorMessage": "Bank did not respond"
}
}`}
</CodeBlockWithCopy>
),
},
{
key: "data-block",
label: "Data block created",
content: (
<CodeBlockWithCopy language="json">
{`{
"type": "AUTO_DI_STATUS",
"data": {
"status": "FI_DATA_BLOCK_CREATION_SUCCESS",
"consentId": "9dee34fe-8449-4f80-914e-b9725f3585cd",
"dataIds": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"]
}
}`}
</CodeBlockWithCopy>
),
},
{
key: "insights-started",
label: "Insights started",
content: (
<CodeBlockWithCopy language="json">
{`{
"type": "AUTO_DI_STATUS",
"data": {
"status": "INSIGHTS_CREATION_STARTED",
"consentId": "9dee34fe-8449-4f80-914e-b9725f3585cd",
"reportId": "7f3e4d5c-1111-2222-3333-444455556666",
"datablockId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}`}
</CodeBlockWithCopy>
),
},
{
key: "insights-success",
label: "Insights successful",
content: (
<CodeBlockWithCopy language="json">
{`{
"type": "AUTO_DI_STATUS",
"data": {
"status": "INSIGHTS_CREATION_SUCCESSFUL",
"consentId": "9dee34fe-8449-4f80-914e-b9725f3585cd",
"reportId": "7f3e4d5c-1111-2222-3333-444455556666",
"datablockId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}`}
</CodeBlockWithCopy>
),
},
{
key: "insights-failed",
label: "Insights failed",
content: (
<CodeBlockWithCopy language="json">
{`{
"type": "AUTO_DI_STATUS",
"data": {
"status": "INSIGHTS_CREATION_FAILED",
"consentId": "9dee34fe-8449-4f80-914e-b9725f3585cd",
"reportId": "7f3e4d5c-1111-2222-3333-444455556666",
"datablockId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}`}
</CodeBlockWithCopy>
),
},
]}
/>

#### Notifications are configurable

Step-by-step notifications can be tailored to you. A client who does not want intermediate updates can have them switched off entirely - the pipeline runs identically, just silently - or can choose to receive only specific stages. This is set up during onboarding.

#### Webhook delivery

When Signal IQ posts a notification to your webhook -

| Your webhook responds | Behaviour |
|-----------------------|-----------|
| `2xx` | Delivered - the flow continues |
| `4xx` | Treated as a permanent configuration/auth problem - not retried |
| `5xx` / timeout / network error | Retried automatically (up to 3 attempts) |

<hr class="primary" />

### Getting your outputs

On `INSIGHTS_CREATION_SUCCESSFUL`, use the `reportId` from the webhook to fetch your configured outputs. See the <a href="/data/signal-iq/report-apis/api-reference" target="_blank">API reference</a> for how to fetch results.
<NextPage
info={{
title: "PDF Flow",
description: "See how Signal IQ works when your journey starts from a bank-statement PDF.",
slug: "/data/signal-iq/pdf-flow",
}}
/>

<WasPageHelpful />
55 changes: 55 additions & 0 deletions content/data/signal-iq/bring-your-own-fi-data.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
sidebar_title: Bring Your Own FI Data
page_title: Signal IQ - Bring Your Own FI Data
order: 4
visible_in_sidebar: true
---

## Bring Your Own FI Data

This flow is for clients who already have financial (FI) data - for example, from their own account aggregator, or from any third-party source - and want to run it through Signal IQ without going through Setu's Account Aggregator or the PDF path.

<Callout type="highlight">
You send your FI data to Signal IQ via API. From that point on, Signal IQ owns orchestration, stage notifications, insights generation and output availability via `reportId` - the same experience as every other flow.
</Callout>

You get the same Signal IQ experience - orchestration, stage notifications, configurable outputs and polling - even when the data does not originate from one of Signal IQ's built-in input channels.

<hr class="primary" />

### How it works

1. **You send your FI data** directly to Signal IQ via API.
2. Signal IQ runs the same orchestration model as every other flow -
- **validate** the incoming data,
- **transform** it to the standard format if required (see the note below),
- **ingest** it into Setu Insights,
- **generate insights**,
- **send stage notifications** to your webhook, and
- **hand you a `reportId`** so you can fetch configured outputs via API.

<hr class="primary" />

### A note on data format

Setu Insights expects FI data in the standard <a href="https://api.rebit.org.in/" target="_blank">ReBIT</a>-aligned shape (the same schema used across the Account Aggregator ecosystem).

If your payload is not already in that shape, a client-specific transformation step can be added to map your schema into the structure Setu Insights accepts - so you are never blocked from using Signal IQ with your existing data sources.

<Callout type="note">
ReBIT (Reserve Bank Information Technology) publishes the technical standards for the Account Aggregator framework, including the schema in which financial data is represented.
</Callout>

<hr class="primary" />

### Notifications

The lifecycle notifications for this flow follow the same model as the other flows - you receive stage updates on your webhook, and a terminal success notification carries the `reportId`. Notification schemas match the <a href="/data/signal-iq/pdf-flow#notifications-you-receive" target="_blank">PDF Flow notifications</a>.

<hr class="primary" />

### Getting your outputs

On `INSIGHTS_CREATION_SUCCESSFUL`, use the `reportId` from the webhook to fetch your configured outputs. See the <a href="/data/signal-iq/report-apis/api-reference" target="_blank">API reference</a> for how to fetch results.

<WasPageHelpful />
Loading