Naar de hoofdinhoud

Technische API-documentatie | Microsoft Dynamics 365 Business Central

D
Geschreven door Dorien Dijkwel
Deze week bijgewerkt

De integratie van Moss met Microsoft Dynamics 365 Business Central (MSBC) maakt een naadloze synchronisatie van boekhoud- en betalingsgegevens tussen Moss en MSBC mogelijk.

De integratie maakt gebruik van standaard Microsoft API's in combinatie met een lichtgewicht Moss-extensie die tijdens de verbinding enkele aangepaste eindpunten implementeert. Het totale ontwerp zorgt voor consistentie en traceerbaarheid van gegevens en een minimale impact op de BC-omgeving van de klant.


1. Gegevensimport (leesbewerkingen)

Moss importeert belangrijke stamgegevens uit Business Central met behulp van standaard BC API-eindpunten. Deze imports worden gebruikt om transacties te valideren en te classificeren voordat er boekhoudkundige bestanden worden aangemaakt.

Dataobject

API-eindpunt

Doel

Grootboekrekeningen

/accounts

Importeert het volledige rekeningstelsel van de klant, inclusief rekening-ID's, nummers en namen. Wordt gebruikt om Moss-transacties aan de juiste grootboekrekeningen te koppelen.

Leveranciers

/vendors

Importeert leveranciersstamgegevens, waaronder leveranciers-ID's, namen en nummers, om Moss-betalingen en facturen te koppelen aan BC-leveranciers.

Instellingen voor btw-boekingen

/vatPostingSetup

Haal btw-bedrijfs- en productboekingsgroepen, btw-percentages en btw-codenamen op uit de btw-instellingstabellen van BC om de juiste belastingtarieven toe te passen in Moss.

Dimensies

/dimensions, /dimensionValues

Importeert beschikbare dimensies die zijn geconfigureerd in BC. Moss gebruikt deze om analytische tags (bijv. kostenplaatsen, afdelingen) toe te passen tijdens het exporteren van transacties.

⚠️Let op: Moss importeert of synchroniseert momenteel geen BC-projecten. Alleen standaard dimensietabellen worden ondersteund.


2. Gegevensexport (schrijfbewerkingen)

Wanneer transacties klaar zijn voor boekhouding, exporteert Moss ze naar BC als concept-inkoopfacturen, inkoopkredietnota's en betalingsdagboekregels. Deze bewerkingen zijn voornamelijk gebaseerd op standaard BC API's, terwijl de Moss-extensie een aantal ondersteunende API-pagina's biedt voor verbeterde prestaties en validatie.

2.1 Inkoopfactuur aanmaken

Eindpunt: /purchaseInvoices

Moss maakt inkoopfacturen aan in conceptstatus met behulp van leveranciers-, belasting- en dimensiegegevens die eerder uit BC zijn geïmporteerd.

Functionaliteit:

  • Maakt een koptekst en regelitems voor een inkoopfactuur aan.

  • Past leverancier, btw-boekingsgroepen en valutacode toe.

  • Voegt gedetailleerde regelbeschrijvingen en dimensiesetassociaties toe.

  • Berekent het totale bedrag inclusief/exclusief btw.

Voorbeeldverzoek:

{
"vendorInvoiceNumber": "79154644",
"vendorNumber": "K00870",
"invoiceDate": "2025-09-25",
"postingDate": "2025-09-25",
"dueDate": "2025-09-25",
"currencyCode": "EUR",
"pricesIncludeTax": true,
"vatBusPostingGroup": "INLAND",
"purchaseInvoiceLines": [...],
"dimensionSetLines": [...]
}

Respons: Geeft het aangemaakte inkoopfactuurobject terug met het door het systeem gegenereerde factuurnummer, totalen en leverancierskoppeling.

2.2 Inkoopkredietnota aanmaken

Eindpunt: /purchaseCreditMemos

Wordt gebruikt voor krediettransacties of terugbetalingen met betrekking tot Moss-aankopen. De payload- en responsstructuur komt overeen met die van inkoopfacturen, met negatieve regelbedragen of aangepaste hoeveelheden.

2.3 Betalingsdagboekregels aanmaken

Eindpunt: /journalLines

Nadat facturen zijn aangemaakt, genereert Moss boekingen in het leveranciersbetalingsdagboek om betalingen te registreren en transacties te reconciliëren.

Functionaliteit:

  • Boekingen naar een vooraf gedefinieerde dagboekbatch (bijv, MOSS2).

  • Koppelt de betaling aan het bijbehorende inkoopdocument (mossPurchaseDocumentNumber).

  • Past het balanceren van de GL-rekening toe (bijv. clearing- of bankrekening).

  • Zorgt voor consistentie in leverancierskoppelingen en valuta.

Voorbeeldverzoek:

{
"journalId": "7a2e7735-1823-ed11-90eb-0022485c23c1",
"vendorId": "4b327804-5bba-f011-bbd1-00224813b514",
"accountType": "Vendor",
"postingDate": "2025-09-25",
"amount": 101.34,
"currencyCode": "EUR",
"balanceAccountType": "G/L Account",
"balancingAccountNumber": "1201",
"mossPurchaseDocumentNumber": "107599"
}

2.4 Behandeling van bijlagen

Eindpunt: /attachments

Moss uploadt betaalbewijzen en ondersteunende bestanden rechtstreeks naar de aangemaakte inkoopdocumenten.

Functionaliteit:

  • Creëert een bijlage die gekoppeld is aan de moederfactuur of kredietnota.

  • Uploadt pdf-bonnen en auditlogboeken.

  • Maakt gebruik van de eigen bestandsverwerking van BC voor veilige opslag en opvraging.

Voorbeeldverzoek:

{
"parentId": "dbcf662c-d4ba-f011-bbd1-7ced8da973c2",
"parentType": "Purchase Invoice",
"fileName": "receipt--79154644.pdf"
}


3. Overzicht van gebruikte API-eindpunten

Actie

BC-eindpunt

Richting

Doel

Grootboekrekeningen importeren

/accounts

Lezen

GL-rekeningen laden voor transactiemapping.

Leveranciers importeren

/vendors

Lezen

`leveranciers-ID's en -namen ophalen.

Btw-instellingen importeren

/vatPostingSetup

Lezen

Btw-groepen en -tarieven ophalen.

Dimensies importeren

/dimensions, /dimensionValues

Lezen

Actieve dimensies voor tagging importeren.

Inkoopfactuur aanmaken

/purchaseInvoices

Schrijven

Onkostentransacties registreren.

Inkoopkredietnota aanmaken

/purchaseCreditMemos

Schrijven

Restitutie- of krediettransacties registreren.

Betalingsdagboekregel aanmaken

/journalLines

Schrijven

Betalingsreconciliaties registreren.

Bijlagen uploaden

/attachments

Schrijven

Bonnen en auditbestanden toevoegen aan facturen.


4. Functioneel overzicht

  1. Gegevenssynchronisatie (importeren): Moss haalt stamgegevens (rekeningen, leveranciers, btw-instellingen, dimensies) op uit BC.

  2. Transactievoorbereiding: Moss verrijkt transacties met de juiste BC-referenties en dimensietags.

  3. Exporteren (documenten aanmaken): Moss maakt inkoopfacturen en kredietnota's aan in BC.

  4. Reconciliatie van betalingen: Moss boekt betalingsdagboekregels met verwijzing naar hetzelfde document.

  5. Bijlagen: Moss uploadt ondersteunende betaalbewijzen en auditlogboeken naar BC.


5. Beveiliging en machtigingen

  • Alle gegevensuitwisselingen vinden plaats via de officiële Business Central REST/OData API onder OAuth-autorisatie.

  • Moss vereist toestemming van een admin in Microsoft Entra ID voor API-toegang.

  • Er vinden geen directe databasetoegang of codewijzigingen plaats binnen BC.

  • De integratie is volledig omkeerbaar. Door de Moss-extensie te verwijderen of de API-toestemming in te trekken, wordt de toegang onmiddellijk verwijderd.


6. Extensiespecifieke eindpunten (ter verduidelijking)

Hoewel de meeste bewerkingen gebruikmaken van standaard BC API's, zijn de aangepaste extensie-eindpunten van Moss beperkt tot een paar technische hulpmiddelen voor efficiëntie:

  • Inkoopfacturen en kredietnota's aanmaken/zoeken

  • Bankrekeningen van leveranciers ophalen

  • Btw-boekingen instellen

  • Dagboekregels aanmaken/zoeken

  • Betalingsdagboeken ophalen

Alle andere functionaliteiten, waaronder het lezen van stamgegevens en het toevoegen van bestanden, maken gebruik van de standaard API-structuur van Microsoft.



Technische details voor het installeren en aansluiten van de Moss-extensie op Microsoft Dynamics 365 Business Central

Hieronder vind je een gedetailleerd overzicht van hoe de Moss-extensie voor Microsoft Dynamics 365 Business Central (BC) wordt geïnstalleerd, wat deze doet en waar je IT-team rekening mee moet houden.

Wat is er geïnstalleerd?

  • Extensienaam: Moss Integration (uitgever: Moss)

    Versie: 1.2.0.0 • Doel: Cloud • Runtime: 9.0 • Platform: 26.x. app

  • De app maakt gebruik van een kleine set API-pagina's (voor dagboekregels, leveranciersbetalingsdagboeken, dimensies, bijlagen) en een lichte tabelextensie op BC's algemene dagboekregel om één Moss-specifiek referentieveld toe te voegen.

    • (Objecten krijgen het voorvoegsel ‘Moss...’, bijvoorbeeld MossDagboekRegels, MossBijlage etc.)

Hoe installatie en verbinding werken

  1. Toestemming/goedkeuring van de admin: wanneer je Moss met BC verbindt, geeft je Microsoft Entra-admin (voorheen Azure AD) toestemming aan de Moss-applicatie om BC API's in je tenant op te roepen. Toestemming van de admin is een standaardstap voor BC API-integraties.

  2. Inzet van de extensie: de Moss-extensie wordt als onderdeel van die verbindingsworkflow (per-tenant installatie) op je BC-tenant geïnstalleerd. Het installeren van een extensie in BC omvat publiceren → synchroniseren → installeren, wat programmatisch wordt afgehandeld door de verbindingsflow.

Let op:

  • De Moss-extensie staat niet vermeld op AppSource, maar wordt geleverd tijdens de verbinding. Dit is nog steeds een standaard implementatiepatroon voor per-tenant extensies dat wordt ondersteund door BC.

  • Moss gebruikt dezelfde verbinding om upgrades en fixes op de achtergrond te leveren.

  • Wanneer de Moss API wordt verbroken, verwijdert Moss automatisch de gekoppelde extensie.

Geopende of gesynchroniseerde gegevens

Via de Moss-extensie wordt slechts een beperkt aantal Business Central-eindpunten gebruikt. Deze omvatten de belangrijkste acties die nodig zijn voor dagboekboekingen, crediteuren en bijlagen. Alle andere gegevensuitwisseling verloopt via de standaard Business Central API's van Microsoft, zonder aanpassingen.

Gebied

Richting

Doel/opmerkingen

Grootboekrekeningen

Lezen

Noodzakelijk om GL-rekeningen te valideren bij het aanmaken van dagboekregels (via het standaard 'journalLines' API-model van BC).

Leveranciers

Lezen

Wordt gebruikt om te verwijzen naar leveranciers-ID's/nummers bij het opstellen van dagboeken met betrekking tot crediteuren.

Belasting-/btw-codes

Lezen

Ontleend aan BC's 'VAT Posting Setup' om correcte codering in dagboeken te garanderen.

Dimensies en dimensiewaarden

Lezen

Dimensiewaarden worden weergegeven als alleen-lezen voor validatie; 'Dimension Set Lines' worden verwerkt via een bufferpagina om ze te koppelen aan dagboeken (BC best practice voor prestaties).

Algemene dagboekregels

Schrijven

Moss schrijft dagboekregels (bedragen, rekeningen, dimensies etc.) via een speciale API-pagina die is afgestemd op het journalLines-model van BC.

Betalingsdagboeken leveranciers

Schrijven

Moss maakt/werkt batches en regels van het leveranciersbetalingsdagboek bij om betalingen voor te bereiden.

Bijlagen (bonnen/facturen)

Lezen/schrijven

Betaalbewijzen en factuurbestanden worden opgeslagen en gekoppeld met behulp van de standaard bufferentiteiten van BC voor bijlagen.

Concreet gebruikt Moss alleen de volgende eindpunten via de extensie:

  • Inkoopfacturen aanmaken en zoeken

  • Bankrekeningen van leveranciers ophalen

  • Btw-boekingen instellen

  • Dagboekregels aanmaken en zoeken

  • Inkoopkredietnota's aanmaken en zoeken

  • Betalingsdagboeken ophalen

Dit zorgt ervoor dat de integratie lichtgewicht, transparant en volledig afgestemd blijft op het door Microsoft ondersteunde API-framework.

Wat zijn de veranderingen in je BC-omgeving?

  • Geen wijzigingen in de kerncode. Dit is een standaardextensie: hij wijzigt de basiscode van Microsoft niet.

  • Nieuwe API-pagina's voor Moss-entiteiten (dagboekregels, dimensies, bijlagen, leveranciersbetalingsdagboeken).

  • Eén tabelextensie die een Moss-referentieveld toevoegt aan de algemene dagboekregel (gebruikt om boekingen te correleren met Moss).

  • Codeunits die bijlagen verwerken en de totalen van inkooptotalen bijwerken (zodat bedragen/btw consistent zijn voordat ze worden geboekt).

  • Verwijderbaar: de app kan indien nodig worden verwijderd zoals elke andere BC-extensie.

Veiligheids- en goedkeuringsaspecten voor IT

  • Toestemmingsbereik admin: je Entra-admin geeft tenant-wijde toestemming aan Moss om toegang te krijgen tot BC API's voor geautoriseerde bedrijven in je tenant. Dit is hetzelfde OAuth-model dat ook door andere BC-integraties wordt gebruikt.

  • Principe van minimale privilege in BC: zorg ervoor dat binnen BC de Moss-applicatie (of de gebruiker erachter) over de benodigde rechten beschikt voor de schrijfbewerkingen (dagboeken, leveranciers, dimensies, bijlagen). Moss raadt aan om die gebruiker superrechten en speciale rechten voor het beheer van extensies toe te kennen om synchronisatieproblemen te voorkomen.

  • Gegevensopslag: alle uitgewisselde gegevens blijven binnen je BC-tenant; Moss leest stamgegevens (rekeningen, leveranciers, dimensies) en schrijft alleen dagboeken/bijlagen die nodig zijn voor de synchronisatie.

  • Bijlagen: bestanden worden opgeslagen met behulp van de standaardbijlageverwerking van BC; de inhoud wordt verplaatst via de 'Attachment Entity Buffer'-typen van BC en gekoppeld aan de juiste bestanden.

  • Veranderingsbeheer: Omdat de app alleen API-pagina's en een kleine tabelextensie toevoegt, is het risico voor kernprocessen laag. Toch raden we aan om eerst te valideren in een sandbox en vervolgens door te gaan naar productie. Dit is in lijn met het door Microsoft aanbevolen proces voor extensies.

  • Monitoring en rollback: Net als bij elke BC-app kun je de extensie bekijken in 'Extension Management' en indien nodig verwijderen of terugzetten. Moss raadt dit echter af, omdat hierdoor de functionaliteit van de verbinding wordt onderbroken. Moss verwijdert de extensie automatisch als de verbinding met de applicatie wordt verbroken.

Operationele workflow in één oogopslag

  1. Entra-admin keurt de Moss → BC OAuth-verbinding goed.

  2. Moss installeert en activeert de per-tenant extensie in je BC-omgeving.

  3. Moss leest je stamgegevens (grootboekrekeningen, leveranciers, dimensies, belastingcodes).

  4. Moss creëert/updatet algemene dagboekregels en (optioneel) betalingsdagboekregels voor leveranciers om boekhoudkundige/betalingsboekingen voor te bereiden.

  5. Moss slaat links/bestanden op als bijlagen bij de relevante boekingen met behulp van de 'Attachment Entity Buffer' van BC.

Transparantie over het Moss-apppakket

Het app-manifest geeft aan dat zichtbaarheid van bronnen is ingeschakeld voor foutopsporing en bronsymbolen, standaard voor ondersteuning. (Velden: allowDebugging, allowDownloadingSource, includeSourceInSymbolFile.)

Indien gewenst kunnen we een kort telefoongesprek tussen je IT-admin en ons team inplannen om het toestemmingsscherm en een checklist voor sandboxvalidatie door te nemen.

Was dit een antwoord op uw vraag?