Ik heb jaren Harvest gebruikt. Het is een goede tool, met strakke urenregistratie, eenvoudige facturatie, en een gevestigd merk. Ik bouwde Rozuro vanwege de specifieke dingen die het níét doet, niet omdat Harvest slecht is in wat het wél doet. Dit is wat er voor mij veranderde, en waarom ik uiteindelijk ben overgestapt. Overweeg je zelf een overstap, dan heb je liever een helder beeld dan een marketingverhaal.
Wat Harvest goed doet
Voor ik aan de pijnpunten begin, de kernflow van Harvest is een van de strakste in de categorie. Timer aan, timer uit, factuurregel toevoegen. De mobiele app is solide, het team-overzicht werkt, en voor solo-consultants die in één valuta factureren is het moeilijk te verslaan qua snelheid van opzetten.
Als jouw facturatie binnen een Harvest-template past en je boekhouding past binnen een kwartaal-CSV naar je boekhouder, heb je waarschijnlijk niks meer nodig. Ik wil dat vooraf erkennen, want ik heb jaren in die modus gewerkt en het was prima.
Waar het voor mij stopte met werken
Factuurnummering
De nummerreeks was niet altijd doorlopend. Een paar keer per jaar vond ik een gat, meestal na een verwijderd concept of een edge case die ik nooit volledig kon diagnostiseren. Voor een NL-freelancer is dat een probleem. De Belastingdienst, en gelijkwaardige instanties elders in de EU, eisen doorlopende, niet-onderbroken factuurnummering voor audit-doeleinden. Gaten in de reeks doen je lijken alsof je facturen hebt verwijderd om inkomsten te verbergen, ook als dat niet zo is.
De eerste keer dat ik een gesprek had met de Belastingdienst over horizontaal toezicht, was de controleur tien minuten bezig met de vraag waarom factuurnummer 2023-0147 ontbrak. Het ontbrak niet echt. De teller had hem overgeslagen nadat ik een dubbel concept had voided. Maar de bewijslast lag bij mij. Ik moest door Harvest’s verwijderde-items log spitten, exporteren, annoteren, en een schriftelijke toelichting indienen. De hele omweg kostte een halve dag en een klein advieshonorarium aan mijn accountant voor de formele reactie. Vermenigvuldig dat met de jaren dat ik op het platform zat en het wordt lelijk.
In Rozuro is de nummering server-side afgedwongen, automatisch, zonder dat je achteraf de reeks kunt herschrijven. Een verzonden factuur kan niet meer bewerkt of verwijderd worden, en alleen een creditfactuur kan hem corrigeren. Concepten krijgen hun eigen reeks. Er bestaat geen scenario waarin de echte reeks een gat laat zien. Saai, maar exact het soort detail waar je accountant blij van wordt, en het soort detail dat een kwartiertje auditvraag verandert in een non-event.
Geen echte boekhoudlaag
Harvest geeft je rapporten, geen grootboek. Voor EU-boekhouding heb je meer nodig dan een V&W. Je hebt ICP-exports nodig voor EU B2B, BTW-uitsplitsing per code, audit trails op elke statuswissel. Ik bouwde uiteindelijk een aparte database-tool ernaast om het gat te dichten tussen Harvest’s exports en het formaat dat mijn accountant wilde.
Concreet, voor wie er nooit een heeft hoeven indienen. In Nederland moet elke EU B2B-verkoop terugkomen op de kwartaal-ICP (intracommunautaire prestaties), uitgesplitst per klant-BTW-nummer, periode en totaalbedrag. Duitsland’s Zusammenfassende Meldung en Frankrijk’s DEB/DES zijn hetzelfde idee met andere formulieren. Harvest’s CSV-export classificeert regels niet naar BTW-behandeling, dus ik moest elke EU-verlegd-BTW-factuur handmatig hertaggen in een spreadsheet voor ik ‘m naar mijn accountant stuurde. Elk kwartaal, jarenlang. Voeg daar de per-code uitsplitsing van de BTW-aangifte zelf aan toe (binnenland 21%, binnenland 9%, verlegd, export, vrijgesteld) en je bent in feite een rekeningschema aan het herbouwen in Excel.
Die aparte tool werd het prototype voor wat nu Rozuro’s kern is: een echte dubbele boekhouding die onder de facturatie en urenregistratie zit, niet erbovenop geplakt als rapportage-tab. Elke factuurregel draagt zijn BTW-code aan de bron. ICP en de per-code aangifte-uitsplitsing rollen automatisch uit het grootboek. Geen hertaggen, geen spreadsheet, geen zondagmiddag per kwartaal.
UX-inconsistenties
Minder kritisch, meer dood-door-duizend-prikken. De opslaan-knop staat op verschillende plekken in verschillende forms. Sommige modals verliezen hun state als je ernaast klikt. De overdracht van time-entry naar factuur vraagt meerdere bevestigingen, ook als de regels overduidelijk zijn. Geen dealbreakers op zichzelf, maar opgeteld over jaren is het echte frictie.
Bij het ontwerpen van Rozuro’s forms ben ik de andere kant op gegaan. Eén consistente save-positie, geen destructieve defaults, en expliciete onveranderbaarheid-cues zodat je weet wat je kunt en niet kunt wijzigen.
API-beperkingen
Dat gaf uiteindelijk de doorslag, want Harvest heeft wel een API, maar die is voornamelijk read en beperkt write. Je kunt het meeste ophalen, je kunt niet alles aanmaken of bijwerken vanaf buiten. Subscription-state-transities, bepaalde uitgavenvelden, recurring-schedule mutaties, de endpoints die je daarvoor nodig hebt zijn er gewoon niet. Daarbovenop komen rate limits en pagination-eigenaardigheden die opduiken zodra je nachtelijk wilt synchroniseren.
Het concrete voorbeeld dat mij brak. Ik wilde automatisch een maandelijkse factuur sturen bij elke verlenging van een Stripe-abonnement, met de juiste BTW-code op basis van het land van de klant, en de bijbehorende PDF gemaild en in het klantenportaal gepusht. De Stripe-webhook lezen was triviaal. Een Harvest-factuur aanmaken met een eigen nummer, BTW-code, en een afwijkende e-mailtemplate was dat niet. Ik draaide uiteindelijk een nachtelijk script dat een Stripe-grootboek exporteerde, facturen in een aparte tool genereerde, en de PDF’s met de hand in Harvest uploadde voor de audit trail. Dat is geen automatisering. Dat is een parttime admin-baan verkleed als cron-expressie.
De connector-marketplace dekt veel van dit af voor gangbare integraties zoals Zapier en Xero, maar je kunt er geen echte custom flow op bouwen. Wil je dat elke UI-actie ook een automation-hook is, dan is Harvest daar niet voor ontworpen.
Wat ik in plaats daarvan heb gebouwd
Voor elk pijnpunt hierboven neemt Rozuro het tegenovergestelde standpunt in.
Strikte, doorlopende factuurnummering server-side afgedwongen. Facturen worden onveranderbaar bij verzenden. Creditfacturen zijn de enige manier om een verzonden factuur te corrigeren. Geen gaten, volledige audit trail, je accountant glimlacht.
Ingebouwde EU-compliance: BTW-codes, ICP-exports voor EU B2B, VIES BTW-nummer validatie, UBL/Peppol op de roadmap. Geen plugins nodig.
Elke UI-actie is ook een REST-endpoint met dezelfde auth, dezelfde validatie, dezelfde ledger-writes. Webhooks vuren op elke statuswissel met signed payloads. Als je het in het product kan doen, kun je het automatiseren vanuit je eigen code.
Dubbele boekhouding als kern, geen rapportage-tab. V&W en balans zijn afgeleid van het grootboek, niet samengesteld uit factuur-exports.
De rode draad door deze vier is bewust. Eén bron van waarheid, identiek benaderd vanuit de UI en de API, met onveranderbaarheid als feature in plaats van iets om omheen te werken. De auth die een knop in de webapp afschermt, schermt dezelfde endpoint over HTTPS af. De validatie die een verkeerde factuur in een form blokkeert, draait letterlijk tegen een JSON-payload. De grootboek-writes zijn dezelfde writes, hoe je het ook aanvliegt. Dat klinkt saai voor een marketeer en geruststellend voor een finance-team, en dat is grofweg de doelgroep-splitsing die ik in gedachten had.
Feature-matrix
| Feature | Rozuro | Harvest |
|---|---|---|
| REST API (volledige CRUD) | Ja, elke UI-actie is ook een endpoint | Gedeeltelijk, voornamelijk read |
| Webhooks | Signed events op elke statuswissel | Beperkt tot enkele resources |
| EU BTW-compliance (BTW/MwSt/TVA) | Ingebouwd, met breakdown per code | Handmatig of via integraties |
| ICP / EU-listing export | Ingebouwd | Niet beschikbaar |
| Doorlopende factuurnummering (audit-grade) | Afgedwongen, onveranderbaar na "sent" | Gaten in reeks mogelijk |
| Factuur onveranderbaarheid na "sent" | Afgedwongen | Bewerkbaar |
| Dubbele boekhouding | Kern van het product | Niet aanwezig |
| Multi-currency | Ja | Ja |
| Mobiele app | Web-responsive (native op de roadmap) | Native iOS en Android |
| Integratie-marketplace | Groeiend, plus volledige API | Uitgebreid third-party |
Wat Rozuro (nog) niet is
Ik ga niet doen alsof we deze vergelijking gewonnen hebben. Hier zijn de gaten die ik echt zie.
Mobiele-app rijpheid. Vandaag is het product web-responsive, prima op een telefoon maar geen native app. Een native iOS-app staat op de roadmap. Als je in je tracker leeft onderweg en native polish nodig hebt, wint Harvest deze specifieke strijd nog steeds.
Integratie-marketplace. Harvest heeft jarenlang third-party connectors verzameld. Wij hebben een volledige API en een kleiner, maar groeiend, assortiment directe integraties. Als jouw workflow in een bestaande Harvest, Xero, en Stripe pipeline leeft, moet je ‘m ofwel via onze API herbouwen, ofwel wachten tot directe integraties bijgewerkt zijn.
Community. Harvest bestaat sinds 2006. Wij hebben honderden early users en een publieke roadmap, geen forum met een decennium aan opgebouwde antwoorden.
OCR voor bonnetjes. Harvest en FreshBooks laten je een foto van een bonnetje maken en halen leverancier, bedrag en datum er automatisch uit. Wij nog niet, uitgaven zijn vandaag een handmatige regel. Het staat op de roadmap omdat een derde van de early-user feedback erom vroeg, maar als je veel kasuitgaven verwerkt, is dat vandaag een reëel gat.
Als die gaten dealbreakers zijn, blijf waar je bent. Ik heb liever dat je niet overstapt en er spijt van krijgt.
Migreren
Wil je toch overstappen, dan importeer je je klanten via CSV vanuit de Harvest-export in één keer. Facturen en uren kunnen via de API gemigreerd worden. Voor je eerste honderd records doe ik de migratie persoonlijk. Laat het weten en we zetten het op. Het formulier staat op /nl/migreren/harvest.
Onderaan de streep
Gebruik Harvest als het past bij je workflow. Stap over naar Rozuro als je uit de rapportage gegroeid bent, het API-plafond hebt geraakt, of echte EU-compliance nodig hebt in plaats van een plugin.
Wil je het een uurtje testen, dan kun je gratis starten op /register?lang=nl. Geen creditcard. Of neem contact op als je wil sparren of het de moeite waard is.
Liefs, Marten.