# Check a Transaction Status

This guide shows how to look up the current status of a transaction executed in the last 72 hours, using the `CheckStatus` operation and the `CallerId` of the original transaction.

## How it works

`CheckStatus` queries the Getnet platform, not the terminal, so it answers even when the terminal is offline or the original response never reached your application. The lookup key is the `CallerId` your automation system generated for the original transaction.

The status returned reflects the current state of the transaction, not the outcome of the command that created it.

## Before you begin

You need a Connector created and validated with `Polling`, and the exact `CallerId` sent in the original transaction.

<Callout type="warning">

When checking the status after a refund, use the `CallerId` of the original **sale**, not one generated for the refund. If a sale was sent as `SALE-20260121-POS-0001` and later refunded, the status query still uses `SALE-20260121-POS-0001`.

</Callout>

## Step 1: Send the request

`CheckStatus` takes a single parameter:

| Parameter | Type | Length | Required | Description |
| :--- | :--- | :--- | :--- | :--- |
| `CallerId` | String | 100 max | Yes | Id generated by the automation system for the original transaction. Special and Unicode characters are not allowed. |

```csharp
var request = new CheckStatusRequest
{
    CallerId = "SALE-20260121-POS-0001"
};

var statusResult = await connector.CheckStatusAsync(request);
```

## Step 2: Read the status

The response carries the operation result plus the transaction's current state:

| Field | Type | Required | Description |
| :--- | :--- | :--- | :--- |
| `Code` | int | Yes | Response code of the `CheckStatus` command itself. |
| `Message` | String | Yes | Text message representing the operation result. |
| `CallerId` | String | Yes | The id that was queried. |
| `Status` | Enum | Yes | The current transaction status. |
| `AuthorizationCode` | String | No | Transaction authorization code. Null when no transaction was found. |

```json
{
  "Code": 0,
  "Message": "APPROVED",
  "CallerId": "SALE-20260121-POS-0001",
  "Status": "APPROVED",
  "AuthorizationCode": "551437"
}
```

The possible `Status` values and their codes are listed in [Response and Error Codes](/en/integrated-pos/reference/response-error-codes).

<Callout type="note">

A transaction takes a short time to be fully processed on the Getnet platform. Querying immediately after capture can return `NOT_FOUND`. To read a transaction right after it completes, use [Retrieve the Last Voucher](/en/integrated-pos/operational-guides/retrieve-last-voucher) instead.

</Callout>

## Next steps

* [Response and Error Codes](/en/integrated-pos/reference/response-error-codes) - the full transaction status reference table.
* [Retrieve the Last Voucher](/en/integrated-pos/operational-guides/retrieve-last-voucher) - read the most recent transaction without waiting for platform processing.