Pactly
Trust

Security

Effective 1 September 2026

How Pactly protects documents, what we can prove, and - just as importantly - what we cannot. Last reviewed 1 September 2026.

Pactly is an early-stage product. We are not SOC 2 or ISO 27001 certified and have not had a third-party penetration test. We would rather say that here than let a buyer discover it in a questionnaire. What follows is what is actually true today.

Verify any document yourself

Every signed document can be checked at https://app.mypactly.com/verify - with no account and no cooperation from us. Paste the reference from the certificate, or upload the PDF and we will compare its SHA-256 against the copy we sealed. The audit chain is re-walked on the spot and the result is shown either way, including when it fails.

This matters more than any assurance we could offer about ourselves: the party who most needs to check a document is usually the counterparty, who has no account and no reason to take our word for anything.

Document integrity

Audit trail

Every event on a signing request - viewed, identity verified, signed, declined, reminded, cancelled, changes requested - is written to an append-only log. Each row stores a SHA-256 hash of its own contents chained to the hash of the row before it. Altering or removing any entry breaks every hash after it, which is detectable by re-walking the chain. The chain head and its length are printed on the certificate.

Documents signed before hash chaining shipped carry entries with no chain hashes. The verification page reports those as unverifiable rather than as intact. We will not backfill hashes onto them: computing them now would manufacture evidence the rows were never checked against, which is precisely what a chain exists to prevent.

Trusted timestamps

When a signature is recorded we request an RFC 3161 timestamp token from an independent timestamping authority, over a hash of the signature and the document. Only the hash is transmitted - the authority never receives the document or any part of its contents.

This matters because every other time in the record is our own server clock, written to our own database. A timestamp token is an assertion by a party with no stake in the outcome, and it can be verified against the authority directly:

curl -O https://app.mypactly.com/verify/<reference>/timestamp
openssl ts -reply -in timestamp -text

Timestamping is best-effort: if the authority is unreachable the signature still completes, and the certificate states plainly that no token was obtained rather than implying one exists.

Signer identity

By default, each signer must enter a one-time code sent to the email address the document was addressed to before the document opens. Senders can instead issue an access code out of band, which is stronger because it does not travel the same channel as the link.

The certificate records which method was used, including when the answer is that no check beyond the link was made. A signing link that has been forwarded produces a signature at a lower assurance level, and the document says so rather than presenting all signatures as equivalent.

At the moment of signing we also capture IP address, browser user-agent, approximate location derived from the IP, and a device fingerprint derived from those with the link token. These are recorded once, on the first signing session, so later views cannot overwrite them.

Access control

Where your data lives, and who touches it

These are our subprocessors. Each is a company that may process customer data on our behalf in the course of running the service.

Provider Purpose Data
Vercel Application hosting Request metadata, IP addresses
Supabase Database and document storage Accounts, documents, audit records
Stripe Subscription billing Name, email, billing details. Card numbers go to Stripe directly and never reach our servers.
Email provider Signing links, codes, signed copies Recipient names and addresses, document titles, signed PDFs sent as attachments
Groq (default AI provider) Plain-language document summaries Extracted document text. See below.
freetsa.org RFC 3161 timestamps A SHA-256 hash only. No document content.

The AI summary, specifically

The plain-language summary shown to signers is produced by sending extracted document text to a third-party language model. If your documents are confidential, this is the disclosure that matters to you. The text is sent once per document, the result is cached so it is not sent again, and the provider is contractually barred from training on it. If that trade is not acceptable, the feature can be disabled for your account - email us and we will turn it off.

Retention and deletion

Transport and application security

Data processing agreement

We will sign a DPA. Email hello@mypactly.com and we will send one. If you need specific contractual terms, standard contractual clauses, or a security questionnaire completed, ask - we would rather answer honestly than have you assume.

Reporting a vulnerability

Email security@mypactly.com. We will acknowledge within two business days and keep you informed until it is resolved. We will not pursue legal action against researchers acting in good faith who give us reasonable time to fix an issue before disclosing it.

If something goes wrong

If we become aware of a breach affecting your data we will notify affected account holders without undue delay and within 72 hours of becoming aware, with what we know, what we are doing, and what you should do.