Privacy

Privacy notice

Written to be read. What we record, what we deliberately do not, and what you can do about either.

Read this first. This notice describes how the software actually behaves. It has not been reviewed by a lawyer or a data protection officer, and it is not a claim of compliance with the NDPA, the GDPR, or anything else. Before operating MARK commercially, have it reviewed and registered as your jurisdiction requires.

What we hold about you

The account you create: your name, email address, and a bcrypt hash of your password. We never store the password itself and cannot recover it. Then whatever you choose to put on your profile — role, company, bio, location, links — which is public by design, because the point of the product is to show it to people.

What we hold about people who tap your card

A count of views, and if they act, link clicks and contact saves. Device class (mobile, tablet, desktop), the origin of the referring site, and coarse country where the platform supplies it.

What we do not store is more important. No raw IP address is ever written to the database. To count unique visitors we hash the address together with a salt that changes every day, so the same person produces a different value tomorrow. That is a deliberate trade: it means unique counts are per-day rather than per-year, and it means the hash cannot be used to follow anyone over time. We do not store precise location, we do not set advertising or cross-site identifiers, and we do not sell anything to anyone.

If a visitor's browser sends Do Not Track or Global Privacy Control, we record nothing at all for that visit, provided the profile owner has left that setting on.

Leads

A lead is only ever created when someone fills in the form and ticks the consent box themselves. The box is never pre-ticked, and the exact wording shown to them is stored alongside the lead, so there is a record of what was agreed to rather than an assumption. Deleting a lead is a hard delete, not a hidden flag.

How long we keep things

Analytics retention is yours to set, from 30 days to three years. Past that window events are deleted permanently. Account data lives until you close the account. Audit records of sensitive operations are append-only and retained, because their value is precisely that they cannot be quietly rewritten.

What you can do

  • Download everything we hold about your account as a JSON file, from Settings.
  • Turn analytics off entirely, or shorten how long they are kept.
  • Unpublish your profile, which stops it resolving without deleting anything.
  • Delete any lead, immediately and permanently.
  • Ask us to close your account and erase your data.

Account closure is handled by hand rather than by a button, so that cards issued to you can be released back to inventory rather than stranded. Ask through support.

NDPA and GDPR

MARK is built in Nigeria, so the Nigeria Data Protection Act 2023 (which supersedes the 2019 NDPR) is the primary frame, and the GDPR is the reference where a visitor is in the EU or UK. The principles both share — lawful basis, data minimisation, purpose limitation, storage limitation, and the rights of access, rectification, erasure and portability — are the ones the design above tries to satisfy: consent recorded explicitly for leads, minimisation by not storing IPs at all, storage limitation as a setting you control, and portability through the export.

Satisfying principles in software is not the same as being compliant as an organisation. Compliance also involves registration with the NDPC where thresholds apply, a named data protection contact, processor agreements with vendors, and a breach process. Those are organisational obligations that code cannot discharge, and they are not in place simply because this page describes them.

Who else sees your data

Payment details are handled by the payment provider and never touch our servers — we store a reference and a status, not a card number. Email is sent through a transactional email provider. If either is not configured in a given deployment, that function falls back to a local mock and no data leaves the machine.

Questions about any of this go to support.