# Menta Docs > Documentación para desarrolladores de Menta: SDK de terminales, servicios y referencia de la API. El contenido completo de todas las páginas está en /llms-full.txt. ## Introducción - [Introducción](/): Punto de partida de la documentación pública de Menta: SDK para terminales, servicios de integración vía API y referencia de la API. ## Asistentes de IA - [Asistentes de IA](/ai_assistants): Dos formas de usar la documentación de Menta con un asistente de IA: la conexión permanente por MCP en Claude, Claude Code, Cursor, VS Code y ChatGPT, y un mensaje listo para pegar en el chat. ## Terminales - [Integración del SDK de Menta](/terminals): Presenta el SDK de Menta para terminales, los procesos que resuelve (autenticación, llaves criptográficas, lectura de tarjetas EMV, mensajería de pagos) y el flujo de integración de una App externa. - [Notas de Release](/terminals/release_notes): Novedades, mejoras y correcciones de cada versión del SDK de Menta, organizadas por fecha y versión. - [Dependencias](/terminals/sdk_dependencies): Versiones mínimas, arquitectura recomendada y dependencias que se deben importar para usar el SDK de Menta. - [Configuración](/terminals/config_sdk): Configuración que se debe realizar al proyecto antes de integrar el SDK: clase de configuración del host de las APIs de Menta y permisos requeridos. - [Permisos de la App](/terminals/config_app_permissions): Código de ejemplo para solicitar en la App los permisos que el SDK necesita en terminales con Android 12 o superior. - [Recuperar y refrescar token](/terminals/token_retrieval): Cómo obtener y refrescar el token de autenticación que da acceso a las APIs de Menta en la integración con el SDK Full, usando una API Key de tipo merchant. - [Inicialización de terminal](/terminals/key_injection): Proceso de inicialización de la terminal tras obtener el token: requisitos (token, Merchant ID y número de serie del dispositivo) y resultado esperado. - [Lectura de tarjetas](/terminals/card_reader): Lectura de tarjetas con el estándar EMV mediante el kernel del dispositivo: requisitos, pasos y objetos que se deben instanciar para obtener los datos de la tarjeta. - [Validación de BIN y cuotas](/terminals/bin_validation): Validación del BIN de la tarjeta para determinar marca, tipo y si es nacional o internacional, y obtención de las cuotas disponibles para tarjetas de crédito no internacionales. - [Realizar una transacción con tarjeta presente](/terminals/create_payment): Pasos para iniciar el cobro con tarjeta presente una vez leída la tarjeta: objeto que se instancia, método doOperation y observer del resultado. - [Realizar un cobro con propina](/terminals/create_payment_tip): Cómo sumar propina a un cobro con tarjeta presente creando el objeto Breakdown dentro del objeto Amount, sin cambiar el flujo estándar de cobro. - [Realizar una transacción con QR](/terminals/create_payment_qr): Pasos para realizar una transacción con QR una vez que el comercio está habilitado: métodos de pago disponibles, selección del tipo de QR y generación del código. - [Consultar una transacción](/terminals/read_transaction): Consulta de transacciones desde el SDK aplicando distintos filtros, con los pasos, los objetos y los datos que devuelve la consulta. - [Realizar una anulación o devolución](/terminals/create_refund): Cómo realizar una anulación o devolución con el SDK: datos que se obtienen de la consulta de transacciones (paymentId y acquirerReferenceNumber) y campos del objeto OperationFlow. - [Consultar reporte de transacciones](/terminals/read_report): Consulta del reporte de transacciones desde el SDK: filtros, pasos y objetos involucrados, como BatchCloseRequest. - [Funcionamiento de reversas](/terminals/reversals): Cómo el SDK gestiona de forma interna el envío de reversas en las operaciones de pago y en qué situaciones se genera, sin acciones adicionales de la aplicación. - [Enviar ticket por mail](/terminals/send_ticket): Envío opcional del comprobante por correo electrónico con el método del SDK, que sigue el formato estándar de Menta: datos requeridos y pasos. - [Impresión de comprobantes](/terminals/print_ticket): Métodos del SDK para imprimir el comprobante, que marca el cierre de una transacción: obtención de la impresora con ReceiptPrinterFactory y validación de su estado. - [Generar release de la aplicación](/terminals/create_release): Cómo generar la versión release (.apk) de la aplicación, que optimiza el código y permite usar ProGuard para minificación y ofuscación. - [Glosario](/terminals/glossary): Glosario de términos del SDK y de pagos con tarjeta, como EMV, código de servicio y fallback. ## Servicios - [Servicios de integración vía API](/services): Introducción a los servicios de integración vía API de Menta y pasos recomendados para integrar un sistema externo, con enlaces a cada guía. - [Autenticación](/services/authorization): Las dos formas de autenticarse en la API de Menta, usuario y contraseña (token) y clave de acceso (API Key), y cómo se utiliza cada una. - [Configurar planes de pago](/services/plans_configuration): Cómo configurar por API los planes de pago, es decir, las tasas y plazos que se ofrecen a los comercios por tipo de tarjeta, marca, cuotas y emisión nacional o internacional. - [Dar de alta un comercio](/services/create_merchant_v2): Guía para dar de alta un comercio en tres pasos: registrar la entidad, crear y asignar los procesadores de pago y asignar planes de pago. - [Asignar procesadores al comercio](/services/acquirers): Cómo registrar un comercio en uno o más procesadores (adquirencias), los procesadores disponibles en Menta y los pasos de la implementación. - [Asignar planes de pago a un comercio](/services/plans_selection): Guía para asignar planes de pago a un comercio o a varios comercios con los servicios de la API: obtener los planes disponibles y los del comercio, y asignarlos. - [Pausar o eliminar comercios](/services/change_merch_status): Estados que se pueden establecer a un comercio (ENABLED, DISABLED y DELETED) para pausar o eliminar comercios, y qué implica cada uno. - [Administrar usuarios](/services/user_admin): Cómo crear y gestionar usuarios con distintos permisos: requisitos, resultado y ejemplo de creación de usuario. - [Obtener transacciones](/services/read_transactions): Cómo obtener la información de los pagos procesados por los comercios: requisitos, resultado y estructura del detalle de cada operación. - [Integración con webhooks de pagos](/services/webhooks): Integración con webhooks de pagos: recepción de notificaciones de transacciones mediante POST, suscripción a eventos y validación de los mensajes. - [Intención de pago](/services/payment_intention): Qué es una intención de pago, la configuración previa de la terminal y los endpoints disponibles para trabajar con intenciones de pago. ## Lista de APIs - [Referencia de la API](/api_reference): Índice de la referencia de la API de Menta con los endpoints disponibles, organizados por sección. ### Autenticación SDK - [Obtener Token](/api_reference/auth_get_token_customer_sdk): Endpoint GET /v1/api-keys/token: obtiene un token de autenticación a partir de una API Key de tipo Cliente o Comercio enviada en el header X-API-KEY; el token obtenido se envía en el header Authorization. ### Autenticación - [Iniciar sesión](/api_reference/auth_post_login): Endpoint POST /v1/login: permite iniciar sesión con usuario y contraseña para obtener el token de autenticación que se envía en los requests siguientes. ### API Keys Cliente - [Crear API Keys](/api_reference/api_key_customer_post): Endpoint POST /v1/api-keys: crea una API Key para un cliente (autogestión), con el header que corresponde según sea la primera API Key o ya exista una. - [Crear API Keys](/api_reference/api_key_customer_merchant_post): Endpoint POST /v1/api-keys: crea una API Key para un comercio asociado a un cliente; el tipo (MERCHANT o CUSTOMER) depende de si se envía merchant_id. - [Buscar API Keys](/api_reference/api_key_customer_get): Endpoint GET /v1/api-keys: lista las API Keys asociadas al cliente, por defecto las que están en estado ENABLED. - [Borrar API Keys](/api_reference/api_key_customer_delete): Endpoint DELETE /v1/api-keys/{id}: borra una API Key de forma lógica; queda con estado DELETED y deja de poder usarse para iniciar sesión. ### API Keys Comercio - [Crear API Keys](/api_reference/api_key_merchant_post): Endpoint POST /v1/api-keys: crea una API Key para un comercio determinado, con el header que corresponde según sea la primera API Key o ya exista una. - [Buscar API Keys](/api_reference/api_key_merchant_get): Endpoint GET /v1/api-keys: lista las API Keys asociadas al comercio, por defecto las que están en estado ENABLED. - [Borrar API Keys](/api_reference/api_key_merchant_delete): Endpoint DELETE /v1/api-keys/{id}: borra una API Key de forma lógica; queda con estado DELETED y deja de poder usarse para iniciar sesión. ### Transacciones - [Obtener transacciones](/api_reference/transactions_get_v2): Endpoint GET /v2/transaction-reports: busca información impositiva de transacciones por varios criterios, con la estructura de respuesta de la versión 2.0. ### Usuarios - [Obtener usuarios](/api_reference/users_get): Endpoint GET /v1/users: obtiene el listado de usuarios, disponible con credenciales CUSTOMER. - [Borrar usuario](/api_reference/users_delete): Endpoint DELETE /v1/users/{email}: borra un usuario de forma permanente, disponible con credenciales CUSTOMER. - [Crear usuario](/api_reference/users_post): Endpoint POST /v1/users: crea usuarios para una empresa o comercio, disponible con credenciales CUSTOMER. - [Restaurar contraseña](/api_reference/users_post_setpassword): Endpoint POST /v1/users/set-password: configura una contraseña temporal para un usuario de la jerarquía de quien envía el request, que debe cambiarla en su siguiente inicio de sesión. - [Cambiar contraseña](/api_reference/users_post_changepassword): Endpoint POST /v1/users/change-password: cambia la contraseña actual de un usuario por una nueva, que queda como permanente. ### Comercios - [Listar comercios](/api_reference/merchants_getall): Endpoint GET /v1/merchants: obtiene los comercios asociados a un cliente, disponible con credenciales CUSTOMER. - [Obtener comercio](/api_reference/merchants_get): Endpoint GET /v1/merchants/{merchant_id}: obtiene los datos de un comercio específico, disponible con credenciales CUSTOMER. - [Crear Comercio](/api_reference/merchants_post_create_v2): Endpoint POST /v2/merchants: crea un comercio asociado a un cliente, disponible con credenciales CUSTOMER; incluye el listado de provincias o estados. - [Geocodificar dirección](/api_reference/merchants_post_addresses_geocode): Endpoint POST /v1/addresses/geocode: obtiene las coordenadas geográficas (lat y lng) a partir de los datos de domicilio. - [Actualizar comercio](/api_reference/merchants_put): Endpoint PUT /v2/merchants/{merchant_id}: modifica un comercio asociado a un cliente mediante una actualización completa. - [Actualizar datos](/api_reference/merchants_patch): Endpoint PATCH /v2/merchants/{merchant_id}: modifica un comercio asociado a un cliente mediante una actualización parcial. - [Actualizar estado](/api_reference/merchants_patch_setstatus): Endpoint PATCH /v1/merchants/{merchant_id}/status/{status}: cambia el estado de un comercio, disponible con credenciales CUSTOMER. - [Obtener cuotas disponibles](/api_reference/merchants_installments_get): Endpoint GET /v1/merchants/{merchant_id}/installments/{acq_id}: obtiene las cuotas disponibles de un comercio específico por adquirencia. - [Actualizar plan de cuotas](/api_reference/merchants_installments_financing_post): Endpoint POST /v1/merchants/{merchant_id}/installments/{acquirer_id}/financing/{financing}/{status}: modifica el grupo de cuotas de un tipo de financiación de un comercio. ### Procesadores - [Buscar procesadores](/api_reference/acquirers_get): Endpoint GET /v1/acquirers: lista los procesadores del cliente o, si se envía merchantId, los de un comercio. - [Buscar datos requeridos](/api_reference/acquirer_get): Endpoint GET /v1/acquirers/merchants: obtiene la información requerida para registrar un comercio en un procesador específico. - [Dar de alta procesador](/api_reference/acquirer_post): Endpoint POST /v1/acquirers/merchants: almacena la información necesaria para registrar un comercio en un procesador específico, con ejemplos para GPS, PRISMA, BANORTE y AMEX. ### Planes de pago - [Obtener todos los planes](/api_reference/plans_getall): Endpoint GET /v1/fee-rules: obtiene los planes de pago creados por un cliente para ofrecer a sus comercios. - [Planes de un comercio](/api_reference/plans_getmerchant): Endpoint GET /v1/merchants/{merchant_id}/fee-rules: obtiene los planes de pago disponibles para un comercio específico. - [Crear plan de pago](/api_reference/plans_post_create): Endpoint POST /v1/fee-rules: crea un plan de pago; los comercios sin un plan asignado correctamente no tienen cálculos impositivos asociados en sus pagos. - [Seleccionar plan de pago](/api_reference/plans_post_apply): Endpoint POST /v1/merchants/{merchant_id}/fee-rules: selecciona los planes de pago de un comercio; la lista enviada reemplaza la selección actual. - [Eliminar plan de pago](/api_reference/plans_delete): Endpoint DELETE /v1/fee-rules/{id}: elimina un plan de pago que no se encuentre actualmente en uso. - [Asignación masiva de planes](/api_reference/plans_post_bulk_assign): Endpoints POST /v1/fee-rules/bulk-assign y POST /v1/fee-rules/bulk-assign/all: asignan un listado de planes de pago a un listado de comercios o a todos los comercios. ### Webhooks - [Obtener suscripciones](/api_reference/webhooks_get_subscriptions): Endpoint GET /v1/webhooks: obtiene todas las suscripciones a webhooks de un cliente, devueltas como una lista de elementos. - [Obtener suscripciones](/api_reference/webhooks_get_subscriptions_merchant): Endpoint GET /v1/merchants/{merchantId}/webhooks: obtiene todas las suscripciones a webhooks de un comercio, devueltas como una lista de elementos. - [Crear nueva suscripción](/api_reference/webhooks_post_create_subscription): Endpoint POST /v1/webhooks: crea una suscripción a notificaciones de webhooks, que se reciben en una URL especificada y se protegen con una clave secreta, e incluye los tipos de notificaciones. - [Suscripción por comercio](/api_reference/webhooks_post_create_subscription_merchant): Endpoint POST /v1/merchants/{merchantId}/webhooks: permite a un comercio suscribirse a notificaciones de webhooks e incluye los tipos de notificaciones disponibles. - [Borrar suscripción](/api_reference/webhooks_delete_subscription): Endpoint DELETE /v1/webhooks/{subscription_id}: borra una suscripción a webhooks a partir de su identificador. - [Notificación de prueba](/api_reference/webhooks_post_create_mock): Endpoint POST /v1/webhooks/mock/send-payment-notification: genera una notificación de prueba (MOCK_OPERATION_CREATED) para validar la integración sin generar pagos. - [Webhooks](/api_reference/webhooks_event_create): Esquema del cuerpo de los eventos de webhooks: operación creada, operación con cálculos impositivos y envío de comprobante por email. ### Terminales - [Obtener terminales](/api_reference/terminals_get): Endpoint GET /v1/terminals: obtiene las terminales asociadas a un cliente. ### Intenciones de pago - [Crear intención de pago](/api_reference/cloud_terminals_payment_intentions_post): Endpoint POST /cloud-terminals/payment-intentions: crea una intención de pago en una terminal física sin realizar el cobro inmediato; la terminal debe estar conectada. - [Cancelar intención de pago](/api_reference/cloud_terminals_payment_intentions_delete): Endpoint DELETE /cloud-terminals/payment-intentions: cancela una intención de pago generada en una terminal antes de que se complete la transacción; la terminal debe estar conectada. - [Obtener intenciones de pago](/api_reference/cloud_terminals_payment_intentions_list_get): Endpoint GET /cloud-terminals/payment-intentions: lista las intenciones de pago con filtros por terminal, requestId, rango de fechas y flow, con paginación, e incluye sus estados. - [Obtener intención de pago](/api_reference/cloud_terminals_payment_intentions_get): Endpoint GET /cloud-terminals/payment-intentions/{requestId}: consulta el detalle de una intención de pago a partir de su identificador (requestId).