Skip to main content
POST
/
v1
/
workflows
/
reviews
/
{review_id}
/
reject
from retab import Retab

client = Retab()

result = client.workflows.reviews.reject(
    "rev_D4J7WZBRV4H7C2SKQJ4NP6W2EY",
    version_id="rvr_HQ6ZZBQTJLSGLZQCWBSI25SCOQ",
    reason="Source document is illegible; cannot verify totals.",
)

print(result.review.decision.verdict)
{
  "submission_status": "accepted",
  "resume_status": "resumed",
  "resume_error": null,
  "review": {
    "id": "rev_D4J7WZBRV4H7C2SKQJ4NP6W2EY",
    "workflow_id": "wf_1",
    "workflow_version_id": "wfv_1",
    "run_id": "run_abc123",
    "block_id": "block_extract",
    "step_id": "run_abc123_block_extract",
    "block_type": "extract",
    "triggered_by": { "kind": "always" },
    "created_at": "2026-05-13T08:14:02.341Z",
    "decision": {
      "verdict": "rejected",
      "version_id": "rvr_HQ6ZZBQTJLSGLZQCWBSI25SCOQ",
      "author": { "kind": "human", "id": "user_42", "display_name": "Dana Rivera" },
      "reason": "Source document is illegible; cannot verify totals.",
      "created_at": "2026-05-13T09:10:00.000Z"
    }
  }
}
Reject one exact review version. The workflow run is cancelled and reason is required.
from retab import Retab

client = Retab()

result = client.workflows.reviews.reject(
    "rev_D4J7WZBRV4H7C2SKQJ4NP6W2EY",
    version_id="rvr_HQ6ZZBQTJLSGLZQCWBSI25SCOQ",
    reason="Source document is illegible; cannot verify totals.",
)

print(result.review.decision.verdict)
{
  "submission_status": "accepted",
  "resume_status": "resumed",
  "resume_error": null,
  "review": {
    "id": "rev_D4J7WZBRV4H7C2SKQJ4NP6W2EY",
    "workflow_id": "wf_1",
    "workflow_version_id": "wfv_1",
    "run_id": "run_abc123",
    "block_id": "block_extract",
    "step_id": "run_abc123_block_extract",
    "block_type": "extract",
    "triggered_by": { "kind": "always" },
    "created_at": "2026-05-13T08:14:02.341Z",
    "decision": {
      "verdict": "rejected",
      "version_id": "rvr_HQ6ZZBQTJLSGLZQCWBSI25SCOQ",
      "author": { "kind": "human", "id": "user_42", "display_name": "Dana Rivera" },
      "reason": "Source document is illegible; cannot verify totals.",
      "created_at": "2026-05-13T09:10:00.000Z"
    }
  }
}

Authorizations

Api-Key
string
header
required

Path Parameters

review_id
string
required

Body

application/json

Reject a specific version of a review, with a required reason.

version_id
string
required

Exact content-addressed key of the version to reject.

Pattern: ^rvr_[A-Z2-7]{26}$
reason
string
required

Required, non-empty rejection reason.

Minimum string length: 1

Response

Successful Response

Response to a review approve or reject request.

Carries resume_status so callers can see whether the run resumed successfully.

review
WorkflowReview · object
required

One review and its current decision.

submission_status
enum<string>
default:accepted
Available options:
accepted,
already_applied,
conflict
resume_status
enum<string>
default:resumed
Available options:
resumed,
pending,
failed,
skipped
resume_error
string | null