# Métodos y parámetros

Esta referencia lista los métodos del TPV Integrado y sus parámetros. Es una consulta rápida para desarrolladores; para flujos paso a paso, usa la guía de [Inicio rápido](/es/integrated-pos/first-steps-pos/quickstart-integrated-pos) y las guías de [pagos](/es/integrated-pos/pos-payment-guides/single-step-payment) u [operaciones](/es/integrated-pos/operational-guides/get-reports).

## ¿Qué son estos métodos?

El TPV Integrado expone métodos de **gestión de la conexión** (CreateHttp, CreateUsb, CreateCloud, Polling, GetInfo, Close) y métodos de **operación del dispositivo** (Sale, Refund, PreAuth, GetReports, Shift, GetLastVoucher, etc.). Todas las operaciones del dispositivo se invocan sobre una instancia de **Connector** devuelta por uno de los métodos Create. Solo puede haber una operación en curso a la vez por Connector. Los nombres y los tipos de los parámetros pueden variar un poco según el SDK (.NET, Kotlin, JavaScript/TypeScript).

<Callout type="warning">

Solo puede haber una operación del dispositivo en curso por Connector en cualquier momento. Espera la respuesta (o el error) antes de enviar el siguiente comando. Consulta [Connector y flujos de comunicación](/es/integrated-pos/core-concepts-pos/connector-communication-flows).

</Callout>

## Métodos de creación del Connector

Las siguientes tablas describen los métodos de creación del Connector:

### CreateHttp

Crea un Connector mediante HTTP (Wi-Fi o Ethernet).

| Parámetro | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| hostname | String | Sí | Nombre de host, IPv4 o IPv6 del dispositivo TPV. |
| port | int | No | Puerto remoto (8080 por defecto). |
| setupParams | HashMap&lt;String, String> | No | Configuración del terminal. Si lo usas, consulta el comportamiento de reconexión. |

### CreateUsb

Crea un Connector mediante USB (serie).

| Parámetro | Tipo | Obligatorio | Descripción | Disponibilidad |
| :--- | :--- | :--- | :--- | :--- |
| address | String | Sí | Dirección del puerto serie (por ejemplo, COM3, /dev/ttyACM0). | .NET |
| usbDevice | UsbDevice | Sí | Objeto de dispositivo USB de Android. | Kotlin |
| setupParams | HashMap&lt;String, String> | No | Configuración del terminal. Si lo usas, consulta el comportamiento de reconexión. | Kotlin |

<Callout type="note">

Se requiere exactamente uno entre `address` (.NET) y `usbDevice` (Kotlin), según la plataforma. Si usas `setupParams`, consulta la sección del flujo de reconexión para más detalles.

</Callout>

### CreateCloud

Crea un Connector que alcanza un terminal remoto a través de la nube de Getnet. No se requiere nombre de host ni puerto; la nube enruta cada comando al terminal registrado.

| Parámetro | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| setupParams | HashMap&lt;String, String> | No | Configuración del terminal. Si lo usas, consulta el comportamiento de reconexión. |

<Callout type="note">

`CreateCloud` está disponible en las bibliotecas de Kotlin y JavaScript/TypeScript. Si usas `setupParams`, consulta la sección del flujo de reconexión para más detalles.

</Callout>

### Close

Libera todos los recursos en memoria. Después de llamar a esta función, no puedes volver a usar el objeto connector. No espera ningún parámetro.

## Gestión de la conexión

Las siguientes tablas describen los métodos de gestión de la conexión:

### Polling

Valida la conectividad y si el terminal está listo. Debes llamarlo antes de las operaciones del dispositivo.

**Parámetros:** ninguno.

**Retorno:**

| Parámetro | Tipo | Descripción |
| :--- | :--- | :--- |
| `Code` | Int | Código de respuesta; `0` indica éxito. |
| `Message` | String | Mensaje de resultado (por ejemplo, "APPROVED"). |
| `Connected` | Bool | Indica si el terminal está conectado y responde. |

### GetInfo

Recupera información del dispositivo y del comercio desde el TPV (modelo, serie, red, identificadores del comercio). Es útil para validación o diagnóstico.

**Parámetros:** ninguno.

**Retorno:**

| Parámetro | Tipo | Descripción |
| :--- | :--- | :--- |
| `Code` | Int | Código de respuesta; `0` indica éxito. |
| `Message` | String | Mensaje de resultado (por ejemplo, "APPROVED"). |
| `LegalName` | String | Razón social del comercio. |
| `CommerceCuit` | String | Identificación del comercio (CUIT, CNPJ o Rut). |
| `CommerceNumber` | String | Identificación del vendedor (sellerCode). |
| `BranchNumber` | String | Código de la sucursal (número de identificación). |
| `BranchName` | String | Razón social de la sucursal. |
| `LittleBranchName` | String | Nombre corto de la sucursal. |
| `BranchAddress` | String | Dirección completa del comercio. |
| `BranchDistrict` | String | Ciudad o distrito del comercio. |
| `TerminalId` | String | Identificación lógica del terminal (terminalCode). |
| `SerialNumber` | String | Número de serie físico del terminal. |
| `TerminalModel` | String | Nombre del modelo del terminal. |
| `OS` | String | Versión de Android o del SDK del terminal. |
| `EmvModule` | String | Versión del módulo EMV. |
| `AppVersionName` | String | Versión de la aplicación de pago. |
| `CommunicationUrl` | String | Dirección de comunicación de los terminales. |
| `PrimaryIP` | String | Número de IP actual del terminal. |
| `Company` | String | Nombre del operador de red móvil (si usa SIM). |
| `Apn` | String | Nombre del punto de acceso (APN) de la SIM. |
| `SimId` | String | Identificador de la SIM (ICCID). |
| `CommunicationType` | String | Tipo de conexión de red (por ejemplo, Wi-Fi, USB, HTTP). |
| `Wifi` | String | Nombre de la red Wi-Fi conectada. |
| `CertificateStatus` | Boolean | True si el certificado del SDK es válido. |
| `TipEnabled` | Boolean | True si la entrada de propina está habilitada. |
| `Receipt` | Boolean | True si la impresión o el contenido del recibo está habilitado. |
| `Salesperson` | Boolean | True si la entrada del código de vendedor está habilitada. |
| `InstallmentsCommerce` | Boolean | True si los planes de cuotas del comercio están habilitados. |
| `IssuerInstallments` | Boolean | True si los planes de cuotas del emisor están habilitados. |

## Operaciones del dispositivo

Las siguientes tablas describen las operaciones del dispositivo:

### Sale

Ejecuta un pago (en un solo paso, en cuotas o con código QR).

| Parámetro | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| Amount | Long | No | Valor de la transacción (los últimos 2 dígitos son decimales). |
| SaleType | Enum | No | Card, QrCode. |
| PrintOnPos | Bool | No | Imprime el recibo en el TPV. |
| EmployeeId | Int | No | Id del camarero. |
| Tip | Long | No | Importe de la propina. No se admite para QR. |
| Installments | Int | No | Número de cuotas. |
| SkipReceipt | Bool | No | Omite el recibo del cliente. |
| SkipConfirmation | Bool | No | Omite la pantalla de confirmación. |
| PlanId | String | No | Plan de cuotas. |
| Interest | Enum | No | OnPosSelection, Interest, NoInterest. |
| OperationMode | Enum | No | `CalculatedGetnet` (el terminal calcula) o `CalculatedISV` (tu aplicación calcula). Si se omite, el valor por defecto es `CalculatedGetnet`. |
| CallerId | String | No | Id generado por el sistema de automatización (máx. 100 caracteres), necesario para consultar después la transacción con Check Status. No se permiten caracteres especiales ni Unicode. |

**Retorno:**

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `Code` | Int | Código de respuesta; `0` indica éxito. |
| `Message` | String | Mensaje de resultado (por ejemplo, "APPROVED"). |
| `CommerceCode` | String | Código único de sucursal aprobado por Getnet. |
| `TerminalId` | String | Identificación lógica del terminal. |
| `AuthorizationCode` | String | Código de autorización de la transacción. |
| `Amount` | Long | Importe final cobrado en moneda local. |
| `Last4Digits` | String | Los últimos cuatro dígitos de la tarjeta del cliente. |
| `CardType` | String | Tipo de tarjeta usada. |
| `AccountingDate` | String | Marca de tiempo de la transacción en GMT (puede devolver valores por defecto si es nula). |
| `CardBrand` | String | Marca de tarjeta usada en la transacción. |
| `RealDate` | Date | Marca de tiempo de la transacción en hora local (puede devolver valores por defecto si es nula). |
| `EmployeeId` | Int | Id del camarero o empleado. |
| `Tip` | Long | Importe de la propina incluido en la venta. |
| `SaleType` | Enum | Card o QR Code. |
| `ReceiptContent` | Dict | Datos estandarizados del recibo si `PrintOnPos` es false. Consulta [Objeto ReceiptContent](#objeto-receiptcontent). |
| `PlanId` | String | El plan de cuotas seleccionado (presente si corresponde). |
| `Interest` | Enum | Indica si se aplicó interés (presente si corresponde). |
| `OperationMode` | Enum | `CalculatedGetnet` o `CalculatedISV`. Puede omitirse o tomar el valor por defecto si no se envía. |
| `OriginalAmount` | Long | Importe inicial antes de los ajustes (presente si corresponde). |
| `Installments` | Int | Número de cuotas usadas (presente si corresponde). |
| `CallerId` | String | Id generado por el sistema de automatización (máx. 100 caracteres). |
| `CardBin` | String | Los primeros ocho dígitos de la tarjeta del cliente (máx. 8). |

### Refund

Ejecuta una devolución (cancelación).

| Parámetro | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| AuthorizationCode | String | No | Código de autorización de la transacción original (6 dígitos). |
| OriginTransDate | Date | No | Fecha de la transacción original, en formato ISO8601 con zona horaria. No puede ser posterior a la fecha actual. |
| Amount | Long | No | Importe de la devolución (se admiten devoluciones parciales). |
| SkipConfirmation | Bool | No | Omite la pantalla de confirmación. |
| SkipReceipt | Bool | No | No imprime el recibo del cliente. |
| PrintOnPos | Bool | No | Imprime en el TPV o devuelve el contenido en la respuesta. |
| RefundType | Enum | No | Especifica qué parte de una venta se devuelve: `SaleWithdrawal`, `Sale` o `Withdrawal`. |

**Retorno:**

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `Code` | Int | Código de respuesta; `0` indica éxito. |
| `Message` | String | Mensaje de resultado (por ejemplo, "APPROVED"). |
| `CommerceCode` | String | Código único de comercio aprobado por Getnet. |
| `TerminalId` | String | Identificación lógica del terminal. |
| `AuthorizationCode` | String | Código de autorización de la operación de devolución. |
| `NsuLastSuccessfulMessage` | String | NSU del último mensaje exitoso. |
| `ReceiptContent` | Dict | Objetos de datos estandarizados del recibo; se proporcionan si `PrintOnPos` es false. Consulta [Objeto ReceiptContent](#objeto-receiptcontent). |

### GetLastVoucher

Recupera o vuelve a imprimir el comprobante de la última transacción.

| Parámetro | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| `PrintOnPos` | Boolean | No | Imprime en el TPV o devuelve el contenido. |
| `SkipReceipt` | Boolean | No | Si `PrintOnPos` es true: no imprime el recibo del cliente. Por defecto es false. |

**Retorno:**

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `Code` | Int | Código de respuesta; `0` indica éxito. |
| `Message` | String | Mensaje de resultado (por ejemplo, "APPROVED"). |
| `ReceiptContent` | Dict | Objetos de datos estandarizados del recibo si `PrintOnPos` es false. Consulta [Objeto ReceiptContent](#objeto-receiptcontent). |

> Si la última operación fue de tipo Informe (Totals, Detailed, Shift), no hay comprobante disponible para reimprimir. Se devuelve un mensaje que indica esta situación.

### GetReports

Recupera el informe Totals, Detailed o Shift.

| Parámetro | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| `Type` | Enum | Sí | `Totals`, `Detailed` o `Shift`. |
| `PrintOnPos` | Boolean | No | Imprime en el TPV o devuelve el contenido en la respuesta. |

**Retorno:**

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `Code` | Int | Código de respuesta; `0` indica éxito. |
| `Message` | String | Mensaje de resultado (por ejemplo, "APPROVED"). |
| `ReportDetails` | Dict | Datos estructurados que se proporcionan si `PrintOnPos` es false. El contenido varía según `Type`. |

#### ReportDetails (Totals)

Una vista resumida de todas las operaciones, agrupada en objetos por tipo de operación más un objeto global `operationTotals`.

**Objetos por operación** — `debitOperation`, `creditOperation`, `qrcodeCreditOperation`, `qrcodeDebitOperation`, `qrcodePrePaidOperation`, `devolutionOperation`, `prePaidOperation` y `qrcodeOperation`. Cada uno contiene:

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `quantity` | String | Número de transacciones. |
| `amount` | String | Importe total. |
| `amountSalesDiscounted` | String | Importe total de las ventas con descuento. |
| `refundsAmount` | String | Importe total de las devoluciones. |
| `salesCancelledQuantity` | String | Número de ventas canceladas. |
| `listOperation` | String | Lista de objetos Operation (consulta [ReportDetails (Detailed)](#reportdetails-detailed)). |

**Objeto `operationTotals`** — totales globales de todas las operaciones:

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `salesAmount` | String | Importe total de las ventas. |
| `salesQuantity` | String | Número de ventas. |
| `refundsAmount` | String | Importe total de las devoluciones. |
| `refundsQuantity` | String | Número de devoluciones. |
| `tipAmount` | String | Importe total de las propinas. |
| `tipQuantity` | String | Número de propinas. |
| `qrPctAmount` | String | Importe total de los códigos QR. |
| `qrPctQuantity` | String | Número de códigos QR. |
| `totalCredit` | String | Importe total de las ventas con crédito. |
| `totalDebit` | String | Importe total de las ventas con débito. |
| `totalPrepaid` | String | Importe total de las ventas con prepago. |

#### ReportDetails (Detailed)

Una lista de operaciones individuales.

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `authorizationCode` | String | Código de autorización de la transacción. |
| `paymentId` | String | Identificador único interno del pago. |
| `opReasonMessageStatus` | String | Mensaje de estado de la operación. |
| `timestamp` | Date | Marca de tiempo de la transacción (ISO8601). |
| `brandType` | String | Marca de tarjeta usada. |
| `cardLastNumber` | String | Últimos 4 dígitos de la tarjeta. |
| `operationValue` | Long | Valor de la operación. |
| `operation` | Enum | Tipo de operación: crédito, débito, voucher, código QR, cancelación o devolución. |

> Debes solicitar los informes al menos **2 minutos** después de la última venta o cambio de turno para asegurar la sincronización de los datos.

### Shift

Configuración de turnos, cambio de turno u obtención del total de turnos.

| Parámetro | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| `ShiftOperation` | Enum | Sí | `Configuration` (configuración), `Change` o `GetShifts`. |
| `NumberOfShifts` | Int | Condicional | **Obligatorio solo** para `Configuration`, para definir el total de turnos (máx. 2 dígitos). |
| `SkipConfirmation` | Boolean | No | Omite la pantalla de confirmación del cambio de turno. |
| `PrintOnPos` | Boolean | No | Imprime los datos del turno en el terminal. |

**Retorno:**

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `Code` | Int | Código de respuesta; `0` indica éxito. |
| `Message` | String | Mensaje de resultado (por ejemplo, "APPROVED"). |
| `TotalOfShifts` | Int | Total de turnos actual. |
| `ReportDetails` | String | Se proporciona **solo** si `PrintOnPos` es false y `ShiftOperation` es `Change`. |

### PreAuth

Gestiona el ciclo de vida de la preautorización (Create, Modify, Remove, Confirm, Retrieve).

**Parámetros:**

| Parámetro | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| `Operation` | Enum | Sí | `Create`, `Modify`, `Remove`, `Confirm`, `Retrieve`. |
| `ReservationCode` | String | No | Necesario para `Modify`, `Remove` o `Confirm` (máx. 5 caracteres). Es opcional, pero **debe ser único** si lo envías; el sistema de automatización es responsable de la unicidad. Se llama `reservationId` en el SDK. |
| `AuthorizationCode` | String | Condicional | Se requiere un código válido para identificar la transacción que vas a modificar (6 dígitos). |
| `OriginalTransactionDate` | Date | Condicional | Obligatorio para identificar la preautorización en `Modify`, `Remove` o `Confirm`. En formato ISO8601 con zona horaria. |
| `Amount` | Long | No | Importe en moneda local, con los últimos 2 dígitos como decimales (máx. 9 dígitos). |
| `PlanId` | String | No | Id del plan de cuotas (Argentina). |
| `Installments` | Int | No | Número de cuotas. |
| `Filters` | Object | No | Criterios de búsqueda (solo para `Retrieve`). Consulta [Filtros de PreAuth](#filtros-de-preauth). |
| `PrintOnPos` | Bool | No | Imprime el recibo en el TPV o lo devuelve en la respuesta. |
| `SkipReceipt` | Bool | No | No imprime el recibo del cliente. |
| `SkipConfirmation` | Bool | No | Omite la pantalla de confirmación. |
| `CallerId` | String | No | Id generado por el sistema de automatización (máx. 100 caracteres). Es necesario para consultar después una transacción `Create` con Check Status. No se permiten caracteres especiales ni Unicode. |

#### Filtros de PreAuth

Se usa solo cuando `Operation` es `Retrieve`.

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `InitialDate` | Date | Límite inicial para recuperar preautorizaciones pendientes, en formato ISO8601 con zona horaria (por defecto: la fecha actual). No puede ser posterior a la fecha actual ni a `FinalDate`. |
| `FinalDate` | Date | Límite final, en formato ISO8601 con zona horaria (por defecto: la fecha actual). No puede ser posterior a la fecha actual ni anterior a `InitialDate`. |
| `AuthorizationCode` | String | Filtra por un código de autorización específico (6 dígitos). |
| `ReservationCode` | String | Filtra por un código de reserva específico (máx. 5 caracteres). |
| `Last4CardDigits` | String | Filtra por los últimos 4 dígitos de la tarjeta. |
| `CardBrand` | Int | Filtra por marca de tarjeta: `0` = ALL (por defecto), `1` = Visa, `2` = MasterCard, `3` = Amex. |

**Retorno:**

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `Code` | Int | Código de respuesta; `0` indica éxito. |
| `Message` | String | Mensaje de resultado (por ejemplo, "APPROVED"). |
| `AuthorizationCode` | String | Código de autorización de la transacción. |
| `Amount` | Long | Importe final en moneda local. |
| `OriginalAmount` | Long | Valor antes de cualquier ajuste. |
| `PlanId` | String | El plan de cuotas seleccionado. |
| `Installments` | Int | Número de cuotas. |
| `Last4Digits` | String | Últimos cuatro dígitos de la tarjeta del cliente. |
| `CardType` | String | Tipo de tarjeta. |
| `AccountingDate` | Date | Fecha y hora de la transacción (GMT). |
| `CardBrand` | String | Marca de tarjeta usada. |
| `RealDate` | Date | Fecha y hora de la transacción (local). |
| `ReceiptContent` | Dict | Datos estandarizados del recibo si `PrintOnPos` es false. Consulta [Objeto ReceiptContent](#objeto-receiptcontent). |
| `ReservationId` | String | Identificador del código de reserva. |
| `CommerceCode` | String | Código único de comercio. |
| `TerminalId` | String | Código del terminal TPV. |
| `PendingPreAuthorizations` | List | Lista de elementos (solo para `Retrieve`). Consulta [Elemento de la lista PendingPreAuthorizations](#elemento-de-la-lista-pendingpreauthorizations). |
| `CardBin` | String | Los primeros ocho dígitos de la tarjeta del cliente (máx. 8). |
| `CallerId` | String | Id generado por el sistema de automatización (máx. 100 caracteres). |

#### Elemento de la lista PendingPreAuthorizations

Estructura de los objetos dentro de la lista `PendingPreAuthorizations`.

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `TransactionDate` | Date | Fecha y hora en que se procesó. |
| `Amount` | Long | Importe de la transacción en moneda local. |
| `AuthorizationCode` | String | Código de autorización de la transacción. |
| `Last4Digits` | String | Últimos cuatro dígitos de la tarjeta usada. |
| `EntryMode` | Enum | `CHIP`, `MAGSTRIPE`, `CONTACTLESS`. |
| `CommerceCode` | String | Código único de sucursal. |
| `TerminalId` | String | Código del terminal TPV. |
| `DateLimit` | Date | Fecha de vencimiento de la preautorización. |
| `ReceiptCode` | String | Código de identificación impreso en el recibo. |
| `ReservationId` | String | Identificador de la transacción que proporciona el usuario cuando se crea o se actualiza la preautorización. |

### Cancel

Cancela un comando en curso y devuelve el terminal a la pantalla POS Connected.

**Parámetros:** ninguno.

**Retorno:**

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `Code` | Int | Código de respuesta; `6` indica que la operación Cancel se ejecutó con éxito. |
| `Message` | String | Mensaje de resultado. |

<Callout type="note">

Solo `Sale` (Card/QR), `Refund` y `Pre-authorization` admiten cancelación. Cancelar un comando no cancelable devuelve "The operation isn't cancellable"; cancelar sin una operación activa devuelve "There's no active operation to cancel". Cuando un comando se cancela con éxito, ese comando cancelado también devuelve `Code` `2` (cancelado).

</Callout>

### Check Status

Busca el estado de una transacción específica procesada en las **últimas 72 horas**, identificada por su `CallerId`.

**Parámetros:**

| Parámetro | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| `CallerId` | String | Sí | Id generado por el sistema de automatización para la transacción original (máx. 100 caracteres). No se permiten caracteres especiales ni Unicode. Debe coincidir con el `CallerId` enviado en la transacción original; de lo contrario, puedes recibir un estado incorrecto. Para consultar una **devolución**, usa el mismo `CallerId` enviado en la `Sale` original. |

**Retorno:**

| Campo | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| `Code` | Int | Sí | Código de estado de la transacción (`0`–`6`). Consulta la tabla siguiente. |
| `Message` | String | Sí | Mensaje de texto que representa el resultado de la operación. |
| `CallerId` | String | Sí | Id generado por el sistema de automatización. |
| `Status` | Enum | Sí | Estado actual de la transacción: `APPROVED`, `AUTHORIZED`, `REFUNDED`, `CANCELED`, `REVERSED`, `NOT_FOUND` o `UNKNOWN`. |
| `AuthorizationCode` | String | No | Código de autorización de la transacción (6 dígitos). Puede ser `null` si no se encontró ninguna transacción para el `CallerId`. |

**Códigos de estado de la transacción:**

| Código | Estado | Descripción |
| :--- | :--- | :--- |
| `0` | `APPROVED` | Transacción capturada (aprobada). Se usa para ventas con tarjeta estándar y para código QR con tarjeta. |
| `1` | `AUTHORIZED` | Transacción autorizada (preautorización o QR PCT). Exclusivo de los pagos con código QR PCT. |
| `2` | `REFUNDED` | Transacción devuelta (D+1). |
| `3` | `CANCELED` | Transacción cancelada (D+0). |
| `4` | `REVERSED` | Transacción revertida (deshecha). |
| `5` | `NOT_FOUND` | No se encontró ninguna transacción para el `CallerId` indicado. |
| `6` | `UNKNOWN` | Estado desconocido o no mapeado. |

> **Comportamiento del código QR:** Una transacción **QR PCT** (Point of Capture) siempre devuelve `AUTHORIZED` (código `1`), nunca `APPROVED`. Un **código QR con tarjeta** sigue el comportamiento estándar de tarjeta y devuelve `APPROVED` (código `0`) una vez capturado.

<Callout type="note">

Una transacción puede tardar un momento en procesarse por completo en la plataforma de Getnet. Si la consultas inmediatamente después de la captura, puedes recibir `NOT_FOUND`; en ese caso, usa [Recuperar el último comprobante](/es/integrated-pos/operational-guides/retrieve-last-voucher) en su lugar.

</Callout>

<Callout type="note">

Si varias transacciones comparten el mismo `CallerId`, el sistema usa la más reciente para determinar el estado. Espera al menos **2 minutos** después de una devolución para obtener el estado más actualizado. Check Status solo admite consultar la operación de preautorización `Create`.

</Callout>

### SwitchToNormalPos

Desactiva el modo TPV Integrado de forma correcta y permite el uso manual del terminal.

**Parámetros:** ninguno.

**Retorno:**

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `Code` | Int | Código de respuesta; `0` indica éxito. |
| `Message` | String | Mensaje de resultado. |

### Setup

Define la configuración del terminal, como un nombre descriptivo personalizado para identificarlo.

| Parámetro | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| `SetupParams` | Dict/Map | Sí | Claves y valores de identificación (por ejemplo, `friendly_name`). |

**Configuraciones disponibles:**

| Clave | Tipo | Descripción |
| :--- | :--- | :--- |
| `friendly_name` | String | Nombre personalizado asociado a cada transacción de pago, devolución y preautorización; Getnet lo usa internamente para identificar el origen. Solo se permiten caracteres alfanuméricos y espacios en blanco, sin caracteres especiales (por ejemplo, `ISV Name2` es válido; `I.S.V ? N@m!2` no lo es). El valor por defecto es `ConectorApp`. |

<Callout type="note">

Si usas un `friendly_name` personalizado, envíalo en **cada** conexión (`CreateUsb`, `CreateHttp` o `CreateCloud`), porque la reconexión restablece la configuración del terminal.

</Callout>

**Retorno:**

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `Code` | Int | Código de respuesta; `0` indica éxito. |
| `Message` | String | Mensaje de resultado. |

## Objeto ReceiptContent

Cuando `PrintOnPos` es `false`, las operaciones que generan un recibo (`Sale`, `Refund`, `GetLastVoucher`, `PreAuth`) devuelven un objeto `ReceiptContent`: una cadena con formato JSON que contiene los campos del recibo. Así el sistema de automatización puede imprimir o guardar el recibo. Si el sistema de automatización asume la impresión, **debe** imprimir al menos el recibo del comercio; el recibo del cliente es opcional.

| Campo | Tipo | Descripción |
| :--- | :--- | :--- |
| `getnetLogo` | String | Logo de Getnet codificado como cadena base64. |
| `sellerName` | String | Nombre del comercio. |
| `sellerAddress` | String | Dirección del comercio. |
| `cuit` | String | Código único de documento. |
| `com` | String | Código de vendedor del comercio. |
| `aid` | String | Código AID del terminal. |
| `term` | String | Código del terminal. |
| `authorizationCode` | String | Código de autorización de este recibo. |
| `letterTypeTransaction` | String | Indica la tecnología de entrada de la tarjeta. |
| `dateTime` | String | Marca de tiempo del recibo en ISO8601 (UTC). |
| `cardLastDigits` | String | Últimos 4 dígitos de la tarjeta. |
| `brand` | String | Marca de tarjeta. |
| `receiptCode` | String | Código de identificación impreso en el recibo. |
| `amount` | String | Valor de la transacción más la propina (si se aplicó), en moneda local. |
| `tip` | String | Importe de la propina. |
| `operationType` | String | Tipo de operación. |
| `errorMessage` | String | Mensaje de error. |
| `cardholderValidationMethod` | String | Método de validación usado en la transacción. |

## Recursos relacionados

* [Códigos de respuesta y error](/es/integrated-pos/reference/response-error-codes) — Los valores de Code y Message.
* [Errores de validación](https://docs.globalgetnet.com/es/products/in-store-payments/integrated-pos?doc=integrated-pos-validation-errors) — El `Message` estructurado que se devuelve cuando falla la validación.
* [Planes de cuotas e ids de planes](/es/integrated-pos/reference/installment-plans) — Los valores de PlanId disponibles.
* [Modelos de conexión](/es/integrated-pos/first-steps-pos/connection-models) — Cuándo usar CreateHttp, CreateUsb o CreateCloud.