# Recuperar o Último Comprovante

Este guia explica como recuperar ou reimprimir o comprovante da última transação de um POS Integrado usando a operação `GetLastVoucher`. O comportamento é o mesmo via USB e Rede (Network).

## O que é o último comprovante

O **último comprovante** é o conteúdo do recibo da transação mais recente no terminal POS (uma venda ou um cancelamento). O `GetLastVoucher` aciona uma reimpressão ou retorna esse conteúdo sem reexecutar a transação. É útil quando o recibo foi perdido, a impressão falhou ou o cliente solicita uma segunda via.

## Antes de começar

Antes de recuperar o último comprovante:

* Um Connector deve ser criado e validado usando `Polling`
* O Modo POS Integrado deve estar ativo
* Pelo menos uma transação deve ter sido concluída no terminal

## Passo 1: Executar a requisição

Para recuperar ou reimprimir o comprovante da última transação, chame a operação `GetLastVoucher`. Você pode optar por imprimi-lo diretamente no POS ou receber o conteúdo na resposta.

Os seguintes parâmetros estão disponíveis para a operação `GetLastVoucher`:

| Parâmetro | Tipo | Obrigatório | Descrição |
| :--- | :--- | :--- | :--- |
| `PrintOnPos` | Boolean | Não | Se `true`, o POS imprime o comprovante. Se `false`, o conteúdo do recibo é retornado em `ReceiptContent`. |
| `SkipReceipt` | Boolean | Não | Se `true`, o recibo do cliente não é impresso; se `false` (padrão), ele é impresso. Ignorado quando `PrintOnPos` é `false`. |

O exemplo a seguir demonstra como solicitar a reimpressão do último comprovante diretamente no terminal POS:

```csharp
var request = new LastTransactionRequest
{
    PrintOnPos = true,
    SkipReceipt = false
};

var voucherResult = await connector.GetLastVoucherAsync(request);
```

## Passo 2: Tratar a resposta

Após a conclusão, o POS retorna uma resposta estruturada com o status da operação e, se solicitado, o conteúdo do recibo. Veja abaixo um exemplo de objeto de resposta bem-sucedida:

```json
{
  "Code": 0,
  "Message": "APPROVED",
  "ReceiptContent": null
}
```

<Callout type="note">

O retorno contém apenas `Code`, `Message` e `ReceiptContent`. O `ReceiptContent` está `null` aqui porque a requisição definiu `PrintOnPos` como `true`. Quando `PrintOnPos` é `false`, o `ReceiptContent` retorna um objeto estruturado com os campos do recibo — consulte [Responsabilidade de Impressão](/pt/integrated-pos/core-concepts-pos/printing-responsibility).

</Callout>

Sempre verifique o `Code` e a `Message` antes de processar o `ReceiptContent`.

## Considerações importantes

Tenha em mente o seguinte:

* Somente o comprovante da transação mais recente pode ser recuperado (venda ou cancelamento).
* A operação não reprocessa nem reverte a transação.
* Se a última transação foi um Relatório, nenhum comprovante é impresso e uma mensagem explicativa é retornada.

## Próximos passos

* [Responsabilidade de Impressão](/pt/integrated-pos/core-concepts-pos/printing-responsibility) — PrintOnPos e ReceiptContent.