# Quick Start: Your First Integrated POS Payment

This guide walks you through establishing a connection with an Integrated POS and performing a **single payment transaction** using only the mandatory data. By the end, you will have a working connection, a validated terminal, and a successful payment executed programmatically.

## Before you begin

Before starting, ensure that:

* The POS terminal is powered on and configured for **Integrated POS mode**
* The Connector App is installed and active on the terminal
* You have access to the Integrated POS integration library
* The automation system and POS can communicate using a supported [connection model](/en/integrated-pos/first-steps-pos/connection-models)

## Step 1: Create the Connector

Establish a communication channel with the POS terminal. Choose one connection model; the most common is HTTP over the network. To drive a remote terminal through the Getnet cloud, use `CreateCloud` instead — see the [Cloud2Cloud Connection](https://docs.globalgetnet.com/en/products/in-store-payments/integrated-pos?doc=pos-integrated-cloud-connection) guide.

| Parameter | Type | Description |
| :--- | :--- | :--- |
| `hostname` | string | The hostname, IPv4 or IPv6 of the POS device (e.g. `"192.168.0.10"`). |
| `port` | int | The port of the POS device. This parameter is optional and defaults to 8080. |

Here's an example of how to create a connector:

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

## Step 2: Validate the POS terminal connectivity

Before executing any payment operation, confirm that the terminal is available and ready. Call the `Polling` function:

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

A successful response (Code = 0) indicates that the POS is connected and the terminal is ready to receive commands.

<Callout type="warning">

If validation fails, do not proceed with payment operations.

</Callout>

## Step 3: Execute a simple sale

Perform a payment transaction. For this quick start, send **Amount** and **SaleType** so the amount and payment-type screens are skipped on the terminal. If either is omitted, the POS displays the corresponding screen for operator input.

| Parameter | Type | Required | Description |
| :--- | :--- | :--- | :--- |
| `Amount` | Long | No | Value in local currency to perform the transaction (e.g. `10000` = 100.00). When provided, the amount screen is skipped. |
| `SaleType` | Enum | No | Payment type: `Card` or `QrCode`. When set to `Card`, the card flow is used. When provided, the payment-type screen is skipped. |

Here's an example of how to execute a sale:

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

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

On the POS terminal, the amount entry screen is skipped, the customer is prompted to insert, swipe, or tap the card, and any required interaction (PIN, confirmation, signature) is handled by the terminal.

## Step 4: Handle the response

After the transaction completes, the POS returns a structured response. The fields below are those used in this quick start.

| Field | Type | Description |
| :--- | :--- | :--- |
| `Code` | Int | Response code. `0` indicates success. |
| `Message` | string | Text message representing the operation result (e.g. `"APPROVED"`). |
| `CommerceCode` | string | Unique branch code approved by Getnet for transaction processing. |
| `TerminalId` | string | POS terminal code. |
| `AuthorizationCode` | string | Transaction authorization code. |
| `Amount` | Long | Transaction amount in local currency. |
| `AccountingDate` | string | Transaction date and time at GMT. |
| `RealDate` | string | Transaction date and time at local time. |
| `SaleType` | string | Type of sale (e.g. `"Card"`). |
| `OperationMode` | string | Selected operation mode. One of `CalculatedGetnet` or `CalculatedISV`. |
| `OriginalAmount` | Long | Original transaction amount in local currency. |

**Example — Approved response:**

```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
}
```

Always check the response code before continuing the business flow.

## Step 5: Close the connection

After completing the operation, release all allocated resources:

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

Once closed, the Connector instance cannot be reused.

## Next steps

Now that you've completed your first Integrated POS payment, explore these topics to build your integrations:

* **[Single-Step Payment Guide](/en/integrated-pos/pos-payment-guides/single-step-payment)** — Learn about all available Sale parameters and response handling.
* **[Pre-Authorization](/en/integrated-pos/pos-payment-guides/pre-auth-payment)** — Reserve funds and confirm later (e.g., hotel bookings).