sms-consent

Enroll Contact For Sms

Enroll one site contact for SMS and send the ONE confirmation text.

Two steps, deliberately not one transaction: the enrollment commits first, then the confirmation is sent against it. A provider failure therefore leaves an open enrollment (re-sendable, and the send is idempotent per row) rather than rolling back the record the idempotency depends on.

The contact must reply YES before this authorizes anything.

post/sites/contacts/{contact_id}/sms-enroll

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/sites/contacts/{contact_id}/sms-enroll
  • Auth
    HTTP bearer

Path parameters

contact_idstring required

Request body

slot'primary' | 'afterhours'

Which of the contact's two numbers to enroll. The consent is bound to this exact (contact, slot) at creation, so it can never authorize a send to the other number.

Example request

{
  "slot": "primary"
}

Response

Successful Response

idstring uuid required

Unique identifier of the consent record.

phone_numberstring required

Canonical E.164 number the consent covers.

full_namestring nullable

Name given at consent time, if any.

emailstring nullable

Email given at consent time, if any.

organizationstring nullable

Organization given at consent time.

consent_versionstring required

Server-owned key for the exact text agreed to.

consented_atstring date-time nullable

When consent actually occurred. NULL for a Rail A enrollment that is still waiting for its YES reply.

sourcestring required

How the consent was obtained.

statusstring required

pending_confirmation | pending_review | linked | dismissed | revoked | unverifiable. Only linked with a bound contact authorizes a send.

site_contact_idstring uuid nullable

Bound contact, if any.

site_idstring uuid nullable

Bound site, if any.

contact_slotstring nullable

primary | afterhours.

evidence_refstring nullable

What proves it — the inbound YES message id for Rail A.

linked_atstring date-time nullable

When it was bound to a contact.

revoked_atstring date-time nullable

When a STOP superseded it.

dismissed_atstring date-time nullable

When it was dismissed or expired.

confirmation_sent_atstring date-time nullable

When the Rail A confirmation text was sent. One, ever.

confirmation_errorstring nullable

Last confirmation send failure, if any.

created_atstring date-time nullable

Row creation time.

updated_atstring date-time nullable

Row last-update time.

Changes

No recorded changes to this operation across all 2 revisions of this API.