Nordlet

← Blog

Nordlet vs Odoo voor platformbouwers

Een vergelijking voor ontwikkelaars die moeten kiezen tussen een embedded accounting-API en een opensource-ERP-suite, op basis van de documentatie van de producten zelf.

Nordlet Team · · 8 min lezen

Odoo en Nordlet worden vaak samen overwogen door platformteams, maar het zijn totaal verschillende soorten producten. Odoo is een brede bedrijfsapplicatiesuite met ingebouwde boekhouding, die je zelf kunt hosten en aanpassen. Nordlet is een boekhoudbackend zonder ambities buiten de boekhouding, ontworpen om te worden aangeroepen vanuit het product van een ander.

De keuze komt meestal neer op twee vragen: hoeveel van je bedrijf wil je in één systeem onderbrengen, en wie gaat dat systeem beheren. Alles hieronder over Odoo is afkomstig van de documentatie- en prijzenpagina's van Odoo zelf, waar relevant voorzien van een link.

Wat elk product is

Odoo is een opensource-suite met onder meer boekhouding, voorraadbeheer, productie, verkoop, CRM, HR en websites, beschikbaar als Odoo Online, op Odoo.sh of self-hosted. De sterke punten zijn de breedte, de uitbreidbaarheid en de optie om het zelf te draaien. Specifiek gedrag voor landspecifieke boekhouding is afkomstig van lokalisatiemodules, en de community eromheen is groot.

Nordlet is een cloudboekhouding-API. Het biedt een onveranderbaar dubbel boekhoudkundig grootboek (double-entry ledger), facturatie, inkoopregistratie, bankkoppelingen en aflettering, voorraad, vaste activa, loonadministratie, rapportage en EU-btw-afhandeling via één REST-interface - momenteel meer dan 400 eindpunten verdeeld over 29 modules, gegenereerd vanuit één enkele OpenAPI-specificatie. Er is een applicatie, en die draait op dezelfde eindpunten die externe bellers gebruiken.

De API-vraag, die de doorslag geeft bij de meeste evaluaties

Hier lopen de producten voor platformbouwers het sterkst uiteen.

De externe API van Odoo werkt op modelniveau. Je verifieert je identiteit en roept vervolgens ORM-methoden aan op datamodellen zoals account.move voor journaalposten en facturen, res.partner voor relaties en account.account voor het grootboekschema, via XML-RPC of JSON-RPC. Dit is krachtig: alles wat het systeem kan modelleren, kun je bereiken. Het betekent echter ook dat de verantwoordelijkheid voor het correct gebruiken van de modellen bij jou ligt, en dat je integratie gekoppeld is aan het interne datamodel van Odoo in plaats van aan een stabiel domeincontract.

Twee feiten uit Odoo's eigen materiaal veranderen de berekening:

  • Uit de documentatie van Odoo blijkt dat externe API-toegang beschikbaar is op het Custom-prijsniveau en niet op de One App Free- of Standard-plannen. API-toegang is zodoende een prijsbeslissing, en niet alleen een technische. Huidige plannen en prijzen staan op de prijzenpagina van Odoo.
  • Odoo heeft aangekondigd dat de eindpunten /xmlrpc, /xmlrpc/2 en /jsonrpc zullen worden verwijderd - in Odoo 22 en Odoo Online 21.1 - met een nieuwere JSON-2 API als vervanger. Een integratie geschreven tegen de huidige RPC-eindpunten moet in de toekomst worden gemigreerd.

De API van Nordlet werkt op domeinniveau. Bewerkingen verlopen als POST /v1/{module}/{resource}/{action} met een JSON-body, waardoor je bijvoorbeeld sales/invoices/issue aanroept in plaats van direct een journaalmodel te manipuleren, en de boekhoudkundige gevolgen zijn de verantwoordelijkheid van de API. Sleutels dragen scopes zoals sales:write. Herpogingen (retries) worden beschermd door een Idempotency-Key-header: dezelfde sleutel met dezelfde payload herhaalt de opgeslagen respons, en dezelfde sleutel met een gewijzigde payload wordt afgewezen met idempotency_key_reuse in plaats van stilzwijgend geaccepteerd. Webhook-evenementen worden weggeschreven naar een transactionele outbox in dezelfde databasetransactie als de wijziging, zodat een teruggedraaid document nooit een evenement verzendt, en leveringen zijn ondertekend met een HMAC-handtekening die je verifieert.

Functievergelijking

Cellen met "niet publiekelijk bevestigd" betekenen dat we de functionaliteit niet konden verifiëren op het niveau dat een ontwikkelaar nodig heeft voordat hij een toezegging doet. Dit zijn geen claims dat de functionaliteit ontbreekt.

Functionaliteit Nordlet Odoo
Productvorm Boekhouding-API, gehost Volledige bedrijfssuite; gehost of self-hosted
Primaire interface REST-API met getypeerde TypeScript SDK Webapplicatie; externe API op modelniveau
API-protocol JSON over HTTPS, RPC-stijl POST per actie XML-RPC en JSON-RPC, waarbij een JSON-2 API deze vervangt
API-beschikbaarheid Elk plan, alle modules Custom-plan volgens de documentatie van Odoo
Dubbel boekhouden Ja, balans wordt afgedwongen door een databasetrigger bij commit Ja, binnen de boekhoudmodule
Periodevergrendeling Ja; boekingen in een vergrendelde periode worden geweigerd met 409 Vergrendeldata worden ondersteund in de boekhoudmodule
Idempotency-keys Ja, gedocumenteerde semantiek inclusief replay en botsing Niet publiekelijk bevestigd voor de externe API
Webhooks Ja, ondertekend, met herpogingen, vanuit een transactionele outbox Geautomatiseerde acties en webhooks zijn aanwezig; leveringsgaranties niet publiekelijk bevestigd
Auditlogboek Elke mutatie met actor, actie, entiteit, diff; doorzoekbaar Chatter en lognotities; reikwijdte verschilt per model
EU-btw Tarieven per land voor de EU-27, VIES-validatie, OSS/IOSS-berekening met correcties Landspecifieke lokalisatiemodules; diepgang verschilt per land
E-facturatie EN 16931 UBL voor Peppol BIS 3.0; nationale formaten voor IT, PL, RO Lokalisatiemodules dekken verschillende nationale formaten
Voorraad, productie FIFO-voorraad, stuklijsten, assemblage en demontage, routings, werkplekken, productie-orders met registratie per bewerking, kwaliteitscontroles, onderhoud Uitgebreid, een kernsterkte
CRM, website, marketing Alleen partneraanvragen, groepen en statussen; geen websitebouwer of marketingtools Ja, een kernsterkte
Self-hosting Nee; BYOC-ondersteuning vermeld op het Custom-niveau Ja
Broncodebeschikbaarheid Proprietary Opensource-kern, met betaalde edities
Meerdere bedrijven Onbeperkt aantal bedrijven onder één account, op rollen gebaseerde toegang Meerdere bedrijven worden ondersteund

Prijismodellen

Ze zijn niet één op één te vergelijken, omdat ze voor verschillende dingen in rekening brengen.

Odoo rekent per gebruiker per maand, met een gratis laag die beperkt is tot één applicatie en externe API-toegang op het Custom-niveau. Voor een platform is het onhandige punt dat "gebruikers" een slechte maatstaf zijn voor belasting wanneer jouw software, en niet je personeel, de boekhouding genereert. Self-hosting heft de abonnementskosten op en voegt infrastructuur- en onderhoudskosten toe.

Nordlet rekent per aanvraag. Gepubliceerde plannen bedragen € 10 per maand met 3.000 aanvragen, € 50 met 30.000 en € 300 met 200.000, waarbij extra aanvragen per stuk worden gefactureerd en een custom-niveau op aanvraag beschikbaar is. Elk plan omvat elke module en de volledige API; gebruikers, bedrijven en sandbox-bedrijven zijn onbeperkt. Een aanvraag is elke handeling die wordt uitgevoerd via de API of de app.

Het praktische gevolg: een marktplaats met vier medewerkers en 50.000 maandelijkse boekhoudhandelingen betaalt voor 50.000 handelingen onder een verbruiksgeaseerd model en voor vier gebruikers onder een model per gebruiker - en het cijfer per gebruiker verandert niet wanneer het volume verdubbelt, wat twee kanten op werkt. Reken je eigen cijfers door.

Waar Odoo de betere keuze is

  • Je wilt boekhouding, voorraad, productie, CRM en een website in één systeem met één database.
  • Je moet zelf hosten vanwege datalocatie, kosten of beleidsredenen.
  • Je wilt de broncode aanpassen en hebt de interne capaciteit om die aanpassingen te onderhouden bij upgrades.
  • Je boekhouding is interne bedrijfsadministratie in plaats van een functionaliteit van het product dat je verkoopt.
  • Je bevindt zich in een land waar een Odoo-lokalisatiemodule sterk en actief onderhouden is.

De breedte van Odoo is echt, en geen enkele boekhouding-API vervangt dat.

Waar Nordlet past

  • Jouw software, en niet je personeel, genereert de boekhoudkundige gebeurtenissen.
  • Je hebt administraties nodig voor vele bedrijven onder één account zonder abonnement per entiteit.
  • Je hebt afgedwongen invarianten nodig waar je platform op kan bouwen: sluitende boekingen, lückenlose nummering, vergrendelde periodes, onveranderbare historie, idempotente schrijfacties.
  • Je wilt integreren op basis van een stabiel domeincontract in plaats van een intern datamodel.
  • Je EU-btw-verplichtingen omvatten meerdere landen en je wilt die logica liever niet zelf onderhouden.

De beperkingen, helder op een rij: Nordlet bevindt zich in early access en onboardt design partners; het is gehost in plaats van self-hosted; partnerrecords bevatten aanvragen, groepen en statussen in plaats van een verkoopfunnel, en er is geen websitebouwer of marketingfunctionaliteit; loonadministratie is alleen beschikbaar voor Litouwen; en binnenlandse aangiftepakketten zijn vandaag de dag beschikbaar voor drie landen - Litouwen (FR0600), Duitsland (UStVA) en Polen (JPK_V7M) - waarbij OSS en IOSS wel worden berekend maar niet namens jou worden ingediend.

Wat we zouden valideren vóór de definitieve keuze

  1. Bevestig het Odoo-plan dat je daadwerkelijk nodig hebt. Als externe API-toegang het Custom-niveau vereist, prijs dat niveau dan voor je gebruikersaantal, en niet het instapniveau.
  2. Vraag naar de migratietijdlijn voor RPC voor elke Odoo-integratie die je wilt behouden na de aangekondigde verwijdering van de huidige eindpunten.
  3. Test herpogingen (retries) op beide systemen. Verstuur dezelfde aanvraag tweemaal en tel de resulterende boekingen.
  4. Test de vergrendeling. Sluit een periode en probeer er vervolgens in te boeken.
  5. Controleer je specifieke landen. Voor Odoo: welke lokalisatiemodule en hoe actief wordt deze onderhouden; voor Nordlet: welke btw-uitvoerformaten bestaan er vandaag de dag voor die landen.
  6. Reken de totale kosten over drie jaar uit, inclusief hosting en upgrade-inspanning als je zelf host, en de groei van het aantal aanvragen als je op basis van verbruik betaalt.

FAQ

Is Odoo gratis?

Odoo publiceert een gratis laag die beperkt is tot één applicatie, en de community-editie is opensource. Voor een platformintegratie zijn de relevante kosten doorgaans de hosting, upgrades, lokalisatie-onderhoud en het betaalde plan dat vereist is voor externe API-toegang, in plaats van de licentie zelf.

Kan Odoo worden gebruikt als embedded boekhoudbackend voor een marktplaats?

Het kan worden geïntegreerd, en sommige teams doen precies dat. De aandachtspunten zijn dat de externe API werkt op datamodelniveau, dat API-toegang is gekoppeld aan een specifiek prijzniveau, dat de huidige RPC-eindpunten worden vervangen en dat je zelf verantwoordelijk bent voor het correct gebruiken van de boekhoudmodellen. Valideer deze aspecten tegen je eigen vereisten in plaats van zomaar ergens van uit te gaan.

Doet Nordlet alles wat Odoo doet?

Nee. Nordlet is boekhouding en aanverwante handelingen - facturatie, grootboek, bank, voorraad, activa, productie, loonadministratie, rapportage, EU-belasting. Productie omvat stuklijsten, routings, werkplekken, productie-orders met registratie per bewerking, kwaliteitscontroles en onderhoud van apparatuur, zonder de vraag- en capaciteitsplanning die Odoo biedt. Partnerrecords bevatten aanvragen, groepen en statussen in plaats van een verkoopfunnel, en er is geen websitebouwer en geen marketingtooling.

Welke is beter voor de EU-btw?

Dat hangt af van het land. Nordlet levert landspecifieke EU-btw-tarieven, VIES-validatie, OSS- en IOSS-aangifteberekening met correcties voor voorgaande periodes, i.SAF-registers en EN 16931 UBL, waarbij Litouwen het meest diepgaande landpakket heeft. Odoo's dekking is afkomstig van lokalisatiemodules waarvan de diepgang en het onderhoud per land verschillen, dus het eerlijke antwoord voor een specifiek land is om de module van dat land te controleren.

Kan ik Nordlet zelf hosten?

Niet op de standaardplannen. Het Custom-niveau vermeldt ondersteuning voor bring-your-own-cloud, wat de bespreking is die je kunt voeren als self-hosting een vereiste is.

Verder lezen