Exact Online API rechten van een user op specifieke endpoint

Wij gebruiken de Invantive Data Hub om gegevens uit Exact Online te onttrekken. Bij het benaderen van de PurchaseInvoices en PurchaseInvoiceLines worden er geen gegevens getoond. In Exact Online is te zien dat er wel degelijk inkoopfacturen worden ingeboekt. Deze inkoopfacturen zijn ook te zien/benaderen door de user die we ook gebruiken voor de API.

Wat kan de reden zijn dat bij het ophalen van de tabel deze leeg blijft? Heeft het toch met rechten van de user te maken, en zo ja, waar kunnen we dit aanpassen?

Het klinkt alsof het meteen zou moeten werken.

Voor REST API’s geldt dat je geen data terugkomt als er geen rechten zijn.

Voor de Exact Online XML API’s wordt onderwater een foutmelding teruggegeven. Deze wordt niet getoond als de Exact Online driverattribuut ignore-xml-no-access-errors op true staat. Dit is de standaardinstelling sinds 20.1. Op versie 20.0 werd dus ook een foutmelding getoond.

Het lijkt er al met al op dat de rechten ontbreken.

De rechten op de Exact Online API bepaal je via de volgende stappen:

  1. Heeft de abonneehouder rechten op de module (bijvoorbeeld “Handel”)?
  2. Heeft de gebruiker rechten op de module?
  3. Bevat de administratie gegevens?
  4. Heeft de app (“client”) rechten op de “scope” van de module?
  5. De gebruiker heeft rechten als deze vragen met “ja” beantwoord zijn.

In de volgende tekst staan per stap aanvullende uitleg.

Rechten Abonneehouder

De abonneehouder heeft hier duidelijk rechten binnen het abonnement. Men kan ze blijkbaar invoeren.

Rechten Gebruiker

Ook de Exact Online gebruiker heeft rechten begrijp ik uit de tekst. Men kan ze blijkbaar invoeren en zien.

Juiste Administratie

Dit zou nog een verschil kunnen veroorzaken. Het kan zijn dat de inkoopfacturen in een andere administratie van Exact zitten. Controleer in sessionios@datadictionary in het Query Tool of zowel de interactieve user als de applicatie dezelfde administratie gebruiken, herkenbaar aan Division in de URL.

Controleer ook dat de app rechten heeft op de administratie zoals hier beschreven. In principe zou je een foutmelding moeten krijgen, maar de functionaliteit voor “division scoping” is nog relatief nieuw en er zullen geheid nog wat foutjes in zitten.

App Rechten

Tenslotte heeft Exact in 2020 data scoping ingeschakeld. Je hoort een foutmelding te krijgen als je data uitleest via de REST API waar de app (“client”) geen rechten op heeft, maar goed… Controleer op https://apps.exactonline.com na aanmelden via “Mijn apps” de instellingen van de applicatie:

Deze app (https://valuta-tools.nl) mag in Nederland bijvoorbeeld wisselkoersen (“currencies” is beetje foute keus qua naamgeving) lezen EN schrijven:

Rechten via REST API opvragen

De rechten kunnen ook opgevraagd worden via een drietal tabellen:

Echter, de ervaring leert dat deze API’s nog niet rijp zijn voor serieus productiegebruik. Het gebruik raden we daarom niet aan.

Daarnaast gebruikt men vaak de (wel stabiele) Settings tabel om uit te vragen welke modules actief zijn en de AvailableFeatures tabel met licenties.

Lezenswaardige andere artikelen over rechten op Exact

Voor ontwikkelingen in 2021 zijn de volgende topics lezenswaardig:

En nu? Paniek?

Als dit allemaal geen oplossing geeft bij het oplossen van de rechten op Exact Online, dan is het verstandig om de API desk van Exact Online support te benaderen of een consultant.

De abonnee heeft inderdaad rechten: deze klant voert inkoopfacturen in.
De user lijkt ook rechten te hebben: we kunnen de facturen zien, openen etc.
Bij de scopes van de geregistreerde app staat op alles ‘lezen’. Hier wijkt dus niks af.

Vanmorgen weer een nieuwe klant gekoppeld, en zelfde probleem op een andere endpoint: hier krijg ik geen enkele verkoopfactuur terug (terwijl ze er wel zouden moeten zijn).

Ik heb een ticket ingeschoten bij Exact. Is wel handig om te weten hoe we dit kunnen aanpassen zodat altijd alles goed staat. Kunnen we dan ook bij onboarding mee sturen aan een klant.

Ik voeg de oplossing toe aan ticket zodra ik die weet.

Is nog gelukt om voor het ontbreken van data een oplossing te vinden?

Hebben gehoord van Exact dat deze specifieke klanten geen licentie heeft voor inkoopfacturen. Dit is reactie Exact:

In Exact online is er een verschil tussen inkoopfacturen en inkoopboekingen. Inkoopfacturen kunnen alleen aangemaakt worden in een handels- en productieomgeving. KLANT X heeft niet zo’n licentie.
Zij maken gebruik van Inkoopboekingen en die kunt u via PurchaseEntries en PurchaseEntryLines wel ophalen. Daar heeft gebruiker X ook de rechten voor

Was bij de klant niet direct duidelijk, aangezien zij zelf het idee hebben wel degelijk gebruik te maken van inkoopfacturen.

OK, dan is technisch correct. Is inderdaad verwarrend voor users. In de Exact Online Premium boekhouden kun je wel verkooporders importeren maar dat worden dan meer verkoopfacturen.