How Lavvy Works

From booking to delivery โ€” here's exactly how every order flows through our network, how locations are selected, and how every euro is distributed.

1

Customer Places a Booking

The customer visits lavvy.eu/booking and sees a map with all active Lavvy locations. Each location is a subsidiary โ€” an independent laundromat that has joined the Lavvy network.

๐Ÿ“ Location Selection

The customer selects the nearest location from the map or dropdown. Locations are automatically sorted by distance using browser geolocation. Each subsidiary sets their own:

Wash prices Per bag, per type (Black โ‚ฌ9, Colored โ‚ฌ10, White โ‚ฌ12 default)
P&D time windows When pick-up and delivery are available (e.g. 09:00โ€“18:00)
Timezone Automatically applied so customers see correct local times

๐Ÿงบ Bag Configuration

The customer adds 1โ€“5 bags, picks the wash type for each (Black/Dark 30ยฐC, Colored 40ยฐC, or White 60ยฐC), and lists contents per bag. Each bag gets a unique QR code for tracking.

๐Ÿ“… Schedule

Time slots are generated using each location's pick-up and delivery hours, machine configuration, current booking load, and the availability of drivers assigned to that location (2-hour windows). The system estimates the earliest delivery from the estimated laundry ready time and the next available delivery slot covered by an available driver.

2

Payment via Stripe Connect

The customer pays the full amount upfront through Stripe Checkout. The payment is processed as a destination charge using Stripe Connect.

๐Ÿ’ถ What the customer pays (example: 2 bags Colored)

Bag 1: Colored washโ‚ฌ10.00
Bag 1: Pick-up & delivery (first bag)โ‚ฌ12.00
Bag 2: Colored washโ‚ฌ10.00
Bag 2: Pick-up & delivery (extra bag)โ‚ฌ4.00
Total (incl. tax)โ‚ฌ36.00

All prices are tax-inclusive. Stripe Automatic Tax calculates applicable VAT based on the customer's billing address.

โšก How Stripe Connect processes this

Stripe uses a destination charge model. The full payment goes through Lavvy's platform account. Stripe automatically splits it:

Customer pays โ‚ฌ36.00
Sub โ‚ฌ18.00
Admin โ‚ฌ2.00
Driver โ‚ฌ14.40
Admin โ‚ฌ1.60
Subsidiary (90% wash) Lavvy Admin (10% wash + 10% transport) Driver (90% transport)

At checkout, Stripe receives the application_fee_amount which equals 10% of wash + 100% of transport. The subsidiary automatically receives the rest (90% of wash) directly into their Stripe Connect account. Transport is held by the platform and automatically transferred to the driver's Stripe Connect account upon delivery confirmation (or 24-hour auto-confirm).

3

Driver Picks Up the Laundry

A driver assigned to the subsidiary receives the booking in their Driver Portal. Each driver sets their weekly availability schedule (working hours, days off, max stops per slot). The slot engine only offers time slots to customers when at least one driver is available. At the customer's door, the driver scans each bag's QR code to confirm pickup. Stripe onboarding is required before drivers can confirm pickups or deliveries.

๐Ÿ”’ Security

Drivers can only scan bookings belonging to subsidiaries they are assigned to. A driver assigned to "Lavandaria Porto" cannot scan a booking for "Lavandaria Faro" โ€” the system returns a 403 Forbidden error. The pickup is timestamped with the driver's ID.

4

Subsidiary Washes, Dries & Folds

The driver delivers the bags to the subsidiary's laundromat. The subsidiary processes the laundry using their own machines. The system estimates completion time using configured machine capacity (number of washers/dryers, cycle duration), queue length (bags already scheduled for that date), folding/packing time per bag, and a configurable margin. Delivery scheduling also factors in driver availability for the delivery slot.

5

Driver Delivers & Customer Confirms

The driver delivers the clean laundry and scans the QR codes to record the delivery. But the booking is not yet completed โ€” the customer must confirm receipt first.

๐Ÿ“ฑ Two-step delivery verification

Step A โ€” Driver

Driver scans QR codes at the customer's door. A delivery confirmation QR code appears on the driver's phone screen.

โ†’
Step B โ€” Customer

Customer scans the QR on the driver's phone (or clicks the email link). A confirmation page loads where they can confirm receipt or file a dispute.

โœ… Customer confirms โ†’ Booking completed

When the customer confirms everything is correct, the booking status changes to Completed and the driver's transport payout is automatically transferred to their Stripe Connect account (drivers must complete Stripe onboarding to receive payouts; without it, transfers remain pending with automatic retries).

โš ๏ธ Customer disputes โ†’ Driver payout on hold

If something is wrong (missing items, damage, wrong items), the customer can file a dispute with a description. The booking status becomes Disputed. The subsidiary is notified and must resolve the issue. The driver's transport payout is on hold until the dispute is resolved.

โฐ Auto-confirm after 24 hours

If the customer doesn't respond within 24 hours, the delivery is automatically confirmed and the driver payout is transferred via Stripe Connect (requires connected account; pending transfers are retried hourly, up to 5 attempts). A cron job checks hourly for expired confirmations.

Payment Breakdown

Who gets what โ€” with and without affiliate referrals

๐Ÿงบ Wash Revenue

The subsidiary sets their own wash prices. The wash revenue is split between the subsidiary and the platform.

Without Affiliate

90% Subsidiary 10% Lavvy Admin

With Affiliate (referred subsidiary)

90% Subsidiary 5% Affiliate 5% Lavvy

๐Ÿšš Transport Revenue (Pick-up & Delivery)

First bag: โ‚ฌ12 ยท Each extra bag: โ‚ฌ4

Transport stays with the platform and is distributed to the driver after delivery confirmation.

Without Driver Affiliate

90% Driver 10% Lavvy Admin

With Affiliate (referred driver)

90% Driver 5% Affiliate 5% Lavvy

๐Ÿ“Š Worked Example: 2 bags Colored, no affiliates

Customer pays
Wash: 2 ร— Colored โ‚ฌ10.00โ‚ฌ20.00
Transport: โ‚ฌ12 + โ‚ฌ4โ‚ฌ16.00
Totalโ‚ฌ36.00
Distribution
Subsidiary (90% of wash)โ‚ฌ18.00
Driver (90% of transport)โ‚ฌ14.40
Lavvy Admin (10% wash + 10% transport)โ‚ฌ3.60
Verificationโ‚ฌ36.00

๐Ÿ“Š Same example, WITH affiliates for both subsidiary and driver

Customer still pays
Totalโ‚ฌ36.00
Distribution
โ— Subsidiary (90% of wash)โ‚ฌ18.00
โ— Driver (90% of transport)โ‚ฌ14.40
โ— Sub Affiliate (5% of wash)โ‚ฌ1.00
โ— Driver Affiliate (5% of transport)โ‚ฌ0.80
โ— Lavvy Admin (5% wash + 5% transport)โ‚ฌ1.80
Totalโ‚ฌ36.00

Tax & Invoicing

Who invoices whom โ€” the legal flow behind the payments

๐Ÿ“‹ Lavvy is the Merchant of Record

In the Stripe Connect destination charge model, Lavvy is the merchant of record. This means:

โ†’ The customer pays Lavvy (Lavvy's name appears on the bank statement)
โ†’ Stripe sends an automatic payment receipt to the customer
โ†’ Lavvy is responsible for the invoice to the customer for the full amount

๐Ÿ”„ Self-Billing: Automated Invoicing

Lavvy uses self-billing (EU VAT Directive Art. 224) โ€” the platform generates invoices on behalf of all service providers. No party needs to manually create invoices.

Subsidiary Invoice Auto-generated at booking completion. Invoice FROM the subsidiary TO Lavvy for wash services (90% of wash). PDF emailed to subsidiary with their legal name, NIF, and address.
Driver Invoice Auto-generated at booking completion. Invoice FROM the driver TO Lavvy for transport services (90% of transport). PDF emailed to driver with their billing details.
Affiliate Invoice Auto-generated per booking generating commission. Invoice FROM the affiliate TO Lavvy for referral commission (5%). PDF emailed to affiliate.

How it works legally: Each party agrees to self-billing in their Terms & Conditions upon registration. They provide their legal name, tax ID (NIF/BTW/VAT), and billing address. The platform stores these details and uses them to generate compliant invoices automatically. Each party receives a PDF copy by email and remains responsible for their own tax declarations.

๐Ÿ“ฌ Invoice flow per completed booking

โ‘  Booking reaches Completed status (customer confirms delivery)
โ‘ก Platform generates 3 PDF invoices (subsidiary, driver, and affiliate if applicable)
โ‘ข Each PDF is emailed to the respective party
โ‘ฃ PDFs stored on server for admin access and audit
โ‘ค Invoice numbering: SB-2026-00001 (sequential per year)

๐Ÿงพ Tax handling (VAT/IVA)

All prices on Lavvy are tax-inclusive (tax_behavior: inclusive). Stripe Automatic Tax calculates applicable VAT based on the customer's billing address and the laundry service tax code. All prices and charges are in EUR — Lavvy operates exclusively in the Eurozone.

When Stripe processes a destination charge with an application_fee_amount, tax is proportionally allocated between the platform fee and the transfer to the subsidiary. No party bears a disproportionate tax burden.

Each party declares their own income:
โ— Subsidiary โ€” declares wash service income (90% of wash) + applicable IVA/VAT
โ— Driver โ€” declares transport income (90% of transport) + applicable IVA/VAT
โ— Affiliate โ€” declares commission income (5%) as received
โ— Lavvy โ€” declares platform fee income + applicable IVA/VAT

Booking Status Flow

Every booking follows this lifecycle

๐Ÿ“… Scheduled โ†’ ๐Ÿ’ณ Paid โ†’ ๐Ÿšš Driver Pickup โ†’ ๐Ÿงบ Handling in Laundry โ†’ ๐Ÿšš Driver Delivery โ†’ โœ… Customer Confirmation โ†’ ๐Ÿ’ฐ Payout
or at "Customer Confirmation": โš ๏ธ Disputed โ†’ resolved โ†’ ๐Ÿ’ฐ Payout  or  Cancelled
Customer Confirmation happens when the customer scans the driver's QR code and confirms receipt. If no response within 24 hours, delivery is auto-confirmed.
Payout: driver transport share is automatically transferred via Stripe Connect. Subsidiary receives their wash share at checkout via destination charge.

Affiliate & Referral Model

Multiple ways to earn by growing the Lavvy network

๐Ÿค

Affiliate โ†’ Subsidiary

Refer a laundromat owner. When they register and process bookings, you earn 5% of their wash revenue โ€” for life.

๐Ÿšš

Affiliate โ†’ Driver

Refer a driver. When they complete deliveries, you earn 5% of their transport fees โ€” for life.

๐Ÿช

Subsidiary as Affiliate

Every subsidiary can also refer other subsidiaries and drivers. Earn extra income by growing the network in your area.

Ready to join?

Choose your role and start earning today.

Become a Subsidiary Register as Driver Become an Affiliate