Consent
A Consent is a person’s grant for one Purpose, with its basis, region, notice, evidence, and expiry.
Properties
| Property | Type | Required | Description |
|---|---|---|---|
basis | string | required | The lawful basis, such as consent or contract. Never randomized. |
region | string | The jurisdiction whose rules apply. Never randomized. | |
withdrawnAt | datetime | When the person withdrew it. Never randomized. |
Object
{
"$id": "https: //api.sb/ petpantry.shop/ consents/ consent_1",
"$type": "Consent",
"basis": "Example basis",
"region": "Example region",
"withdrawnAt": "2026-10-22T12: 00: 00Z"
}Relationships
- A Consent covers one Purpose: the Purpose the Consent permits processing for, and nothing beyond it.
covers, inverseconsents. - A Consent is given by one Contact: a Contact grants Consents, each for one Purpose, with its basis and expiry.
givenBy, inversegives.
Verbs
createCreates a Consent.POST /{namespace}/consentsgetReturns one Consent by id.GET /{namespace}/consents/{id}listReturns Consents, newest first, one page at a time.GET /{namespace}/consentsupdateChanges the given properties of a Consent.PATCH /{namespace}/consents/{id}withdrawWithdraw ends a Consent at once: processing for its Purpose stops, and the record is kept.POST /{namespace}/consents/{consent}/withdraw
Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.
| Operation | owner | admin | member | viewer |
|---|---|---|---|---|
Consent.create | Yes | Yes | Yes | No |
Consent.get | Yes | Yes | Yes | Yes |
Consent.list | Yes | Yes | Yes | Yes |
Consent.update | Yes | Yes | Yes | No |
Consent.withdraw | Yes | Yes | Yes | No |
Call it
Withdraw the latest consent.Example
A visitor ticks a box for product updates on a pricing Page. The Consent records the marketing Purpose, the notice shown, the time, and a two-year expiry.