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

# GET /widget/transactions/{id}

> Get the current status of a transaction

Returns the current, normalized status of a transaction.

## Path parameters

<ParamField path="merchant_transaction_id" type="string" required>
  The transaction identifier returned by `POST /widget/session`.
</ParamField>

## Headers

<ParamField header="Authorization" type="string" required>
  Bearer token. Format: `Bearer <client_token>`.
</ParamField>

## Response

<ResponseField name="merchant_transaction_id" type="string">
  The transaction identifier.
</ResponseField>

<ResponseField name="partner_user_id" type="string">
  Your internal user identifier (echo of the session request).
</ResponseField>

<ResponseField name="type" type="string">
  `buy` or `sell`.
</ResponseField>

<ResponseField name="status" type="string">
  `pending`, `processing`, `completed`, `failed`, or `cancelled`. See [Transaction Status](/on-off-ramp/transaction-status).
</ResponseField>

<ResponseField name="currency" type="string">
  Crypto currency.
</ResponseField>

<ResponseField name="network" type="string">
  Blockchain network.
</ResponseField>

<ResponseField name="crypto_amount" type="string">
  Final crypto amount. Populated once the transaction reaches `processing` or `completed`.
</ResponseField>

<ResponseField name="fiat_currency" type="string">
  Fiat currency.
</ResponseField>

<ResponseField name="fiat_amount" type="string">
  Final fiat amount.
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 timestamp (UTC).
</ResponseField>

<ResponseField name="updated_at" type="string">
  ISO 8601 timestamp of the last status update (UTC).
</ResponseField>

## Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl https://DOMAIN/widget/transactions/550e8400-e29b-41d4-a716-446655440000 \
    -H "Authorization: Bearer <client_token>"
  ```

  ```javascript JavaScript theme={null}
  const tx = await fetch(
    "https://DOMAIN/widget/transactions/550e8400-e29b-41d4-a716-446655440000",
    { headers: { "Authorization": "Bearer <client_token>" } }
  ).then(r => r.json());

  console.log(tx.status); // "completed"
  ```
</CodeGroup>

```json Response theme={null}
{
  "merchant_transaction_id": "550e8400-e29b-41d4-a716-446655440000",
  "partner_user_id": "user-123",
  "type": "buy",
  "status": "completed",
  "currency": "USDT",
  "network": "TRC20",
  "crypto_amount": "99.50",
  "fiat_currency": "EUR",
  "fiat_amount": "100.00",
  "created_at": "2026-04-01T10:00:00Z",
  "updated_at": "2026-04-01T10:03:45Z"
}
```

## Errors

| HTTP | `error`        | `code`          | Cause                                                                           |
| ---- | -------------- | --------------- | ------------------------------------------------------------------------------- |
| 401  | `unauthorised` | `invalid_token` | Missing or inactive `client_token`                                              |
| 404  | `not_found`    | `not_found`     | The `merchant_transaction_id` does not exist or does not belong to your partner |
