Webshop die geen back-ups maakte verliest rechtszaak van softwareleverancier

Een webshop die geen back-ups van haar boekhoudgegevens maakte, en door een probleem met een softwarekoppeling klantgegevens verloor, heeft de rechtszaak tegen de leverancier van de koppeling verloren. Dat meldde Security.nl vorige week. De koppeling bleek gegevens van crediteuren in het boekhoudprogramma te overschrijven met debiteurenboekingen. Volgens het Gerechtshof staat het vast dat de webshop geen back-ups maakte en heeft de softwareleverancier met recht aangevoerd dat de webshop zelf verantwoordelijk is voor het regelmatig maken van back-ups. “Dat zij dat achterwege heeft gelaten, terwijl het wel mogelijk was, is dan ook een omstandigheid die haar valt toe te rekenen”, aldus het hof.

Het gaat concreet om een koppeling tussen het bekende webshoppakket Magento en Exact Online, waardoor de transacties van de Magento webshop worden doorgestuurd naar de boekhoudsoftware van Exact. Meelezende QA specialisten mogen even wegkijken, voor de rest:

Het boekhoudprogramma maakt gebruik van een tabel van nummering waarbij voor debiteuren en crediteuren dezelfde tabel wordt gebruikt. Beide groepen krijgen om die reden een verschillend startnummer. Voor debiteuren (klanten met een account en gastklanten zonder een account) is in dit geval gekozen voor een nummer beginnend met 3.000 respectievelijk 7.000 en voor crediteuren beginnend met 1-2.999 en vanaf 15.000. De crediteuren moeten handmatig worden ingevoerd, de debiteuren (zowel de bestellingen van klanten met een account als die van gastklanten) worden door de koppeling automatisch in het boekhoudprogramma ingevoerd.
Deze wijze van scheiden van relaties staat onder programmeurs ook wel bekend als een WTF want op deze manier is het natuurlijk mogelijk dat het aantal aankopen zo oploopt dat je de 15.000 aantikt en dat je debiteur dan een crediteur is. En dat gebeurde ook, omdat er een foutje zat in het toekennen van nummers bij klanten die als gast bestellen:
Hallo … De gast accounts beginnen bij 7000. Inmiddels hebben we al meer dan 8000 gast accounts, waardoor je dus uit komt op de nummering van de crediteuren.
Dit hoort natuurlijk niet te gebeuren, en pijnlijk voor de webshop was vervolgens dat men geen backup had van de relevante tabellen zodat het een berg werk was om alle debiteuren en crediteuren weer in ere te herstellen. Is dit nu het soort fout waar je voor aansprakelijk bent vanuit je zorgplicht als ICT-er? Helaas komt het Hof niet aan die vraag toe, maar ze bevestigt wel dat we zoiets best “eigen schuld” kunnen noemen.

Iedereen die met digitale gegevens werkt in de bedrijfsvoering, moet daar gewoon backups van hebben. Want of het nou gaat om ransomware, dikke vingers of een API koppeling die debiteuren moet invoeren maar die soms als crediteur aanmerkt, als je die data kwijt bent dan heb je een enórm probleem.

Juridisch gezien kom je dan uit bij “eigen schuld” (art. 6:101 BW): weliswaar ontslaat dat de leverancier niet van aansprakelijkheid, maar hij hoeft minder van de schade te vergoeden omdat de gevolgen mede aan de webwinkel te wijten zijn.

Het is aannemelijk dat geen handmatig herstel met de gevorderde kosten nodig was geweest als de door [de webwinkel] gestelde tekortkoming achterwege zou zijn gebleven (zo die na bewijslevering zou komen vast te staan). Maar dat geldt ook indien [de webwinkel] zelf de nodige zorgvuldigheid zou hebben betracht door een back-up te maken. De kosten van de advocaat in verband met het verhaal van herstelkosten bij [de leverancier] zouden ook niet gemaakt zijn.

Je kunt je natuurlijk afvragen of de leverancier niet meer had moeten doen. Nee, niet in dit geval:
Het hof betrekt daar ook bij (i) dat het ging om een standaardkoppeling tegen een lage prijs zonder abonnement, (ii) dat de koppeling als zodanig jarenlang goed heeft gefunctioneerd, (iii) dat [de webwinkel] zelf voor Exact Online heeft gekozen, (iv) dat zij zich in de werking en de beperkingen daarvan kennelijk niet voldoende heeft verdiept, (v) dat de koppeling is hersteld en (vi) dat [de webwinkel] niet onderbouwd heeft gesteld dat zij door het tijdelijk kwijtraken van enkele gegevens van crediteuren (andere financiële) problemen heeft ondervonden.
Met name dat laatste geeft voor mij de doorslag: er zijn geen daadwerkelijke problemen, alleen maar rotzooi die opgeruimd moest worden omdat er geen backup was. Heel vervelend, maar dát is dan het gevolg van je eigen schuld.

Ondertussen blijft wel open de vraag of de leverancier beter had moeten programmeren, bijvoorbeeld een check dat het debiteurennummer altijd kleiner dan 15.000 had moeten zijn. Als je een koppeling met Exact verkoopt, en die heeft deze rare constructie in haar database-tabellen, dan moet je zulke dingen wel doen lijkt me. Maar kennelijk komt het weinig voor dat Exact Online-gebruikers meer dan 8000 klanten zonder registratie hebben?

Arnoud

Mag ik hacken om mijn klant te migreren naar een nieuwe omgeving?

migrationEen lezer vroeg me:

Een nieuwe klant vroeg ons hen te migreren naar een nieuwe omgeving. Echter, er blijkt een geschil te zijn met de huidige ICT-leverancier en mijn klant heeft de benodigde wachtwoorden dan ook niet. De klant heeft me gevraagd de betreffende systemen te hacken omdat dat geschil nog wel even kan duren (er zijn al advocaten losgelaten). Mag ik dit doen?

Helaas komen dit soort situaties vaker voor. De klant heeft een dispuut met zijn ICT-leverancier, die blokkeert de dienst of weigert relevante wachtwoorden of data te verstrekken en dan zit je daar als klant. Of, omgekeerd: je hebt een dispuut met je klant, die wil dan boos weg (terwijl het contract nog gewoon loopt en de klant ongelijk heeft met z’n dispuut) en dan moet jij zeker gratis alles even aan laten staan zodat hij alles kan downloaden en migreren en daarna je facturen vrolijk niet betalen.

Hoe dan ook, als nieuwe leverancier heb je daar niets mee te maken. Laat je daar ook niet toe verleiden, want voor je het weet ben je partij en krijg je een deel van het ongenoegen over je heen.

De klant helpen met een migratie mag, ook als de migratie gebeurt vanaf een omgeving waar iemand anders iets over te zeggen heeft. Net zo goed als jij als verhuisbedrijf spullen mag weghalen bij een gehuurd pand waarvan huurder en verhuurder een dispuut hebben over achterstallige huurbedragen. Wat je echter niet mag, is in zo’n situatie de door de verhuurder afgesloten deur openbreken.

In de ICT-situatie betekent dat dus: je mag geen wachtwoorden kraken van servers die in eigendom zijn bij de verhuurder, pardon de leverancier. Ook mag je niet op zoek naar achterdeurtjes om daar data uit te halen. Ook niet als het gaat om klantdata. Het mag dan “klantdata” heten in het ICT-spraakgebruik, maar juridisch gezien is data niets. Er valt dus niets op te eisen, in tegenstelling tot bv. fysieke spullen die opgeslagen zijn bij de leverancier.

Wachtwoorden kunnen ook een rol spelen bij systemen van de klant zelf, zoals laptops of door hen zelf aangeschafte servers. Door de leverancier daarop ingestelde wachtwoorden mag je wél kraken of veranderen. De systemen zijn immers eigendom van de klant, en het is niet strafbaar om in opdracht van de eigenaar een beveiliging onklaar te maken.

Twijfel je over de legaliteit van wat je klant vraagt, dan kun je een garantie en vrijwaring van je klant verlangen dat je dit mag en dat zij alle boetes en schadeclaims die jij krijgt, moeten vergoeden. Dat werkt dan echter weer niet wanneer het evident is dat de klantvraag illegaal is. “Ze draaien een oude versie van PHP, kun jij ergens op zo’n hackersite iets vinden dat je binnen kunt komen en onze database kunt downloaden” is geen legitieme klantvraag. Ook niet als daar de enige plek is waar de klantdata staat.

Hebben jullie wel eens zulke disputen meegemaakt als derde? En hoe ging je daarmee om?

Arnoud

Een contract opzeggen bij te veel kleurenprints, mag dat?

color-kleur-print.pngWat een merkwaardige rechtszaak. Een hardwareleverancier had de opdracht gewonnen om aan een stichting printers te leveren met een onderhoudscontract. De stichting bleek veel meer in kleur te printen dan de leveranchier had verwacht, dus die zegt het contract op. Maar daar komt hij – blijkens het vonnis – niet mee weg. Zoals ITenRecht het zegt, de leverancier wringt zich in duizenden bochten om van het contract af te komen, waarbij allerlei beëindigingsgronden door elkaar heen worden gebruikt.

Het belangrijkste argument voor de leverancier was dwaling. Als je een overeenkomst sluit en daarbij ergens van uitgaat dat onjuist blijkt te zijn, dan kun je soms de overeenkomst vernietigen (art. 6:228 BW). Wel moet er dan sprake zijn van een mededeling van de klant waar de leverancier op af mocht gaan, of op een zwijgen van de klant terwijl die juist iets had moeten zeggen.

De rechter noemt het feit dat de klant meer in kleur print dan de leverancier verwacht, terecht echter het normale ondernemersrisico. Anders gezegd: moet je maar niet dezelfde prijs voor kleur noemen als voor zwartwit.

Verder is er nog de algemene regel dat je als opdrachtnemer mag opzeggen vanwege gewichtige redenen (art. 7:408 BW). Een vertrouwensbreuk zou zo’n reden kunnen zijn, net zoals het feit dat de opdrachtnemer ineens aan de andere kant van het land gaat zitten. Dat je verlies maakt is écht geen gewichtige reden.

Alles bij elkaar komt het dus neer op niet meer dan “ik maak verlies, ik wil niet meer verder” en daar maakt de rechter terecht gehakt van. Contract is contract, en deze leverancier krijgt dan ook 7000 euro schadevergoeding voor de kiezen.

Arnoud