Getnet DocsGetnet Docs

Emitir comprobantes digitales

Esta guía explica cómo emitir comprobantes digitales utilizando el TicketDigitalRepository. Esta función ofrece una alternativa ecológica a la impresión, permitiendo el envío de tickets por correo electrónico o su visualización mediante un código QR.

Para utilizar estas funciones, generalmente necesitarás el operationId de una transacción completada, disponible en el objeto Transaction devuelto por los pagos o las búsquedas en el historial.

Envío de recibos por correo electrónico

Para enviar un recibo digital directamente a la dirección de correo electrónico de un cliente, utiliza la función sendTicketDigital.

Repositorio: TicketDigitalRepository
Función: sendTicketDigital

Parámetros:

  • operId: El identificador único de la operación.
  • email: La dirección de correo electrónico del cliente.

Ejemplo de implementación

suspend fun emailReceipt(operationId: String, customerEmail: String) {
    val result = ticketDigitalRepository.sendTicketDigital(
        operId = operationId,
        email = customerEmail
    )

    when (result) {
        is RepositoryResult.Success -> {
            // The request was successfully sent to the host
            println("✅ Email sent successfully.")
        }
        is RepositoryResult.ConnectionError -> {
            println("❌ Connection failed. Please check internet.")
        }
        is RepositoryResult.ProtocolError -> {
            println("❌ Protocol Error: ${result.type}")
        }
        else -> {}
    }
}

El resultado exitoso contiene un objeto TicketDigitalResult.

Obtención de una URL para código QR

Si prefieres mostrar un código QR en la pantalla del TPV para que el cliente lo escanee, puedes recuperar la URL asociada al recibo digital utilizando getTicketDigitalURL.

Repositorio: TicketDigitalRepository
Función: getTicketDigitalURL

Parámetros:

  • operId: El identificador único de la operación.

Ejemplo de implementación

suspend fun getQrUrl(operationId: String) {
    val result = ticketDigitalRepository.getTicketDigitalURL(
        operId = operationId
    )

    when (result) {
        is RepositoryResult.Success -> {
            // Extract the URL from the result
            val urlResult = result.data
            // Note: Depending on the specific result object structure, accessing the URL property
            // (Check Javadoc for exact property name in TicketDigitalUrlResult)
             println("✅ Receipt URL retrieved. Ready to generate QR.")
        }
        is RepositoryResult.ConnectionError -> println("❌ Connection Error")
        else -> {}
    }
}

El resultado exitoso contiene un objeto TicketDigitalUrlResult.

Próximos pasos