Saltar al contenido principal
Esta guía cubre cómo importar datos de transacciones de fuentes externas a Matcher para la conciliación.

Formatos admitidos


Matcher acepta archivos de transacciones en tres formatos de propósito general:
  • CSV: valores separados por comas con encabezados. El más común para exportaciones bancarias.
  • JSON: arreglo de objetos de transacción. El mejor para integraciones de API.
  • XML: elementos estructurados. Común para sistemas empresariales.
Más allá de estos, el endpoint de carga también acepta formatos bancarios especializados como camt053 y las claves de descriptor con namespace del catálogo de formatos (CNAB, layouts de adquirentes). Consulta Formatos de importación para el catálogo completo.

Requisitos de estructura del archivo


Cada archivo debe contener registros de transacciones con campos que puedas mapear al esquema interno de Matcher.

Campos obligatorios

Cada transacción debe tener estos campos (o equivalentes mapeables):

Campos opcionales

Matcher guarda las columnas no mapeadas como metadatos de la transacción.

Columna de débito y crédito

Algunos archivos marcan cada fila como débito o crédito en una columna separada. Para leer el signo de esa columna, mapea la clave opcional direction a un objeto {column, debit, credit}:
Una fila de débito se importa con un monto negativo, y una fila de crédito se importa con un monto positivo. Con direction mapeada, la columna de monto debe venir sin signo. Un monto con signo, una celda de dirección vacía o un valor de dirección desconocido rechaza la fila. Matcher lee direction solo en archivos CSV, JSON y XML.

Ejemplos de formato


CSV

Requisitos de CSV:
  • La primera fila debe ser de encabezados de columna
  • Codificación UTF-8 y delimitador de coma de forma predeterminada (configurables)
  • Entrecomilla los campos que contienen comas o saltos de línea
Ejemplo de código

JSON

Requisitos de JSON:
  • Un arreglo de objetos o un solo objeto
  • Nombres de campo consistentes entre objetos
  • Codificación UTF-8 de forma predeterminada (configurable)
Ejemplo de código

XML

Requisitos de XML:
  • XML bien formado
  • Elementos de registro llamados transaction, row, record, item o entry
  • Codificación UTF-8 de forma predeterminada (configurable)
Ejemplo de código

Carga mediante la API


Usa el endpoint de importación para subir archivos de transacciones.

Previsualiza antes de subir

Antes de confirmar un archivo para la ingesta, puedes previsualizarlo para verificar la detección de columnas y los datos de muestra. Esto ayuda a detectar problemas de mapeo de campos a tiempo.
cURL

Respuesta

Referencia de API: Previsualizar archivo

Carga de un solo archivo

cURL
Envía el campo format antes de la parte file. Si file llega primero, Matcher infiere el formato a partir de la extensión del nombre de archivo solo para .csv y .json. Matcher nunca infiere .xml, porque es una familia de formatos que cubre XML simple y camt.053. Envía el campo format explícito para XML. Matcher rechaza la carga sin él.
Matcher analiza y guarda el archivo completo dentro de la solicitud de carga. La carga devuelve 202 Accepted con el job terminado. Cuando la importación falla, Matcher responde con un error en lugar del job. Matcher lee una clave de idempotencia solo del header X-Idempotency, y solo cuando envías una. Una solicitud que lleva una clave solo en X-Idempotency-Key o Idempotency-Key se rechaza con 400 (MTCH-0015), y no se procesa nada. Una respuesta repetida lleva el header X-Idempotency-Replayed.
El límite de carga predeterminado es 1 GiB. Cuenta todo el cuerpo de la solicitud, con cada parte, header de parte y boundary, no solo el archivo.
Matcher rechaza una carga mayor que el límite de carga con 413 (MTCH-0010). Rechaza una carga que deja de enviar datos durante demasiado tiempo con 408 (MTCH-0311).
Referencia de API: Subir archivo

Respuesta

Consultar el estado de la importación

cURL

Respuesta (en proceso)

Respuesta (completada)

Los errores de análisis/normalización por fila no están incrustados en el job. Cuando completedWithErrors es true (o el job está en FAILED), obtén los detalles desde GET /v1/imports/contexts/{contextId}/jobs/{jobId}/errors (con un tope de 100 filas guardadas, con la contabilidad de totalErrors/truncated). Para un job FAILED por completo, diagnosis lleva un motivo seguro de una línea.
reviewRows cuenta las filas con external_id vacío que Matcher importa con estado PENDING_REVIEW. Esto ocurre cuando la fuente define blank_external_id como NEEDS_REVIEW en su config. Con el valor predeterminado, REJECT, un external_id vacío hace fallar la fila.

Valores de estado del job de importación

Validación y manejo de errores


Matcher valida los archivos subidos en varias etapas.

Etapas de validación

1

Validación de formato

Verifica que el archivo sea CSV, JSON o XML válido con la estructura correcta.
2

Validación de esquema

Comprueba que los campos obligatorios estén presentes y coincidan con el mapa de campos configurado.
3

Validación de tipo de dato

Valida que los montos sean decimales válidos, que las fechas se puedan analizar y que las monedas sean códigos ISO válidos.

Errores de validación comunes

Cada error de fila lleva el número de fila, el campo cuando corresponde y un mensaje. Mensajes comunes:

Manejo de errores

De forma predeterminada, Matcher importa las filas válidas aunque algunas filas tengan errores. Para que el job falle cuando las filas fallidas superan un porcentaje, define fail_on_error_rate_percent (de 1 a 99) en el config de la fuente.

Detección de duplicados


Matcher detecta y maneja automáticamente las transacciones duplicadas para evitar el doble conteo.

Cómo se detectan los duplicados

De forma predeterminada, una fila es duplicada cuando repite el external_id de una fila de la misma fuente, dentro de la misma carga o contra datos ya persistidos. Para detectar duplicados por otros campos, define duplicate_key en el config de la fuente. Su valor es una lista ordenada de nombres del mapeo de campos, como ["external_id", "amount"].

Opciones de manejo de duplicados

Define la clave duplicate_policy en el config de la fuente para controlar el manejo: Cuando duplicate_policy está ausente, aplica FLAG_AS_EXCEPTION.

Ver los detalles de los duplicados

El resumen de la importación muestra el número de duplicados:

Cargas por lote


Para jobs de conciliación grandes, puedes subir varios archivos en secuencia.

Subir varios archivos

Espera a que terminen todas las importaciones

Antes de ejecutar la coincidencia, confirma que todas las importaciones estén completas.

Buscar transacciones subidas


Después de importar archivos, puedes buscar en todas las transacciones de un contexto para verificar la calidad de los datos o investigar registros específicos.
cURL

Respuesta

Referencia de API: Buscar transacciones
Entre los filtros admitidos están amount_min, amount_max, date_from, date_to, currency, source_id, status, la coincidencia exacta de external_id mediante el parámetro reference y la búsqueda de texto libre mediante el parámetro q.

Mejores prácticas


Revisa el formato y la codificación del archivo en local antes de subirlo. Esto detecta los errores obvios más rápido.
Estandariza el formato ISO 8601 (YYYY-MM-DD o YYYY-MM-DDTHH:MM:SSZ) en todas las fuentes para evitar problemas de análisis.
Incluye siempre IDs de transacción únicos del sistema de origen. Esto habilita una detección de duplicados y unos registros de auditoría correctos.
Decide una convención (negativo para débitos, positivo para créditos) y aplícala de forma consistente. Cuando un archivo marca débitos y créditos en una columna separada, mapea esa columna con la clave direction en su lugar.
Para archivos de más de 50 MB, considera dividirlos en trozos más pequeños por rango de fechas. Esta es una recomendación de confiabilidad, no el límite de carga, y permite reintentos parciales.
Para la conciliación recurrente, automatiza las cargas de archivos con jobs programados.

Próximos pasos


Revisar coincidencias

Conoce cómo interpretar los resultados de coincidencia y las puntuaciones de confianza.

Mapeo de campos

Configura cómo los campos de la fuente se mapean al esquema de Matcher.