> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Matcher y Midaz

> Cómo encaja Matcher junto a Midaz Ledger en un stack de Lerian: dos servicios complementarios e independientes que comparten datos mediante exportaciones e importaciones, en lugar de una conexión en vivo.

<Info>
  **No existe un conector directo de Matcher a Midaz.** Matcher es un servicio de conciliación independiente. No abre una conexión en vivo con Midaz y no tiene configuración específica de Midaz. Esta página explica cómo funcionan juntos ambos productos a nivel conceptual.
</Info>

Matcher y [Midaz](/es/midaz) son servicios de Lerian separados con funciones distintas:

* **Midaz** es el ledger — el sistema de registro de balances y asientos.
* **Matcher** es el motor de conciliación — compara dos conjuntos de datos independientes e informa qué coincide, qué no coincide y por qué.

Son **complementarios, no acoplados**. Obtienes valor de Midaz-más-Matcher al conciliar los datos del ledger *contra* un conjunto de datos externo (un extracto bancario, un informe de liquidación de una pasarela), que es exactamente el problema que Matcher existe para resolver. Los datos se mueven entre ellos mediante **exportación e importación**, no a través de un enlace en tiempo real.

## Cómo encajan juntos

***

Un flujo típico de conciliación en Lerian:

1. **Midaz registra los asientos.** Midaz contabiliza las transacciones en el ledger de la forma habitual.
2. **Exportas los datos del ledger** del período que quieres conciliar (por ejemplo, los asientos de una cuenta de efectivo de un día).
3. **Importas esa exportación en Matcher** como un lado de un contexto — una fuente de tipo `LEDGER`.
4. **Importas los datos de la contraparte** — el extracto bancario o el informe de la pasarela — como el otro lado.
5. **Matcher empareja los dos lados** usando tus reglas de coincidencia y expone las excepciones para su revisión.

Midaz es el origen de un conjunto de datos; el banco o la pasarela es el origen del otro. Matcher nunca habla directamente con Midaz — trabaja a partir de los datos exportados que le proporcionas.

## Modelar Midaz como una fuente

***

Dentro de un contexto de Matcher, los datos del ledger de Midaz se representan mediante una fuente de tipo `LEDGER`. `LEDGER` es simplemente la categoría de Matcher para datos de "ledger interno / sistema contable"; no es un driver de Midaz.

```json theme={null}
{
  "name": "Midaz Cash Ledger",
  "type": "LEDGER",
  "side": "LEFT",
  "config": {}
}
```

<Tip>Referencia de API: [Create source](/es/reference/matcher/create-source)</Tip>

El otro lado del contexto es el conjunto de datos externo contra el que estás conciliando — normalmente una fuente `BANK` o `GATEWAY` en el `side` opuesto.

Tipos de fuente disponibles en Matcher:

| Tipo      | Significado                                                        |
| --------- | ------------------------------------------------------------------ |
| `LEDGER`  | Ledger interno / sistema contable (p. ej., exportaciones de Midaz) |
| `BANK`    | Feed de extracto bancario                                          |
| `GATEWAY` | Informe de pasarela de pago                                        |
| `CUSTOM`  | Cualquier otro feed a medida                                       |
| `FETCHER` | Extracción del motor de descubrimiento                             |

## Llevar los datos del ledger a Matcher

***

Matcher ingiere los datos que exportas de Midaz de la misma manera que ingiere cualquier otra fuente — no hay ningún transporte específico de Midaz.

* **Carga de archivos.** Exporta los asientos del ledger (CSV/JSON) y sube el archivo a la fuente. Esta es la vía más común.
* **Rail de consulta del motor de descubrimiento.** Para las fuentes vinculadas al rail `query`, Matcher extrae las filas a través de una conexión del motor de descubrimiento en lugar de un archivo. Este es un rail de ingesta genérico, no un conector de Midaz.

En cualquier caso, luego defines un [mapeo de campos](/es/matcher/configuration/matcher-field-mapping) que renombra las columnas exportadas a los campos canónicos de Matcher (`external_id`, `amount`, `currency`, `date`, y los opcionales `description`, `fee_amount`, `fee_currency`).

<Tip>Referencia de API: [Upload transaction file](/es/reference/matcher/upload-transaction-file)</Tip>

### Mapeo de campos personalizado

La mayoría de las columnas del ledger se mapean directamente, pero algunos valores que necesitas para la coincidencia residen **dentro de los metadatos de la transacción** en lugar de como campos de nivel superior. Referéncialos en el mapeo de campos con notación de punto — apunta una clave canónica a la ruta anidada.

Por ejemplo, el `endToEndId` de Pix (Brasil) se almacena en los metadatos de la transacción en Midaz. Para conciliar por él, mapea una clave canónica (aquí, `description`) a la ruta en los metadatos:

```json theme={null}
{
  "mapping": {
    "external_id": "id",
    "amount": "amount",
    "currency": "asset_code",
    "date": "created_at",
    "description": "metadata.endToEndId"
  }
}
```

Cuando Midaz está integrado, los campos estándar se mapean automáticamente; solo los overrides de metadatos como este necesitan declararse explícitamente. Consulta [Mapeo de campos](/es/matcher/configuration/matcher-field-mapping) para el vocabulario canónico completo.

## Fundamentos compartidos de la plataforma

***

Aunque no existe una integración en vivo, Matcher está construido para la misma plataforma que Midaz y refleja varios de sus patrones:

* **Autenticación.** Matcher usa el stack de autenticación compartido de Lerian, por lo que aplican el mismo proveedor de identidad y los mismos tokens que se usan en toda la plataforma.
* **Multi-tenancy.** Matcher sigue un modelo de aislamiento pool-por-inquilino (una base de datos dedicada por inquilino) en línea con el resto del stack, manteniendo separados los datos de cada inquilino.

Estos son puntos en común a nivel de plataforma, no un canal de datos de Matcher a Midaz.

## Lo que esta integración *no* es

***

Para evitar confusiones con borradores anteriores de esta página:

* Matcher **no** tiene ninguna configuración `MIDAZ_BASE_URL` ni `MIDAZ_GRPC_ADDRESS`.
* **No** hay un modo de sincronización en tiempo real ni un `account_filter` para una fuente Midaz.
* Matcher **no** se suscribe a eventos de Midaz ni abre una conexión gRPC/HTTP con Midaz.

Conciliar datos de Midaz significa exportarlos e importarlos a Matcher como cualquier otra fuente.

## Mejores prácticas

***

<AccordionGroup>
  <Accordion title="Exporta la porción relevante más pequeña">
    Exporta solo las cuentas del ledger y el período que realmente necesitas conciliar. Las exportaciones más pequeñas y específicas mantienen los contextos rápidos y la coincidencia precisa.
  </Accordion>

  <Accordion title="Mantén la cadencia de exportación alineada con la conciliación">
    Si concilias a diario, exporta a diario. Ajusta el calendario de exportación a la disponibilidad de los datos de la contraparte (el extracto bancario).
  </Accordion>

  <Accordion title="Normaliza antes de cargar cuando puedas">
    Los mapeos de campos renombran columnas pero no transforman valores. Produce exportaciones cuyos montos, fechas y códigos de moneda ya estén en los formatos que esperan tus reglas de coincidencia.
  </Accordion>

  <Accordion title="Lleva las referencias a través de columnas de metadatos">
    Incluye referencias estables (números de factura, IDs externos) como columnas en la exportación para que las reglas de coincidencia puedan usarlas como clave y lograr tasas de coincidencia más altas.
  </Accordion>
</AccordionGroup>

## Próximos pasos

***

<Card title="Fuentes externas" icon="building-columns" href="/es/matcher/integrations/matcher-external-sources" horizontal>
  Conecta el lado del banco o de la pasarela de la conciliación.
</Card>

<Card title="Mapeo de campos" icon="arrows-left-right" href="/es/matcher/configuration/matcher-field-mapping" horizontal>
  Mapea las columnas del ledger exportadas a los campos canónicos de Matcher.
</Card>
