# Início rápido: seu primeiro pagamento com POS Integrado

Este guia mostra como estabelecer uma conexão com um POS Integrado e executar uma **transação de pagamento única**. Você envia somente os dados obrigatórios. Ao final, você terá uma conexão funcional, um terminal validado e um pagamento executado de forma programática.

## Antes de começar

Antes de começar, confirme que:

* O terminal POS está ligado e configurado para o **modo POS Integrado**
* O Connector App está instalado e ativo no terminal
* Você tem acesso à biblioteca de integração do POS Integrado
* O sistema de automação e o POS conseguem se comunicar usando um [modelo de conexão](/pt/integrated-pos/first-steps-pos/connection-models) suportado

## Passo 1: Crie o Connector

Estabeleça um canal de comunicação com o terminal POS. Escolha um modelo de conexão; o mais comum é HTTP pela rede. Para controlar um terminal remoto pela nuvem da Getnet, use `CreateCloud` — consulte o guia [Conexão Cloud2Cloud](https://docs.globalgetnet.com/pt/products/in-store-payments/integrated-pos?doc=pos-integrated-cloud-connection).

| Parâmetro | Tipo | Descrição |
| :--- | :--- | :--- |
| `hostname` | string | O hostname, IPv4 ou IPv6 do dispositivo POS (por exemplo, `"192.168.0.10"`). |
| `port` | int | A porta do dispositivo POS. Este parâmetro é opcional e o padrão é 8080. |

Veja um exemplo de como criar um connector:

```csharp
Connector connector = Connector.CreateHttp("192.168.0.10", 8080);
```

## Passo 2: Valide a conectividade do terminal POS

Antes de executar qualquer operação de pagamento, confirme que o terminal está disponível e pronto. Chame a função `Polling`:

```csharp
var pollingResult = connector.PollingAsync();
```

Uma resposta bem-sucedida (Code = 0) indica que o POS está conectado e o terminal está pronto para receber comandos.

<Callout type="warning">

Se a validação falhar, não prossiga com as operações de pagamento.

</Callout>

## Passo 3: Execute uma venda simples

Realize uma transação de pagamento. Neste início rápido, envie **Amount** e **SaleType** para que as telas de valor e de tipo de pagamento sejam ignoradas no terminal. Se um deles for omitido, o POS exibe a tela correspondente para o operador preencher.

| Parâmetro | Tipo | Obrigatório | Descrição |
| :--- | :--- | :--- | :--- |
| `Amount` | Long | Não | Valor na moeda local para realizar a transação (por exemplo, `10000` = 100,00). Quando informado, a tela de valor é ignorada. |
| `SaleType` | Enum | Não | Tipo de pagamento: `Card` ou `QrCode`. Quando definido como `Card`, o fluxo de cartão é usado. Quando informado, a tela de tipo de pagamento é ignorada. |

Veja um exemplo de como executar uma venda:

```csharp
var saleRequest = new SaleRequest
{
    Amount = 10000,        // Local currency in minor units
    SaleType = SaleType.Card
};

var saleResult = connector.SaleAsync(saleRequest);
```

No terminal POS, a tela de digitação do valor é ignorada. O cliente insere, passa ou aproxima o cartão. O terminal conduz qualquer interação necessária (senha, confirmação, assinatura).

## Passo 4: Trate a resposta

Após a conclusão da transação, o POS retorna uma resposta estruturada. Os campos abaixo são os usados neste início rápido.

| Campo | Tipo | Descrição |
| :--- | :--- | :--- |
| `Code` | Int | Código de resposta. `0` indica sucesso. |
| `Message` | string | Mensagem de texto que representa o resultado da operação (por exemplo, `"APPROVED"`). |
| `CommerceCode` | string | Código de filial único aprovado pela Getnet para o processamento da transação. |
| `TerminalId` | string | Código do terminal POS. |
| `AuthorizationCode` | string | Código de autorização da transação. |
| `Amount` | Long | Valor da transação na moeda local. |
| `AccountingDate` | string | Data e hora da transação em GMT. |
| `RealDate` | string | Data e hora da transação no horário local. |
| `SaleType` | string | Tipo de venda (por exemplo, `"Card"`). |
| `OperationMode` | string | Modo de operação selecionado. `CalculatedGetnet` ou `CalculatedISV`. |
| `OriginalAmount` | Long | Valor original da transação na moeda local. |

**Exemplo — Resposta aprovada:**

```json
{
  "Code": 0,
  "Message": "APPROVED",
  "CommerceCode": "0000081561",
  "TerminalId": "AR001P0B",
  "AuthorizationCode": "551437",
  "Amount": 10000,
  "AccountingDate": "2025-08-25T16:11:23.0000000+00:00",
  "RealDate": "2025-08-25T13:11:50.8570000-03:00",
  "SaleType": "Card",
  "OperationMode": "CalculatedGetnet",
  "OriginalAmount": 10000
}
```

Sempre verifique o código de resposta antes de continuar o fluxo de negócio.

## Passo 5: Feche a conexão

Após concluir a operação, libere todos os recursos alocados:

```csharp
connector.Close();
```

Depois de fechada, a instância do Connector não pode ser reutilizada.

## Próximos passos

Agora que você concluiu seu primeiro pagamento com o POS Integrado, explore estes tópicos para desenvolver suas integrações:

* **[Guia de pagamento em passo único](/pt/integrated-pos/pos-payment-guides/single-step-payment)** — Conheça todos os parâmetros de Sale disponíveis e o tratamento da resposta.
* **[Pré-autorização](/pt/integrated-pos/pos-payment-guides/pre-auth-payment)** — Reserve fundos e confirme depois (por exemplo, reservas de hotel).