Skip to main content

Submit a review decision

POST 

/v1/reviews/:review_id/decisions

Approve or reject an open (PENDING) review. Requires the connector:reviews:decide scope (platform operators use connector:operator:reviews:decide, which is accepted only for reviews with required_role: APPROVER) and an Idempotency-Key header.

Checks made before the decision is accepted:

  • the review exists (404) and belongs to the caller's bank (403 BANK_SCOPE_MISMATCH);
  • the review is still PENDING (409 otherwise);
  • the caller holds the scope that the review's required_role requires;
  • the caller is not the principal that submitted the operation under review (403, "review can't be self-approved"). This enforces the maker/checker rule.

What the decision does. The response is 202 Accepted with an operation that records the decision.

  • APPROVE adds one distinct approval. When recorded_distinct_approvals reaches required_distinct_approvals, the review becomes APPROVED and the operation under review continues (PROCESSING, or PENDING_COMMITS for a CHECKER review). Otherwise the review stays PENDING and subscribers receive review.updated.
  • REJECT immediately ends the review as REJECTED. The operation under review becomes REJECTED, or for a CHECKER review moves to PENDING_COMMITS so the platform can unwind the initiated ledger step.

Each principal decides once per review: a second, different decision by the same principal is not counted and its tracking operation does not succeed. Retrying the same request with the same Idempotency-Key returns the original 202 document. comment, when sent, must not be empty or only whitespace.

Request​

Responses​

Accepted. The operation (data.id) tracks the decision.