Skip to main content

Introduction

Fortnox is the leading cloud accounting and business software in Sweden and one of the largest in the Nordics, widely used by SMEs and accounting firms. The Chift Fortnox connector exposes Fortnox’s bookkeeping features through Chift’s unified Accounting API (journals, chart of accounts, ledger/bank accounts, journal & financial entries).
Costs & production options
  • Integrator (Chift’s client): creates their own Fortnox developer account and Fortnox app (Client ID / Client Secret). Developing and testing is free.
  • Private App (production): no additional requirement — deploy your integration for your own customers.
  • Public Marketplace App (production): requires an App Partner agreement + Fortnox certification of your app. If listed on the Fortnox Marketplace, Fortnox operates a revenue-share model (partner receives 75%).
For up-to-date pricing and partner conditions, see the Fortnox Developer program.

Configure Fortnox

Prerequisite(s)
  • Your own Fortnox app (Client ID + Client Secret).
Activation Process 1. Register as a Fortnox developer Before you can make any Fortnox API calls, register as a developer at fortnox.se/developer. This gives you access to the Developer Portal where you create your integration and receive your Client ID and Client Secret.
Fortnox Developer Portal – OAuth Client ID configuration
2. Create your integration Once registered, create an integration record. This is where you configure your redirect URI, define your requested scopes, and optionally submit for Fortnox Marketplace listing. Set the redirect URI to:
https://chift.app/oauth2/redirect
Fortnox Developer Portal – Redirect URI and Permissions
The scopes enabled on your Fortnox integration must exactly match the scopes requested in your OAuth app’s authorization flow. Any mismatch will cause the authorization to fail with 2000663: Har inte behörighet för scope. See the Fortnox scopes documentation.
Common scopes for bookkeeping: companyinformation, invoice, supplierinvoice, customer, supplier, bookkeeping, payment, settings, costcenter, project, inbox, connectfile.
Further documentation is coming to explain which scopes to enable depending on your Chift use case.
3. Activate the connector on Chift In your Chift back office, open the Fortnox connector and toggle activation. You will be prompted to paste your Client ID and Client Secret. End users will then be redirected to Fortnox to authorize access via OAuth2.

Test Fortnox

Create up to 30 test companies from the Test environments tab of the Fortnox Developer Portal. Test companies behave like real Fortnox companies (same rate limits apply), come with the standard BAS chart of accounts and no pre-filled data.

Connect Fortnox

To activate a connection with Fortnox, users will have to go through the following steps:

Rate limits

  • 300 requests / minute per Client ID + tenant (i.e. per access token), enforced via a sliding window of 5 seconds25 requests / 5 s.
  • Exceeding the limit returns HTTP 429 (Too Many Requests); bursts are throttled until the average falls back under the limit.
  • The limit scales per tenant: each connected Fortnox company has its own access token and therefore its own 300 req/min budget.

Technical limitations & specificities

  • Single company currency — SEK. Fortnox accounts have no per-account currency. On a bank account, the currency is informational (surfaced in the account name), not enforced. On entries, a currency ≠ company currency requires an exchange_rate (otherwise ERROR_CURRENCY_NOT_ALLOWED), and amounts are converted to the company currency.
  • Account & journal types are derived, not stored. journal_type and ledger account type are derived from the BAS number ranges / predefined series. A type sent on create is not stored — it’s ignored, or validated for consistency (an account type inconsistent with the number range is rejected).
  • Third-party accounts (customer/supplier/employee) on entries. Fortnox has no native journal ↔ account link and supplier objects carry no dedicated ledger account, so third-party lines must specify force_general_account (otherwise a clear “not supported” error is returned).
  • Format constraints: ledger account number = numeric, 1000–9999; journal (VoucherSeries) code = 1–10 chars, digits / UPPERCASE only.
  • posted is always true for entries— Fortnox posts vouchers immediately (the posted input has no effect).
  • Financial entries (bank/cash operations): items contain only the counterpart line(s) with a signed amount (+ = into the bank, = out); the bank ledger account is passed via the mandatory query param financial_counterpart_account, and the connector adds the balancing bank line (net of the amounts).
  • Chart-of-accounts type filter exposes only 6 of the 10 possible account types (bank, cash, income, expense, other_expense, vat) — receivable, payable, other_financial, other are returned in responses but cannot be filtered.

Coverage