This is a draft, and it is not yet in force. Iko Travel has not launched, and the account feature is not available. We are publishing this policy while preparing for launch so that there is an address where you can actually read it. It has not yet been reviewed by a lawyer.
It is written from what the app's code actually does, and it is not legal advice.
Where a value is still undecided we have left it visible in the text as an unfinalised marker rather than filling in a guess. The remaining items are collected in §16.
When the service opens, we will enter the effective date below, and the policy applies from that day.
[Not yet decided: legal business name] ("we", "us") operates the travel app Iko Travel (the "Service") and complies with the Personal Information Protection Act of the Republic of Korea (PIPA) and other applicable laws. We treat your personal information with care, and our design principle is to prefer a structure that does not collect personal information in the first place.
You need to know four structural facts to read this policy.
We do not collect the following to our server, and the block is written in code rather than left to policy.
The server walks the whole body of every request to the AI features recursively and rejects the request (HTTP 400) the moment it finds any of those field names anywhere inside it. The error log that results keeps only the name of the blocked field — never its value, under any circumstances.
ℹ️ That block covers the AI features. Two other features — route search and weather — do send coordinates to our server as request values: the coordinates of the places you picked. Those are not the position your device measured (§9), and the server uses them only as a cache key rounded to a coarse grid, never stored alongside an identifier for you. §5 sets out how far those coordinates travel beyond us.
| Item | What it is |
|---|---|
Install identifier (X-Install-Token) | An anonymous string (a ULID) generated once on your device when you first open the app. It is not tied to your real identity such as a name or email address, and we neither sign it nor attach an identity to it. It lives in a database inside your device and resets to a new value if you delete and reinstall the app. |
Payment identifier (payment_id) | A random value generated separately from the install identifier so that subscription payments can be processed. Neither value can be derived from the other. |
ℹ️ The install identifier holds no real identity information, but it does let requests from the same device be linked to each other. We therefore treat it as a per-device anonymous identifier rather than as "fully non-identifying data", and we disclose it here.
If the account feature is offered (§11), the following values are stored on our server.
| Item | What it is |
|---|---|
Account identifier (account_id) | A 26-character string (a ULID) generated by our server when you first sign in. The first part is the time it was created and the rest is random. It is not combined with your real identity such as a name or email address. |
Provider user reference (provider_sub) | The value your sign-in provider (Apple, Google, Kakao, Naver, or LINE) issued to tell you apart inside that provider's own service. We store it as-is and use it only to reconnect you to the same account when you sign in the same way again. |
| Name, email address, profile picture, phone number | We do not receive these. The only thing a sign-in provider hands us is the user reference above, and our server's data structures have nowhere to put these items in the first place. |
| Apple revocation token | We keep one, only if you signed in with Apple. We use it to ask Apple to revoke the link when you delete your account (§11.7). We keep no equivalent value for any other sign-in provider. |
ℹ️ Devices and accounts behave differently. Deleting the app clears the device-side values in §2.2, but it does not clear your account. Reinstall the app, sign in the same way as before, and you are back in the same account. To get rid of the account itself, use account deletion (§11.6).
To generate an AI answer we send the following to Anthropic (United States), limited per feature. Anything not listed below cannot be sent, because of the block described in §2.1.
| Feature | What we send |
|---|---|
| Travel concierge (questions and answers) | (i) A block of factual place data: place identifier, hours, prices, closing days, tags, the time the data was verified, and a source reference. (ii) The text of your question after the app has scrubbed it on your device (up to 2,000 characters). (iii) City identifier, screen language, and how many results you asked for. |
| Meetup place suggestions | (i) The identifier, name, and category of candidate places (address, phone number, and links are deliberately excluded). (ii) Condition values drawn from a predefined list (enum). (iii) Optionally, scrubbed question text. |
| Course narration | Intent version, the ordered list of place identifiers, reason codes for the suggestion, screen language, and city identifier — there is no field that can carry free-form text at all. |
Subscriptions are purchased through the app stores and a payment relay service (RevenueCat). The only values our server keeps are these.
We neither collect nor keep your name, email address, card number, or any other payment credential. The only thing we pass to the payment relay is the payment_id from §2.2, and the mapping between payment_id and our internal processing exists only inside our own server (kept for 400 days, §4). If the account feature is offered, these values are keyed to your account identifier instead of your install identifier.
→ Described separately in §8. This feature is off by default today.
We process what we collect only for the purposes below. If a purpose changes, we tell you first and obtain any consent required.
| Item | Purpose |
|---|---|
| Install identifier | Enforcing per-device usage limits while you are signed out, preventing abuse and automated requests, and keying personalization data when that feature is on |
| Items sent to the AI (§2.4) | Answering your travel questions, suggesting meetup place candidates, and generating course narration |
| Subscription status | Checking entitlement to paid features, and handling expiry and renewal |
| Payment identifier mapping | Connecting payment events from the payment relay to entitlements inside the Service |
| Taste tags (when on) | Personalizing what we recommend |
| Usage counters and logs | Keeping the Service stable, responding to incidents, and blocking misuse and abuse |
| Location | Showing "my location" on the map screen, on your device only (§9) |
| Account identifier | Keeping you signed in, and managing usage limits and paid entitlements per account rather than per device |
| Provider user reference | Reconnecting you to the same account when you sign in the same way again, and preventing one sign-in method from being linked to two accounts |
| Session token | Keeping you signed in, and invalidating every existing session at once when you sign out of all devices |
| Apple revocation token | Asking Apple to revoke the link when you delete your account (§11.7) |
| Account-to-payment binding | Making sure one payment is not claimed by several accounts, and moving paid entitlements when accounts are merged |
| Account status records (deleted, merged) | Making sure a deleted account cannot be revived by signing up again, and preventing fraud |
Retention differs by item. Some items expire automatically in the store that holds them; others have no automatic expiry set today. The table states this exactly as it is.
| Item | Where it is stored | Retention | How it is destroyed |
|---|---|---|---|
| Install identifier | Storage inside your device | Until you delete the app | Cleared when the app is deleted or reinstalled (a new value is generated) |
| Taste tags (when personalization is on) | Cloudflare Workers KV | 180 days | Expires automatically at the end of that period, or immediately when you ask us to delete it (§8) |
| Payment identifier mapping | Cloudflare KV | 400 days | Expires automatically at the end of that period |
| Payment webhook de-duplication key | Cloudflare KV | 30 days | Expires automatically at the end of that period |
| Subscription status | Cloudflare KV | No automatic expiry is set, so it is kept until something deletes it. | Deleted immediately when you delete your account. Otherwise there is no automatic destruction routine today — [Not yet decided: decide the retention policy for subscription status and implement the destruction routine] |
| Usage counters | Cloudflare KV | No automatic expiry is set, so it is kept until something deletes it. | Deleting your account clears only the most recent periods (Note B below) — [Not yet decided: decide the retention period and reset cycle for usage counters] |
| Operational and error logs | Infrastructure provider logs | [Not yet decided: confirm the log retention period and state it here] | [Not yet decided: how logs are destroyed] |
| Account record (account identifier, status, creation time) | Cloudflare D1 | A minimal record stays even after deletion (Note A below) | Deletion flips the status to "deleted". Full destruction is [Not yet decided: decide and implement a purge policy for account records] |
| Sign-in link records (including the provider user reference) | Cloudflare D1 | Stays after deletion, marked unusable (Note A) | Marked unusable immediately on deletion. Full destruction is as above |
| Account-to-payment binding | Cloudflare D1 | Unbound when you delete your account | Marked as unbound |
| Account-to-device link history | Cloudflare D1 | [Not yet decided: decide the retention period for account-to-device link history] | [Not yet decided: how account-to-device link history is destroyed] |
| Apple revocation token | Cloudflare D1 | Until the revocation request succeeds | Cleared the moment revocation succeeds. If we could not send the request, it stays queued for a retry (§11.7) |
| Session token | Storage inside your device | 30 days from the last time it was checked | The app discards it automatically at the end of that period. Deleted immediately when you sign out, sign out of all devices, or delete your account (§13-8) |
We do not sell your personal information, and we do not hand it to third parties for advertising or marketing. We use the outside services below only as far as running the Service requires.
The table mixes two kinds of thing: services our server calls on your behalf, and services the app connects to directly, without passing through our server. The second kind is marked "app connects directly".
| Service | Why we use it | What passes between us |
|---|---|---|
| Anthropic (Claude API) | Generating AI answers | The per-feature items in §2.4 |
| Cloudflare | Infrastructure — where our server runs and where data is stored | The server-side items in §2.2, §2.3, §2.5, and §2.6 |
| RevenueCat | Relaying subscription payment status | The payment identifier (payment_id) and subscription events |
| Google AdMob | Serving ads inside the app (§10) | Whatever the ad SDK handles — [Not yet decided: state exactly which identifiers AdMob handles, based on Google's own documentation] |
| Naver local search | Looking up meetup place candidates | Only an area label as text and a predefined venue-type hint. We do not send your location coordinates. |
| Apple (Sign in with Apple) | Verifying who is signing in; revoking the link on account deletion | We receive: your user reference. We send: a request to validate the credential the app received at sign-in, and a revocation request at deletion (including the revocation token we hold) |
| Google (Sign in with Google) | Verifying who is signing in | We receive: your user reference. We send: only a request for the public keys needed to verify a signature; nothing that points at you |
| Kakao | Verifying who is signing in; revoking the link on account deletion | We receive: your user reference. We send: a request for signature-verification keys, and at deletion a revocation request that includes your user reference |
| Naver | Verifying who is signing in | We receive: your user reference. We send: one profile lookup carrying the access token the app received |
| LINE | Verifying who is signing in | We receive: your user reference. We send: only a request for the public keys needed to verify a signature; nothing that points at you |
| SK Telecom (TMAP public transit) | Looking up public transit routes and travel times in Korea | The coordinates of the start and end points you picked, plus the departure time. We send no user reference and no question text |
| Korea Meteorological Administration (API Hub) | Looking up current weather in Korea | The coordinates of the point being checked, converted to a grid cell number, plus the reference date and time. We do not send the raw coordinates |
| Japan Meteorological Agency | Looking up forecasts in Japan | A single area code, nothing else. No coordinates, and nothing that points at you |
| NAVITIME (Japanese public transit) — not in use today | Looking up public transit routes and travel times in Japan | If this is turned on: the coordinates of the start and end points, plus the departure time. [Not yet decided: confirm NAVITIME's registered company name and country, and how far the reseller (RapidAPI) is involved] |
| Seoul Metropolitan Government (Open Data Plaza) | Looking up live status of city-run car parks | We send nothing about you at all. We fetch the whole list of car parks at once, hold it briefly on our server, and show you only the part you need |
| Google Maps SDK — app connects directly | Drawing the map screen | Where the map is looking and how far it is zoomed, plus connection information. If you turn on the "my location" display, the SDK passes your device's position to Google. [Not yet decided: state exactly which items the Google Maps SDK handles, based on Google's own documentation] |
| NAVER Maps SDK — app connects directly | Drawing the map screen for Korea | The same as above; only the other end differs. [Not yet decided: state exactly which items the NAVER Maps SDK handles, based on NAVER's own documentation] |
| Korea Tourism Organization (festival photo server) — app connects directly | Showing festival and event photos | The app fetches the photos itself, so your connection information (IP address and so on) reaches the Korea Tourism Organization. We send no user reference |
| 7 affiliate booking links (Klook, KKday, GetYourGuide, Agoda, Booking.com, JR Pass, Airalo) — app connects directly | Opening a booking or product page | An external browser opens only when you tap the link. The link carries a place or city name and an affiliate reference; it carries no location coordinates and no user reference. [Not yet decided: confirm the registered company names and countries of the 7 affiliate partners, and what the links actually carry] |
We transfer personal information out of Korea as follows.
| Recipient | Country | Purpose | What is transferred | When and how | Retention | How to refuse, and what happens |
|---|---|---|---|---|---|---|
| Anthropic | United States | Generating AI answers | The per-feature items in §2.4 | Each time you use an AI feature, by an API call over an encrypted connection (HTTPS) | [Not yet decided: confirm and state Anthropic's API data retention period] | Nothing is transferred if you do not use the AI features (concierge, meetup suggestions, course narration). Only those features stop working; the rest of the Service still works. |
| Cloudflare | United States and global network locations | Infrastructure — running the server and storing data | The server-side items in §2.2, §2.3, §2.5, and §2.6 | Continuously while you use the Service, sent and stored over encrypted connections | Same as the per-item retention in §4 | This is the infrastructure the Service runs on, so you cannot refuse it individually. To refuse, stop using the Service. |
| RevenueCat, Inc. | United States | Relaying subscription payment status | Payment identifier, subscription events | When a subscription is purchased or renewed | See the first note under this table | Nothing is transferred if you do not subscribe. |
| Google (AdMob) | [Not yet decided: confirm Google AdMob's country] | Serving and measuring ads | [Not yet decided: items transferred to AdMob] | When an ad is shown | [Not yet decided: AdMob retention] | You can decline personalized ads in the consent form (§10), and on iOS you can decline tracking. |
| Apple | United States | Verifying who is signing in; revoking the link on account deletion | The credential at sign-in; the revocation token and user reference at deletion | At sign-in and at account deletion | Governed by the sign-in provider's own policy | Nothing is transferred if you do not sign in with Apple. You can use another sign-in method. |
| Google (sign-in) | United States | Verifying who is signing in | A request for signature-verification public keys (nothing that points at you) | At sign-in | Governed by the sign-in provider's own policy | Nothing is transferred if you do not sign in with Google. |
| Kakao | Republic of Korea | Verifying who is signing in; revoking the link on account deletion | A request for signature-verification public keys; your user reference at deletion | At sign-in and at account deletion | Governed by the sign-in provider's own policy | Nothing is transferred if you do not sign in with Kakao. |
| Naver | Republic of Korea | Verifying who is signing in | One profile lookup carrying the access token the app received | At sign-in | Governed by the sign-in provider's own policy | Nothing is transferred if you do not sign in with Naver. |
| LINE | Japan | Verifying who is signing in | A request for signature-verification public keys (nothing that points at you) | At sign-in | Governed by the sign-in provider's own policy | Nothing is transferred if you do not sign in with LINE. |
| Google (Maps SDK) | United States | Drawing the map screen | Where the map is looking and how far it is zoomed, plus connection information; your device's position if you turn on the "my location" display | Every time you open the map screen — the app connects directly, bypassing our server | [Not yet decided: Google Maps SDK retention] | Nothing is transferred if you do not use the map screen. Withdrawing location permission in your device settings turns off the "my location" display (§9). |
| Japan Meteorological Agency | Japan | Looking up forecasts in Japan | A single area code (nothing that points at you) | When you check the weather for a place in Japan | Governed by the publisher of the open data | Nothing is transferred if you do not use weather information for Japan. |
| NAVITIME — not in use today | Japan (the reseller's country is [Not yet decided: confirm the country of the RapidAPI reseller]) | Looking up public transit routes in Japan | The coordinates of the start and end points, and the departure time | Once this feature is turned on, when you look up a route in Japan | [Not yet decided: NAVITIME retention] | Nothing is transferred at all until this feature is turned on. Even then, nothing is transferred if you do not use route guidance in Japan. |
This section covers what services built on generative AI are expected to disclose.
If the AI gives you an answer that is wrong or inappropriate, you can report it as follows.
We review what you send and use it to improve prompts and blocking rules.
AI answers are a starting point, not a guarantee. Hours, prices, and closing days change locally. Please confirm anything important with the original source.
This feature is off by default. It works only when the server configuration explicitly turns it on; if the setting is missing or unreadable, it does not turn on and simply stays off. What follows tells you in advance what applies once it is on.
X-AI-Personalization-Consent). Declining costs you nothing else; the rest of the Service works as before.DELETE /v1/ai/taste). Deleting your account deletes your taste data too (§11.6). [Not yet decided: decide where the in-app "delete my taste data" button lives]ℹ️ We deliberately avoid the claim that no location is ever collected. The accurate statement is "we use it on your device and never send it to our server".
[Not yet decided: legal review of whether the Korean Act on the Protection and Use of Location Information requires registration as a location information or location-based service provider]
We do not offer the account feature today. It applies from the moment the server configuration explicitly turns it on and the app ships with a sign-in method. Until then no sign-in entry point appears in the app, and the account endpoints on the server do not respond. What follows tells you in advance what applies once it is offered.
You can delete your account in the app (Settings → Account → Delete account). If you cannot install the app, ask through the contact point in §14.
What gets deleted
What stays after deletion, and why
We will not tell you that "everything is erased". Here is what actually stays.
When it happens, and why it is final
Cancel your subscription separately
Deleting your account does not cancel a subscription you started in the App Store or Google Play. Unless you cancel it, billing continues from the next renewal date. Cancel it yourself in the store where you bought it. We recommend cancelling before you delete your account.
You have the right to ask us to give you access to your personal information and to correct it, delete it, or stop processing it. Here is how that works in practice.
⚠️ Deleting the app is not the same as deleting your account. Deleting the app clears the data and the install identifier on your device, but your account on our server stays. To get rid of it, use account deletion (§11.6).
| What | How to exercise it |
|---|---|
| Data on your device, and the install identifier | Delete the app |
| Taste data | Use the delete function (§8.4), or ask through the contact point in §14 |
| Subscription status and usage counters | While signed out, ask through the contact point in §14 — we will need to confirm the request is yours, so [Not yet decided: decide the verification procedure, including how an identifier is submitted]. While signed in, account deletion covers it (§11.6) |
| Location permission | Withdraw the permission in your device settings (§9) |
| Ad consent | Reopen the consent form, or change it in your device settings (§10) [Not yet decided: decide the in-app path for reopening consent] |
| Access to your account information | In the app, view your account identifier, status, and creation time, plus the list of linked sign-in methods |
| Account deletion | Run it in the app (Settings → Account → Delete account, §11.6). If you cannot install the app, ask through the contact point in §14 |
| Sign out of all devices | Run it in app settings — every session issued up to that point is invalidated on the server immediately (§11.3) |
| Unlinking a sign-in method | Run it in the app (you cannot unlink the last one, §11.4) |
[Not yet decided: decide whether children under 14 may use the Service and how legal guardian consent is handled — must match the age rating declared to the stores]
If you need advice or dispute mediation about how personal information is handled, you can contact bodies such as the Personal Information Dispute Mediation Committee, the Korea Internet & Security Agency's Privacy Infringement Report Centre, the Supreme Prosecutors' Office Cyber Investigation Division, and the National Police Agency Cyber Investigation Bureau. [Not yet decided: confirm each body's contact details and URL on its official site at publication time]
We take the following measures.
For questions, complaints, or redress about how we handle personal information, contact us here.
We answer and act on what you send us without undue delay.
We have not settled the items below. We are listing them rather than hiding them. They need legal review and owner decisions, and the app cannot be submitted to the stores until they are resolved.
| No. | Item | Note |
|---|---|---|
| A-1 | Business name, representative, business registration number, address | §1 |
| A-2 | Privacy officer's name, contact, and department | §14 — a mandatory disclosure under Article 31 of the PIPA Enforcement Decree |
| A-3 | Effective date | Document header. The last updated date is recorded as August 2, 2026 |
| A-4 | https://travel-iko.pages.dev/en/legal/privacy-policy for English; Korean at /legal/privacy-policy, Japanese at /ja/legal/privacy-policy | |
| A-5 | Values still blank on the public account-deletion page — the developer name, the policy address, the contact channel, and the updated date are all empty across the Korean, Japanese, and English versions | They have to be filled in when this policy is finalised |
| A-6 | The privacy policy URL in the LINE channel console is blank | Enter it after publication |
| No. | Issue | What to do |
|---|---|---|
| B-1 | No automatic expiry is set on subscription status or usage counters | Decide a retention policy and build the destruction routine. Until then this policy has to say plainly that they are kept indefinitely; wording like "everything is destroyed automatically after a period" cannot be used (§4) |
| B-2 | Retention period for operational and error logs is unconfirmed | Check the infrastructure settings and state it in §4 |
| B-3 | Whether AI answers are stored or cached server-side is unconfirmed | Confirm, then finalise the sentence in §7.1 |
| B-4 | The path for reporting a bad answer is unconfirmed and unbuilt | The privacy-policy drafting guidance revised on April 24, 2026 (generative AI annex) requires a reporting method to be stated. At least one of an in-app path or an email address has to be settled (§7.3) |
| B-5 | In-app paths for the personalization consent UI and the taste-deletion button are unconfirmed | §8.3, §8.4 |
| B-6 | A case where a v1 statement quietly became false. §10 is corrected; syncing the store declarations remains | |
| B-7 | The real scope of scrubbing | Compare against the spec: which categories of personal information are removed, and how completely. Match the strength of the word "removed" to what the implementation actually does |
| B-8 | The meetup suggestion path sends the candidate place name, while other paths hold to a principle of not sending place names | Decide whether to keep the per-path distinction in §2.4 or to stop sending the name in code, so the two statements never conflict |
| B-9 | 🔴 After deletion the account record stays in a "deleted" state. Its retention and full destruction are undecided (the code has a "purged" status value, but nothing sets it) | Decide the retention policy and build the destruction routine. Tied to note 1 in §4 and to §11.6 |
| B-10 | 🔴 Deleting an account clears only the current month, previous month, today, and yesterday usage counters; earlier periods stay | Decide the policy (either build full deletion or state the retention). Note 2 in §4 |
| B-11 | Settle the wording for the Apple revocation token's retention and destruction (the value is cleared only when revocation succeeds) | The relevant row in §4 |
| B-12 | Session refresh never reaches the app — the server issues a new token, but the app does not store it, so the effective lifetime is fixed at 30 days from first issue. Compare against the "issues a fresh token" wording in §11.3 | Fix the app wiring, or adjust the wording |
| B-13 | How the irreversibility of a merge affects the rights to correction and deletion | Policy and legal review |
| B-14 | Subscription wording drifts — the account-deletion page and the app say different things (Korean 취소 vs 해지; Japanese サブスクリプション vs 定期購入). The app wording governs | All 3 language versions of this policy follow the app wording. Cleaning up the deletion page is a separate batch |
| B-15 | 🔴 The ad units were already switched to real commercial values — v1 §10 described them as "sample (test) values", and that statement had been false since July 18, 2026 | This v2 corrects the §10 wording. Syncing Apple App Privacy and Google Play Data safety remains (§16.4 D-2) |
| B-16 | The subscription status record includes a group identifier when a group entitlement is used | Reflected in §2.5, but whether a group identifier is personal information is a question for legal review (decide together with C-10) |
| B-17 | 🔴 The Maps SDKs (Google, NAVER) are called by the app directly, bypassing our server. We can neither observe nor control what passes at that moment | Pin down what each SDK actually handles from the vendors' own documentation and write it into §5 and §6. Until then the relevant cells in §5 stay marked as undecided |
| B-18 | 🔴 The app fetches festival photos straight from the Korea Tourism Organization's server, so your connection information reaches them directly. The statement in v1 and in earlier drafts of this v2 — that no personal information is involved in the TourAPI flow — was inaccurate because it overlooked the photo path, and this edition corrects it | Decide whether to proxy the photos through our server or to keep the current behaviour and disclose it |
| B-19 | The Japanese transit adapter (NAVITIME) is implemented but never actually called, because no credentials are injected | When it is turned on, change §5 and §6 from "not in use today" to the real state. Rewriting the policy before the feature goes live would make it false |
| B-20 | The affiliate references and link formats for all 7 booking partners are still temporary stand-in values | Once the contracts are signed, re-check what the links carry and update §5 |
| No. | Issue |
|---|---|
| C-1 | Final confirmation that Anthropic's commercial API does not train on customer data. §7.2 rests on that clause, so if we cannot obtain the supporting document, the sentence has to change |
| C-2 | Completeness of the overseas-transfer list — have counsel decide whether RevenueCat and Google (AdMob) count as overseas transfers and how to present them (third-party provision, entrustment, or overseas transfer). RevenueCat's country was confirmed as the United States on August 2, 2026 and is stated in §6; what remains is the presentation call |
| C-3 | Describing the recipients' level of protection (contractual safeguards, certifications) — for Apple 5.1.2(i)(d) and Article 28-8 of PIPA |
| C-4 | Overseas transfers under Japan's APPI: the duty to give the recipient's country and information about that country's personal information protection regime. Country names appear in every version; the regime detail belongs in the Japanese version |
| C-5 | Whether the Korean Act on the Protection and Use of Location Information applies — does a registration duty arise even though we never send coordinates to the server |
| C-6 | How we handle children under 14, and whether that matches the age rating declared to the stores |
| C-7 | How statutory retention duties for payments affect the retention periods in §4. The statute and its periods were confirmed on August 2, 2026 and are stated in §4; what remains is the single question of whether we count as the business under that Act for store-mediated payments |
| C-8 | Whether the governing-language clause in §1 is enforceable |
| C-9 | Whether the 5 social sign-in providers are third parties we provide data to, or processors we entrust it to — Korea and Japan may answer differently |
| C-10 | The legal character of the provider user reference (is it personal information; is it pseudonymised information). Decide the group identifier (B-16) alongside it |
| C-11 | Whether the GDPR applies — our own assessment is that it likely does not: we support Korean, Japanese, and English, we cover travel in Korea and Japan, we support no European currency, and we run no advertising or targeting aimed at European users. This is still a legal judgement. To leave that judgement open, this draft does not add a GDPR-specific section |
| C-12 | Article 28 of Japan's APPI — write the body text describing the recipient country's protection regime for consent-based overseas transfers (in the Japanese version) |
| C-13 | 🔴 We could not confirm the recent amendment to the PIPA Enforcement Decree — we could not check against the primary text whether the mandatory contents of a privacy policy changed. Recorded as unknown. Checking the original text before publication is mandatory |
| C-14 | 🔴 Route-search requests carry the coordinates of the start and end points to outside companies (TMAP today, NAVITIME later). Decide whether those coordinates are personal information, and whether they are personal location information under the Korean Act on the Protection and Use of Location Information (decide together with C-5) |
| C-15 | 🔴 The Maps SDKs connect from the app straight to each vendor. Decide whether that is a transfer to a third party by us or a connection made by you — the way §6 has to describe it depends on the answer |
| C-16 | Decide whether tapping an affiliate booking link is a transfer to a third party or merely offering a link, including whether the current decision to leave it out of §6 holds |
| C-17 | The registered company names, countries, and retention periods are unconfirmed for every company this audit newly listed: SK Telecom (TMAP), the Korea Meteorological Administration, the Japan Meteorological Agency, NAVITIME and its reseller, the Seoul Metropolitan Government, the Google Maps SDK, the NAVER Maps SDK, the Korea Tourism Organization, and the 7 affiliate partners |
| No. | Issue |
|---|---|
| D-1 | Reconcile the Apple App Privacy declaration with this policy — in particular, decide how to declare on the label a structure where the app uses location but never sends it to the server |
| D-2 | Reconcile the Google Play Data safety declaration with this policy — the collected/shared split, what the ad SDK handles, and the switch to commercial ads (B-15) |
| D-3 | Apple Guideline 5.1.2(i) — when personally identifiable information goes to a third-party AI, state (a) what data and (b) who receives it, obtain (c) explicit in-app permission before sending, and (d) describe in the policy what is collected, how, why, and how the recipient protects it. (a), (b), and (d) are covered in §2.4 and §6; the in-app prior-permission UI and its wording for (c) still need to be confirmed |
| D-4 | The course narration path has no free-form text and sends only identifiers and code values, so it may fall outside "sending personally identifiable information" under 5.1.2(i) — but we could not confirm any exemption. Consider adding in-app disclosure to that path as well, to be safe |
| D-5 | When ads go commercial, re-verify that the UMP and ATT consent flow matches the order stated here (UMP → ATT) |
| D-6 | Brand name — the store display name, the Play Data safety entry, and this policy all have to agree |
| D-7 | Reclassify Apple App Privacy — accounts tie some items to a person, so the "Data Linked to You" split has to be judged again |
| D-8 | Settle the answers to Google Play's 2 data-deletion questions and the web deletion-request URL |
| D-9 | 🔴 Google Play requires that *"deleting an account must also delete the user data associated with it, and temporary deactivation does not count as deletion"* ↔ our minimal account record stays in a "deleted" state (B-9). We need a legal and policy decision on how to declare and explain that tension |
| D-10 | 🔴 Apple 5.1.1(v) requires token revocation alongside a deletion request when Sign in with Apple is offered, but no credentials are loaded on the server today, so no request goes out (§11.7) |
| D-11 | We could not see the actual Apple and Google declaration forms (we are not enrolled in the Apple Developer Program). Because we could not confirm the full category lists from a primary source, those cells in store-privacy-declarations.md are left as "unconfirmed" |
| D-12 | YEOHAENGIKO in English and has to be changed to Iko Travel, and the store listings have to match these three |
| D-13 | 🔴 Decide how to declare every third-party SDK shipped in the app (Google Maps, NAVER Maps, Google AdMob) and every outside server the app connects to directly (the Korea Tourism Organization photo server, the 7 affiliate links) under Apple App Privacy and Google Play Data safety, in the third-party SDK and data-sharing sections |
*This policy is a draft and is not yet in force. The app cannot be submitted to the stores until the items in §16 are resolved and a lawyer has reviewed it.*