Dunly

Draft. Needs a lawyer's review before use. Nothing on this page is in force yet. Items marked TO FILL IN need an answer. Items marked TO CONFIRM are believed true but not yet checked.

Privacy policy

Last updated: 2026-11-03 (draft)

In short

Who we are

Dunly is run by TO FILL IN (legal name, address, company number, country of establishment). You can reach us at hello@trydunly.com.

We have not appointed a data protection officer. (TO CONFIRM with the lawyer.) Representative in the EU: TO CONFIRM (needed only if the operator is established outside the EU).

Part A: people using Dunly's site and dashboard

Dunly is the controller of the data in this part. It covers the people who sign in to the dashboard, the people they invite, the people who write to us, and visitors to our site.

Most people who use the dashboard work for a business that is our customer. Our contract is with that business, not with them. So we rely on our legitimate interests for their data: Article 6(1)(f) of the GDPR. If you are yourself the customer, for example a sole trader, we rely on our contract with you: Article 6(1)(b). Below, "contract or legitimate interests" means this.

You can ask us for a summary of how we balanced our interests against yours.

Your account

You need an email address to sign in. Without one you can't use the dashboard.

Sign-in codes

Failed sign-in attempts

Sessions

Memberships and who did what

Organization name and branding

Invites

Billing details

You don't have to enter billing details to use Dunly, but we need them to invoice you.

The billing ledger

Dunly keeps a ledger so it can bill and prove what it billed. It keeps its own copy of what a bill needs, so erasing a case, a merchant or an organization doesn't reach it.

Emails to hello@trydunly.com

Emails we send you

We send sign-in codes and invites. Owners also get a notice when a loss report finishes, and a notice when a monthly statement closes. All go through Resend. Owners can't turn those notices off, as they go with the owner role.

We send no marketing email. There is no newsletter, no mailing list and no form on our site.

Visiting trydunly.com

Our website has no cookies, no scripts, no forms and no images, and it loads no files from anyone else. The fonts are our own. What the web proxy records about a visit is covered under "Logs".

Who receives this data, and where

ProviderWhat it does hereWhereTransfer safeguard
Resend (Plus Five Five, Inc., United States)Sends all of Dunly's email, with your address and the contentUnited StatesSee "Transfers"
Hetzner Online GmbH (Germany)Hosts the server, the application and the databaseTO FILL IN (data centre)Hetzner's terms keep processing in the EU or EEA unless the customer agrees otherwise. TO CONFIRM with the 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)Stores database backups, with all the data aboveTO FILL IN (S3 region)See "Transfers"
Cloudflare, Inc. (United States)DNS for trydunly.com, and forwards mail sent to hello@trydunly.com. Web traffic doesn't pass through Cloudflare, as the records are DNS only.Global networkSee "Transfers"
TO FILL IN (mailbox provider)The mailbox that receives mail forwarded from hello@trydunly.comTO FILL INTO FILL IN
Stripe (Stripe Payments Europe, Limited, Ireland; Stripe, LLC, United States)When you connect a Stripe account, you authorise Dunly on Stripe's own screens. Dunly reads the account's business name, support email, colour and logo. Dunly's code doesn't send Stripe your Dunly email address.Ireland and the United States. Stripe says it also runs data centres in India.See "Transfers"

Transfers outside the EEA

Some of these providers are in the United States, so your data goes there.

On 2026-11-03 we checked the EU-US Data Privacy Framework list at dataprivacyframework.gov. It showed:

Each of these providers' data processing terms also provides for the European Commission's standard contractual clauses. You can read them at Stripe, Resend, Cloudflare and AWS. Ask us at hello@trydunly.com if you want help finding a copy.

What stays after you delete your account

You delete your account from the dashboard. You confirm with a fresh code and type your email address. You can't do it while you are the only owner of an organization that has other members: make someone else an owner, or delete the organization, first.

Deleting it erases at once your account, your sessions, your memberships, the sign-in codes for your address and every invite sent to your address. An organization where you are the only member is erased at once too, with no 7-day wait.

These stay, and this is why:

Your rights

You can ask us:

Write to hello@trydunly.com from the address you use on Dunly, or say which address you mean. We answer within one month, and we may ask you to confirm that you are who you say you are. We can refuse a request in part where the law allows, for example for records tax law makes us keep, and we tell you why.

Some of this you can do yourself in the dashboard: delete your account, see and sign out your sessions, leave an organization, and, for owners, change the billing details or revoke an invite. Revoking only ends the invite: the row and the address stay, as "Invites" says.

Some things are not built into the dashboard, so they go by email. There is no self-service export of your data, and no way to change your account's email address yourself. Write to hello@trydunly.com for either.

We don't rely on your consent for anything in Part A, so there is no consent to withdraw.

You can complain. You can complain to the data protection authority of the country where you live, where you work or where the problem happened, or to the authority of our country of establishment: TO FILL IN (authority, address and website). We'd like the chance to put it right first, but you don't have to come to us first.

Your right to object

Where we rely on legitimate interests, you can object at any time, for reasons to do with your situation. Write to hello@trydunly.com. We then stop, unless we have compelling grounds that outweigh your interests, or we need the data for a legal claim.

Automated decisions

We make no decisions about you by automated means that have legal or similarly significant effects, and we don't profile you. Sign-in limits are automatic: too many codes or wrong guesses block further tries for a while.

Children

Dunly is for businesses, not for children. We don't ask for anyone's age. If you think a child has given us their data, write to hello@trydunly.com.

Part B: customers of businesses that use Dunly

If you got an email about a failed payment, or opened a payment page, this part is for you. It is also for customers of those businesses who never heard from Dunly, as Dunly can hold data about them too:

Who is responsible

The business you pay (the "merchant") is the controller of your data. It decides to use Dunly, and it holds your subscription and your Stripe customer record. Dunly acts for that merchant, on its instructions, under a data processing agreement. You can read the agreement and the list of sub-processors.

Go to the merchant first. That includes questions and requests to see or delete your data. Its support address is in the email and on the payment page. If you write to us instead, at hello@trydunly.com, we pass your request to the merchant where we can tell which one it is, and we help the merchant answer it. We keep your message as "Emails to hello@trydunly.com" says. You can also complain to a data protection authority, as in Part A.

What Dunly handles for the merchant

Your merchant's privacy notice should explain why it does this. The merchant decides the legal basis.

What you see

Dunly never sees or stores your full card number or security code. You type them into Stripe's own form on the page, and they go straight to Stripe.

Dunly's email doesn't carry an unsubscribe link, because it is about a failed payment, not marketing. Dunly sends you no marketing.

To stop the emails, write to the merchant or to hello@trydunly.com. The merchant has no button for this in Dunly. It can void or settle the invoice in Stripe, which ends the emails, or write to us. If you or the merchant ask us, we stop them by hand and tell the merchant. They also end when the invoice is paid.

A share of failed payments, chosen at random, gets no emails from Dunly and is left to Stripe alone, so the merchant can see Dunly's real effect. Dunly also retries cards on a schedule, if the merchant chooses that. Neither decides anything about you beyond whether you get an email or a retry.

How long

The merchant's data stays while it is connected to Dunly. If it disconnects, the data is erased automatically within 12 months. If it deletes its organization in Dunly, the data is erased 7 days later. The merchant can ask us to delete it sooner. Deleted data stays in database backups until they rotate out: TO FILL IN (backup retention).

What Dunly does for its own purposes

A little of what happens around a payment page is for Dunly's own needs, not the merchant's:

Cookies and similar storage

Dunly has no analytics, no advertising, no pixels, no session recording and no error reporting service. We ask for no consent, because we only use what the service needs in order to work.

NameSet byWhereWhat it doesHow long
dunly_sessionDunly's API (api.trydunly.com), when you sign inYour browser. HttpOnly, Secure, SameSite=Lax, Path=/, for that host only.Keeps you signed in. It holds a random value, and Dunly stores only a keyed hash of it.The cookie lasts 30 days and isn't extended by use. The session behind it ends sooner after 14 days without use. Signing out clears it.
sidebar_stateThe dashboard (app.trydunly.com)Your browser. It is not HttpOnly or Secure.Would remember whether the desktop sidebar is open. It holds only true or false. Nothing in the dashboard today lets you close that sidebar, so it isn't set in normal use.7 days, if ever set
dunly.inviteThe dashboardYour browser's session storage, not a cookieHolds an invite's token while you sign in to accept it.Until it's accepted or cleared, or the tab closes

Our website and the payment page. Dunly sets no cookie on trydunly.com or on the payment page, and the payment page uses no local or session storage of Dunly's.

Stripe on the payment page. The payment page loads Stripe.js from js.stripe.com whenever it opens, even for a link that has expired, and Stripe's form runs in its own frames. Stripe is a separate company, and these are its tools. Stripe says that Stripe.js collects signals about your device and activity, such as mouse movement, time on the page and device details, and sends them to Stripe to detect fraud, and that it can load hCaptcha. Stripe lists the cookies __stripe_mid (one year) and __stripe_sid (30 minutes) as essential for fraud prevention. Stripe may set these or others; we go by what Stripe says and have not listed them ourselves. Read Stripe's privacy policy, its cookie policy and its cookie list. The dashboard doesn't load Stripe.js.

Logs

Dunly's application writes a line for each request. It holds the method, the route (a pattern such as GET /pay/{token}, so a payment link's token doesn't get into the log), the status, the time taken and any error. It holds no IP address, no User-Agent, no user id, no email address, no query string and no request body. A request that matches no route isn't logged.

Other log lines hold ids (of cases, merchants, organizations, Stripe accounts, invoices and events), counts, sending domain names, and error messages. An error message from a provider can quote what it was given, which can include an email address. Alerts sent to the operator are logged too.

These logs help us run the service and fix faults. Legal basis: legitimate interests, namely keeping the service working and safe. How long they are kept: TO FILL IN (log retention).

In front of the application is a web proxy, for our site as well. Whether it records IP addresses, and for how long: TO CONFIRM.

Changes to this policy

If we change this policy in a way that matters to you, we email account holders before it takes effect, and say what changed. If we want to use your data for a new purpose, we tell you first. The date at the top shows the last change.