Getnet DocsGetnet Docs

Devolver un pago

Las operaciones de devolución (DEVOLUCION) permiten a los comercios devolver fondos a un titular de tarjeta tras un pago exitoso. Get Central soporta múltiples flujos de devolución dependiendo de si la transacción original, la tarjeta física, o ambas, están disponibles en el momento de la devolución.

Esta guía se aplica a Slim Pack.

Una devolución siempre supone una reversión financiera de un pago previamente autorizado y capturado.

Requisitos

Antes de iniciar una devolución, asegúrate de que se cumplen las siguientes condiciones:

  • Get Central (TPVPC) inicializado y operativo

  • Capacidad de devolución habilitada para el comercio y el terminal

  • Al menos uno de los siguientes disponibles:

    • Tarjeta física utilizada en la transacción original, o
    • Identificadores de la transacción original

Las devoluciones pueden ser totales o parciales, dependiendo de la configuración y las reglas del emisor.

Modelos de devolución

Get Central soporta los siguientes escenarios de devolución:

  1. Devolución con tarjeta presente – la tarjeta original se lee de nuevo en el PIN pad
  2. Devolución con referencia original – la devolución se ejecuta utilizando los datos de la transacción original
  3. Devolución sin original – la devolución se ejecuta sin los datos de la transacción original (si está habilitado)

Todos los modelos de devolución utilizan el mismo tipo de operación: DEVOLUCION.

Proceso de devolución

Una devolución se realiza mediante la invocación de la función correspondiente del TPVPC con los parámetros requeridos. El TPVPC devuelve una respuesta XML que debes validar para determinar si la devolución fue autorizada.

Paso 1: Llamar a la función que corresponde al flujo

Cada flujo de devolución tiene su propia función. Ninguna de ellas es fnDllOperPinPad, que solo atiende pagos y preautorizaciones.

FlujoFunciónParámetros
Con tarjeta presentefnDllComContableTrjcImporte, cFactura, cNumPedido, cRTSOriginal, cXMLResp, iTamMaxResp
ReferenciadafnDllOperComContablecNumPedido, cRTSOriginal, cImporte, cFactura, cTipoOper, cXMLResp, iTamMaxResp
Sin originalfnDllDevSinOrigTrjcImporte, cFactura, cXMLResp, iTamMaxResp

Solo fnDllOperComContable lleva cTipoOper, porque sirve tanto a la devolución como a la confirmación: ponlo en DEVOLUCION para devolver, o en CONFIRMACION para capturar una preautorización. Las otras dos funciones llevan la operación en su propio nombre.

ParámetroTipoDescripción
cImporteStringImporte que se quiere devolver o confirmar, en formato XXXXXXXXX.XX. Valor obligatorio en modo Transparente.
cFacturaStringCampo suministrado por el comercio para asociar una descripción o valor a la operación. El TPVPC no realiza ninguna validación sobre él.
cNumPedidoStringNúmero de pedido de la operación original. El campo pedido se encuentra en todas las respuestas de peticiones realizadas al TPVPC. Valor obligatorio en modo Transparente.
cRTSOriginalStringIdentificador RTS de la transacción original. El campo identificadorRTS se encuentra en todas las respuestas de peticiones realizadas al TPVPC. Valor opcional; en modo Transparente se recomienda su uso.
cTipoOperStringDEVOLUCION o CONFIRMACION. Solo en fnDllOperComContable.
cXMLRespBufferBuffer que recibe el resultado XML.
iTamMaxRespIntegerTamaño máximo del buffer de respuesta.

El importe de la devolución debe ser menor o igual al importe original capturado.

Este es un ejemplo de devolución referenciada:

StringBuilder xmlResponse = new StringBuilder(8192);

int result = fnDllOperComContable(
    "123456",           // cNumPedido — original order
    "",                 // cRTSOriginal — recommended when available
    "5.00",             // cImporte
    "REF-2024-001",     // cFactura
    "DEVOLUCION",       // cTipoOper
    xmlResponse,
    xmlResponse.Capacity
);

Un valor de retorno de 0 indica que la operación fue procesada. No confirma la autorización.

Paso 2: Validar el resultado de la devolución

Tras la ejecución, el TPVPC devuelve una respuesta XML. Una devolución debe considerarse AUTORIZADA solo si la respuesta contiene:

<estado>F</estado>
<resultado>Autorizada</resultado>

Cualquier otra combinación debe tratarse como DENEGADA.

A continuación se muestra un ejemplo de una devolución autorizada:

<resultadoOperacion>
  <tipoPago>DEVOLUCION</tipoPago>
  <importe>5.00</importe>
  <moneda>978</moneda>
  <pedido>REF-2024-001</pedido>
  <estado>F</estado>
  <resultado>Autorizada</resultado>
</resultadoOperacion>

Requisitos de persistencia

Para fines de conciliación y auditoría, almacena al menos:

  • Referencia de la devolución (factura)
  • Referencia de la transacción original (pedido)
  • Resultado de la autorización y códigos de respuesta

Próximos pasos

Después de procesar una devolución, puedes continuar con tareas adicionales de conciliación y gestión:

  • Para obtener detalles sobre cómo generar e imprimir recibos conformes para el titular de la tarjeta, consulta la documentación Generar e imprimir recibos.
  • Para saber más sobre los pagos estándar en el punto de venta, consulta la guía Crear un pago en un paso único.
  • Para obtener un catálogo completo de los estados de las transacciones y los códigos de error del host, consulta la documentación de Códigos de resultado y errores.