---
title: "Issue a consent-bound mandate for a draft"
method: POST
path: "/mandates/for-draft"
tags: ["mandates"]
---

# Issue a consent-bound mandate for a draft

`POST /mandates/for-draft`

## Request

- Base URL: `https://agentbookable.com`
- URL: `https://agentbookable.com/mandates/for-draft`
- Auth: none declared

Assert that the user explicitly consented to the exact draft, and receive a single-use mandate bound to it. The consent assertion is audited (actorRef, method, draft hash). Any later change to the consequential booking details invalidates this authorization.

## Request body

- ConsentCreate
  - `actorRef` string, required
  - `draftId` string, required
  - `consent` object, required
    - `consentObtained` true, required: Assert that the user explicitly consented to this exact draft after seeing the final details.
    - `draftId` string, required: Must equal the draftId field
    - `consentedBy` string
    - `consentMethod` string: e.g. 'chat reply: yes, book it'
    - `instruction` string: The user's exact consenting words (audit context)

## Response `200`

Mandate issued

- MandateCreated
  - `mandateRef` string
  - `expiresAt` string: The mandate is invalid after this time (15 minutes).

## Other responses

- `410`: Draft expired — prepare a new draft
- `422`: CONSENT_REQUIRED — consent must be asserted
- `429`: Too many requests — slow down

---

[API](https://skmtc.dev/agentbookable/apis/agentbookable-booking-api-for-ai-agents.md) · [All operations](https://skmtc.dev/agentbookable/apis/agentbookable-booking-api-for-ai-agents/llms.txt) · [OpenAPI document](https://skmtc.dev/agentbookable/apis/agentbookable-booking-api-for-ai-agents/revisions/736963f5951a?raw)
