Choose a scope
The attest-only choice appears only while Alyte staff have enabled
merchant-attested consent for your organization. It does not give the key
catalog or webhook access. A read/write key does not implicitly include
mandates:attest.
If enablement is removed while the form is open, a refreshed key list removes
the option. If you had selected it, the form asks you to choose a scope before
minting; it never substitutes a broader scope. The server also checks
enablement when minting a key and when using the attestation.
The new scope label may appear in English in another console language until
that language’s next translation update.
Use an attest-only key
First verify the customer’s email and collect their consent through your own contracted flow. Derive the email from your authenticated server session. Then call the buyer-session endpoint from your backend:buyerId, redeemPath and expiresAt. Redirect to
the redeem path, or extract its single-use token for the
browser exchange. Keep the API key on the backend.
The REST field
merchantAttested is typed in @alytegen/sdk 0.5.0 (buyerSessions.mint({ …, merchantAttested: true })); the REST call above is what it sends.Alyte enforces the configured currency, maximum duration and total permission
amount per buyer over the configured window. Revoking or expiring a permission
does not free that attestation allowance. Each attested permission needs a new
Alyte agent with a saved card; recurring permissions require the buyer’s own
verification. Out-of-ceiling grants return
403 merchant_consent_ceiling_exceeded; do not retry by splitting the amount
across agents. The buyer can instead use Alyte’s verification flow.Console API response
For tools using a signed-in console session,GET /v1/console/api-keys returns
the organization’s keys and the availability flag:
lastUsedAt is set the first time a token that names the key (kid) is used, at
most once a minute; absent means no usage has been recorded. attestationDisabled
appears on keys carrying mandates:attest while the capability is off — the key’s
status is never relabelled (a mixed-scope key keeps its other scopes).
This is a console-session endpoint, not a merchant API-key endpoint.
attestAvailable describes your own organization. It is a UI hint; minting
still performs the server-side checks. A disabled organization receives
403 merchant_consent_not_enabled if it tries to mint an attesting key.
Attested consent, as the console sees it
GET /v1/console/attested-consent (any console role) returns whether attestation is
on, the per-buyer ceiling and window, the contract reference, the attest keys,
permission counts (active / expired / revoked), buyers as counts only (how many, how
many within 20% of the ceiling) and the recent permissions. Settings shows the same
as a card. An owner withdraws a permission its attestation created with
POST /v1/console/attested-consent/permissions/{id}/revoke and a reason, kept in
the audit trail; it is idempotent, refuses buyer-granted permissions, and never
replenishes the rolling per-buyer allowance.

