Fleet

Template v0.1 · 17 October 2026

TEMPLATE — TO BE REVIEWED BY A LAWYER BEFORE SIGNING. This is a draft for the VesselSOS Fleet pilot. It is not legal advice and must not be signed until a lawyer has reviewed it (internal checklist: docs/fleet-legal-review.md in the site repository). Text in [square brackets] is to be filled in or decided.

Data processing agreement (GDPR Art. 28) — VesselSOS Fleet

Between

[Rental company legal name], registry code [●], address [●], represented by [name, position] (the Controller, “you”),

and

Innovesting OÜ, registry code 14903935, [registered address], Estonia, represented by [name, position] (the Processor, “we”), provider of VesselSOS and VesselSOS Fleet.

Each a Party, together the Parties.

1. Background and scope

1.1. The Controller uses VesselSOS Fleet (“Fleet”): a web dashboard, server functions, the Fleet API and optional integrations with which the Controller checks customers out on rental crafts, sees each rental on a map from the customer’s VesselSOS app between the customer’s acceptance and the return, receives alerts and help requests, and documents returns and incidents. Fleet is provided under the VesselSOS Terms of Use, section 12 “VesselSOS Fleet” (the “Terms”).

1.2. This agreement governs the processing of personal data that we carry out on the Controller’s behalf when providing Fleet (“Controller Data”), as described in Annex 1. It forms part of the Terms. If this agreement and the Terms conflict on data protection, this agreement prevails.

1.3. Outside the scope of this agreement — processing for which Innovesting OÜ is itself the controller, described in the VesselSOS privacy notice (vesselsos.com/privacy/):

1.4. Terms used here (personal data, processing, controller, processor, sub-processor, personal data breach, data subject, supervisory authority) have the meaning given in Regulation (EU) 2016/679 (“GDPR”).

2. Controller’s instructions and responsibilities

2.1. We process Controller Data only on the Controller’s documented instructions, including with regard to transfers to third countries, unless EU or Member State law requires otherwise; in that case we tell the Controller before processing unless that law forbids it.

2.2. The Controller’s documented instructions are: this agreement and its annexes; the Controller’s use and configuration of Fleet (its settings, zones, rules, staff and roles, connected integrations, API keys and webhooks, and each action its staff take); and further written instructions agreed by the Parties. We tell the Controller at once if we think an instruction infringes data protection law.

2.3. Retention as instruction. The Controller instructs us to apply the retention periods in Annex 1, section F, which Fleet applies automatically. A different period (for example longer retention of rental records for insurance) is a change of instruction that the Parties agree in writing; [whether and how this can be configured is open].

2.4. The Controller is responsible for: having a legal basis for the processing; informing its customers (Art. 13/14 GDPR) about its processing, including that their position is visible to its staff from acceptance until return and that after an SOS or help request the track is kept for 30 days for an incident report; the lawfulness of its rental terms, zones and messages; and not entering special categories of data (Art. 9 GDPR), such as health data, into notes, rental terms or return checks.

3. Processor’s obligations

3.1. Confidentiality. Only persons who need access to provide, support or secure Fleet can access Controller Data, and they are bound by confidentiality.

3.2. Security. We implement the technical and organisational measures in Annex 2 (Art. 32 GDPR). We may change them as long as the overall level of protection does not fall.

3.3. Sub-processors. The Controller gives general authorisation to the sub-processors listed in Annex 3. We tell the Controller by email at least [30] days before adding or replacing a sub-processor; the Controller can object on reasonable data protection grounds within that period, and if the Parties cannot resolve the objection, the Controller can end its use of Fleet. We impose the same data protection obligations on each sub-processor by contract and remain responsible for them towards the Controller.

3.4. Data subjects’ rights. Taking into account the nature of the processing, we help the Controller answer requests from data subjects (access, rectification, erasure, restriction, portability, objection). Requests we receive directly about a rental we forward to the Controller without undue delay and do not answer on its behalf unless it asks us to. Fleet itself gives the Controller access to rental records and incident reports in the dashboard.

3.5. Customers’ VesselSOS accounts. When a customer deletes their VesselSOS account (an action under section 1.3(a)), the link between the account and the Controller’s rental records is removed; the rental records stay, without that link. [Lawyer: confirm this is acceptable for the Controller.]

3.6. Assistance. We help the Controller with security, breach notification, data protection impact assessments and prior consultation (Art. 32–36 GDPR), taking into account the nature of the processing and the information available to us.

3.7. Personal data breaches. We notify the Controller without undue delay, and where feasible within [48] hours, after becoming aware of a personal data breach affecting Controller Data, with the information available at that time (nature of the breach, categories and approximate number of data subjects and records, likely consequences, measures taken or proposed, contact point), and supplement it as more becomes known.

3.8. Records. We keep a record of processing activities carried out on behalf of the Controller (Art. 30(2) GDPR).

4. International transfers

4.1. Controller Data is stored in the European Union (Supabase, Stockholm region). Some sub-processors in Annex 3 process data in the United States (notifications, SMS, parts of the web hosting). Such transfers rely on the European Commission’s Standard Contractual Clauses (Decision (EU) 2021/914), module three (processor to processor), with supplementary measures where needed. [Lawyer: confirm module and transfer impact assessment.]

5. Audits and information

5.1. We make available to the Controller the information necessary to demonstrate compliance with Art. 28 GDPR, including this agreement’s annexes and, on request, a written description of our security measures.

5.2. The Controller may audit compliance, itself or through an independent auditor bound by confidentiality, no more than once in 12 months (or after a breach), on [30] days’ written notice, during business hours and without disturbing the operation of the service or other customers’ data. Each Party bears its own costs. We may answer first with written information if that is sufficient.

6. Duration, ending, deletion

6.1. This agreement runs as long as we process Controller Data for the Controller.

6.2. When the Controller stops using Fleet, the Controller can export what it needs (rental records through the dashboard and the Fleet API) during [30] days. After that we delete the Controller Data, including copies, within [30] days, unless EU or Member State law requires us to keep it. Backups are overwritten within 30 days in the normal backup cycle. [Open: there is no automated operator-deletion function yet — deletion on ending is a manual process.]

6.3. Retention periods in Annex 1 continue to apply until deletion.

7. Liability and other terms

7.1. Liability under this agreement follows the Terms (section 07 and section 12 “Liability”), except where Art. 82 GDPR or other mandatory law provides otherwise.

7.2. Estonian law applies. The courts of Estonia have jurisdiction [Lawyer: Harju County Court?].

7.3. Changes to this agreement must be in writing (email is enough if both Parties confirm).

Signatures

For the ControllerFor the Processor — Innovesting OÜ
Name:Name:
Position:Position:
Date:Date:
Signature:Signature:

Annex 1 — Details of the processing

A. Subject matter and duration. Providing VesselSOS Fleet to the Controller for the duration of its use of Fleet (section 6).

B. Nature and purpose. Storage, retrieval, display, transmission and deletion of data needed to: identify the customer at check-out; send the rental offer to the customer’s app; show each accepted rental on the Controller’s live map and track until return; raise alerts (out of zone, late, low battery, help request, SOS) and send them to the Controller’s staff by dashboard, push notification and — for SOS — SMS; let staff message customers and extend rentals; record the return check; produce the rental log, evening overview and incident reports; import bookings from the Controller’s booking systems and the Fleet API; and send rental events to the Controller’s webhooks and booking systems.

C. Categories of data subjects.

  1. The Controller’s customers (renters) who accept a rental in the VesselSOS app, and customers named in bookings that the Controller imports.
  2. The customer’s emergency contact (one person, while the rental runs).

D. Categories of personal data.

DataWhen
Customer’s first name and phone number (masked before acceptance, full after)From the QR scan / sticker scan; full number only while the rental is active
One emergency contact of the customer: name, phone numberOnly while the rental is active; not copied into the rental record
Positions: time, latitude, longitude, speed, course, accuracy, phone batteryOnly positions recorded from acceptance until return (about every 30 s; every 5 s during an SOS)
Rental record: craft, times (offered, accepted, starts, due, returned), number of people, staff note, source, extensions, help request time and reason, SOS time, alerts acknowledged, messages sent (fixed texts), return check (damage yes/no, damage note ≤ 500 characters, fuel level, photo markers; photo upload not built yet), summary (duration, distance, top speed, minutes late)For the life of the record (section F)
Bookings imported from the Controller’s booking system or the Fleet API: customer name, phone, email, craft type, item, times, notes, external booking referenceUntil 90 days after the booking date
Event log (offered, accepted, declined, cancelled, expired, extended, message, help, SOS, out of zone, late, battery, ack, damage, returned), with the staff user who acted12 months

No special categories of data are intended to be processed. The Controller must not enter them in free-text fields (section 2.4).

E. Who can see what. The Controller’s staff, by role: owner (everything, including settings, staff, keys and integrations), staff (rentals, craft status, pausing check-outs), rescue (read, message, acknowledge alerts). Before acceptance, staff see only the customer’s first name and masked phone number, never a position. After return, positions are no longer shown on the live map. Positions, tracks, the customer’s phone number and emergency contacts never leave through the Fleet API, webhooks or the Processor’s admin console.

F. Retention (applied automatically; daily job at 03:15 UTC unless stated).

DataRetention
Positions of a rentalDeleted when the craft is marked returned
Rental nobody marked returnedClosed automatically 72 h after its due time (same deletion)
Positions of a rental with an SOS or help requestKept 30 days after return for the incident report, then deleted; never shown on the live map after return
Rental recordAfter 12 months anonymised: customer link, guest name and phone, staff note and damage note removed; the anonymous record stays for the Controller’s books
Event log12 months
Rental QR tokens / sticker scansValid 10 / 15 min; deleted after 1 day
Imported booking drafts90 days after the booking date
Outbox (deliveries to webhooks / booking systems)30 days
Rate-limit log2 days
BackupsOverwritten within 30 days

Annex 2 — Technical and organisational measures

Hosting and encryption

Access control in the database

Authentication and secrets

Abuse protection

Processor’s own staff

Data minimisation and retention

Incidents and continuity

Annex 3 — Sub-processors

Sub-processorServiceDataLocation / transfer basis
Supabase Inc.Database, authentication, server functions, secrets vault, sign-in emails [until a custom SMTP provider is chosen; that provider is then added here]All Controller DataEU (Stockholm region); [SCCs for any access from outside the EEA]
Vercel Inc.Hosting of the Fleet dashboard and website (fleet.vesselsos.com)Data passing through the dashboard in staff browsers’ requestsEU / US · SCCs
650 Industries, Inc. (Expo)Push notification delivery to customers (offer, message, extension, return) and to staff (alerts)Push token, notification text (operator name, craft code, customer’s first name, alert type)US · SCCs
Apple Inc. (Apple Push Notification service); Google LLC (Firebase Cloud Messaging, Android only)Delivery of push notifications to devicesAs aboveUS · SCCs
Twilio Inc.SMS on SOS to the phone number a staff member setStaff phone number, craft code, customer’s first name, dashboard link (no position)US / global routing · SCCs

Not sub-processors (no Controller Data):

Connected by the Controller (the Controller’s own providers, not our sub-processors):