Notas de Release

Notas de Release

Aquí encontrarás todas las novedades, mejoras y correcciones de cada versión del SDK, organizadas por fecha y versión.

Versión 7.6.3 - Septiembre 2026

⚠️

Esta versión incluye cambios que rompen compatibilidad: se eliminan los módulos printer_i9100, rest_client y keys_admin_core, y se renombran varios campos de OperationFlow. Revisa cada punto de esta sección antes de actualizar.

Mejoras

  • Consolidación de módulos: Los módulos printer_i9100, rest_client y keys_admin_core se eliminan como dependencias independientes. Su funcionalidad pasa a core_payment (7.6.3) y al nuevo módulo emv_contract (1.0.1).

  • Nueva API de impresión de tickets: La impresora ya no se instancia con DevicePrintImpl. Ahora se obtiene a través de ReceiptPrinterFactory.create(context), que retorna la interfaz ReceiptPrinter. Para conocer el resultado de la impresión se usa el nuevo método ReceiptPrinterFactory.printAndAwaitResult, que reemplaza el patrón manual de startPrint() + LiveData.observeForever() (la nueva API llama a startPrint() internamente, no es necesario invocarlo antes).

    // Antes (SDK <= 7.5.x)
    val devicePrintImpl = DevicePrintImpl(context = applicationContext)
    // ...
    devicePrintImpl.startPrint()
    Handler(Looper.getMainLooper()).post {
        devicePrintImpl.result.observeForever(resultObserver)
    }
    // Ahora (SDK 7.6.3)
    val devicePrintImpl = ReceiptPrinterFactory.create(applicationContext)
    // ...
    ReceiptPrinterFactory.printAndAwaitResult(devicePrintImpl) { result ->
        if (result == 0) {
            Log.i(TAG, "Impresión exitosa")
        } else {
            Log.i(TAG, "Error de impresión: $result")
        }
    }

    Los imports del paquete de impresión también cambian:

    // Antes
    import com.menta.android.printer.i9100.core.DevicePrintImpl
    import com.menta.android.printer.i9100.model.Align
    import com.menta.android.printer.i9100.model.TextFormat
    import com.menta.android.printer.i9100.util.INSTALLMENT_LABEL
    import com.menta.android.printer.i9100.util.TOTAL_LABEL
    import com.menta.android.printer.i9100.util.EMPTY
     
    // Ahora
    import com.menta.android.core.terminal.ReceiptPrinterFactory
    import com.menta.android.emv.contract.printer.Align
    import com.menta.android.emv.contract.printer.TextFormat
    import com.menta.android.emv.contract.printer.INSTALLMENT_LABEL
    import com.menta.android.emv.contract.printer.TOTAL_LABEL
    import com.menta.android.core.utils.EMPTY
  • Migración de keys_admin_core a core_payment: Las clases ParametroDB y Resource se movieron de paquete. Si tu integración las referencia directamente, actualiza el import:

    // Antes
    import com.menta.android.keys.admin.core.repository.parametro.ParametroDB
    import com.menta.android.keys.admin.core.remote.keys.Resource
     
    // Ahora
    import com.menta.android.core.repository.parametro.ParametroDB
    import com.menta.android.core.remote.keys.Resource
  • Campos de OperationFlow renombrados a camelCase: Si tu integración construye estos objetos manualmente (por ejemplo, en un flujo de reverso), actualiza las referencias:

    AntesAhora
    operationFlow.acquirer_idoperationFlow.acquirerReferenceNumber
    operationFlow.payment_idoperationFlow.paymentId
    card.is_internationalcard.isInternational
    operationFlow.additional_infooperationFlow.additionalInfo

    Ejemplo real, tomando los identificadores del pago original en un reverso:

    // Antes
    operationFlow.acquirer_id = transaction.operation.acquirer_id
    operationFlow.payment_id = transaction.operation.id
     
    // Ahora
    operationFlow.acquirerReferenceNumber = transaction.operation.acquirerReferenceNumber
    operationFlow.paymentId = transaction.operation.id
  • BinValidationData.setOperationFlow simplificado: Ya no requiere los parámetros currency e interest; solo se necesita operationFlow.

    // Antes
    binValidationData.setOperationFlow(
        operationFlow = operationFlow!!,
        currency = if (Currency.MX.name == currency) CURRENCY_LABEL_MX else CURRENCY_LABEL_ARG,
        interest = false
    )
     
    // Ahora
    binValidationData.setOperationFlow(
        operationFlow = operationFlow!!
    )
  • Actualización de dependencias nativas: common-cross 4.1.1 → 4.1.7, restclient-core 3.1.1 → 3.1.6, emv-i9100-reader 4.0.8 → 4.2.0. La librería nativa Urovo (antes urovoSdkLibs_New) se renombra a com_menta_android_emv_i9100_urovo-native, siguiendo la convención de nombres del resto de los módulos, sin cambios funcionales.

Puedes ver el detalle completo de estos cambios en este commit (opens in a new tab).


Versión 7.4.5 - Abril 2026

Nuevas Funcionalidades

Mejoras

  • Mensajes de lectura de tarjeta: Se aplicaron mejoras en el proceso de notificar los mensajes de error retornados por el kernel. Se recomienda implementar el ActionType para evaluar qué decisión tomar.

Puedes ver el detalle completo de estos cambios en este commit (opens in a new tab).


Versión 7.4.0 - Marzo 2026

Nuevas Funcionalidades

  • Implementación de pagos con QR: Se agregó soporte para realizar transacciones mediante código QR. El comercio debe tener dado de alta el pago con QR para poder utilizar esta funcionalidad.
  • Método para consultar métodos de pago disponibles: Nuevo método que permite consultar los métodos de pago disponibles para el comercio, como pagos con tarjeta y/o pagos con QR, según la configuración y habilitación de cada comercio.

Mejoras

  • Funcionamiento de reversas: Se aplicaron mejoras en el proceso de reversas para un comportamiento más estable.

Versión 7.2.7 - Noviembre 2025

Nuevas Funcionalidades

  • Pagos con propina: Hemos agregado un nuevo ejemplo que muestra cómo implementar pagos con propina de forma sencilla desde la App que integra nuestro SDK. Este caso cubre la lógica necesaria para solicitar e incluir la propina dentro del request final de la transacción.
  • Pago en dólares para Argentina: También añadimos un ejemplo específico para procesar pagos en USD, exclusivamente para terminales operando en Argentina. Este caso permite seleccionar la moneda al momento del pago y construir el request de pago con la moneda seleccionada.
ℹ️

En caso de requerir las nuevas funcionalidades de pago con propinas y pago en dólares, es necesario solicitar previamente la habilitación correspondiente. Estas características no se encuentran activas por defecto y deben ser configuradas por el equipo de Menta y el adquirente.

  • Nuevo método de inicialización: Ahora mediante un sólo método el SDK realiza la inicialización del dispositivo como: Carga de parámetros, carga de llaves y carga de configuración EMV. A partir de esta versión, la clase MasterKeyData queda deprecada.

Mejoras

  • Almacenamiento de token: A partir de esta versión, el SDK se encarga de hacer el storage local del token de sesión, ya no es necesario que se realice desde la App externa.
  • Datos del comercio y terminal disponibles: Desde la App externa se puede acceder a datos como: terminalId, Nombre fantasía del comercio, dirección, etc. Aplica si se usa previamente el nuevo método de inicialización.
  • Método de lectura de tarjeta simplificado: Se requieren menos datos para la invocación del método findCardProcess. Aplica si se usa previamente el nuevo método de inicialización. A partir de esta versión, el método anterior queda deprecado.
  • Método para consulta de bines simplificado: Se requieren menos datos para la invocación del método setOperationFlow. Aplica si se usa previamente el nuevo método de inicialización. A partir de esta versión, el método anterior queda deprecado.
  • Constructor para inicio de transacciones simplificado: Se requieren menos datos para crear la instancia de la clase DoProcessAdquirerOperationData. Aplica si se usa previamente el nuevo método de inicialización. A partir de esta versión, el constructor anterior queda deprecado.
  • Método de impresión de lineas simplificado: A partir de esta versión se agrega el método addBlackLine para imprimir líneas de separación, el método anterior addImage queda deprecado.

Correcciones

  • Solucionamos la impresión de Strings extensos. Al imprimir un String muy extenso, la impresora continúa en la siguiente línea sin perder caracteres.

Historial de Versiones

VersiónFechaTipoDescripción
7.6.3Septiembre 2026MajorConsolidación de printer_i9100 rest_client y keys_admin_core en core_payment/emv_contract, nueva API de impresión y renombrado de campos de OperationFlow.
7.4.5Abril 2026MajorMejoras en mensajes de lectura de tarjeta.
7.4.0Marzo 2026MajorImplementación de pagos con QR, método de consulta de métodos de pago y mejoras en reversas.
7.2.7Noviembre 2025MajorNuevas funcionalidades, mejoras y métodos deprecados.

Cómo actualizar

Para actualizar a la última versión del SDK, sigue estos pasos:

  1. Revisa las notas de release para entender los cambios
  2. Revisa la documentación y demo para acceder a ejemplos de implementación de los nuevos métodos o cambios en el SDK
  3. Verifica compatibilidad con tu versión actual. Menta va a notificar cuando una versión no es retrocompatible.
  4. Actualiza las dependencias en tu proyecto
  5. Ejecuta las pruebas para asegurar que todo funciona correctamente

Última actualización: Septiembre 2026