maesn

Visma eAccounting API Integration

Visma eAccounting is a cloud accounting platform for small businesses, and it is one system sold under a different name in each of its markets: eAccounting in Norway and the Netherlands, Spiris in Sweden. One API covers all of them, which means a connection built for one market already reaches the others. Maesn holds the token lifecycle, the paging and the regional setup behind one REST interface.

YOUR PRODUCT+26
Trusted by winning software teams
HubSpotTipaltiPaywiseRallyQredNordhealthFindityFintoClockinHEROHolviLanes & PlanesAgicapHubSpotTipaltiPaywiseRallyQredNordhealthFindityFintoClockinHEROHolviLanes & PlanesAgicap
The problem

Scopes, paging and sandboxes decide what a Visma eAccounting integration costs

Three things about Visma eAccounting decide how much work an integration turns into, and none of them appear in the first successful call. All three stop at this layer.

Visma eAccounting: Scopes are declared up front

Visma eAccounting OAuth lifecycle, fully managed by Maesn

Visma eAccounting wants its scopes declared precisely and before the first customer connects, rather than requested as your product grows into them. The three credentials and the per-tenant refresh sit on this side, so what reaches your code is a REST call and an account key instead of a token lifecycle to run per customer.

Visma eAccounting: Fifty results, then silence

Visma eAccounting pagination handled automatically

The system returns 50 results per page by default and does not object if nobody asks for the rest. A sync written without explicit paging returns an incomplete set and reports success, which is the worst shape a data bug can take. Maesn pages every collection endpoint, so what arrives is the whole set.

Visma eAccounting: One sandbox per region

One sandbox per region, handled without a second project

A sandbox company belongs to one region and the region cannot be changed after it is created, and each Visma account carries exactly one. Testing a second market means registering a second account under a different email address. That work sits on this side, and what you get is a connection that behaves the same in every market.

What reaches your code is a REST call and an account key. The scopes, the refresh and the regional setup stay here, and a Swedish customer is the same integration as a Norwegian one.

A short call is usually enough to tell whether Maesn fits your use case.

Customer voice

Findity embeds expense sync in their partners' products

Findity is an expense management platform selling white-label and API products, so their accounting integrations ship inside someone else's software rather than in their own.

Maesn has helped us build integrations with accounting systems, allowing us to focus on other priorities in our roadmap. We are especially pleased with the support we have received whenever we needed extended functionality in an integration that Maesn has arranged for us.
Per Q.
CTO, Findity
Why companies choose Maesn

Three reasons to reach the Visma eAccounting API through Maesn

The first successful call against Visma eAccounting comes quickly. The cost arrives in the second year, when tokens have expired in ways nobody was told about and a sync has been returning most of the data rather than all of it.

01

Complete pages, not the first fifty records

A read that stops after the default page returns a valid response and part of the data, and nothing in the payload marks it as incomplete. Maesn pages every collection endpoint on this side, so what arrives in your product is the whole set rather than the first page of it.

02

All regional variants, one integration

The system is sold as eAccounting in Norway and the Netherlands and as Spiris in Sweden, and one connection reaches all of them. A customer who names the local brand is the same integration as one who names the other, so entering another of its markets is a lookup rather than a project.

03

One integration, and it is not only eAccounting

The same interface reaches Visma e-conomic, Holded and 30+ other ERP and accounting systems. A market that turns out to run a different product is a connection change rather than a project.

Regional variants

The Visma eAccounting names change per market, the connection does not

Visma sells this system under a different name in each market it reaches. Maesn covers every one of those variants through the same connection, so the name a customer uses is a lookup rather than a second integration to build.

Maesn reaches all of them through one connection: eAccounting in the Netherlands and Norway, and Spiris, which used to be called SPCS, in Sweden. A Swedish prospect who says they run Spiris and a Norwegian one who says they run eAccounting are the same connection for you. What is worth confirming is the endpoint level: availability is not identical in every market, so name the market together with the objects your use case needs.

Three markets on one connection is the reach, and the brand name is the only thing that changes between them. The rest of the portfolio sits on the Visma API page.

Tell us which country your customers are in and we will confirm what is possible today.

Authentication

Visma eAccounting scopes are declared before the first customer connects

Visma eAccounting authenticates with OAuth 2.0, and one detail makes it different from the OAuth systems next to it: the scopes have to be declared precisely and up front rather than requested as you go, so what your application can reach is decided before the first customer connects. The company selection sits on Visma's side of the flow, and the vendor recommends forcing that selector rather than accepting whichever company the user already had open.

Auth method
OAuth 2.0
Scopes declared up front, three values submitted once
What Maesn holds for you
Three credentials and the scope declaration
Client id, client secret and subscription key, submitted once and used for every customer in that market. The scope set is declared with them rather than negotiated per connection.
The refresh, per tenant
Token refresh runs per tenant on this side, so the lifecycle is not something your product schedules or stores per customer.

Declaring scopes up front is worth planning around rather than working around. Widening them later means going back to every connected customer for a fresh approval, so the question of what your product might need in a year belongs in the conversation before the first one connects.

How your customer connects
  1. 1

    Your customer starts in your product

    You send them into the flow and Maesn opens the Visma eAccounting consent screen. It carries your application's name, because the application is registered under your company.

  2. 2

    They approve the declared scopes

    The consent screen shows what was declared up front, and Visma also asks which company the connection is for. The request forces that selector rather than accepting the company the user already had open.

  3. 3

    You work with one account key

    Maesn stores the connection and returns an account key. Every request then carries your Maesn API key plus that account key, whichever of the regional brands the customer actually runs.

Declaring scopes up front is worth planning around rather than working around, because widening them later means going back to every connected customer for a fresh approval. Unified authentication is where that declaration and the per-tenant refresh sit, in the same shape on every connected system rather than once per vendor.

Before you start

What a Visma eAccounting integration needs before the first call

Visma eAccounting needs more from you before the first call than most systems in the catalogue, and one of the steps is not yours to take. None of it is code.

An active Visma eAccounting account
The documentation's entire prerequisite list is one line: an active account. Worth confirming in the qualifying conversation, because there is nothing to connect without one.
A callback URL that Visma has to change for you
The credentials arrive by email when you register, and the callback URL is the part you cannot set yourself. You have to contact Visma and ask them to point it at Maesn's callback address. It is a short request and a real dependency, so it belongs early in the plan rather than on the day of launch.
Three values, handed to Maesn once
The client id, the client secret and the subscription key together. Submitted once, used for every customer you connect afterwards. This is the widest credential set of any Visma system connected today.
One sandbox account per region you want to test
The sandbox company is tied to its region at creation and each account holds one. A production client id reaches a sandbox company, but a sandbox client id never reaches a production one, so the two directions are not symmetric.

We walk through the registration and the callback change with you.

Marketplace

A Visma eAccounting listing reaches more markets than it names

Most providers stop at the API. Visma eAccounting runs a marketplace of its own, separate from the one Visma e-conomic runs, and reaching its audience is a process rather than a form.

Technical enablement

One integration against the Unified API and one data model, identical for Visma eAccounting and for everything else Maesn supports. Your engineers meet one interface rather than one per product.

Partnership support

Maesn initiates the listing for Visma eAccounting specifically and supports the co-marketing that comes with it. The listing carries your product's name rather than ours.

What a Visma eAccounting listing reaches
Level 1

One listing, several markets

Because the same system is sold under different names across its markets, a listing here is in front of customers who call the product something else. That is an advantage this product has over the rest of the portfolio.

Level 2

Not the e-conomic marketplace

The two products run separate marketplaces, so presence in one says nothing about the other. It is the same fragmentation the API side of this group has, appearing on the commercial side.

Level 3

Co-marketing alongside it

The entry is the starting point rather than the whole benefit. What follows is joint visibility with the vendor, which is where a listing turns into pipeline rather than a directory row.

The integration runs under your product's name, and the listing is yours rather than ours. Maesn is the layer behind it.

We initiate the listing and support the co-marketing that comes with it.

Visma eAccounting FAQ

Visma eAccounting API questions

Is Spiris the same as Visma eAccounting?

Yes. The system is sold as eAccounting in the Netherlands and Norway and as Spiris, which used to be called SPCS, in Sweden, and all three names sit on one target system. An integration built for a Norwegian customer therefore already reaches a Swedish one. The name changed and the API did not, and the level worth confirming is the endpoint: availability is not identical in every market.

What is Visma eAccounting?

Visma eAccounting is a cloud accounting platform for small businesses, covering invoicing, bookkeeping and reporting. It is sold across Sweden, Norway and the Netherlands under different brand names per market, and it belongs to the Visma group, which acquired it and kept it running as its own product with its own API and its own partner process.

What happens when a Visma eAccounting user changes their password?

The OAuth token is invalidated, and the next call is what tells you. That is how OAuth behaves generally rather than a Visma peculiarity, so the question worth planning for is not the notification but the reconnection: the customer has to approve the declared scopes again. Through Maesn that flow has the same shape on every connected system, and the credentials and the per-tenant refresh behind it stay on this side.

How does Maesn handle Visma eAccounting pagination?

The system returns 50 results per page by default, and a request that does not follow the pages gets a valid response containing part of the data. Nothing marks it as incomplete. Maesn pages every collection endpoint automatically, so what arrives is the complete set, in one way to filter and page that is the same on every connected system.

How do I get a Visma eAccounting sandbox?

Registering with Visma gets you a sandbox company and its credentials by email. The company is tied to one region, chosen at creation and not changeable afterwards, and each Visma account holds exactly one, so testing another region means a second account under a different email address. A production client id can reach a sandbox company, but a sandbox client id cannot reach a production one.

Which countries does Visma eAccounting cover, and is that changing?

Sweden, Norway and the Netherlands, on one interface and under two brand names. Netvisor and Passeli Merit sit in the same portfolio but run on separate interfaces of their own, so a prospect on one of those is a different integration rather than a variant of this one.

Does the Visma eAccounting API support webhooks?

Events for a specific object are arranged for your connection rather than switched on globally, so which ones your product needs belongs in the setup conversation. Until then change detection runs as a read you schedule, and the event model is where an event lands once it is arranged.

Why integrate Visma eAccounting through Maesn instead of directly?

Because the expensive part of this system is not the first call. A collection stops at fifty records and still returns a valid response, the scopes have to be right before the first customer connects rather than after, and the same product is sold under three names across its markets. Through Maesn the paging is handled, the scope declaration and the per-tenant refresh sit on this side, the regional naming becomes a lookup, and the same connection reaches Visma e-conomic, Holded and 30+ other ERP and accounting systems.
Ship your ERP and accounting integrations. Connect once.
Book a demo