Skip to main content

Review Result

Approve or reject individual match results from a completed matching run. Reviewed matches can be used downstream for data enrichment, reconciliation, and delivery workflows.

Review a single match result by approving or rejecting it. Each result from a matching run starts with a pending status and can be moved to approved or rejected via this endpoint. Reviewing matches is a key step in the matching workflow — approved matches feed into downstream data enrichment and reconciliation pipelines.

The endpoint accepts an optional notes field for attaching human context to the review decision. Notes are stored alongside the result and visible in the results listing. Use notes to document why a borderline match was approved (e.g. "confirmed via phone call with vendor") or why a high-confidence match was rejected (e.g. "duplicate invoice, different period").

The response returns the full updated match result object, including the per-field evidence breakdown, the new review status, and the attached notes. Once reviewed, a result can be re-reviewed by calling this endpoint again with a different status — there is no lock on the review state.

For bulk review workflows, iterate over results from GET /v1/matching/runs/:id/results?status=pending and call this endpoint for each result. The API enforces standard rate limits — for high-volume batch review, use reasonable concurrency (e.g. 10 concurrent requests) and respect the Retry-After header on 429 responses.

Results can be re-reviewed at any time. Calling this endpoint on an already-approved or already-rejected result updates the status and notes to the new values.
POST/v1/matching/runs/:runId/results/:resultId/review

Response

Response fields (200 OK)

idstringResult UUID.
document_idstringSource document UUID.
document_filenamestring | nullSource document filename.
matched_reference_row_idstring | nullMatched reference dataset row ID.
confidencenumberWeighted confidence score (0–1).
statusstringUpdated review status: approved or rejected.
notesstring | nullReview notes, if provided.
evidenceobject | nullPer-field evidence with strategy and score for each field mapping.

Response

{
  "id": "e5f6a7b8-c9d0-1234-efab-345678901234",
  "document_id": "doc_uuid_1",
  "document_filename": "invoice-acme-2024-001.pdf",
  "matched_reference_row_id": "ref_row_42",
  "confidence": 0.92,
  "status": "approved",
  "notes": "Confirmed via vendor master data — names match after normalization.",
  "evidence": {
    "vendor_name": { "strategy": "fuzzy", "score": 0.95 },
    "invoice_date": { "strategy": "date_range", "score": 1.0 },
    "amount": { "strategy": "numeric_range", "score": 0.82 }
  }
}

Errors

Error responses

400validation_errorMissing or invalid status field. Must be "approved" or "rejected".
401unauthorizedMissing or invalid API key.
404not_foundNo matching run or result with the specified IDs exists for your workspace.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.