Show terms
Lock the exact version, rendered text, and version metadata for every page view.
Consent evidence infrastructure
99zebras turns every clickwrap acceptance into signed, independently-anchored evidence. Export it on demand for legal review, audit response, or dispute production.
For teams that have to prove what someone agreed to — in a dispute, an audit, or a legal claim.
How it works
Lock the exact version, rendered text, and version metadata for every page view.
Record server timestamp, subject identifiers, source flow, IP evidence, and device context.
Hash, sign, and anchor with an independent third party. Any tampering becomes visible.
Export a self-contained pack legal, audit, or opposing counsel can review without us.
The problem
A checkbox, a database row, or a screenshot of your current terms is not enough when the question becomes specific: what did this person accept, at this time, in this flow?
Store the exact agreement version, rendered text, policy metadata, and content hash.
Capture server time, subject identifiers, intent, source flow, IP evidence, and device context.
Produce evidence packs that explain the record without asking an engineer to reconstruct history.
Who it's for
Online stores & growing businesses
Prove a customer accepted your returns, refund, or subscription terms before they paid, then use it in chargeback and dispute responses.
How it helps storesRegulated & enterprise teams
A self-contained record for each acceptance: version, timestamp, and an independent seal anyone can verify, with retention and legal holds.
A signed, time-stamped record of a subject confirming a specific agreement version. 99zebras captures the exact rendered terms, the moment of acceptance, the subject's context, and seals it with a cryptographic signature.
A database row says "1 = accepted." It doesn't store what they saw, when, in what flow, or whether the record is still intact. 99zebras stores the exhibit you'd actually need to produce in a dispute.
Yes. Evidence packs are self-contained: rendered terms (HTML and PDF), metadata, content hash, signature chain, and an independent RFC 3161 timestamp. Counsel verifies the record without 99zebras involvement, by anyone, at any time.
No. Every record is hashed and signed; any change to the rendered terms, metadata, or signature makes verification fail. Public verification URLs let anyone, including opposing counsel, check the record without us.
Hours for hosted pages, an afternoon for the drop-in modal, a day for direct integration. We're designed to be added to existing onboarding, checkout, and consent flows without re-architecting them.
Records are portable. Exports are self-contained and signed; public verification URLs stay live for the retention window of the plan that created them. Your evidence doesn't expire with the subscription.
For developers
A deliberately plain REST API: create a record, get back a sealed hash and a verification URL. Add it to onboarding, checkout, or in-product gates in an afternoon. Or reach for an embed, a hosted page, a share link, or the browser SDK.
POST https://api.99zebras.com/v1/acceptances
Authorization: Bearer zsk_live_…
Content-Type: application/json
{
"agreement_version_id": "0193e8c7-…",
"end_user_ref": "user_8K42Q9",
"acceptance_method": "api_direct"
}
→ 201
{
"id": "019e8a4b-…",
"accepted_at": "2026-05-20T14:23:01.123456Z",
"sealed_event_hash": "sha256:b91f2b4b…",
"verification_url": "https://app.99zebras.com/v/abc123…",
"acceptance_method": "api_direct"
} 99zebras
When the question becomes "what did they accept, exactly?", a defensible record is the only acceptable answer.