Billing & Usage Metering
Overview
Section titled “Overview”TCS meters two kinds of usage:
- Credential issuance — one unit per Verifiable Credential issued.
- Verification — one unit per successful presentation verification.
Each plan includes an allotment of both. Usage beyond the included allotment is metered as overage and billed monthly. See the pricing page for plan prices and overage rates.
This page defines the exact billing semantics — what triggers a unit, what never does, and how quota behaves across billing cycles and plan changes.
When usage is counted
Section titled “When usage is counted”Credential issuance — counted at issuance, not at offer creation
Section titled “Credential issuance — counted at issuance, not at offer creation”A VC unit is consumed at the moment TCS signs and issues the credential — that is, when the Holder’s wallet redeems a credential offer (or completes a wallet-initiated flow) at the credential endpoint.
| Action | Counted? |
|---|---|
| Creating a credential offer | No — offers are free, in any quantity |
| Offer expires unclaimed | No |
| Wallet redeems the offer and the credential is issued | Yes — 1 unit |
| Re-presenting an already-issued credential | No (issuance is one-time; presentations are metered on the Verifier side) |
Practical consequence: a batch of 1,000 offers where 400 are claimed consumes 400 units, not 1,000.
Verification — pay-per-success
Section titled “Verification — pay-per-success”A verification unit is consumed only when a presentation passes verification. Creating verification sessions is free.
| Outcome | Counted? |
|---|---|
| Verification request (authorization request) created | No |
| Session abandoned — wallet never submits a presentation | No |
| Presentation submitted but verification fails | No |
| Presentation submitted and verification succeeds | Yes — 1 unit |
You are never charged for a verification that did not give you a usable result.
Included quota & billing cycles
Section titled “Included quota & billing cycles”- Growth / Scale — the included allotment is annual. It resets to the full amount at each subscription renewal (your annual anniversary date).
- Free — the included allotment (100 VCs / 200 verifications) is a one-time threshold, not an annual grant. It does not reset. Once consumed, further usage requires pay-as-you-go or an upgrade.
- Overage — usage beyond the included allotment is metered and billed monthly at your tier’s overage rate. Annual base fees and monthly overage appear as separate invoice lines.
Free plan: hard cap vs. pay-as-you-go
Section titled “Free plan: hard cap vs. pay-as-you-go”By default the Free plan is hard-capped: once the included allotment is consumed, issuance and new verification requests are rejected with HTTP 402 (see error reference below).
Enabling pay-as-you-go (dashboard → Billing; requires a payment method) lifts the cap — usage beyond the threshold is metered at the Free overage rates instead of being rejected.
Plan changes
Section titled “Plan changes”| Change | Effective | Billing | Quota |
|---|---|---|---|
| Free → paid | Immediately at checkout | Full annual fee; a new annual cycle starts | Full new allotment |
| Upgrade (e.g. Growth → Scale) | Immediately | Prorated for the remainder of the current period — your renewal date does not change | New allotment minus units already used this period |
| Downgrade (paid → lower tier or Free) | At the end of the current annual period | No refund; full features until period end | New (lower) allotment from the next period |
| Cancel a pending downgrade | Immediately | — | Unchanged |
Upgrades never forfeit usage: if you used 2,000 of Growth’s 3,000 VCs and upgrade to Scale (15,000), your remaining allotment is 13,000.
Quota-exhausted errors (HTTP 402)
Section titled “Quota-exhausted errors (HTTP 402)”Only the Free plan without pay-as-you-go can hit these. Paid plans and Free with pay-as-you-go meter overage instead.
Issuance — returned by the credential endpoint when the wallet redeems an offer (offer creation itself always succeeds):
{ "error": "vc_quota_exhausted", "message": "Your free VC quota has been exhausted. Enable pay-as-you-go or upgrade to continue issuing.", "reset_at": null, "upgrade_url": "/billing"}Verification — returned when creating a verification (authorization) request:
{ "error": "verification_quota_exhausted", "message": "Your free verification quota has been exhausted. Enable pay-as-you-go or upgrade to continue.", "reset_at": null, "upgrade_url": "/billing"}Integration note: because the issuance quota is enforced at claim time, an exhausted Free tenant can still create offers — the 402 surfaces to the wallet at the credential endpoint. If you integrate the Issuer API, treat 402 on the credential endpoint as a billing condition, not a protocol failure.
Verified Authority (Trust Registry Tier 1)
Section titled “Verified Authority (Trust Registry Tier 1)”The Verified Authority badge is a separate annual add-on subscription (US$750/yr), included with Growth and Scale. It has no usage meter — it is a flat annual fee. See Trust & Governance for what Tier 1 verification entails.