---
title: "Reject an AI match-rule suggestion (discard it)"
method: POST
path: "/v1/matching/contexts/{contextId}/rule-suggestions/{suggestionId}/reject"
tags: ["Matching"]
---

# Reject an AI match-rule suggestion (discard it)

`POST /v1/matching/contexts/{contextId}/rule-suggestions/{suggestionId}/reject`

Rejects a PENDING_REVIEW suggestion — nothing is created. The rejecting principal is recorded for audit. Tenant from the JWT, context from the path.

## Path parameters

- `contextId` string, uuid, required — Context ID
- `suggestionId` string, uuid, required — Suggestion ID

## Request body

- RejectRuleSuggestionRequest
  - `reason` string — Optional rejection reason

## Response `200`

OK

- RuleSuggestionResponse
  - `candidate` RuleSuggestionCandidateResponse, required
    - `confidence` number, double, required — Advisor confidence in the suggestion, from 0.0 (lowest) to 1.0 (highest)
    - `config` object, required — Per-type rule configuration over the closed schema; the shape depends on the candidate type
    - `expectedImprovement` string — Advisory note on the expected auto-match-rate effect; never a monetary figure
    - `priority` integer, required — Proposed rule priority in the range 1..1000 (lower runs first)
    - `rationale` string, required — Short human-readable rationale for the suggestion
    - `type` string, required — Proposed rule type from the closed vocabulary: EXACT (strict equality), TOLERANCE (within an amount band), or DATE_LAG (allowing a settlement-date offset)
  - `contextId` string, required — Reconciliation context ID this suggestion belongs to
  - `createdAt` string, required — When the review was created (RFC 3339)
  - `createdRuleId` string — Identifier of the match rule created on approval; empty until an approved review is linked
  - `id` string, required — Unique identifier for the review
  - `rejectReason` string — Optional reason recorded when the suggestion is rejected
  - `reviewerId` string — Principal id of the reviewer; empty until the suggestion is adjudicated
  - `status` string, required — Lifecycle status: PENDING_REVIEW (awaiting human decision), APPROVED (rule created), or REJECTED (discarded)
  - `updatedAt` string, required — When the review was last updated (RFC 3339)
  - `version` integer, required — Optimistic-concurrency version of the review

## Other responses

- `default` — Error

---

[API](https://skmtc.net/lerian/apis/identity-plugin.md) · [All operations](https://skmtc.net/lerian/apis/identity-plugin/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lerian/identity-plugin/revisions/25daba385532/schema)
