> For the complete documentation index, see [llms.txt](https://developer.sahamati.org.in/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.sahamati.org.in/sahamatinet-agent-sna/sla/api-reference/sla-request-payload.md).

# SLA Request Payload

SNA pushes a Request metrics payload to the Sahamati endpoint every 10 minutes. This payload captures all API calls sent by the AA to each FIP, including counts and response time percentiles. The tag for this payload is req-fipMetrics-aa.

### Schema Reference

| Field                                     | Type        | Description                                                                                            |
| ----------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------ |
| agentVersion                              | string      | Version of the SNA agent generating this payload                                                       |
| jsonVersion                               | string      | Version of the JSON schema (e.g. "1.0.0")                                                              |
| tag                                       | string      | "req-fipMetrics-aa" identifies this as a request-metrics payload from AA perspective of FIP            |
| txnId                                     | string      | Unique transaction ID for this push request                                                            |
| fromDateTime                              | string      | Start of the 10-minute reporting window (ISO 8601, UTC). E.g. 2023-11-08T15:30:00Z                     |
| toDateTime                                | string      | End of the 10-minute reporting window (ISO 8601, UTC). E.g. 2023-11-08T15:40:00Z                       |
| duration                                  | int         | Duration in seconds of the reporting window (600 for 10 minutes)                                       |
| aaId                                      | string      | Entity ID of the Account Aggregator                                                                    |
| fips\[].fipId                             | string      | Entity ID of the FIP for which metrics are reported in this block                                      |
| fips\[].metrics\[].type                   | string      | Metric type code (e.g. adisc, alink, adlink, alinkv, cns, cnot, fireq, sfireqnot, ffireqnot, fif, hbt) |
| fips\[].metrics\[].pxx                    | array\[int] | Response time percentiles in milliseconds: \[p50, p95, p99, p100]                                      |
| fips\[].metrics\[].counts                 | array\[int] | Count values aligned to countFields enum in the payload                                                |
| fips\[].metrics\[].sumOfSizeOfDataPackets | string      | Sum of encrypted FI/fetch packet sizes (only for type "fif")                                           |

### Metric Types (metricTypes enum)

| Code      | Full Name                                  | Description                                                                                              |
| --------- | ------------------------------------------ | -------------------------------------------------------------------------------------------------------- |
| adisc     | accountsDiscoverSent\_adisc                | Account discovery requests sent to FIP (POST /Accounts/discover)                                         |
| alink     | accountsLinkSent\_alink                    | Account link requests sent (POST /Accounts/link)                                                         |
| adlink    | accountsDelinkSent\_adlink                 | Account delink requests sent (POST /Accounts/delink)                                                     |
| alinkv    | accountsLinkVerifySent\_alinkv             | Account link verification requests sent (POST /Accounts/link/verify)                                     |
| cns       | consentSent\_cns                           | Consent requests sent to FIP (POST /Consent)                                                             |
| cnot      | consentNotificationSent\_cnot              | Consent notification messages sent (POST /Consent/Notification)                                          |
| fireq     | fiReqSent\_fireq                           | FI requests sent (POST /FI/request)                                                                      |
| sfireqnot | fiReq200OkToFISuccNotifTimeDiff\_sfireqnot | Time difference from FI request 200 OK to success notification (at least one account READY or DELIVERED) |
| ffireqnot | fiReq200OkToFIFailNotifTimeDiff\_ffireqnot | Time difference from FI request 200 OK to failure notification (all accounts DENIED or TIMEOUT)          |
| fif       | fiFetchSent\_fif                           | FI fetch requests sent (POST /FI/Fetch)                                                                  |
| hbt       | heartBeatSent\_hbt                         | Heartbeat messages sent to check FIP connectivity (GET /Heartbeat)                                       |

### Count Fields (countFields enum)

The counts array in each metric entry is positionally aligned to the following fields in this exact order:

| Position | Field Name                    | Description                                                  |
| -------- | ----------------------------- | ------------------------------------------------------------ |
| 1        | totalSentCnt                  | Total number of requests sent                                |
| 2        | 200OKRecdCnt                  | HTTP 200 OK responses received                               |
| 3        | 400BadReqRecdCnt              | HTTP 400 Bad Request responses received                      |
| 4        | 401UnauthorizedReqRecdCnt     | HTTP 401 Unauthorized responses received                     |
| 5        | 403ForbiddenReqRecdCnt        | HTTP 403 Forbidden responses received                        |
| 6        | 404NotFoundRecdCnt            | HTTP 404 Not Found responses received                        |
| 7        | 409IdempotencyErrorReqRecdCnt | HTTP 409 Idempotency Error responses received                |
| 8        | 412Pre-ConditionFailedRecdCnt | HTTP 412 Precondition Failed responses received              |
| 9        | 429TooManyReqsRecdCnt         | HTTP 429 Too Many Requests (rate limited) responses received |
| 10       | 4xxOtherErrorsRecdCnt         | All other 4xx error responses received                       |
| 11       | 500InternalServerErrorRecdCnt | HTTP 500 Internal Server Error responses received            |
| 12       | 502BadGatewayRecdCnt          | HTTP 502 Bad Gateway responses received                      |
| 13       | 503ServiceUnavailableRecdCnt  | HTTP 503 Service Unavailable responses received              |
| 14       | 504GatewayTimeoutRecdCnt      | HTTP 504 Gateway Timeout responses received                  |
| 15       | 5xxOtherErrorsRecdCnt         | All other 5xx error responses received                       |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://developer.sahamati.org.in/sahamatinet-agent-sna/sla/api-reference/sla-request-payload.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
