Schedule 7 — Data Processing Particulars
This is Schedule 7 to the Fleet Partner Agreement ("FPA"). It is the document referred to in clause 15.2 FPA: "In respect of each category of Personal Data processed via the Platform, the controller/processor allocation is as set out in Schedule 7." The list of schedules describes it as "Controller/processor allocation per data category; categories of data subjects and Personal Data; security measures; sub-processors; cross-reference to the DPA." This document supplies exactly that.
It requires no separate acceptance. It becomes binding through the signed Fleet Partner Agreement. There is no tick box for it.
It is the authoritative allocation. The privacy notices (datenschutz, datenschutz-fahrer,
datenschutz-partner) summarise the allocation for the respective data subjects. Where a summary
and this Schedule differ on an individual category, this Schedule prevails — the notices only
describe it.
1. Parties
- Emaride EU S.à r.l., société à responsabilité limitée under Luxembourg law, represented by its sole manager Ramez Mohamad Alkhalaf, Luxembourg ("Emaride"). Lead supervisory authority: CNPD, Luxembourg (one-stop shop, Art. 56 GDPR).
- The fleet partner named in the Fleet Partner Agreement ("Fleet Partner"), with the supervisory authority competent for it.
2. Separate Controllers — Art. 26 GDPR Expressly Excluded
Each party determines the purposes and means of its own processing itself and on its own responsibility. There is no joint determination of purposes and means between Emaride and the Fleet Partner.
Art. 26 GDPR (joint controllership) therefore does not apply, and no arrangement under Art. 26(1) is concluded. The parties expressly exclude joint controllership. Accordingly there is no joint allocation of responsibilities to be determined and no essence of an arrangement to be made available to data subjects under Art. 26(2).
| Party | Own purposes |
|---|---|
| Emaride | Operating the Platform, brokering rides, calculating and displaying the price, checking the approval conditions, invoicing commission and platform fees, safety and fraud prevention, compliance with its own legal obligations |
| Fleet Partner | Performing the transport contract in its own name, engaging and deploying drivers, duty and shift planning, payroll and social security, working-time records, its own tax obligations, its own obligations under transport law |
The transfer of data between the parties is therefore a controller-to-controller transfer and not processing on behalf of a controller under Art. 28 GDPR. The consequences are deliberate and are stated here so that neither party assumes the other's position:
- Each party needs its own legal basis for its own processing and bears responsibility for it.
- Each party fulfils its own information duty under Arts. 13 and 14 GDPR towards the data subjects it processes.
- Requests from data subjects are answered by the party that processes the data for its own purpose. The other party forwards the request and names the responsible point of contact.
- A complaint about one party goes to the supervisory authority competent for that party.
- Each party is liable under Art. 82 GDPR for its own processing. There is no chain of instructions that shifts that liability.
Where a party does process on the other's instructions, the data processing agreement
dpa-fleet-partner applies to that processing alone (clause 15.2 FPA). Clause 3 below states,
for each category, whether that is the case. As at this version it is the case for no
category of the ordinary Platform operation.
Why this is spelled out: a de facto assumption of joint controllership would create obligations under Art. 26(1) and (2) and a joint responsibility towards data subjects that the processes of neither party support. Naming the allocation is cheaper than litigating it afterwards.
3. Allocation per Data Category
| Data category | Data subjects | Role of Emaride | Role of the Fleet Partner | Basis for the transfer |
|---|---|---|---|---|
| Passenger ride data — pickup and drop-off address and coordinates, time, status, ride options, fare | passengers | controller (brokerage, price, billing, safety) | separate controller (performing the transport contract, dispatch, its own records) | Art. 6(1)(b) GDPR — necessary to perform the transport contract that the Fleet Partner carries out |
| Passenger identification for the ride — first name, verification status of the ride code (see clause 4 for what is actually shown) | passengers | controller | separate controller, restricted to carrying out the individual ride | Art. 6(1)(b) GDPR |
| Live location of the driver and the vehicle during an active ride | drivers (and, indirectly, passengers through the destination) | controller (matching, arrival estimate, disclosure to the passenger) | separate controller (fleet overview, dispatch, its obligations as employer or principal) | Art. 6(1)(b) and (f) GDPR — performance of the ride and legitimate interests in dispatch and safety |
| Driver master data and records — name, contact details, driving licence, identity document, police clearance certificate where required (note at the end of this clause), licence validity and status | drivers | separate controller for the approval check | controller as employer or principal (personnel file, engagement, deployment) | Art. 6(1)(c) GDPR — clauses 5.1 and 5.2 FPA, transport and licensing law obligations of both parties |
| Vehicle data and vehicle records — registration, insurance, technical inspection, category, colour, licence plate | drivers; the keeper, where a natural person | separate controller for the approval check | controller as keeper or user of the vehicle | Art. 6(1)(c) GDPR — clause 5 FPA, licensing and insurance obligations |
| Settlement and commission data — fares, commission, platform fees, payouts, chargebacks, invoices | contact persons; drivers, where a natural person carries out the ride | separate controller (own accounting and tax obligations) | separate controller (own accounting, tax, and payroll obligations) | Art. 6(1)(c) GDPR — statutory accounting and retention obligations of each party in its own right |
| Penalties, trainings, ratings, quality measures | drivers | controller (quality and safety of the Platform, contractual measures) | recipient as separate controller, for its own measures as employer or principal | Art. 6(1)(f) and (b) GDPR — legitimate interests in safety and quality, and performance of the FPA |
| Contact person data of the Fleet Partner — account, contract, tax and invoicing details, bank details, link to the payment provider | contact persons of the Fleet Partner (owner, manager) | controller | separate controller for its own personnel and organisational data | Art. 6(1)(b) and (c) GDPR — performance of the FPA and statutory obligations |
| Support tickets and chat content | whoever opens or is named in the ticket | controller | separate controller for the tickets it opens itself | Art. 6(1)(b) and (f) GDPR |
| Log data — change log, login attempts with IP address | all Platform users | controller | no transfer — the Fleet Partner receives no log data | not applicable |
In none of these categories is one party the processor of the other. Wherever the table says
"separate controller", Art. 28 GDPR does not apply and dpa-fleet-partner is not engaged. It is
engaged only in the cases listed in clause 1 of that document, none of which forms part of the
ordinary operation of the Platform.
Police clearance, medical fitness and company records. Emaride can require a police clearance
certificate for every driver as a platform-wide minimum standard; the requirement is switched on
by default. While it is switched on, the certificate is uploaded in the Platform like the other
driver records, reviewed by Emaride, and a driver is approved only once a reviewed certificate is
on file. It is data relating to criminal convictions and offences within the meaning of
Art. 10 GDPR and belongs to the category "driver master data and records" above; retention
is set out in datenschutz-fahrer. A proof of medical fitness to drive is not requested in
the Platform in the EU markets; the obligation under clause 5.1(d) FPA is evidenced outside the
Platform, and that record remains with the Fleet Partner under clauses 5.2 and 14.2 FPA.
Company-level records under clause 4.3 FPA are uploaded in the Platform; which records, what
is stored and who has access is set out in clause 3 of datenschutz-partner. Emaride processes
them as a separate controller for the approval check, as with the driver and vehicle records
above. The Platform requests no special categories of personal data under Art. 9 GDPR.
4. Data Minimisation Towards the Driver
Before the driver accepts the ride, they see only the passenger's first name, the
pickup and drop-off address, and the verification status of the ride — the narrowest set
that Art. 5(1)(c) GDPR would allow. The phone number, the rating average and count, the ride
count, and the payment-type indicator are disclosed only after the driver has accepted the
assignment. This closes the deviation that an earlier version of this Schedule recorded as an
open item before go-live (see "Closed", below); datenschutz clause 5 describes the same
two-stage state.
| What the driver receives about the passenger | Actually disclosed | Where |
|---|---|---|
| First name only — the surname is not disclosed | yes | driver-facing function ride-customer-info, which reads first_name |
| Phone number — and it can be dialled and texted directly from the ride screen | yes, after acceptance | ride-customer-info; the ride screens of the driver app |
| Average rating and number of ratings of the passenger, aggregated over all their rides | yes, after acceptance | ride-customer-info |
| Number of the passenger's completed rides | yes, after acceptance | ride-customer-info |
| Payment method used as a category (card via the payment service provider) — no card number, no last four digits | yes, after acceptance | ride-customer-info |
| Pickup and drop-off address, with coordinates | yes | part of the ride record, read in the driver ride flow (bookingsService.getById); the address also appears in a device notification |
| Verification status of the ride code (status, method, expiry, number of attempts) — never the code itself | yes (status) | fields of the ride record; the code is held in a separate table that no app role can read |
Passenger account identifier (bookings.customer_id) — a technical ID, not a name, email, or other contact detail by itself; links the booking to the passenger's account |
yes | part of the ride record (bookingsService.getById); not rendered on any driver screen, but present in the response the driver's client holds |
Ride note (bookings.options.notes, free text up to 500 characters the passenger optionally enters when booking) — its content, and whether one exists at all, is determined solely by the passenger and cannot be itemised further |
yes | part of the ride record (bookingsService.getById); shown to the assigned driver by BookingNoteCard on the request, navigate, and active-ride screens |
| Email address | no | — |
| Card details, IBAN, or other payment data | no | — |
| Home address or the passenger's saved addresses | no | — |
| The passenger's other rides as individual records | no (only a count) | — |
| Individual ratings with free text | no | — |
Timing. ride-customer-info returns a stage of either pre_accept or post_accept.
Before the driver has accepted the assignment (stage: pre_accept), the phone number, the rating
average and count, the ride count, and the payment-type indicator are not loaded at all — not
merely withheld from the response, but never queried, so a driver who declines the ride, or lets
it lapse, never received them. Acceptance flips a server-side flag on the booking
(bookings.driver_accepted_at, set by the driver-response function); a driver who is later
re-dispatched a different ride starts that ride's decision window at pre_accept again. Once the
driver has accepted (stage: post_accept), the full set is disclosed, because the driver ride
screens need it for the remainder of the ride (contacting the passenger, showing their standing).
Closed. An earlier version of this Schedule recorded the pre-acceptance loading of the phone
number, the rating, the trip count, and the payment method as an open item before go-live: none
of them are necessary to carry out the individual ride, and their disclosure before the driver
had made a decision was a deviation from Art. 5(1)(c) GDPR. It was corrected in the product
(commit range ending fix(privacy): Fahrgastdaten erst nach Fahrtannahme, Art. 5 Abs. 1 lit. c (#60), 2026-08-22) rather than talked away in this Schedule, as the prior text already
committed to. The Fleet Partner ensures that its drivers use the passenger data only for the
individual ride, do not store it beyond the ride, do not pass it on, and do not use it to
contact the passenger afterwards (clause 15.3 FPA). Contacting a passenger outside the Platform
is also a breach of the anti-circumvention provisions of the Agreement.
5. Categories of Data Subjects and of Personal Data
Data subjects
- Passengers — consumers and, in the case of business bookings, the authorised employees of corporate clients. A ride booked for business purposes is, in data protection terms, the same processing as one booked privately.
- Drivers of the Fleet Partner, including an owner who is approved as a driver.
- Contact persons of the Fleet Partner — owner, management, managers with Platform access.
- Emaride staff and mandated reviewers, in so far as their actions are recorded in the change log.
Categories of personal data
| Category | Contains |
|---|---|
| Identity data | first name, surname, date of birth where required for approval, licence and identity document data |
| Contact data | email address, phone number, language, country |
| Ride data | pickup and drop-off address, time, status, ride options, fare, cancellations, no-shows |
| Location data | live position of the driver during an active ride, coordinates of pickup and drop-off |
| Transaction data | fares, commission, platform fees, payouts, chargebacks, payment method as a category, invoices |
| Record and approval data | document type, issue and expiry date, status of the check, vehicle assignment |
| Communication data | tickets, chat content, notifications and emails sent |
| Log data | change log, login attempts with IP address for a short window |
| Quality data | ratings, penalties, trainings, acceptance and cancellation behaviour |
No special categories of personal data (Art. 9 GDPR) are requested. Data relating to criminal convictions and offences (Art. 10 GDPR) is processed in the form of the police clearance certificate, where Emaride requires it — see the note at the end of clause 3.
6. Security Measures
The technical and organisational measures under Art. 32 GDPR are set out in dpa-fleet-partner
clause 5 and are not repeated here, so that there is a single place to maintain them.
The Fleet Partner implements appropriate security measures of its own for its own processing (clause 15.3 FPA). Because the parties are separate controllers, neither party's measures replace the other's; each answers for its own level of protection.
7. Sub-processors of Emaride
Emaride engages the following processors for its own processing. The table states the purpose and the basis on which data is transferred; drivers and passengers are affected in so far as their data is processed in the service concerned.
| Service | Purpose | Place of processing | Basis for the transfer |
|---|---|---|---|
| Supabase | Hosting, database, authentication, storage of the record files | EU (Frankfurt) | Art. 28 GDPR agreement, no third country |
| Stripe | Payment processing and payouts as Merchant of Record, KYB and AML screening | US / IE | Art. 28 GDPR agreement plus SCC; see below |
| Google Maps Platform | Maps, geocoding, routing | US | Art. 28 GDPR agreement plus SCC |
| Mapbox | Map rendering (web dashboard) | US | Art. 28 GDPR agreement plus SCC |
| Resend | Transactional email, ride verification code, record reminders | US | Art. 28 GDPR agreement plus SCC |
| Twilio (via Supabase Auth) | SMS delivery for the phone-login one-time code — not currently in use | US | Art. 28 GDPR agreement plus SCC |
| OpenAI | Regulatory digest, AI-assisted ticket triage | US | Art. 28 GDPR agreement plus SCC |
| Expo | Push notifications to the driver and passenger apps | US | Art. 28 GDPR agreement plus SCC |
| Vercel | Hosting of the web dashboard and the landing page | US | Art. 28 GDPR agreement plus SCC |
| Apple | Single sign-on (optional) — not currently in use | US | Art. 28 GDPR agreement plus SCC |
| Single sign-on (optional) — not currently in use | US | Art. 28 GDPR agreement plus SCC |
Three of the eleven are not currently in operation. Twilio, Apple and Google are marked "not currently in use" above: SMS phone login is switched off at the platform and removed from the app, and Apple and Google single sign-on are not enabled. No personal data reaches these three providers at present. They are retained in the list because they are technically provided for and because clause 6 of the DPA requires 30 days’ advance notice before a sub-processor is put into operation.
For the state of conclusion, Emaride's processor register is authoritative. It records, for each of these eleven providers, the appointment check, the agreement with its date and source, the sub-processor chain, the authorisation, and the objection period. It is deliberately not duplicated here: a second copy would only create a second place to fall out of date. As at the date of this Schedule, none of the eleven agreements is recorded there as concluded; concluding them is a precondition for going live, and the "Basis" column above therefore describes the requirement, not the state achieved.
Changes to this list follow dpa-fleet-partner clause 6: information at least 30 days in
advance, right to object within 30 days.
In so far as Stripe carries out the know-your-business, anti-money-laundering, and sanctions screening, it does not act on Emaride's instructions but in order to meet its own regulatory obligations. For that processing it is a separate controller, not a processor of Emaride. Emaride does not hold or manage ride funds itself; cashless card processing is handled exclusively by Stripe as the licensed payment service provider and Merchant of Record.
The Fleet Partner and its drivers are not sub-processors of Emaride, and Emaride's sub-processors are not sub-processors of the Fleet Partner. Both follow from clause 2: the transfer between the parties is not Art. 28 processing, so there is no processing chain into which either could be inserted.
8. Cross-border Transfers
The data is hosted in the EU (Frankfurt). Where a provider named in clause 7
processes outside the EEA, the transfer takes place only under an adequacy decision under
Art. 45 GDPR or under appropriate safeguards under Art. 46 GDPR, in particular the EU
Standard Contractual Clauses (Implementing Decision (EU) 2021/914), supplemented by an
assessment of the legal situation in the recipient country. This mirrors clause 15.4 FPA and
dpa-fleet-partner clause 12.
The Fleet Partner transfers driver or passenger data received from the Platform outside the EEA only on the same conditions, and on its own responsibility as a separate controller.
9. Cross-references — the Agreement and This Schedule in Both Directions
So that the chain can be followed from either end:
| Reference in the Agreement | Points to | Resolved by |
|---|---|---|
| Clause 15.2 FPA | "the controller/processor allocation is as set out in Schedule 7" | this document, clauses 2 and 3 |
| Clause 15.2 FPA | the data processing agreement "incorporated by reference" | dpa-fleet-partner — applicable only in the cases in its clause 1 |
| Clause 15.3 FPA | transparency towards drivers, own security measures | clause 4 of this document (what the driver actually sees) and datenschutz-fahrer (Emaride's own notice to drivers) |
| Clause 15.4 FPA | international transfers | clause 8 of this document, dpa-fleet-partner clause 12 |
| Clause 14.3 FPA | audits with minimal disruption | dpa-fleet-partner clause 11 |
| Clause 5.1(g) FPA | "complies with the Platform Terms of Use and the Driver Terms" | nutzungsbedingungen — Part A (general) and Part C (drivers); on data protection, datenschutz-fahrer and clause 4 of this document |
| Clauses 5.1(c), (d), 4.3 FPA | good conduct, medical fitness, company records | police clearance certificate and company records in the Platform, medical fitness outside the Platform (note at the end of clause 3) |
Conversely, from this Schedule into the Agreement: clause 2 implements clause 15.2 FPA, clause 4 implements clause 15.3 FPA, clause 7 implements Part K of the GDPR Compliance Package, and clause 8 implements clause 15.4 FPA.
10. Deviations from the V2.1 Legal Package and the Agreement
| Source | Our clause | Deviation and reason |
|---|---|---|
| Clause 15.2 FPA — Schedule 7 named but not delivered | all | Supplied. The signed Agreement referred to a schedule that did not exist. Without it, clause 15.2 has no content and the allocation of roles is undetermined — which is precisely the question that decides who answers to a data subject. |
| Schedule list, page 15 FPA — required content | clauses 2–8 | Adopted item by item: allocation per category, categories of data subjects and of personal data, security measures, sub-processors, cross-reference to the DPA. |
| Part K — sub-processor register as a template with blanks | clause 7 | Blanks filled with the eleven providers actually used, with purpose and place of processing. The state of conclusion is not stated here but in Emaride's processor register, and it is stated openly that no agreement is recorded as concluded yet. |
| Part K — "DPA in place: Yes" in the template | clause 7 | Not adopted. The template asserts an existing agreement for every row. Asserting one that does not exist would be a false statement in a contractual annex. |
| Part C, Annex C-1 — data subjects and data categories | clause 5 | Set out here rather than in the DPA, so that the DPA can refer to a single place. |
| Art. 26 GDPR | clause 2 | Expressly excluded, which the package does not do. Reason: the reflex in a brokerage model is to assume joint controllership. The exclusion, together with the reasons and the consequences for rights, complaints, and liability, prevents a de facto joint responsibility that the processes of neither party support. |
| Clause 15.3 FPA — data minimisation towards drivers | clause 4 | Stated against the code, not against the intent. The intended minimum (first name, pickup, drop-off, verification status) is what the product discloses before the driver accepts the ride; phone number, rating, trip count, and payment method are disclosed only after acceptance (ride-customer-info, stage: post_accept, closed 2026-08-22, Task 22 #60). The obligation on the Fleet Partner under clause 15.3 (informing drivers of the actual state) applied while this was an open item and is superseded now that the actual state matches the intended minimum before acceptance. |
datenschutz clause 5 — what the Driver receives about the passenger |
clause 4 | Consistent. Clause 5 of datenschutz describes the same two-stage state — phone number, rating average and count, ride count, payment-type indicator disclosed only after acceptance. The itemised fields agree in full: the pickup/drop-off row above no longer carries the open-ended "and the remaining fields of the ride record" wording it used to (closed 2026-08-22, Task 19 #62, open item 14 in Emaride's legal open-items list). It now itemises the account identifier and the free-text ride note as well, matching the wording added to datenschutz clause 5 for the same two fields, and none of the itemised fields overlaps with the negative list below in the same table. Fix-round 1 of this Task added the two rows after a review found they were left out of both texts by the narrower wording — the full bookings row the driver's client receives (select('*') via bookingsService.getById) is broader still; that gap is tracked as a new open item, not closed by this wording fix (see LEGAL_OPEN_ITEMS.md). |
Part A.1 — contact addresses at @emaride.com |
clause 1 | Changed to @emaride.lu. |
| Version | — | Version 1.3, effective from 22 August 2026. Data protection requests and questions about this Schedule: privacy@emaride.lu. |