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 NameDescriptionBusiness Impact
DISCOVERYAccount discovery process when user searches for accounts at the FIPHigh latency affects user experience during account selection
CONSENT_REQUESTConsent creation and submission to the FIPFailures here prevent users from proceeding with consent flow
LINKINGAccount linking process after user provides credentialsCritical for successful account connection
LINKING_CONFIRMConfirmation of successful account linkingAffects user confidence in the linking process
FI_NOTIFICATIONNotification sent by FIP about data requestLow success rates indicate FIP communication issues
FI_REQUESTActual data request sent to the FIPHigh latency delays data availability to users
DATA_FETCHRetrieval of financial data from the FIPCore metric for data availability and speed
UNLINKINGAccount unlinking/disconnection processImportant for account management features
+ +#### Health Metrics Explained + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MetricDescriptionUse Case
latency_avgAverage response time in millisecondsOverall performance indicator
latency_p5050th percentile (median) response timeTypical user experience
latency_p9595th percentile response timePerformance under load
latency_p9999th percentile response timeWorst-case performance scenarios
success_ratePercentage of successful operationsReliability indicator
metrics_as_ofTimestamp of when metrics were last updatedData 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.