> ## 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

> Check the journey status with the transaction_id when required.

Track the journey to a terminal state with the `transaction_id`. The status response
reports progress as a list of `{ type, status, data }` blocks, where `data` is a
free-form map whose contents depend on `type`.

You can pull the status on demand with `POST /transaction/status`, or receive the
same body pushed to your endpoint — see [Webhooks](./webhooks).

<Note>
  Use the [webhook](./webhooks) as your primary completion signal. Call this status API
  only when required — for example to reconcile, to recover a missed webhook, or to
  refresh status on demand.
</Note>

## Endpoint

```
POST /transaction/status
```

## Headers

| Header          | Description                                                                                             |
| --------------- | ------------------------------------------------------------------------------------------------------- |
| `Content-Type`  | `application/json`                                                                                      |
| `Authorization` | `Basic base64(client_id:client_secret)`. Your `client_id` and `client_secret` are provided by MoneyOne. |

## Sample request

<CodeGroup>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://<base_url>/transaction/status' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic <base64(client_id:client_secret)>' \
    --data '{
      "transaction_id": "ad277c38-ca13-49b0-befd-38343e221e6b"
    }'
  ```
</CodeGroup>

## Parameters

<ParamField body="transaction_id" type="string" required>
  The transaction identifier returned by `/transaction/init`.
</ParamField>

## Response 200

```json theme={null}
{
  "timestamp": "2026-03-31T08:02:45.111480334Z",
  "transaction_id": "ad277c38-ca13-49b0-befd-38343e221e6b",
  "event_type": "JOURNEY_COMPLETE",
  "event_status": "SUCCESS",
  "reference_id": "client-order-123",
  "event_data": [
    { "type": "KYC", "status": "VERIFIED", "data": {} }
  ]
}
```

### Top-level fields

| Field            | Description                                |
| ---------------- | ------------------------------------------ |
| `timestamp`      | ISO-8601 time the event was emitted.       |
| `transaction_id` | Transaction identifier for the journey.    |
| `event_type`     | `JOURNEY_COMPLETE` for the terminal state. |
| `event_status`   | Overall outcome, e.g. `SUCCESS`.           |
| `reference_id`   | Your correlation ID supplied at init.      |
| `event_data`     | Array of per-modality result blocks.       |

### `event_data[]` fields

| Field    | Description                                                                                  |
| -------- | -------------------------------------------------------------------------------------------- |
| `type`   | The block's type — e.g. `KYC` or any other flow configured for the instance.                 |
| `status` | Per-type status, e.g. `SUCCESS`, `VERIFIED`, `SKIPPED`.                                      |
| `data`   | Free-form map whose contents depend on `type`. Empty (`{}`) when there is nothing to report. |

## Error Codes

| HTTP Status                 | Condition                                                                  |
| --------------------------- | -------------------------------------------------------------------------- |
| `400 Bad Request`           | `transaction_id` is missing from the request body.                         |
| `404 Not Found`             | Unknown transaction — no journey exists for the supplied `transaction_id`. |
| `500 Internal Server Error` | An unexpected server-side error occurred.                                  |

## Next step

Once `event_type` is `JOURNEY_COMPLETE`, retrieve the collected data on the
[Fetch Data](./fetch-data) page using the same `transaction_id`.
