diff --git a/api-references/data/account-aggregator.json b/api-references/data/account-aggregator.json index db25103f..72a90546 100644 --- a/api-references/data/account-aggregator.json +++ b/api-references/data/account-aggregator.json @@ -84,7 +84,26 @@ }, "/v2/fips": { "get": { + "parameters": [ + { + "in": "query", + "name": "status", + "required": false, + "description": "Status of the FIP by which the FIPs are to be filtered", + "schema": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "TEMPORARILY_INACTIVE" + ] + } + } + ], "responses": { + "400": { + "$ref": "#/components/responses/BAD_REQUEST" + }, "200": { "description": "OK", "content": { @@ -98,9 +117,43 @@ }, "summary": "Get FIP list", "description": "This API is used to get the list of FIPs.", - "tags": ["AA participants APIs"] + "tags": [ + "AA participants APIs" + ] } }, + "/v2/fips/{fip_id}": { + "get": { + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FIPResponse" + } + } + } + } + }, + "summary": "Get FIP by ID", + "description": "This API is used to get a FIP by its ID.", + "tags": [ + "AA participants APIs" + ] + }, + "parameters": [ + { + "in": "path", + "name": "fip_id", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ] + }, "/v2/consents": { "post": { "parameters": [ diff --git a/content/data/account-aggregator/api-integration/fip-apis.mdx b/content/data/account-aggregator/api-integration/fip-apis.mdx index fad7e2bf..c7f4b66d 100644 --- a/content/data/account-aggregator/api-integration/fip-apis.mdx +++ b/content/data/account-aggregator/api-integration/fip-apis.mdx @@ -106,7 +106,7 @@ Below is the list of statuses for FIPs that you will see in a typical GET FIP Li - TEMPORARILY INACTIVE + TEMPORARILY_INACTIVE This is an FIP that has been disabled for breaching SLIs on @@ -115,7 +115,7 @@ Below is the list of statuses for FIPs that you will see in a typical GET FIP Li However, this is a temporary status and will be moved to ACTIVE status once their performance has improved. Do not redirect your customers to the consent flow when an FIP status is INACTIVE or - TEMPORARILY INACTIVE as that will mean their consents and/or data + TEMPORARILY_INACTIVE as that will mean their consents and/or data fetches are likely to fail. @@ -148,6 +148,15 @@ Below is the list of statuses for FIPs that you will see in a typical GET FIP Li "institutionType": "BANK", "status": "ACTIVE" }, + { + "name": "Federal Bank", + "fipId": "FDRLFIP", + "fiTypes": [ + "DEPOSIT" + ], + "institutionType": "BANK", + "status": "ACTIVE" + }, { "name": "IndusInd Bank Ltd.", "fipId": "fiplive@indusind", @@ -157,7 +166,7 @@ Below is the list of statuses for FIPs that you will see in a typical GET FIP Li "RECURRING_DEPOSIT" ], "institutionType": "BANK", - "status": "ACTIVE" + "status": "TEMPORARILY_INACTIVE" }, { "name": "HDFC Bank", @@ -195,7 +204,132 @@ Below is the list of statuses for FIPs that you will see in a typical GET FIP Li ), }, ]} - > + /> + + + +### Get FIP by ID API + +###### Request + +{` GET /v2/fips/:id `} + + + SUCCESS, + content: ( + <> +
Response
+ + {`{ + "data": [ + { + "name": "HDFC Bank", + "fipId": "HDFC-FIP", + "fiTypes": [ + "DEPOSIT" + ], + "institutionType": "BANK", + "status": "INACTIVE" + } + ], + "traceId": "1-66ff79c7-46029a1f1aaa59083489fd46" +} +`} + + + ), + }, + { + key: "2", + label: FAIL, + content: ( + <> +
Response
+ + {`{ + "errorMsg": "string", + "errorCode": "string", + "txnid": "string", + "timestamp": "2023-03-30T08:20:31.367Z", + "ver": "string" +}`} + + + ), + }, + ]} + /> +
+
+ +### Get FIPs by Status API + +###### Request + +{` GET /v2/fips?status=ACTIVE `} + + + SUCCESS, + content: ( + <> +
Response
+ + {`{ + "data": [ + { + "name": "Axis Bank", + "fipId": "AXIS001", + "fiTypes": [ + "DEPOSIT" + ], + "institutionType": "BANK", + "status": "ACTIVE" + }, + { + "name": "Federal Bank", + "fipId": "FDRLFIP", + "fiTypes": [ + "DEPOSIT" + ], + "institutionType": "BANK", + "status": "ACTIVE" + } + ], + "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" +}`} + + + ), + }, + ]} + />
diff --git a/content/data/account-aggregator/api-integration/notifications.mdx b/content/data/account-aggregator/api-integration/notifications.mdx index 5d3322d7..e2b92f60 100644 --- a/content/data/account-aggregator/api-integration/notifications.mdx +++ b/content/data/account-aggregator/api-integration/notifications.mdx @@ -65,8 +65,19 @@ Setu will post this payload to your notification endpoint whenever there is a ch In cases where the user **cancels** the consent before login, or **rejects** the consent after login, an error code and error message will be included in the notification payload. - - {`{ + + + + UserCancelled, + content: ( + <> +
Response
+ + {`{ "success": false, "error": { "code": "UserCancelled", @@ -78,7 +89,61 @@ In cases where the user **cancels** the consent before login, or **rejects** the "timestamp": "2024-01-29T07:28:24.547Z", "type": "CONSENT_STATUS_UPDATE" }`} - +
+ + ), + }, + { + key: "2", + label: UserRejected, + content: ( + <> +
Response
+ + {`{ + "success": false, + "error": { + "code": "UserRejected", + "message": "reject_not_want_to_share" + }, + "data": null, + "consentId": "72cb6cb8-c248-4b88-9282-18262fbdfbc2", + "notificationId": "66d5fef5-d5f3-48f6-afe7-1e82ac952ecb", + "timestamp": "2024-01-29T07:28:24.547Z", + "type": "CONSENT_STATUS_UPDATE" +}`} + + + ), + }, + { + key: "3", + label: Error while fetching consent from upstream AA, + content: ( + <> +
Response
+ + {`{ + "success": false, + "error": { + "code": "ConsentObjectCreationFailure", + "message": "Internal server error occurred while fetching consent details from upstream AA" + } + "data": null, + "consentId": "72cb6cb8-c248-4b88-9282-18262fbdfbc2", + "notificationId": "66d5fef5-d5f3-48f6-afe7-1e82ac952ecb", + "timestamp": "2024-01-29T07:28:24.547Z", + "type": "CONSENT_STATUS_UPDATE" +}`} + + + ), + }, + ]} + /> + + + ###### Consent error codes Mapping of error code, error message and it's meaning: @@ -92,6 +157,9 @@ Mapping of error code, error message and it's meaning: | `UserRejected` | `reject_not_want_to_share` | I do not want to share my data with FIU | | `UserRejected` | `reject_accounts_not_found` | I could not find my accounts | | `UserRejected` | `reject_other` | For other reasons | +| `NoFIPAccountsDiscovered` | `no_fip_accounts_found` |No fip accounts discovered | +| `FIPDenied` | `FIP_DENIED_CONSENT` | FIP denied your consent | +
diff --git a/content/data/account-aggregator/fi-data-types.mdx b/content/data/account-aggregator/fi-data-types.mdx index aa8f6a32..5cf97191 100644 --- a/content/data/account-aggregator/fi-data-types.mdx +++ b/content/data/account-aggregator/fi-data-types.mdx @@ -16,7 +16,16 @@ The schema across all FI types adheres to a set of defined components: ### Testing with Setu FIP -Setu FIP to help you get access to rich mock data for FI type **Deposit** as per the Account Aggregator specifications. More FI types will be available soon. +Setu FIP helps you get access to rich mock data for various FI types as per the Account Aggregator specifications. The currently supported FI types are: + +| **Category** | **FI Types** | +| ------------- | ------------ | +| Bank | DEPOSIT, TERM_DEPOSIT, RECURRING_DEPOSIT | +| Investment | MUTUAL_FUNDS, ETF, EQUITIES, NPS | +| Insurance | INSURANCE_POLICIES | +| GST | GSTR1_3B | + +More FI types will be available soon. ###### **How to test?**