Privacy policy
Last updated: November 9, 2026
This policy explains what personal data Cardfolio (version 1.1) processes and why. Cardfolio is provided by Vladyslav Petrykov, a private person in Gdańsk, Poland ("we", "us"), who is the controller of your personal data. On the App Store, Cardfolio is distributed through the developer account of Daniil Negovelov on behalf of Vladyslav Petrykov. You can reach us at petrykovvladyslav@gmail.com.
1. The short version
- Your library of business cards stays on your device. We do not receive it. If backup is turned on for your device, the library may also be included in your device's own backup.
- To use the app you sign in, with a code sent to your email or with Sign in with Apple. We process the email address or the Apple account ID that identifies you.
- If you turn on sharing, the card you publish is stored on our servers for as long as the link is active.
- Optional: if you allow AI reading in the app, the photo of a card you scan can be sent to our server and to an AI service so it can read the text. The AI service may look the company on the card up on the web, never the person. We do not store any of it. You can switch this off in Settings at any time.
- Optional: if you allow usage statistics, the iPhone app counts which features you use, such as scans and shared links, and sends these counts to Google Analytics for Firebase. They never include names, contacts or card details. You can switch this off in Settings at any time.
- There are no ads. On Android, the card scanner from Google sends Google statistics about how the scanner works, but never your photos or their text.
2. Data we process
Sign-in email. To sign in you give us your email address. We send a one-time code to it and create an account that is identified by that address. The code is stored only as a salted hash and expires after 10 minutes, or earlier once it is used.
Sign in with Apple. On iPhone you can sign in with your Apple ID instead. Apple gives us a user ID that is unique to Cardfolio and, if you agree in Apple's dialog, an email address, which can be a private relay address from Apple. We do not receive your Apple password. We keep a token from Apple so that, when you delete your account, we can tell Apple to end Cardfolio's access to your Apple ID.
Your own card, while a link is active. When you share your card, the app uploads the fields you chose to share: name, role, company, phone numbers (only if the "show phone" setting is on), email, website and address, plus the card colour style. The note and the logo are never uploaded. Anyone who has the link can view this card without an account.
Technical data. Our hosting and server providers process technical data such as your IP address when you use the app or open a shared link. We use a hashed form of the IP address only to limit abuse, for example too many code requests. This record expires after one hour and is then deleted automatically, usually within a day.
Scanner statistics on Android. The Android app reads paper cards and QR codes on your phone with Google ML Kit. ML Kit does not send the photo or the text it finds to Google. It does send Google statistics about how the scanner is used and how well it performs, which Google uses to maintain and improve ML Kit. The iPhone app uses Apple's scanner on the phone and sends no such statistics.
Not collected. We do not collect advertising identifiers or your precise location. Contacts you save, scanned photos of paper cards and your notes stay on your device, except for the optional AI reading described below. Usage statistics are collected only if you allow them, as described next.
Optional usage statistics. The iPhone app asks once, after you save your first card, whether it may send usage statistics, and you can change your answer in Settings. Only if you allow it, the app sends Google Analytics for Firebase a short list of events: a scan started (from the camera or the gallery), a card read with AI, a card saved (from a scan or a link), your own card created, your link copied or shared, the library exported and a sign-in. Google adds standard app events such as the first launch and the start of a session, the app version, the device model and system version, a random app instance ID created by Firebase, and a general location (country and region) estimated from a masked IP address. The statistics never include names, phone numbers, email addresses, companies, places or any card content, and we do not link them to your account. The app does not use the advertising identifier or the identifier for vendor, and advertising features are off. If you do not allow it, nothing is sent.
Optional AI reading of a scanned card. The app reads a scanned card on your phone first. Only if you have allowed AI reading, you are signed in and the result on the phone looks unreliable, the app sends the photo of that card (reduced in size, without its location and camera data) and the text found on it to our server. Our server passes them to an AI service from Anthropic, which returns the fields it read. We do not store the photo, the text or the answer, and we do not write them to our logs. We count requests per account to limit abuse. The reading is still shown to you for review before anything is saved. If you do not allow it, nothing is sent and the card is read on your phone only.
Company lookup during AI reading. To check a card and fill in missing company details, the AI service may run up to two web searches as part of the same request. A search uses only the company name, the website or the domain of the email address printed on the card. It never uses the name, job title, phone number or email address of the person. Details found this way, such as the company website, office phone or address, only fill fields that the card left empty, and the app shows the website each detail came from. The searches and their results are handled by Anthropic for that request. We do not store them and do not write them to our logs.
3. Cards of other people
The library on your device may contain contact details of other people, for example from cards you scanned or received by link. This data stays on your device and we do not keep it. If you allow AI reading, the photo and text of a card you scan are processed once to read it, as described above, and are not stored. Only the company on such a card may be looked up on the web, never the person. You are responsible for how you use it, see the terms of service.
4. Why we process data and legal bases
We process your email to provide sign-in and to protect the service from abuse (performance of the contract and our legitimate interest in security). We process your published card to show it to the people you give the link to (performance of the contract). We process the photo and text of a scanned card with AI only if you allow it (your consent), which you can withdraw in Settings. We send usage statistics only if you allow them (your consent), which you can withdraw in Settings.
5. Retention
- One-time codes: removed when used and after they expire (10 minutes, with cleanup shortly after).
- Published card and link data: removed when you revoke your links in Settings or delete your account. After a revoke the link only shows that it was revoked, and the card content is erased.
- Account: kept until you delete it in the app. For a Sign in with Apple account the token from Apple is deleted with it, after we ask Apple to end the access. A record holding only the time of deletion expires after 24 hours and is then deleted automatically, usually within a day.
- Abuse-protection records (hashed IP and email counters): expire after at most one hour and are then deleted automatically, usually within a day. Per account counters for AI reading requests are removed with the account.
- Photos and text sent for AI reading: not stored by us, they are processed while the request runs.
- Usage statistics: kept by Google Analytics for at most 14 months and then deleted automatically.
6. Who we share data with
We use Google Firebase (Authentication, Cloud Firestore, Cloud Functions and Hosting) to run the service, an email delivery service to send sign-in codes, Apple to check a Sign in with Apple and, only if you allow AI reading, Anthropic to read scanned cards and to look up the company printed on them. Only if you allow usage statistics, Google Analytics for Firebase receives the statistics described in section 2. These providers process data on our behalf. On Android, Google also receives the ML Kit scanner statistics described in section 2. People who open your link can see the card you published. We do not sell personal data.
7. Security
Data is sent over HTTPS. Share links contain a long random token that cannot be guessed. Access to stored data is limited to our server functions. No system is perfectly secure, so we cannot guarantee absolute security. Anyone who has your link can see your published card, so share it with care and revoke it when you no longer want it to work.
8. Your rights
Depending on where you live, you may have the right to access, correct, delete, restrict or export your data and to object to processing. You can delete your account and all server-side data yourself in the app (Settings, Delete account), or follow the steps on the account deletion page if you no longer have the app. You can revoke all share links in Settings. For anything else write to petrykovvladyslav@gmail.com. You may also complain to your local data protection authority.
9. Children
Cardfolio is not intended for children under 16 and we do not knowingly collect their data. If you believe a child gave us personal data, contact us and we will delete it.
10. International transfers
Published cards and our service records are stored in the European Union (Google Cloud region europe-west1, Belgium). Some providers, such as Firebase Authentication, the email service and the AI service if you allow it, may process data outside your country, for example in the United States. Where required, we rely on appropriate safeguards.
11. Changes
We may update this policy. The date at the top shows the latest version. For material changes we will tell you in the app before they apply.
12. Contact and governing law
Contact: Vladyslav Petrykov, Gdańsk, Poland, petrykovvladyslav@gmail.com.
This policy is governed by the law of Poland. You can complain to the Polish data protection authority (Prezes Urzędu Ochrony Danych Osobowych) or to the authority where you live.