Dunly

Draft. Needs a lawyer's review before use. Nothing on this page is in force yet.

Data processing agreement

Items marked TO FILL IN need an answer; items marked "to confirm" are believed true but not yet checked.

What this is

This agreement covers the personal data Dunly handles for a merchant who uses Dunly to recover failed Stripe payments. The merchant is the controller of that data. Dunly is the processor: it uses the data only to recover the merchant's failed payments, on the merchant's instructions.

The agreement adopts the European Commission's standard contractual clauses between controllers and processors under Article 28(7) of the GDPR (Commission Implementing Decision (EU) 2021/915 of 4 June 2021). The full, binding text of the clauses is the Commission's: eur-lex.europa.eu/eli/dec_impl/2021/915/oj. This page lists the clauses, says which options Dunly and the merchant choose, and fills in the annexes. If anything on this page conflicts with the clauses, the clauses win.

How Dunly bills is in the terms.

Parties

The clauses and the options chosen

Section I

Section II: Obligations of the parties

Section III: Final provisions

Annex I: List of parties

Controller

Processor

Annex II: Description of the processing

Categories of data subjects

Categories of personal data

Dunly stores, for each failed invoice (a "case"):

Dunly also stores:

The email provider (Resend) also keeps its own suppression list for Dunly's whole account. A hard bounce or complaint on one merchant's email can therefore stop another merchant's mail to the same address at the provider. That list is outside Dunly's deletion, and the addresses stay at Resend.

Billing records (a separate class)

Dunly also keeps billing records of its own: for each recovery it bills, the merchant's Stripe account id, the Stripe invoice id and number, the amount, currency, fee and dates, the terms version, and a merchant name; for each credit, the amount, date and the Stripe ids of the event and of the refunded charge or the dispute; for each monthly statement, the totals and a copy of the merchant's billing details as they stood when it closed; and the merchant's billing details (legal name, address, VAT number and billing email) as the merchant entered them. The merchant name is the merchant's Stripe business name, else its organization's name unless that name has an @ in it, so an owner's email address used as the default name isn't copied. With neither, the row has no name. The billing details and the merchant name can name a person, such as a sole trader or a billing contact. They hold no customer names, email addresses or customer ids. Dunly keeps these as a controller in its own right, to meet tax and accounting law, so they are not the merchant's data that Dunly processes on the merchant's instructions. They are kept after the merchant's data is deleted, for as long as that law requires (period to confirm). Nothing deletes them automatically today. See "Duration and retention".

The Stripe invoice id and number identify an invoice in the merchant's own Stripe account and say nothing about the customer on their own, but anyone with access to that account can link them to a customer.

Dunly never sees or stores card numbers or security codes. Customers enter card details into Stripe's own form on Dunly's page, and they go straight to Stripe. Dunly reads a card's brand and last four digits from Stripe to show on the payment page, but does not store them.

For the merchant's staff, Dunly stores their email address, their sign-in sessions and sign-in codes (both only as keyed hashes), and the IP address of sign-in code requests and failed sign-in attempts. For each session it also stores the browser's User-Agent string (which names the browser and operating system) and when the session was last used; no IP address is stored for sessions. A session ends after 14 days without use, and 30 days after sign-in at the latest. Sessions are deleted a day after they end (when they expire, go 14 days without use or are signed out), and codes a day after they expire (codes last 10 minutes); failed-attempt records a day after they are made. Staff can see their sessions and sign any of them out from the dashboard.

Sensitive data

None.

Nature of the processing

Reading the merchant's invoices, invoice payments, charges, refunds, disputes, customers and payment methods from Stripe; storing the data above; sending emails to customers on the merchant's behalf; showing customers a payment page; asking Stripe to charge the customer's card when the merchant has chosen Dunly's retries; showing the merchant reports and case timelines.

Purpose

Recovering the merchant's failed subscription payments, showing the merchant what was recovered and how, and working out Dunly's fee.

Duration and retention

Annex III: Technical and organisational measures

What is in place today:

To confirm or TO FILL IN:

Annex IV: List of sub-processors

The merchant authorises these sub-processors (general authorisation, Clause 7.7 option 2, 30 days' notice of changes). The same list is published on the sub-processors page.

Sub-processorPurposeDataLocation
Stripe (Stripe Payments Europe, Limited, Ireland; Stripe, LLC, United States)Payments: reading invoices, invoice payments, charges, refunds, disputes, customers and payment methods on your connected Stripe account; collecting card details in Stripe's own form; charges and retriesPayment data, customer email and nameIreland and the United States. Stripe says it runs data centres in the United States and India, limits global storage to authentication and security data, and may transfer data globally under its own terms.
Resend (Plus Five Five, Inc., United States)Email delivery: recovery emails to your customers, sign-in codes, bounce and complaint reportsRecipient's email address, not their name; the email's content: merchant name, amount, deadline, invoice number and description, payment link, support address and logo link; ids of the case and organization. For Dunly's own emails: the recipient's address and the content.United States. Resend's terms allow other transfers outside the EEA.
Cloudflare, Inc. (United States)DNS for trydunly.com and forwarding of mail to hello@trydunly.com; records are DNS only today, so traffic to Dunly does not pass through CloudflareMail sent to hello@trydunly.comGlobal network. Cloudflare's terms allow processing outside the EEA, the UK and Switzerland.
TO FILL IN (mailbox provider)The mailbox that receives mail Cloudflare forwards from hello@trydunly.comMail sent to hello@trydunly.comTO FILL IN
Hetzner Online GmbH (Germany)Hosting: the server that runs Dunly's application and databaseAll data Dunly storesTO FILL IN (data centre)
Amazon Web Services (Amazon Web Services EMEA SARL, Luxembourg, if the account's country is in Europe, the Middle East or Africa; TO CONFIRM the account's country)Storage of database backupsAll data Dunly stores, in backup filesTO FILL IN (S3 region)

Transfers outside the EEA, as checked on 2026-11-03. We checked the EU-US Data Privacy Framework list at https://www.dataprivacyframework.gov/list on that date. It showed Stripe, LLC, Cloudflare, Inc. and Amazon.com, Inc. as active. AWS says it is covered by the Amazon.com, Inc. certification. It showed Resend as "Active - Re-certification under Review". That status can change, so check the list for the current one. The data processing terms of Stripe, Resend, Cloudflare and AWS also provide for the European Commission's standard contractual clauses.

Hetzner. Hetzner's data processing agreement says it processes data only in the EU or the EEA, and that a transfer to a third country needs the customer's prior consent. Hetzner also offers data centres in the United States and Singapore, so this holds for Dunly once the data centre above is filled in and is in the EEA. (TO CONFIRM.)

AWS. AWS keeps customer data in the region the customer chooses, except as needed for services the customer starts or to comply with the law.

Stripe's role. Your Stripe account is your own agreement with Stripe. Under Stripe's data processing agreement, Stripe acts as a processor for you when it provides its payment services, and as an independent controller for its own purposes, such as fraud monitoring and legal compliance. Dunly reads and acts on your account only as you instruct it through the connection you authorise.

The providers' own terms. Data processing agreements: Stripe, Resend, Cloudflare, Hetzner and AWS. Their own sub-processors: Resend and AWS; Hetzner's are in Appendix 3 of its agreement.