Tone docs
API referenceCompliance

Record a consent

Explicit transactional consent expires after 7 days by policy; inferred consent must carry its own expiry. Verified explicit consent is what lets a promotional call pass the gate.

Requires the write scope. A key with less gets 403 insufficient_scope.

POST
/v1/consent
AuthorizationBearer <token>

Authorization: Bearer tone_live_… or tone_test_…. The prefix IS the environment: a test key reaches only the sandbox, and no request field bridges the two.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/consent" \  -H "Content-Type: application/json" \  -d '{    "capturedAt": "2026-08-20T11:02:00Z",    "e164": "+919876543210",    "evidenceRef": "form-sub-88213",    "expiresAt": "2026-08-27T11:02:00Z",    "kind": "explicit",    "purpose": "promotional",    "scope": "Order updates and delivery reminders for orders placed on acme.example.",    "source": "web_form"  }'
{  "data": {    "active": true,    "capturedAt": "2026-08-20T11:02:00Z",    "createdAt": "2026-08-25T09:14:22Z",    "e164": "+919876543210",    "evidenceRef": "form-sub-88213",    "expiresAt": "2026-11-23T09:14:22Z",    "id": "8814",    "kind": "explicit",    "purpose": "promotional",    "revokedAt": null,    "revokedReason": null,    "scope": "Order updates and delivery reminders.",    "source": "api"  }}
Was this page helpful?