SnelStart is one of the most widely used accounting platforms in the Netherlands. It serves freelancers, small and medium-sized businesses, and accounting firms with bookkeeping, invoicing, VAT filing, and bank reconciliation. If you are building software that touches financial data for the Dutch market, SnelStart integration is likely on your roadmap.
This guide covers what you need to know to integrate with the SnelStart B2B API, from authentication and available endpoints to the certification process and the common pitfalls that make this integration more complex than it first appears.
What SnelStart covers
SnelStart has been around for over 40 years. It started as a desktop bookkeeping program on Texel and has since grown into a full platform available in both desktop (SnelStart 12) and cloud (SnelStart Web) versions. The product handles core accounting workflows including general ledger management, accounts payable and receivable, invoicing, VAT and ICP declarations, bank statement imports, and inventory management through their InHandel add-on.
For accountants and bookkeepers, SnelStart offers a dedicated Accountant package with multi-client management, an integrated tax filing module, and a centralized dashboard. It connects to major Dutch banks including Rabobank, ABN AMRO, ING, Knab, Triodos, and RegioBank.
In mid-2025, SnelStart acquired embedded finance company Flow and launched SnelStart Bankieren, a fully integrated banking product with Adyen providing the underlying banking infrastructure. This puts bank accounts directly inside the accounting interface, eliminating the need to switch between banking and bookkeeping tools.
API overview
The SnelStart B2B API is a REST API hosted on Microsoft Azure API Management. The current version is v2, and the base URL is https://b2bapi.snelstart.nl/v2. The API documentation is auto-generated and available through the SnelStart Developer Portal, but only after you register for an account. The documentation is exclusively in Dutch, which creates an extra barrier for international development teams.
The API covers a broad set of accounting resources. Key endpoints include:
- Artikelen (articles/products)
- Relaties (contacts/relations)
- Verkoopboekingen (sales bookings)
- Inkoopboekingen (purchase bookings)
- Memoriaalboekingen (journal entries)
- Grootboekrekeningen (general ledger accounts)
- BTW-tarieven (VAT rates)
- Bankafschriftbestanden (bank statement files)
- Documenten (documents)
- Facturen (invoices)
- Landen (countries)
The API supports standard CRUD operations on most resources. You can also import bank statements in MT940, CAMT.053, and CSV formats, as well as UBL invoices. OCR processing is available for scanned documents.
Authentication
This is where SnelStart diverges significantly from other accounting APIs. There is no standard OAuth 2.0 flow. Instead, SnelStart uses a multi-layered authentication setup that requires careful credential management.
You need three things to make API calls:
- A subscription key from the SnelStart Developer Portal. You get this by subscribing to a product plan (start with the Ontwikkeling & Test plan for development).
- A connection key (maatwerksleutel) generated from within the SnelStart web application under Koppelingen > Maatwerk.
- An access token obtained by exchanging the connection key at the token endpoint (
https://auth.snelstart.nl/b2b/token).
The access token expires every hour. Every API request must include both the subscription key (as a header) and the current access token. This means you need to build automated token refresh logic, handle expiration errors gracefully, and store credentials securely.
In a multi-tenant SaaS architecture where you are managing connections for multiple end users, this adds real operational complexity. Each customer's connection key needs to be stored separately, and you need to manage token lifecycle per connection.
Here is a simplified authentication flow in pseudocode:
// Step 1: Exchange connection key for access token
POST https://auth.snelstart.nl/b2b/token
Body: { "clientKey": "<connection_key>" }
// Step 2: Use the token with your subscription key
GET https://b2bapi.snelstart.nl/v2/artikelen
Headers:
Ocp-Apim-Subscription-Key: <subscription_key>
Authorization: Bearer <access_token>
There are open-source client libraries that handle some of this complexity. The snelstart-php library includes a CachedAccessTokenConnection class that manages token refresh automatically. A .NET client is also available on NuGet as SnelStart.B2B.V2.Client, though it is community-maintained and not feature-complete.
Working with SnelStart data models
The SnelStart API exposes data in a way that reflects its internal accounting logic rather than a developer-friendly integration model. This creates several challenges.
Relations (contacts) may reference a country by internal ID rather than by ISO country code. To resolve this, you need a separate API call to the countries endpoint. Because SnelStart allows countries to be created, modified, or deleted, you cannot treat this reference data as static. You need caching strategies and dependency-aware synchronization.
Booking proposals (boekingsvoorstellen) require tax information at both the header level and on each individual line item. These must be consistent with each other. Any mismatch triggers a validation error. This means your data transformation layer needs robust validation logic to align your internal data structures with what SnelStart expects.
Many common integration use cases require multiple sequential API calls. Fetching a complete invoice with its customer details, line items, tax rates, and related documents can involve several round trips. Without careful orchestration, you will run into performance issues and risk data inconsistency.
The certification process
SnelStart requires all integrations to go through a formal certification process before they can be used in production. The process works like this:
- Register on the SnelStart Developer Portal and subscribe to a development plan.
- Build your integration using the development subscription key and a test connection key.
- When your integration is ready, submit it for certification through the SnelStart website.
- SnelStart monitors your integration for approximately 12 days during the certification period.
- If the integration meets their requirements, you receive a permanent production key (maatwerk- or productiesleutel).
SnelStart charges a one-time fee of 250 EUR (ex. BTW) per permanent key issued after certification. A production key allows an unlimited number of customers to use the integration.
Without certification, you only have access to a temporary development key. To operate in live customer environments, you must become an official SnelStart partner. This gating mechanism means you cannot ship a SnelStart integration to production without going through the approval process.
Package requirements
Not every SnelStart subscription includes API access. Your customers need to be on the inZicht or inControle package to set up custom API connections via the Maatwerk tile. This is worth validating early in your sales process. If a customer is on a lower-tier plan, they will need to upgrade before your integration can work.
Common integration challenges
Based on what developers encounter when building direct SnelStart integrations:
The documentation is only available in Dutch and requires registration to access. International teams face a translation overhead before they can even evaluate the API surface.
The hourly token expiration is aggressive compared to most accounting APIs. If your token refresh logic fails silently, requests will start returning 401 errors and your sync pipeline breaks.
The fragmented data model means simple operations often require multiple API calls. A single invoice sync might need calls to contacts, tax rates, ledger accounts, and the invoice endpoint itself.
Tax handling is unusually complex. The duplication of tax information at booking and line-item level increases the surface area for validation errors.
There is no webhook support documented in the public API. You will need to implement polling-based synchronization, which adds latency and API call volume.
Scaling beyond SnelStart
If you are building for the Dutch market, SnelStart is a must-have connector. But most SaaS companies serving accounting workflows need to support more than one platform. Your Dutch customers might use SnelStart, but their international counterparts are on QuickBooks, Xero, Exact Online, or Sage.
Building and maintaining each of these integrations one-to-one is expensive. Each accounting API has its own authentication model, data schema, rate limits, and edge cases. SnelStart's multi-layer authentication and Dutch-only docs are a good example of why this does not scale.
A unified API gives you one integration point, one data schema, and one set of SDKs across all of them. Instead of managing SnelStart's token rotation, Xero's OAuth flow, and QuickBooks' different API versions separately, you write against a single normalized Accounting API and let the platform handle the connector-specific complexity.
Check the full list of accounting connectors to see which platforms are available.
Resources
Ready to get started?
Scale your integration strategy and deliver the integrations your customers need in record time.








