# Spiris — Accounting API: overview

> Canonical URL: https://developers.apideck.com/apis/accounting/spiris/overview

Spiris (formerly Visma eAccounting) is a Nordic SaaS accounting and invoicing platform for small businesses in Sweden, Norway, and the Netherlands.
- Status: beta
- Authentication: oauth2

- **account type required:** Active Bokföring & Fakturering (Sweden) or eAccounting (Norway, Netherlands) subscription
- **apideck credentials available:** true
- **apideck credentials note:** For testing against a Spiris sandbox company. A sandbox client cannot reach a live company, so real companies need your own production credentials.
- **authentication note:** Authorization Code flow using the consumer's Visma Online login.
- **beta:** true
- **consumer access level:** Any Visma Online user with access to the company — Spiris documents no minimum role
- **costs:** No published fee for API access. Visma's Developer Terms allow commercial terms to be added for an individual integrator by signed addendum, case by case.
- **difficulty:** moderate
- **difficulty reason:** Self-service registration and free sandbox — a single vendor approval step gates production access
- **environment notes:**   - **description:** Sandbox and production share one API base URL and one identity server. There is no separate sandbox host — the two are told apart purely by the type of OAuth client used.
  - **environment:** Shared endpoint
  - **description:** A sandbox client reaches sandbox companies only, so it can never connect a real customer company.
  - **environment:** Sandbox
  - **description:** A production client reaches real customer companies, and can also connect a sandbox company for testing.
  - **environment:** Production
- **important to know:** One product, several names, one API: Spiris is the company (renamed from Visma Spcs) and the accounting product still ships under two brand names, Bokföring & Fakturering and eAccounting — one integration reaches both.
Refresh tokens last two years and rotate on each refresh, but they are invalidated immediately and without warning when the consumer changes their Visma Online password — the connection then fails until they reauthorise.
- **partnership note:** Free self-service registration returns sandbox credentials immediately; production access is not self-service — Spiris API support grants it on request.
- **partnership portal name:** Spiris Partner Programme
- **partnership required:** true
- **partnership url:** https://selfservice.developer.vismaonline.com/
- **rate limits:** 600 requests/min, counted per client per endpoint; HTTP 429 above the limit
- **responsibility matrix:**   - **area:** Developer registration and application credentials
  - **customer:** ✓
  - **area:** Requesting production access
  - **customer:** ✓ (to Spiris API support for your market)
  - **area:** Authorizing the connection
  - **consumer:** ✓ (signs in and selects the company)
  - **apideck:** ✓
  - **area:** OAuth flow and token refresh
  - **apideck:** ✓ (registered and removed per connection)
  - **area:** Webhook subscriptions
- **sandbox available:** true
- **sandbox note:** One sandbox company per developer email; its region is fixed at creation, and the product's own internal integrations are mocked.
- **sandbox url:** https://selfservice.developer.vismaonline.com/
- **supported resource categories:**   - **name:** Core Ledger
  - **resources:** company-info
ledger-accounts
journal-entries
tax-rates
tracking-categories
  - **name:** Accounts Receivable
  - **resources:** customers
invoices
invoice-items
credit-notes
payments
  - **name:** Accounts Payable
  - **resources:** suppliers
bills
bill-payments
  - **name:** Banking & Files
  - **resources:** bank-accounts
attachments
- **webhooks:** Native — update events for customers, suppliers, invoices, bills, payments, invoice items, ledger accounts and journal entries (no create or delete events).

## Supported resources

[Accounting data model](/guides/accounting-data-model.md)

- **custom field support:** true
- **downstream id:** company-info
- **downstream name:** Company Info
- **id:** company-info
- **name:** Company Info
- **status:** live
- **custom field support:** true
- **downstream id:** tax-rates
- **downstream name:** Tax Rates
- **id:** tax-rates
- **name:** Tax Rates
- **status:** live
- **custom field support:** false
- **downstream id:** fiscal-periods
- **downstream name:** Fiscal Periods
- **id:** fiscal-periods
- **name:** Fiscal Periods
- **status:** beta
- **custom field support:** false
- **downstream id:** trial-balance
- **downstream name:** Trial Balance
- **id:** trial-balance
- **name:** Trial Balance
- **status:** beta
- **custom field support:** true
- **downstream id:** customers
- **downstream name:** Customers
- **id:** customers
- **name:** Customers
- **status:** live
- **custom field support:** true
- **downstream id:** suppliers
- **downstream name:** Suppliers
- **id:** suppliers
- **name:** Suppliers
- **status:** live
- **custom field support:** true
- **downstream id:** bank-accounts
- **downstream name:** Bank Accounts
- **id:** bank-accounts
- **name:** Bank Accounts
- **status:** beta
- **custom field support:** true
- **downstream id:** invoice-items
- **downstream name:** Invoice Items
- **id:** invoice-items
- **name:** Invoice Items
- **status:** live
- **custom field support:** true
- **downstream id:** ledger-accounts
- **downstream name:** Ledger Accounts
- **id:** ledger-accounts
- **name:** Ledger Accounts
- **status:** live
- **custom field support:** true
- **downstream id:** invoices
- **downstream name:** Invoices
- **id:** invoices
- **name:** Invoices
- **status:** live
- **custom field support:** true
- **downstream id:** bills
- **downstream name:** Bills
- **id:** bills
- **name:** Bills
- **status:** live
- **custom field support:** true
- **downstream id:** credit-notes
- **downstream name:** Credit Notes
- **id:** credit-notes
- **name:** Credit Notes
- **status:** live
- **custom field support:** true
- **downstream id:** journal-entries
- **downstream name:** Journal Entries
- **id:** journal-entries
- **name:** Journal Entries
- **status:** live
- **custom field support:** false
- **downstream id:** tracking-categories
- **downstream name:** Tracking Categories
- **id:** tracking-categories
- **name:** Tracking Categories
- **status:** live
- **custom field support:** false
- **downstream id:** payments
- **downstream name:** Payments
- **id:** payments
- **name:** Payments
- **status:** live
- **custom field support:** false
- **downstream id:** bill-payments
- **downstream name:** Bill Payments
- **id:** bill-payments
- **name:** Bill Payments
- **status:** live
- **custom field support:** false
- **downstream id:** attachments
- **downstream name:** Attachments
- **id:** attachments
- **name:** Attachments
- **status:** live

An omitted operation list does not establish operation support. Verify the selected operation in the coverage matrix.

[API reference](https://developers.apideck.com/apis/accounting/reference.md) · [Coverage matrix](https://developers.apideck.com/apis/accounting/coverage)
