Itgeneor321 De Exact Online divisie '123456' is niet opgenomen in de rechten die aan deze applicatie werden verleend

Bij het registreren van een Exact Online database op Invantive Cloud met de standaard Invantive Cloud-app krijg ik de foutmelding:

itgeneor321
The database “Invantive Cloud - Test ExactOnlineAll” could not be opened.
De Exact Online divisie ‘123456’ is niet opgenomen in de rechten die aan deze applicatie werden verleend. Verleen de applicatie ook toegang tot deze divisie via het Exact Online menu ‘Importeren/Exporteren’, ‘App privileges’, selecteer deze app en vervolgens ‘Beheer Administraties’.

Hoe los ik dit op?

De itgeneor321 foutmelding wordt op dit moment veroorzaakt door een blijkbaar recente breaking change/bug op de Exact Online API’s. We zien op dit moment meerdere vergelijkbare foutmeldingen, voornamelijk bij accountancy omgevingen, sinds de ochtend van 8 november 2021 (en mogelijk eerder). Het probleem speelt ook in de Exact Online omgevingen van andere landen dan Nederland.

Achtergrond (Division Scoping)

Het ophalen van de lijst van administraties gebeurt via de actieve (laatstgebruikte) administratie van de Exact Online gebruiker. In dit geval is dat 123456. Dit nummer wordt opgehaald via de gebruiker. Dat is initieel het enige gegeven dat beschikbaar is na aanmelden.

Daarna wordt de lijst van administraties opgehaald via https://start.exactonline.nl/api/v1/123456/system/Divisions/

Bij de introductie van “division scoping” in april 2020 bleek er een ontwerpfoutje gemaakt te zijn omdat er geen mogelijkheid was om de lijst van administraties op te vragen als er geen rechten verleend waren aan de app op de huidige administratie van de gebruiker. Een kip-en-ei probleem.

Dit probleem speelt vooral bij accountancy-omgevingen, maar kan ook spelen bij omgevingen van zelfboekende ondernemers als de rechten van de applicatie beperkt zijn qua administratie.

Echter, omdat de lijst van benaderbare administraties eenduidig te bepalen is voor de aangemelde gebruiker kijkt de API van Exact Online sindsdien niet meer naar het divisienummer in de API-aanroep op SystemDivisions, maar geeft gewoon de voor de gebruiker relevante administraties terug.

Deze functionaliteit werkt blijkbaar op dit moment niet.

Oplossingsrichting

Gezien de problemen met de implementatie raden we het beperken van de toegankelijke administraties af totdat de bugs hersteld zijn en workarounds gerealiseerd voor de design issues.

Met deze bug is het niet zinvol om rechten op de genoemde administratie toe te kennen zoals de foutmelding suggereert. Zodra de gebruiker een andere actieve administratie heeft gekozen zal de foutmelding weer terugkomen. Voor de bug is een case ingediend bij Exact Online met nummer 03289050.

Het is wel werkbaar om de app rechten op alle administraties toe te kennen. De stappen om rechten op alle administraties toe te kennen staan beschreven in Itgeneor228 / itgenoda060: Forbidden - User division is not within division scope - #3 door guido.leenders.

Een alternatief is een aparte Exact Online-gebruiker aan te maken die uitsluitend toegang heeft tot de benodigde administraties en die ook allemaal te koppelen aan de app.

Een ander alternatief is om een eigen Exact Online app te registreren met Bring Your Own App zoals beschreven op Registratie Exact Online app voor gebruik met Invantive Cloud. Op een dergelijke app geldt geen division scoping, waardoor die altijd toegang heeft tot alle administraties.

Indien beveiligingstechnisch nodig kan Invantive op basis van consult proberen een workaround adviseren.

Eerste terugkoppeling op Exact case 03289050 is dat de itgeneor321 met onderliggend Unauthorized op System/Divisions alleen optreedt als $count gebruikt wordt. De volledige lijst ophalen werkt wel.

De $count wordt gebruikt als optimalisatie; voor abonnementen met honderden administraties is een telling goedkoper dan telkens opnieuw alles ophalen.

Sorry, maar dit gaat mijn begrip te boven.

Zou jij mij kunnen ondersteunen om de oplossing werkbaar te krijgen/houden?

Ik raad in dit geval aan te wachten totdat Exact de bug heeft opgelost.