Getnet DocsGetnet Docs

Gestión de recibos de transacciones

El Get Mini Android SDK proporciona todos los datos de transacción necesarios y cadenas de formato (literales) para generar recibos legales. Si bien el SDK no incluye un servicio directo de entrega por correo electrónico/SMS, ofrece una funcionalidad de consulta para recuperar duplicados de recibos siempre que permanezcan disponibles en el host de autorización.

Requisitos

Para gestionar recibos, asegúrate de:

  1. El SDK está inicializado y el comercio ha iniciado sesión.
  2. Tienes los Datos del Terminal (RedCLSTerminalData) del proceso de inicio de sesión.
  3. Para recibos históricos, necesitas el Identificador de Transacción original (identifierRTS).

Paso 1: Acceder a los datos del recibo en tiempo real

Cuando una transacción (Venta, Devolución o Preautorización) se completa exitosamente, el objeto RedCLSTransactionData resultante contiene una lista de literales. Estas son cadenas preformateadas proporcionadas por el host que tu aplicación debe usar para construir el recibo.

// En tu manejador de resultados de transacción
val txData = response.transactionData

if (txData != null) {
    // Recopilar literales para el recibo
    val receiptLines: List<String> = txData.literals

    // Iterar y mostrar/imprimir
    receiptLines.forEach { line ->
        println("Línea de Recibo: $line")
    }
}

Para transacciones que involucran Conversión de Moneda (DCC), los literales adicionales se encuentran en txData.dccSelectionData.literals.


Paso 2: Recuperar boleta histórica (duplicado)

Si necesitas generar un recibo después de que la transacción haya concluido (por ejemplo, desde una pantalla de historial de transacciones), usa el RedCLSQueryManager para obtener los datos.

Los recibos históricos se pueden recuperar siempre que el recibo aún esté disponible en el host de autorización. El SDK no garantiza la retención indefinida de datos de recibo en el lado del host.

import redcls.itpvpc.managers.RedCLSQueryManager
import redcls.itpvpc.data.RedCLSQueryTicketCloudData

val queryData = RedCLSQueryTicketCloudData(terminalData, "IDENTIFICADOR_RTS_ORIGINAL")

Thread {
    val response = RedCLSQueryManager.queryTicket(context, queryData)

    if (response.status == 0) {
        val historicalTx = response.transactionData
        val historicalLiterals = historicalTx.literals
        // Genera tu duplicado de recibo usando estos literales
    }
}.start()

Paso 3: Manejar la entrega digital (SMS/Email)

Dado que el SDK es agnóstico al método de entrega, tu aplicación es responsable de enviar los datos del recibo al cliente.

Flujo de trabajo recomendado:

  1. Generar Texto Plano: Construye una representación de texto plano del recibo uniendo los literals con saltos de línea.
  2. Integrar Distribución: Envía este texto (o una versión formateada en HTML/PDF) usando los proveedores de servicios de correo electrónico o SMS de tu backend.
  3. Consentimiento del Cliente: Captura el correo electrónico o número de teléfono en tu interfaz de usuario antes de activar la entrega desde tu infraestructura.

Mejores prácticas

  • Impresión Térmica: Los literales están diseñados para imprimirse en impresoras térmicas estándar de POS.
  • Autenticación PIN: Si txData.pinAuthenticatedLiteral está presente, debes mostrarlo y típicamente omitir el cuadro de firma en el recibo.
  • Persistencia: Almacena el identifierRTS en tu base de datos local para que siempre puedas consultar el histórico de recibos para un duplicado sin almacenar todas las líneas del recibo localmente.

Próximos pasos