Skip to main content
POST
Ratify policy version

Authorizations

Authorization
string
header
required

MeshQu API key passed as a bearer token: Authorization: Bearer mqu_…. Mint one in the console (Settings → API keys).

X-MeshQu-Tenant-Id
string
header
required

Tenant UUID for multi-tenant isolation. Required on authenticated routes. A missing or non-UUID value returns 400 MISSING_TENANT_ID or INVALID_TENANT_ID before API-key authentication.

Path Parameters

id
string<uuid>
required
version
integer
required
Required range: x >= 1

Body

application/json
expected_revision
integer
required

The draft_revision of the version the ratifier read. While the version can still be ratified, a value that is not its current draft_revision is refused 409 STALE_DRAFT_REVISION.

Required range: x >= 0
approval_authority
string

Free-form string identifying the regulatory or governance framework under which this ratification is performed (e.g. "ifrs-9-credit-risk"). Stored in the PolicyApprovalReceipt. Defaults to "unspecified".

Maximum string length: 500
ratifier_role
string

Organizational role of the ratifier at approval time (e.g. "compliance", "risk-officer"). Stored in the PolicyApprovalReceipt. Defaults to the API key identity.

Maximum string length: 200

Response

Default Response

id
string<uuid>
required
policy_id
string<uuid>
required
version
integer
required
draft_revision
integer
required
Required range: x >= 0
rules
object[]
required
active_rules_hash
string
required

SHA-256 hash of the active rules’ evaluated fields (code, condition, severity and when) in stored order. Changes to rule metadata or inactive rules do not change this hash.

Pattern: ^[0-9a-f]{64}$
is_active
boolean
required
status
required

Lifecycle status: draft → submitted → ratified → activated or superseded. Rejected versions can return to draft. A draft may be discarded; a pending version may be reopened, set aside, or replaced without governing decisions.

Available options:
draft
created_at
string<date-time>
required
created_by
string | null
required
change_reason
string | null
required
policy_approval_receipt
object | null
required

Signed approval receipt produced at ratification time. Null when the ratifier key is not configured.

ratified_by
string
ratified_at
string<date-time>
submitted_by
string
submitted_at
string<date-time>
rejected_by
string
rejected_at
string<date-time>
rejection_reason
string
closed_at
string<date-time>
closed_by
string
closed_reason
string
supersedes_version_id
string<uuid>

Present only on a version created by draft supersession: the id of the replaced draft this version continues. Written when the version is created and never changed. Absent on every other version, including one started after a set-aside or a reopen.

codification_record
object

What the codification that produced this version accounted for. Unsigned and unhashed; NOT a sealed review package.