# AA API v2.0.0

Please refer the FIU API Spec (2.0.0) <https://api.rebit.org.in/spec/aa> in the ReBIT to implement the responses for different cases. The APIs below only has success response.

### Create JWS and Sign API Request

The API calls to AA ReBIT api's should have **x-jws-signature** in the header which is a detached JWS of the body.

[Here ](/fiu-module/jws-signature.md)you can find how to create JWS keys for creating the **x-jws-signature** and refer [AA Commons Documentation](https://sahamati.gitbook.io/aa-common-service/token-service/access-token-logistics) for how to sign the request that you send to AA and verify the request that you receive from AA.

### Consent Creation

You need to raise a consent to Saafe using /Consent API

<mark style="color:green;">`POST`</mark> `https://sandbox.saafe.in/api/v2/Consent`

#### Request

Header

<table><thead><tr><th width="193">Key</th><th width="556.3333333333333">Value</th></tr></thead><tbody><tr><td>x-jws-signature</td><td>string</td></tr><tr><td>client_api_key</td><td>string</td></tr></tbody></table>

Body

```json
{
    "ver": "2.0.0",
    "timestamp": "2024-05-09T15:23:55.384Z",
    "txnid": "644d2aff-e43b-4bb9-9047-498cbb9896d2",
    "ConsentDetail": {
        "consentStart": "2024-05-09T15:23:55.384Z",
        "consentExpiry": "2025-01-01T00:00:00.000Z",
        "consentMode": "STORE",
        "fetchType": "PERIODIC",
        "consentTypes": [
            "PROFILE",
            "TRANSACTIONS",
            "SUMMARY"
        ],
        "fiTypes": [
            "DEPOSIT"
        ],
        "DataConsumer": {
            "id": "central-trust-uat", // Your FIU Entity ID
            "type": "FIU"
        },
        "Customer": {
            "Identifiers": [
                {
                    "type": "MOBILE",
                    "value": "9944612241" //Customer Phone Number
                }
            ]
        },
        "Purpose": {
            "code": "101",
            "refUri": "https://api.rebit.org.in/aa/purpose/101.xml",
            "text": "To provide your asset insights",
            "Category": {
                "type": "Personal Finance"
            }
        },
        "FIDataRange": {
            "from": "2023-01-01T00:00:00.000Z",
            "to": "2025-01-01T00:00:00.000Z"
        },
        "DataLife": {
            "unit": "YEAR",
            "value": 3
        },
        "Frequency": {
            "unit": "DAY",
            "value": 10
        }
    }
}
```

#### Response 200

```json
{
    "ver": "2.0.0",
    "timestamp": "2024-05-09T15:40:00.669Z",
    "txnid": "019fe3f7-edd6-45ac-9f29-24fad3e504ca",
    "Customer": {
        "id": "9944612241@dashboard-aa-preprod"
    },
    "ConsentHandle": "465d1f35-f716-484f-a38e-30797d97b525"
}
```

### Consent Handle Status

<mark style="color:green;">`POST`</mark> `https://sandbox.saafe.in/api/v2/Consent/handle`

#### Request

Header

<table><thead><tr><th width="193">Key</th><th width="556.3333333333333">Value</th></tr></thead><tbody><tr><td>x-jws-signature</td><td>string</td></tr><tr><td>client_api_key</td><td>string</td></tr></tbody></table>

Body

```json
{
    "ver": "2.0.0",
    "timestamp": "2024-05-09T15:41:49.974Z",
    "txnid": "e188d16d-cbb9-4898-ab3b-ab6b57195e8b",
    "ConsentHandle": "465d1f35-f716-484f-a38e-30797d97b525"
}
```

#### Response 200

```json
{
    "ver": "2.0.0",
    "timestamp": "2024-05-09T15:41:53.171Z",
    "txnid": "e188d16d-cbb9-4898-ab3b-ab6b57195e8b",
    "ConsentHandle": "465d1f35-f716-484f-a38e-30797d97b525",
    "ConsentStatus": {
        "id": "5278f924-2d15-4726-a974-2465cbf48d5c",
        "status": "APPROVED"
    }
}
```

### Consent Fetch

<mark style="color:green;">`POST`</mark> `https://sandbox.saafe.in/api/v2/Consent/fetch`

signedConsent is the Consent artefact signed using JWS which contains the list of Accounts that the user have approved the consent for.

#### Request

Header

<table><thead><tr><th width="193">Key</th><th width="556.3333333333333">Value</th></tr></thead><tbody><tr><td>x-jws-signature</td><td>string</td></tr><tr><td>client_api_key</td><td>string</td></tr></tbody></table>

Body

```json
{
    "ver": "2.0.0",
    "timestamp": "2024-05-09T15:44:59.012Z",
    "txnid": "fdc66dda-03e3-4df1-b8a2-22744a21180f",
    "consentId": "5278f924-2d15-4726-a974-2465cbf48d5c"
}
```

#### Response 200

{% code overflow="wrap" %}

```json
{
    "ver": "2.0.0",
    "txnid": "fdc66dda-03e3-4df1-b8a2-22744a21180f",
    "consentId": "5278f924-2d15-4726-a974-2465cbf48d5c",
    "status": "ACTIVE",
    "createTimestamp": "2024-05-09T15:45:02.284Z",
    "signedConsent": "eyJhbGciOiJSUzI1NiIsImtpZCI6ImI1YTE0NjhiLTFiZDQtNGJlNi1iNTA1LWJmMmM4ZDRkZjA1NiIsImI2NCI6dHJ1ZSwiY3JpdCI6WyJiNjQiXX0.eyJjb25zZW50U3RhcnQiOiIyMDI0LTA1LTA5VDE1OjM5OjU2Ljk4M1oiLCJjb25zZW50RXhwaXJ5IjoiMjAyNS0wMS0wMVQwMDowMDowMC4wMDBaIiwiY29uc2VudE1vZGUiOiJTVE9SRSIsImZldGNoVHlwZSI6IlBFUklPRElDIiwiY29uc2VudFR5cGVzIjpbIlBST0ZJTEUiLCJUUkFOU0FDVElPTlMiLCJTVU1NQVJZIl0sImZpVHlwZXMiOlsiREVQT1NJVCJdLCJEYXRhQ29uc3VtZXIiOnsiaWQiOiJjZW50cmFsLXRydXN0LXVhdCIsInR5cGUiOiJGSVUifSwiQ3VzdG9tZXIiOnsiaWQiOiI5OTQ0NjEyMjQxQGRhc2hib2FyZC1hYS1wcmVwcm9kIn0sIlB1cnBvc2UiOnsiY29kZSI6IjEwMSIsInJlZlVyaSI6Imh0dHBzOi8vYXBpLnJlYml0Lm9yZy5pbi9hYS9wdXJwb3NlLzEwMS54bWwiLCJ0ZXh0IjoiVG8gcHJvdmlkZSB5b3VyIGFzc2V0IGluc2lnaHRzIiwiQ2F0ZWdvcnkiOnsidHlwZSI6IlBlcnNvbmFsIEZpbmFuY2UifX0sIkZJRGF0YVJhbmdlIjp7ImZyb20iOiIyMDIzLTAxLTAxVDAwOjAwOjAwLjAwMFoiLCJ0byI6IjIwMjUtMDEtMDFUMDA6MDA6MDAuMDAwWiJ9LCJEYXRhTGlmZSI6eyJ1bml0IjoiWUVBUiIsInZhbHVlIjozfSwiRnJlcXVlbmN5Ijp7InVuaXQiOiJEQVkiLCJ2YWx1ZSI6MTB9LCJEYXRhRmlsdGVyIjpudWxsLCJEYXRhUHJvdmlkZXIiOnsiaWQiOiJkYXNoYm9hcmQtYWEtcHJlcHJvZCIsInR5cGUiOiJBQSJ9LCJBY2NvdW50cyI6W3siZmlUeXBlIjoiREVQT1NJVCIsImZpcElkIjoiZGhhbmFnYXJiYW5rIiwiYWNjVHlwZSI6IlNBVklOR1MiLCJsaW5rUmVmTnVtYmVyIjoiODI2OTc1YWEtZWJkMS00OTk0LWE3MDAtYTYyNTM1Mjk3NzBmIiwibWFza2VkQWNjTnVtYmVyIjoiWFhYWFgwMTQyIn1dfQ.GTx9lqyavTIDSUVWcua_37D7SxTEASa688YnQYcg61bWSIc_teQGw-Te9APy63EtvA7Hc27B-gtTWIN2zFfexAKVNoF7tKL7E118IScc6F7ToPlPxNFALliRCxnAKKljYhYoIuAYuUcZDiER3okssjk4S_YMVjuLIeexzy84pVH2Y_OZwCJVXiE-mK87lcnv1M5Q1S3WCX1OxU_M5QsfKVnPmjTg9JfvIHO8rLSYS7zRXy-A5fiOEdQKAhM1KOhnMF653fWuMTqL2FoAgenUdnodZgNyFkwcuuCv--7e6tghFUEK2G1tbVHKxJK_X1aIJ2STGXIgS9oLpvOyuFxgNw",
    "ConsentUse": {
        "logUri": "https://uat.saafe.in/",
        "count": 0,
        "lastUseDateTime": "2024-05-09T15:40:45.707Z"
    }
}
```

{% endcode %}

### Data Request

<mark style="color:green;">`POST`</mark> `https://sandbox.saafe.in/api/v2/FI/request`

**digitalSignature** is the signature part of the **signedConsent** which needs to sent to the AA to make the FI Request.

**KeyMaterial** Contains the cryptographic parameters that are required to perform End-to-End encryption for sharing the financial information between the producer and the consumer in a secure manner. Ref [End-to-end Encryption](/fiu-module/end-to-end-encryption.md) on implementing the ECDH

#### Request

Header

<table><thead><tr><th width="193">Key</th><th width="556.3333333333333">Value</th></tr></thead><tbody><tr><td>x-jws-signature</td><td>string</td></tr><tr><td>client_api_key</td><td>string</td></tr></tbody></table>

Body

{% code overflow="wrap" %}

```json
{
    "ver": "2.0.0",
    "timestamp": "2024-05-09T18:29:21.158Z",
    "txnid": "c5e74a42-36c4-4f7b-b85d-4e59871a3f5e",
    "FIDataRange": {
        "from": "2024-05-05T00:00:00.000Z",
        "to": "2024-05-07T00:00:00.000Z"
    },
    "Consent": {
        "id": "5278f924-2d15-4726-a974-2465cbf48d5c",
        "digitalSignature": "GTx9lqyavTIDSUVWcua_37D7SxTEASa688YnQYcg61bWSIc_teQGw-Te9APy63EtvA7Hc27B-gtTWIN2zFfexAKVNoF7tKL7E118IScc6F7ToPlPxNFALliRCxnAKKljYhYoIuAYuUcZDiER3okssjk4S_YMVjuLIeexzy84pVH2Y_OZwCJVXiE-mK87lcnv1M5Q1S3WCX1OxU_M5QsfKVnPmjTg9JfvIHO8rLSYS7zRXy-A5fiOEdQKAhM1KOhnMF653fWuMTqL2FoAgenUdnodZgNyFkwcuuCv--7e6tghFUEK2G1tbVHKxJK_X1aIJ2STGXIgS9oLpvOyuFxgNw"
    },
    "KeyMaterial": {
        "cryptoAlg": "ECDH",
        "curve": "Curve25519",
        "params": "",
        "DHPublicKey": {
            "expiry": "2024-05-10T18:26:49.031Z",
            "Parameters": "",
            "KeyValue": "-----BEGIN PUBLIC KEY-----MIIBMTCB6gYHKoZIzj0CATCB3gIBATArBgcqhkjOPQEBAiB/////////////////////////////////////////7TBEBCAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqYSRShRAQge0Je0Je0Je0Je0Je0Je0Je0Je0Je0Je0JgtenHcQyGQEQQQqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq0kWiCuGaG4oIa04B7dLHdI0UySPU1+bXxhsinpxaJ+ztPZAiAQAAAAAAAAAAAAAAAAAAAAFN753qL3nNZYEmMaXPXT7QIBCANCAARrS/CNE3TmgabxB9KupD1FN4L4weI7cqx+zjkqZcJEfDY22ar/e8t9tYWKcH1T0Q23h0adHoiIKipIZr2O5j3r-----END PUBLIC KEY-----"
        },
        "Nonce": "JRsHMYjdy8qENzydIf3iYFks+XgaZeckzsVjl9n1Xxs="
    }
}
```

{% endcode %}

#### Response 200

```json
{
    "ver": "2.0.0",
    "timestamp": "2024-05-09T18:29:24.478Z",
    "txnid": "c5e74a42-36c4-4f7b-b85d-4e59871a3f5e",
    "consentId": "5278f924-2d15-4726-a974-2465cbf48d5c",
    "sessionId": "8c582ed7-b114-4b66-adb3-81e6bd430708"
}
```

### Data Fetch

<mark style="color:green;">`POST`</mark> `https://sandbox.saafe.in/api/v2/FI/fetch`

#### Request

Header

<table><thead><tr><th width="193">Key</th><th width="556.3333333333333">Value</th></tr></thead><tbody><tr><td>x-jws-signature</td><td>string</td></tr><tr><td>client_api_key</td><td>string</td></tr></tbody></table>

Body

```json
{
    "ver": "2.0.0",
    "timestamp": "2024-05-09T15:44:59.012Z",
    "txnid": "3dd436f8-0747-4a8f-9001-375e419430be",
    "sessionId": "8c582ed7-b114-4b66-adb3-81e6bd430708",
    "fipId": "FIP-1",
    "linkRefNumber": [
        {
            "id": "XXXX-XXXX-XXXX"
        }
    ]
}
```

#### Response 200

{% code overflow="wrap" %}

```json
{
    "ver": "2.0.0",
    "timestamp": "2024-05-09T20:13:05.687Z",
    "txnid": "c5e74a42-36c4-4f7b-b85d-4e59871a3f5e",
    "FI": [
        {
            "fipID": "dhanagarbank",
            "data": [
                {
                    "linkRefNumber": "826975aa-ebd1-4994-a700-a6253529770f",
                    "maskedAccNumber": "XXXXX0142",
                    "encryptedFI": "tb5RzcVSgfJHEEv5MKEknFG676iQJq9k4EchUhdu4/WM2K1C5S68KmPVz3lR3NaqwWGdZfJ5HcHVZARW/apOeyTEbVE+KKC1XVmjLZlwAOVE7bHizF77kiGj7T/mL4nSgWZIHSYEVnDNru7wd2Tk0xCQtmKEqLq2yNhAV6fT06YO8DOqwxcE96bEQDqHxeqGtkXSTOUQbXgWGMWxds/Pc4+wsRzhw7Qb7/wI7oEtMY1ccvGrMTUQy1ufjdsIN+iY+oi63QWr/wKY5hOzA7PJmEaULLM7HGeKa2rUhP8zH9Xge7QpiOF09AJm+cVgyLwb443bxSln+eu1gIWvEHkGb1Sx4kKrB1LxEc+Lr3IUANZMLSFGz/rL8a6vTjVQBKrIN9O/wmPb0wKYMQzdl+pPYNxtVtYVG0tT+FpgN8ktGRxxn69vRHTDG8biQjtKb6ZH00R+z4WLMdFKVcd8YAIRELy1JbgXHP7TaNYfTI0YDeh6vajBMgvgsegmOMi/iU+a5KsNOR+TZLpvl5UGAQaZt5aiSYkvMziWj57ziRx8EBLgM4QymT9bLTSSJ29S/hqTjueeiTrT3jV3jmgqhA6tnuQbHZBPyWWyK59A45jB926pE8WU8VYqotpq3B3QVCU6dFA7kWofCyoeIEm16Ez2QpPwfZkuR+9DLFLytYj8RUAw3PH5nhVqXXymAJoQ6WxbksofQXQbbFP81JIDDGc0u6jBU9LrsUwLexZvaZ7A9TGLdoMY42cjupATeN3aPygqOeXl1i1PxJ5RO/ar9DiPXirZoseztwgEJyZY02yO+k6EDhx+Wsc49HgOw5xY/SEW0dt4UrBecQkZO/0pBbhonQT07p4XUVbIGCM7unbOh8OQatBgcwxpTpN7sDsVTq9/nXH2YuGL94D4NvqS9eZHZKQ9fr92P+QVCecgS4a1sKVsHo2wqNs70D0am00tCmtvM4v1zcvVPGPVM5rXXulhT49XlOZJ9cPLfOpiuwasix2OBCduABy19D/VoftsJpZkWjbxl1/rIHisLNMbD7ZUfO/Sm79g0txx4MqS+GQDnQNlzEJjUL9tGiZEQFyGX190ZGi+JQXWDx1HYc4I2Q6MS3ULDU5B5n2QDNXydhNXugx6xebZLhUBMQky87CyUe5LYZDSZZr56t3UdYfoVih0OaJvK/p1XnVz5qkvlXIRJdEJYc8/Cd2Na9rXg8mAeQbBa1q9o1lvR3VoWQPfIuFf9WRIq7as68E6RVbIvE3KYnJGZYDigkpAbmPNxRaH4svX48HYKYWZpRAXg6i/00MDCZlGstlspWCSkUPiEhw+RHCHG5cMHrDxGzAlBBav4eiVcTJB0HPskmuhI208E3q9PG45iLu9exaoyiOtEfsrkMjOlkJtFyOPnRIFJIUAIuRD7s9fDrLA4z5QosBD+8R3++XO1Cvb0MmjYy6Muhkj794tVoOGoh3MGGTcyHh+WJUWlwBdyRPRFfIY"
                }
            ],
            "KeyMaterial": {
                "cryptoAlg": "ECDH",
                "curve": "Curve25519",
                "params": "None",
                "DHPublicKey": {
                    "expiry": "2024-05-10T18:29:24.838Z",
                    "Parameters": "None",
                    "KeyValue": "-----BEGIN PUBLIC KEY-----MIIBMTCB6gYHKoZIzj0CATCB3gIBATArBgcqhkjOPQEBAiB/////////////////////////////////////////7TBEBCAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqYSRShRAQge0Je0Je0Je0Je0Je0Je0Je0Je0Je0Je0JgtenHcQyGQEQQQqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq0kWiCuGaG4oIa04B7dLHdI0UySPU1+bXxhsinpxaJ+ztPZAiAQAAAAAAAAAAAAAAAAAAAAFN753qL3nNZYEmMaXPXT7QIBCANCAAQhZyUnHx0W3GtbtP0j+c9vVr5+LJIqm7usd8eS8COqm2hd/PSnqe0kqKrXOY3UrfaGgBfgpK6CW/TwrtFODV7R-----END PUBLIC KEY-----"
                },
                "Nonce": "fQOZ2qAptqq8kR0AVQ2d31PCs80V5JXxiHztW9UjBV0="
            }
        }
    ]
}
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.saafe.in/fiu-module/aa-api-v2.0.0.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
