Not ready to publish — placeholders remain

This document still contains unfilled values (shown in square brackets) in src/lib/legal-config.ts. Fill in the operator name, contact address, governing law and contact email addresses, then have the text reviewed by a qualified lawyer before relying on it.

Data Processing Addendum

When you use Pacts to collect acceptances, you decide whose data goes in and why — so you are the controller and we are your processor. This addendum sets out the terms on which we handle that data.

Version 1.0 · Last updated 28 July 2026

This is the agreement between you and us, covering data you put into Pacts. It is not a DPA template for you to send to your own clients — if that is what you came for, draft one as a set of terms in the app and assign it to a contact.

1.Roles and scope

This addendum forms part of the Terms of Service. You are the controller of the personal data you upload or generate through the service; [YOUR FULL LEGAL NAME] is the processor. Where the two conflict, this addendum takes precedence for matters of data protection.

It applies to personal data protected by the UK GDPR, the EU GDPR, or comparable legislation. It takes effect when you start using the service and continues while we hold data on your behalf.

2.What is processed

Detail
Subject matterProviding the Pacts terms-acceptance service: publishing your terms, delivering personal links, recording acceptances, and producing certificates.
DurationFor as long as your account is open, subject to the retention position in section 8.
Nature and purposeStorage, transmission by email, display to designated recipients, and the creation of immutable acceptance records.
Categories of data subjectYour contacts — the individuals you designate to accept terms — and, where applicable, contacts of partner organisations granted read-only visibility.
Types of personal dataName, email address, organisation, role or authority, IP address, browser user-agent, acceptance timestamps, and the content of the terms you publish.
Special category dataNone is required or requested. Do not place special category data in your terms or contact records.

3.Our instructions

We process personal data only on your documented instructions, which are constituted by the Terms of Service, this addendum, and your use of the product’s features. We will tell you if we believe an instruction breaches data protection law, and we will not use your data for our own purposes — no profiling, no advertising, and no training of machine-learning models.

If law requires us to process data otherwise, we will inform you first unless that law prohibits it.

4.Confidentiality

Anyone we authorise to access personal data is bound by a duty of confidentiality, and access is limited to those who need it to operate or support the service.

5.Security measures

We implement appropriate technical and organisational measures under Article 32. Concretely, and not as aspiration:

  • No client application can read or write the database directly. Database rules deny all client access and every operation is mediated by our server.
  • Acceptance metadata — IP address, user-agent, timestamp, content hash — is captured server-side, so a recipient cannot influence what is recorded about them.
  • Each stored version of your terms carries a SHA-256 hash of its exact content, recomputed and verified whenever a certificate is produced.
  • Uploaded terms are sanitised against a strict allowlist before storage or display.
  • Sessions are HTTP-only, HTTPS-only, expire after 14 days, and are revocable — signing out invalidates them server-side.
  • Optional one-time email verification codes are stored only as hashes, are single-use, expire after 10 minutes, and are attempt-capped.
  • Public endpoints are rate-limited. Pages carrying a personal link are excluded from search engines, cannot be framed, and do not leak their address via the referrer header.
  • Data is encrypted in transit and at rest by our infrastructure provider.

6.Sub-processors

You give general authorisation for the sub-processors below. We impose data-protection obligations on each of them no less protective than those in this addendum, and we remain liable to you for their performance.

ProviderPurposeLocation
Google Cloud / FirebaseApplication hosting, authentication, and the Firestore database where all records are stored.United States (us-central1)
ResendDelivery of transactional email: acceptance links, reminders, one-time verification codes, and notifications.United States

We will give you at least 30 days’ notice before adding or replacing a sub-processor. If you reasonably object on data-protection grounds, you may terminate your account without penalty.

7.Assisting you

Taking into account the nature of the processing, we will assist you with:

  • responding to requests from data subjects exercising their rights — if one contacts us directly about your data, we will refer them to you rather than act on it ourselves;
  • data protection impact assessments and prior consultation with a supervisory authority;
  • demonstrating compliance, by making available the information needed to do so.

The product’s export function lets you retrieve your acceptance records at any time without needing to ask us.

8.Deletion and the limits of it

On termination you may export your data. We will then delete or return personal data we hold on your behalf, except where law requires us to keep it — and except as follows, which you should read before relying on this service.

Acceptance records cannot be deleted or edited. The product contains no function to do so, for you or for us. That property is the reason the records carry evidentiary weight: a record that could be quietly altered afterwards would prove nothing. We therefore retain them where they may be needed for the establishment, exercise or defence of legal claims, as permitted by Article 17(3)(e) — including after your account closes, and including if you ask us to remove one.

We can delete the surrounding contact record, which ends any further contact with that person and removes them from your workspace. If your own retention obligations are incompatible with permanent retention of acceptance records, Pacts is not a suitable tool for that data, and you should establish that before collecting it.

9.Personal data breaches

We will notify you without undue delay, and in any case within 48 hours of becoming aware of a personal data breach affecting your data. The notice will describe what happened, the categories and approximate number of records concerned, the likely consequences, and the measures taken. We will not make public statements identifying you without your agreement unless legally required.

10.Audit

On reasonable written request, and no more than once a year unless a supervisory authority requires otherwise, we will provide the information necessary to demonstrate compliance with this addendum. Where an on-site inspection is genuinely necessary, we will cooperate on reasonable notice, during business hours, subject to confidentiality and without disrupting the service or exposing other customers’ data.

11.International transfers

Our infrastructure is located in the United States. Where personal data is transferred out of the UK, EEA or Switzerland, the transfer is made under the Standard Contractual Clauses adopted by the European Commission, and the UK Addendum where applicable, together with any supplementary measures required. By entering into this addendum, the parties are deemed to have signed those clauses, with you as data exporter and us as data importer.

12.Contact

Questions, requests and notices under this addendum go to [privacy@pacts.io], or by post to [POSTAL ADDRESS FOR LEGAL CORRESPONDENCE].

Pacts is not a law firm and does not provide legal advice. These documents describe how the service operates; they are not advice about your own obligations.