> ## Documentation Index
> Fetch the complete documentation index at: https://developer.moneyone.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Track Status

> How the per-account checks object appears in the webhook and status polling responses.

When checks are enabled, every account returned while you track a journey carries a
`checks` object describing the outcome of each check for that account. This is layered
on top of the AA + PDF flow — the rest of the payload is unchanged.

<Info>
  This section builds on the AA + PDF flow. The `checks` object appears on each AA account (under a consent) and on each PDF account. See [Overview](./overview) for the `checks` object shape and field reference, and [AA + PDF → Track Status](../aa-pdf/track-status) for the full payloads (including in-iframe UI events).
</Info>

<Tabs>
  <Tab title="Webhook (Recommended)">
    The terminal webhook is pushed when the journey completes. With checks enabled, each account — whether sourced from AA or from a PDF statement — includes a `checks` object under `checks.indicators[]`.

    In the example below, AA delivered the data so the PDF step is `SKIPPED`. The same check (`MIN_SALARY_15000`) is evaluated across accounts: the first AA account fails it (salary `12000`) and a second AA account passes it (salary `40000`). A consent may also have no `checks` object when no checks apply to it.

    ```json theme={null}
    {
      "timestamp": "2026-03-31T08:02:45.111480334Z",
      "transactionID": "ad277c38-ca13-49b0-befd-38343e221e6b",
      "eventType": "JOURNEY_COMPLETE",
      "eventStatus": "SUCCESS",
      "accountID": "ACC-78291",
      "eventData": [
        {
          "type": "AA",
          "status": "SUCCESS",
          "consents": [
            {
              "consentID": "6934dcbb-ee3f-4ea0-85dc-b564c9e5e1d2",
              "consentHandle": "7af9f26a-097c-4974-9e63-164a2b4c598e",
              "consentStatus": "CONSENT_APPROVED",
              "productID": "HOME2001",
              "fetchType": "PERIODIC",
              "fiFetch": "MANUAL",
              "dataFetchStatus": "SUCCESS",
              "accounts": [
                {
                  "linkRefNumber": "9bd5e87a-7916-49ff-8ee1-969375f4f5e3",
                  "fiStatus": "DELIVERED",
                  "fipID": "finsharebank",
                  "maskedAccountNumber": "XXXXXXXX1100",
                  "checks": {
                    "indicators": [
                      {
                        "check_id": "MIN_SALARY_15000",
                        "metadata": {
                          "salary": "12000"
                        },
                        "result": "FAILED"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "consentID": "b1742f0c-3e9a-4d52-8c6b-1ae5d97f2034",
              "consentHandle": "c5e8a1b2-6f74-4390-a1d8-90b3e7c4f562",
              "consentStatus": "CONSENT_APPROVED",
              "productID": "HOME2001",
              "fetchType": "PERIODIC",
              "fiFetch": "MANUAL",
              "dataFetchStatus": "SUCCESS",
              "accounts": [
                {
                  "linkRefNumber": "5c2f1ab9-3d47-4e8a-b6c1-7f9028d4e3a2",
                  "fiStatus": "DELIVERED",
                  "fipID": "finsharebank",
                  "maskedAccountNumber": "XXXXXXXX2200",
                  "checks": {
                    "indicators": [
                      {
                        "check_id": "MIN_SALARY_15000",
                        "metadata": {
                          "salary": "40000"
                        },
                        "result": "PASS"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "consentID": "02914fb5-0e4c-43dc-ae1b-d31fe3829c7b",
              "consentHandle": "b822049e-97f3-44d6-91fe-fa1bff1001db",
              "consentStatus": "CONSENT_APPROVED",
              "productID": "PL06S",
              "fetchType": "ONETIME",
              "fiFetch": "AUTOMATIC",
              "dataFetchStatus": "SUCCESS",
              "accounts": [
                {
                  "linkRefNumber": "9bd5e87a-7916-49ff-8ee1-969375f4f5e3",
                  "fiStatus": "DELIVERED",
                  "fipID": "finsharebank",
                  "maskedAccountNumber": "XXXXXXXX1100"
                }
              ]
            }
          ]
        },
        {
          "type": "PDF",
          "status": "SKIPPED",
          "accounts": []
        }
      ]
    }
    ```

    When AA fails and the journey falls back to a PDF statement upload, the PDF step is `SUCCESS` and the `checks` object appears on each PDF account instead — using the identical shape.

    ```json theme={null}
    {
      "timestamp": "2026-03-31T06:59:46.465644026Z",
      "transactionID": "c664bcaa-c0bf-4101-b9ac-31e6d78cdb48",
      "eventType": "JOURNEY_COMPLETE",
      "eventStatus": "SUCCESS",
      "accountID": "ACC-90342",
      "eventData": [
        {
          "type": "AA",
          "status": "FAILED",
          "consents": [
            {
              "consentID": null,
              "consentHandle": "974e2b5d-196e-4965-bea2-eb5bcce88e01",
              "consentStatus": "CONSENT_REJECTED",
              "productID": null,
              "fetchType": null,
              "fiFetch": null,
              "dataFetchStatus": "NOT_ATTEMPTED",
              "accounts": []
            }
          ]
        },
        {
          "type": "PDF",
          "status": "SUCCESS",
          "accounts": [
            {
              "maskedAccountNumber": "10021535948",
              "bankName": "idfc",
              "accountType": "saving",
              "startDate": "02-09-2025",
              "endDate": "28-02-2026",
              "checks": {
                "indicators": [
                  {
                    "check_id": "MIN_SALARY_15000",
                    "metadata": {
                      "salary": "40000"
                    },
                    "result": "PASS"
                  }
                ]
              }
            }
          ]
        }
      ]
    }
    ```

    The `checks` object follows the same shape everywhere: read `checks.indicators[]` for the list of checks, and inspect each entry's `result` (`PASS` or `FAILED`) along with the `metadata` values used to evaluate it.
  </Tab>

  <Tab title="Status Polling">
    The status polling response carries the same `checks` object. It appears on each AA account (under the `aa` consent's `accounts[]`) and on each PDF account (under the `pdf` step's `accounts[]`), using the identical `checks.indicators[]` shape shown in the Webhook tab.

    Below is a focused snippet of the `aa` step showing the `checks` object on an account.

    ```json theme={null}
    {
      "type": "aa",
      "status": "SUCCESSFUL",
      "data": {
        "fips": [
          { "fip": "finsharebank", "status": "DELIVERED" }
        ],
        "consents": [
          {
            "consentHandle": "7af9f26a-097c-4974-9e63-164a2b4c598e",
            "consentId": "6934dcbb-ee3f-4ea0-85dc-b564c9e5e1d2",
            "consentStatus": "CONSENT_APPROVED",
            "productId": "HOME2001",
            "dataFetchStatus": "SUCCESS",
            "accounts": [
              {
                "linkRefNumber": "9bd5e87a-7916-49ff-8ee1-969375f4f5e3",
                "fiStatus": "DELIVERED",
                "fipID": "finsharebank",
                "maskedAccountNumber": "XXXXXXXX1100",
                "checks": {
                  "indicators": [
                    {
                      "check_id": "MIN_SALARY_15000",
                      "metadata": {
                        "salary": "12000"
                      },
                      "result": "FAILED"
                    }
                  ]
                }
              }
            ]
          }
        ]
      }
    }
    ```

    <Note>
      In the full polling response, the AA account `checks` live under `data[].data.consents[].accounts[].checks` and the PDF account `checks` live under `data[].data.accounts[].checks`. Both use the same `checks.indicators[]` shape — see [Overview](./overview) for the field reference.
    </Note>
  </Tab>
</Tabs>
