Fortnox

Fortnox is a Swedish cloud accounting, ERP, and business-administration platform for small and medium-sized businesses and accounting bureaus. Its REST API at https://api.fortnox.se/3/ programmatically manages accounting and financial data - invoices, customers, articles, orders, offers, vouchers, accounts, suppliers, supplier invoices, projects, and financial years - authenticated with OAuth2 Authorization Code Flow. Fortnox also publishes a duplex WebSocket event stream at wss://ws.fortnox.se/topics-v1 that pushes minimal change notifications across domains so integrations can react to changes instead of polling.

9 APIs 0 Features
AccountingERPInvoicingBookkeepingSwedenNordicsFinanceVouchersCustomersSaaS

APIs

Fortnox Invoices API

Create, read, update, cancel, and list customer invoices, plus actions such as bookkeep, credit, e-mail, and print. Represents accounts-receivable sales invoices in a Fortnox co...

Fortnox Customers API

Manage the customer register - create, retrieve, update, delete, and list customers with billing and delivery addresses, org/VAT numbers, terms, and default accounts used across...

Fortnox Articles API

Manage the article (product/service) register used as line items on invoices, orders, and offers - pricing, units, stock quantities, sales and purchase accounts, VAT, and EU/SE ...

Fortnox Orders API

Create, read, update, and list sales orders, and convert an order into an invoice. Orders carry customer, article line items, delivery details, and status through the sales work...

Fortnox Offers API

Create, read, update, and list offers (quotations), and convert an accepted offer into an order or invoice. Offers hold customer, article lines, and validity for the pre-sales s...

Fortnox Bookkeeping API

Post and read accounting vouchers (double-entry journal entries) into voucher series, and manage the chart of accounts and financial years that vouchers are booked against. Core...

Fortnox Suppliers & Supplier Invoices API

Manage the supplier register and inbound supplier invoices - create, read, update, and list suppliers, and register, bookkeep, and pay supplier invoices in the accounts-payable ...

Fortnox Projects API

Create, read, update, delete, and list projects used to tag invoices, vouchers, orders, and other records for project-based accounting and reporting.

Fortnox Topics WebSocket API

Duplex WebSocket stream at wss://ws.fortnox.se/topics-v1 that pushes minimal change-notification events across domains (invoices, supplier-invoices, customers, articles, orders,...

Collections

Pricing Plans

Fortnox Plans Pricing

6 plans

PLANS

Rate Limits

Fortnox Rate Limits

2 limits

RATE LIMITS

FinOps

Event Specifications

Fortnox Topics WebSocket API

AsyncAPI 2.6 description of Fortnox's **real duplex WebSocket API** at `wss://ws.fortnox.se/topics-v1` (the "Topics" service). Unlike the REST API at https://api.fortnox.se/3/, ...

ASYNCAPI

API Governance Rules

Fortnox API Rules

3 rules · 1 errors 1 warnings 1 info

SPECTRAL

Resources

🔗
AgenticAccess
AgenticAccess
🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📰
Blog
Blog

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Fortnox REST API
  version: '3.0'
  description: Representative subset of the Fortnox REST API (https://api.fortnox.se/3/). Every request requires the Access-Token
    (Bearer JWT) and Client-Secret headers from your OAuth2-authorized Fortnox app.
request:
  headers:
  - name: Access-Token
    value: '{{accessToken}}'
  - name: Client-Secret
    value: '{{clientSecret}}'
  - name: Content-Type
    value: application/json
  - name: Accept
    value: application/json
variables:
- name: baseUrl
  value: https://api.fortnox.se/3
- name: accessToken
  value: ''
- name: clientSecret
  value: ''
items:
- info:
    name: Invoices
    type: folder
  items:
  - info:
      name: List invoices
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/invoices'
    docs: Lists invoices with pagination and optional filter.
  - info:
      name: Create invoice
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/invoices'
      body:
        type: json
        data: '{"Invoice":{"CustomerNumber":"1","InvoiceRows":[{"ArticleNumber":"1","DeliveredQuantity":"1","Price":100}]}}'
    docs: Creates an invoice. Payload wrapped in an Invoice object.
  - info:
      name: Retrieve invoice
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/invoices/:DocumentNumber'
    docs: Retrieves a single invoice by document number.
  - info:
      name: Update invoice
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/invoices/:DocumentNumber'
      body:
        type: json
        data: '{"Invoice":{}}'
    docs: Updates an invoice.
- info:
    name: Customers
    type: folder
  items:
  - info:
      name: List customers
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/customers'
    docs: Lists customers.
  - info:
      name: Create customer
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/customers'
      body:
        type: json
        data: '{"Customer":{"Name":"Acme AB"}}'
    docs: Creates a customer.
  - info:
      name: Retrieve customer
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/customers/:CustomerNumber'
    docs: Retrieves a customer by number.
  - info:
      name: Update customer
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/customers/:CustomerNumber'
      body:
        type: json
        data: '{"Customer":{}}'
    docs: Updates a customer.
  - info:
      name: Delete customer
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/customers/:CustomerNumber'
    docs: Deletes a customer.
- info:
    name: Articles
    type: folder
  items:
  - info:
      name: List articles
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/articles'
    docs: Lists articles.
  - info:
      name: Create article
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/articles'
      body:
        type: json
        data: '{"Article":{"Description":"Consulting"}}'
    docs: Creates an article.
  - info:
      name: Retrieve article
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/articles/:ArticleNumber'
    docs: Retrieves an article.
- info:
    name: Orders
    type: folder
  items:
  - info:
      name: List orders
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/orders'
    docs: Lists sales orders.
  - info:
      name: Create order
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/orders'
      body:
        type: json
        data: '{"Order":{"CustomerNumber":"1"}}'
    docs: Creates a sales order.
  - info:
      name: Retrieve order
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/orders/:DocumentNumber'
    docs: Retrieves an order.
- info:
    name: Offers
    type: folder
  items:
  - info:
      name: List offers
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/offers'
    docs: Lists offers (quotations).
  - info:
      name: Create offer
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/offers'
      body:
        type: json
        data: '{"Offer":{"CustomerNumber":"1"}}'
    docs: Creates an offer.
  - info:
      name: Retrieve offer
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/offers/:DocumentNumber'
    docs: Retrieves an offer.
- info:
    name: Bookkeeping
    type: folder
  items:
  - info:
      name: List vouchers
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/vouchers'
    docs: Lists vouchers, optionally scoped by financialyear.
  - info:
      name: Create voucher
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/vouchers'
      body:
        type: json
        data: '{"Voucher":{"VoucherSeries":"A","TransactionDate":"2026-07-12","VoucherRows":[{"Account":1930,"Debit":100,"Credit":0},{"Account":3010,"Debit":0,"Credit":100}]}}'
    docs: Posts a double-entry voucher.
  - info:
      name: List accounts
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/accounts'
    docs: Lists the chart of accounts.
  - info:
      name: List financial years
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/financialyears'
    docs: Lists financial years.
- info:
    name: Suppliers & Supplier Invoices
    type: folder
  items:
  - info:
      name: List suppliers
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/suppliers'
    docs: Lists suppliers.
  - info:
      name: Create supplier
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/suppliers'
      body:
        type: json
        data: '{"Supplier":{"Name":"Leverantor AB"}}'
    docs: Creates a supplier.
  - info:
      name: List supplier invoices
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/supplierinvoices'
    docs: Lists supplier invoices.
  - info:
      name: Retrieve supplier invoice
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/supplierinvoices/:GivenNumber'
    docs: Retrieves a supplier invoice.
- info:
    name: Projects
    type: folder
  items:
  - info:
      name: List projects
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/projects'
    docs: Lists projects.
  - info:
      name: Create project
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/projects'
      body:
        type: json
        data: '{"Project":{"Description":"Website build"}}'
    docs: Creates a project.
  - info:
      name: Retrieve project
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/projects/:ProjectNumber'
    docs: Retrieves a project.