Docs menuReceipt Verification
Getting Started
Logos: Overview
Logos: CSIV Vocabulary
Logos: Local Resolution
Logos: SDK Reference
Logos: Integrations
Intents & ReceiptsReceipt Verification
Receipt Verification
A Receipt is the short-lived proof your agent or gateway verifies before execution. In Open Preview the token is returned as permit_token, but it carries Receipt V2 claims for the exact action, parameters, policy, proof tier, key id, and expiry.
Online Verification
const result = await fetch("https://api.silentauth.ai/api/intents/permit/verify", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.SILENTAUTH_PROJECT_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
permit_token: receiptToken,
action: "production.deploy",
parameters: { environment: "production", version: "2026.06.18" },
}),
}).then((res) => res.json());
if (!result.valid) {
throw new Error("SilentAuth receipt is not valid for this action");
}
await deployToProduction();Receipt V2 Claims
The verifier returns the claims your execution code should enforce or log.
{
"valid": true,
"intent_id": "int_abc123",
"action": "production.deploy",
"risk_tier": "high",
"receipt_version": 2,
"params_hash": "sha256:8f4...",
"policy_hash": "sha256:19d...",
"proof_tier": "stub_vinacfm_l3",
"kid": "local-hmac-v2",
"expires_at": "2026-06-18T21:05:00.000Z"
}Claim Reference
| Claim | Type | Description |
|---|---|---|
| receipt_version | number | Receipt schema version. Use 2 for the current preview. |
| params_hash | string | Hash of the exact action parameters. |
| policy_hash | string | Hash of the policy decision context. |
| proof_tier | string | none, human_approval, stub_vinacfm_l3, vinacfm_l3, qr_l2, or nfc_l3. |
| kid | string | Signing key id used for key rotation. |
| expires_at | string | Receipt expiry timestamp. |
| revocation_status | string | active, revoked, or unknown. |
Validation Failure Reasons
expiredReceipt has passed its expiry time.
tamperedToken signature does not verify.
action_mismatchReceipt action does not match the intended action.
params_mismatchReceipt params_hash does not match the action parameters.
