---
title: "Dismiss Consent"
method: POST
path: "/sms-consent/{consent_id}/dismiss"
tags: ["sms-consent"]
---

# Dismiss Consent

`POST /sms-consent/{consent_id}/dismiss`

## Request

- Base URL: `https://api.verdun.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.verdun.ai/sms-consent/{consent_id}/dismiss`
- Auth: HTTP bearer

Close a reviewed consent without linking it.

Only `pending_review` rows and orphans can be dismissed. Removing a LIVE
binding is a different, explicit action (it writes `revoked`), so a queue
tidy-up can never silently stop a customer's alerts.

## Path parameters

- `consent_id` string, required

## Response `200`

Successful Response

- SmsConsentResponse: One consent row as the operator console sees it. Deliberately NOT the whole row: `source_ip`, `user_agent`, `phone_raw` and the raw consent text are evidence for a compliance request, not console furniture, and an endpoint that returns them invites them into a UI (and a browser cache) they have no business being in.
  - `id` string, uuid, required: Unique identifier of the consent record.
  - `phone_number` string, required: Canonical E.164 number the consent covers.
  - `full_name` string, nullable: Name given at consent time, if any.
  - `email` string, nullable: Email given at consent time, if any.
  - `organization` string, nullable: Organization given at consent time.
  - `consent_version` string, required: Server-owned key for the exact text agreed to.
  - `consented_at` string, date-time, nullable: When consent actually occurred. NULL for a Rail A enrollment that is still waiting for its YES reply.
  - `source` string, required: How the consent was obtained.
  - `status` string, required: pending_confirmation | pending_review | linked | dismissed | revoked | unverifiable. Only `linked` with a bound contact authorizes a send.
  - `site_contact_id` string, uuid, nullable: Bound contact, if any.
  - `site_id` string, uuid, nullable: Bound site, if any.
  - `contact_slot` string, nullable: primary | afterhours.
  - `evidence_ref` string, nullable: What proves it — the inbound YES message id for Rail A.
  - `linked_at` string, date-time, nullable: When it was bound to a contact.
  - `revoked_at` string, date-time, nullable: When a STOP superseded it.
  - `dismissed_at` string, date-time, nullable: When it was dismissed or expired.
  - `confirmation_sent_at` string, date-time, nullable: When the Rail A confirmation text was sent. One, ever.
  - `confirmation_error` string, nullable: Last confirmation send failure, if any.
  - `created_at` string, date-time, nullable: Row creation time.
  - `updated_at` string, date-time, nullable: Row last-update time.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/verdun/apis/verdun-api.md) - [All operations](https://skmtc.dev/verdun/apis/verdun-api/llms.txt) - [OpenAPI document](https://skmtc.dev/verdun/apis/verdun-api/revisions/a19366be50a3?raw)
