> For the complete documentation index, see [llms.txt](https://docs.saafe.in/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.saafe.in/fiu-module/aa-api-v2.0.0.md).

# AA API v2.0.0

AA Endpoints are the list of endpoints that you will be calling from your FIU system to create consent and fetch data from AA.

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 %}
