# Consultar el estado de una transacción

Esta guía muestra cómo consultar el estado actual de una transacción ejecutada en las últimas 72 horas, usando la operación `CheckStatus` y el `CallerId` de la transacción original.

## Cómo funciona

`CheckStatus` consulta la plataforma de Getnet, no el terminal. Por eso responde incluso cuando el terminal está sin conexión o cuando la respuesta original nunca llegó a tu aplicación. La clave de búsqueda es el `CallerId` que tu sistema de automatización generó para la transacción original.

El estado devuelto refleja la situación actual de la transacción, no el resultado del comando que la creó.

## Antes de comenzar

Necesitas un Connector creado y validado con `Polling`, y el `CallerId` exacto enviado en la transacción original.

<Callout type="warning">

Al consultar el estado después de una devolución, usa el `CallerId` de la **venta** original, no uno generado para la devolución. Si enviaste una venta como `SALE-20260121-POS-0001` y luego la devolviste, la consulta de estado sigue usando `SALE-20260121-POS-0001`.

</Callout>

## Paso 1: Enviar la solicitud

`CheckStatus` recibe un solo parámetro:

| Parámetro | Tipo | Longitud | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- | :--- |
| `CallerId` | String | 100 máx. | Sí | Id generado por el sistema de automatización para la transacción original. No se permiten caracteres especiales ni Unicode. |

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

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

## Paso 2: Leer el estado

La respuesta incluye el resultado de la operación y el estado actual de la transacción:

| Campo | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| `Code` | int | Sí | Código de respuesta del propio comando `CheckStatus`. |
| `Message` | String | Sí | Mensaje de texto que representa el resultado de la operación. |
| `CallerId` | String | Sí | El id que se consultó. |
| `Status` | Enum | Sí | El estado actual de la transacción. |
| `AuthorizationCode` | String | No | Código de autorización de la transacción. Es nulo cuando no se encontró ninguna transacción. |

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

Los valores posibles de `Status` y sus códigos se listan en [Códigos de respuesta y error](/es/integrated-pos/reference/response-error-codes).

<Callout type="note">

Una transacción tarda un momento en procesarse por completo en la plataforma de Getnet. Si consultas de inmediato después de la captura, puedes recibir `NOT_FOUND`. Para leer una transacción justo después de que finaliza, usa [Recuperar el último comprobante](/es/integrated-pos/operational-guides/retrieve-last-voucher) en su lugar.

</Callout>

## Siguientes pasos

* [Códigos de respuesta y error](/es/integrated-pos/reference/response-error-codes) - la tabla de referencia completa de estados de transacción.
* [Recuperar el último comprobante](/es/integrated-pos/operational-guides/retrieve-last-voucher) - lee la transacción más reciente sin esperar el procesamiento de la plataforma.