> 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                                                                   |
| metricCollectionId                        | string         | Unique identifier for this metric collection window (e.g. "1769760600-REQ")                                   |
| fromDateTime                              | string         | Start of the 10-minute reporting window (ISO 8601, UTC). E.g. 2026-09-30T04:30:00Z                            |
| toDateTime                                | string         | End of the 10-minute reporting window (ISO 8601, UTC). E.g. 2026-09-30T04:40:00Z                              |
| duration                                  | int            | Duration in seconds of the reporting window (600 for 10 minutes)                                              |
| aaId                                      | string         | Entity ID of the Account Aggregator                                                                           |
| enums.metricTypes                         | array\[string] | Enumerated list of metric type codes included in this payload (see Metric Types table below)                  |
| enums.responseTimeFields                  | array\[string] | Enumerated list of response time percentile labels: \["p50", "p95", "p99", "p100"]                            |
| enums.countFields                         | array\[string] | Enumerated list of count field names, positionally aligned to the counts array (see Count Fields table below) |
| 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, sfireqfif, 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")                                                  |
| fips\[].metrics\[].noOfAccounts           | int            | Number of accounts included in the fetch (only for type "fif")                                                |
| fips\[].metrics\[].avgLatencyPerKB        | string         | Average latency per KB of data fetched, in seconds (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)                                  |
| sfireqfif | fiReq200OkToFISuccFetchTimeDiff\_sfireqfif | Time difference from FI request 200 OK to successful FI fetch        |
| 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:

| Field Name                       | Description                                                               |
| -------------------------------- | ------------------------------------------------------------------------- |
| apiTotalSentCnt                  | Total number of requests sent                                             |
| api200OKRecdCnt                  | HTTP 200 OK responses received                                            |
| api400BadReqRecdCnt              | HTTP 400 Bad Request responses received                                   |
| api401UnauthorizedReqRecdCnt     | HTTP 401 Unauthorized responses received                                  |
| api403ForbiddenReqRecdCnt        | HTTP 403 Forbidden responses received                                     |
| api404NotFoundRecdCnt            | HTTP 404 Not Found responses received                                     |
| api409IdempotencyErrorReqRecdCnt | HTTP 409 Idempotency Error responses received                             |
| api412PreConditionFailedRecdCnt  | HTTP 412 Precondition Failed responses received                           |
| api429TooManyReqsRecdCnt         | HTTP 429 Too Many Requests (rate limited) responses received              |
| api4xxOtherErrorsRecdCnt         | All other 4xx error responses received                                    |
| api500InternalServerErrorRecdCnt | HTTP 500 Internal Server Error responses received                         |
| api501NotImplementedRecdCnt      | HTTP 501 Not Implemented responses received                               |
| api502BadGatewayRecdCnt          | HTTP 502 Bad Gateway responses received                                   |
| api503ServiceUnavailableRecdCnt  | HTTP 503 Service Unavailable responses received                           |
| api504GatewayTimeoutRecdCnt      | HTTP 504 Gateway Timeout responses received                               |
| api5xxOtherErrorsRecdCnt         | All other 5xx error responses received                                    |
| apiOtherErrorsRecdCnt            | Responses received with any other/non-standard status code                |
| 2xxRecdCnt                       | Total 2xx-class responses received (rollup)                               |
| 3xxRecdCnt                       | Total 3xx-class responses received (rollup)                               |
| 429RecdCnt                       | Total 429 responses received (rollup)                                     |
| 4xxRecdCnt                       | Total 4xx-class responses received (rollup)                               |
| 5xxRecdCnt                       | Total 5xx-class responses received (rollup)                               |
| otherRecdCnt                     | Total responses received with any other/non-standard status code (rollup) |

#### Sample Payload

```json
{
  "agentVersion": "1.2",
  "jsonVersion": "1.0.0",
  "tag": "req-fipMetrics-aa",
  "txnId": "b3f1c2a4-1234-5678-9abc-def012345678",
  "metricCollectionId": "1769760600-REQ",
  "fromDateTime": "2026-09-30T04:30:00Z",
  "toDateTime": "2026-09-30T04:40:00Z",
  "duration": 600,
  "aaId": "sample-aa-handle",
  "enums": {
    "metricTypes": [
      "accountsDiscoverSent_adisc",
      "accountsLinkSent_alink",
      "accountsDelinkSent_adlink",
      "accountsLinkVerifySent_alinkv",
      "consentSent_cns",
      "consentNotificationSent_cnot",
      "fiReqSent_fireq",
      "fiReq200OkToFISuccFetchTimeDiff_sfireqfif",
      "fiFetchSent_fif",
      "heartBeatSent_hbt"
    ],
    "responseTimeFields": ["p50", "p95", "p99", "p100"],
    "countFields": [
      "apiTotalSentCnt",
      "api200OKRecdCnt", "api400BadReqRecdCnt", "api401UnauthorizedReqRecdCnt",
      "api403ForbiddenReqRecdCnt", "api404NotFoundRecdCnt", "api409IdempotencyErrorReqRecdCnt",
      "api412PreConditionFailedRecdCnt", "api429TooManyReqsRecdCnt", "api4xxOtherErrorsRecdCnt",
      "api500InternalServerErrorRecdCnt", "api501NotImplementedRecdCnt", "api502BadGatewayRecdCnt",
      "api503ServiceUnavailableRecdCnt", "api504GatewayTimeoutRecdCnt", "api5xxOtherErrorsRecdCnt",
      "apiOtherErrorsRecdCnt",
      "2xxRecdCnt", "3xxRecdCnt", "429RecdCnt", "4xxRecdCnt", "5xxRecdCnt", "otherRecdCnt"
    ]
  },
  "fips": [
    {
      "fipId": "SAMPLE-FIP-01",
      "metrics": [
        { "type": "adisc", "pxx": [120, 340, 480, 900],
          "counts": [50,45,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,1,0] },
        { "type": "fireq", "pxx": [200, 500, 700, 1200],
          "counts": [300,280,5,0,0,0,0,0,0,0,2,0,0,0,0,0,0,10,0,0,3,0,0] },
        { "type": "sfireqfif", "pxx": [500, 1200, 2000, 5000] },
        { "type": "fif", "pxx": [800, 1500, 2200, 4000],
          "counts": [280,270,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,3,0,0],
          "sumOfSizeOfDataPackets": "10485760",
          "noOfAccounts": 270,
          "avgLatencyPerKB": "0.04" }
      ]
    }
  ]
}
```


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
