diff --git a/api-references/data/account-aggregator.json b/api-references/data/account-aggregator.json
index cd43b6df..b10f2abe 100644
--- a/api-references/data/account-aggregator.json
+++ b/api-references/data/account-aggregator.json
@@ -105,6 +105,15 @@
"TEMPORARILY_INACTIVE"
]
}
+ },
+ {
+ "in": "query",
+ "name": "expanded",
+ "required": false,
+ "description": "When set to true, returns detailed health metrics from AAs including event-level latency percentiles and success rates",
+ "schema": {
+ "type": "boolean"
+ }
}
],
"responses": {
@@ -140,6 +149,15 @@
"schema": {
"type": "string"
}
+ },
+ {
+ "in": "query",
+ "name": "expanded",
+ "required": false,
+ "description": "When set to true, returns detailed health metrics from AAs including event-level latency percentiles and success rates",
+ "schema": {
+ "type": "boolean"
+ }
}
],
"responses": {
@@ -4206,6 +4224,16 @@
"items": {
"$ref": "#/components/schemas/AASuccessRate"
}
+ },
+ "aaWiseHealthMetrics": {
+ "type": "object",
+ "description": "AA wise detailed health metrics including event-level latency and success rates. Available only when expanded=true query parameter is used.",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AAHealthMetric"
+ }
+ }
}
},
"required": [
@@ -4230,6 +4258,59 @@
"type": "number"
}
}
+ },
+ "AAHealthMetric": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "enum": [
+ "DISCOVERY",
+ "CONSENT_REQUEST",
+ "LINKING",
+ "LINKING_CONFIRM",
+ "FI_NOTIFICATION",
+ "FI_REQUEST",
+ "DATA_FETCH",
+ "UNLINKING"
+ ],
+ "description": "Name of the AA flow event"
+ },
+ "metrics_as_of": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true,
+ "description": "Timestamp when the metrics were last updated"
+ },
+ "latency_avg": {
+ "type": "number",
+ "description": "Average response time in milliseconds"
+ },
+ "latency_p50": {
+ "type": "number",
+ "description": "50th percentile (median) response time in milliseconds"
+ },
+ "latency_p95": {
+ "type": "number",
+ "description": "95th percentile response time in milliseconds"
+ },
+ "latency_p99": {
+ "type": "number",
+ "description": "99th percentile response time in milliseconds"
+ },
+ "success_rate": {
+ "type": "number",
+ "description": "Success rate percentage for this event"
+ }
+ },
+ "required": [
+ "eventName",
+ "latency_avg",
+ "latency_p50",
+ "latency_p95",
+ "latency_p99",
+ "success_rate"
+ ]
}
},
"responses": {
diff --git a/content/data/account-aggregator/api-integration/fip-apis.mdx b/content/data/account-aggregator/api-integration/fip-apis.mdx
index 232d5d92..6b092d5c 100644
--- a/content/data/account-aggregator/api-integration/fip-apis.mdx
+++ b/content/data/account-aggregator/api-integration/fip-apis.mdx
@@ -15,6 +15,8 @@ The GET Active FIP List API is the new version of our API to call the list of Ac
- Multi-AA Support: Now tracking OneMoney, Finvu, Anumati, Saafe, and more!
- Dual-Metric System: Combined data fetch + consent approval rates
- Provides real-time success rates to help FIUs make data-driven decisions about creating consents, allowing them to route users to alternate data collection methods when FIP performance is poor.
+- Get detailed event-level performance metrics directly from AAs (Finvu, Anumati) including latency percentiles and success rates for each step in the AA flow
+- Access P50, P95, P99 latency metrics and success rates for specific events like Discovery, Consent Request, Data Fetch, etc.
#### Details Shared in the FIP List API
@@ -97,6 +99,14 @@ These key details can be used by you for purposes like - offering a list of FIPs
If consent approval rate data is unavailable (Minimum 20 opened consent needed): System will use only data fetch success rate
+
+
+ aaWiseHealthMetrics
+ |
+
+ Available only with expanded=true query parameter. Provides detailed event-level metrics from each AA including latency percentiles (P50, P95, P99) and success rates for specific AA flow events like Discovery, Consent Request, Data Fetch, etc. Data is sourced directly from AA health APIs and updated every 10 minutes.
+ |
+
#### Categories of FIP Status
@@ -148,6 +158,117 @@ Below is the list of statuses for FIPs that you will see in a typical GET FIP Li
+### Enhanced Health Metrics provided by AAs
+
+By adding the `expanded=true` query parameter to any FIP API endpoint, you get access to detailed health metrics provided directly by Account Aggregators. This gives you:
+
+**Business Value:**
+- **Granular Performance Monitoring**: Track performance at each step of the AA flow
+- **Latency Analysis**: Understand response times with P50, P95, P99 percentiles
+- **AA-Specific Insights**: Compare performance across different AAs (Finvu, Anumati)
+- **Real-time Decision Making**: Route users based on current AA and event-level performance
+
+**When to Use:**
+- Building advanced FIP selection logic
+- Monitoring AA performance trends
+- Debugging integration issues
+- Creating performance dashboards
+- Making data-driven routing decisions
+
+**Data Freshness:** Health metrics are updated every 10 minutes by polling AA endpoints directly.
+
+#### AA Flow Event Types
+
+When using `expanded=true`, you get metrics for these Account Aggregator flow events:
+
+
+
+ | Event Name |
+ Description |
+ Business Impact |
+
+
+ DISCOVERY |
+ Account discovery process when user searches for accounts at the FIP |
+ High latency affects user experience during account selection |
+
+
+ CONSENT_REQUEST |
+ Consent creation and submission to the FIP |
+ Failures here prevent users from proceeding with consent flow |
+
+
+ LINKING |
+ Account linking process after user provides credentials |
+ Critical for successful account connection |
+
+
+ LINKING_CONFIRM |
+ Confirmation of successful account linking |
+ Affects user confidence in the linking process |
+
+
+ FI_NOTIFICATION |
+ Notification sent by FIP about data request |
+ Low success rates indicate FIP communication issues |
+
+
+ FI_REQUEST |
+ Actual data request sent to the FIP |
+ High latency delays data availability to users |
+
+
+ DATA_FETCH |
+ Retrieval of financial data from the FIP |
+ Core metric for data availability and speed |
+
+
+ UNLINKING |
+ Account unlinking/disconnection process |
+ Important for account management features |
+
+
+
+#### Health Metrics Explained
+
+
+
+ | Metric |
+ Description |
+ Use Case |
+
+
+ latency_avg |
+ Average response time in milliseconds |
+ Overall performance indicator |
+
+
+ latency_p50 |
+ 50th percentile (median) response time |
+ Typical user experience |
+
+
+ latency_p95 |
+ 95th percentile response time |
+ Performance under load |
+
+
+ latency_p99 |
+ 99th percentile response time |
+ Worst-case performance scenarios |
+
+
+ success_rate |
+ Percentage of successful operations |
+ Reliability indicator |
+
+
+ metrics_as_of |
+ Timestamp of when metrics were last updated |
+ Data freshness verification |
+
+
+
### FIP List API
###### Request
@@ -492,6 +613,206 @@ Below is the list of statuses for FIPs that you will see in a typical GET FIP Li
+### Enhanced FIP List API with Health Metrics
+
+###### Request
+
+{` GET /v2/fips?expanded=true `}
+
+
+
+ SUCCESS,
+ content: (
+ <>
+ Response
+
+ {`{
+ "data": [
+ {
+ "name": "Axis Bank",
+ "fipId": "AXIS001",
+ "fiTypes": [
+ "DEPOSIT"
+ ],
+ "institutionType": "BANK",
+ "status": "ACTIVE",
+ "consentConversionRate": 69.88,
+ "dataFetchSuccessRate": 54.63,
+ "aaWiseSuccessRate": [
+ {
+ "aa": "onemoney",
+ "dataFetchSuccessRate": 54.63,
+ "consentConversionRate": 69.88
+ }
+ ],
+ "aaWiseHealthMetrics": {
+ "finvu": [
+ {
+ "eventName": "DISCOVERY",
+ "metrics_as_of": "2025-08-19T03:46:00.000+00:00",
+ "latency_avg": 174,
+ "latency_p50": 119,
+ "latency_p95": 460,
+ "latency_p99": 634,
+ "success_rate": 100.0
+ },
+ {
+ "eventName": "CONSENT_REQUEST",
+ "metrics_as_of": "2025-08-19T03:46:00.000+00:00",
+ "latency_avg": 52,
+ "latency_p50": 45,
+ "latency_p95": 68,
+ "latency_p99": 68,
+ "success_rate": 100.0
+ },
+ {
+ "eventName": "LINKING",
+ "metrics_as_of": "2025-08-19T03:46:00.000+00:00",
+ "latency_avg": 404,
+ "latency_p50": 383,
+ "latency_p95": 405,
+ "latency_p99": 405,
+ "success_rate": 100.0
+ },
+ {
+ "eventName": "LINKING_CONFIRM",
+ "metrics_as_of": "2025-08-19T03:46:00.000+00:00",
+ "latency_avg": 72,
+ "latency_p50": 66,
+ "latency_p95": 67,
+ "latency_p99": 67,
+ "success_rate": 100.0
+ },
+ {
+ "eventName": "FI_NOTIFICATION",
+ "metrics_as_of": "2025-08-19T03:46:00.000+00:00",
+ "latency_avg": 5,
+ "latency_p50": 5,
+ "latency_p95": 6,
+ "latency_p99": 7,
+ "success_rate": 89.11
+ },
+ {
+ "eventName": "FI_REQUEST",
+ "metrics_as_of": "2025-08-19T03:46:00.000+00:00",
+ "latency_avg": 66,
+ "latency_p50": 59,
+ "latency_p95": 105,
+ "latency_p99": 167,
+ "success_rate": 100.0
+ },
+ {
+ "eventName": "DATA_FETCH",
+ "metrics_as_of": "2025-08-19T03:46:00.000+00:00",
+ "latency_avg": 38,
+ "latency_p50": 32,
+ "latency_p95": 65,
+ "latency_p99": 93,
+ "success_rate": 100.0
+ },
+ {
+ "eventName": "UNLINKING",
+ "metrics_as_of": null,
+ "latency_avg": 0,
+ "latency_p50": 0,
+ "latency_p95": 0,
+ "latency_p99": 0,
+ "success_rate": 0.0
+ }
+ ],
+ "anumati": [
+ {
+ "eventName": "DISCOVERY",
+ "metrics_as_of": "2025-08-19T03:32:31.653+00:00",
+ "latency_avg": 203.21848739495798,
+ "latency_p50": 74.0,
+ "latency_p95": 74.242,
+ "latency_p99": 74.3364,
+ "success_rate": 100.0
+ },
+ {
+ "eventName": "CONSENT_REQUEST",
+ "metrics_as_of": "2025-08-19T03:32:31.653+00:00",
+ "latency_avg": 50.94230769230769,
+ "latency_p50": 34.255,
+ "latency_p95": 34.4845,
+ "latency_p99": 34.5049,
+ "success_rate": 100.0
+ },
+ {
+ "eventName": "DATA_FETCH",
+ "metrics_as_of": "2025-08-19T03:32:31.653+00:00",
+ "latency_avg": 46.38053544367739,
+ "latency_p50": 23.0,
+ "latency_p95": 23.0,
+ "latency_p99": 23.0,
+ "success_rate": 100.0
+ },
+ {
+ "eventName": "FI_REQUEST",
+ "metrics_as_of": "2025-08-19T03:32:31.653+00:00",
+ "latency_avg": 83.22635476270617,
+ "latency_p50": 49.0,
+ "latency_p95": 50.0,
+ "latency_p99": 50.0,
+ "success_rate": 100.0
+ },
+ {
+ "eventName": "LINKING",
+ "metrics_as_of": "2025-08-19T03:32:31.653+00:00",
+ "latency_avg": 375.38461538461536,
+ "latency_p50": 340.36,
+ "latency_p95": 340.684,
+ "latency_p99": 340.7128,
+ "success_rate": 100.0
+ },
+ {
+ "eventName": "LINKING_CONFIRM",
+ "metrics_as_of": "2025-08-19T03:32:31.653+00:00",
+ "latency_avg": 98.22222222222223,
+ "latency_p50": 31.28,
+ "latency_p95": 32.432,
+ "latency_p99": 32.5344,
+ "success_rate": 100.0
+ }
+ ]
+ }
+ }
+ ],
+ "traceId": "1-64313583-255e3a0705424652664584b2"
+}`}
+
+ >
+ ),
+ },
+ {
+ key: "2",
+ label: FAIL,
+ content: (
+ <>
+ Response
+
+ {`{
+ "errorMsg": "string",
+ "errorCode": "string",
+ "txnid": "string",
+ "timestamp": "2023-03-30T08:20:31.367Z",
+ "ver": "string"
+}`}
+
+ >
+ ),
+ },
+ ]}
+ />
+
+
+
+
##### Using Get FIP List for routing end-users to AA Flows
FIUs can use the FIP List API to route their end users to the AA flow or non-AA flows (Like PDF uploads, net banking integrations or alternative data collection modes)if the FIP is temporarily deactivated if the provider is not part of the list of active FIPs.