Pago en un solo paso
Esta guía explica cómo ejecutar un pago en un solo paso con un TPV Integrado. Un pago en un solo paso completa la autorización y la captura en una sola operación mediante la función Sale.
¿Qué es un pago en un solo paso?
Un pago en un solo paso es una venta que autoriza y captura la transacción en una única solicitud. El sistema de automatización envía una solicitud Sale con los parámetros deseados; el TPV ejecuta el flujo de pago y devuelve una respuesta estructurada. El comportamiento es el mismo en USB (CreateUsb), red (CreateHttp) y nube (CreateCloud).
Antes de comenzar
Antes de realizar un pago, asegúrate de que:
- Se haya creado un Connector con un modelo de conexión compatible
- El terminal se haya validado con
Polling - El Modo TPV Integrado esté activo
Paso 1: Crea y ejecuta la solicitud de venta
Los pagos en un solo paso usan la operación Sale. Si no envías un parámetro, el TPV muestra la pantalla de entrada correspondiente.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
Amount | Long | No | Valor en moneda local (por ejemplo, 10000 = 100,00). Si se omite, el TPV solicita el importe. |
SaleType | Enum | No | Tipo de pago: Card o QrCode. Si se omite, el TPV solicita el tipo de pago. |
PrintOnPos | Bool | No | Si es true, el recibo se imprime en el TPV; si es false, el contenido del recibo se devuelve en la respuesta. |
EmployeeId | Int | No | Identificación del camarero u operador. |
Tip | Long | No | Importe de la propina sumado al total de la transacción. |
Installments | Int | No | Número de cuotas. |
SkipReceipt | Bool | No | Si es true, omite la pantalla de recibo del cliente después de la transacción. |
SkipConfirmation | Bool | No | Si es true, omite la pantalla que muestra el importe y los detalles de las cuotas para su confirmación. |
PlanId | String | No | Plan de cuotas (por ejemplo, Argentina). Consulta Planes de cuotas e identificadores de planes. |
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. |
Este es un ejemplo de una solicitud de pago en un solo paso:
var saleRequest = new SaleRequest
{
Amount = 10000,
SaleType = SaleType.Card
};
var saleResult = connector.SaleAsync(saleRequest);Durante la ejecución, el TPV gestiona toda la interacción necesaria con el cliente (lectura de la tarjeta, PIN, confirmación, etc.).
Paso 2: Gestiona la respuesta
Una respuesta exitosa incluye al menos los campos de abajo. Verifica siempre Code (por ejemplo, 0 = éxito) antes de continuar.
| Campo | Tipo | Descripción |
|---|---|---|
Code | Int | Código de respuesta (consulta los anexos). 0 = éxito. |
Message | String | Resultado de la operación (por ejemplo, "APPROVED"). |
CommerceCode | String | Código de sucursal aprobado por Getnet. |
TerminalId | String | Código del terminal TPV. |
AuthorizationCode | String | Código de autorización de la transacción. |
Amount | Long | Importe de la transacción en moneda local. |
OriginalAmount | Long | Importe original de la transacción en moneda local. |
OperationMode | Enum | Modo de operación seleccionado. Puede ser CalculatedGetnet o CalculatedISV. |
Last4Digits | String | Los últimos cuatro dígitos de la tarjeta. |
CardBrand | String | Marca de la tarjeta usada en la transacción (por ejemplo, "Mastercard"). |
CardType | String | Tipo de tarjeta (por ejemplo, "Credit"). |
AccountingDate | String | Fecha y hora de la transacción (GMT). |
RealDate | Date | Fecha y hora de la transacción (local). |
SaleType | Enum | Tipo de pago (por ejemplo, "Card"). |
ReceiptContent | Dict | Líneas del recibo cuando PrintOnPos es false. |
PlanId, Interest, Installments | — | Presentes cuando se usaron cuotas. |
CallerId | String | ID generado por el sistema de automatización. |
CardBin | String | Los primeros ocho dígitos de la tarjeta del cliente (máx. 8). |
Este es un ejemplo de una respuesta exitosa:
{
"Code": 0,
"Message": "APPROVED",
"CommerceCode": "0000081561",
"TerminalId": "AR001P0B",
"AuthorizationCode": "551437",
"Amount": 10000,
"OriginalAmount": 10000,
"OperationMode": "CalculatedGetnet",
"Last4Digits": "7167",
"CardBrand": "master",
"CardType": null,
"AccountingDate": "2025-08-25T16:11:23.0000000+00:00",
"RealDate": "2025-08-25T13:11:50.8570000-03:00",
"SaleType": "Card",
"ReceiptContent": null,
"PlanId": "contado",
"Interest": null,
"Installments": 1,
"CallerId": "123456-789000",
"CardBin": "84168075"
}Siguientes pasos
- Para conocer los detalles de las cuotas, PlanId y las opciones de intereses, consulta la guía Pagos en cuotas.
- Para aceptar pagos con billeteras digitales, consulta la guía Pago con código QR.
- Si es tu primer contacto con el TPV Integrado, empieza por la guía Inicio rápido.
- Para una referencia completa de todos los parámetros de Sale y campos de respuesta, consulta la Referencia de métodos y parámetros.