Versioned mutations
PATCH /v1/qr/{short_id}DELETE /v1/qr/{short_id}PATCH /v1/agents/{agent_id}DELETE /v1/agents/{agent_id}PUT /v1/qr/{short_id}/agentDELETE /v1/qr/{short_id}/agent
Creates do not require If-Match-Version and
start at version 1. QR
resource_version, agent
resource_version, and binding
binding_version are independent.
Conflict outcomes
- Missing header →
428 RESOURCE_VERSION_REQUIRED - Stale value →
409 RESOURCE_VERSION_CONFLICTwith bounded expected/current details - Inactive binding target →
BINDING_TARGET_INACTIVE
Paywall mutation exception
Documented runtime exception:
PUT /v1/qr/{short_id}/paywall requires
qr:write but does not
require If-Match-Version, does
not increment QR resource_version,
is not on the public mutation-audit path, and is
not covered by idempotency middleware.