Skip to main content

List Matching Configs

List matching configurations in your workspace: the field mappings, fuzzy matching strategies, and weights used to match documents against reference data.

Matching compares extracted documents against your reference data, such as vendor masters or order lists, using configurable field-level strategies that range from exact equality to fuzzy matching. Each matching configuration defines which fields to compare, how to compare them (exact, fuzzy, date range, numeric range), and the relative weight of each field in the overall confidence score. Reconciliation is a mode of Matching — the reconciliation endpoints run the same comparison engine against transactional reference data — not a separate sibling system.

A typical matching workflow is: upload reference data (CSV or XLSX), create a config with field mappings, run matching, and review results. For complex datasets, use the generate strategy endpoint to let AI recommend optimal field mappings and weights.

Every run result gets one of three statuses: matched (confidence at or above the config threshold), review (between 0.4 and the threshold — needs a human look), or no_match. The threshold on each config is the auto-accept bar, not a hard filter.
  • Each config targets a single reference dataset.
  • Field mappings pair an extracted_field with a reference_field under a match_type and weight.
  • Weights must sum to 1.0 across all field mappings.
  • The confidence threshold (default 0.85) is the auto-accept bar: results at or above it get status matched, results between 0.4 and the threshold land in review, and everything below is no_match.
GET/v1/matching/configs

Query parameters

limitintegerMaximum number of results to return (1–100). Default: 20
cursorstringPagination cursor from a previous response.
orderstringSort direction by created_at. Default: desc

Response

Response fields

dataarrayArray of matching configuration objects.
data[].idstringConfiguration UUID.
data[].namestringHuman-readable config name.
data[].reference_data_idstringID of the reference dataset this config matches against.
data[].target_typestringTargeting mode (e.g. "run").
data[].target_valueobjectTarget-specific configuration values.
data[].field_mappingsarrayArray of field mapping objects (extracted_field, reference_field, match_type, weight, plus optional tolerances).
data[].thresholdnumberAuto-accept confidence threshold (0–1). Results scoring at or above it are matched.
data[].created_atstringISO 8601 creation timestamp.
data[].updated_atstringISO 8601 last update timestamp.
data[].links.selfstringURL to this config.
data[].links.runsstringURL to trigger a run for this config.
pagination.totalintegerTotal number of configs.
pagination.limitintegerMaximum results per page.
pagination.has_morebooleanWhether more results exist beyond this page.
pagination.next_cursorstring | nullCursor to fetch the next page.

Response

{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "Vendor Invoice Match",
      "reference_data_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "target_type": "run",
      "target_value": {},
      "field_mappings": [
        { "extracted_field": "vendor_name", "reference_field": "name", "match_type": "fuzzy_string", "weight": 0.4 },
        { "extracted_field": "invoice_date", "reference_field": "date", "match_type": "date_range", "tolerance_days": 5, "weight": 0.3 },
        { "extracted_field": "amount", "reference_field": "total", "match_type": "numeric_range", "tolerance_pct": 1, "weight": 0.3 }
      ],
      "threshold": 0.85,
      "created_at": "2024-10-01T08:00:00.000Z",
      "updated_at": "2024-10-01T08:00:00.000Z",
      "links": {
        "self": "/v1/matching/configs/a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "runs": "/v1/matching/configs/a1b2c3d4-e5f6-7890-abcd-ef1234567890/run"
      }
    }
  ],
  "pagination": {
    "total": 2,
    "limit": 20,
    "has_more": false,
    "next_cursor": null
  }
}

Errors

Error responses

401unauthorizedMissing or invalid API key.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.

Frequently asked questions

What is a matching configuration?+
A matching configuration defines which fields to compare between documents and reference data, what match_type to use per field (exact, fuzzy_string, date_range, numeric_range), and how much weight each field carries in the overall confidence score.
Can I have multiple configs for the same reference dataset?+
Yes. You can create multiple configs targeting the same reference dataset with different field mappings, strategies, or thresholds to test different matching approaches.
What is fuzzy matching used for?+
The fuzzy_string match type scores string similarity instead of requiring exact equality, so vendor names with typos, abbreviations, or formatting differences still match their reference rows. Use it for names and free text, and exact for codes and IDs.