Saltar al contenido principal
Un mapa de campos le dice a Matcher qué columna cruda de una fuente lleva cada campo canónico de la transacción. Cada fuente nombra sus columnas de forma distinta: extractos bancarios, exportaciones de ledger, informes de gateway. El mapa de campos normaliza esos nombres de columna en un solo vocabulario fijo antes de que corra la coincidencia.

Qué es un mapa de campos


Un mapa de campos pertenece a una sola fuente dentro de un contexto. Un contexto concilia dos lados (una fuente LEFT y una fuente RIGHT), y cada fuente tiene su propio mapa de campos. Matcher compara los campos canónicos que producen ambos mapas. Ambos lados deben resolverse al mismo vocabulario, incluso cuando sus archivos crudos no se parecen en nada. El mapeo es un objeto JSON con la forma:
  • La clave es un campo canónico. Las claves vienen de un vocabulario cerrado que distingue mayúsculas y minúsculas. Matcher rechaza cualquier clave fuera de él.
  • El valor es el nombre de la columna en la fuente cruda que lleva ese campo.

Vocabulario canónico


Matcher usa un espacio de claves cerrado. Estas son las únicas claves que Matcher acepta.

Claves obligatorias

Cada mapa de campos debe declarar las cuatro:

Claves opcionales

Declara estas solo cuando la fuente las lleva:
fee_amount y fee_currency son el espacio de comisión opcional. Cuando están presentes, el valor de la columna mapeada se copia a los metadatos de la transacción que lee la verificación de comisiones. Por eso una columna con cualquier nombre, por ejemplo mdr_fee, puede llevar comisiones de punta a punta sin metadatos armados a mano. Omítelas y el comportamiento es idéntico al de un mapa sin espacio de comisión.
direction sirve para un archivo que marca cada fila como débito o crédito en una columna propia. Su valor es un objeto con tres cadenas no vacías, por ejemplo {"column": "DC", "debit": "D", "credit": "C"}. column nombra esa columna, y debit y credit son los dos valores que contiene. Matcher compara estos valores sin distinguir mayúsculas y minúsculas, y deben ser distintos. Una fila de débito se importa con un monto negativo, y una fila de crédito con un monto positivo. La columna de monto debe entonces contener montos sin signo. Matcher rechaza una fila con un monto con signo, o con una celda de dirección vacía o que no contiene ninguno de los dos valores. direction se aplica solo a cargas CSV, JSON y XML.

Crear un mapa de campos


Creas un mapa de campos por fuente. Un segundo mapa de campos para la misma fuente se rechaza con 409. Actualiza el mapa existente. Envía el objeto de mapeo al endpoint de mapa de campos de la fuente:
cURL
Respuesta
Referencia de API: Crear mapa de campos

Actualizar un mapa de campos


Para cambiar un mapeo, haz PATCH al mapa de campos por su propio ID (no el ID de la fuente). Envía el mapeo completo. Reemplaza el anterior e incrementa version.
cURL
Referencia de API: Actualizar mapa de campos
Otras operaciones:

Ejemplo: ambos lados de un contexto


Un contexto concilia un feed bancario contra una exportación de ledger interna. Los dos archivos usan nombres de columna distintos, así que cada fuente declara su propio mapa, pero ambos se resuelven a las mismas claves canónicas.

Fuente LEFT: extracto bancario (CSV)

Columnas crudas:
Mapa de campos:

Fuente RIGHT: exportación de ledger (CSV)

Columnas crudas:
Mapa de campos:
Ahora ambas fuentes exponen external_id, amount, currency y date en el vocabulario canónico. Las reglas de coincidencia pueden compararlas directamente, aunque un archivo llamó al monto Amount y el otro lo llamó value.

Errores comunes


La clave es el campo canónico y el valor es tu columna: {"external_id": "BankRef"}, no {"BankRef": "external_id"}. Escribirlo al revés pone una clave desconocida (BankRef) a la izquierda, y Matcher rechaza el mapa.
Matcher rechaza claves fuera del vocabulario, como transaction_id, reference, counterparty o type, como claves desconocidas. El error nombra a cada infractor.
Las claves son tokens en minúsculas que distinguen mayúsculas y minúsculas. Matcher trata External_Id, Amount o CURRENCY como claves desconocidas.
Todas las claves external_id, amount, currency y date deben estar presentes. Un mapa al que le falte alguna falla la validación con un mensaje “missing required keys”.
Un nombre de columna debe ser una cadena no vacía. Matcher rechaza null, números, objetos o "" en su lugar.
El config de una fuente puede declarar duplicate_key, la lista ordenada de campos que identifican una fila duplicada. La clave predeterminada es solo external_id. El mapa de campos debe mapear cada campo que nombra duplicate_key. Matcher rechaza un mapa de campos que deja alguno de ellos fuera.
Los mapas de campos no parsean fechas, no dividen montos ni concatenan columnas. Entrega los valores ya con la forma esperada desde el archivo de origen, o normaliza upstream antes de subirlos.

Próximos pasos


Reglas de coincidencia

Define cómo Matcher compara y agrupa los campos canónicos.

Subir archivos

Importa transacciones usando tus mapas de campos.