Saltar al contenido principal
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.
Referencia de API: Crear contexto
cURL
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:
TipoDescripció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.
Referencia de API: Crear fuente

Crear fuente bancaria

cURL
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
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

TipoCaso 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.
Referencia de API: Crear mapa de campos

Mapear la fuente bancaria

cURL
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
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:
CampoTipoDescripción
transaction_idStringIdentificador único dentro de la fuente
amountDecimalMonto de la transacción
currencyStringCódigo ISO 4217 (ej.: USD, BRL)
dateDateFecha 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.
Referencia de API: Crear regla de match

Crear regla exact

cURL
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
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

TipoCuándo usarRango de prioridad
EXACTLos valores deben coincidir exactamente1-10
TOLERANCEPequeñas diferencias esperadas11-50
DATE_LAGRetrasos de fecha entre sistemas51-100

Paso 5: Activar el contexto


Mueva el contexto de DRAFT a ACTIVE:
Referencia de API: Actualizar contexto
cURL
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
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
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
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:
Referencia de API: Ejecutar match
cURL
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
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
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):
PuntajeQué sucede
90-100Auto-confirmado, ninguna acción necesaria
60-89Necesita revisión manual
Menor a 60Ningú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
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:
Referencia de API: Listar excepciones
SeveridadCriterioSLA
CRITICALMonto >= 100.000 o edad >= 120h24 horas
HIGHMonto >= 10.000 o edad >= 72h72 horas
MEDIUMMonto >= 1.000 o edad >= 24h5 días
LOWTodas las demás7 días

Listar excepciones

cURL
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