Skip to main content
En esta guía, configuras un entorno de Midaz funcional. Luego ejecutas el workflow principal detrás de cualquier aplicación financiera en la plataforma. Creas una organización, un ledger y cuentas, y luego procesas tu primera transacción. Al final, tienes un ledger en funcionamiento listo para tu caso de uso. Esto puede ser pagos, préstamos, liquidación de marketplace o tesorería interna.

Requisitos previos


Antes de empezar, instala estas herramientas:
Midaz funciona en macOS (Apple Silicon e Intel) y Linux (amd64). En Windows, ejecútalo mediante WSL2.

Paso 1: Clonar el repositorio


Clona el repositorio de Midaz y muévete al directorio del proyecto.

Paso 2: Configurar los archivos de entorno


Midaz usa archivos .env para configurar cada componente. Genéralos a partir de los ejemplos incluidos:
Este comando copia .env.example a .env en cada directorio de componente. Los valores predeterminados funcionan para el desarrollo local. No necesitas cambiarlos.
Docker debe estar en ejecución antes de este paso. make set-env también genera las claves de CRM LCRYPTO_* mediante un contenedor Docker de un solo uso. El comando falla si Docker no está disponible.

Paso 3: Iniciar la infraestructura


Inicia los servicios de soporte que Midaz necesita: PostgreSQL, MongoDB, Valkey, RabbitMQ, Redpanda y OpenTelemetry.
Espera hasta que todos los contenedores reporten un estado saludable. Verifica su estado con:
Los servicios de infraestructura usan los siguientes puertos predeterminados:

Paso 4: Iniciar Midaz


Midaz se ejecuta como un único servicio de Ledger que incluye los dominios de onboarding y transacciones. Inícialo con:
Este comando inicia la infraestructura, si hace falta, ejecuta el contenedor de migración del ledger y luego inicia los servicios de Midaz: el ledger y Tracer. Todas las API del ledger están disponibles en el puerto 3002. Verifica que Midaz responde:
Debes recibir una respuesta 200 OK.

Paso 5: Crear una organización


Una organización representa la entidad de negocio detrás de la operación financiera: tu empresa, un cliente o una institución regulada. En producción, corresponde a la entidad legal que posee tus ledgers, cuentas y transacciones.
Para la especificación completa del endpoint, consulta Crear una organización.
Guarda el id devuelto en la respuesta. Lo usas en los siguientes pasos como {organization_id}.

Paso 6: Crear un ledger


Un ledger es un libro de registros aislado dentro de una organización. Puedes crear ledgers separados para distintos dominios financieros, como pagos, cobro de comisiones o liquidación. Cada ledger tiene sus propias cuentas e historial de transacciones.
Para la especificación completa del endpoint, consulta Crear un ledger.
Guarda el id devuelto como {ledger_id}.

Paso 7: Crear un activo


Un activo define la unidad de valor que se registra en el ledger. Puede ser una moneda fiat como BRL o USD. También puede ser puntos de lealtad, tokens cripto, valores, o cualquier unidad personalizada que tu negocio registre. Debes crear al menos un activo antes de crear cuentas.
Para la especificación completa del endpoint, consulta Crear un activo.

Paso 8: Crear cuentas


Las cuentas representan los participantes o contenedores en tu flujo financiero: la billetera de un cliente, un fondo de ingresos, la cuenta de un comerciante o una reserva interna. Cada cuenta se vincula a un único activo y sigue las reglas de contabilidad de partida doble. Necesitas al menos dos cuentas para procesar una transacción: una para debitar (origen) y otra para acreditar (destino).
Para la especificación completa del endpoint, consulta Crear una cuenta.
Crea una cuenta de origen:
Crea una cuenta de destino:

Paso 9: Procesar tu primera transacción


Esta es la acción central: mueve valor entre cuentas con trazabilidad completa. Midaz registra cada transacción como una operación balanceada. Debita el origen y acredita el destino, de modo que tus libros se mantienen consistentes por diseño.
Para la especificación completa del endpoint, consulta Crear una transacción usando JSON.
Esta transacción envía "1000" de @revenue a @customer-001. Midaz almacena los valores monetarios como cadenas decimales y no aplica una escala específica del activo.Tu integración define las reglas de presentación y redondeo para los montos en BRL. No proceses los valores monetarios como punto flotante binario.

Paso 10: Verificar el saldo


Verifica el saldo de la cuenta de destino para confirmar la transacción.
Para la especificación completa del endpoint, consulta Obtener un saldo por alias de cuenta.
El saldo devuelto debe reflejar el monto acreditado. En este punto, tienes un ledger en funcionamiento que procesa transacciones reales.

Explorar la API


Midaz puede exponer su especificación OpenAPI 3.1 y documentación interactiva de la API. Esta interfaz de documentación está deshabilitada de forma predeterminada. Para habilitarla, define OPENAPI_DOCS_ENABLED=true en components/ledger/.env y reinicia Midaz. Luego accede a:
  • Documentación de la API: http://localhost:3002/v1/docs
  • Especificación OpenAPI: http://localhost:3002/v1/openapi.json (o /v1/openapi.yaml)

Observabilidad


Midaz incluye una instancia de Grafana preconfigurada e integrada con OpenTelemetry.
  • Panel de Grafana: http://localhost:3100
  • Credenciales predeterminadas: midaz / lerian
Desde Grafana, puedes explorar logs, trazas y métricas en todos los servicios de Midaz.

Detener Midaz


Para detener todos los servicios:
Para eliminar contenedores y volúmenes y empezar desde un entorno limpio:

Próximos pasos


¿Nuevo en Midaz? Empieza con Entidades de Midaz para entender las organizaciones, los ledgers, las cuentas y las transacciones.

Crear transacciones

Conoce las distintas formas de crear transacciones, incluyendo JSON, inflow y outflow, y cuándo usar cada una.

Desplegar en producción

Despliega Midaz en Kubernetes usando el Helm chart oficial.

Configurar CRM

Gestiona holders y cuentas con alias para conectar identidades del mundo real con tus cuentas de Midaz.

Extender con plugins

Agrega Fees Engine, Pix y otras capacidades a tu implementación de Midaz.