> ## 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.

# Fuentes externas

> Conecta a Matcher bancos, gateways de pago como Stripe y Adyen, ERP como SAP u Oracle, y redes de tarjetas mediante los tipos LEDGER, BANK, GATEWAY o CUSTOM.

Las fuentes externas aportan datos de transacciones de sistemas fuera de tu organización. Esta guía cubre cómo conectar bancos, gateways de pago y otros sistemas externos a Matcher.

## Tipos de fuente admitidos

***

Matcher admite cinco tipos de fuente. Cada uno representa una categoría de origen de datos:

| Tipo      | Descripción                         | Uso típico                                              |
| --------- | ----------------------------------- | ------------------------------------------------------- |
| `LEDGER`  | Ledger interno                      | Sistemas contables internos (incluido Midaz)            |
| `BANK`    | Flujo de extractos bancarios        | Flujos bancarios externos                               |
| `GATEWAY` | Gateway de pago                     | Procesadores de pago (Stripe, Adyen, PayPal)            |
| `CUSTOM`  | Flujo a medida                      | ERP, redes de tarjetas o cualquier otra fuente de datos |
| `FETCHER` | Obtención por el motor de Discovery | Conexiones con agregadores traídas de forma automática  |

## Métodos de ingesta

***

Los datos de transacciones llegan a Matcher por varias rutas:

| Método                       | Caso de uso                                                                                                                                               |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Subida de archivos**       | Subidas manuales (CSV, JSON, XML, OFX, camt.053, CNAB, EDI de adquirentes)                                                                                |
| **Obtención por transporte** | Matcher trae archivos de un transporte configurado (por ejemplo SFTP) y los ingiere                                                                       |
| **Extracción por Discovery** | [Discovery](/es/products/matcher/integrations/matcher-discovery) extrae datos de las conexiones descubiertas hacia la ingesta                             |
| **Webhooks de agregadores**  | Los [agregadores de Open Finance](/es/products/matcher/integrations/matcher-aggregator-connections) señalan datos nuevos, que se traen de forma asíncrona |

## Ingesta basada en archivos

***

El método más común para extractos bancarios y exportaciones de ERP.

### Subida manual

Usa el endpoint de subida de archivos para importar archivos de transacciones a mano.

<Tip>
  Referencia de API: [Subir un archivo de transacciones](/es/reference/products/matcher/upload-transaction-file)
</Tip>

## Conexiones bancarias

***

### Formato bancario estándar

La mayoría de los bancos entregan extractos en un formato que Matcher parsea de forma nativa (CSV, OFX, camt.053 o los layouts brasileños CNAB):

```json theme={null}
{
  "name": "Chase Business Account",
  "type": "BANK",
  "config": {
    "bank_name": "Chase",
    "account_number": "****1234",
    "currency": "USD",
    "statement_format": "CSV",
    "timezone": "America/New_York"
  }
}
```

<Note>El objeto `config` es metadato descriptivo de forma libre. Matcher lo almacena pero no interpreta claves como `bank_name` o `statement_format`. El dialecto de formato declarado y las claves de configuración fijadas determinan el comportamiento del parseo, no estas etiquetas. Esas claves son la política de tasa de errores, la clave y la política de duplicados, `blank_external_id` y las opciones de camt.053.</Note>

<Tip>
  Referencia de API: [Crear una fuente](/es/reference/products/matcher/create-source)
</Tip>

## Conexiones con ERP y personalizadas

***

Usa el tipo de fuente `CUSTOM` para sistemas ERP (SAP, Oracle, NetSuite, etc.) y cualquier otra fuente de datos que no encaje en las categorías `BANK`, `LEDGER` o `GATEWAY`.

### Ejemplo: fuente de ERP

```json theme={null}
{
  "name": "SAP S/4HANA",
  "type": "CUSTOM",
  "config": {
    "erp_type": "SAP",
    "company_codes": ["1000", "2000"]
  }
}
```

Exporta los datos de transacciones de tu ERP y súbelos por el endpoint de subida de archivos de Matcher. Usa el [mapeo de campos](/es/products/matcher/configuration/matcher-field-mapping) para traducir los campos específicos del ERP al formato canónico de Matcher.

## Conexiones con procesadores de pago

***

### Stripe

```json theme={null}
{
  "name": "Stripe Payments",
  "type": "GATEWAY",
  "config": {
    "provider": "stripe"
  }
}
```

### Adyen

```json theme={null}
{
  "name": "Adyen Settlements",
  "type": "GATEWAY",
  "config": {
    "provider": "adyen",
    "merchant_account": "CompanyECOM"
  }
}
```

Exporta los informes de liquidación de tu procesador de pago y súbelos por el endpoint de subida de archivos de Matcher.

### Redes de tarjetas

Para los archivos de liquidación de redes de tarjetas (Visa, Mastercard, Elo), usa el tipo de fuente `CUSTOM`:

```json theme={null}
{
  "name": "Visa Settlement",
  "type": "CUSTOM",
  "config": {
    "network": "VISA",
    "file_format": "TC33"
  }
}
```

## Seguridad de las conexiones

***

### Almacenamiento de credenciales

Guarda todas las credenciales de forma segura en un vault cifrado. Referéncialas por ID en las configuraciones de fuente.

### Lista de IP permitidas

Configura la lista de IP permitidas en el nivel de la infraestructura (balanceador de carga, API gateway o firewall) para restringir qué IP pueden enviar datos a Matcher. Las entidades de fuente no tienen una configuración `settings.security`. Administra las restricciones de IP fuera de la aplicación.

### Firmas de webhook

Matcher firma los payloads de webhook salientes con HMAC-SHA256. Para los datos entrantes, verifica las firmas en el nivel de la infraestructura antes de que los datos lleguen a Matcher. Las entidades de fuente no tienen una configuración `settings.webhook`.

## Requisitos de formato de datos

***

### Campos obligatorios

Cada transacción debe incluir:

Los mapas de campos usan un vocabulario canónico **cerrado**: las *claves* del mapeo son fijas y los *valores* nombran la columna en crudo de la fuente. Estas claves canónicas son obligatorias:

| Clave canónica | Tipo    | Descripción                                             |
| -------------- | ------- | ------------------------------------------------------- |
| `external_id`  | String  | Identificador de la transacción en el sistema de origen |
| `amount`       | Decimal | Monto de la transacción                                 |
| `currency`     | String  | Código ISO 4217                                         |
| `date`         | Date    | Fecha de la transacción                                 |

### Campos opcionales

| Clave canónica | Tipo    | Descripción                                                                              |
| -------------- | ------- | ---------------------------------------------------------------------------------------- |
| `description`  | String  | Texto de referencia o descripción (alimenta la columna de descripción de la transacción) |
| `fee_amount`   | Decimal | Espacio de comisión: columna de origen que lleva el monto de la comisión                 |
| `fee_currency` | String  | Espacio de comisión: columna de origen que lleva la moneda de la comisión                |

No se aceptan otras claves.

### Mapeo de campos

Administra los mapas de campos con el endpoint dedicado (no con el objeto `config` de la fuente). El cuerpo de la solicitud es un único objeto `mapping` de pares `{ canonicalKey: sourceColumnName }`:

```bash cURL theme={null}
curl -X POST "https://api.matcher.example.com/v1/contexts/{contextId}/sources/{sourceId}/field-maps" \
 -H "Authorization: Bearer $TOKEN" \
 -H "Content-Type: application/json" \
 -d '{
   "mapping": {
     "external_id": "TXN_ID",
     "amount": "trans_amount",
     "currency": "CCY",
     "date": "POST_DATE",
     "description": "memo",
     "fee_amount": "mdr_fee",
     "fee_currency": "fee_ccy"
   }
 }'
```

Consulta [Mapeo de campos](/es/products/matcher/configuration/matcher-field-mapping) para más detalles.

## Mejores prácticas

***

<AccordionGroup>
  <Accordion title="Valida los archivos antes de subirlos">
    Verifica que los archivos subidos contengan columnas para los campos canónicos obligatorios (external\_id, amount, currency, date) antes de subirlos. Esto evita errores de ingesta.
  </Accordion>

  <Accordion title="Usa formatos de archivo consistentes">
    Estandariza un único formato (CSV, JSON o XML) por fuente para simplificar el mapeo de campos y reducir errores.
  </Accordion>

  <Accordion title="Protege bien las credenciales">
    Guarda todas las claves de API y contraseñas en el vault. Nunca incluyas credenciales en los payloads de configuración.
  </Accordion>

  <Accordion title="Prueba primero con datos de muestra">
    Valida el mapeo de campos y la calidad de los datos con archivos de muestra antes de subir datos de producción.
  </Accordion>
</AccordionGroup>

## Próximos pasos

***

<Card title="Mapeo de campos" icon="arrows-left-right" href="/es/products/matcher/configuration/matcher-field-mapping" horizontal>
  Configura cómo se mapean los campos de origen a Matcher.
</Card>

<Card title="Subida de archivos" icon="upload" href="/es/products/matcher/daily-reconciliation/matcher-uploading-files" horizontal>
  Procedimientos de subida manual de archivos.
</Card>
