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 IFTTT eisen dat je je API aanpast voor hun schraapdienst?

Stel je voor dat je afvoer gaat eisen dat je je dieet aanpast, las ik op de Pinboard blog. Deze verrassende analogie was bedoeld om een recente eis van koppelsite IFTTT (If This Then That) te illustreren. IFTTT had van Pinboard gevraagd naar hun nieuwe platform te migreren zodat het koppelen van diensten nóg makkelijker zou worden (je hóórt de marketingmeelbal). Maar daar hoorden wel een partij zeer eenzijdigde voorwaarden bij. Kan zo’n dienst dat afdwingen bij willekeurige bedrijven, op straffe van verdwijnen uit het IFTTT-aanbod?

Met IFTTT kun je allerlei diensten aan elkaar knopen. Een e-mail krijgen als een RSS-feed een nieuw item heeft, een gefavoriteerde tweet in Evernote opbergen, de foto’s in je Facebookfeed naar Dropbox kopiëren als ze getagd zijn met #bewaren, en ga zo maar door. Er zijn nu bijna 300 kanalenEen erg handige dienst, waar ik zelf ook gebruik van maak.

IFTTT heeft in het begin hard moeten bouwen om dit voor elkaar te krijgen. Want een RSS-feed is relatief makkelijk uit te lezen op een standaardmanier, veel andere diensten zijn een stuk ingewikkelder. Een belangrijk deel van het werk van IFTTT is dan ook te zorgen dat al die koppelstukken blijven werken. Past een site haar API aan, dan moet IFTTT aan de bak zodat alle koppelingen met die API blijven werken.

Dar moet anders, dachten ze bij de koppelstukdienst, en ze besloten het om te draaien: IFTTT heeft een eigen API waarmee deelnemende sites gegevens kunnen aanleveren, zodat IFTTT die via haar kanalen kan koppelen. Een stuk eenvoudiger voor hen, maar zoals de Pinboard-mensen zeggen – dat is wel de omgekeerde wereld, dat jij je dienstverlening moet aanpassen omdat de leverancier van de koppelstukjes dat vraagt.

Juridisch kan ik er geen hard argument tegen bedenken. Dit is gewoon een zakelijke optie die je krijgt als je groot genoeg bent om voor eindgebruikers van significante waarde te zijn. Het doet Pinboard meer pijn dan IFTTT als de bookmarkingdienst niet op de koppeldienst staat, en die macht gebruikt IFTTT. Daar is op zich niets illegaals aan. Je kunt het onaardig vinden, en dat doen ze bij Pinboard ook:

However, cutting out sites that you have supported for years because they refuse to work for free is not very friendly to your oldest and most loyal users. And claiming that it’s the other party’s fault that you’re discontinuing service is a bit of a dick move.

De enige juridische constructie die ik kan bedenken, is het mededingingsrecht. Als een partij een economische machtspositie heeft, dan gaan er andere spelregels gelden. We noemen dit vaak een monopoliepositie, maar dat is te sterk geformuleerd. Het gaat erom dat je macht hebt op de markt, wat bijvoorbeeld blijkt uit het feit dat je de prijsleider bent. Shell is in die positie in de benzinemarkt bijvoorbeeld.

Wie een economische machtspositie bezit, mag die niet misbruiken. Zo werd Microsoft in 2004 gedwongen haar Windows API’s beschikbaar te stellen aan het opensourceproject Samba, omdat een blokkade van die dienst als misbruik werd gezien. Meer algemeen is het al snel misbruik als je concurrenten toegang tot je platform weigert. Je zou dus kunnen stellen dat IFTTT misbruik maakt, omdat haar eisen om toegang te krijgen (zelf al het werk doen én akkoord gaan met een zeer vergaande TOS waarin onder meer exclusiviteit wordt afgedwongen en het eigendom op de koppelsoftware naar IFTTT moet) zo ver gaan dat ze vrijwel neerkomen op weigeren.

De vraag is dan natuurlijk wel of IFTTT zó machtig is dat we het een economische machtspositie vinden. Kan zij zelfstandig bepalen hoe dingen in deze markt moeten werken? Komt ze weg met harde eisen als deze? Zit ‘iedereen’ hier omdat ze vinden dat ze gen keus hebben? Altijd een lastige bij internet. Want op zich kún je vaak naar een andere dienst. Het Google- of Facebookargument: welnee, wij zijn helemaal niet machtig want www.bing.com of www. eh, ja, een Facebook alternatief .com is zo getypt.

Hier ligt het iets anders denk ik: het gaat om macht doordat veel eindgebruikers het een prettige dienst vinden, en die macht wordt bij leveranciers ingezet. Die leveranciers kunnen niet zomaar weg want hun klanten de eindgebruikers worden dan boos. Dus die leveranciers hebben weinig keus. Maar is dat genoeg om he een machtspositie te noemen?

Arnoud