Boekhouding & administratie

Odoo-koppeling laten maken

Ik koppel Odoo aan je webshop, CRM, planning, dashboard of eigen software via de externe API van Odoo. Klanten, producten, orders, facturen en voorraad gaan heen en weer, met een API-sleutel van een eigen integratiegebruiker. Draait je koppeling nog op XML-RPC of JSON-RPC, dan zet ik hem om naar de JSON-2 API voordat Odoo die oude endpoints weghaalt. Let op: van de abonnementen van Odoo geeft alleen Custom externe API-toegang; draai je Odoo Community op een eigen server, dan heb je geen abonnement nodig.

Alle integraties

Zo loopt de data

voorbeeldopzet

Sync-log, zoals je hem in het logboek terugziet (voorbeeld)

Bestellingen uit de webshop worden verkooporders in Odoo, gewonnen deals uit het CRM worden offertes, contacten en producten blijven gelijk met je eigen software en facturen en orders gaan naar een dashboard.
  • Order, wordt Verkooporder: van Webshop naar Odoo, direct, via webhook.
  • Deal, wordt Offerte: van CRM naar Odoo, direct, via webhook.
  • Contact, Product: tussen Eigen software en Odoo, in beide richtingen, periodiek opgevraagd.
  • Facturen, Orders: van Odoo naar Dashboard, periodiek opgevraagd.

Kort antwoord

Werkgebied: Nederland · Bijgewerkt op door Alisina Nawabi

Wat het is
Een Odoo-koppeling verbindt je Odoo-database met andere systemen via de externe API. Sinds Odoo 19 is dat de JSON-2 API, met een API-sleutel als bearer token; de oude XML-RPC- en JSON-RPC-endpoints verdwijnen. Contacten, producten, verkoop- en inkooporders, facturen, betalingen en leveringen zijn te lezen en te schrijven.
Voor wie
Bedrijven met Odoo op het Custom-abonnement, online, op Odoo.sh of op een eigen server, of met Odoo Community op een eigen server, die een webshop, CRM, dashboard of eigen software willen koppelen, en softwarebedrijven die Odoo in hun product willen ondersteunen.
Doorlooptijd
Een eerste koppeling tussen twee systemen staat meestal binnen 2 weken live. Meer objecten, richtingen of administraties kosten meer tijd; dat staat vooraf in de offerte.
Prijsindicatie
vanaf €4.000 voor een basisopzetEen basisopzet is één koppeling tussen twee systemen, gebouwd, getest en gedocumenteerd. Meer objecten, richtingen, administraties of uitzonderingen maken het groter. Je krijgt vooraf een vaste prijs.

Welke data synchroniseer ik?

Zo richt ik het meestal in. De tabel is ook het startpunt van de intake: jij bepaalt per object de richting en de bron.

Welke data de koppeling synchroniseert, in welke richting, wie de bron is en hoe vaak
ObjectRichtingBron van waarheidFrequentie
Contacten (klanten en leveranciers)Elk record heeft een write_date, zodat de koppeling alleen ophaalt wat veranderde.beide kantenCRM of Odoo, per veld afgesprokenElk kwartier, op de laatste wijziging
Producten en prijzenvan OdooOdooBij elke wijziging
VerkoopordersBevestigen gaat via een bedrijfsmethode van Odoo, in één transactie.naar OdooWebshop of CRMDirect, op een webhook van de webshop
Leveringen en ontvangstenvan OdooOdooElk kwartier
Facturen en creditnota’svan OdooOdooNa boeking
Betalingennaar OdooBetaalprovider of bankPer betaling

Wat je met een Odoo-koppeling doet

Voor bedrijven die zelf met de software werken, en voor wie er een product op bouwt voor eigen klanten.

  1. Webshoporders als bevestigde verkooporder

    Webwinkel op Shopify of WooCommerce met Odoo als ERP

    1. Bestelling binnen in de webshop
    2. Klant gevonden of aangemaakt in Odoo
    3. Verkooporder aangemaakt en bevestigd
    4. Levering volgt in Odoo met de app Voorraad, de factuur vanuit de order

    Elke bestelling staat meteen goed in Odoo, met de juiste klant en producten, zonder overtypen.

    Wat de API hiervoor biedt: Via de JSON-2 API maak je contacten en verkooporders aan, en een bedrijfsmethode zoals action_confirm bevestigt een order in één transactie. Elke aanroep loopt als de gebruiker van de API-sleutel, met diens rechten. De factuur maak je na bevestiging vanuit de order. Voor Shopify heeft Odoo zelf een Shopify Connector, die orders, producten en voorraad synchroniseert; volgens de documentatie werkt die alleen op Odoo.sh, vanaf versie 19.0. Maatwerk past bij WooCommerce, bij Shopify op Odoo Online of een eigen server, of als die connector niet doet wat je nodig hebt.

  2. Orders uit e-mail en PDF als offerte in Odoo

    Groothandel of producent die orders per mail krijgt

    1. PDF-order komt binnen per mail
    2. AI leest klant, artikelen en aantallen
    3. Offerte in Odoo met de juiste klant en producten
    4. Binnendienst controleert en bevestigt

    De binnendienst bevestigt orders in plaats van ze over te typen, en houdt zelf de laatste stap.

    Wat de API hiervoor biedt: Een verkooporder die via de API wordt aangemaakt, begint als offerte; bevestigen is een aparte bedrijfsmethode. Zo kan een mens de laatste stap houden.

    Lees de uitwerking in de gids
  3. Gewonnen deals als offerte in Odoo

    Bedrijf met HubSpot of Pipedrive als CRM en Odoo voor orders en facturen

    1. Deal gewonnen in het CRM
    2. Organisatie en contactpersoon gevonden of aangemaakt
    3. Offerte met regels in Odoo
    4. Orderstatus en factuur terug naar het CRM

    Sales werkt in het CRM, de administratie in Odoo, en beide zien dezelfde stand.

    Wat de API hiervoor biedt: Contacten, verkooporders en facturen zijn via de API te lezen en te schrijven. Elk record heeft een write_date, zodat de koppeling alleen ophaalt wat sinds de vorige keer veranderde.

  4. Een XML-RPC-koppeling op tijd naar JSON-2

    Bedrijf met een bestaande Odoo-koppeling

    1. Koppelingen op /xmlrpc en /jsonrpc in kaart
    2. Integratiegebruiker met een eigen API-sleutel
    3. Aanroepen omgezet naar /json/2
    4. Getest op een kopie van de database

    Geen koppeling die stilvalt als Odoo de oude endpoints weghaalt.

    Wat de API hiervoor biedt: XML-RPC en JSON-RPC zijn verouderd sinds Odoo 19. Odoo plant de verwijdering voor Odoo Online 21.1 (winter 2027) en Odoo 22 (najaar 2028); de JSON-2 API is de vervanger.

    Lees de uitwerking in de gids

Wat de API van Odoo ondersteunt

Per object wat er via de API kan, sinds Odoo 19 via /json/2/<model>/<methode>. Welke modellen en velden je database heeft, hangt af van de geïnstalleerde apps; een webhook loopt via een automatiseringsregel.

Per object: lezen, aanmaken, wijzigen, verwijderen en webhook-ondersteuning in de Odoo-API
ObjectLezenAanmakenWijzigenVerwijderenWebhook
Contactenres.partnerKlanten en leveranciers in één model. Een webhook via een automatiseringsregel.jajajajadeels
Productenproduct.templatejajajajadeels
Verkooporders en offertessale.orderBevestigen via action_confirm. Verwijderen kan alleen bij een concept of geannuleerde order.jajajadeelsdeels
Facturen en boekingenaccount.moveFacturen, creditnota’s, inkoopfacturen en memoriaal in één model. Geboekte boekingen blijven staan als de audittrail aan staat.jajajadeelsdeels
Betalingenaccount.paymentEen geboekte betaling gaat weg met haar boeking, dus niet als de audittrail aan staat.jajajadeelsdeels
Inkooporderspurchase.orderEerst annuleren, dan verwijderen.jajajadeelsdeels
Leveringen en ontvangstenstock.pickingEen afgeronde levering of ontvangst kan niet weg; daarvoor maak je een retour.jajajadeelsdeels
Leads en verkoopkansencrm.leadjajajajadeels
Projecttakenproject.taskjajajajadeels
Medewerkershr.employeeWat de koppeling ziet, volgt de HR-rechten van de integratiegebruiker.jajajajadeels

ja kan via de APIdeels kan met beperkingennee kan niet

Techniek en deadlines

De feiten waar een koppeling op rust, met de bron erbij. En wat er de komende tijd verandert.

API
Sinds Odoo 19 de JSON-2 API: een POST naar /json/2/<model>/<methode> op je eigen database. Welke modellen, velden en methodes er zijn, verschilt per database en staat op de /doc-pagina van die database. Elke aanroep is één transactie.
Authenticatie
Een API-sleutel als bearer token, per gebruiker aangemaakt onder Voorkeuren, Accountbeveiliging. Een sleutel geldt hoogstens drie maanden en wordt maar één keer getoond. Aanroepen vallen onder de rechten van die gebruiker; Odoo raadt een aparte botgebruiker aan.
Abonnement
Op de abonnementen van Odoo zit externe API-toegang alleen in Custom, niet in One App Free of Standard; Odoo Community, de open-source versie op een eigen server, heeft de JSON-2 API ook, zonder abonnement. Aanroepen die Odoo zelf doet, zoals naar betaalproviders of vervoerders, vallen daar niet onder. Over Studio en meerdere bedrijven is de prijspagina het niet met zichzelf eens: de ene vraag zegt dat Studio installeren of een tweede bedrijf toevoegen een database automatisch op Custom zet, een andere dat One App Free meerdere bedrijven toestaat en Studio de ene gratis app mag zijn. De prijspagina noemt bij die regel nog XML-RPC en JSON-RPC; de documentatie past hem ook toe op JSON-2.
Hosting en plan
Standard draait alleen op Odoo Online. Custom kan ook op Odoo.sh of op een eigen server.
Limieten
De API-documentatie noemt geen vaste limiet. Het gebruiksbeleid van Odoo Cloud verbiedt ongeremde aanroepen en noemt één aanroep per seconde, zonder parallelle aanroepen, doorgaans acceptabel bij kortstondig gebruik, dus niet als vast tempo. Op Odoo.sh kan dedicated hosting die grens opheffen.
Webhooks
Via automatiseringsregels: een uitgaande Send Webhook Notification bij aanmaken, wijzigen of verwijderen, en inkomende webhooks die een actie in Odoo starten. In Odoo Enterprise maak je die regels in Studio. Zonder Studio, zoals in Odoo Community, maak je ze in de ontwikkelaarsmodus; de module base_automation is open source en zit ook in Community. Een uitgaande webhook is één POST, zonder nieuwe poging bij een fout.
Testen
Op Odoo Online een kopie van de database, 15 dagen geldig en hoogstens vijf per database, standaard met e-mails, betalingen en leveringen uit. Op Odoo.sh stagingbranches met een geneutraliseerde kopie van productie, die na een maand worden opgeruimd.
Versies
Odoo 20 verscheen in september 2026, Odoo 19 in september 2025. Standaardsupport loopt drie jaar. Op Odoo Online is een upgrade van een hoofdversie elke twee jaar verplicht, en een tussenversie moet een paar weken na de volgende mee.
MCP
Odoo 20 heeft een officiële MCP-server in de app AI, waarmee een AI-agent de database leest of wijzigt, met OAuth voor interne gebruikers. Welk abonnement daarvoor nodig is, noemt de documentatie niet; de AI-app op Standard leidt naar Custom. De broncode van Odoo Community bevat geen app AI.
Hosting
Odoo Online in de regio Europa draait in Frankrijk en België. Over back-ups verschillen de pagina’s: het privacybeleid noemt alleen EU-locaties voor nieuwe klanten vanaf Odoo 19, met voor andere EU-klanten nog een extra kopie in Canada tot de overstap klaar is; de SLA noemt Europa en Canada.
Nederland
De Nederlandse lokalisatie levert rekeningschema en btw. Odoo Enterprise voegt daar Nederlandse rapporten, een XAF-auditbestand en btw-aangifte via SBR aan toe, en importeert bankafschriften ook als CAMT.053. Odoo Community heeft alleen de basismodule l10n_nl; de vergelijking van Odoo zet de volledige boekhouding, met lokalisaties, rapporten en bankafstemming, bij Enterprise.

Deadlines en wijzigingen

Wat de leverancier heeft aangekondigd, en wat het voor een bestaande koppeling betekent.

  1. al ingegaan

    XML-RPC en JSON-RPC verouderd sinds Odoo 19

    De endpoints /xmlrpc, /xmlrpc/2 en /jsonrpc verdwijnen volgens Odoo in Odoo Online 21.1 (winter 2027) en Odoo 22 (najaar 2028). Een koppeling daarop moet naar de JSON-2 API, met een API-sleutel per gebruiker.

  2. al ingegaan

    Odoo 20 zonder de db-service van XML-RPC en JSON-RPC

    Volgens de documentatie van Odoo 20 is de db-service al weg in Odoo 20 en Odoo Online 19.1; de pagina van Odoo 19 noemt voor alle drie de services nog Odoo 22. Databasebeheer via die API werkt op de nieuwe versies dus niet meer.

  3. komt eraan

    Standaardsupport voor Odoo 18 stopt (gepland)

    Odoo 18 heeft de JSON-2 API nog niet; die is nieuw in Odoo 19. Wie op 18 draait, moet voor support en voor JSON-2 toch upgraden.

App, iPaaS of maatwerk?

Niet elke koppeling hoeft maatwerk te zijn. Zo kies je de route die past.

Een ingebouwde koppeling of module in Odoo

Past als: Odoo koppelt zelf met onder meer betaalproviders, vervoerders en bankfeeds. Zulke aanroepen vanuit Odoo vallen volgens Odoo niet onder de externe API en zitten ook in Standard. Voor Shopify heeft Odoo een eigen Shopify Connector, volgens de documentatie alleen op Odoo.sh.

Grens: Je volgt de logica van de module. Een systeem dat zelf Odoo moet aanroepen, zoals je webshop, CRM of eigen software, valt erbuiten.

Zapier, Make of n8n

Past als: Voor een losse melding of een eenvoudige stap, zoals een lead uit een formulier.

Grens: Ook een iPaaS gebruikt de externe API, dus op een abonnement van Odoo is Custom nodig. API-sleutels verlopen na hoogstens drie maanden, en op Odoo Online en Odoo.sh zonder dedicated hosting noemt het gebruiksbeleid één aanroep per seconde, zonder parallelle aanroepen, alleen bij kortstondig gebruik doorgaans acceptabel.

Maatwerk op de JSON-2 API

Past als: Als orders, voorraad en facturen precies moeten kloppen, als je van XML-RPC af moet, of als je Odoo in je eigen product inbouwt.

Grens: Een hogere eenmalige investering dan een module, en op een abonnement van Odoo heb je Custom nodig.

Standaard-app, iPaaS of maatwerk voor Odoo?

Bestaat er al een app in de marktplaats die precies doet wat je met Odoo wilt?

Zo pak ik het aan

Vier stappen, met een vaste prijs vooraf. Een basisopzet begint vanaf €4.000.

  1. 1

    Dag 1

    Intake

    Een kort gesprek over je systemen, je proces en wat er misgaat. Ik vul samen met jou de sync-tabel in: welk object, welke richting, wie de bron is en hoe vaak.

  2. 2

    Binnen een paar dagen

    Vaste offerte

    Je krijgt een voorstel met scope, vaste prijs en planning. Geen uurtje-factuurtje: je weet vooraf wat het kost en wat je krijgt.

  3. 3

    Week 1-2

    Bouwen en testen

    Ik bouw de koppeling op jouw eigen account en test met echte voorbeelden, inclusief de randgevallen: creditnota's, dubbele records, een API die even niet antwoordt. Een eerste koppeling staat binnen 2 weken live.

  4. 4

    Daarna

    Live en beheer

    De koppeling gaat live met monitoring en een foutenlijst die je kunt inzien. Je krijgt documentatie en een overdracht. Onderhoud kan, maar hoeft niet bij mij.

Veilig, en van jou

Hoe ik met je toegang omga, en waarom de koppeling op jouw account draait.

Ik vraag nooit om je Odoo-wachtwoord.

  • De koppeling draait als een aparte integratiegebruiker met een eigen API-sleutel en alleen de rechten die nodig zijn. Jij kunt die sleutel op elk moment intrekken.
  • Sleutels staan versleuteld, in jouw omgeving of op een Europese server, en worden op tijd vervangen.
  • Gegevens gaan rechtstreeks tussen jouw systemen en Odoo, zonder omweg via derden.
  • Ik test op een kopie van je database of een stagingbranch, met externe acties uit, nooit eerst in productie.

Wie beheert de koppeling

De koppeling draait op jouw account, niet op dat van mij. Ik bouw, documenteer en onderhoud hem; jij houdt het eigendom en de toegang.

Account
De koppeling draait in je eigen Odoo-database, als een integratiegebruiker die jij aanmaakt, met een API-sleutel van die gebruiker. Op een abonnement van Odoo vraagt externe API-toegang Custom, op jouw naam; Odoo Community op een eigen server heeft geen abonnement nodig.
Sleutels
De API-sleutel staat in jouw omgeving. Jij kunt hem in Odoo op elk moment intrekken; een ingetrokken sleutel werkt meteen niet meer.
  • Jouw account en jouw app-registratie bij de leverancier. Ik verkoop geen eigen koppel-abonnement en zit er niet tussen.
  • Jij bent eigenaar van de code en de documentatie. Stop je met mij, dan kan een andere ontwikkelaar verder.
  • Bouw je zelf een product voor jouw klanten? Dan draait het op jouw toegang en, waar de leverancier dat vraagt, op jouw certificering.

Onderhoud en monitoring

Een koppeling is pas af als je merkt dat er iets misgaat voordat je klant het merkt.

Foutenlijst met herkansing
Wat niet lukt, verdwijnt niet. Het komt in een wachtrij met de reden erbij en wordt opnieuw geprobeerd, met steeds langere tussenpozen.
Geen dubbele of gemiste records
Elke boeking krijgt een vaste sleutel, zodat een herhaalde poging nooit een tweede factuur of order maakt.
Alarm bij stilte
Komt er een tijd geen data binnen terwijl dat wel zou moeten, dan krijg je een melding. Een stilgevallen koppeling merk je zo voordat je klant belt.
Logboek
Per record zie je wanneer het ging, wat er ging en wat het andere systeem antwoordde. Handig voor je boekhouder en voor jezelf.
Sleutels op tijd vervangen
Een API-sleutel van Odoo geldt hoogstens drie maanden. De koppeling waarschuwt ruim vooraf, en een nieuwe sleutel gaat erin zonder stilstand.
Klaar voor het einde van XML-RPC
Ik bouw op de JSON-2 API. Een bestaande koppeling op XML-RPC of JSON-RPC zet ik om vóór Odoo Online 21.1 of Odoo 22, wat voor jouw database het eerst komt.
Mee met de upgrades
Odoo Online upgradet verplicht, en zonder actie automatisch. Ik test de koppeling op een kopie zodra er een nieuwe versie klaarstaat, zodat een veranderd veld niet pas in productie opvalt.
Binnen het gebruiksbeleid
Het gebruiksbeleid van Odoo Cloud noemt één aanroep per seconde alleen bij kortstondig gebruik doorgaans acceptabel. Op Odoo Online en op Odoo.sh zonder dedicated hosting doseer ik aanroepen daarom, één voor één en in batches, en haal ik alleen op wat sinds de vorige keer veranderde.

Verder lezen

Mijn gidsen en artikelen die dieper ingaan op Odoo.

Klantorders uit e-mail en PDF automatisch in je ordersysteem krijgen
Gids
Uitgebreide gids14 min

2 aug 17:00

Klantorders uit e-mail en PDF automatisch in je ordersysteem krijgen

Van een PDF-bijlage in je mailbox naar gevalideerde orderregels in je ERP, zonder overtypen. De vertaaltabel voor klantartikelnummers, de zeven controles op volgorde, de uitzonderingenwachtrij en een eerlijk kader tussen portaal, parser en maatwerk.

Legacy ERP koppelen zonder API: route kiezen en herstellen
Gids
Uitgebreide gids18 min

16 okt 17:00

Legacy ERP koppelen zonder API: route kiezen en herstellen

Een legacy ERP zonder publieke API hoeft geen handwerk te blijven. Kies per datastroom de juiste ingang, leg eigenaar en support vast, test met bewijs en zorg dat je veilig stopt, herstelt of vervangt.

Twee PSP’s koppelen aan één ERP: van routing tot menselijke vrijgave
Gids
Uitgebreide gids18 min

15 okt 09:00

Twee PSP’s koppelen aan één ERP: van routing tot menselijke vrijgave

Twee PSP’s koppelen aan één ERP vraagt meer dan twee API’s. Bouw één canoniek transactiedossier voor routing, provider-ID’s, payouts, fees, refunds en chargebacks, met beperkte ERP-writes en menselijke vrijgave voor uitzonderingen.

AI-agent voor verkooporders in de groothandel: veilige ERP-vrijgave
Gids
Uitgebreide gids18 min

10 okt 09:00

AI-agent voor verkooporders in de groothandel: veilige ERP-vrijgave

Laat e-mail-, pdf- en portalorders gecontroleerd naar je ERP gaan: bewijs klant, artikel, contractprijs en beschikbare voorraad vóór menselijke vrijgave.

Een WMS kiezen: test de mislukte pick van ontvangst tot ERP
Gids
Uitgebreide gids17 min

27 okt 17:00

Een WMS kiezen: test de mislukte pick van ontvangst tot ERP

Een WMS kies je niet op een groene demo. Test ontvangstverschil, blinde telling, mislukte pick, menselijke correctievrijgave en de terugmelding naar ERP en webshop met exact dezelfde proef.

CBAM importvrijgave: van CN-code naar certificaten
Gids
Uitgebreide gids20 min

30 sep 09:00

CBAM importvrijgave: van CN-code naar certificaten

Bouw een controleerbare CBAM-keten van CN-code en leveranciersdata naar autorisatie, douanevrijgave, uitzonderingen en certificaten. Met een koperstest per import.

Andere koppelingen

Werk je met meer tools? Combineer Odoo met je andere systemen en zie hoe er één workflow van ontstaat.

FAQ

Veelgestelde vragen over de Odoo-koppeling

Antwoorden op wat het vaakst gevraagd wordt over Odoo koppelen.

Klaar om Odoo te koppelen?

Vertel me welke systemen je gebruikt en wat er nu misgaat. Ik denk mee en zeg eerlijk wat er kan, vrijblijvend.

Bekijk alle integraties

Liever eerst zelf kijken waar de winst zit? Doe de gratis automatiseringsscan