---
title: "Promote a draft receipt to active (explicit review gate)"
method: POST
path: "/api/agent-receipts/:id/promote"
tags: ["Agent Receipts"]
---

# Promote a draft receipt to active (explicit review gate)

`POST /api/agent-receipts/:id/promote`

## Request

- Base URL: `https://api.cernion.de`
- URL: `https://api.cernion.de/api/agent-receipts/:id/promote`
- Auth: none declared

Transitions a draft receipt to active. Requires promotedBy identity. Validates the receipt fully before promotion. Optionally auto-deprecates a superseded active receipt. Requires _rev for CAS conflict protection. Caller must have full-access scope or ROLE_RECEIPT_PROMOTER (#289).

## Path parameters

- `id` string, required

## Query parameters

- `token` string

## Request body

- object
  - `promotedBy` string, required: Identity of the reviewer who approved promotion.
  - `changeReason` string
  - `supersedes` string: Optional receiptId of an active receipt to auto-deprecate on promotion. Falls back to supersedes field stored on the draft.
  - `_rev` string, nullable: CAS revision token. Prevents concurrent promotion race conditions.
  - `token` string: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.

## Response `200`

Successful response

- object

---

[API](https://skmtc.dev/cernion/apis/cernion-energy-tools-api.md) · [All operations](https://skmtc.dev/cernion/apis/cernion-energy-tools-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cernion/apis/cernion-energy-tools-api/revisions/cdb94473b538?raw)
