[Company name] (“we”, “us”) follows Korea’s Personal Information Protection Act (PIPA) and related laws, and publishes this policy to explain how we handle personal information safely. There are two kinds of people who use oh!shoot: members (who create an account and make live prints) and viewers (who scan a print’s QR code to watch the video; they do not sign up). We process different information for each, so this policy keeps them apart.
If you live outside Korea, you can send any request about your information to the same contact below.
1. Purposes of processing
We process personal information for the following purposes. If a purpose changes, we take the steps the law requires, such as asking for fresh consent.
- Sign-up and account management: confirming intent to sign up, identifying you and signing you in, managing accounts and workspaces, sending notices, preventing misuse
- Providing the Service: building live prints, print-ready files and QR codes from uploaded videos and print designs, and managing publishing and playback
- Payments: paid plans and credits, renewals, refunds, receipts, tax and accounting
- Analytics: letting a member see how often their live prints are opened and played (aggregates that do not identify viewers as individuals)
- Support: answering inquiries, access requests and complaints
- Improvement and reliability: finding the cause of errors, preventing abuse, security
- Legal duties: keeping records as required by e-commerce and other laws
2. Personal information we process
| Category | Items | How we get it |
|---|---|---|
| Sign-up and account | Email address, display name, language setting, workspace and membership information, and a password if you use one (stored only as an encrypted value; we cannot know your password) | You enter it when signing up or in settings |
| When you use Google sign-in | Account identifier, email address and name provided by Google (depends on your Google account settings) | Google sign-in |
| Created while using the Service | Videos and photos (print designs) you upload, live print settings (video position, print size, contact-button details and so on), generated files (print-ready files, QR codes, AR data) | Uploaded or created in the Service |
| When registering a blank print | The registration code of the blank print you bought and the video you upload while registering | Entered and uploaded by the buyer on the registration page |
| Payments | Payment status, amount, date, plan, Stripe customer and payment identifiers, and the type and some display details of the payment method (full card numbers are handled only by Stripe; we never receive them) | The Stripe checkout and Stripe payment notifications (webhooks) |
| Access requests | Email address and the note you leave | You enter it in the access-request form |
| Referral source | How you reached us before signing up (utm values, referral code) | Kept briefly in your browser from the link and sent once at sign-up |
| Error reports | Error message and where it happened, page address, browser and device information (User-Agent), and your member ID if you are signed in | Sent automatically when an error happens on screen |
| Viewer scan analytics | Event type (open, found, play, button tap and so on), time, device type / OS / browser (derived from the User-Agent), approximate city and country (only when the CDN provides them), and a random viewer ID kept in the browser | Sent automatically when a viewer opens a live print |
| Inquiries | The content and address of the emails you send us | You email us |
What we do not process about viewers
- The camera image (video or photos) is processed only on the phone. We do not upload or store it. Recognising the print is computed on the phone.
- We do not store IP addresses. Our service does not read IP addresses into our database. However, as is normal for internet connections, our hosting and CDN providers’ network equipment may handle an IP address briefly for delivery and security, or keep it in their own logs under their own policies.
- We do not collect names, contact details, precise location or advertising identifiers.
Videos and photos that members upload may contain personal information, such as people’s faces or voices. A member who uploads them must have the permission needed, such as the consent of the people filmed (Terms, Article 9).
3. Retention periods
We delete personal information without delay once the purpose is achieved. Information we must keep by law is kept separately for the periods below.
| Category | Retention | Basis |
|---|---|---|
| Member information (email, display name, settings, workspace and membership) | Until the account is closed; deleted within 30 days after closing | Consent, performing the agreement |
| Member content (videos, photos, live prints, generated files) | Until the member deletes it or closes the account; deleted within 30 days after closing, and backups roll off within 90 days | Performing the agreement |
| Viewer scan analytics | 24 months from collection; deleted along with the live print or workspace if that is deleted first | Providing the Service (analytics) |
| Error reports | 90 days from collection | Reliability |
| Access requests | Deleted without delay once handled, and within 1 year at the latest | Answering inquiries |
| Records of contracts or withdrawal, payments and supply of goods or services | 5 years | Korean Act on Consumer Protection in Electronic Commerce |
| Records of consumer complaints or disputes | 3 years | Korean Act on Consumer Protection in Electronic Commerce |
| Records of labelling and advertising | 6 months | Korean Act on Consumer Protection in Electronic Commerce |
| Tax and accounting books and vouchers | 5 years | Framework Act on National Taxes, Corporate Tax Act and similar |
4. How we destroy personal information
- Procedure: when a retention period ends, the purpose is achieved, or a member asks for deletion, we identify what to destroy and destroy it after the privacy officer confirms. Information we must keep by law is kept apart from other data and destroyed when the period ends.
- Method: electronic files are deleted in a way that cannot be recovered (deleting database records and storage files). Any paper documents are shredded or incinerated.
5. Provision to third parties
We use personal information only within the purposes above and do not provide it to third parties unless the person has consented or the law requires or allows it (for example, a lawful request from an investigating authority).
- Viewer scan analytics are shown to the member (workspace) who made the live print only as statistics that do not identify anyone (totals, trends, shares by region or device). We do not single out an individual viewer.
- Contact buttons (phone, email, map and so on) that a member adds to a live print are details the member chose to show viewers.
- The providers under “Processing by service providers” below process data on our behalf; that is different from providing data to a third party.
6. Processing by service providers (outsourcing)
To run the Service we have the following providers process personal information. We manage them by contract so that information is handled safely. If a provider or task changes, we will update this policy.
| Provider | Task | Information | Retention |
|---|---|---|---|
| Supabase, Inc. | Operating the database, sign-in (authentication) and file storage | Member information, member content, generated files, billing records, scan analytics, error reports, access requests | Until the contract ends or the member closes the account |
| Railway Corporation | Hosting the application (servers and background jobs) | The information above while servers process it during use (transit and processing) | Until the contract ends (not stored permanently on the servers) |
| Stripe, Inc. | Payment processing, subscription management, billing portal | Email, payment method details, payment history | For the period payment laws require, or until the contract ends |
| Netlify, Inc. | Serving the ohshoot.net site and short links (QR links) | Connection details sent when visiting the site (such as the requested address; handled briefly) | Until the contract ends |
| [Email delivery provider] | Sending sign-in links and notice emails | Email address and message content | Until the contract ends |
7. Transfer of personal information abroad
Most of the providers above are overseas companies or can be reached from overseas, so using the Service may transfer or process personal information abroad. As the law requires, we tell you the following.
| Recipient | Country / storage location | Items | Purpose | When and how | Retention |
|---|---|---|---|---|---|
| Supabase, Inc. (contact: see its privacy policy) | United States (company location). Data storage region: [Seoul (ap-northeast-2) — chosen when the project is created; confirm] | Member information, member content, generated files, billing records, scan analytics, error reports, access requests | Database, authentication and file storage | Each time you use the Service, over the network (TLS-encrypted) | Until the contract ends or the member closes the account |
| Railway Corporation (contact: see its privacy policy) | United States (company location). Server region: [Region to be confirmed (e.g. US / Singapore)] | The information above, as servers process it during use | Application hosting | Each time you use the Service, over the network (TLS-encrypted) | Until the contract ends (not stored permanently) |
| Stripe, Inc. (contact: see its privacy policy) | United States and other countries where Stripe processes payments | Email, payment method details, payment history | Payment processing and subscription management | At checkout, between the Stripe page and our server (TLS-encrypted) | For the period payment laws require, or until the contract ends |
| Netlify, Inc. (contact: see its privacy policy) | United States and other locations in Netlify’s network | Connection details sent when visiting the site (handled briefly) | Serving the site and short links | Each time the site is opened, over the network | Until the contract ends |
| [Email delivery provider] | [Country] | Email address and message content | Sending sign-in links and notice emails | Each time an email is sent, over the network (TLS-encrypted) | Until the contract ends |
How to refuse, and what happens: if you do not want your information transferred abroad, please stop using the Service and close your account. Send the request to the privacy officer (hello@ohshoot.net). These providers are essential to running the Service, so if you refuse the transfer you will not be able to use it. Viewers have no account; if you do not open a live print, no viewer information is sent.
8. Your rights and how to use them
- You (member or viewer) can at any time ask us to let you access, correct or delete your personal information, stop processing it, or withdraw consent.
- Send the request to hello@ohshoot.net. Members can also see and edit some information (such as display name and language) in the studio. A representative may act for you with a power of attorney.
- After confirming your identity, we will tell you the result within 10 days. If we cannot delete or stop processing (for example, information we must keep by law), we will explain why.
- For viewers: we hold no name or contact details, so we cannot pick out a particular viewer’s data. The viewer ID is stored in your browser; clearing the browser’s site data removes it (see “9. Cookies and browser storage”).
- If you are unhappy with how we process personal information or think your rights were infringed, you can also ask the bodies in “14. Remedies for infringement” for help.
9. Cookies and browser storage (localStorage)
We do not use cookies for advertising or behavioural analysis, and we use no third-party advertising or analytics tools. We keep what the Service needs in your browser’s storage.
| Where (name) | What | Why | How long |
|---|---|---|---|
localStorage lp.viewer | A randomly generated viewer ID (not linked to a name or contact) | Counting “unique viewers” in analytics | Until cleared |
| localStorage (sign-in session) | Sign-in session data (kept by Supabase authentication) | Staying signed in | Until sign-out or cleared |
localStorage lp.workspace | The workspace you last selected | Opening the same workspace next time | Until cleared |
localStorage lp.attribution | How you arrived (utm values, referral code) | Recording the source once at sign-up | Removed after sign-up |
| sessionStorage | Temporary state for when you return from checkout | Showing the payment result | Until the tab closes |
- The checkout page (Stripe) and the sign-in page (Google) open on those companies’ own domains, where their cookies may be used. Their policies apply.
- How to refuse: you can delete or block site data (cookies, localStorage) in your browser settings. If you do, you will be signed out and the selected workspace will be forgotten. If the viewer ID is removed, the same person may be counted once more as a new viewer; if storage is blocked, the ID is only kept in memory while the page is open. Playback is not affected.
10. About camera use
- To watch a live print, the viewer’s phone camera permission is needed. The viewer grants it in the browser and can withdraw it at any time in browser settings.
- The camera image is used only on the phone to recognise the print. We do not send or store it.
- If a buyer registering a blank print films a video and uploads it, that video is member content uploaded by the user and is handled under sections 2 and 3 above.
11. Security measures
To keep personal information from being leaked, lost or misused we take these measures.
- Administrative: we limit the people who handle personal information, grant access only for the work that needs it, train them regularly and review internal rules.
- Technical: data in transit is encrypted with TLS (HTTPS). Passwords are stored by our sign-in provider (Supabase authentication) in a form that cannot be reversed. The database applies access rules (row-level security) so that members reach only their own workspace’s data, and server secret keys are kept apart from code that is sent to members. We rate-limit requests to prevent abuse.
- Physical: servers and storage run in the data centres of certified cloud providers; we have no server room of our own.
- Incident response: if we learn of a leak, we notify the people affected and the authorities as the law requires, find the cause and prevent a repeat.
12. Children under 14
The Service is not directed to children under 14 and we do not accept sign-ups from them. If we learn that we hold a child’s personal information, we delete it right away.
13. Privacy officer
We have appointed a privacy officer who oversees personal information processing and handles complaints and remedies.
| Item | Details |
|---|---|
| Privacy officer | [Privacy officer name] ([Title]) |
| hello@ohshoot.net | |
| Phone | [Phone] |
| Address | [Address] |
14. Remedies for infringement
To seek remedies for a privacy infringement, you can apply for dispute resolution or consultation to the bodies below. They are separate from us and you can turn to them if you are not satisfied with how we resolve it.
- Personal Information Dispute Mediation Committee: 1833-6972 · kopico.go.kr
- Personal Information Infringement Report Center (KISA): dial 118 (no area code) · privacy.kisa.or.kr
- Supreme Prosecutors’ Office, Cyber Crime Investigation Division: dial 1301 · spo.go.kr
- Korean National Police Agency, Cyber Bureau: dial 182 · ecrm.police.go.kr
15. Changes to this policy
If this policy changes, we post a notice on this website at least 7 days before the effective date. For significant changes, such as more items, more overseas transfers or more providers, we give 30 days’ notice and, if needed, email you too. To get an earlier version, email hello@ohshoot.net.
This policy takes effect on [YYYY-MM-DD].