The basics
1 About This Policy
1.1 Who we are
Onflow Ads is an advertising and growth platform for Telegram channels, operated by
the business operating onflowads.com from India under the name Onflow Ads, which is subject to Indian law and to the jurisdiction of the Indian courts. We operate the
website at onflowads.com and the Telegram bot
@OnflowAdsBot,
which notifies you and carries out what the website has decided. Through them we run
Boost Metrics, Paid Promotions,
Cross-Promotion, the Subscriber Exchange, a set of AI features, and a wallet that
funds all of it.
For the personal data described here, Onflow Ads is the Data Fiduciary
under India's Digital Personal Data Protection Act, 2023 (the "DPDP Act")
and the controller under the EU/UK General Data Protection Regulation,
except where section 3 says otherwise.
1.2 What this covers
Everything we do as Onflow Ads: the website (signed in or not), the bot,
the emails and notifications we send, and the back-office systems that run orders,
payments and support. It covers you whether you are a channel owner, an advertiser, a
buyer of a growth service, someone who only ever filled in the contact form, or
someone who merely clicked a link in a promotion we delivered
(section 8).
It does not cover what Telegram does with your data, what a payment provider
does with data you give it directly, or what another user does with data you choose to
hand them. Those are governed by their own policies, and
section 3.3 explains where our responsibility stops.
1.3 How to read it
Each section is numbered so it can be cited, and every heading has a link anchor —
hover a heading to copy a deep link straight to that clause. Sub-clauses are numbered
N.1, N.2 and so on.
Two kinds of sentence appear in this document, and it helps to know which one you are
reading.
Commitments are the promises we hold ourselves to and will not
narrow without the notice in section 26.1. They are: the list
of what we do not collect in section 9, what a
counterparty never sees in section 13.2, the training
promise in section 12.4, the no-sale promise in
section 16, and every other sentence that says we
do not or will not do something.
Everything else describes how the platform works today — in good
faith, and in more detail than we are obliged to give. Software changes, and a
description can fall behind the thing it describes. Where that happens it is a
document to correct rather than a promise broken: tell us at
[email protected] and we will fix it
promptly and date the correction. What we will not do is let a description drift in a
direction that quietly widens what we collect or who receives it — that is a change,
and section 26 governs it.
Plain English, on purpose. Where a legal term is unavoidable it is
defined in section 2. Where the law gives you a right we
have written what to actually do to use it, not just that it exists.
2 Definitions
These terms carry the same meaning throughout. Terms defined in the
Terms and Conditions — "Channel", "Placement",
"Order", "Wallet", "Bot" and the rest — keep the meaning given there.
- Personal data
-
Any data about an identifiable individual. On this platform that mostly means your
email address, your name, your Telegram identifiers, your IP address, what you did
and when, and what you paid for. It includes data that identifies you only when
combined with something else we hold.
- Processing
-
Anything done with personal data — collecting, storing, using, sharing, changing,
or deleting it. Storing data and doing nothing with it is still processing.
- Data Fiduciary / controller
-
Whoever decides why and how personal data is processed. That is us
for the data described in this Policy, and it is you for the data
described in section 3.2.
- Data Principal / data subject
- The person the personal data is about. If you are reading this, that is you.
- Processor / sub-processor
-
A company that processes personal data on our instructions and for no purpose of
its own — our host, our database provider, our email sender.
Section 14 lists them.
- Supplier
-
A third-party service that fulfils a Boost order. A supplier receives the
target of the order — a channel link, a post URL or, for some Telegram
services, a private invite link — and never your identity.
Section 14.4 explains why the invite-link case deserves
your attention before you order.
- Counterparty
-
The other user in a deal — the channel owner running your Placement, or the
advertiser booking your Channel. Section 13 sets out
exactly what they see.
- Audience
-
The members of a Channel, and anyone who sees or clicks a promotion delivered
through the Services. Audience members are usually not our users, which is
why they have a section of their own.
- Aggregate data
-
Counts and averages that describe a group rather than a person — subscriber counts,
average views, click totals. Aggregate data is not personal data, and we say so
where it matters because the difference decides what we may keep.
- Material change
-
A change to this Policy that does one of exactly four things: adds a
new purpose, adds a new category of personal data, adds a
new category of recipient, or lengthens a retention period. That
list is exhaustive — anything else is a minor change under
section 26.2. Narrowing a commitment from
section 1.3 is treated as material too.
- Baseline standing
-
The reliability score a brand-new account starts at. Leaving below it means
leaving with a score we have reduced because of something that happened in a deal —
which is the only situation where the anti-evasion marker in
section 20.3 is written. Leave at or above baseline and
nothing is written at all.
- The platform owner
-
The person who operates Onflow Ads and holds its highest level of administrative
access — the single account that can perform the actions this Policy reserves, such
as reaching backups. Where a section says something is limited to the platform
owner, that is the limit it means.
3 Who Is Responsible for Your Data
Data protection law puts duties on whoever decides what happens to personal
data. On a marketplace that decision is not always ours, and pretending otherwise would
leave you with no idea who to ask. So this section splits it three ways.
3.1 Where we decide — we are responsible
For your account, your orders, your payments, your Wallet, your support tickets, the
security logs we keep, and the analytics we compute about how the Services are used, we
decide the purpose and the means. We are the Data Fiduciary and controller, and every
obligation in this Policy is ours.
3.2 Where you decide — you are responsible
When you use the Services to reach other people, the personal data of those people is
yours to answer for, not ours. That includes:
-
personal data inside creative you upload — a name, a face, a testimonial, a
screenshot of a conversation;
-
your own Channel's members and anything you know about them;
-
data you collect on a landing page you send traffic to, including through a
tracked link we mint for you.
For that data you are the controller and we act on your instructions. You must have a
lawful basis for processing it, must honour the rights of the people it belongs to, and
must not use the Services to process data you are not entitled to process. This mirrors
section 23.6 of the Terms.
Two features put you squarely in that seat, and they deserve naming rather than leaving to
the general words above:
-
A white-label storefront. If your plan lets you run a branded
storefront on your own domain, the enquiries strangers submit there — their name,
their contact details, what they asked for — are collected through our systems and
delivered to you. Those people are your prospects, not ours. You are
the controller of that data, you must tell them who you are and what you will
do with it, and you must not use our systems to collect what you have no basis to
collect. We process it to run the storefront and to deliver it to you, and for nothing
else — we do not market to your leads.
-
Outbound webhooks. If you configure one, we POST your order records —
including the target links in them — to a host you nominate. Where that data
goes after it leaves us, and what the receiving host does with it, is yours to answer
for.
If someone asks us to delete personal data you put into the platform, we will
usually route them to you — because you are the only one who knows what basis
you had for it. Where the law makes us act anyway, we will, and we will tell you. If a
request reveals that you had no basis at all, that is a breach of the Terms and we may
suspend the Account under section 24.
3.3 Where neither of us decides
Telegram is not our platform. What Telegram collects about you as a Telegram user, what
it shows in a channel, and how it handles your account are governed by
Telegram's Privacy Policy,
not by this one. The same is true of a payment provider's own checkout page, an app
store, and any site you follow a link to. We can only tell you what we send them and
what they send back — which we do, in
section 14.
What we collect
4 Information You Give Us
The DPDP Act asks for an itemised description rather than a summary, so this
section and the next two list categories rather than gesturing at them. Nothing below is
collected for its own sake; each row exists because a feature stops working without it.
4.1 Creating and running an account
- Name
- Sign-up. To address you, and to put a human name on support and dispute correspondence.
- Email address
- Sign-up. Your account identifier, your sign-in credential, the route for verification codes, receipts, order notices and account recovery.
- Password
- Sign-up. Stored only as an argon2id hash. We never hold your password and cannot recover it — a reset replaces it, it does not reveal it.
- Two-factor secret & recovery codes
- If you turn on 2FA. To verify the six-digit codes from your authenticator app, and to let you back in if you lose it.
- Your role — advertiser or channel owner
- Enlistment. Decides which products and which parts of the marketplace you see. You choose one, you confirm it with a code, and it is permanent — it is what the other side of every deal relies on, so we do not let it be swapped later. It is the one thing in your profile a correction request under section 22.1 cannot change.
We also mint two identifiers of our own at sign-up: a random public id, and your
OFA ID — the short reference you quote to support. Neither is derived
from anything about you. Section 28 covers what those identifiers are
and are not linked to.
To transact, you need to be reachable in both places. Onflow Ads runs
across a website and a Telegram bot, and a deal can fail in either — so before you can
place or accept work we ask you to complete whichever half you did not sign up with:
if you joined by email, to link your Telegram account and start the Bot; if you
arrived through Telegram, to give us a real email address and confirm it with a code.
You can browse without it. Accounts that existed before 24 August 2026
are not asked for this. What the two identifiers are used for is unchanged —
section 19 covers what we send to each.
4.2 Channels you connect
When you connect a Channel we store what the marketplace needs to list, match and price
it: its Telegram id and username or invite link, its title and public description, its
category and language, its subscriber count and engagement figures, and the pricing and
availability you set. Section 6 explains where the figures come
from and what we deliberately do not read.
We also keep a snapshot of the Channel's recent public posts — roughly
the last twelve, each as a short extract with its view count, its date, and whether it
carried a photo or a video — and we show that snapshot to signed-in advertisers
on your listing page. It is how a buyer sees what your Channel actually
publishes before paying to appear in it, and it is why a listing does not need you to
write a sales pitch. Everything in it is taken from what is already public on your
Channel, it is refreshed from Telegram when you or we update the listing, and it goes
when the listing does. We call it out here because it is content rather than a
count, and section 6.4 would otherwise leave you expecting only
numbers.
4.3 Campaigns, creative and orders
-
Creative — the ad copy, images, buttons and destination links you
submit for a Placement, a Cross-Promotion or a Subscriber Exchange slot. This is
content you publish, and it is shown to the counterparty and, once live, to their
audience.
-
Order details — the target link, the service, the quantity, the
schedule, the budget, and any targeting or drip-feed settings.
-
Proof and delivery records — screenshots, message links, before/after
figures and the certificate pages generated when an order completes.
Creative is not private. Anything you put into an ad is written to be
published. Do not put personal data into creative unless you are entitled to publish
it — see section 3.2. Delivery-proof and certificate pages are
reachable by anyone holding the link and are not listed publicly;
sharing one reveals the target and the delivery figures.
4.4 Money
Top-ups, plan purchases and payouts generate a transaction record: the amount, the
currency, the method, the provider's reference, the status, the fee, and the resulting
Wallet movement. For payouts we also hold the destination you gave us — a UPI handle,
bank details or a crypto address, depending on the method.
If you ask for a top-up back, we additionally hold what that request
needs: the reason you typed if you gave one, the fee breakdown and net figure it was
quoted at, the amount held while it was open, the decision and the reason for it, the
reference of the payment we sent, and — for a cryptocurrency refund — the destination
address you supplied. A refund of a UPI or card payment needs no destination from you at
all, because it returns to the method you paid from. See the
Refunds Policy for how that process works.
We never see or store your full card number, CVV or UPI PIN. Card and
UPI details are entered on the payment provider's own page and stay with them. What
comes back to us is a reference, a status, an amount and, depending on the provider,
the payment method's type and last four digits.
4.5 Verification for payouts
Sellers who cross a lifetime-payout threshold are asked to verify. The first level
collects your legal name and country, and is approved automatically.
Higher levels are reviewed by a person, and if we need anything further at that point we
will ask you for it specifically and tell you why before you send it.
We do not ask for a government ID document, a selfie or a biometric through
the platform's verification flow. If a payment provider or the law ever
requires one for a particular payout, we will tell you what is needed, who it goes to
and why, before you provide it — never as a silent upload.
4.6 Support and correspondence
A contact-form enquiry stores your name, email address, subject and message. A support
ticket stores the same plus a phone number if you give one, and the technical context that
makes a problem diagnosable — the page you raised it from, your IP address and your
browser. You can open a ticket without an account, and if you do, that ticket is all we
hold about you.
Dispute submissions, campaign reports, reliability appeals and anything you send the
Bot are kept with the account they relate to, including the evidence you attach — a
campaign report carries your written testimony and the screenshots you upload, our team
reads them alongside our own record of the campaign, and the party you reported never
sees them. If you tell us something sensitive in a ticket, it lives in that ticket — so
please send only what the question needs. Where an AI feature drafts or triages a reply, the ticket goes to a model provider;
section 12.2 says so plainly and tells you how to opt that out.
The support chat on the site is answered by AI in the first instance, and it works the
way you would expect from the paragraph above: each message you send, together
with the page you send it from, is processed by our AI model provider to
generate the reply, and the conversation is stored as a support ticket like any other.
If you ask for a human, we collect the email address you provide so a person can come
back to you, and our team can read the transcript of the chat — including what the AI
said to you.
Since 16 September 2026 the chat can also carry out routine tasks for you
— cancel an order that has not started, accept a booking on your channel, answer a
partner request, and the other tasks the product's Help tab lists — but only when you
are signed in and only after you confirm the proposed task in that conversation
(Terms, section 10.10). A confirmed task runs through
the same request the page would make, as you. What we keep of it is an
action log on your support ticket: which task was proposed, whether you
confirmed it, whether it ran, and the one-line result — with anything you typed that
looked like a card number, a password or a key masked before it is stored. Nothing about
a task is sent to a model provider beyond the message you wrote, and nothing about it is
used to train a model.
You do not have to be signed in to use it, and that changes what we
need to hold about you. A signed-out visitor gets a small number of AI messages, which
we have to be able to count without an account to count against. So we count against
the browser: we set a cookie holding an opaque random handle — no
name, no email, nothing derived from you — and store, against that handle alone, how
many messages it has used, when its cycle started, and the IP address the last
message came from. The address is there for abuse triage, because a cookie is
trivial to clear and something has to bound what one source can spend. The handle and
its counter are deleted after 180 days, and the cookie is described in
section 18.1. Sign in and your account carries the allowance
instead, and none of this is used.
On some accounts the chat can also be shown a screenshot. Where it is
available you will see a paperclip in the composer, and you can attach a picture, paste
one straight out of the clipboard, or drop one onto the box. What that does is send the
picture to our AI model provider along with the message, so the agent can look at the
problem instead of being described it — section 12.2 sets out exactly
what leaves your browser and section 12.3 how long it is kept.
The capability is not open to everyone: it is switched on for accounts whose lifetime
top-ups have passed a threshold we publish in the product, and an administrator can
turn it on for an account below that threshold or off for any account at all. A
signed-out visitor never has it, because there is no account to have spent. When it is
not available the paperclip is simply not there, and the chat says in one line why.
A guest's messages reach our AI model provider exactly as a member's do.
Being signed out does not make the chat local or private — the words you type are sent
to the provider to generate the answer, as section 12.2 describes.
Please do not put anything into it you would not put into an email to us.
There is no other route. The chat cannot prove an account for you: a
visitor who is not signed in is a guest, and a guest's questions are answered from the
documentation and our policies only — no record is read, no account is looked up, and
no code is offered to change that. Signing in is the one way to have the chat read your
account, on every plan; acting on it from the chat is a capability of Plus and above,
described in section 12.2. Until 16 September 2026 a guest could prove
an account inside the chat with an emailed code; conversations bound that way no longer
unlock anything, and the record of those verifications stays with the conversation it
belongs to, for as long as that conversation is kept.
Three pieces of support bookkeeping ride along with the tickets themselves. Every
conversation is assigned a short reference (the
OFS-XXX-XXXX code shown in the widget and in our emails) — it
identifies the conversation but cannot open it, so it is safe to quote. Because the AI
chat is a plan benefit with a monthly allowance on some plans, we keep a
per-account count of AI conversations opened each calendar month —
a number, not the content — to enforce that allowance. And where we restrict a person's
access to the support surfaces for abuse, we keep a record of that
restriction — the account and/or email address it applies to, the reason, who
applied it and when — for as long as it stands, so it can be enforced, reviewed and
lifted.
5 Information Collected Automatically
5.1 Device and connection
When you use the Services we record your IP address and your
browser's User-Agent string against security-relevant events — signing
in, failing to sign in, verifying an email, changing a password, enabling or disabling
two-factor authentication, requesting admin access. From the User-Agent we derive a
readable label ("Chrome on Windows") that our staff see when investigating an account.
We use the IP address to work out an approximate location — country level,
for fraud signals and currency — and as a key for rate limiting and lockouts. We also
record the page you came from when you arrive from elsewhere. Lockout
counters are keyed on a hash of the email address or IP rather than the value itself;
short-lived rate-limit counters use the address directly and expire with the window
they meter — minutes for most of them, and up to an hour for the ones that cap how many
sign-ups or verification codes an address can ask for.
5.2 Our activity record
Meaningful requests across the Services are written to an activity record
— who acted, what they did, when, from which IP address and browser, the country inferred
from that address, the referring page, and the outcome. It is how a support agent
reconstructs what actually happened to an order, and how we notice an account being
worked over by someone who is not its owner. The same entries are mirrored to an
operations channel described in section 14.5.
Where a request carried an email address or a name, the activity record keeps a
copy of it — a sign-in attempt records the address used, whether or not it
belonged to an account. That copy is deliberate: it is what makes the record useful
after an account is gone. It also means the record is not erased when the
account is — see section 20.3.
Security event logs are the one record that outlives your account.
When an account is deleted the link to it is severed, but the event rows — including
the email address used and the IP and User-Agent at the time — remain, because their
entire purpose is to answer "who tried what, from where" after the fact.
Section 20.4 sets out how long, and
section 20.6 what you can ask us to do about it.
5.3 Usage
We record which pages and screens you open, which features you use, which buttons you
press in the Bot, and the outcome — an order placed, a slot booked, a Wallet top-up
started and abandoned. This is what produces your analytics, our funnel reporting, and
the evidence for a dispute about whether something was actually delivered.
5.4 What we compute about you
Some of the most consequential data we hold is data you never gave us — we worked it
out. It is still personal data and you still have rights over it.
-
Reliability score and account standing — a running measure of how you
behave in deals: cancellations, no-shows, disputes upheld against you, delivery kept
or missed. It gates what you can access and is visible to counterparties as a trust
signal.
-
Performance and delivery metrics — views, clicks, click-through
rates, completion rates, refund rates and the aggregate figures behind them.
-
Risk and abuse signals — indicators of collusion, self-dealing,
duplicate accounts, bot-driven traffic or evasion of a penalty. This includes a routine
check that links accounts which have signed in from the same IP address,
the device identity described in section 5.5,
and automated checks that a Channel is still carrying a post it was paid to carry. All
of them feed the review in section 11.2; the device identity
alone can also act on its own, in the one case 5.5 names. The same-IP link is used for
that and nothing else.
-
The post-still-there check has consequences beyond a review, and calling it a
quiet fraud signal would understate it. Where a second consecutive check
confirms an agreed post came down early, that finding reduces the Channel
owner's reliability score, can hold their payout, and can trigger a refund to the
advertiser. It is also shown: as a delivery flag to the advertiser on
that order and in what they can export, as evidence if the deal is disputed, and on the
delivery certificate for that placement — which, as
section 13.3 explains, anyone holding the link can open.
Because it decides money and standing, it carries the human-review right in
section 11.2, and a single inconclusive reading never counts
against anyone.
-
Referral links — who introduced whom (kept permanently once a sign-up
binds), the click that brought a visitor (a first-party cookie, section
18.1), and what each referred deposit earned the referrer. Used to pay the reward and
to detect someone referring themselves.
-
How you first found us — the address of the page that linked you here,
the page on our site you landed on, any campaign tags in the link you followed
(
utm_source and its siblings, or an advertising click identifier), and when
that first visit happened. It is held in a first-party cookie
(onflow_src, section 18.1) that we write on your
first page view and do not rewrite, and it is copied onto your account
once, at the moment you create one, together with how you signed up, the
address, browser and device that did it, and the country our network provider reports.
Nothing is written for a visitor who never opens an account, and the cookie holds
nothing about you beyond the link you arrived on. We use it to know which of our
channels actually reach people, and to tell a real sign-up from an automated one.
It is never used for advertising and never sent to an advertising network.
-
Commercial signals — your tier, your lifetime spend and payout
totals, and eligibility for a plan, a bundle or a promotion.
Section 11 explains which of these make decisions on their own,
and what you can do when one goes against you.
5.5 Device identity
A debt on Onflow Ads is a negative Wallet balance (Terms
section 12.11), and an account is the cheapest thing on the internet to abandon.
Without a second identity that obligation reduces to "pay, or make a new email". So on
every page you use while signed in, a small script reports a set of traits of the device
you are using, and we record them against your account. It is the most consequential
thing we compute about you that you never typed, so here is exactly what it is.
The traits are hashed separately in your browser, and the hashes are what reach
us — never the raw values. Four describe the machine and survive a browser
update: the graphics renderer, the platform, the number of processor cores and the colour
depth. Seven are real signal but may each move on their own: a canvas rendering, an audio
rendering, the graphics limits, the screen, touch support, the languages and the time
zone. Alongside them we record three things the server observes for itself and the
script cannot influence — the browser family, the language header and the encoding order
— so that a forged set of traits can be caught contradicting them. A browser that blocks
one of those probes simply yields fewer components, which is a weaker signal rather than
an error. A long-lived first-party cookie (onflow_dev,
section 18.1) carries the same signature so it can be read
before the script runs. The sighting is recorded at most once an hour per session, with
the IP address it came from.
It answers one question — does this device owe money — and it is graded, not
binary. An identical signature is certain; the same machine core with
at least three of the changeable components agreeing is strong; the same core
with fewer agreeing is probable; anything less is ignored. Only a certain or
strong match can act on its own, and the one thing it does is refuse to let an account
start something new while another account on the same device carries an
unpaid debt. Nothing is charged to you, nothing is taken from your Wallet, and nothing
on your record changes. A probable match is written to a review log for a person and is
never enforced by machine. The refusal tells you the amount and that the debt belongs to
another account, and a person will look again if you ask: every enforcing decision
records exactly which components agreed, and an administrator can release a device that
was matched in error.
A network address is never identity. Carrier networks, offices,
campuses and public Wi-Fi put whole crowds behind one address. The IP is stored beside a
device sighting as corroboration only, is never sufficient alone, and the setting that
would let it enforce ships switched off; if we ever switch it on, that is a change to
this section under section 26.
The same records feed the "same hands" review in
Terms section 16.4 — a device seen on an unusual number of
accounts is raised for a person to look at, never acted on by machine — and nothing else.
They are not a tracking identifier: not sold, not shared, not joined to anything off this
platform, not used to advertise to you, and not readable by any third-party tag. They are
kept while your account is open and for as long as a debt they corroborate is unpaid; we
do not run an automatic expiry over them today, and section 20.1
says so. This is an automated decision under section 11, and
11.2's right to a human review applies to it in full.
5.6 Advertising link and interaction records
When you tap a link in an advertisement we published, or in a
Cross-Promotion or Subscriber Exchange post, your tap passes through a redirect on
this site before it reaches the destination. We record that tap, and we record it
whether or not you have an account with us and whether or not you are signed in.
Most people whose taps we record have never used Onflow Ads and never
will — you are reading someone's Telegram channel, not visiting us — so this
section is written for you as much as for our users.
What one tap records:
-
your IP address and your browser's User-Agent string,
as sent;
-
the date and time, the advertisement or campaign involved, the destination, and the
page you came from;
-
what we work out from the two values above — a device class (phone, tablet, desktop
or automated crawler), an operating system and browser name, a country, and your
browser's preferred language;
-
your account, only where the tap carried a signed-in session of ours.
We record the same for interactions inside our own pages that do not navigate
anywhere — pressing a button, opening a tab, copying a link — so that the
reporting an advertiser or Channel owner sees reflects what people actually did, rather
than only the taps that happened to leave the page.
The IP address and User-Agent are deleted after 90 days. After that
the record keeps only what was derived from them — device class, operating system,
browser, country, language — plus a salted, one-way fingerprint that lets us count
one person once without being able to work back to who they were. The deletion is
automatic and runs on a schedule; it is not something you have to ask for. What
remains is what the performance figures in
section 5.4 are built from, which is why it is not
deleted with the rest.
These records exist to count a campaign's performance honestly, to tell a real audience
apart from automated traffic, and to settle a dispute about whether a placement
delivered what it was paid for. They are not used to advertise to you, are not
sold, are not shared with the advertiser or the Channel owner at the level of an
individual tap, and are not joined to anything about you from outside this platform.
An advertiser sees totals and breakdowns — how many taps, from which countries, on what
kind of device — never your address or a row that is recognisably you.
You can sign in with Telegram using its official OAuth / OpenID Connect
login. When you tap Log in with Telegram we send you to Telegram to
confirm; Telegram then returns you to us with a short-lived authorization code, which
our server exchanges for a signed identity token containing your
numeric Telegram user id, the name and
username on your Telegram profile, and a link to your
profile photo. We verify that token against Telegram's published public
keys before trusting it, and we retain your Telegram user id and display name to
identify your account. The token carries an expiry, so it cannot be reused later.
Signing in with Telegram does not give us your phone number, your contact list
or your message history. None of those are part of what the sign-in returns.
No phone number reaches us through the Bot either. An earlier version of
the Bot showed Telegram's "share my contact" button for the marketplace's
one-person-one-account rule and kept a one-way hash of the number plus its last four
digits. That flow is gone: the Bot shows no such button, asks for nothing, and the
one-account rule is now enforced from the Telegram identity and the device identity in
section 5.5. If a hash from that earlier flow
still sits on an older account record, it is used for nothing — ask us and we delete it.
A number you give a support ticket is held as section 4
describes.
The Bot is an executor: the website decides, the Bot carries out. When you message it,
Telegram passes it your user id, your display name and username, your language setting
and the content of the message — and it answers everything except the two links described
below with a single pointer back to the website. It keeps no conversation with
you, because it has none: there are no menus, no wizards, no orders and no support
desk inside it.
What the Bot holds, and where:
- Your account link. Tapping Connect Telegram on the website
opens the Bot with a one-time token; consuming it writes your Telegram user id, and the
moment you first started the Bot, onto your account record in the shared database. That
link is what lets the website message you in Telegram.
- The work it carried out for you — the posts it published and took
down, the placements it delivered, the proof captures and the monitoring readings that
say whether an agreed post is still there. These are recorded against the campaign or
placement, in the shared database, and can move your Reliability Score, so they are kept
for as long as section 20 says a dispute could still turn on
them.
- Joins through a campaign's invite link, recorded as a salted hash of
the member, never as an identity — section 8.1.
- The facts it reports. When it observes something that should move a
score — a placement pulled early, a post deleted, a member who left a partner's channel
— it writes the fact (what happened, to which deal, and the Telegram id of any
administrator who acted) into a queue the website reads. The website prices it from its
published table; the Bot never changes a score, and a fact the website does not
recognise is never applied.
- A display mirror of your plan in its own small datastore, refreshed
from the website. It decides nothing from it.
- Review cards it posts into our private administration channel when a
cross-promotion post or an exchange ad needs a human decision — the decision itself is
made on the website.
The Bot holds no money and no money record. It has no wallet, takes no
payment, holds no balance, keeps no payment reference and moves nothing. Every
settlement its work leads to — a payout, a refund out of escrow, a cross-promotion
completion reward or a partner's declared cover — is computed and paid by the website's
own routines, against the one Wallet the website holds, and shown to you there. The
Refunds & Cancellations Policy, section 1.1, says
the same thing about the money.
The Bot also looks at the Channels you connect, because that is how we
check what actually happened. It reads whether the Channel exists and whether you
administer it, its subscriber count and recent public posts to measure reach, and —
while an agreed post is running, in Paid Promotions, Cross-Promotion or the Subscriber
Exchange alike — whether that post is still there. It reads only public channel content
and the posts our own Placements created; it does not read your subscribers' messages or
their identities. Section 6.3 sets the limits.
The Bot and the website are one platform sharing one database, so an action in one shows
up in the other. They are covered by this single Policy for exactly that reason.
Opening one of our pages from inside Telegram can create an account record for
you even if you never signed up on the website. A campaign dashboard or a
booking page opened as a Telegram Mini App signs you in from Telegram's own identity
data, and a Telegram user we have never seen gets a starter record so that what they do
has somewhere to live. That record is yours: everything in
section 22 applies to it, and you can ask us to close it exactly as
you would one you created yourself.
Linking Telegram to a website account can merge two records into one, and it
cannot be undone. If you have a starter record and a website account, you have
two records for one person. When you link them, we fold them together: the website
account is the one that survives, the two balances are added, and everything the other
record held — orders, history, ledger — moves across to it. The record that loses is
then deleted.
Standing is merged the unfavourable way, deliberately. The merged
account keeps the lower of the two reliability scores (the drop is written to
the ledger as its own entry, and the full history of both records is kept), the
longer of any two freezes, and the harsher of any penalties — while
keeping the better of the two plans, so you are not charged twice. We do it that way
because the opposite rule would make a penalty erasable: anyone could fold a penalised
account into a clean one and walk away from it. It means linking can carry a restriction
onto the account you are signed in to, so link when you are ready rather than to see
what happens. It is an automated decision under section 11, and
11.2's right to a human review applies to it like any other.
Where Google Analytics is configured in our admin settings, the Bot also reports
campaign events — a booking placed from a Telegram button, for instance —
to it server-side, using your Telegram user id as the identifier, as both
the device identifier and the user identifier that provider recognises you by. This is a
persistent identifier about you reaching an analytics provider, so we name it rather than
let it sit under "usage data".
The cookie banner on our website does not control this, and it would be
misleading to point you at it. The consent gate in
section 18.3 governs tags that load in
your browser on our site. A chat has no browser and no banner: this reporting
happens server-to-server, so declining analytics cookies on the website does not switch
it off, and there is no in-chat banner that does.
What we can tell you is what it is and is not. It reports which campaign events
happened through the Bot against your Telegram user id. It does not carry your
message text, your email address, your balance or your payment details, and it is not
used to advertise to you anywhere.
If you want it stopped for you, ask at
[email protected] and we will exclude
your account; and it only runs at all while that tool is configured, which is an
operator choice, not a permanent fixture.
Connecting a Channel means giving the Bot administrator rights on it. What it does with
them is deliberately narrow, and the limits are contractual as well as descriptive — the
same three appear in section 4.2 of the Terms.
The Bot never messages your subscribers privately, never posts anything outside
the campaigns and slots you accept or book, and is never given your subscriber list —
Telegram does not hand one to a bot. It publishes what you agreed to publish,
removes only its own posts, and otherwise reads public details and counts.
You can remove the Bot's access at any time by removing it as an
administrator of the Channel, or by disconnecting the Channel from your account. Access
ends immediately. What we have already recorded about completed orders stays under
section 20, because a deal that happened is a record we are
required to keep — but nothing further is read from that Channel.
To price and verify a Channel we read the figures Telegram exposes about it: its
subscriber count, the view and reaction counts on recent posts, posting frequency and
the timing pattern those imply. We use the Telegram Bot API and, for public channels, an
operator-held Telegram reader account which can see what any member of that channel can
see. It is used to count, and to confirm that a post we were paid to place is still
there.
There is a third use, and it is a standing one you switch on yourself.
If you start an Auto-Boost subscription, you are asking us to act every
time you publish — so for as long as that subscription runs we
watch the channel you nominated for new posts, on a schedule. That
means we are looking at your ordinary posts, not only at the ones our Placements
created, because a new post appearing is the event you have paid us to react to.
What we take from it is the post's link and the fact that it exists — never who wrote
it, never who read it. It runs only while the subscription is active and stops when you
cancel. Note that the channel you nominate does not have to be one you have connected
to us, so only nominate a channel you are entitled to: pointing this at
someone else's channel is both a breach of the Terms and, under
section 3.2, your responsibility rather than ours.
We read counts, not people. We do not collect, request or store your
Channel's member list, the identity of anyone who viewed or reacted to a post, or the
content of any private conversation. From the audience side of a post, what we
take is a number.
Two things we take are not numbers, and both are your own published content rather than
anything about your subscribers: the snapshot of recent posts shown on
your listing (section 4.2), and the post we were paid
to place, which we re-read to confirm it is still there.
There are exactly two places where we look at a person rather
than a count, and both are named here rather than left inside the general words above.
The first is the one that proves you own the Channel: to verify a
Channel we ask Telegram for its administrator list and check that our Bot —
and, where your Telegram account is linked, you — appear in it. Only an administrator can
appoint another, so that list is the proof, and it is why we do not ask you for
screenshots. Where a co-administrator is not an Onflow Ads user, their Telegram identifier
reaches us as part of that check; it is used to answer the ownership question and for
nothing else. Section 4.3 of the Terms describes the same
check.
The second is about the other party to a Cross-Promotion, and only them.
Some cross-promotions are deals where each side agrees to join and stay in the other's
Channel for the agreed period. There is only one way to check that such a deal was
actually kept, and it is to ask Telegram whether that specific person — the
counterparty you agreed the deal with, identified by their Telegram id — is still a
member of your Channel. While the campaign runs we ask periodically, and we record what
we saw: that they were a member, that they later left, or that they were removed.
This is deliberately narrow and we hold it there.
It only ever concerns the person on the other side of a live deal, never
an ordinary subscriber, and it runs only while that campaign is live. We still do not
request or store your member list, and we still do not learn who else is in your
Channel. What we record is used to decide whether the agreement was honoured — it can
move a reliability score and trigger a refund, so it carries the same appeal right as
every other automated decision (section 11.2). Being
removed by a channel's admin is expressly not treated as the removed person's
fault, because that would let one side penalise the other at will.
Where enabled, you may sign in with Google or Apple. We request the minimum scope each
offers for identification — from Google, your basic profile and email address; from
Apple, your name and email address, which you may choose to relay through Apple's
private address. We receive no password, and no access to anything else in that account.
Support for further platforms — Instagram, YouTube, X, TikTok and Discord among them —
is on our roadmap. When one goes live, the data we take from it, the permissions we ask
for and the reason will be published here before you can connect an account,
either in an update to this section or as an
Additional Privacy Term. We will not quietly widen
collection under a general sentence about "supported platforms".
7 Information We Receive from Third Parties
Not everything we hold came from you or from your device. These are the other routes,
and what arrives by each.
- Payment providers
- Payment status, amount, currency, provider reference, method type, fee, failure reason, and any chargeback or dispute raised against a payment. For crypto, the transaction hash and the amount confirmed.
- Suppliers (Boost fulfilment)
- Order status, quantity delivered, start count and remaining, and refill or cancellation outcomes. Nothing about you personally — they were never told who you are.
- Telegram
- What sections 6.1–6.4 describe, plus delivery outcomes when the Bot messages you.
- Google / Apple
- The sign-in profile described in section 6.5, when you use that route.
- Other users
- What a counterparty says about a deal — a dispute, a review, a report of abuse, and the evidence attached to it.
- Anti-abuse services
- The result of a bot-detection challenge on a form — a pass or a fail, plus the risk signals the provider returns.
Where a third party sends us something we did not ask for and do not need, we discard
it rather than file it.
8 People Who Are Not Our Users
An advertising platform inevitably touches people who never signed up for anything —
the audience of a Channel where a Placement runs. Most policies pass over this in a
sentence. It is the part of our processing that deserves the most explanation, so it
gets a section.
8.1 Links in an ad, and what we measure about them
Every link in a Placement — in Paid Promotions, Cross-Promotion and the Subscriber
Exchange alike — is planned by us before it is published, and what it becomes depends
only on where it points (Terms section 17.4). Three
things can be measured, and each keeps a different record.
- A join, through an invite link
- Where the destination is a Telegram channel the advertiser has connected to us, we
publish a per-campaign invite link into that channel. Telegram
attributes every join to the link and tells the one process it tells — our Bot, as an
administrator of that channel — which records the join, and any later leave or return,
against the campaign. What is recorded is a salted one-way hash of the
Telegram user id (salted with a secret only our systems hold), the channel,
and the times of joining and leaving. Enough to recognise the same person leaving
again; never enough to name them, and no name, username or profile is stored. We also
note the channel's public subscriber total when the link is created and again as the
run proceeds, so the advertiser can read the growth beside the join count. The
advertiser sees counts.
- A tap, at our redirect
- A web destination is published as a first-party redirect of ours
(
/go/…) that sends the reader straight on. At that hop we record the tap,
the link it was for, the visitor's IP address and User-Agent as sent,
a one-way salted hash of those two, and the country, referring page,
device type, operating system, browser and preferred language. A repeat tap by the
same hash on the same day is not a new unique, a reload loop is capped, and
link-preview crawlers are served but never counted — they are still recorded, and
marked as crawlers, so a spike can be shown to be automated rather than quietly
dropped. The IP address and User-Agent are deleted after 90 days
(§5.6), after which only the hash and the derived
values remain. No cookie is set on the visitor's device by the redirect.
- A landing or a conversion, on the advertiser's own site
- See the note below: this is the part a reader would not guess.
What the hash is for. Its first job is to tell a repeat tap from a new
one, so that a click figure means something. It has a second job we should name rather
than leave inside the word "deduplication": when a buyer is choosing between channels, we
use their own past click hashes to tell them how much the audiences they have
already reached overlap — how many of the devices a proposed channel would reach they have
effectively already paid to reach elsewhere. That comparison happens across a single
buyer's own campaigns, produces counts rather than lists, and exists to stop advertisers
paying twice for the same audience.
It is worth being exact about what that hash is, because "hashed" is a word policies
often use to mean more than it can. It is a one-way function salted with a secret only
our server holds, so it is not an encrypted address we could decrypt,
and it cannot be matched against a hash produced by anyone else — which is what stops a
click record joining up with data held somewhere outside this platform. It is also
not anonymity: we hold the salt, so we are the one party who could take
a specific address and test whether it matches. We do not do that, we have built
nothing that does, and we will not — but you are entitled to the accurate
version rather than a claim of mathematical impossibility that is not true of the party
holding the key. The same is true of the member hash behind a join.
Click and join data is never sold, shared or otherwise made available to anyone for
advertising to that person, and no advertiser is ever given a hash.
The advertiser gets a number, not an audience list. Telegram
destinations that are not the advertiser's own connected channel, and bare addresses
typed into a caption, are published exactly as written and measure nothing.
Measurement can continue onto the advertiser's own website, and this is the part
a reader would not guess. An advertiser can add the Onflow tag
— one line of script, onflowads.com/tag.js — to the page an ad sends
readers to. When a visitor arrives with our campaign parameters on the address, the tag
reads the link's token off them, writes that token into that site's own browser
storage (both the session storage, which clears with the tab, and the local
storage, which persists until the visitor clears that site's data), and reports one
landing per link per browser tab to us by requesting a tiny image. Later the
advertiser's page can call the tag to report a conversion, with a label and a
value they chose, attributed to the remembered link. The tag sets no
cookie, reads nothing on the page, and sends only the link's own token and
those two beacons.
On our side, a landing and a conversion are recorded exactly as a tap is: the same
salted hash of IP address and User-Agent, plus the referring page, device type and
country, deduplicated per visitor per day. Because it is the same hash, a tap inside a
Telegram channel and an action later on the advertiser's site are joined into
one record for that device. What that does and does not mean: it is
one advertiser's own funnel, not a profile that follows anyone around
the internet. There is still no cookie, no name, no address, and no identity — and we do
not use these records to build audiences, to target anyone, or to recognise a person on
any site other than the one the advertiser put the tag on. The value a page reports is
capped so a stray script cannot invent an advertiser's numbers.
The page carrying that tag is the advertiser's, not ours, and the
storage it writes is written on that site. What else that page does, what else it loads,
and what it tells its visitors about our tag are matters for them under
section 3.2 — an advertiser using it must have a basis for it and
must say so in their own privacy notice.
The measuring hops are deliberately excluded from our general activity
record — the log in section 5.2 that records the IP
address of ordinary requests. It would otherwise have undone the whole design by
recording, at the outer layer, the identifier the redirect itself refuses to keep. So
the answer to "what do you hold about me because I tapped an ad" is: a salted hash
that cannot be reversed, and nothing else.
That exclusion covers every rail that measures a tap, a landing or a
conversion — the /go/ redirect, the older redirects that still serve
posts published before it, and the tag's beacons — and each one is named in the code
that decides what gets logged, with a test that fails if one is removed. We mention the
test because a privacy rule that lives only in a policy is a rule waiting to be undone
by a tidy-up. If you ever find a tap, landing or conversion request of ours
recorded with a raw address, that is a defect and not a change of policy: tell
us at [email protected] and we will
remove the entries and close the gap.
8.2 How long these records last
Tap, landing, conversion and join records live with the campaign they belong to, and are
covered by the order retention row in section 20.1. Because they
carry no address and no account link, a visitor who asks what we hold about their tap or
their join will usually find there is nothing we can identify as theirs — which is the
point of storing them that way, and is also the honest answer to a request rather than a
refusal. Invite links minted for a campaign that never goes out are revoked.
8.3 The one place a tapper is identified — and it is closing
Older Subscriber Exchange placements are the exception, and it is a real
one. Before every engine moved to the rule in 8.1, every button on an exchange
placement opened our Bot, and when a Telegram user tapped one Telegram told us who
tapped: we recorded that Telegram user id against the delivery, because
the exchange pays a channel owner for genuine taps and without it one person tapping ten
times is ten taps. Nothing new is published on that rail. A placement
published since carries a direct link, an invite link or our redirect, none of which
learns a Telegram identity. The record described here is made only by a button on a
placement that was already in a channel before the change, for as long as such posts
are still tapped.
What is stored there is the numeric id and the moment of the tap — no name, no
username, no phone number, no profile. It is not shown to the advertiser, who
sees counts. It is attached to the delivery record it belongs to and is destroyed with
it, and section 20.1 is where to look for how long that is.
Some of the people who tap are Onflow Ads users whose accounts are keyed to the same
Telegram id, so for them the id could be joined to their account record.
We do not join it: it counts unique taps, it feeds no profile, it
changes nothing on the account, and no screen anywhere shows an advertiser who tapped.
Buttons on older Cross-Promotion posts that still open the Bot work the same way for the
same reason, except that the identifier is held only briefly — in the Bot's own cache,
for about a day — because there telling a repeat tap from a new one is
all it is for. Where that cache is unavailable the tap is simply served and not counted.
8.4 The audience of a Channel
We do not collect member lists, viewer identities or reaction identities from any
Channel — see section 6.4. What an advertiser learns about a
Channel's audience from us is aggregate: how many, how engaged, when they are active.
8.5 People you tell us about
If you name someone in a support ticket, a dispute, an abuse report or a piece of
creative, we process that data to deal with the matter you raised. We keep it with the
matter and no longer than section 20 allows. If that person asks
us what we hold about them, we will tell them — and, where you supplied it, generally
point them to you under section 3.2.
8.6 Your rights if you are not a user
Everything in section 22 is available to you even if you have never
had an account. Write to
[email protected] with enough detail to
find the record — the link you clicked, the promotion, the approximate date — and we will
search and respond.
Two honest notes so the answer is not a surprise. For click data the answer is usually
that we hold nothing we can tie to you, precisely because it was never stored in an
identifiable form — that is a real answer, not a brush-off, and 8.1 explains why. And
because you are not an account holder, there is no account email for us to verify you
against, so we may need to ask you for enough detail to be confident the record is
actually yours before we hand anything over. That step protects you: it is what stops
someone else asking us about you.
9 What We Do Not Collect
A notice that only lists what a platform takes tells you half of what you need. These are
commitments, and changing one needs the notice in section 26 —
not a quiet edit.
We do not collect, and do not want:
-
Special-category or sensitive data — health, biometrics, genetic
data, sexual orientation, religious or political belief, trade-union membership, or
caste or community. We have no feature that needs it, no field that asks for it, and
nothing that acts on it. If you type it into a free-text box anyway — a ticket, a
dispute — it sits inside that record, which is kept for the period in
section 20.1 like the rest of the record.
Tell us and we will take it out of the retained copy. We will not
promise an automatic sweep of every free-text field we hold, because that is a
promise nobody could keep reliably — so the honest version is: we never ask for it,
we never use it, and we remove it when you point at it.
-
Full payment credentials — card numbers, CVVs, UPI PINs, banking
passwords or one-time codes for your bank. Nobody at Onflow Ads will ever ask for one.
-
Your Telegram password, 2FA code, or a login code for any other service.
Anyone asking you for one while claiming to be us is not us — report it to
[email protected].
-
Your Channel's member list, or the identity of individual viewers,
reactors or clickers. Two narrow exceptions are named where they arise rather than
hidden here: the counterparty membership check in
section 6.4, which looks only at the person on the other side
of a live deal, and the tap on an older Subscriber Exchange placement in
section 8.3. Neither gives us a member list, and neither
tells us who else is in your Channel; a join through a campaign invite link is
recorded only as a salted hash (section 8.1).
-
Precise device location — no GPS, no location permission is ever
requested. Location means "country, inferred from IP", nothing finer.
-
Data from children. See section 23.
We also do not buy personal data from data brokers, do not enrich your record from
third-party datasets, and do not scrape personal data from Telegram or anywhere else to
build lists.
Why we use it
10 Purposes and Lawful Bases
We use personal data only for the purposes below. Each is paired with the basis we rely
on: under the DPDP Act, either your consent or a
legitimate use the Act allows; under the GDPR, one of contract,
legitimate interests, legal obligation or consent. Where two bases are shown, the first
is primary.
- Create and run your account — sign-in, verification, 2FA, preferences
- §4.1, §5.1, §6.1. Basis: Contract · Consent given at sign-up.
- Deliver the Services — list a Channel, match a deal, place an order, run a Placement, verify delivery
- §4.2, §4.3, §6.3. Basis: Contract.
- Take and move money — top-ups, plans, escrow, payouts, refunds, invoices
- §4.4, §4.5. Basis: Contract · Legal obligation.
- Report performance — your analytics, delivery proof, click and view figures
- §5.2, §5.3, §8.1. Basis: Contract · Legitimate interests.
- Keep the marketplace honest — reliability scoring, dispute handling, fraud and collusion detection, penalty enforcement
- §5.1, §5.3, §7. Basis: Legitimate interests · Legal obligation.
- Security — authentication, rate limiting, bot defence, incident investigation
- §5.1. Basis: Legitimate interests · Legal obligation.
- Support you — answering tickets, contact-form enquiries, appeals and grievances
- §4.6. Basis: Contract · Legitimate interests.
- Service messages — codes, receipts, order and payout notices, expiry reminders, incident notices
- §4.1, §6.2. Basis: Contract.
- AI features — drafting copy, suggesting targeting, safety checks, duplicate detection
- §4.3, §12. Basis: Contract (when you invoke it) · Legitimate interests (safety checks).
- Product analytics — understanding which features work and where people get stuck
- §5.2, §18. Basis: Legitimate interests — running, measuring and repairing a service we are contractually obliged to keep working. Analytics is the always-on category described in section 18.3, so we do not call it consent when you were not asked. Consent remains the basis for the advertising tags, which never load unless you accept them.
- Marketing — campaign emails and product-update mail to our own members
- §4.1, §19.2. Basis: Consent — you receive it only after ticking the unticked "Send me product news and offers" box at sign-up or on a top-up checkout, or switching it on in your notification settings (§19.2). Nothing is sent on the strength of holding an account. Withdraw in one click, from any such email, without signing in, or with the same toggle.
- Financial-crime compliance — checking a payout destination or a payment against sanctions and similar restrictions, holding or refusing one where we must, and reporting where the law requires it
- §4.4, §4.5. Basis: Legal obligation · Legitimate interests. We do this where a payment provider, a banking rail or the law requires it of us — most often on a cross-border or cryptocurrency payout. If a payout of yours is held for this reason we will tell you, unless telling you is itself prohibited (section 15.1).
- Meet legal duties — tax and accounting records, lawful requests, grievance response, complaint defence
- §4.4, §20. Basis: Legal obligation · Legitimate interests.
10.1 We do not repurpose data silently
Data collected for one of these purposes is not quietly reused for another. If we want to
use something you gave us for a materially different reason, we will say so first — in an
update to this Policy, or as an Additional Privacy Term
— and where the new purpose needs consent, we will ask for it rather than assume it.
10.2 Our legitimate interests, stated plainly
Where we rely on legitimate interests, the interest is: running a marketplace where
delivery can be verified, fraud can be caught, and a dispute can be decided on evidence.
We have weighed that against your interests and consider it proportionate because the
data involved is transactional rather than intimate, it is used to protect the other side
of a deal as much as our own position, and you can object at any time under
section 22. Tell us why, and we will stop unless we can show
compelling grounds that override your objection.
11 Scores and Automated Decisions
Some things on this platform are decided by code before a person ever looks. You are
entitled to know which, and to get a human involved.
11.1 What is decided automatically
-
Your reliability score and account standing, computed from your own
conduct in deals, which can gate access to products, raise the deposit you must stake,
or hold a payout.
-
Eligibility floors — whether you meet the minimum standing to enlist,
to take a certain order size, or to use a particular product.
-
Abuse and fraud signals — duplicate-account, collusion and
bot-traffic detection, which can flag an order or an account for review.
-
Content safety checks on creative, which can block a submission
before it reaches a counterparty.
-
Rate limits and lockouts, applied per account, per email and per IP.
-
What you are charged, and what you are offered. Several prices are
computed rather than fixed, and your own record is an input to some of them. A Channel
owner whose reliability score falls below our threshold has a capped number of extra
percentage points added to the commission on each booking, which returns to normal as
the score recovers — it is charged to the owner, never to the buyer, and a booking
always shows the base rate and any addition separately so you can see which part came
from your record. Volume discounts are computed from your lifetime spend, repeat-buyer
pricing from your history with that listing, and where we have agreed a wholesale rate
with you it is applied automatically whenever it beats the standard ladder. Automatic
bookings you set up — auto-accept, a recurring rebook, a Boost auto-renew — form the
order and charge your Wallet without a further click from you, which is what you asked
them to do when you switched them on.
-
The anti-evasion floor — if you closed an account while its standing
was below baseline and then open a new one, the reduced standing is re-applied to the
new account automatically, for the period in
section 20.3. It is the one decision here that reaches across
an account closure, and it is why that section exists.
-
Merging two records into one when you link Telegram to a website
account, on the terms in section 6.2 — including that the
merged account keeps the worse standing of the two.
-
The debt gate. An account whose Wallet balance is below zero cannot
start anything new until it is cleared, and every credit that lands is applied to the
negative first (Terms section 12.11). The two
settlements that can put a balance below zero — a declared cross-promotion cover and an
early unpin — are themselves applied by machine, on a monitor finding confirmed on two
consecutive checks, and are appealable as any penalty is.
-
The device-debt block. Where the device identity in
section 5.5 matches, at a confidence high enough
to enforce, a device on which another account carries an unpaid debt, this account is
refused when it tries to start something new. It is the one automated decision here that
reaches across accounts; it charges nothing, and a weaker match is only ever raised for a
person.
11.2 A human will look if you ask
No automated decision permanently closes your account, takes money out of your
Wallet as a penalty, or refuses a payout for good on its own. Those outcomes
require a person. An automated decision can suspend, hold or block pending that review
— because the alternative is letting a suspected fraud complete while we deliberate —
but it is a hold, not a verdict.
To be clear about what that does not cover, since we would rather you know
than be surprised: routine automatic movements that follow the rules you agreed to are
not "decisions about you" in this sense. An order that cannot be delivered is cancelled
and the money returned automatically, escrow releases when delivery is confirmed, a
fee is charged when the Terms say it is, and a plan lapses when it
expires. Those run on their own by design, they are described in the
Terms and the Refunds Policy, and if one of
them goes wrong it is a mistake to fix — through
section 24 — rather than a penalty to appeal.
Two of those automatic movements can go against you, and naming them is fairer
than leaving them inside the sentence above. The good-faith deposit a Channel
owner stakes to accept a booking is paid over to the advertiser when a
failure to deliver is attributed to the owner; and where part of a payment is held back
against the placement staying up for an agreed period, that held-back slice is
returned to the buyer when it did not. Both follow the terms of the
deal you accepted rather than any judgement about you, and both are checked twice
before they fire — but they are your money, and no person signs them off first.
So they get the appeal too. If one of them ran against you and the cause was not what
the system concluded — Telegram was down, the post was removed by someone else, the
check misread what happened — say so and a person will look, using the
in-product appeal or
[email protected], and we can reverse
it. What the paragraph above still means is that nothing automatic takes your balance
as a penalty, closes your account for good, or refuses a payout permanently.
Where a decision about you was made automatically and has a significant effect, you may
ask for it to be reviewed by a person, put your side of it, and have the decision
reconsidered. Use the in-product appeal where one exists, or write to
[email protected].
11.3 What we will tell you about the logic
On request we will explain, in ordinary language, what categories of behaviour feed a
decision about you, roughly how they are weighted, and what would change the outcome. We
will not publish the exact thresholds and detection rules, because doing so hands the
playbook to the people the system exists to catch — and a fraud-detection system that
explains precisely how to evade it protects nobody. Your right to a human review does not
depend on our disclosing them.
12 AI Features
12.1 What the AI does
The Services include AI assistance: drafting and rewriting ad copy, suggesting targeting
and pricing, describing a Channel, summarising analytics, checking creative for
prohibited content, and spotting near-duplicate submissions. The same AI layer serves the
website and the Bot.
12.2 What reaches a model provider
More than the sentence "we use AI to help you write ads" implies, so here it is in full.
Depending on which feature runs, the following is sent to the model provider we have
configured at the time:
- You use an AI writing or suggestion feature
- The brief or text you are working on, your editing instructions, the destination link, and the Channel's public profile and category.
- Creative is checked for safety
- The creative being checked.
- A submission is checked for duplicates
- The listing or creative text, converted to a numeric embedding by the provider.
- AI drafts a support reply or triages a ticket
- The ticket thread, including what you wrote and your name.
- You use the AI support chat
- Each message you send, the conversation so far, and the page you are on — sent to generate the reply. The conversation is stored as a support ticket (section 4.6). This is the same whether you are signed in or not. Before a conversation starts you are shown a short notice that says this, and you choose: accepting begins the chat, declining closes it before any message is sent. We record which you chose, when, and which version of the notice you were shown — consent to a sentence we have since rewritten would not be consent to the new one.
- You attach a screenshot to the AI support chat — where your account has that turned on
- The picture itself, in full, exactly as you sent it — carried to the model provider with the message it is attached to, so the model can look at it rather than be told about it. We do not crop it, blur it, or read anything out of it first: a screenshot is sent whole or not at all. That is the part worth reading twice, because a screen grab shows whatever else was on the screen — another tab, a notification, an address bar, a window behind the one you meant to capture — and nothing on our side can know which part you meant. Up to three pictures may ride on one message, each up to 4 MB, in the four ordinary image formats a browser produces (PNG, JPEG, WebP, GIF); the type is decided from the file's own bytes rather than from what your browser called it. Crop before you send, not after — deleting the message afterwards cannot un-send the picture, exactly as the ordering note below says of text.
- You ask the support chat about your own account — on the plans that include it
- A typed summary of your own account, assembled by our server, capped in size, and sent with every message you send in the chat. It has three parts: an account summary with your identifiers masked (your display name, your Onflow Ads ID, your plan, whether two-factor is on, your balances, credits and lifetime top-ups, your referral code and how many members it brought in, your reliability score, when you joined and how you signed up, whether Telegram is linked, your marketplace side, verification and account status, any freeze or outstanding balance with its dates, and a scheduled deletion if there is one — your email address is shown only partly, and your Telegram user id never); a list of the parts of your record that hold entries, with how many; and a few of the newest entries from the parts that bear on what you asked (or, when a question names nothing in particular, your most recent activity). On top of that, and only when you ask for them: an Onflow Ads reference you pasted and what it names, the events behind a change in your reliability score, which of your recent top-ups are still inside a refund window, and channels we suggest you approach. It is your data and only ever yours — no other member's account identifiers, contact details or messages are read — your own Orders show the Channel you booked, and suggested partners come only from listings whose owners opted into the public directory, and a reference belonging to someone else returns the same "no information" answer as one that does not exist. Never read at all: account passwords and other sign-in credentials, two-factor secrets and codes, IP addresses, devices and sign-in history, your payout destination, identity documents, and our team's internal notes and fraud or risk signals. The read is read-only at the database itself, and the model is only allowed to restate what it is given: anything with a consequence attached is written by our server, not by the model.
- You ask the support chat to carry out a task
- Nothing beyond the message you wrote. The task itself — finding what
you could mean among your own records, proposing it, and running it after you confirm —
is done by our own server through the same request the page would make, not by the
model. The model sees your message and the one-line outcome so it can tell you what
happened. The proposal and the outcome are kept on your support ticket as an action
log, with your identifiers masked as everywhere else in this section.
- AI assists on a dispute or a fraud review
- Both sides' account history and the money lines of the deal in question.
- AI narrates your analytics or suggests a next step
- Your commercial figures — spend, delivery, performance, tier.
Support tickets, dispute records and your commercial figures do reach a model
provider when an AI feature runs over them. We would rather say so than write
the usual line about AI only touching ad copy.
You can have AI switched off for your account entirely, and it is
worth knowing how to do it in the right order. There is a per-account switch; it is
set by us rather than by you, so ask for it at
[email protected] or
[email protected] and we will turn it
off. From then on the chat does not run for you at all and every ticket you open goes
straight to a person.
Ask before you write about the thing you are worried about, because a request
typed inside a message has already been sent by the time anyone reads it. If you have
already written and want the rest handled manually, say so and we will do exactly that
— it simply cannot un-send the message that carried the request. This is the one place
in this Policy where the order you do things in changes the outcome, so we would rather
spell it out than let you find it afterwards.
What never goes to a model provider, in any feature: your password or
any other credential, your two-factor secret, your payout destination
(the UPI handle, bank details or wallet address money is sent to), the payment
instrument you paid with, and the contents of another user's account except
where they are a party to a dispute being assessed or the information is already
published to you in the marketplace — a listing's public profile, for instance, when the
chat is suggesting partners.
What does go, and used to be described here too narrowly: money
figures. When an AI feature runs over your commercial data — the account-aware
chat above, a dispute assessment, an analytics summary — amounts reach the provider:
what a top-up was for and whether it is still refundable, wallet and credit movements,
a withdrawal's amount and status, your balance. The line we hold is between
figures, which an assistant needs to answer "why was I charged this",
and instruments — the card, the account, the address — which it never
needs and never gets.
The engine behind those features is one of a small set of established commercial model
providers. Which one is active is an operational choice that can change without a code
release, so rather than print a list here that goes stale, we will tell you the
provider in use, and the terms it operates under, if you ask —
[email protected].
One of the options is a router rather than a model. A routing service
passes the request on to a downstream provider of its own, so where one is the configured
engine, a further company processes the content — and the answer to "who exactly" is part
of what you get by asking. If we ever route AI processing somewhere on materially
different terms, we will publish it under
section 27.
12.3 What we keep
We log that an AI call happened — which feature, which account, when, and how much quota it
used — for billing and abuse control. We do not store the prompt or the model's
response in that log. AI output that becomes part of your work — a saved draft, a
generated description, a campaign email — is stored as your content, like anything else you
saved.
One exception is deliberate: where a safety check blocks a submission, the blocked
text is kept as the evidence for that decision, so an appeal under
section 11.2 can be judged on what was actually written rather
than on a summary of it.
A screenshot you attach in the support chat is the other thing we keep,
and for the obvious reason: it is part of the conversation. It is stored against the
message it was attached to, our support team can open it exactly as they can read the
transcript, and it is deleted when that conversation is deleted — not
separately and not later, but in the same operation, because it belongs to the
conversation rather than sitting in a file store beside it. A picture you upload and
then never send — you attached it, changed your mind, closed the tab — is swept away
automatically within six hours. There is no gallery, no public address,
and no way to reach one of these pictures other than through the conversation it
belongs to.
12.4 Training
We do not train AI models on your personal data, and we do not licence your
content to anyone for training. That one is ours to promise, and we do.
The provider's side of it we state as the rule we select by, because it is the only
form of that promise we can actually keep: we will only configure a model
provider whose business terms bar customer content from training its general
models, and we use these providers through those business interfaces rather
than the consumer ones. If a provider we rely on changed that term, our answer is to
move, not to update this paragraph quietly. We cannot bind a provider beyond its
contract — so if this matters to you, ask us who is in use and we will tell you, and
you can read their terms yourself.
12.5 What AI output is, and is not
AI output is a draft. It can be wrong, generic or unsuitable, and you remain responsible
for what you publish — see section 10 of the Terms. AI does not
decide anything about you on its own beyond the checks listed in
section 11.1, all of which carry the human-review right in
section 11.2.
12.6 If AI is switched off
The AI layer is optional infrastructure. When no engine is configured, every AI feature
degrades to templates and nothing leaves for a model provider at all. Nothing else about
the Services depends on it.
Who else sees it
13 What Other Users Can See About You
A marketplace only works if each side can judge the other. This is the exact line between
what a counterparty is shown and what they are not.
13.1 What a counterparty sees
-
Your Channel's public profile — its name, handle or invite link,
description, category, language, and the subscriber and engagement figures we hold for
it.
-
The creative and order details for the deal you are in with them,
including the destination link.
-
Your public trust signals — the standing badge, completion and
dispute history in summary form, and the reviews left on completed deals.
-
Delivery evidence for the deal — proof screenshots, message links and
the figures before and after.
-
A display name for correspondence within the deal.
13.2 What a counterparty never sees
They do not see your full email address, your Wallet balance, your transaction
ledger, your payout destination, your legal name from verification, your IP address,
your other Channels, or your other campaigns. None of it is exposed by any
marketplace screen, and none of it is included in a deal record shared with them.
One precision, so the sentence above is exact: where a channel owner needs to tell two
advertisers apart, they are shown the advertiser's display name — the
name that member set on their own account, which is what section 13.1 already lists as
shared within a deal. Until a member sets one, the name is derived from the readable
part of their address with the domain dropped (john.doe@… reads as
John Doe), and it is replaced by the name they choose the moment they set
one. No form of the address itself — whole, partial or masked — is rendered
on a counterparty's screen. This replaces the masked address
(al****@g***.com) shown here previously, which identified nobody and was
still a fragment of an address travelling for no purpose.
13.3 What is public to anyone
Channels listed in the public directory, and the pages you choose to make public, are
visible to anyone — that is the point of listing. Delivery-proof and certificate pages are
unlisted but reachable by anyone holding the link: we do not list them
anywhere and we ask search engines not to index them, but they are not access-controlled,
so the link is the only lock. If someone posts that link somewhere
public, it can be found and crawled like any other address on the internet — which is
why the honest instruction is to treat it as private rather than to trust that it is
hidden.
A delivery certificate says more than "it ran". As well as the channel,
the post and the delivery figures, a certificate carries what the advertiser
paid for that placement and, where our monitoring found a problem with the
post, the finding and the note explaining it
(section 5.4). So sharing one publishes the price and — if
there was one — an adverse finding about the Channel that ran the ad.
It is minted by the buyer; the Channel owner is not asked first and cannot withdraw it,
because a proof document either party could delete on demand would prove nothing. That
is the trade this product makes, and both sides should know it before they book. If a
certificate about your Channel is wrong, that is a different matter and you can
have it put right — contest the underlying finding under
section 11.2, and the certificate follows.
Our support emails work the same way, and this one catches people out.
The link in a support email carries an unguessable conversation code, and
that code, not your account, is what opens the thread — so anyone
holding the link can read the whole conversation, reply in it, and close or rate it,
without signing in. That is what lets us help someone who cannot get into their account
at all, and it also means forwarding a support email hands over the conversation.
Treat a support link exactly as you would treat a proof link.
For the same reason the help widget keeps a little state in your browser's own storage:
your name, the email address you gave us, and the codes, references and subjects
of your last few conversations, so it can show them again when you come back
and fill your address in for you. None of it leaves your browser except when you send a
message — but it does mean that on a shared computer the next person can see
them. Clearing site data for onflowads.com removes all of it, and
section 18.2 lists it with the rest of what we keep on your
device.
13.4 People who copy what is public
Because a directory listing is public, other people can and do copy it. We do not permit
it — automated collection of pages and listings is prohibited by
the Terms, and we take technical measures against it — but we want
to be straight with you about the limit of what any website can promise here: once a page
is readable without signing in, we cannot guarantee that nobody has copied it, and a
dataset assembled by someone else from public pages is outside our control and not
something this Policy can govern.
What we can tell you is where that boundary sits. The public side is the listing
you chose to publish and the pages you chose to make public. Everything in 13.2 —
balances, ledgers, addresses, other campaigns — is not on a public page at all, so it is
not there to be copied. If you find our content or your listing republished somewhere it
should not be, tell us at
[email protected] and we will act on it as
far as we are able.
13.5 What our own staff can see
Our support and operations staff can see your account record — email, name, standing,
balances, orders, tickets, the addresses and browsers on the security events in
section 5.1, and the verification details in
section 4.5 — because they cannot resolve a dispute or a locked
account without it. We would rather state that plainly than imply a graduated view in
which some staff see less: anyone we give an administrative login to can read
account records. What is genuinely restricted is doing things — the
consequential and irreversible actions are reserved to the platform owner — and every
administrative action is written to a log that cannot be edited.
The controls that actually protect you here are therefore fewer people and a complete
record, not a permissions matrix: administrative access is granted to as few people as
the work allows and withdrawn when it is no longer needed. We do not read your
data out of curiosity, we do not sign in as you to look around, and we do not use what
we see in your account for anything other than the matter in front of us. If
you believe someone looked at your record without a reason, ask us under
section 24 — the log is how we answer that question, and it is
the reason we keep one.
14 Service Providers and Sub-Processors
Running the Services means other companies touch some of the data. These are the
categories, what each receives, and why. A provider here is bound to use the data only to
deliver its service to us.
14.1 Infrastructure
- Hosting & database (application servers, PostgreSQL, Redis)
- Runs the Services and stores everything described in this Policy. Receives: All of it, at rest and in transit.
- Network protection & edge
- Shields the site from attack and abuse, runs the bot-check on public forms, and stores and serves uploaded media. Receives: Request metadata including IP and User-Agent; the bot-check token and IP; uploaded images and creative, including the screenshots attached to a campaign report (we also keep our own durable copy).
- Email delivery provider
- Sends verification codes, receipts, invoices, order notices and campaign mail. Receives: Recipient email address, name, and the content of the message and any attached invoice.
- Telegram
- Carries the Bot, sign-in and every message we send you there, and the internal operations channel described in 14.5. Receives: Your Telegram user id and the content of what we send you — and, where we have it switched on, a copy of promotional images you upload, stored in a private channel of ours the moment you upload rather than only when an ad runs. That is how a creative can be posted into a channel instantly instead of Telegram fetching it from us each time, and it means an image you upload can reach Telegram before it is ever published. The copy you see on this site is still served from our own systems.
- Error monitoring provider
- Records crashes and errors so we can fix them. Receives: Configured not to attach personal data automatically. In practice a crash report carries technical context — the request path, the error and the stack — and a stack can include the values a function was working on at the moment it failed, so an identifier can reach it that way. Reports are used to fix faults and nothing else.
- Your browser's push service
- Actually delivers a web-push notification to your browser. Which service that is, is decided by the browser you chose rather than by us. Receives: The push endpoint your own browser issued, and the encrypted notification. The message body is encrypted to your browser's keys, so the push service cannot read it.
- Backup storage provider
- Holds encrypted off-site database backups. Receives: Everything in the database, encrypted — see §20.5.
14.2 Payments and payouts
- Card / UPI / netbanking gateway (India)
- Rupee wallet top-ups. Receives: The amount, currency, our internal order and account references and the fee breakdown; your email address as a checkout pre-fill; and whatever payment instrument you enter directly on the gateway's own checkout, which we never see. The gateway's checkout script runs on the top-up page, so it also sees your IP and browser.
- Crypto payment gateway
- Cryptocurrency top-ups. Receives: The amount, currency, our order reference and our callback address. No name, email or account id. Your wallet and network are handled entirely on the gateway's page.
- Exchange rate services
- Locks the INR→USD rate on a top-up. Receives: No personal data — an unauthenticated rate lookup.
- Cryptocurrency exchange
- Prices the network fee on a crypto refund and settles crypto funds. Receives: No personal data — a read-only fee lookup.
- Payout rails (paying a seller out)
- Actually moves money from us to you. Receives: the destination you gave us — a UPI handle, bank details or a wallet address — the amount, and whatever the rail requires to make the transfer land, which for a bank or cross-border transfer can include the name on the receiving account. A payout cannot happen without this: it is the one place your destination has to leave us, because it is the instruction. Where a rail or the law requires a check before releasing it, section 10's financial-crime row is the purpose that covers it.
Payment providers are independent controllers of what you give them directly. Their
handling of your card, bank or wallet details is governed by their own policies, and we
could not access those details even if asked.
14.3 AI providers
As described in section 12.2 — a commercial model provider, named to
you on request. It receives the content an AI feature operates on and nothing else.
14.4 Suppliers that fulfil Boost orders
A Boost order is fulfilled through a third-party supply panel. We send it three things:
the service identifier, the target link you gave us, and the quantity
(plus a drip schedule where you chose one).
A supplier is never told who you are — no name, email, account id or
payment data crosses that boundary. But the link does go to a company we do not control,
often outside India, and suppliers are independent controllers of what they do with a
link once they hold it.
For most services that link is a public one — your channel, your
profile, or one of your posts, already published for anyone to see.
Telegram member and subscriber services are the exception, and it is an
important one: they will not accept a public @username and require a private invite
link instead. An invite link is a working key into a private channel, not a
public address — and it is sent to the supplier exactly like any other target, stored
on the order, and shown on that order's proof page.
So, plainly: do not order one of those services against an invite link whose
privacy you cannot afford to lose — mint a fresh link for the purpose, and
revoke it in Telegram when the order is done. And note that we do not verify that a
target belongs to you, which means the platform cannot stop someone pointing an order
at a channel that is not theirs. Doing that breaks the Terms and,
under section 3.2, the responsibility for it is the buyer's. If an
order has been aimed at your channel without your agreement, tell us at
[email protected] and we will stop it.
14.5 What we send to ourselves over Telegram
We run the platform from Telegram as well as from a screen, which means some of your data
travels to us through Telegram. There are three kinds of that traffic, and the
honest thing is to describe all three rather than only the tidy one.
The activity record in section 5.2 is mirrored, as it
happens, into a private operations channel that only our operators can read. It is
how we notice a failed payout or a suspicious sign-in within seconds rather than at the
next report. An entry can contain the acting account's name and email address, its
account id, the IP address, the country and the browser, the referring page, the action
and its outcome, and the operative details of the event — for money operations, the
amounts and references involved. Credentials and secrets are stripped before anything is
written.
Practically, this means a messaging provider carries a copy of those operational
records as the transport for that channel, on the same footing as any other
provider in this section. We disclose it rather than describe it as "internal logging",
because that is what it is.
The second kind: review cards, which carry more about you than a log line
does. Some decisions need a human to look at a person rather than an event —
approving an exchange advertisement, reviewing a listing submitted to the marketplace,
handling an appeal. For those, the platform posts a review card to a
private admin channel, or as a direct message to the reviewing administrator's own
Telegram account. A card can carry your name and email address, your account
and Telegram identifiers, your reliability score and standing, figures about your
channels, your history of previous submissions, and the creative or listing being
reviewed — because that is the material the decision is actually made on.
Two consequences worth stating plainly. It means an administrator reviewing your
submission sees it on their own phone, in their own Telegram account,
not only inside our admin panel. And it means those cards, like the log above, sit in a
Telegram history — so the same limit in section 20.4 applies to
them. Everything else in this Policy still governs them: they are used for the decision
in front of the reviewer and for nothing else.
The third kind is a message to you — a notification the Bot sends about
your own order or account. That is not a disclosure to anyone but you, and
section 19.3 covers it.
That covers the web address as well as the contents of a request. A log
entry records the address that was visited, and a few of the one-click links we email —
the kind you press to verify an address or to approve something — carry a single-use key
inside the address itself. Those keys are stripped before the entry is
written: what an operator sees is the page that was opened and the
name of each thing passed to it, with the value replaced unless it is something
harmless like a page number. Anything we have not positively identified as harmless is
hidden rather than shown, so a new link cannot start leaking a key by being added.
What is held back from that channel. The legal name
you gave for verification is dropped entirely — it is the one field
that ties a pseudonymous account to a real identity, and an operator who needs it opens
the admin panel instead. Credentials and secrets never appear at all.
Phone numbers, and destination fields on money records, are masked to a
last-four tail — •••4821 — which is enough for an operator to
notice that a member's destination has changed, the way a hijacked account gets caught
before the money leaves, and not enough to pay anyone or to identify anyone.
One alert still carries a destination in full, and we would rather name it than
let the paragraph above imply otherwise. When a withdrawal or
a cryptocurrency refund is recorded, the alert for it currently
includes the destination the money is going to — a UPI handle, bank details, or a
wallet address — rather than the masked tail. So for those two events, the destination
you gave us reaches the operations channel, and therefore the messaging provider
carrying it, in full.
We are narrowing it to the same last-four tail as everything else, because the tail is
all the alert needs. Until we have, this is the accurate description, and you should
read it together with section 20.3: a copy delivered to that
channel stays in its history. If you would like the destination on a specific payout
removed from that history, write to
[email protected] and we will delete the
message.
14.6 Analytics, support and trust tools
The Services can be configured with third-party analytics, session-replay, support-chat
and review widgets. None of them is needed to sign in, pay or run a campaign,
and all of them ship off. Where an advertising tool is enabled it loads
only after you accept it in the preference centre. Analytics, review and
live-chat widgets do not wait for that: analytics sits in the always-on category
described in section 18.3, and the review and chat widgets are
placed in the page itself. Section 18 lists every one of them individually and says which
side of the line it is on; the two sections mean the same thing.
Two of these can receive your identity, not just your behaviour. Where
a third-party support-chat widget is enabled, it is given your email address, display
name, plan tier, role and your current credit balance so an agent knows who they are
talking to. A product-analytics tool can key your record on your email address, and a
conversion event for a completed top-up can carry the amount and the payment reference
to an analytics provider.
The analytics side of that is gated behind your consent, and declining it costs you
nothing. The chat widget is the one that is not: when it is enabled it
loads with the page, so if you are signed in it can be handed who you are before you
have answered the banner. We would rather write that sentence than the tidier one. Our
own AI chat, described in section 4.6, is part of our site
rather than a third-party widget — your messages go to our AI model provider as
section 12.2 describes, and no chat vendor is involved.
14.7 Why this section lists categories, and how to get the names
The tables above describe every provider by what it does and what it receives,
which is what actually affects you, rather than by brand name. Two reasons, and neither is
evasion.
-
A published list of our infrastructure is a map for anyone attacking it.
Naming the host, the mail relay, the storage and the payment rails tells an attacker
exactly which accounts to go after to reach your data. That risk lands on you, not just
on us.
-
A list goes stale the day a provider changes, and a notice that names a
provider we no longer use is a false notice.
You can have the names. Write to
[email protected] and we will tell you
which providers are in use, what each holds and where they are — for the whole list, or
for one category you care about. We answer on the timetable in
section 22.2, we do not ask you to justify wanting to know, and a
regulator, auditor or business customer asking gets the same answer without having to
ask twice.
The one thing we do check is that we are answering a person and not a scanner, because
the reason this section lists categories in the first place is that a full inventory of
our infrastructure is useful to somebody attacking it. So we will confirm you are a
person whose data we hold, or a regulator, auditor or customer — the same identity step
as any other request under section 22.3 — and where a request
reads as reconnaissance rather than a privacy question, we may answer at the level of
category and location rather than naming every vendor. That is a limit on
bulk fishing, not on you: if it is your data you are asking about, you get the
answer.
Anything you can already see for yourself is still named in full: every cookie we set
(section 18.1) and every third-party tag that runs in your browser
(section 18.3). Those load on your own device, so withholding a name
there would hide nothing from an attacker and would stop you giving informed consent. So is
every provider whose role you can see from the outside — the payment rails (Razorpay,
OxaPay and the Binance account a crypto refund leaves through), the sign-in providers, the
AI model providers, the analytics, support, review and abuse-protection tools, the error
monitor and the public-page fetch proxy — which
section 18 of the Terms names one by one, and the two
documents are meant to be read together. What this section keeps to categories is the
layer behind them: the host, the database, the cache, the mail relay and the object store.
We may change or add a provider — a payment rail, an AI engine, a host. When we do, the
categories in this section still describe what is shared, and where a change materially
affects who holds your data or where, we will publish it under
section 27 and, for a significant change, give the
notice in section 26.
15 Legal, Safety and Business Disclosures
15.1 When the law asks
We disclose personal data where we are required to by law, or where it is necessary to
comply with an order of a court of competent jurisdiction or a lawful demand from a
government agency authorised to make one. Our practice is to require the request in
writing, to satisfy ourselves that the requester has authority and that the request is
lawful and proportionate, to disclose only what is actually asked for, and to record what
we handed over.
Where we are lawfully permitted to tell you that a request has been made about you, we
will. Sometimes we are prohibited from doing so, and in that case we will not.
15.2 Safety, fraud and enforcement
We disclose what is necessary to investigate suspected fraud, abuse, security incidents or
breaches of the Terms, to protect the rights, property or safety of
Onflow Ads, our users or the public, and to establish, exercise or defend a legal claim —
including in a dispute between you and another user, where the evidence for one side is
often the record of the other.
15.3 Professional advisers
Our lawyers, accountants, auditors and insurers may see personal data where they need it
to advise us. They are bound by professional duties of confidence and, where applicable,
a written data-processing agreement.
15.4 A change in our business
If Onflow Ads is involved in a merger, acquisition, restructuring, financing or sale of
assets, personal data may be transferred as part of it.
Data does not lose this Policy by changing hands. Any acquirer takes it
subject to this Policy and may only use it for the purposes described here until you are
given notice of any different practice and, where the law requires it, a fresh basis is
obtained. Where the law requires us to notify you of such a transfer, we will.
15.5 If the Services stop, or we cannot continue
Most privacy policies stop at the merger clause above, which quietly assumes the company
carries on. Onflow Ads is a small operation holding real balances and multi-year financial
records, so the more likely questions are the ones nobody writes down: what happens if the
service is wound down, or if the person who runs it dies or becomes unable to. You are
entitled to an answer before it matters rather than after.
-
A planned wind-down. We would tell you before it happened, with time
to withdraw a balance, export your data under
section 22.1 and download anything you need. When the Services
closed we would delete personal data that nothing requires us to keep, and retain only
the financial and legal records described in section 20 for
the remainder of their periods, held securely and used for nothing but answering a tax
authority, a payment provider or a court.
-
If the operator dies or becomes incapable. Access passes to the person
legally entitled to it — an executor, an administrator, or someone holding a lawful
authority. They step into the obligations in this Policy, not out of them: the data may
only be used to wind the business down properly, settle what is owed and meet the
retention duties above. Our practical arrangements are designed so that this transfer
is possible without the data being exposed in the process, and so that an unclaimed
balance can still be paid to the person entitled to it.
-
Insolvency. We will be straight about the limit of what any company can
promise here. If a business fails, its records can fall under the control of an
insolvency professional or a court, and their duties are set by law rather than by this
page. What we commit to is that we would not sell a user database as an asset
to be exploited, that we would tell you and the relevant regulator what was happening as
early as we were permitted to, and that we would press for personal data not required
for the process to be destroyed rather than transferred.
None of this is on the horizon. It is written down because a policy
that only describes the good case is not much use on the day you need it, and because
the honest answer to "what happens to my data if you disappear" should exist in writing
before anyone has to ask.
16 We Do Not Sell Your Personal Data
We have never sold personal data, and we do not sell it now. Not for
money, not for other "valuable consideration", not to a data broker, not to an
advertising network, and not as a dataset in any form. We have no business model that
requires it: we are paid by the users who buy the Services.
16.1 The wider US definition of "share"
California and several other US states treat some disclosures as a "sale" or a "share"
even when no money changes hands — in particular, passing personal information to an
advertising technology provider for cross-context behavioural advertising. We
treat that definition as the standard, not the narrow one:
-
We do not disclose your personal data for cross-context behavioural advertising, and we
do not build or export audiences, lookalike lists or conversion feeds from your data.
-
Where the site runs a marketing pixel from an advertising platform at all, it loads
only after you have accepted Marketing cookies in the preference
centre. Choose Reject all, or answer nothing, and no such tag runs.
-
We treat a Global Privacy Control signal, or any equivalent opt-out
request, as a valid opt-out of any sale or share and of every advertising tag — with
the honest limit on automatic detection set out in
section 18.4.
-
Our providers are engaged as service providers or processors, contracted
to use the data only to perform the service for us and not for their own purposes.
To be explicit for the avoidance of doubt: we do not sell or share the personal data of
anyone under 18 — we do not knowingly hold data of anyone under 18 at all (see
section 23).
16.2 What we do instead
What we do is disclose the minimum a counterparty needs to do a deal with you
(section 13), and the minimum a provider needs to run part of
the platform for us (section 14). Neither is a sale. If either
ever became one, this section would say so before it happened, and you would get the
opt-out the law requires.
17 International Transfers
Onflow Ads is operated from India and serves users worldwide. The infrastructure and the
providers in section 14 are located in several countries,
including the United States and the European Union. Using the Services therefore involves
your personal data being processed outside the country you are in.
17.1 If you are in India
The DPDP Act permits transfer of personal data outside India except to a territory the
Central Government restricts by notification. We do not transfer personal data to any
territory currently restricted in that way. If a restriction is notified that affects a
provider we use, we will move that processing or stop it — as quickly as moving it can
responsibly be done, and we will tell you if the change interrupts a service you rely on
rather than making the change silently.
17.2 If you are in the EEA, the UK or Switzerland
Where we move personal data out of your region we rely on an appropriate safeguard —
normally the European Commission's Standard Contractual Clauses (with the
UK Addendum or IDTA where the UK is involved), together with a transfer risk assessment
and technical measures such as encryption in transit. Where a provider is in a country
with an adequacy decision, we rely on that instead. You may ask us for a copy of the
safeguard relied on for a particular transfer by writing to
[email protected].
17.3 What a transfer actually means
Data in another country is subject to that country's laws, including the powers of its
authorities. Contractual safeguards bind the company we send data to; they do not bind a
foreign government. We tell you this plainly because a policy that promises otherwise is
promising something no company can deliver. What we can and do control is
how little crosses a border: a supplier gets a link, a crypto gateway gets an
amount, and an AI provider gets the text you are editing.
Your device
18 Cookies, Storage and Tracking
18.1 Cookies we set
Every cookie we set ourselves is first-party, is only ever sent over an encrypted
connection, and none is used for advertising or to follow you anywhere.
Most are also marked so that no script on the page can read them; the two that are not are
marked as such below, with the reason. They are listed here by what they do and how long
they last; you can see the cookies themselves at any time in your own browser.
The first four are strictly necessary in the exact sense the law uses:
without them the Services cannot sign you in, keep you signed in, or complete a
verification. The rest are functional or protective
rather than strictly necessary — each makes a feature work as intended, and the site would
still answer without it. We separate the two rather than calling everything necessary,
because "necessary" is a legal test and stretching it over a business rule is how the
genuinely necessary ones lose their credibility.
- Sign-in session (
onflow_session)
- Keeps you signed in. Holds a random token only — no data about you is stored in the cookie itself. Lasts: 48 hours, or 30 days if you tick "remember me".
- Verification flow (
onflow_verify)
- Carries you through one verification flow — sign-up, first-email attachment, password reset or the second step of two-factor sign-in. Lasts: 30 minutes.
- Telegram sign-in binding (
onflow_tgoidc)
- Binds a Telegram sign-in to the browser that started it, so a code cannot be completed from somewhere else. Lasts: 10 minutes.
- Google / Apple sign-in state (
onflow_goauth, onflow_aauth)
- Anti-forgery state that ties the round trip to the browser that began it. Lasts: 10 minutes.
- Device identity (
onflow_dev) (protective, not strictly necessary)
- Carries the device signature described in section 5.5 — a hash computed in your browser, never a raw trait — so it can be read before the page's script runs. Written by that script, so it is readable by page script; it holds nothing a script could not compute again. Used for one purpose: whether this device carries an unpaid debt. Lasts: 400 days.
- Referral attribution (
onflow_ref) (functional)
- Set only when you arrive through a member's share link. Holds their referral code and nothing about you, so that if you create an account while it is live the sign-up is attributed to them (Terms section 31.2). Cleared the moment a sign-up binds. Lasts: 90 days.
- How you first found us (
onflow_src) (functional, not strictly necessary)
- Written on your first page view and never rewritten, so that if you
come back a month later we still know which link introduced you. Holds the referring
page's address, the page you landed on, any campaign tags in the link you followed and
the time of that visit — nothing about you, and nothing you typed. If you create an
account it is copied onto that account once (section 5.4) and
is then of no further use; if you never do, it simply expires. Not readable by page
script, never shared, and never used for advertising.
Lasts: 90 days.
- Marketplace side (
onflow_pp_side) (functional)
- Set while you are signed in and enlisted in Paid Promotions. Holds one word — advertiser or owner — so a marketplace page can draw the right navigation on its first paint. Deliberately readable by page script, because that is its whole point; it is a hint, never an authority, and every gate re-reads your role server-side. Refreshed on each page and cleared on sign-out. Lasts: 48 hours.
- Welcome intro markers (
onflow_intro, onflow_live) (functional)
- The first records that the welcome animation has been seen in this browser session; the second mirrors the bare fact that a session exists, so the guide at docs.onflowads.com can skip the intro for a signed-in visitor. Both are scoped to the parent domain so the site and the guide share one answer, and neither holds anything about you. Lasts: the browser session, and the life of the sign-in session respectively.
- Support chat allowance (
onflow_anon) (functional, not strictly necessary)
- Set only if you use the help widget's AI chat while signed out. Holds a random handle
— no account, no email, nothing derived from you — so we can count the free messages that
browser has used and give them back when the cycle rolls over. Against that handle we
also store the IP address of the last message, for abuse triage
(section 4.6). Signed in, your account
carries the allowance instead and this is not used. Lasts: 180 days,
after which the handle and its counter are deleted.
- Staff sign-in (
onflow_admin, onflow_admin_verify)
- Set only for our own administrators on the admin console; a member never receives them. Listed so the inventory is complete.
Your cookie choice itself is not a cookie: it is kept in your browser's storage
(section 18.2). And the Onflow tag an advertiser may place
on their own site sets no cookie of ours at all — what it writes, it writes into that
site's storage, as section 8.1 describes.
18.2 Storage in your browser
Some preferences are kept in your browser's own storage and are never sent to us. Clearing
site data removes them.
- Your cookie choice
- Which cookie categories you allowed and when — so we do not ask again, and so the preference centre can show you what you chose. Reopen it any time from Cookie preferences in the site footer.
- Display preferences
- Which currency you prefer to see prices in.
- Basket and saved channels
- What you have put in a basket or saved, held locally until you check out.
- Welcome message state (this tab only)
- Stops a welcome message repeating in the same browser tab.
- Your support conversations
- The help widget remembers your name, the email address you gave it, and the code, reference and subject of your last few conversations — so it can list them when you return and fill your address in for you. This is the one item here that identifies you, and the code it stores opens the conversation for whoever holds it (section 13.3). On a shared computer, clear site data.
18.3 Third-party tags, and your consent
The Services can be configured with third-party analytics, advertising, session-replay,
support-chat and review tools. Which are active is an operational choice that can change,
so rather than name a set that goes stale, this is the complete list of what
may run:
- Analytics
- PostHog and Microsoft Clarity (which records how pages are used, including a replay of interactions). Status: Essential category — loads with the page. We treat measuring and repairing our own service as part of running it, so these sit in the always-on category of the preference centre rather than behind it. Being exact about what that costs you: they are first-party in purpose but third-party in operation, so your IP address, device and browser reach those providers, and Clarity records a replay of your interactions with the page. Neither is used for advertising, neither builds an advertising profile, and neither is used to identify you to anyone else. If you would rather not be measured at all, section 18.5 is the control that actually stops it.
- Google Analytics 4 / Tag Manager
- Google's own tag behaves differently from the row above and we would rather show it on its own line than bury the difference. Where it is configured it is placed in the page and runs before you answer the banner, with Google's Consent Mode set to grant analytics storage — analytics being an always-on category here — and to deny every advertising purpose until you accept. In that advertising-denied state it stores no advertising identifier, you are not profiled and you are not added to an advertising audience — but it does set its analytics cookie, and hits reach Google, so your IP address and browser do reach Google whether you accept, decline, or never answer. Accepting turns on the advertising storage; declining keeps it off. Status: Consent controls the advertising storage and the profiling — not the analytics, and not the connection.
- Advertising
- Meta, TikTok, Snapchat, Pinterest, LinkedIn, Reddit and X pixels. Status: Consent required.
- Trust widgets
- The Trustpilot review widget, where an operator has enabled a paid Trustpilot template. Since 16 September 2026 the ordinary invitation to review us is our own link to Trustpilot's site: it loads nothing from Trustpilot and sets nothing, and Trustpilot learns nothing about you until you follow it. Only a paid widget renders Trustpilot's own code. Status: Loads with the page, not behind the banner — so Trustpilot sees your IP address and browser, and can set its own storage, before you have answered and whether or not you choose "Reject". The Google review badge in the same place is not a third-party tag at all: it is our own markup showing a rating we entered ourselves, and it reaches Google only if you click it.
- Support chat
- The current support surface is our own AI chat, which is part of the page rather than a third-party tag — your messages go to our AI model provider as a processor, as section 12.2 describes. Crisp live chat remains an alternative the operator can enable instead. Status: The AI chat is first-party; where Crisp is enabled, it loads with the page — see the note below.
- Security
- Cloudflare Turnstile, on public forms. It is there to tell a person from a script, and its provider designs it not to track people across sites or profile them. Status: Strictly necessary — no consent needed. It does see your IP address and browser, as any anti-abuse check must.
- Platform & page assets
- Google Fonts; Telegram's sign-in script on the Telegram sign-in pages; a payment provider's checkout script on the top-up page; and library CDNs used by some pages. Status: Loads with the page; discloses your IP to that host as any hosted asset would.
No advertising tag loads until you accept. The preference centre
appears on your first visit whenever any such tool is configured — and only then,
because asking permission for nothing is theatre. Until you choose, and permanently if
you choose Reject all, every advertising pixel stays unloaded and
Google Consent Mode denies every advertising purpose. Your choice is remembered in your
browser, and Cookie preferences in the footer of every page reopens the
dialog so you can change it at any time — you no longer have to clear site data to think
again.
Analytics is the category that does not wait, and we would rather say so here
than let you discover it. The preference centre has two categories: an
Essential one that is always on, and Marketing, which
is yours to refuse. Analytics sits in the essential one — the tools in the Analytics row
above, and Google's tag in its analytics-only state, load with the page whether or not
you answer. That is a deliberate choice about running and repairing the Services, not an
oversight, and it is why this section does not claim that nothing measures you until you
accept. What actually stops analytics is a browser-level control:
section 18.5.
Four rows in that table are outside the banner, and they are marked as
such rather than hidden in the small print: the analytics tools, which are in the
always-on category; Google's own tag, which runs with advertising denied; the Trustpilot
widget where a paid template is configured (the plain invitation is our own link and loads
nothing); and a third-party live-chat widget where one is enabled.
If you use a browser that blocks third-party scripts, that is what actually stops them
— and it is a reasonable thing to do.
That is how it is built and how we intend it to stay. We are describing a mechanism
rather than claiming that no fault could ever exist in one — if you find a tag running
that this section says should not be, that is a bug and we want to hear about it at
[email protected]; we will fix it and
tell you what happened.
The consent requirement is an operator setting, and it is on. Turning it
off would let the advertising tags load without asking, so we treat switching it off as a
material change to this Policy — it would require the 30 days' notice in
section 26.1 before it took effect, exactly as narrowing any other
commitment here would.
Here is the whole of what sits outside the banner, and we are not going to
pretend otherwise. Where a third-party live-chat widget is enabled it is placed
in the page itself, so it loads before you answer. So does the Trustpilot widget where
a paid template is enabled, and so does Google's tag, in the denied state described in its row
above. And several scripts the pages genuinely need — the fonts, Telegram's own sign-in
script, the payment provider's checkout on the top-up page, and the library CDNs behind
a few interactive pages — load with the page as a matter of course.
One more, for completeness, because it is the case a consent banner structurally cannot
cover: where Google Tag Manager is configured, the page also carries the small
no-JavaScript fallback that Google's own instructions require. Consent
Mode is JavaScript — so a visitor browsing with scripts disabled has no banner to answer
and no mechanism to answer it with, and that fallback still loads. It is a limitation of
how the tool works rather than a choice we make, and we would rather write it down than
let "nothing loads until you accept" quietly not apply to somebody.
Loading a script from another host discloses your IP address and browser to that host.
That is true of any hosted asset on any website; we state it because a policy that lists
its consent gate and omits what sits outside it is telling half the story.
Where an analytics tool is enabled it may receive your IP address, your device and
browser, the pages you view and the actions you take — and because analytics is an
always-on category, that happens without a separate acceptance. Two tools can
receive your identity as well — see
section 14.6, which spells out exactly what. Three precisions
about how our own analytics is wired, because they decide what a provider can join up:
- The identifier is your public Onflow Ads ID, never your email. Where
Google Analytics or PostHog is on, a signed-in member is identified to it by the
OFA- reference in section 28. A purchase you make is
reported once — from your browser, or from our server where we have configured the
server-side channel — under that same identifier, so a web session, a server-reported
purchase and a campaign event from the Bot (section 6.2) join in
the provider's records as one member. The events reported are named in the product's own
source: page views, sign-up and sign-in (with the method), verification, enlisting,
connecting a channel, creating a campaign or an ad, checkout and purchase, a withdrawal
request, a lead, your cookie choice, an install of the web app, and reaching the support
chat's limit — and, for a purchase, the order reference, the amount and the currency.
- The admin console loads none of it. No analytics tag, no pixel, no
banner and no session replay runs on any administration page.
- The guide at docs.onflowads.com carries its own copy of the Google tag,
set when the guide is built, in the same state as here: analytics granted, every
advertising purpose denied. It has no cookie banner because it never grants advertising
storage, so there is nothing for a banner to switch on; if you refuse marketing on the
main site, the guide is already where you asked to be.
18.4 Global Privacy Control and Do Not Track
What an opt-out preference signal such as the Global Privacy Control asks
a site to stop is selling or sharing personal data, and in practice that means the
behavioural-advertising tags. No advertising tag of any kind runs here without an
affirmative "Accept" — so a browser that never accepts is
already in the state GPC asks for, and that is the default for every
visitor who does nothing. We do not sell or share in the first place
(section 16), so there is nothing behind that gate either.
Being exact, since 18.3 is: not accepting stops every advertising
tag, and it stops Google's tag from storing an advertising identifier or profiling you.
It does not stop the analytics tools, which are in the always-on category, and it
does not stop the paid Trustpilot widget or the live-chat widget where those are enabled. None of those
is a sale, a share, or behavioural advertising — which is why declining still puts you
where an opt-out signal is asking you to be. If what you want stopped is the measurement
itself rather than the advertising, section 18.5 is the control
that does it.
A Global Privacy Control signal is honoured automatically. Where your
browser sends one, the site treats it as an answer you have already given: marketing is
recorded as refused in your browser, no advertising tag loads, and the banner is not
shown at all. The preference centre stays reachable from the footer if you ever want to
change that. The signal is read in your browser, so it works signed out and on a first
visit; a browser that does not send one is simply asked. If you also want your visits
left out of analytics, section 18.5 is the control, and you can
write to [email protected] about data
already measured.
The older "Do Not Track" header has no agreed meaning and we do not rely on it — but since
our advertising tags require affirmative consent anyway, a Do Not Track user who does not accept is in
the same position as one who does.
18.5 Your browser controls
You can block or delete cookies in your browser settings. Blocking the strictly necessary
ones in section 18.1 will sign you out and prevent you signing back
in — they are the sign-in mechanism, not a tracking layer.
Because analytics is an always-on category here, your browser is the control that
switches it off, and we would rather point you at a control that works than offer
one that does not. Every current browser ships tracking protection, and every content
blocker stops the tools in section 18.3 from loading at all.
We do not attempt to detect, discourage or work around any of them, we do
not degrade the Services when one is on, and nothing on this site is built to survive
being blocked. The Services work normally with every analytics tool blocked.
19 Emails, Notifications and Marketing
19.1 Messages that come with the account
Some messages are part of the Services rather than marketing: verification and security
codes, receipts and invoices, order and Placement updates, payment and payout notices,
dispute notices, plan expiry reminders, incident announcements, a notice that a debt has
fallen due, and the transcript of a support chat emailed to you when it
closes — a chat closes on its own after 30 minutes without a message, and the transcript
goes to whatever address the conversation knows. You can choose which
channel some of them arrive on, but you cannot switch them off entirely while you hold an
account — they are how the platform tells you about your own money and your own
commitments. This mirrors section 23.1 of the Terms.
19.2 Marketing is separate, and opt-in
Campaign and product-update email is switched off until you ask for it.
Creating an account does not subscribe you. You opt in by ticking the unticked
"Send me product news and offers" box on the sign-up form or on a top-up
checkout, or by switching the toggle on in your notification settings — and a box you
leave blank is never read as a yes. It goes to our own members about our own product —
never to anyone who is not a member, never bought or rented from a list, and never sold
or passed on. Section 10 gives the basis as your consent.
One click gets you out, permanently, without signing in — the link is
in every such message, and the same toggle in your notification settings switches it
off. It is entirely separate from the messages in 19.1, which keep arriving because they
are about your own money and orders.
Every marketing email
carries that one-click unsubscribe, and
consent is re-checked as each message is sent rather than when the
campaign was built — so unsubscribing after a campaign has been prepared takes you out of
it. The one exception is a message already handed to our email provider for delivery at
the moment you unsubscribe: that one can still land, and it should be the last.
Unsubscribing affects marketing only; account, order and payment mail still reaches you.
You can resubscribe from the same link.
Audience segments for a campaign are built from your plan tier, your role and how recently
you joined. They are not built from the content of your messages, your creative or your
support tickets.
19.3 Telegram messages
If you have linked a Telegram account, the Bot can message you directly. Stop it by
turning the category off in your notification preferences or by blocking the Bot in
Telegram. Delivery is best-effort and depends on Telegram — see
section 11.3 of the Terms.
19.4 Browser notifications
Web push requires your browser's own permission. If you grant it we store the push
endpoint your browser issues, the keys needed to encrypt a message to it, and the
User-Agent — enough to send a notification and nothing more. Revoke the permission in your
browser and the endpoint stops working; tell us and we will delete the record.
19.5 No codes by phone or WhatsApp
We send verification codes by email only. We do not offer codes by SMS or WhatsApp, we do
not ask for a phone number to sign in, and no phone number is held for that purpose. An
earlier version of this Policy described an opt-in WhatsApp route offered through the
Bot's account system; that system has been retired and the route with it. If a number
given for it still sits on an older record, ask and we delete it.
Keeping & protecting
20 How Long We Keep Data
We keep personal data for as long as it is needed for the purpose it was collected for,
and then for any period the law requires us to hold it. "As long as needed" is not a
number, so this section says what the periods actually are, and — more usefully — what
happens when you close your account.
20.1 By category
Read every period below as a ceiling, not a countdown. These are the
longest we will keep each category and the point at which we have no further reason to
hold it — they are not, today, all enforced by a job that deletes on the day the clock
runs out. Some categories expire automatically (codes, sessions, the signed-out chat
handle); others are reviewed and cleared rather than swept, and
section 20.4 is blunt about the category where we run no
automatic expiry at all.
We would rather write that than let a table imply a machine that does not exist —
a retention promise a system cannot keep is worse than an honest one it
can. Two things are true regardless: nothing is kept for a purpose
other than the one in its row, and if you ask us to clear something whose
purpose has been served, we will, under section 22. Where the
deletion of a record is genuinely automatic, this table says so.
- Account & profile
- While your account is open, then deleted or anonymised on closure. Why that long: It exists to run your account.
- Channels, listings & preferences
- Until you remove them, or on account closure. Why that long: Same reason as the account record — they exist to run it.
- Orders, deals & delivery evidence
- Up to 8 years from completion, or until the account is closed if that comes first — see 20.2. Why that long: Tax, accounting and the window in which a dispute or claim can still be brought.
- Payments, Wallet ledger, payouts & invoices
- Up to 8 years as an accounting record — which, importantly, is not the same thing as the copy inside your account. Section 20.2 explains the difference, because it decides what closing your account actually does. Why that long: Books of account must be preserved under Indian company and tax law.
- Verification details (legal name, country)
- While you can receive payouts, then with the financial record above. Why that long: It exists to justify a payout that was made.
- Support tickets & enquiries
- Up to 3 years after the matter closes — a ceiling we clear by review rather than by an automatic sweep, so read it with the note above. Why that long: Follow-ups, repeat issues, and evidence if a complaint is revived. Ask and we will delete a ticket sooner, which is the fastest route if a conversation contained something you would rather we did not hold.
- AI support conversations
- 14 days after the last message, then deleted automatically — unless the conversation was escalated to a ticket, in which case it lives with that ticket under the row above. A chat closes on its own after 30 idle minutes and its transcript is emailed to you (section 19.1). Why that long: Long enough to pick a conversation back up; short enough that a chat you never escalated is not kept.
- Device records (section 5.5)
- While the account is open and while any debt they corroborate is unpaid; no automatic expiry runs today, and a device released by an administrator stops counting at once. Why that long: Their one purpose is to carry an unpaid obligation across an abandoned account.
- Security & access events (IP, User-Agent, action)
- Longer than the rest, and 20.4 says so plainly rather than quoting a period we do not yet enforce. Why that long: Their whole purpose is answering questions after the fact.
- Taps, landings, conversions and invite-link joins
- The IP address and User-Agent on a tap: 90 days, deleted automatically — this one is swept by a job, not reviewed by hand (§5.6). What was derived from them — device class, operating system, browser, country, language — and the salted one-way visitor fingerprint stay with the campaign they belong to. Why that split: the two raw values identify a person and are only needed while a placement can still be queried or disputed; the derived figures are what a Channel's performance history is made of, and deleting those would erase the record of work already delivered. The Telegram user id on a tap of an older exchange placement (§8.3) lives with that delivery record.
- Marketing consent & unsubscribes
- For as long as we send marketing at all. Why that long: The record of your opt-in is what lets us mail you, and the record of your opt-out is what stops us mailing you again.
- Verification codes & sessions
- Minutes to hours. Why that long: They expire by design — codes in 10 minutes, a flow in 30. One caveat so this row is not read too widely: the code stops working in ten minutes, but the email that carried it is kept as one of the sent-message copies described in 20.3, and the code is visible in that copy.
- Signed-out support-chat handle
- 180 days, then the handle, its message count and the last IP recorded against it are deleted. Why that long: It is the cycle the free allowance runs on — see section 4.6.
- Aggregate statistics
- Indefinitely. Why that long: Not personal data — counts and averages with no person behind them.
20.2 When you close your account
How to do it: write to
[email protected] or
[email protected] from the address on the
account. There is no self-service delete button today, which we would rather tell you
than have you hunt for one — a person runs the closure, and that person will first make
sure you are not leaving money or an open order behind.
What then happens is more thorough than most policies admit. We do not
merely hide the account: the account record is deleted, and the rows attached to it go
with it — your profile, your channels and listings, your orders, and
your Wallet ledger and payment rows inside the platform. Your creative
images are deleted from our storage. We also send an instruction to the Telegram bot side
to forget you, so the two halves of the platform cannot end up disagreeing about whether
you exist.
The transaction records inside your account are deleted; the accounting record
of those transactions is not, and cannot be. The two are different things and
the difference matters. A payment you made and a payout we sent also exist in our books
of account and with the payment provider that processed them — and Indian tax and
company law requires those to be preserved for the periods in 20.1, by us and by them,
whether or not you still have an account. We could not delete them at your request even
if we wanted to, and no business that takes money can promise otherwise.
What that means in practice: after closure we can still answer a tax authority, a
payment provider or a court about a transaction — and we can still process a chargeback
or a refund on a payment you made. What we can no longer do is show you an order
history, because inside the platform it is gone.
Everything we keep, we keep for a stated reason set out below. Nothing kept is used to
market to you, to build a profile of you, or for any purpose other than the one it is
listed under.
20.3 What survives closure
Closing your account is not a full erase, and you should know exactly what remains:
-
The accounting record of money that moved, for the periods in 20.1
and in the sense 20.2 explains — our books and the payment provider's records, not
the order history inside the platform, which is deleted. We are not permitted to
destroy books of account because a customer asks.
-
Security and activity records — including the email address and name
captured with the request, the IP address, the country and the browser at the time,
and the record that an AI feature ran. The link to your account is severed, but the
entries themselves remain, and the copies already delivered to the operations channel
in section 14.5 stay in that channel's history.
-
An anti-evasion marker, but only if you leave with your standing
below baseline. It is a one-way hash — not the value itself — of
your email address, or, for an account created through Telegram, of
your Telegram user id; we name both because a Telegram-native reader
would otherwise reasonably conclude this could not reach them. It is stored with the
standing you would resume at and the date the restriction lifts.
The restriction lifts after 90 days where a finding of fraud was
upheld and 45 days otherwise; the hashed marker itself may remain in
our records after that, and because it is a one-way hash we cannot read an address or
an id back out of it. Leave in good standing and no marker is written at all. Its only
function is to stop someone deleting and re-registering to wash off a penalty, and it
is listed as an automated decision in section 11.1 so you can
contest it like any other.
-
An instruction to the Bot to forget you. The two halves of the
platform keep separate records, so closing your account writes a short queued
instruction carrying your email address and Telegram id — in the
clear, because it is an address to erase rather than a marker to match — telling the
Bot side which records to remove. It exists so that "deleted here, still known there"
cannot happen, and it is written in the same breath as the deletion so the two can
never come apart. Once the Bot has carried it out the entry is
marked done and kept — it becomes the record that you asked to be
erased, when, and that it was actually done, which is the evidence we would need if
you ever asked us to prove it. It is not a profile and is used for nothing else.
-
Bot-side records, in one narrow case: if you come back before that
instruction runs. The Bot picks it up within about a minute, and before
acting it checks whether an account with your Telegram id exists again. If one does —
because you signed up again, or simply opened the Bot and it made a fresh record for
you — it skips the erasure rather than risk deleting your new account's
data, records that reason, and does not retry. The older Bot-side records
then stay attached to that Telegram id. It is the safe choice in a narrow window, but
it does mean an erasure can end up not happening — so if you left and came
back and still want those older records gone, write to
[email protected] and we will run it by
hand.
-
Support tickets and enquiries, and the copies of emails we
already sent you, which are kept as the record of what was actually
delivered to which address — the thing every "I never received it" dispute turns on.
-
Referral and affiliate attribution, and the identifiers inside a
completed cross-promotion pairing, because both describe a relationship with
another user whose own record would otherwise lose half of what happened.
-
Creative you published through the marketplace. Images served to a
counterparty's audience are cached to be fast, and an image that has been delivered
can stay retrievable by its direct URL after the account that uploaded it is gone.
Creative sent to Telegram to be posted also lives on Telegram's servers under their
retention, not ours.
-
What another user legitimately holds — the record of a deal you did
with them, and anything you published to them. We cannot reach into their record, and
section 3.2 explains why.
-
Content you published that is already in the world — a promotion that
ran in someone's channel is not ours to recall.
20.4 Security logs, honestly
We do not currently run an automatic expiry over security and administrative event
records. They are retained while they remain useful for security, fraud investigation and
the defence of claims, and are reviewed periodically for deletion or de-identification.
We would rather write that than quote a period we do not yet enforce — a retention
promise a system cannot keep is worse than an honest one it can.
If you want these records dealt with sooner, say so under
section 22 and we will assess it. Where the purpose has been served
and no legal obligation or live matter requires them, we will erase or de-identify them.
That promise covers our own record. It cannot cover the copy that was already
sent. As section 14.5 describes, these entries are
mirrored as they happen into an operations channel carried by a messaging provider, and
a chat history is not a database: it cannot be swept per-record, de-identified in
place, or reviewed row by row on a cycle. So when we say we review and erase, we mean
the primary record — and the mirrored copy sits in that channel's history under the
provider's retention, not ours.
We would rather write that sentence than let two sections of this Policy quietly
contradict each other. Two things follow from it that are worth knowing.
First, we can delete a specific message from that channel on request —
so if you want a particular entry about you removed from it, ask
[email protected] and we will do it, and
that is a better outcome than a cycle we cannot honestly promise.
Second, it is why so little is allowed into the channel in the first place
— the redactions in 14.5 exist precisely because what lands there is hard to take back.
20.5 Backups
We take encrypted backups of the database on a regular cycle and keep them
off-site for a limited period, so a hardware failure or a bad deployment costs hours rather
than everything. They are encrypted at rest and access is limited to the platform owner.
This means deleted data can persist inside a backup for a short period after deletion — a
backup is a point-in-time copy and cannot be edited in place. Two rules follow, and we
hold ourselves to both: a backup is never used to bring back an individual
record that was deliberately deleted, and where a backup has to be restored
after a genuine failure, we re-apply the deletions that happened after
the point it was taken, working from the record of what was deleted. If you have asked
us to erase something and a restore happens afterwards, tell us and we will confirm it
stayed erased.
We do not publish the schedule, the retention window or where backups are held. That is
deliberate — it is the one detail whose disclosure would help someone attacking us while
telling you nothing useful about your own data. A regulator or an auditor asking will be
told.
One more copy exists, and a section about backups that did not mention it would
be telling you half the story. The platform owner can export the
database from the admin panel — a full snapshot, downloaded to their own
machine, covering the same data the automatic backups hold, including account records,
security events and money lines. It is how a working backup gets taken and checked by a
human rather than trusted blindly.
Because it lands on a personal device rather than in encrypted off-site storage, it is
the copy with the fewest technical protections around it, so we will say plainly what
governs it: it is restricted to the platform owner alone, taking one is
a logged administrative action, it is used for backup and recovery and never for
analysis, sharing or any other purpose, and a copy is not kept longer than the check it
was taken for requires. Everything else in this Policy — purpose limits, your rights,
the no-sale commitment — applies to it exactly as it applies to the live database.
20.6 Long-dormant accounts
No automatic sweep closes or deletes an account for being idle today, and an idle Wallet
balance stays yours subject to the Terms. What the Terms
reserve, at section 12.10, is the right to close an
account nobody has signed in to or transacted on for 24 months, after at least 30 days'
notice to the address on the account (or through your linked Telegram where that address
is a placeholder). If we ever exercise it, or build a sweep that does, that notice comes
first and gives you a clear window to keep the account alive — never a silent removal.
21 How We Protect Data
21.1 What we do
-
Encryption in transit. Everything between you and us, and between us
and our providers, travels over TLS.
-
Passwords are never stored. We keep an argon2id hash
with deliberately expensive parameters and re-hash it when those parameters improve. A
reset replaces your password; nobody at Onflow Ads can read it.
-
Sign-in hardening. Optional two-factor authentication, session tokens
that rotate on sign-in, server-side sessions that can be revoked everywhere at once, and
a forced sign-out from every device on a password reset, a sign-in email that cannot be changed once set, and a 48-hour block after an executed account deletion during which the deleted account's sign-in email and Telegram account cannot open a new account (kept only as one-way hashes, never as the addresses themselves).
-
Abuse controls. Rate limiting and lockouts on sign-in, verification and
contact forms, keyed on hashed identifiers; bot-checks on public forms; and defences
against enumerating which email addresses have accounts.
-
Least privilege. The most damaging actions are reserved to the
platform owner, administrative access is given to as few people as the work allows,
and every administrative action is logged — see
section 13.5 for what an administrator can and cannot do.
-
Credentials, precisely. Different things get different protection, and
a single sentence claiming everything is encrypted would not be true, so here is the
breakdown. Your password is stored only as an argon2id hash — it is
not recoverable by anyone, including us. Your two-factor recovery codes
are stored only as hashes, so a stolen copy of the table cannot be used to sign in.
The keys we hold for our own providers are write-only: set once, never
displayed again, and never returned by any screen or API. Your two-factor
secret is the exception, and it has to be: the server must hold the actual
secret to check the six-digit code your app generates, so it cannot be a hash. It is
never displayed after setup, never sent anywhere, and is protected by the database's
own access controls rather than by a second layer of encryption. If that matters to
you, a hardware or app-based sign-in on your Telegram or email account is the stronger
protection, and we would rather tell you that than let a general sentence imply more.
-
Careful boundaries. Only the data an integration needs crosses to it,
outbound addresses are validated to stop the server being pointed at internal systems,
and admin-authored content is rendered as text rather than markup so it cannot become
code in a reader's browser.
21.2 What we will not claim
No system is perfectly secure, and a policy that says otherwise is selling something. We
do not claim your data cannot be compromised. We claim that we take the measures above,
that we review them, that we will tell you when something goes wrong
(section 25), and that we will not quietly weaken a protection this
document describes.
21.3 Your part
Use a password you use nowhere else, turn on two-factor authentication, keep your Telegram
account secure — it can sign you in — and treat proof and certificate links as private,
since anyone holding one can open it. Tell us immediately at
[email protected] if you think your account
has been accessed by someone else.
We will never ask you for your password, a verification code, a card number, a UPI
PIN or your Telegram login code — by email, by chat, on Telegram, or anywhere
else. Anyone who does is not us.
21.4 Reporting a vulnerability
If you find a security flaw, report it through the contact published at
onflowads.com/.well-known/security.txt — by
default our private advisory page on GitHub, where a report reaches only us — or, if you
cannot use that, to [email protected]
marked "security", with enough detail to reproduce it, and give us a reasonable chance to
fix it before disclosing it publicly. That file is the authority on the route: if we
provision a dedicated mailbox it will appear there first.
We will not initiate action against a researcher who acts in good faith
— who tests only against their own account and their own test data, does not degrade the
service, does not access, alter or keep anyone else's data, and tells us before telling
anyone else. Stay inside that and you have our word.
Two honest limits on that promise, because it is a promise we would like you to be able
to rely on. It covers our systems and our decision to
pursue or not pursue — we cannot speak for the authorities, and we cannot waive anyone
else's rights. And Onflow Ads runs on top of other companies: Telegram, payment
providers, our host. Testing their systems is between you and them, is
not authorised by this paragraph, and is the one thing most likely to cause a problem we
are not able to protect you from. If you are unsure whether something is in scope, ask
us first through the same route — we would much rather answer that question than read
about it afterwards.
21.5 Automated protections, and what they see
Section 16.7 of the Terms sets out our rate limits and
anti-abuse measures in plain terms. From the data side they are simple: the counters
behind them are keyed on your IP address, your account id, or a hash of your email
address, and they live only for the window they meter — a minute for most, an hour for
the money and sign-up budgets, a day for the counting caps on links — after which they
expire on their own. A sign-in lockout lasts six hours. Nothing about meeting a limit is
written to your record or your ledger, and the counters are never used for anything but
the limit. If the store that holds them is unavailable they fail open: nobody is blocked.
The human-verification challenge on public forms is Cloudflare Turnstile, described in
section 18.3; the device identity in
section 5.5 is the one protection that keeps a
record beyond its window, and that section is where its rules live.
Your control
22 Your Rights
Which rights you legally have depends on where you live — the DPDP Act, the GDPR and the
various US state laws each grant a different set. Rather than make you work out which
applies to you, our practice is to offer all of them to everyone: ask for
any of the following and we will deal with it, wherever you are, whether or not your local
law required us to.
Where a right is yours by law we honour it as that law requires, on that law's
timetable, and nothing here reduces it. Where we are extending a right to you as a matter
of practice, we handle it in the same way and to the same standard — the only difference
is that we can decline in the situations listed in
section 22.4, and a right that makes no sense for the data in
question (asking us to port a security log, say) is one we will explain rather than
perform.
22.1 What you can ask for
- Access
- A summary of the personal data we hold about you, what we do with it, and who it has been shared with.
- Correction & completion
- Fix anything inaccurate, complete anything partial, update anything stale. Most of it you can change yourself in your account.
- Erasure
- Delete data we no longer need for the purpose it was collected for. Section 20.3 is the honest list of what we cannot delete, and why.
- A portable copy
- Your data in a structured, machine-readable format, where it was provided by you or generated by your use of the Services.
- Withdraw consent
- For anything we do on the basis of consent — the advertising tags behind the cookie banner. As easy to withdraw as it was to give, and it does not undo processing already carried out. Marketing email is not on that list, because it is not consent-based (section 19.2): switch it off in one click instead, which works the same way and just as permanently.
- Object & restrict
- Object to processing we base on legitimate interests, or ask us to pause processing while a dispute about accuracy or basis is resolved.
- Human review
- A person to look again at an automated decision that affected you — section 11.2.
- Nominate someone
- Under the DPDP Act, nominate a person to exercise your rights if you die or become incapable of doing so. Write to us and we will record it.
- Opt out of sale or sharing
- Under US state law. We do not sell or share at all (section 16), so there is nothing to opt out of — and because no advertising tag loads unless you accept, a browser that never accepts is already in the position an opt-out signal asks for. Analytics is separate and always on (section 18.3); it is not a sale, a share or behavioural advertising, and section 18.5 is how you stop it. Section 18.4 explains exactly how we handle a Global Privacy Control signal today, including what we do not yet detect automatically.
- Non-discrimination
- Exercising a right here does not cost you service, price or standing, and we will not treat you differently for asking. Two honest exceptions, both mechanical rather than punitive: if you withdraw consent for something, the thing that needed that consent stops working (refuse Marketing cookies and an advertising tag that depends on them will not load); and if we cannot yet tell that a request is really from you, we may pause the account or the request while we check — see section 22.3. Neither is a penalty, and neither leaves a mark on your record.
22.2 How to use them
Write to [email protected] from the email
address on the account, or use our contact form. Tell us which right
you are exercising and include enough to find the record — your account email or OFA ID,
and for anything order-related, the reference and dates.
We aim to acknowledge within 72 hours and always respond substantively
within 30 days, which is the outer limit the law sets and the one we hold
ourselves to. If a request is genuinely complex we may extend that once, and we will tell
you why before the first 30 days are up. It is free; we will only charge for a request
that is manifestly unfounded or repetitive, and we will tell you before we do rather than
after.
Onflow Ads is a small team, and we would rather tell you what that means than
publish a clock we might miss in silence. The acknowledgement targets above are
ours, not the law's — we set them because being left wondering whether an email arrived
is the worst part of asking. If illness, an outage or something genuinely outside our
control puts us behind, we will tell you that we are behind and give you a
date, rather than let the deadline pass quietly. What does not move is the
statutory limit: your request is answered within 30 days, and your grievance is dealt
with in the time section 24 sets, whatever else is happening
here.
22.3 Verifying it is you
We must be sure a request comes from the person the data is about — handing an account's
data to an impostor is itself a breach. Normally, sending the request from the account's
email address is enough. Where the data is sensitive or the request comes from another
address, we may ask you to confirm from the account email, complete a verification step or
sign in. We will not use anything you give us for verification for any other purpose, and
we will not demand an identity document for an ordinary request.
An authorised agent may act for you if you confirm the authority directly.
22.4 When we may say no, in whole or in part
Sometimes we must decline, and you are entitled to know the reasons in advance rather than
discovering them in a rejection:
- the law requires us to keep the data (tax, accounting, a lawful order);
- the data is needed to establish, exercise or defend a legal claim, including a live dispute with another user;
- complying would expose someone else's personal data or their confidential information;
- the request is about data we hold only on your instructions as controller — see section 3.2 — in which case the right is exercised against you;
- we cannot verify who you are after a reasonable attempt;
- erasing it would defeat the anti-evasion marker in section 20.3 while it is still in force.
Where we decline we will say which of these applies, comply with the part of the request we
can, and tell you how to challenge it under section 24.
22.5 If the account holder has died
This is a question we would rather answer here than improvise later, because these
accounts can hold money and the people who ask are usually dealing with something much
harder than a website.
If you nominated someone under the DPDP Act — the "Nominate someone" row above — they can
exercise your rights, and that is the cleanest route by far: it takes one email to set up
and removes all doubt afterwards. Where there is no nominee, we will deal with the
person who is legally entitled to act: an executor, an administrator, a legal heir, or
someone holding an equivalent authority where you live.
What we will ask for is the minimum that lets us act safely: proof of the death, proof of
your authority, and enough detail to identify the account. What we will then do is close
the account, deal with any Wallet balance under the Terms, and
apply the ordinary retention rules in section 20 exactly as on
any other closure. What we will not do is hand over the contents of the account —
messages, tickets, the detail of deals done with other people — merely because a request
comes from a relative. That material involves other people too, and the right to it is
not automatically inherited. Where the law where you live says otherwise, we follow the
law.
We know this is a difficult thing to be doing. Write to
[email protected], tell us what you need,
and a person will walk you through what is required rather than sending you a form.
22.6 Your duties when you make a request
Indian law places duties on you as well as on us. You must not impersonate anyone else,
must not suppress material information when giving personal data for a verification the law
or we require, must not raise a false or frivolous grievance, and must furnish only
verifiably authentic information when asking us to correct or erase data. Breaching these
can carry a penalty under the DPDP Act, and may lead us to hold a request or an account
while we verify.
23 Children and Minimum Age
The Services are for adults. You must be at least 18 years old, or the age
of majority where you live if that is higher, to hold an account — see
section 3 of the Terms. This is not only a contractual rule:
under Indian law a person below the age of majority cannot enter into a binding contract,
and the Services involve money.
How we know. You confirm you meet the age requirement when you create an
account, and we rely on that confirmation. We do not ask for a date of
birth, an ID document or an age-estimation scan, because collecting identity documents
from everyone in order to find the rare person who lied would take far more personal data
from far more people than the problem justifies — and the DPDP Act's own principle is to
collect the minimum. So the honest description is this: we set the rule clearly, we ask
you to confirm it, we act as soon as we learn a confirmation was false, and we do not
build anything that would appeal to a child in the first place.
We do not knowingly collect personal data from anyone under 18, we do not
advertise to children, and we do not track or profile a child or serve behavioural
advertising directed at one. No part of the platform is designed for, marketed
to, or made appealing to children.
If we learn that an account belongs to someone under 18, we will close it and delete the
personal data, keeping only what we must to record that we did so and to settle any money
already moved. If you are a parent or guardian and believe a child has given us personal
data, write to [email protected] and we will
deal with it promptly.
Where the DPDP Act requires verifiable consent from a parent or lawful guardian before
processing a child's data, we meet that requirement by not processing children's data at
all. The same reasoning covers persons with disability who have a lawful guardian: if a
guardian tells us they act for an account holder, we will deal with the guardian.
Separately, an audience member who sees a promotion is a member of someone else's Telegram
channel, and Telegram sets its own minimum age. We do not know who is in an audience and do
not receive their identities (section 8). If your Channel's
audience includes children, you must not use the Services to advertise to them anything you
could not lawfully advertise to a child.
24 Grievance Redressal and Complaints
24.1 Come to us first
If you are unhappy with how we have handled your personal data or answered a request, tell
us. Write to [email protected] with the word
"Grievance" in the subject line, and include your account email or OFA ID, what happened,
when, and what you want done.
We aim to acknowledge your grievance within 24 hours of receiving it, and
we will dispose of it within 15 days — that second figure is the one
Indian law fixes, and it holds. If we cannot resolve it in that time we will tell you why
and give you a date, before the fifteen days are up rather than after.
24.2 Who is responsible
Questions about how personal data is processed, and grievances under this Policy, are
handled by our Grievance Officer / Data Protection Contact,
our designated Grievance Officer (named on written request), of
our principal place of business in India, reachable at
[email protected]. That address is monitored
by a person with the authority to act, not an autoresponder. Should we be designated a
Significant Data Fiduciary under the DPDP Act, or otherwise be required to appoint a named
Data Protection Officer, we will publish their name and contact details in this section.
24.3 Going over our head
You do not have to be satisfied with our answer, and you never lose a statutory route by
trying us first.
-
India — you may complain to the Data Protection Board of
India once you have given us a reasonable opportunity to resolve it. For
complaints about content or intermediary conduct rather than data, the Grievance
Appellate Committee route in section 23.5 of the Terms
applies.
-
EEA / UK / Switzerland — you may complain to your national supervisory
authority, normally the one where you live or work, or where you think the problem
happened.
-
Elsewhere — you may complain to your local data-protection or consumer
authority where one exists.
We do not require you to arbitrate or to waive a statutory complaint route as a condition
of using the Services, and nothing in the Terms is intended to take
away a right you have under data-protection law.
The rest
25 Personal Data Breaches
A personal data breach is any security failure that leads to personal data being lost,
destroyed, altered, disclosed or accessed without authorisation — whether by an attacker, a
provider, or our own mistake.
25.1 What we will tell you
Where a breach affects your personal data, we will notify you without undue delay, in plain
language, and tell you: what happened and when, the categories of data involved and roughly
how much, the likely consequences, what we have done to contain it, and what you should do
— change a password, watch for a particular kind of message. We will notify you directly
rather than only posting a notice, wherever we have a working way to reach you.
25.2 What we will tell a regulator
We report breaches to the authorities that require it, within the deadlines they set —
including the Data Protection Board of India and, where the GDPR applies, the relevant
supervisory authority within 72 hours of becoming aware.
25.3 We will not manage it quietly
We will not delay a notification to protect our reputation, and we will not
describe a breach as something else. If we get it wrong we will say what we got
wrong. What we will not do is speculate before we know: an early notice may say less than
a later one, and we would rather tell you three true things quickly and the rest as we
confirm it.
There is exactly one thing that can hold a notice back, and it is not us:
a lawful direction to wait — from law enforcement or a regulator
handling an active investigation, or an order of a court. Telling everyone immediately
can be the thing that lets an attacker cover their tracks, so the law provides for it,
and if we are directed we will comply. The moment such a direction lifts, you
hear from us, and the notice will say that it was held and why. Nothing else
delays it — not a weekend, not a product launch, and not how bad it makes us look.
26 Changes to This Policy
We update this Policy when what we do changes, when we add a service or a provider, or when
the law moves. The date at the top of the page is always the date of the current version.
26.1 Material changes get notice
For a change that materially affects how we handle your personal data — a new purpose, a
new category of data, a new category of recipient, a materially different retention period,
or a narrowing of a commitment in section 9 — we will give you
at least 30 days' notice by email or through the Services before it takes
effect, and it will apply prospectively only.
If you do not want to continue under the new version, you may close your account before it
takes effect and withdraw any consent you have given. Where the new processing needs your
consent, we will ask for it rather than treat continued use as agreement.
Three things cannot wait thirty days, and pretending otherwise would only mean
breaking this promise the first time one happened. A change
required by law, a regulator or a court; a change a
payment provider or other essential provider requires of us in order to
keep operating; and a change needed urgently for security — a control
we must add now to protect accounts — take effect when they must. Everything else keeps
the 30 days.
When we use this, we will say so: we will tell you as soon as we are permitted to, name
which of the three it was, and describe exactly what changed. It is not a
general escape hatch — it cannot be used to add a purpose we simply wanted, or
to widen collection because it would be useful. If we ever rely on it, hold us to that
distinction under section 24.
26.2 Minor changes
Corrections, clarifications, a renamed provider in the same category, or a change that
reduces what we collect take effect when published. The date at the top changes;
nothing about your rights does.
26.3 What the Policy said before
If you need to know what this Policy said on a particular date — because that is the version
you relied on — ask [email protected] and we
will provide it. Clauses published under
section 27 each carry the date they were added, and a
clause we retire keeps its text and its date in our records for exactly this reason.
27 Additional Privacy Terms
From time to time we publish further disclosures under this section — when we engage a new
processor, when a provider changes what it returns to us, when a new feature processes
something the sections above do not cover, or when a regulator asks for a specific
statement. They appear below, each showing the date it was added.
Anything published here forms part of this Policy and describes our actual
practice exactly as the numbered sections above do. An Additional Privacy Term
supplements those sections; where one conflicts with a section above, the Additional
Privacy Term controls for the subject it covers, because it is the later and more
specific statement. Where such a term widens what we collect or who receives it, the
notice period in section 26.1 applies to it too.
A term that is later retired stops applying from the date it comes off this page. Retiring
it does not erase the fact that it applied while it was in force, and we keep its text and
its date so that the version of this Policy you relied on can always be reconstructed.
28 Onflow Ads IDs
Nearly every record we hold about you is labelled with an Onflow Ads ID —
a short reference of the form OFA-204-7831 that we assign. This section says
what those identifiers are in data-protection terms, what sits behind a payment, and what
happens to both when you leave.
28.1 A pseudonymous identifier we assign
An Onflow Ads ID is assigned by us and is not derived from you. It is
drawn at random when the record is created and checked against every ID ever issued, so no
two records share one. Nothing inside it encodes your name, your email address, your
Telegram account, your country, your device, your balance or when you joined — you cannot
compute one from what you know about a person, and you cannot read anything about a person
out of one.
It is still personal data in our hands, because we can link it back to
you — that is its entire job. It is pseudonymous, not anonymous, and this Policy
treats it that way: an ID is covered by every right in
section 22 exactly as the record it names is.
28.2 What it is, and is not, linked to
-
Linked, inside our systems — to the one record it names (an account, a
channel, a wallet movement, a top-up, an invoice, a withdrawal, a refund request, a
campaign, an order, a listing, a dispute, a support ticket) and, where that record
belongs to an account, to that account.
-
Not linked — it is not an advertising identifier. It is not sold or
shared with an ad network or a data broker, is not written into a tracking cookie or a
pixel, is not used to follow you across other sites, and is not handed to a payment
provider as a way of identifying you.
-
Not a new disclosure. What another user can see about you is governed
by section 13 and does not widen because a record carries an
ID. An ID is a label on something, not an extra fact about you.
28.3 The IP, device and browser behind a payment
Alongside the transaction details in section 4.4, we record on the
payment record itself the IP address, the raw
User-Agent string and a readable device summary
("Chrome on Windows") of whoever initiated a top-up, a
withdrawal or a refund request — and, against each
credit and debit in the Wallet ledger, the same IP and User-Agent plus whether it was you,
an admin, the Bot or an automatic process that moved the money.
Why: to prevent and investigate payment fraud and account takeover, and to
resolve a dispute or a chargeback about who actually authorised a payment — the questions
that are unanswerable without it. Basis: our
legitimate interests, weighed as set out in
section 10.2, and our legal obligation for the parts that form
part of our books. It is not used to profile you, to market to you, or to price anything
differently.
How long: it lives on the payment record, so it is kept for as long as
that record is — up to 8 years under
section 20.1, the window in which a tax authority, a payment
provider or a court can still ask about the transaction. It is not held separately from
the payment and is not copied into any other profile of you. Where the same event also
appears in the security and activity record of section 5.2,
that copy follows section 20.4 instead.
28.4 IDs and the moderation record outlive your account
Section 20.3 lists what survives closure. Two of those things are
identifier records, and both are kept deliberately and in a reduced form
— precisely so that a question asked after you have gone can still be answered honestly: a
chargeback filed months later, a payment provider's enquiry, a partner's dispute about a
deal you did with them, or your own appeal against a penalty you left with.
The ID registry. Every ID we have ever issued is recorded in one
registry, and its entry stays there after the record it named is deleted. That entry
holds only:
- the ID itself, and what kind of thing it named — "a top-up", "a support ticket";
- a pointer to the row it named, which by then no longer exists;
- the internal account number it belonged to, where it belonged to one;
- the date it was issued and the date it was retired; and
- any older reference that resolves to it.
It holds no content. No name, no email address, no amount, no message,
no creative, no channel — nothing about the record beyond its label. Its only function is
that an old ID quoted back to us still says what that reference was, instead of
dead-ending.
The moderation record. Where a penalty, restriction, suspension or ban
was applied to an account — or lifted again — we keep an append-only entry: what was
done, to which internal account number and which Onflow Ads ID, against what target, the
reason, who did it, when, the IP address the action was taken from, and the exact state
before and after it, so it can be reversed faithfully. It survives deletion because
deletion is frequently what accompanies a ban, and a record of what was done that
vanishes with its subject can never be reviewed, appealed or corrected.
It records what was done; it is not a rule applied automatically to a future
registration. The only marker that reaches forward is the one-way anti-evasion hash in
section 20.3. You can ask what the moderation record says about
you, and challenge it, under section 22.