🎣 KOUKKU.App koukku.app

KOUKKU – Tietosuojakäytäntö (v1)

Voimassa: 2.6.2026 alkaen Versio: 1.3
Rekisterinpitäjä: Caphan Oy, aputoiminimi CodeHan Oy, Finland (Y-tunnus: 3418290-7) Yhteyshenkilö: Captain Koukku, captain@koukku.app

Versio 1.3 (2.6.2026): laajennettu maksuhistorian käsittely kattamaan uusiutuvat Plus- ja Pro-tilaukset — tilaustila ja kaupan tapahtuma-/tilaustunniste, palvelinpuolen kuittivahvistus sekä palvelimien väliset ilmoitukset (Apple App Store Server Notifications V2, Google Real-Time Developer Notifications) alikäsittelijöinä.

Versio 1.2 (24.5.2026): lisätty kohdat kulutettavista sovellussisäisistä ostoksista (kultakolikkopaketit) — ostokuittien palvelinpuolen vahvistus, Apple App Store Server API ja Google Play Developer API alikäsittelijöinä, sekä maksuhistorian käsittelytarkoitus (ostosten toimittaminen, päällekkäisten hyvitysten estäminen).

Tämä on KOUKKU-sovelluksen virallinen tietosuojakäytäntö. Englanninkielinen käännös löytyy alaotsikon English version alta. Mikäli käännösten välillä on ristiriita, suomenkielinen versio on määräävä.


1. Mitä KOUKKU on

KOUKKU on suomalainen mobiilisovellus, jolla harrastajat tallentavat saaliita, seuraavat kalastusreissujen reittiä ja osallistuvat kilpailuihin. Sovellus on suunniteltu offline-first -periaatteella: kaikki saaliit, reitit ja kuvat tallentuvat ensin paikallisesti puhelimellesi, ja synkronoituvat KOUKKU-pilveen vain kun olet itse niin valinnut.

KOUKKU on suomalaisen Caphan Oy:n omistama (aputoiminimi CodeHan Oy). Sovellus ja palvelu noudattavat suomalaista lainsäädäntöä, EU:n yleistä tietosuoja- asetusta (GDPR, 2016/679) ja Apple App Storen sekä Google Play Storen ohjelmistovaatimuksia.

2. Mitä tietoja keräämme

2.1 Pakollinen tilitieto

2.2 Sijaintitiedot

2.3 Saalistiedot

2.4 Kilpailutiedot

2.5 Tekniset tiedot

2.6 Maksuhistoria (sovellussisäiset ostokset)

KOUKKU myy kulutettavia kultakolikkopaketteja (10 / 50 / 150 kolikkoa) sovelluksen sisällä. Kun ostat paketin, maksun käsittelee Apple App Store tai Google Play. Heidän järjestelmänsä toimittaa KOUKKUlle allekirjoitetun ostokuitin, josta luetaan ja tallennetaan:

Lisäksi KOUKKU tarjoaa uusiutuvat Plus- ja Pro-tilaukset (tuotteet koukku_plus_monthly, koukku_plus_annual, koukku_pro_monthly, koukku_pro_annual). Tilauksista KOUKKU lukee ja tallentaa ainoastaan:

Tilauksen tila pidetään ajantasaisena Applen ja Googlen lähettämillä palvelimien välisillä ilmoituksilla (ks. §6.2). KOUKKU ei näe korttitietojasi, pankkitiliäsi, laskutusosoitettasi eikä muita maksupäätelaitteen tietoja — Apple ja Google käsittelevät kaiken maksuliikenteen omissa järjestelmissään ja toimittavat KOUKKUlle vain ostotapahtuman vahvistuksen ja tilauksen tilan.

3. Mihin tietoja käytetään

Tarkoitus Pakollinen / vapaaehtoinen Oikeusperuste
Saaliiden tallennus ja näyttö Pakollinen Sopimuksen täyttäminen
Sijainnin näyttö kartalla Pakollinen, kun käytät sovellusta Suostumus (käytön aikana)
Reitin ja paikkojen tallennus session aikana Vapaaehtoinen Suostumus (“Salli aina”)
Kilpailuiden hallinta ja sijoitukset Pakollinen kilpailussa Sopimuksen täyttäminen
Eheystarkastus (Nightwatch) Pakollinen Oikeutettu etu (huijausten ehkäisy)
Kaatumisraportit (Sentry) Pakollinen Oikeutettu etu (palvelun toimivuus)
Markkinointiviestit Vapaaehtoinen Suostumus
Tekoälypohjainen tekstin ja metatietojen käsittely (saalis, kilpailut, vinkit) Vapaaehtoinen / ominaisuuden mukaan Suostumus tai oikeutettu etu (käyttötapauksen mukaan); rikastuspyynnöt ilman PII:tä (ks. §4 ja §6.1)
Sovellussisäisten ostojen toimittaminen ja päällekkäisyyden esto Pakollinen, jos ostat paketin Sopimuksen täyttäminen (kulutettavien hyödykkeiden toimitus)
Tilauksen (Plus/Pro) tilan ylläpito ja käyttöoikeuksien määrittäminen Pakollinen, jos tilaat Sopimuksen täyttäminen (tilauspalvelun toimitus)

4. Mihin tietoja EI käytetä

5. Säilytysajat

Tieto Säilytetään
Sähköpostiosoite & profiili Tilin elinajan
Saaliit Tilin elinajan, voit poistaa yksittäisesti milloin vain
Raaka GPS-reittiloki (TrailPoint) Session loppuun asti, sitten poistetaan paikallisesti
Session yhteenvedot (km, alueavaimet) Tilin elinajan
Kaatumisraportit (Sentry) 90 päivää
Markkinointi-suostumukset Kunnes peruutat
Maksuhistoria (IAP-tapahtumatunniste) Tilin elinajan (kirjanpito ja päällekkäisyyden esto)
Tilauksen tila & tilaustunniste (Plus/Pro) Tilin elinajan (käyttöoikeudet ja kirjanpito)

6. Kenelle tietoja luovutetaan

Tietoja säilytetään ja prosessoidaan seuraavissa palveluissa:

6.2 Sovellussisäisten ostosten vahvistus

Kun ostat kultakolikkopaketin sovelluksen sisältä, ostokuitti vahvistetaan palvelinpuolella seuraavilla rajapinnoilla:

Vahvistuspyyntö ei sisällä maksutietojasi (kortit, pankkitilit, laskutusosoite). Apple ja Google säilyttävät nämä omissa järjestelmissään. KOUKKU tallentaa vahvistuksen jälkeen ainoastaan tuotetunnisteen, tapahtumatunnisteen idempotenssia varten ja kuitin alkuperätilan (tuotanto / sandbox).

Tilaukset (Plus / Pro). Tilauksen elinkaaren tilan (kokeilu → aktiivinen → uusiutuminen → peruutus / vanhentuminen / hyvitys) KOUKKU pitää ajantasaisena samojen rajapintojen lisäksi palvelimien välisillä ilmoituksilla:

Näiden ilmoitusten perusteella KOUKKU päivittää tilauksesi tilan ja käyttöoikeudet. Ilmoitukset sisältävät tilaus- ja tapahtumatunnisteita ja tilatietoja — eivät maksuvälineen tietoja.

6.1 Tekoälypalvelut (usean toimittajan reititys)

KOUKKUn tekoälyominaisuudet (mm. saaliin tekstirikastus, kilpailuihin liittyvä tekstin tuotanto, AI-vinkit) eivät ole sidottuja yhteen ainoaan malliin tai toimittajaan sovelluskoodissa. Pyynnöt lähetetään Supabase Edge Functions -kerroksen kautta, jossa voidaan valita
kulloinkin sopiva palveluntarjoaja (saatavuus, laatu, kustannus).

Saaliin tekstirikastus: ulkoiselle mallille lähetettävästä pyynnöstä poistetaan henkilötunnistettavat tiedot (PII) ennen lähetystä; payload sisältää vain minimoidun, tehtävän kannalta välttämättömän sisällön (ks. §4). Muissa tekoälypoluissa (esim. kilpailuanalyysi, vinkit) sovelletaan vastaavaa minimointia ja pseudonymisointia kullekin ominaisuudelle; tarkempi tekninen rajaus dokumentoidaan kehitysprosessissa ja päivitetään tähän käytäntöön tarvittaessa.

Mahdolliset tekoälykäsittelijät, joille minimoitu, henkilöön uudelleenliittämätön kyselysisältö voidaan välittää:

Toimittaja Rooli
Google (Gemini / Google AI Studio tai Vertex AI) Voidaan käyttää, kun reititin tai konfiguraatio valitsee Gemini-mallin.
OpenAI (USA) Voidaan käyttää, kun reititin tai konfiguraatio valitsee OpenAI-mallin.
Anthropic (USA) Voidaan käyttää, kun reititin tai konfiguraatio valitsee Anthropic-mallin.

Käytännön reititys tallennetaan ja seurataan palvelun sisäisesti (mm. kustannus- ja laatuseuranta). Käyttäjälle ei tarvitse valita palveluntarjoajaa käsin; valinta on KOUKKUn tekninen ja taloudellinen päätös, joka noudattaa tietosuoja-asetuksia (mm. oikeusperuste ja tarpeellisuus kullekin käsittelylle).

Kaikki kolmannen osapuolen palvelut on valittu siten, että EU:n tietosuojavaatimukset täyttyvät (DPA-sopimukset, EU-vakiosopimuslausekkeet tarvittaessa, Schrems II -arvio 2024). Yhdysvalloissa sijaitsevien tekoälytoimittajien osalta henkilötietojen siirto perustuu asianmukaisiin takuunmekanismeihin (esim. vakiosopimuslausekkeet) ja tarpeellisuuteen.

Tekoälyn tuottama sisältö voi olla virheellistä tai harhaanjohtavaa eikä se ole ammattineuvontaa. Tekoälysisältöä koskevat rajoitukset ja käyttäjävastuut on kuvattu tarkemmin Käyttöehdoissa (jakso Tekoälyyn perustuva sisältö ja automaattiset ehdotukset).

7. Sinun oikeutesi (GDPR)

Sinulla on oikeus:

  1. Tarkastaa mitä tietoja sinusta on tallennettu.
  2. Korjata virheelliset tiedot.
  3. Poistaa tilisi ja kaikki siihen liittyvät tiedot.
  4. Siirtää tietosi toiseen palveluun (data export).
  5. Peruuttaa suostumus milloin vain (sijainti, markkinointi).
  6. Vastustaa käsittelyä, joka perustuu oikeutettuun etuun.
  7. Tehdä valitus Tietosuojavaltuutetun toimistolle (https://tietosuoja.fi).

Suoraviivaisin tapa: avaa Asetukset → Profiili → “Pyydä tietojen vienti” tai “Poista tilini”, tai lähetä viesti privacy@koukku.app. Vastaamme 30 päivän sisällä.

8. Lasten käyttö

KOUKKUa ei ole suunnattu alle 13-vuotiaille. Jos olet alle 16-vuotias, pyydä huoltajaltasi suostumus ennen tilin luomista (GDPR:n vähimmäisikä Suomessa).

9. Muutokset käytäntöön

Päivitämme tätä käytäntöä, jos sovelluksen toiminnallisuus muuttuu olennaisesti tai laki sitä vaatii. Olennaiset muutokset näkyvät sovelluksessa hyväksyntänäytöllä; muut muutokset ilmoitetaan vain tällä sivulla. Versionumero ja päivämäärä yllä kertovat aina viimeisimmän voimassa olevan version.


English version

Effective: 2 June 2026 Version: 1.3
Data controller: Caphan Oy, auxiliary company name CodeHan Oy, Finland Contact: Captain Koukku, captain@koukku.app

Version 1.3 (2 June 2026): extended Purchase History to cover auto-renewable Plus and Pro subscriptions — subscription status and the store transaction/order id, server-side receipt verification, and server-to-server notifications (Apple App Store Server Notifications V2, Google Real-Time Developer Notifications) as sub-processors.

Version 1.2 (24 May 2026): added coverage for consumable in-app purchases (gold-coin packs) — server-side receipt verification, Apple App Store Server API and Google Play Developer API as sub-processors, and the Purchase History data category (purpose: deliver paid coins and prevent duplicate redemption).

This is the official privacy policy for the KOUKKU mobile application. The Finnish version above is the authoritative text; this English translation is provided for accessibility. In case of conflict, the Finnish version prevails.

1. What KOUKKU is

KOUKKU is a Finnish mobile app for recreational anglers to log catches, record fishing-trip trails, and participate in competitions. The app is offline-first — all catches, trails, and photos are stored locally on your phone first, and only sync to the KOUKKU cloud when you opt in.

2. What we collect

Mandatory: working email, username. Location: precise GPS while you use the app, and
during an active fishing session (also when the screen is locked, only if
you opt in). Catch data, competition data, technical telemetry, and
anonymised area-activity logs. App does not collect users true identity and will not enforce it. User can freely choose hte username used in this context.

Purchase history (in-app purchases): when you buy a consumable gold-coin pack (10 / 50 / 150 coins) inside the app, Apple App Store or Google Play processes the payment and delivers KOUKKU a signed receipt. We read and store only: the product identifier (e.g. koukku_coins_50), the unique transaction identifier (Apple transactionId / Google purchaseToken) used as an idempotency key to prevent double-credit, and the receipt’s storefront environment (Apple Sandbox/Production or Google purchaseType) so that TestFlight and sandbox transactions are not credited as production coins. We do not see your card number, bank account, billing address, or any other payment-instrument data — Apple and Google handle all of that in their own systems and only deliver KOUKKU a confirmation that the purchase occurred.

KOUKKU also offers auto-renewable Plus and Pro subscriptions (products koukku_plus_monthly, koukku_plus_annual, koukku_pro_monthly, koukku_pro_annual). For subscriptions we read and store only: the product id and tier (Plus / Pro) and period (monthly / annual); the subscription status (e.g. trialing, active, canceled, expired) and current-period end date used to determine your entitlements; and the store transaction/order id (Apple originalTransactionId / Google purchaseToken) as a unique key. The status is kept current via Apple/Google server-to-server notifications (see §6.2). As with coins, we never see your payment-instrument data.

3. What we use it for

Catch storage, map display, in-session trail recording (opt-in), competition management, integrity analysis (Nightwatch), crash reports, marketing (opt-in), and AI-assisted text/metadata processing where you use those features (provider may be Google, OpenAI, or Anthropic — see §6.1). Catch text enrichment requests are built without PII in the outbound payload (see §4 and §6.1).

4. What we do NOT do

5. Retention

Account data: lifetime of the account. Raw trail points: deleted at session end. Session aggregates: lifetime of account. Crash reports: 90 days.

6. Sub-processors

Supabase (EU region), Mapbox, Sentry, Apple/Google (push delivery and, for users who buy a coin pack, in-app purchase receipt verification — see §6.2).

6.2 In-app purchase verification

When you buy a coin pack, KOUKKU’s Edge Function verifies the receipt server-side via:

Verification requests do not include your payment data (cards, bank accounts, billing address). Apple and Google retain those in their own systems. After verification KOUKKU stores only the product ID, the transaction ID (for idempotency), and the receipt’s environment flag (production vs. sandbox).

Subscriptions (Plus / Pro). In addition to the APIs above, KOUKKU keeps a subscription’s lifecycle status (trial → active → renewal → cancel / expiry / refund) current via server-to-server notifications:

KOUKKU updates your subscription status and entitlements from these notifications. They contain subscription/transaction identifiers and status information — not payment-instrument data.

6.1 AI services (multi-provider routing)

KOUKKU’s AI features (including catch text enrichment, competition-related copy, AI hints) are not hard-coded to a single vendor in the application. Requests are sent through Supabase Edge Functions, which may select the appropriate model and provider for cost, quality, and availability.

Catch text enrichment: PII is removed from the outbound request before any external model is called; the payload is minimised per §4. Other AI paths (e.g. competition analysis, hints) apply the same minimisation and pseudonymisation principles per feature; technical scope is maintained in development docs and reflected here when it changes.

Processors to which minimised, non–re-identifiable query content may be sent:

Vendor Role
Google (Gemini / Google AI Studio or Vertex AI) May be used when the router or configuration selects an Gemini model.
OpenAI (USA) May be used when the router or configuration selects an OpenAI model.
Anthropic (USA) May be used when the router or configuration selects an Anthropic model.

Routing and outcomes are logged internally for cost and quality control. You do not choose the provider manually; selection is a technical and commercial decision by KOUKKU, subject to GDPR principles (lawful basis and necessity).

All sub-processors are chosen to meet EU data-protection requirements (DPAs, SCCs where needed, Schrems II assessment 2024). Transfers to US-based AI vendors rely on appropriate safeguards (e.g. standard contractual clauses) and necessity.

AI-generated content may be incorrect or misleading and is not professional advice. Further limitations and user responsibilities are set out in the Terms of Service (section AI-assisted content and automated suggestions).

7. Your rights (GDPR)

Access, rectification, erasure, portability, withdrawal of consent, objection, complaint to the Finnish Data Protection Ombudsman (tietosuoja.fi). Use Settings → Profile → “Export my data” or “Delete my account”, or email privacy@koukku.app.

8. Children

Not directed at users under 13. Under 16 requires guardian consent (GDPR Finnish minimum age).

9. Changes

Material changes are surfaced in-app via a re-acceptance dialog; other changes appear only on this page.