# Pagos en cuotas y estrategias de intereses

Esta guía explica cómo realizar pagos en cuotas (parcelado) con un TPV Integrado usando la operación `Sale`. Las cuotas se comportan de forma idéntica en las conexiones USB y de red (Network). Las reglas y los planes dependen del país y de la marca de la tarjeta.

## ¿Qué son los pagos en cuotas?

Los pagos en cuotas dividen el importe de la transacción en varios cargos. El sistema de automatización envía `Sale` con `Installments`, `PlanId` e `Interest` (y, opcionalmente, `OperationMode`) para que el terminal aplique el plan y los intereses correctos. Si omites un parámetro, el TPV puede mostrar en pantalla la selección de plan o de cuotas. La disponibilidad depende de la configuración del comercio y del terminal.

## Antes de comenzar

Antes de realizar un pago en cuotas:

* Se debe crear y validar un Connector con `Polling`
* El Modo TPV Integrado debe estar activo
* El comercio y el terminal deben estar habilitados para transacciones en cuotas

## Paso 1: Ejecuta una venta en cuotas

Para realizar un pago en cuotas, llama a la operación `Sale` con los parámetros correspondientes. Si no envías un valor necesario, el TPV le pide al operador que seleccione el plan o las cuotas de forma manual.

| Parámetro | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| `Amount` | Long | No | Valor de la transacción en moneda local. |
| `SaleType` | Enum | No | Debe ser `Card` para pagos en cuotas. |
| `Installments` | Int | No | Número de cuotas. |
| `PlanId` | String | No | Identificador del plan de cuotas (por ejemplo, Argentina). Consulta [Planes de cuotas e identificadores de planes](/es/integrated-pos/reference/installment-plans). |
| `Interest` | Enum | No | Indica si el plan incluye intereses: `OnPosSelection`, `Interest` o `NoInterest`. |
| `OperationMode` | Enum | No | Quién calcula el importe final: `CalculatedGetnet` (lo calcula el terminal) o `CalculatedISV` (tu aplicación lo calcula y envía el importe final). |
| `CallerId` | String | No | ID generado por el sistema de automatización, necesario para consultar después la transacción con Check Status. Sin caracteres especiales ni Unicode. |

<Callout type="warning">

Las reglas de cuotas, los planes permitidos y las opciones de intereses dependen del país y de la marca de la tarjeta, y el TPV las valida. Para Argentina, consulta el anexo de Plan Ids; si `PlanId` es plan_emisor o plan_emisor_accelerated y el comercio tiene "Plan Cuotas", la respuesta puede contener plan_getnet_simple en `PlanId`.

</Callout>

<Callout type="note">

Estos parámetros de cuotas se aplican solo a las ventas con tarjeta. En las ventas con código QR se ignoran `Installments`, `PlanId`, `Interest`, `OperationMode` y `Tip`: la billetera aplica sus propias cuotas. Consulta [Pago con código QR](/es/integrated-pos/pos-payment-guides/qr-code-payment).

</Callout>

El siguiente ejemplo muestra cómo llamar a una venta en 3 cuotas y con intereses:

```csharp
var saleRequest = new SaleRequest
{
    Amount = 120000,
    SaleType = SaleType.Card,
    Installments = 3,
    PlanId = "plan_emisor_accelerated",
    Interest = InterestType.Interest
};

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

Una vez iniciada la solicitud, el TPV gestiona el flujo de la transacción y la interacción con el titular de la tarjeta.

## Paso 2: Gestiona la respuesta

Una venta en cuotas exitosa devuelve la estructura de respuesta estándar de `Sale`. A continuación ves un ejemplo de respuesta completa para una venta en cuotas:

```json
{
  "Code": 0,
  "Message": "APPROVED",
  "OperationMode": "CalculatedGetnet",
  "AuthorizationCode": "551437",
  "Amount": 120000,
  "OriginalAmount": 120000,
  "AccountingDate": "2025-08-25T16:11:23.0000000Z",
  "RealDate": "2025-08-25T13:11:50.8570000-03:00",
  "SaleType": "Card",
  "CommerceCode": "1234567890",
  "TerminalId": "GET00123",
  "PlanId": "plan_emisor_accelerated",
  "Interest": "Interest",
  "Installments": 3,
  "CallerId": "123456-789000",
  "CardBin": "84168075"
}
```

Como ves arriba, la respuesta incluye el plan final y los detalles de intereses que aplicó el TPV. Verifica siempre el parámetro `Code` antes de procesar el resultado.

## Intereses y modo de operación

Los parámetros `Interest` y `OperationMode` controlan quién calcula y aplica los intereses.

Valores de `Interest`:

* **OnPosSelection**: El usuario elige en el TPV si el plan incluye intereses.
* **Interest**: El plan incluye cargos por intereses.
* **NoInterest**: El plan no incluye intereses.

Valores de `OperationMode`:

* **CalculatedGetnet**: El terminal calcula el importe final y los intereses, según reglas de negocio internas y los datos que recoge en tiempo real durante el flujo de pago. Es el valor por defecto cuando omites `OperationMode`, por lo que el importe enviado puede cambiar según `PlanId`, `Interest` e `Installments`.
* **CalculatedISV**: Tu aplicación calcula y envía el importe final a cobrar; el terminal no lo modifica.

Sea cual sea el modo, la respuesta siempre devuelve el importe final cobrado, las `Installments` usadas y los demás campos que describen las condiciones de pago confirmadas.

### Comportamiento con tarjetas de crédito

Cuando el terminal detecta una tarjeta de crédito, valida qué planes y configuraciones de intereses permite el comercio. De ahí surgen tres comportamientos:

1. **No envías datos de cuotas** (`OperationMode`, `PlanId`, `Interest`, `Installments`): el terminal le pide al operador que seleccione el plan y el número de cuotas en el dispositivo.
2. **Envías datos no permitidos** para el comercio o la tarjeta: el terminal deja que el usuario elija otra opción, porque las condiciones solicitadas no están autorizadas.
3. **Envías datos válidos**: el terminal omite las pantallas de selección de plan, intereses y cuotas, y pasa directo a la confirmación del pago.

### Combinaciones de parámetros

La combinación de `PlanId`, `OperationMode`, `Interest` e `Installments` determina el resultado:

| PlanId | OperationMode | Interest | Installments | Resultado |
| :--- | :--- | :--- | :--- | :--- |
| `contado` | CalculatedISV | NoInterest | 1 (o ninguna) | Procesa la transacción con una sola cuota. |
| `contado` | CalculatedISV | NoInterest | 2–99 | Error: `contado` no permite más de una cuota. |
| `contado` | CalculatedISV | Interest | cualquiera | Error: CalculatedISV no permite cuotas con intereses. |
| `contado` | CalculatedGetnet | NoInterest | 1 (o ninguna) | Procesa la transacción con una sola cuota. |
| `contado` | CalculatedGetnet | NoInterest | 2–99 | Error: `contado` no permite más de una cuota. |
| `contado` | CalculatedGetnet | Interest | 1 | Error: `contado` no permite transacciones con intereses. |
| `contado` | CalculatedGetnet | Interest | 2–99 | Error: `contado` no permite más de una cuota. |
| Otros planes | CalculatedISV | NoInterest | ninguna | Solicita las cuotas en pantalla. |
| Otros planes | CalculatedISV | NoInterest | 1–99 | Verifica si el valor de cuotas está permitido; si no lo está, lo solicita en pantalla. |
| Otros planes | CalculatedISV | Interest | cualquiera | Error: CalculatedISV no permite cuotas con intereses. |
| Otros planes | CalculatedGetnet | NoInterest | ninguna | Solicita las cuotas en pantalla. |
| Otros planes | CalculatedGetnet | NoInterest | 1–99 | Verifica si el valor de cuotas está permitido; si no lo está, lo solicita en pantalla. |
| Otros planes | CalculatedGetnet | Interest | ninguna | Solicita las cuotas en pantalla. |
| Otros planes | CalculatedGetnet | Interest | 1–99 | Verifica si el valor de cuotas está permitido; si no lo está, lo solicita en pantalla. |

La disponibilidad también depende del plan seleccionado, del país y de la marca de la tarjeta. Consulta [Planes de cuotas e identificadores de planes](/es/integrated-pos/reference/installment-plans).

## Siguientes pasos

* Para la operación Sale básica y sus parámetros sin cuotas, consulta la guía [Pago en un solo paso](/es/integrated-pos/pos-payment-guides/single-step-payment).
* Para aceptar pagos con billeteras digitales, consulta la guía [Pago con código QR](/es/integrated-pos/pos-payment-guides/qr-code-payment).
* Para ver la lista completa de planes disponibles y las reglas por país, consulta la [Referencia de planes de cuotas](/es/integrated-pos/reference/installment-plans).