Esta guía está dirigida a desarrolladores. Si buscas una visión general a nivel de negocio de lo que hace Matcher y cómo ayuda a tu equipo, consulta ¿Qué es Matcher? .
Ponga Matcher en funcionamiento en minutos. Esta guía recorre el camino completo, desde la creación del primer contexto de conciliación hasta la revisión de transacciones conciliadas.
Antes de comenzar
Necesita:
Una instancia de Matcher en ejecución
Un token JWT válido para autenticación
Dos archivos de transacciones para conciliar (CSV, JSON o XML)
Todos los ejemplos usan cURL. Reemplace $TOKEN con su token JWT y https://api.matcher.example.com con la URL de su Matcher.
Paso 1: Crear un contexto de conciliación
Un contexto define el alcance de su conciliación: qué está comparando y cómo.
curl -X POST "https://api.matcher.example.com/v1/config/contexts" \
-H "Authorization: Bearer $TOKEN " \
-H "Content-Type: application/json" \
-d '{
"name": "Daily Bank Reconciliation",
"type": "1:1",
"interval": "daily"
}'
El campo type define cómo se parean las transacciones:
Tipo Descripción 1:1Cada transacción coincide con exactamente una contraparte 1:NUna transacción puede coincidir con múltiples contrapartes N:MMúltiples transacciones pueden coincidir entre ambos lados
Guarde el id de la respuesta. Lo usará en todos los pasos siguientes.
{
"id" : "019c96a0-2a10-7dfe-b5c1-8a1b2c3d4e5f" ,
"name" : "Daily Bank Reconciliation" ,
"type" : "1:1" ,
"interval" : "daily" ,
"status" : "DRAFT" ,
"createdAt" : "2026-03-04T12:00:00Z" ,
"updatedAt" : "2026-03-04T12:00:00Z"
}
El contexto inicia con estado DRAFT. Cambia a ACTIVE cuando esté listo para ejecutar la conciliación.
Paso 2: Agregar fuentes de datos
Todo contexto necesita al menos dos fuentes: los sistemas cuyas transacciones desea comparar.
Crear fuente bancaria
curl -X POST "https://api.matcher.example.com/v1/config/contexts/{contextId}/sources" \
-H "Authorization: Bearer $TOKEN " \
-H "Content-Type: application/json" \
-d '{
"name": "Chase Bank - Account 1234",
"type": "BANK"
}'
Crear fuente de ledger
curl -X POST "https://api.matcher.example.com/v1/config/contexts/{contextId}/sources" \
-H "Authorization: Bearer $TOKEN " \
-H "Content-Type: application/json" \
-d '{
"name": "General Ledger - GL 1000",
"type": "LEDGER"
}'
Guarde los valores de id de ambas fuentes.
Tipos de fuente
Tipo Caso de uso BANKExtractos bancarios LEDGERLibro mayor / exportaciones de ERP GATEWAYDatos de procesadores de pago CUSTOMCualquier otra fuente de datos
Paso 3: Mapear campos de las fuentes
Sus archivos de origen probablemente usan nombres de columna diferentes a los que Matcher espera. Los mapas de campos los traducen al schema estándar de Matcher.
Mapear la fuente bancaria
curl -X POST "https://api.matcher.example.com/v1/config/contexts/{contextId}/sources/{bankSourceId}/field-maps" \
-H "Authorization: Bearer $TOKEN " \
-H "Content-Type: application/json" \
-d '{
"mapping": {
"Transaction ID": "transaction_id",
"Amount": "amount",
"Currency": "currency",
"Post Date": "date",
"Description": "reference"
}
}'
Mapear la fuente de ledger
curl -X POST "https://api.matcher.example.com/v1/config/contexts/{contextId}/sources/{ledgerSourceId}/field-maps" \
-H "Authorization: Bearer $TOKEN " \
-H "Content-Type: application/json" \
-d '{
"mapping": {
"entry_id": "transaction_id",
"debit_credit_amount": "amount",
"currency_code": "currency",
"posting_date": "date",
"memo": "reference"
}
}'
Campos obligatorios
Toda transacción debe tener estos campos después del mapeo:
Campo Tipo Descripción transaction_idString Identificador único dentro de la fuente amountDecimal Monto de la transacción currencyString Código ISO 4217 (ej.: USD, BRL) dateDate Fecha de la transacción (YYYY-MM-DD)
Opcional pero recomendado: reference (referencia externa o descripción).
Paso 4: Crear reglas de match
Las reglas definen cómo Matcher compara transacciones. Comience con una regla exact, que es la más precisa.
Crear regla exact
curl -X POST "https://api.matcher.example.com/v1/config/contexts/{contextId}/rules" \
-H "Authorization: Bearer $TOKEN " \
-H "Content-Type: application/json" \
-d '{
"type": "EXACT",
"priority": 1,
"config": {
"matchAmount": true,
"matchCurrency": true,
"matchDate": true,
"matchReference": true,
"caseInsensitive": true,
"datePrecision": "DAY"
}
}'
Agregar regla tolerance como fallback
Captura pequeñas diferencias como comisiones bancarias o redondeo:
curl -X POST "https://api.matcher.example.com/v1/config/contexts/{contextId}/rules" \
-H "Authorization: Bearer $TOKEN " \
-H "Content-Type: application/json" \
-d '{
"type": "TOLERANCE",
"priority": 10,
"config": {
"percentTolerance": 0.01,
"absTolerance": 5.0,
"dateWindowDays": 2,
"matchCurrency": true,
"matchReference": true,
"caseInsensitive": true
}
}'
Matcher evalúa reglas por prioridad (número menor primero). La regla exact se ejecuta primero. Solo las transacciones sin match pasan a la regla tolerance.
Tipos de regla
Tipo Cuándo usar Rango de prioridad EXACTLos valores deben coincidir exactamente 1-10 TOLERANCEPequeñas diferencias esperadas 11-50 DATE_LAGRetrasos de fecha entre sistemas 51-100
Paso 5: Activar el contexto
Mueva el contexto de DRAFT a ACTIVE:
curl -X PATCH "https://api.matcher.example.com/v1/config/contexts/{contextId}" \
-H "Authorization: Bearer $TOKEN " \
-H "Content-Type: application/json" \
-d '{
"status": "ACTIVE"
}'
Paso 6: Subir archivos de transacciones
Suba un archivo por fuente. Matcher acepta formatos CSV, JSON y XML mediante upload multipart.
Subir transacciones bancarias
curl -X POST "https://api.matcher.example.com/v1/imports/contexts/{contextId}/sources/{bankSourceId}/upload" \
-H "Authorization: Bearer $TOKEN " \
-F "file=@bank_transactions.csv" \
-F "format=csv"
Subir transacciones del ledger
curl -X POST "https://api.matcher.example.com/v1/imports/contexts/{contextId}/sources/{ledgerSourceId}/upload" \
-H "Authorization: Bearer $TOKEN " \
-F "file=@ledger_entries.csv" \
-F "format=csv"
Cada upload crea un job de ingestión. Verifique el estado del job:
curl -X GET "https://api.matcher.example.com/v1/imports/contexts/{contextId}/jobs" \
-H "Authorization: Bearer $TOKEN "
Espere a que ambos jobs alcancen el estado COMPLETED antes de ejecutar el matching.
Paso 7: Ejecutar el matching
Comience con un dry run para previsualizar resultados sin persistir:
curl -X POST "https://api.matcher.example.com/v1/matching/contexts/{contextId}/run" \
-H "Authorization: Bearer $TOKEN " \
-H "Content-Type: application/json" \
-d '{
"mode": "DRY_RUN"
}'
Ambas respuestas incluyen un runId. Guárdelo para el Paso 8.
Revise los resultados del dry run. Cuando esté satisfecho, ejecute con COMMIT para persistir los matches:
curl -X POST "https://api.matcher.example.com/v1/matching/contexts/{contextId}/run" \
-H "Authorization: Bearer $TOKEN " \
-H "Content-Type: application/json" \
-d '{
"mode": "COMMIT"
}'
Paso 8: Revisar resultados
Ver grupos de match
curl -X GET "https://api.matcher.example.com/v1/matching/runs/{runId}/groups?contextId={contextId}" \
-H "Authorization: Bearer $TOKEN "
Cada grupo de match contiene transacciones pareadas y un puntaje de confianza (0-100):
Puntaje Qué sucede 90-100 Auto-confirmado, ninguna acción necesaria 60-89 Necesita revisión manual Menor a 60 Ningún match creado, se convierte en excepción
Deshacer un match incorrecto
Use el endpoint de unmatch para rechazar un grupo de match y devolver las transacciones al pool de no conciliadas:
curl -X DELETE "https://api.matcher.example.com/v1/matching/groups/{matchGroupId}?contextId={contextId}" \
-H "Authorization: Bearer $TOKEN " \
-H "Content-Type: application/json" \
-d '{
"reason": "Las transacciones pertenecen a registros diferentes"
}'
Las transacciones rechazadas regresan al pool de no conciliadas para la próxima ejecución.
Paso 9: Manejar excepciones
Las excepciones son transacciones que no pudieron ser conciliadas automáticamente. Matcher clasifica cada excepción por severidad:
Severidad Criterio SLA CRITICALMonto >= 100.000 o edad >= 120h 24 horas HIGHMonto >= 10.000 o edad >= 72h 72 horas MEDIUMMonto >= 1.000 o edad >= 24h 5 días LOWTodas las demás 7 días
Listar excepciones
curl -X GET "https://api.matcher.example.com/v1/exceptions" \
-H "Authorization: Bearer $TOKEN "
Resuelva excepciones forzando un match, creando ajustes o despachando a sistemas externos como JIRA.
Próximos pasos
Contextos y fuentes Guía completa de configuración de contextos y fuentes.
Reglas de match Todos los tipos de regla y opciones de configuración en detalle.
Puntuación de confianza Cómo se calculan los puntajes y qué significan.
Resolver excepciones Maneje transacciones no conciliadas.