> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sumvin.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Revocation

> How a PINT and its issued JWTs are invalidated before their expiry.

# Revocation

A <Tooltip headline="Stamped Mandate" tip="A signed authorisation a user grants for specific scoped actions — delivered on the wire as a PINT." cta="Glossary →" href="/glossary">Stamped Mandate</Tooltip> can be invalidated before it expires. When that happens, every JWT ever issued against that mandate becomes invalid regardless of the JWT's own expiry. Revocation is the mechanism that closes the gap between "the user changed their mind" and "the user's token expires."

<Snippet file="product-term-disambiguation.mdx" />

A Stamped Mandate is carried on the wire as a `PINT`, so the status and revocation endpoints below operate on the underlying PINT (and its `exp`).

## What triggers revocation

* **User revokes** from the Sumvin app — for example, revoking consent for a previously-granted scope.
* **System revokes** on policy violation — KYC regression, Safe compromise signal, anomalous activity.

Revocation applies at the mandate level, not at the individual JWT level. One revoked Stamped Mandate invalidates every JWT in circulation that was exchanged from it.

## How a verifier checks

```bash theme={null}
GET /v0/sis/pint/{pint_id}/status
```

The response carries the PINT's current status. If the status is not active (for example, revoked), treat the inbound JWT as invalid regardless of its own `exp`.

## When to check

Every verifier picks between two strategies:

| Strategy         | When to check                               | Trade-off                                                                                                                                                                                             |
| ---------------- | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Always-check** | Per request                                 | Strictest; adds a round-trip to <Tooltip headline="SIS" tip="Sumvin Identity Service — the B2B API that exchanges signed PINTs for JWTs." cta="Glossary →" href="/glossary">SIS</Tooltip> per request |
| **Lazy-check**   | On cache miss or for sensitive actions only | Cheaper; narrows the window in which a revoked PINT can still be used                                                                                                                                 |

Lazy-check is common for read-only Standard-tier scopes. Always-check is the right choice for any Enhanced-tier action — the value of verifying the Safe signature is diluted if you don't also check revocation.

## See also

* [Revocation reference](/merchant/revocation) — endpoint shape, status values, and error modes
* [Verification tiers](/merchant/verification-tiers) — why Enhanced-tier pairs with always-check
* [Purchase Intents](/identity/pint) — the object being revoked

## Referenced from

* [Verifier Guide overview](/merchant/overview)
* [Verify a JWT](/merchant/verify-jwt)
* [SIS error reference](/merchant/errors)
