Fortnox API

Download OpenAPI specification:Download

Documentation

The Fortnox API is organized around REST. This means that we’ve designed it to have resource-oriented URLs and be as predictable as possible for you as developer.

It also means that we use HTTP status codes when something goes wrong and HTTP verbs understod by many API clients around the web.

We use a modified version of OAuth2 for authentication to offer a secure way for both you and our users to interact.

The API is generally built to support both XML and JSON but in this documentation all the examples will be in JSON.

We encourage you to read all the articles in the Guides & Good to Know section first, before going forward and learning about the different resources.

This to ensure you get an understanding of some of the shared components of the API such as parameters and error handling.

Rate limits

The limit per access-token is 25 requests per 5 seconds. This equals to 300 requests per minute.

Read more about this here.

Query parameters

Use query parameters with the ?-character and separate parameters with the &-character.

Example: GET - https://api.fortnox.se/3/invoices?accountnumberfrom=3000&accountnumberto=4000 Read more about our parameters here

Search the documentation using the search field in the top left corner.

Custom Document Type

Handles types for custom documents.

A custom document is identified by its type and id. Each type belongs to a category, either INBOUND or OUTBOUND.

Note that custom document types are created automatically if necessary when you create custom documents.

The following referenceTypes are not allowed for custom document types. Variants of these containing dashes, underscores, lower case, upper case etc are not allowed either.

  • ARTICLEPRODUCTION
  • ARTIKELPRODUKTION
  • CUSTOMERINVOICE
  • CUSTOMERORDER
  • DELIVERYNOTE
  • FAKTURA
  • FÖLJESEDEL
  • INGÅENDESALDO
  • INKÖP
  • INKÖPSORDER
  • INVENTERING
  • INVENTORY
  • INVOICE
  • ITEMPRODUCTION
  • KREDITFAKTURA
  • KREDITORDER
  • KUNDFAKTURA
  • KUNDORDER
  • LAGERFLYTT
  • LEGACYINTEGRATIONIN
  • LEGACYINTEGRATIONOUT
  • LEVERANTÖRSFAKTURA
  • LEVFAKTURA
  • MANUALDELIVERY
  • MANUALINBOUND
  • MANUALINBOUNDDELIVERY
  • MANUALOUTBOUND
  • MANUALOUTBOUNDDELIVERY
  • MANUELLINLEVERANS
  • MANUELLLEVERANS
  • MANUELLUTLEVERANS
  • NEGATIVEOPENINGBALANCES
  • NEGATIVTINGÅENDESALDO
  • ORDER
  • PLOCKLISTA
  • POSITIVEOPENINGBALANCES
  • PRODUCTION
  • PRODUKTION
  • PURCHASE
  • PURCHASEORDER
  • STOCKTAKING
  • STOCKTAKINGDEVIATION
  • STOCKTRANSFER
  • SUPINVOICE
  • SUPPLIERINVOICE

List custom document types

Responses

Response samples

Content type
application/json
{
  • "category": "INBOUND",
  • "referenceType": "string"
}

Create custom document type

Create type, if it doesn't already exists. Note that new custom document types are created automatically when you create custom documents, so normally you do not need to call this method.

Throws HTTP 400 referenceTypeNotAllowed if the name of the type is not allowed.

Request Body schema: application/json

The CustomDocumentType.

category
required
string
Enum: "INBOUND" "OUTBOUND"
referenceType
required
string [ 1 .. 25 ] characters [a-zA-Z0-9_-]+

Responses

Request samples

Content type
application/json
{
  • "category": "INBOUND",
  • "referenceType": "string"
}

Response samples

Content type
application/json
0
0

Get custom document type

path Parameters
type
required
string

the name of the reference type

Responses

Response samples

Content type
application/json
{
  • "category": "INBOUND",
  • "referenceType": "string"
}

Custom Inbound Document

Handles Custom Inbound Documents.

A Custom Inbound Document is an externally created document for registering inbound deliveries to warehouse.

Get custom inbound document

path Parameters
type
required
string

Document type.

id
required
string

Document id.

Responses

Response samples

Content type
application/json
{
  • "currency": {
    },
  • "date": "2019-08-24",
  • "id": "string",
  • "note": "string",
  • "rows": [
    ],
  • "type": "string",
  • "voided": true,
  • "warehouseReady": true
}

Save custom inbound document

path Parameters
type
required
string

min 1 character, max 25 characters, may contain letters A-Z, digits 0-9, underscore (_), and dash (-), type is case-insensitive

      Type is a custom name/reference of the document that will be used to reference the document type 
* If type is not known, it will be registered as belonging to the INBOUND category.
* If type is an existing custom document type of category OUTBOUND an error is thrown.
* If type is invalid an error is thrown.

id
required
string

min 1 character, max 25 characters, may only contain digits 0-9

Request Body schema: application/json

the CustomInboundDocument to create

object (Currency)
date
required
string <date>
id
string [ 1 .. 25 ] characters ^[0-9]+
note
string <= 1000 characters
required
Array of objects (CustomInboundDocumentRow)
type
string [ 1 .. 25 ] characters [a-zA-Z0-9_-]+
voided
boolean
warehouseReady
boolean

Responses

Request samples

Content type
application/json
{
  • "currency": {
    },
  • "date": "2019-08-24",
  • "id": "string",
  • "note": "string",
  • "rows": [
    ],
  • "type": "string",
  • "voided": true,
  • "warehouseReady": true
}

Response samples

Content type
application/json
{
  • "currency": {
    },
  • "date": "2019-08-24",
  • "id": "string",
  • "note": "string",
  • "rows": [
    ],
  • "type": "string",
  • "voided": true,
  • "warehouseReady": true
}

Release custom inbound document

The document will be locked and bookkept. The inbound deliveries will affect available stock.

path Parameters
type
required
string

document type

id
required
string

document id

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Void custom inbound document

Voiding a document will undo the possible stock changes that the document had made, note that the document and the transactions created are not deleted. Some limitations apply, see below.

path Parameters
type
required
string

document type

id
required
string

document id

query Parameters
force
boolean

true if the document should be voided even if the document has connected outbounds, defaults to false.

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Custom Outbound Document

Handles Custom Outbound Documents.

A Custom Outbound Document is an externally created document for registering outbound deliveries to warehouse.

Get custom outbound document

path Parameters
type
required
string

document type

id
required
string

document id

Responses

Response samples

Content type
application/json
{
  • "averageCosts": [
    ],
  • "date": "2019-08-24",
  • "deliveryState": "registration",
  • "forcedDelivery": true,
  • "id": "string",
  • "note": "string",
  • "referenceType": "string",
  • "rows": [
    ],
  • "voided": true,
  • "warehouseReady": true
}

Save a custom outbound document


If type is not known, it will be registered as belonging to the OUTBOUND category.
If type is an existing custom document type of category INBOUND an error is thrown.
If type is invalid an error is thrown.
path Parameters
type
required
string

the type of the custom outbound document, min 1 character, max 25 characters, may contain letters A-Z, digits 0-9, underscore (_), and dash (-). Always stored as upper case.

id
required
string

the id of the custom outbound document, min 1 character, max 25 characters, may only contain digits 0-9

Request Body schema: application/json

the CustomOutboundDocument to create

Array of objects (AverageCost)
date
required
string <date>
deliveryState
required
string
Enum: "registration" "reservation" "delivery"
forcedDelivery
boolean
id
string [ 1 .. 25 ] characters ^[0-9]+
note
string <= 1000 characters
referenceType
string [ 1 .. 25 ] characters [a-zA-Z0-9_-]+
required
Array of objects (CustomOutboundDocumentRow)
voided
boolean
warehouseReady
boolean

Responses

Request samples

Content type
application/json
{
  • "averageCosts": [
    ],
  • "date": "2019-08-24",
  • "deliveryState": "registration",
  • "forcedDelivery": true,
  • "id": "string",
  • "note": "string",
  • "referenceType": "string",
  • "rows": [
    ],
  • "voided": true,
  • "warehouseReady": true
}

Response samples

Content type
application/json
{
  • "averageCosts": [
    ],
  • "date": "2019-08-24",
  • "deliveryState": "registration",
  • "forcedDelivery": true,
  • "id": "string",
  • "note": "string",
  • "referenceType": "string",
  • "rows": [
    ],
  • "voided": true,
  • "warehouseReady": true
}

Release custom outbound document

path Parameters
type
required
string

document type

id
required
string

document id

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Void custom outbound document

path Parameters
type
required
string

document type

id
required
string

document id

query Parameters
force
boolean

true if the document should be voided even if the document has connected outbounds, defaults to false.

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Incoming Goods

General resource for incoming goods.

List Incoming Goods Documents

List incoming goods documents matching the given parameters.

Sortable fields: id, has_delivery_note, delivery_note_id, supplier_number, date

query Parameters
released
boolean

true to include only released documents. false to include only non-released documents.

completed
boolean

true to include only completed documents. false to include only non-completed documents.

voided
boolean

true to include only voided documents. false to include only non-voided documents.

supplierNumber
string

Include only documents with the given supplierNumber.

itemId
string

Include only documents with the given itemId.

note
string

Include only documents where note-field contains the given text (case-insensitive).

deliveryNote
string

Include only documents where deliveryNote-field contains the given text (case-insensitive).

q
string

Include only documents where id or deliveryNote-field contains the given text (case-insensitive).

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Incoming Goods document

Request Body schema: */*

The IncomingGoods document.

completed
boolean
costCenterCode
string
date
string <date>
deliveryNoteId
required
string [ 1 .. 50 ] characters
hasDeliveryNote
boolean
id
integer <int64>
note
string <= 1000 characters
projectId
string
released
boolean
Array of objects (IncomingGoodsRow)
stockPointCode
string
stockPointId
string <uuid>
stockPointName
string
supplierName
string <= 1024 characters
supplierNumber
string <= 1024 characters
voided
boolean

Responses

Response samples

Content type
application/json
{
  • "completed": true,
  • "costCenterCode": "string",
  • "date": "2019-08-24",
  • "deliveryNoteId": "string",
  • "hasDeliveryNote": true,
  • "id": 0,
  • "note": "string",
  • "projectId": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "supplierName": "string",
  • "supplierNumber": "string",
  • "voided": true
}

Get Incoming Goods document

path Parameters
id
required
integer <int64>

Incoming goods document id.

query Parameters
ignoreSupplierInvoiceId
integer <int64>

This Supplier Invoice id will be excluded when calculating the takenQuantity.

Responses

Response samples

Content type
application/json
{
  • "completed": true,
  • "costCenterCode": "string",
  • "date": "2019-08-24",
  • "deliveryNoteId": "string",
  • "hasDeliveryNote": true,
  • "id": 0,
  • "note": "string",
  • "projectId": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "supplierName": "string",
  • "supplierNumber": "string",
  • "voided": true
}

Partial update Incoming Goods document

Perform a partial update of an IncomingGoods document. The partial update will update note, deliveryNoteId, supplierName and hasDeliveryNote It is possible to perform a partial update of a released/completed (TODO: ?) document.

path Parameters
id
required
integer <int64>

Incoming goods document id.

Request Body schema: */*

the incoming goods document to update. The partial update updates note, deliveryNoteId, supplierName and hasDeliveryNote

completed
boolean
costCenterCode
string
date
string <date>
deliveryNoteId
required
string [ 1 .. 50 ] characters
hasDeliveryNote
boolean
id
integer <int64>
note
string <= 1000 characters
projectId
string
released
boolean
Array of objects (IncomingGoodsRow)
stockPointCode
string
stockPointId
string <uuid>
stockPointName
string
supplierName
string <= 1024 characters
supplierNumber
string <= 1024 characters
voided
boolean

Responses

Response samples

Content type
application/json
{
  • "completed": true,
  • "costCenterCode": "string",
  • "date": "2019-08-24",
  • "deliveryNoteId": "string",
  • "hasDeliveryNote": true,
  • "id": 0,
  • "note": "string",
  • "projectId": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "supplierName": "string",
  • "supplierNumber": "string",
  • "voided": true
}

Update Incoming Goods document

path Parameters
id
required
integer <int64>

Incoming goods document id.

Request Body schema: */*

The IncomingGoods document.

completed
boolean
costCenterCode
string
date
string <date>
deliveryNoteId
required
string [ 1 .. 50 ] characters
hasDeliveryNote
boolean
id
integer <int64>
note
string <= 1000 characters
projectId
string
released
boolean
Array of objects (IncomingGoodsRow)
stockPointCode
string
stockPointId
string <uuid>
stockPointName
string
supplierName
string <= 1024 characters
supplierNumber
string <= 1024 characters
voided
boolean

Responses

Response samples

Content type
application/json
{
  • "completed": true,
  • "costCenterCode": "string",
  • "date": "2019-08-24",
  • "deliveryNoteId": "string",
  • "hasDeliveryNote": true,
  • "id": 0,
  • "note": "string",
  • "projectId": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "supplierName": "string",
  • "supplierNumber": "string",
  • "voided": true
}

Complete Incoming Goods document

Mark a released Incoming Goods document as Completed. Bookkeeping will be finalized. A Completed Incoming Goods document cannot be matched against any more Supplier Invoices.

path Parameters
id
required
integer <int64>

Incoming goods document id.

Request Body schema: */*

Date for bookkeeping in format "YYYY-MM-DD". Must be between document's release date (inclusive) and today's date (inclusive).

string

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Release Incoming Goods document

The document will be locked and bookkept. The inbound deliveries will affect available stock.

path Parameters
id
required
integer <int64>

Incoming goods document id.

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Void Incoming Goods document

Void a document. If an Incoming Goods document has been Completed, or matched against Supplier Invoice, it cannot be voided.

path Parameters
id
required
integer <int64>

Incoming goods document id.

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Manual Document

Handles listing of ManualDocuments.

There are three types of Manual Documents in Warehouse:

  • Manual Inbound Documents,
  • Manual Outbound Documents, and
  • Stock Transfer Documents

List manual documents

query Parameters
state
string
Enum: "all" "unreleased" "released" "voided"

Include only documents with given state.

type
string
Enum: "all" "inbound" "outbound" "stocktransfer"

Include only documents with given type.

itemId
string

Include only documents containing the given item.

Responses

Response samples

Content type
application/json
{
  • "date": "2019-08-24",
  • "deliveryId": 0,
  • "entityId": "string",
  • "note": "string",
  • "released": true,
  • "type": "Inbound",
  • "voided": true
}

Manual Inbound Document

Handles ManualInboundDocuments

Create manual inbound document

The id is set automatically.

Request Body schema: application/json

manual inbound document

currency
required
string = 3 characters
currencyRate
required
number >= 0.000001
currencyUnit
integer <int32> >= 1
date
required
string <date>
id
integer <int64>
note
string <= 1000 characters
released
boolean
required
Array of objects (ManualInboundDocumentRow) [ 1 .. 2147483647 ] items
stockPointCode
string
stockPointId
string <uuid>
stockPointName
string
voided
boolean

Responses

Request samples

Content type
application/json
{
  • "currency": "str",
  • "currencyRate": 0.000001,
  • "currencyUnit": 1,
  • "date": "2019-08-24",
  • "id": 0,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "voided": true
}

Response samples

Content type
application/json
{
  • "currency": "str",
  • "currencyRate": 0.000001,
  • "currencyUnit": 1,
  • "date": "2019-08-24",
  • "id": 0,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "voided": true
}

Get manual inbound document

path Parameters
id
required
integer <int64>

Manual Inbound document id.

Responses

Response samples

Content type
application/json
{
  • "currency": "str",
  • "currencyRate": 0.000001,
  • "currencyUnit": 1,
  • "date": "2019-08-24",
  • "id": 0,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "voided": true
}

Update note on manual inbound document

When a Manual Inbound has been released, it is locked. The note field can still be updated using this endpoint.

path Parameters
id
required
integer <int64>

Manual Inbound document id.

Request Body schema: application/json

Note.

note
string <= 1000 characters

Responses

Request samples

Content type
application/json
{
  • "note": "string"
}

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Update manual inbound document

path Parameters
id
required
integer <int64>

Manual Inbound document id.

Request Body schema: application/json

Manual Inbound document

currency
required
string = 3 characters
currencyRate
required
number >= 0.000001
currencyUnit
integer <int32> >= 1
date
required
string <date>
id
integer <int64>
note
string <= 1000 characters
released
boolean
required
Array of objects (ManualInboundDocumentRow) [ 1 .. 2147483647 ] items
stockPointCode
string
stockPointId
string <uuid>
stockPointName
string
voided
boolean

Responses

Request samples

Content type
application/json
{
  • "currency": "str",
  • "currencyRate": 0.000001,
  • "currencyUnit": 1,
  • "date": "2019-08-24",
  • "id": 0,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "voided": true
}

Response samples

Content type
application/json
{
  • "currency": "str",
  • "currencyRate": 0.000001,
  • "currencyUnit": 1,
  • "date": "2019-08-24",
  • "id": 0,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "voided": true
}

Release manual inbound document

The document will be locked and bookkept.

The following error codes might be thrown:

cannot_release_later_than_current_date
Document date cannot be in the future.
document_is_voided
Document is voided.
period_locked
Document date is within a locked bookkeeping period.
path Parameters
id
required
integer <int64>

Manual Inbound document id.

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Void manual inbound document

A released manual inbound document might have connected outbounds, and can only be force voided. Note that a force void operation might cause a negative stock.

The following error codes might be thrown:

void_linked_outbound
If this document has any outbounds transactions connected to it.
path Parameters
id
required
integer <int64>

Manual Inbound document id.

query Parameters
force
boolean

true if we should force void, defaults to false

customVoidDate
string <date>

date the void operation should be bookkeept on

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Manual Outbound Document

Handles ManualOutboundDocuments

Create manual outbound document

The id is set automatically.

Request Body schema: application/json

manual outbound document

date
required
string <date>
id
integer <int64>
note
string <= 1000 characters
released
boolean
required
Array of objects (ManualOutboundDocumentRow) <= 2147483647 items
stockPointCode
string
stockPointId
string <uuid>
stockPointName
string
voided
boolean

Responses

Request samples

Content type
application/json
{
  • "date": "2019-08-24",
  • "id": 0,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "voided": true
}

Response samples

Content type
application/json
{
  • "date": "2019-08-24",
  • "id": 0,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "voided": true
}

Get manual outbound document

path Parameters
id
required
integer <int64>

Manual Outbound document id.

Responses

Response samples

Content type
application/json
{
  • "date": "2019-08-24",
  • "id": 0,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "voided": true
}

Update note on manual outbound document

When a Manual Outbound has been released, it is locked. The note field can still be updated using this endpoint.

path Parameters
id
required
integer <int64>

Manual Outbound document id

Request Body schema: application/json

Note.

note
string <= 1000 characters

Responses

Request samples

Content type
application/json
{
  • "note": "string"
}

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Update manual outbound document

HTTP code 400 cannot_modify_released_document HTTP code 400 document_is_voided Document is voided. HTTP code 404 not found

path Parameters
id
required
integer <int64>

Manual Outbound document id.

Request Body schema: application/json

Manual Outbound document.

date
required
string <date>
id
integer <int64>
note
string <= 1000 characters
released
boolean
required
Array of objects (ManualOutboundDocumentRow) <= 2147483647 items
stockPointCode
string
stockPointId
string <uuid>
stockPointName
string
voided
boolean

Responses

Request samples

Content type
application/json
{
  • "date": "2019-08-24",
  • "id": 0,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "voided": true
}

Response samples

Content type
application/json
{
  • "date": "2019-08-24",
  • "id": 0,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockPointName": "string",
  • "voided": true
}

Release manual outbound document

The document will be locked and bookkept.

The following error codes might be thrown:

cannot_release_later_than_current_date
Document date cannot be in the future.
document_is_voided
Document is voided.
period_locked
Document date is within a locked bookkeeping period.
path Parameters
id
required
integer <int64>

Manual Outbound document id.

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Void manual outbound document

path Parameters
id
required
integer <int64>

Manual Outbound document id.

query Parameters
customVoidDate
string <date>

if provided this date will be used as the voided date instead of the document date

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Production Order

Handles Production Orders.

List production orders

query Parameters
state
string
Enum: "all" "incomplete" "delayed" "completed" "voided"

Include only production orders with the given state. Allowed states: all, incomplete, delayed, completed, voided. (Default is incomplete)

itemId
string

Include only production orders with the given production item.

Responses

Response samples

Content type
application/json
{
  • "batch": "string",
  • "costCenterCode": "string",
  • "documentState": "completed",
  • "id": 0,
  • "inboundStockLocationId": "58a8b17c-cfb8-461c-a5b0-3bae5ca14b26",
  • "inboundStockPointId": "4d7045de-5283-430b-ab64-206c14d83d8a",
  • "itemDescription": "string",
  • "itemId": "string",
  • "itemUnit": "string",
  • "note": "string",
  • "outboundStockPointId": "70dbd7e7-8fb3-4fdd-9672-e1bd6ebda1f9",
  • "packageItems": [
    ],
  • "productionDate": "2019-08-24",
  • "productionState": "registered",
  • "projectId": "string",
  • "quantity": 0.01,
  • "startDate": "2019-08-24"
}

Create a new production order

Set itemId to the item to be produced.

Set quantity to number of units to produce.

Set startDate to production start state.

ProductionState is set to reserved by default. It can also be registered. Then no reservations will be made (no quantities will be assigned to the packageItems yet).

Setting outboundStockPointId (where the packageItems will be taken from), and inboundStockPointId (where the produced item will be put) is mandatory multiple stockpoints has been activated in the warehouse settings.

Before the document is released, the productionDate must be set.

The packageItems to include is easiest to get by calling the method getRequiredProductionParts.

Request Body schema: */*

the production order to create ProductionOrder

batch
string
costCenterCode
string
documentState
string
Enum: "completed" "voided"
id
integer <int64>
inboundStockLocationId
string <uuid>
inboundStockPointId
string <uuid>
itemDescription
string
itemId
string
itemUnit
string
note
string <= 1000 characters
outboundStockPointId
string <uuid>
Array of objects (PackageItem)
productionDate
string <date>
productionState
required
string
Enum: "registered" "reserved" "ongoing"
projectId
string
quantity
required
number >= 0.01
startDate
required
string <date>

Responses

Response samples

Content type
application/json
{
  • "batch": "string",
  • "costCenterCode": "string",
  • "documentState": "completed",
  • "id": 0,
  • "inboundStockLocationId": "58a8b17c-cfb8-461c-a5b0-3bae5ca14b26",
  • "inboundStockPointId": "4d7045de-5283-430b-ab64-206c14d83d8a",
  • "itemDescription": "string",
  • "itemId": "string",
  • "itemUnit": "string",
  • "note": "string",
  • "outboundStockPointId": "70dbd7e7-8fb3-4fdd-9672-e1bd6ebda1f9",
  • "packageItems": [
    ],
  • "productionDate": "2019-08-24",
  • "productionState": "registered",
  • "projectId": "string",
  • "quantity": 0.01,
  • "startDate": "2019-08-24"
}

Get the package items (Bill Of Materials, BOMs) for a production article

If no parameters are supplied, the totalQuantityRequired for producing 1 unit is returned.

Query parameter quantity can optionally be supplied, which will calculate totalQuantityRequired.

If query parameter id is supplied, it will get the quantity from that Production Order (the quantity query parameter is ignored if id is included).

path Parameters
itemId
required
string

Production Article id

query Parameters
id
integer <int64>

the id of the production order (optional)

quantity
string

the quantity of the production order (assumed 1 if left empty)

Responses

Response samples

Content type
application/json
{
  • "itemDescription": "string",
  • "itemId": "string",
  • "itemUnit": "string",
  • "quantityRequired": 0,
  • "quantityReserved": 0,
  • "totalQuantityRequired": 0
}

Release a production order document

The document will be locked and bookkept.

The following error codes might be thrown:

PRODUCTION_DATE_IS_EMPTY
Production date cannot be empty.
CANNOT_RELEASE_AFTER_CURRENT_DATE
Document date cannot be in the future.
DOCUMENT_IS_VOIDED
The document has been voided and can no longer be modified.
DOCUMENT_IS_RELEASED
The document has already been released and can no longer be modified.
DOCUMENT_NOT_FULLY_RESERVED
The documents package items (BOMs, Bill Of Materials) has not been fully reserved (reserved quantity is not equal to total required quantity for one or more package item).
path Parameters
id
required
integer <int64>

Production Order document id.

Responses

Response samples

Content type
application/json
{
  • "batch": "string",
  • "costCenterCode": "string",
  • "documentState": "completed",
  • "id": 0,
  • "inboundStockLocationId": "58a8b17c-cfb8-461c-a5b0-3bae5ca14b26",
  • "inboundStockPointId": "4d7045de-5283-430b-ab64-206c14d83d8a",
  • "itemDescription": "string",
  • "itemId": "string",
  • "itemUnit": "string",
  • "note": "string",
  • "outboundStockPointId": "70dbd7e7-8fb3-4fdd-9672-e1bd6ebda1f9",
  • "packageItems": [
    ],
  • "productionDate": "2019-08-24",
  • "productionState": "registered",
  • "projectId": "string",
  • "quantity": 0.01,
  • "startDate": "2019-08-24"
}

Void a production order

A released production order might have connected outbounds, and can only be force voided. Note that a force void operation might cause a negative stock.

path Parameters
id
required
integer <int64>

Production Order document id.

query Parameters
force
boolean

true to force void a released document, default false

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Get Production Order document

path Parameters
id
required
integer <int64>

Production Order document id.

Responses

Response samples

Content type
application/json
{
  • "batch": "string",
  • "costCenterCode": "string",
  • "documentState": "completed",
  • "id": 0,
  • "inboundStockLocationId": "58a8b17c-cfb8-461c-a5b0-3bae5ca14b26",
  • "inboundStockPointId": "4d7045de-5283-430b-ab64-206c14d83d8a",
  • "itemDescription": "string",
  • "itemId": "string",
  • "itemUnit": "string",
  • "note": "string",
  • "outboundStockPointId": "70dbd7e7-8fb3-4fdd-9672-e1bd6ebda1f9",
  • "packageItems": [
    ],
  • "productionDate": "2019-08-24",
  • "productionState": "registered",
  • "projectId": "string",
  • "quantity": 0.01,
  • "startDate": "2019-08-24"
}

Update the note of a production order

When a Production Order has been released it is locked. However, the note field can still be updated using this endpoint.

path Parameters
id
required
integer <int64>

Production Order document id.

Request Body schema: */*

contains data to be patched onto the production order

note
string <= 1000 characters

Responses

Response samples

Content type
application/json
{
  • "batch": "string",
  • "costCenterCode": "string",
  • "documentState": "completed",
  • "id": 0,
  • "inboundStockLocationId": "58a8b17c-cfb8-461c-a5b0-3bae5ca14b26",
  • "inboundStockPointId": "4d7045de-5283-430b-ab64-206c14d83d8a",
  • "itemDescription": "string",
  • "itemId": "string",
  • "itemUnit": "string",
  • "note": "string",
  • "outboundStockPointId": "70dbd7e7-8fb3-4fdd-9672-e1bd6ebda1f9",
  • "packageItems": [
    ],
  • "productionDate": "2019-08-24",
  • "productionState": "registered",
  • "projectId": "string",
  • "quantity": 0.01,
  • "startDate": "2019-08-24"
}

Update a production order

Note that you must submit the full Production Order document when updating.

path Parameters
id
required
integer <int64>

Production Order document id.

Request Body schema: */*

the production order data see ProductionOrder

batch
string
costCenterCode
string
documentState
string
Enum: "completed" "voided"
id
integer <int64>
inboundStockLocationId
string <uuid>
inboundStockPointId
string <uuid>
itemDescription
string
itemId
string
itemUnit
string
note
string <= 1000 characters
outboundStockPointId
string <uuid>
Array of objects (PackageItem)
productionDate
string <date>
productionState
required
string
Enum: "registered" "reserved" "ongoing"
projectId
string
quantity
required
number >= 0.01
startDate
required
string <date>

Responses

Response samples

Content type
application/json
{
  • "batch": "string",
  • "costCenterCode": "string",
  • "documentState": "completed",
  • "id": 0,
  • "inboundStockLocationId": "58a8b17c-cfb8-461c-a5b0-3bae5ca14b26",
  • "inboundStockPointId": "4d7045de-5283-430b-ab64-206c14d83d8a",
  • "itemDescription": "string",
  • "itemId": "string",
  • "itemUnit": "string",
  • "note": "string",
  • "outboundStockPointId": "70dbd7e7-8fb3-4fdd-9672-e1bd6ebda1f9",
  • "packageItems": [
    ],
  • "productionDate": "2019-08-24",
  • "productionState": "registered",
  • "projectId": "string",
  • "quantity": 0.01,
  • "startDate": "2019-08-24"
}

Purchase Order

Handles Purchase Orders

List Purchase Orders

List purchase orders matching the given parameters.

Sortable fields: id, supplier_number, order_date, internal_reference, response_state, delivery_date

query Parameters
q
string

Include only documents where id or internalReference-field contains the given text (case-insensitive).

supplierNumber
string

Include only documents with the given supplierNumber.

state
string
Enum: "NOT_SENT" "SENT" "SENT_NOT_REJECTED" "DELAYED" "RECEIVED" "VOIDED" "CURRENT" "ALL"

Include only documents with the given purchaseOrderState.

itemId
string

Include only documents with the given itemId.

purchaseType
string
Enum: "WAREHOUSE" "DROPSHIP"

Include only documents with the given purchaseType

internalReference
string

Include only documents where `internalReference' contains the given text (case-insensitive).

note
string

Include only documents where note-field contains the given text (case-insensitive).

Responses

Response samples

Content type
application/json
{
  • "confirmationEmail": "string",
  • "costCenterCode": "string",
  • "currencyCode": "str",
  • "currencyRate": 0,
  • "currencyUnit": 1,
  • "customerId": "string",
  • "customerName": "string",
  • "customerNumber": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryDate": "2019-08-24",
  • "deliveryName": "string",
  • "deliveryZipCode": "string",
  • "dropship": true,
  • "id": 0,
  • "internalReference": "string",
  • "languageCode": "str",
  • "manuallyCompleted": true,
  • "messageToSupplier": "string",
  • "note": "string",
  • "orderDate": "2019-08-24",
  • "orderValue": 0,
  • "orderValueInSEK": 0,
  • "ourReference": "string",
  • "outboundDocumentReference": {
    },
  • "paymentTermsCode": "string",
  • "projectId": "string",
  • "purchaseOrderState": "NOT_SENT",
  • "purchaseType": "WAREHOUSE",
  • "responseState": "NOT_SENT",
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "supplier": "string",
  • "supplierAddress": "string",
  • "supplierAddress2": "string",
  • "supplierCity": "string",
  • "supplierCountryCode": "str",
  • "supplierEmail": "string",
  • "supplierName": "string",
  • "supplierNumber": "string",
  • "supplierPostCode": "string",
  • "totalReceivedQuantity": 0,
  • "translatedResponseState": "string",
  • "voided": true,
  • "yourReference": "string"
}

Create Purchase Order

Request Body schema: */*

PurchaseOrder document.

confirmationEmail
string <= 100 characters
costCenterCode
string <= 25 characters
currencyCode
required
string <= 3 characters
currencyRate
required
number
currencyUnit
integer <int32> >= 1
customerId
string <= 25 characters
customerName
string <= 1024 characters
customerNumber
string <= 1024 characters
deliveryAddress
required
string [ 1 .. 1024 ] characters
deliveryAddress2
string <= 1024 characters
deliveryCity
required
string [ 1 .. 50 ] characters
deliveryCountryCode
string <= 3 characters
deliveryDate
string <date>
deliveryName
required
string [ 1 .. 50 ] characters
deliveryZipCode
required
string [ 1 .. 10 ] characters
dropship
boolean
id
integer <int64>
internalReference
string <= 50 characters
languageCode
string <= 3 characters
manuallyCompleted
boolean
messageToSupplier
string <= 1000 characters
note
string <= 1000 characters
orderDate
required
string <date>
orderValue
number
orderValueInSEK
number
ourReference
string <= 50 characters
object (DocumentReference)
paymentTermsCode
required
string <= 20 characters
projectId
string <= 25 characters
purchaseOrderState
string
Enum: "NOT_SENT" "SENT" "SENT_NOT_REJECTED" "DELAYED" "RECEIVED" "VOIDED" "CURRENT" "ALL"
purchaseType
string
Enum: "WAREHOUSE" "DROPSHIP"
responseState
string
Enum: "NOT_SENT" "SENT" "ACCEPTED_WITH_REQ_DLV_DATE" "ACCEPTED_WITH_CHANGED_DLV_DATE" "PARTLY_ACCEPTED_WITH_REQ_DLV_DATE" "PARTLY_ACCEPTED_WITH_CHANGED_DLV_DATE" "REJECTED"
Array of objects (PurchaseOrderRow)
stockPointCode
string
stockPointId
string <uuid>
supplier
string
supplierAddress
string <= 1024 characters
supplierAddress2
string <= 1024 characters
supplierCity
string <= 1024 characters
supplierCountryCode
string <= 3 characters
supplierEmail
string <= 100 characters
supplierName
string <= 1024 characters
supplierNumber
required
string <= 1024 characters
supplierPostCode
string <= 1024 characters
totalReceivedQuantity
number
translatedResponseState
string
voided
boolean
yourReference
string <= 50 characters

Responses

Response samples

Content type
application/json
{
  • "confirmationEmail": "string",
  • "costCenterCode": "string",
  • "currencyCode": "str",
  • "currencyRate": 0,
  • "currencyUnit": 1,
  • "customerId": "string",
  • "customerName": "string",
  • "customerNumber": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryDate": "2019-08-24",
  • "deliveryName": "string",
  • "deliveryZipCode": "string",
  • "dropship": true,
  • "id": 0,
  • "internalReference": "string",
  • "languageCode": "str",
  • "manuallyCompleted": true,
  • "messageToSupplier": "string",
  • "note": "string",
  • "orderDate": "2019-08-24",
  • "orderValue": 0,
  • "orderValueInSEK": 0,
  • "ourReference": "string",
  • "outboundDocumentReference": {
    },
  • "paymentTermsCode": "string",
  • "projectId": "string",
  • "purchaseOrderState": "NOT_SENT",
  • "purchaseType": "WAREHOUSE",
  • "responseState": "NOT_SENT",
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "supplier": "string",
  • "supplierAddress": "string",
  • "supplierAddress2": "string",
  • "supplierCity": "string",
  • "supplierCountryCode": "str",
  • "supplierEmail": "string",
  • "supplierName": "string",
  • "supplierNumber": "string",
  • "supplierPostCode": "string",
  • "totalReceivedQuantity": 0,
  • "translatedResponseState": "string",
  • "voided": true,
  • "yourReference": "string"
}

Get CSV list of Purchase Orders

query Parameters
q
string

Include only documents where id or internalReference-field contains the given text (case-insensitive).

supplierNumber
string

Include only documents with the given supplierNumber.

state
string
Enum: "NOT_SENT" "SENT" "SENT_NOT_REJECTED" "DELAYED" "RECEIVED" "VOIDED" "CURRENT" "ALL"

Include only documents with the given purchaseOrderState.

itemId
string

Include only documents with the given itemId.

purchaseType
string
Enum: "WAREHOUSE" "DROPSHIP"

Include only documents with the given purchaseType

internalReference
string

Include only documents where `internalReference' contains the given text (case-insensitive).

note
string

Include only documents where note-field contains the given text (case-insensitive).

showPurchaseTypeColumn
boolean

True to include the purchase type column, default is false.

Responses

Update response states

query Parameters
ids
Array of integers <int64> [ items <int64 > ]

List of purchase order ids.

Request Body schema: */*

The new response state.

responseState
string
Enum: "NOT_SENT" "SENT" "ACCEPTED_WITH_REQ_DLV_DATE" "ACCEPTED_WITH_CHANGED_DLV_DATE" "PARTLY_ACCEPTED_WITH_REQ_DLV_DATE" "PARTLY_ACCEPTED_WITH_CHANGED_DLV_DATE" "REJECTED"

Responses

Response samples

Content type
application/json
{
  • "confirmationEmail": "string",
  • "costCenterCode": "string",
  • "currencyCode": "str",
  • "currencyRate": 0,
  • "currencyUnit": 1,
  • "customerId": "string",
  • "customerName": "string",
  • "customerNumber": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryDate": "2019-08-24",
  • "deliveryName": "string",
  • "deliveryZipCode": "string",
  • "dropship": true,
  • "id": 0,
  • "internalReference": "string",
  • "languageCode": "str",
  • "manuallyCompleted": true,
  • "messageToSupplier": "string",
  • "note": "string",
  • "orderDate": "2019-08-24",
  • "orderValue": 0,
  • "orderValueInSEK": 0,
  • "ourReference": "string",
  • "outboundDocumentReference": {
    },
  • "paymentTermsCode": "string",
  • "projectId": "string",
  • "purchaseOrderState": "NOT_SENT",
  • "purchaseType": "WAREHOUSE",
  • "responseState": "NOT_SENT",
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "supplier": "string",
  • "supplierAddress": "string",
  • "supplierAddress2": "string",
  • "supplierCity": "string",
  • "supplierCountryCode": "str",
  • "supplierEmail": "string",
  • "supplierName": "string",
  • "supplierNumber": "string",
  • "supplierPostCode": "string",
  • "totalReceivedQuantity": 0,
  • "translatedResponseState": "string",
  • "voided": true,
  • "yourReference": "string"
}

Sends multiple purchase orders via email

Request Body schema: */*

List of Purchase order ids.

Array
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Get Purchase Order

path Parameters
id
required
integer <int64>

Purchase order id.

query Parameters
ignoreIncomingGoodsId
integer <int64>

used for calculating the remaining ordered quantity. null will take the received quantity from all incoming goods

Responses

Response samples

Content type
application/json
{
  • "confirmationEmail": "string",
  • "costCenterCode": "string",
  • "currencyCode": "str",
  • "currencyRate": 0,
  • "currencyUnit": 1,
  • "customerId": "string",
  • "customerName": "string",
  • "customerNumber": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryDate": "2019-08-24",
  • "deliveryName": "string",
  • "deliveryZipCode": "string",
  • "dropship": true,
  • "id": 0,
  • "internalReference": "string",
  • "languageCode": "str",
  • "manuallyCompleted": true,
  • "messageToSupplier": "string",
  • "note": "string",
  • "orderDate": "2019-08-24",
  • "orderValue": 0,
  • "orderValueInSEK": 0,
  • "ourReference": "string",
  • "outboundDocumentReference": {
    },
  • "paymentTermsCode": "string",
  • "projectId": "string",
  • "purchaseOrderState": "NOT_SENT",
  • "purchaseType": "WAREHOUSE",
  • "responseState": "NOT_SENT",
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "supplier": "string",
  • "supplierAddress": "string",
  • "supplierAddress2": "string",
  • "supplierCity": "string",
  • "supplierCountryCode": "str",
  • "supplierEmail": "string",
  • "supplierName": "string",
  • "supplierNumber": "string",
  • "supplierPostCode": "string",
  • "totalReceivedQuantity": 0,
  • "translatedResponseState": "string",
  • "voided": true,
  • "yourReference": "string"
}

Update Purchase Order

path Parameters
id
required
integer <int64>

Purchase order id.

Request Body schema: */*

The PurchaseOrder document.

confirmationEmail
string <= 100 characters
costCenterCode
string <= 25 characters
currencyCode
required
string <= 3 characters
currencyRate
required
number
currencyUnit
integer <int32> >= 1
customerId
string <= 25 characters
customerName
string <= 1024 characters
customerNumber
string <= 1024 characters
deliveryAddress
required
string [ 1 .. 1024 ] characters
deliveryAddress2
string <= 1024 characters
deliveryCity
required
string [ 1 .. 50 ] characters
deliveryCountryCode
string <= 3 characters
deliveryDate
string <date>
deliveryName
required
string [ 1 .. 50 ] characters
deliveryZipCode
required
string [ 1 .. 10 ] characters
dropship
boolean
id
integer <int64>
internalReference
string <= 50 characters
languageCode
string <= 3 characters
manuallyCompleted
boolean
messageToSupplier
string <= 1000 characters
note
string <= 1000 characters
orderDate
required
string <date>
orderValue
number
orderValueInSEK
number
ourReference
string <= 50 characters
object (DocumentReference)
paymentTermsCode
required
string <= 20 characters
projectId
string <= 25 characters
purchaseOrderState
string
Enum: "NOT_SENT" "SENT" "SENT_NOT_REJECTED" "DELAYED" "RECEIVED" "VOIDED" "CURRENT" "ALL"
purchaseType
string
Enum: "WAREHOUSE" "DROPSHIP"
responseState
string
Enum: "NOT_SENT" "SENT" "ACCEPTED_WITH_REQ_DLV_DATE" "ACCEPTED_WITH_CHANGED_DLV_DATE" "PARTLY_ACCEPTED_WITH_REQ_DLV_DATE" "PARTLY_ACCEPTED_WITH_CHANGED_DLV_DATE" "REJECTED"
Array of objects (PurchaseOrderRow)
stockPointCode
string
stockPointId
string <uuid>
supplier
string
supplierAddress
string <= 1024 characters
supplierAddress2
string <= 1024 characters
supplierCity
string <= 1024 characters
supplierCountryCode
string <= 3 characters
supplierEmail
string <= 100 characters
supplierName
string <= 1024 characters
supplierNumber
required
string <= 1024 characters
supplierPostCode
string <= 1024 characters
totalReceivedQuantity
number
translatedResponseState
string
voided
boolean
yourReference
string <= 50 characters

Responses

Response samples

Content type
application/json
{
  • "confirmationEmail": "string",
  • "costCenterCode": "string",
  • "currencyCode": "str",
  • "currencyRate": 0,
  • "currencyUnit": 1,
  • "customerId": "string",
  • "customerName": "string",
  • "customerNumber": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryDate": "2019-08-24",
  • "deliveryName": "string",
  • "deliveryZipCode": "string",
  • "dropship": true,
  • "id": 0,
  • "internalReference": "string",
  • "languageCode": "str",
  • "manuallyCompleted": true,
  • "messageToSupplier": "string",
  • "note": "string",
  • "orderDate": "2019-08-24",
  • "orderValue": 0,
  • "orderValueInSEK": 0,
  • "ourReference": "string",
  • "outboundDocumentReference": {
    },
  • "paymentTermsCode": "string",
  • "projectId": "string",
  • "purchaseOrderState": "NOT_SENT",
  • "purchaseType": "WAREHOUSE",
  • "responseState": "NOT_SENT",
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "supplier": "string",
  • "supplierAddress": "string",
  • "supplierAddress2": "string",
  • "supplierCity": "string",
  • "supplierCountryCode": "str",
  • "supplierEmail": "string",
  • "supplierName": "string",
  • "supplierNumber": "string",
  • "supplierPostCode": "string",
  • "totalReceivedQuantity": 0,
  • "translatedResponseState": "string",
  • "voided": true,
  • "yourReference": "string"
}

Manually complete Purchase Order

The purchase order will be treated as fully received. Any remaining quantity will be ignored.

path Parameters
id
required
integer <int64>

Purchase order id.

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Manually complete dropship order

The dropship order will be treated as fully received. Any remaining quantity will be ignored.

path Parameters
id
required
integer <int64>

Purchase order id.

Responses

Response samples

Content type
application/json
{
  • "releasedParentOrder": true
}

List matched documents

Get a list of DocumentReference of linked/connected purchase orders to incoming goods and/or invoice document.

path Parameters
id
required
integer <int64>

Purchase order id.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "type": "string"
}

Get notes

Get notes for a purchase order.

path Parameters
id
required
integer <int64>

Purchase order id.

Responses

Response samples

Content type
application/json
{
  • "note": "string",
  • "purchaseOrderId": 0,
  • "purchaseOrderRowId": "ba867b0e-f326-42c4-9f43-58bde9b319da",
  • "rowNum": 0
}

Partial update Purchase Order

Perform a partial update of a purchase order, see PartialPurchaseOrder for possible fields that are updateable.

path Parameters
id
required
integer <int64>

Purchase order id.

Request Body schema: */*

the changes for the purchase order, see PartialPurchaseOrder

deliveryDate
string <date>
internalReference
string <= 50 characters
messageToSupplier
string <= 1000 characters
note
string <= 1000 characters
supplierName
string <= 1024 characters

Responses

Response samples

Content type
application/json
{
  • "deliveryDate": "2019-08-24",
  • "internalReference": "string",
  • "messageToSupplier": "string",
  • "note": "string",
  • "supplierName": "string"
}

Update response state

path Parameters
id
required
integer <int64>

Purchase order id.

Request Body schema: */*

The new response state.

responseState
string
Enum: "NOT_SENT" "SENT" "ACCEPTED_WITH_REQ_DLV_DATE" "ACCEPTED_WITH_CHANGED_DLV_DATE" "PARTLY_ACCEPTED_WITH_REQ_DLV_DATE" "PARTLY_ACCEPTED_WITH_CHANGED_DLV_DATE" "REJECTED"

Responses

Response samples

Content type
application/json
{
  • "confirmationEmail": "string",
  • "costCenterCode": "string",
  • "currencyCode": "str",
  • "currencyRate": 0,
  • "currencyUnit": 1,
  • "customerId": "string",
  • "customerName": "string",
  • "customerNumber": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryDate": "2019-08-24",
  • "deliveryName": "string",
  • "deliveryZipCode": "string",
  • "dropship": true,
  • "id": 0,
  • "internalReference": "string",
  • "languageCode": "str",
  • "manuallyCompleted": true,
  • "messageToSupplier": "string",
  • "note": "string",
  • "orderDate": "2019-08-24",
  • "orderValue": 0,
  • "orderValueInSEK": 0,
  • "ourReference": "string",
  • "outboundDocumentReference": {
    },
  • "paymentTermsCode": "string",
  • "projectId": "string",
  • "purchaseOrderState": "NOT_SENT",
  • "purchaseType": "WAREHOUSE",
  • "responseState": "NOT_SENT",
  • "rows": [
    ],
  • "stockPointCode": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "supplier": "string",
  • "supplierAddress": "string",
  • "supplierAddress2": "string",
  • "supplierCity": "string",
  • "supplierCountryCode": "str",
  • "supplierEmail": "string",
  • "supplierName": "string",
  • "supplierNumber": "string",
  • "supplierPostCode": "string",
  • "totalReceivedQuantity": 0,
  • "translatedResponseState": "string",
  • "voided": true,
  • "yourReference": "string"
}

Send purchase order via email

Sends the purchase order with the specified id to the recipient and sets the purchase order state to SENT

path Parameters
id
required
integer <int64>

Purchase order id.

Request Body schema: */*

see PurchaseOrderMailSettings

body
required
string
bodyAsHtml
string
receiver
required
string
receiverCopy
string
receiverSecretCopy
string
replyTo
required
string
senderName
string
subject
required
string

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Void Purchase Order

path Parameters
id
required
integer <int64>

Purchase order id.

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Stock Point

Resource to handle StockPoints.

List stock points

List stock points, optionally include a query parameter `q` to filter on stock point code or name.

Use query param `state` to filter on ACTIVE, INACTIVE or ALL (default is to include only ACTIVE stock points).

Stock locations are NOT included in the response.

query Parameters
q
string

filters on stock point code or name.

state
string
Enum: "ALL" "ACTIVE" "INACTIVE"

filter on stock point state

Responses

Response samples

Content type
application/json
{
  • "active": true,
  • "code": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryName": "string",
  • "deliveryPhone": "string",
  • "deliveryZipCode": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "stockLocations": [
    ],
  • "usingCompanyAddress": true
}

Create stock point

Both code and name are mandatory.

If you want to set a custom delivery address for this stock point, you must remember to set usingCompanyAddress to false.

Returns 400 alreadyexists if a stock point with same code already exists.

Returns 400 duplicatestocklocations if two or more stock locations have the same code.

Request Body schema: application/json

stock point

active
boolean
code
required
string [ 1 .. 10 ] characters
deliveryAddress
string <= 50 characters
deliveryAddress2
string <= 50 characters
deliveryCity
string <= 50 characters
deliveryCountryCode
string <= 3 characters
deliveryName
string <= 50 characters
deliveryPhone
string <= 50 characters
deliveryZipCode
string <= 10 characters
id
string <uuid>
name
required
string [ 1 .. 25 ] characters
Array of objects (StockLocation)
usingCompanyAddress
boolean

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "code": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryName": "string",
  • "deliveryPhone": "string",
  • "deliveryZipCode": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "stockLocations": [
    ],
  • "usingCompanyAddress": true
}

Response samples

Content type
application/json
{
  • "active": true,
  • "code": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryName": "string",
  • "deliveryPhone": "string",
  • "deliveryZipCode": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "stockLocations": [
    ],
  • "usingCompanyAddress": true
}

Get stock points

Get stock points by IDs.

Use query param `state` to filter on ACTIVE, INACTIVE or ALL (default is to include ALL stock points).

Stock locations are NOT included in the response.

query Parameters
ids
Array of strings <uuid> [ items <uuid > ]

stock point ids (comma separated list of UUIDs)

state
string
Enum: "ALL" "ACTIVE" "INACTIVE"

filter on StockPointState, default is to include ALL stock points.

Responses

Response samples

Content type
application/json
{
  • "active": true,
  • "code": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryName": "string",
  • "deliveryPhone": "string",
  • "deliveryZipCode": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "stockLocations": [
    ],
  • "usingCompanyAddress": true
}

Delete stock point

Note that it is not allowed to delete a stock point that is in use.

path Parameters
id
required
string <uuid>

id

Responses

Response samples

Content type
application/json
{
  • "active": true,
  • "code": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryName": "string",
  • "deliveryPhone": "string",
  • "deliveryZipCode": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "stockLocations": [
    ],
  • "usingCompanyAddress": true
}

Get stock point

Get stock point by id or code.

path Parameters
id
required
string

stock point code, or stock point id

Responses

Response samples

Content type
application/json
{
  • "active": true,
  • "code": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryName": "string",
  • "deliveryPhone": "string",
  • "deliveryZipCode": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "stockLocations": [
    ],
  • "usingCompanyAddress": true
}

Append stock locations

Add new stock locations to specific StockPoint.

If you include an already existing stock location code, it will be ignored.

path Parameters
id
required
string <uuid>

stock point id

Request Body schema: application/json

A list of StockLocations to append.

Array
code
required
string [ 1 .. 20 ] characters
id
string <uuid>
name
string <= 25 characters
stockPointId
string <uuid>

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "code": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c"
}

Update stock point

Remember to supply the complete representation of stock point including stock locations.

path Parameters
id
required
string <uuid>

id

Request Body schema: application/json

complete representation of stock point including stock locations.

active
boolean
code
required
string [ 1 .. 10 ] characters
deliveryAddress
string <= 50 characters
deliveryAddress2
string <= 50 characters
deliveryCity
string <= 50 characters
deliveryCountryCode
string <= 3 characters
deliveryName
string <= 50 characters
deliveryPhone
string <= 50 characters
deliveryZipCode
string <= 10 characters
id
string <uuid>
name
required
string [ 1 .. 25 ] characters
Array of objects (StockLocation)
usingCompanyAddress
boolean

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "code": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryName": "string",
  • "deliveryPhone": "string",
  • "deliveryZipCode": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "stockLocations": [
    ],
  • "usingCompanyAddress": true
}

Response samples

Content type
application/json
{
  • "active": true,
  • "code": "string",
  • "deliveryAddress": "string",
  • "deliveryAddress2": "string",
  • "deliveryCity": "string",
  • "deliveryCountryCode": "str",
  • "deliveryName": "string",
  • "deliveryPhone": "string",
  • "deliveryZipCode": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "stockLocations": [
    ],
  • "usingCompanyAddress": true
}

Get stock locations

List stock locations for a specific stock point.

Optionally include a query parameter `q` to filter on stock location code or name.

path Parameters
id
required
string

stock point id or code

query Parameters
q
string

filters on stock location code or name.

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c"
}

Stock Status

Handles stock status.

Get stock balance

Get stock balance for each stockpoint.

Returns a list of itemId, stockPointCode, availableStock, inStock.

(The difference between availableStock and inStock is the reserved amount.)

query Parameters
itemIds
Array of strings

Optional filter on itemIds (comma-separated)

stockPointCodes
Array of strings

Optional filter on stock point codes (comma-separated).

Responses

Response samples

Content type
application/json
{
  • "availableStock": 0,
  • "inStock": 0,
  • "itemId": "string",
  • "stockPointCode": "string"
}

Stock Taking

Handles stock taking.

A Stock Taking document is created in state "planning". Rows, containing item-stockpoint-stocklocation combinations to be counted, are added to the Stock Taking document.

When the planning is done, the Stock Taking document is updated to state "started", and the stock taking begins.

Setting the stock taken quantity is done by updating the Stock Taking document, and supplying the counted rows. This can be done in "batches", i.e. not all rows needs to be updated at once.

When the stock taking is done, the document is released. The release process will adjust the stock for the stock taking date, and prepare the warehouse bookkeeping data.

List stock takings

Sortable fields: id, name, date, responsible, state

query Parameters
state
string
Enum: "all" "planning" "started" "completed" "voided"

Include only stock takings with the given state.

itemId
string

Include only stock takings with the given item.

Responses

Response samples

Content type
application/json
{
  • "costCenterCode": "string",
  • "date": "2019-08-24",
  • "id": 0,
  • "name": "string",
  • "projectId": "string",
  • "responsible": "string",
  • "rows": [
    ],
  • "sortParams": {
    },
  • "sortingId": 0,
  • "state": "string",
  • "usingStockPoints": true
}

Create stock taking

Create a new Stock Taking document. The only mandatory fields are name and responsible. state will be set to planning for a newly created document.

The date-field is not mandatory for documents in state planning. However, when you update the state to started you have to provide a date.

name is a descriptive name of the stock taking.

responsible is the name of the responsible for the stock taking.

rows are added after creation by using the addRows-method.

projectId and costCenterCode are used for book-keeping, when the Stock Taking document is released.

The field usingStockPoints is set from Warehouse system settings upon creation. If multiple stockpoints is used, then the rows will be per item-stockPoint-stockLocation. If multiple stockpoints is NOT used, then the rows will be per item-stockLocation.

Request Body schema: */*

stock taking

costCenterCode
string
date
string <date>
id
integer <int64>
name
required
string [ 1 .. 50 ] characters
projectId
string
responsible
required
string [ 1 .. 50 ] characters
Array of objects (StockTakingRow)
object (StockTakingSortParams)
sortingId
integer <int32>
state
required
stringplanning|started|completed|voided
usingStockPoints
boolean

Responses

Response samples

Content type
application/json
{
  • "costCenterCode": "string",
  • "date": "2019-08-24",
  • "id": 0,
  • "name": "string",
  • "projectId": "string",
  • "responsible": "string",
  • "rows": [
    ],
  • "sortParams": {
    },
  • "sortingId": 0,
  • "state": "string",
  • "usingStockPoints": true
}

Delete Stock Taking document

Permanently deletes a Stock Taking document and its rows.

Only for documents in state planning and started.

path Parameters
id
required
integer <int64>

Stock Taking document id.

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Get Stock Taking document

path Parameters
id
required
integer <int64>

Stock Taking document id.

Responses

Response samples

Content type
application/json
{
  • "costCenterCode": "string",
  • "date": "2019-08-24",
  • "id": 0,
  • "name": "string",
  • "projectId": "string",
  • "responsible": "string",
  • "rows": [
    ],
  • "sortParams": {
    },
  • "sortingId": 0,
  • "state": "string",
  • "usingStockPoints": true
}

Update a stock taking

Updates can only be done when state is planning or started.

All updatable fields (date, name, responsible, state, sortingId, costCenterCode, projectId) in the document head are set to supplied values.

You cannot set state to completed or voided. Use endpoints release or void for this.

The date-field is mandatory for documents in state started.

When state is started you use this endpoint for setting the stock taken quantity. Only existing rows can be updated - no new rows will be created (use the addRows endpoint for this). Only the supplied rows will be updated. I.e. you don't have to send in all document rows - just supply the rows you want to set stockTakenQuantity for. Just make sure to always include all the fields from the document head as mentioned above.

The mandatory fields on the (optionally supplied) rows are: itemId, stockPointId, stockLocationId. Fields countedBy and stockTakenQuantity are technically not mandatory, but will be set to null if you don't supply them.

path Parameters
id
required
integer <int64>

Stock Taking document id.

Request Body schema: */*

stock taking

costCenterCode
string
date
string <date>
id
integer <int64>
name
required
string [ 1 .. 50 ] characters
projectId
string
responsible
required
string [ 1 .. 50 ] characters
Array of objects (StockTakingRow)
object (StockTakingSortParams)
sortingId
integer <int32>
state
required
stringplanning|started|completed|voided
usingStockPoints
boolean

Responses

Response samples

Content type
application/json
{
  • "costCenterCode": "string",
  • "date": "2019-08-24",
  • "id": 0,
  • "name": "string",
  • "projectId": "string",
  • "responsible": "string",
  • "rows": [
    ],
  • "sortParams": {
    },
  • "sortingId": 0,
  • "state": "string",
  • "usingStockPoints": true
}

Add rows by filter

Add all matching candidate rows to a stock taking, as specified by filters.

path Parameters
id
required
integer <int64>

Stock Taking document id.

query Parameters
itemIds
Array of strings
supplierNumbers
Array of strings
stockPointIds
Array of strings
stockLocationIds
Array of strings
transactionDate
string <date>
itemIdSearch
string
itemDescriptionSearch
string
excludeZeroBalanceItems
boolean
excludeNonInboundItems
boolean

Responses

Response samples

Content type
application/json
0
0

Get candidate rows

A candidate row is a combination of itemId, stockPointId and stockLocationId that can be added to the Stock Taking document.

Rows already added to the Stock Taking are excluded from this list.

path Parameters
id
required
integer <int64>

Stock Taking document id.

query Parameters
itemIds
Array of strings
supplierNumbers
Array of strings
stockPointIds
Array of strings
stockLocationIds
Array of strings
transactionDate
string <date>
itemIdSearch
string
itemDescriptionSearch
string
excludeZeroBalanceItems
boolean
includeNonInboundItems
boolean

Include items that do not exist on inbound deliveries.

Responses

Response samples

Content type
application/json
{
  • "countedBy": "string",
  • "currentRowNo": 0,
  • "hasPostReleaseStockChanges": true,
  • "id": "string",
  • "itemId": "string",
  • "stockLocationId": "c039ed46-ada4-4486-8700-89747e000395",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockTakenQuantity": 0,
  • "stockTakingId": 0,
  • "stockTakingRowId": "string",
  • "totalQuantityInStock": 0
}

Release Stock Taking document

The document will be locked and bookkept. The Stock Taking document state will be set to completed. The stock amount will be adjusted according to the stock taken quantity.

path Parameters
id
required
integer <int64>

Stock Taking document id.

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Delete rows by filter

Remove all rows matching the filter parameters from the Stock Taking document.

path Parameters
id
required
integer <int64>

Stock Taking document id.

query Parameters
itemIds
Array of strings
supplierNumbers
Array of strings
stockPointIds
Array of strings
stockLocationIds
Array of strings
transactionDate
string <date>
itemIdSearch
string
itemDescriptionSearch
string
excludeZeroBalanceItems
boolean

Responses

Response samples

Content type
application/json
0
0

Get Stock Taking Rows

path Parameters
id
required
integer <int64>

Stock Taking document id.

query Parameters
itemIds
Array of strings
supplierNumbers
Array of strings
stockPointIds
Array of strings
stockLocationIds
Array of strings
transactionDate
string <date>
itemIdSearch
string
itemDescriptionSearch
string
excludeZeroBalanceItems
boolean
secondarysortby
string

Secondary sorting column

secondaryorder
string

Secondary sorting order

stateFilter
string
Enum: "all" "notStockTaken" "stockTakenNoDeviation" "stockTakenWithDeviation"
startingRowNo
integer <int32>

the row number to start the search from, used with startingItemId to jump to specific rows, can be empty

startingItemId
string

the itemId that should be on top of the rows list (used to jump to specific row), can be empty

Responses

Response samples

Content type
application/json
{
  • "countedBy": "string",
  • "currentRowNo": 0,
  • "hasPostReleaseStockChanges": true,
  • "id": "string",
  • "itemId": "string",
  • "stockLocationId": "c039ed46-ada4-4486-8700-89747e000395",
  • "stockPointId": "7dcf5601-6c82-49ce-8b36-2dd2c353c71c",
  • "stockTakenQuantity": 0,
  • "stockTakingId": 0,
  • "stockTakingRowId": "string",
  • "totalQuantityInStock": 0
}

Add rows

Add rows to a stock taking. If you add an already existing row noting happens.

path Parameters
id
required
integer <int64>

Stock Taking document id.

Request Body schema: */*

A list of StockTakingRows.

Array
countedBy
string <= 100 characters
currentRowNo
integer <int32>
hasPostReleaseStockChanges
boolean
id
string
itemId
string <= 50 characters
stockLocationId
string <uuid>
stockPointId
string <uuid>
stockTakenQuantity
number
stockTakingId
integer <int64>
stockTakingRowId
string
totalQuantityInStock
number

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Delete row

Remove single row by id from the Stock Taking document.

path Parameters
id
required
integer <int64>

Stock Taking document id.

rowId
required
string

row id

Responses

Response samples

Content type
application/json
0
0

Void Stock Taking document

Sets the Stock Taking document state to voided.

Only documents in state planning and started can be voided. A completed document may not be voided.

path Parameters
id
required
integer <int64>

Stock Taking document id.

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Stock Transfer

Handles StockTransferDocuments.

A Stock Transfer moves stock from one location to another. You request a quantity to be moved. The quantity is reserved, and delivered upon release of the Stock Transfer document. The "delivery" makes an inbound delivery to the new location.

Create a stock transfer document

Outbounds will be reserved in the from-place. Inbounds are created upon release of the stock transfer document.

Request Body schema: application/json

stock transfer document

id
integer <int64> >= 1
note
string <= 1000 characters
released
boolean
required
Array of objects (StockTransferRow)
transferDate
string <date>
version
integer <int64>
voided
boolean

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "transferDate": "2019-08-24",
  • "version": 0,
  • "voided": true
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "transferDate": "2019-08-24",
  • "version": 0,
  • "voided": true
}

Get stock transfer document

path Parameters
id
required
integer <int64>

Stock Transfer document id.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "transferDate": "2019-08-24",
  • "version": 0,
  • "voided": true
}

Update a stock transfer document

path Parameters
id
required
integer <int64>

Stock Transfer document id.

Request Body schema: application/json

The StockTransferDocument document.

id
integer <int64> >= 1
note
string <= 1000 characters
released
boolean
required
Array of objects (StockTransferRow)
transferDate
string <date>
version
integer <int64>
voided
boolean

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "transferDate": "2019-08-24",
  • "version": 0,
  • "voided": true
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "note": "string",
  • "released": true,
  • "rows": [
    ],
  • "transferDate": "2019-08-24",
  • "version": 0,
  • "voided": true
}

Release a stock transfer document

This will deliver all outbounds which are reserved in from-place, and create inbounds in the to-place. Nothing happens if you releasr an already released stock transfer document.

Returns document_is_voided if document is voided.

path Parameters
id
required
integer <int64>

Stock Transfer document id.

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Void a stock transfer document

Voiding a released stock transfer document is not allowed, and will return cannot_modify_released_document

path Parameters
id
required
integer <int64>

Stock Transfer document id.

query Parameters
force
boolean

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Tenant

Return Warehouse activation status for a tenant.

Get Warehouse activation status

Check if current tenant has activated Fortnox Warehouse.

Responses

Response samples

Content type
application/json
{
  • "activated": true,
  • "tenantId": 0
}

Articles

Provides information on the status (presence of cost/price) of articles

Get full article registrations that match filter

Response property descriptions:
     id - The unique id of a basic common combination of article registrations. (The basic common combination means "user/purchase date/customer/project/cost center", which leads to a dialog with several article registrations.)
     purchaseDate - The date on which the article is purchased or registered for charging.
     ownerId - The user ID who creates the basic common combination.
     version - The version of the basic common combination (article dialog) being updated, which is used for handling the concurrency issue.
     registrationType - It is always "ARTICLE" for article list endpoint.
     Sub-Class - ArticleRegistration:
         id - The unique id of an article registration.
         registrationId - The id of the basic common combination.
         orderIndex - the order index for the article registration in regard of the common combination.
         ownerId - The user ID who owns the article registration.
         totalQuantity - The quantity of the article.
         unitPrice - The unit price connected to the article registration, which might be locked on an invoice/order basis or for non-invoiceable.
         unitCost - The unit cost connected to the article registration, which might be locked on an invoice/order basis.
         invoiceBasisId - The ID of invoice/order basis which is used for creating an invoice/order.
         nonInvoiceable - If the article registration would be ignored for charging or not.
         note - The note on the article registration.
         documentId - The document ID which includes the article registration and is created in Invoicing application.
         documentType - The document type which could be "invoice" or "order".

query Parameters
fromDate
string <date>

The start date of the search span, the max of which should be 1 year to the end date ("toDate"). Example: 2022-11-01

toDate
string <date>

The end date of the search span, the max of which should be 1 year back to the start date ("fromDate"). Example: 2022-11-30

customerIds
Array of strings

An array of customer IDs which are being used in database and in one-to-one relation with customer numbers. Example: 100,101,102

projectIds
Array of strings

An array of project IDs. Example: p1,p2,p3

includeRegistrationsWithoutProject
boolean

If the article registration without project is included, or not.

itemIds
Array of strings

An array of article IDs. Example: s1,s2,s3

costCenterIds
Array of strings

An array of cost center IDs. Example: cc1,cc2,cc3

ownerIds
Array of strings

An array of user ids who own the article registrations. Example: 1,2,3

invoiced
boolean

If a document is created with the article registration, or not.

inInvoiceBasis
boolean

If the article registration is locked on an invoice basis, or not.

internalArticles
boolean

If the article registration is internal, which is registered on an internal customer, or not.

nonInvoiceable
boolean

If the article registration has been moved to non-invoiceable, or not.

includeNonInvoiceablePrice
boolean

If the price of the non-invoiceable article registration is included, or not.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Registrations

Register and manage working or absence time

Get time/absence registrations that match filter

Response property descriptions:
     id - The unique id of the registration.
     userId - The user ID who owns the registration.
     workedDate - The date for which the registration is created.
     workedHours - The time spent, or the time of absence.
     startTime - The start of clock time.
     stopTime - The end of clock time.
     invoiceText - The text to be included in the invoice/order basis which would be used to create an invoice/order.
     note - The note on the registration.
     chargeHours - The time to be invoiced, or 0 for the absence, or locked for non-invoiceable.
     childId - The child ID related to the absence registration of parental leave (FPE), which comes from Payroll application.
     nonInvoiceable - If the registration would be ignored for charging or not.
     invoiceBasisId - The ID of invoice/order basis which is used for creating an invoice/order.
     documentId - The document ID which includes the registration and is created in Invoicing application.
     documentType - The document type which could be "invoice" or "order".
     unitCost - The unit cost from the registration owner who takes the work.
     unitPrice - The unit price for the service on the registration, which comes in priority from "invoice/order basis", "price group" or "service".

query Parameters
fromDate
string <date>

The start date of the search span, the max of which should be 1 year to the end date ("toDate"). Example: 2022-11-01

toDate
string <date>

The end date of the search span, the max of which should be 1 year back to the start date ("fromDate"). Example: 2022-11-30

customerIds
Array of strings

An array of customer IDs which are being used in database and in one-to-one relation with customer numbers. Example: 100,101,102

projectIds
Array of strings

An array of project IDs. Example: p1,p2,p3

serviceIds
Array of strings

An array of service IDs. Example: s1,s2,s3

costCenterIds
Array of strings

An array of cost center IDs. Example: cc1,cc2,cc3

regCodes
Array of strings

An array of registration codes. Example: TID,SEM,FPE

userIds
Array of strings

An array of user IDs that time/absence registrations belong to. Example: 1,2,3

includeRegistrationsWithoutProject
boolean

If the time/absence registration without project is included, or not.

invoiced
boolean

If a document is created with the time/absence registration, or not.

inInvoiceBasis
boolean

If the time/absence registration is locked on an invoice basis, or not.

internalTime
boolean

If the time/absence registration is internal, which is registered on an internal customer, or not.

nonInvoiceable
boolean

If the time/absence registration has been moved to non-invoiceable, or not.

includeNonInvoiceableChargeHours
boolean

If the price of the non-invoiceable time/absence registration is included, or not.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Absence Transactions

Absence transactions resources.

Usable "CauseCodes"
CodeDescription
ASKArbetsskada
ATFArbetstidsförkortning
FPEFöräldraledig
FRA or FR1Frånvaro övrigt (FR1 is used in PAXml)
HAVGraviditetspenning
KOMKompledig
MILMilitärtjänst (max 60 dagar)
NAR or NÄRNärståendevård (NÄR is used in PAXml)
OS1Sjuk-OB 1
OS2Sjuk-OB 2
OS3Sjuk-OB 3
OS4Sjuk-OB 4
OS5Sjuk-OB 5
PAPPappadagar
PEMPermission
PERPermitterad
SEMSemester
SJKSjukfrånvaro
SMBSmittbärare
SVESvenska för invandrare
TJLTjänstledig
UTB or FACFacklig utbildning (FAC is used in PAXml)
VABVård av barn

Lists all absence transactions

Supports query-string parameters employeeid and date for filtering the result.

query Parameters
employeeid
string

filter by employee id

date
string

filter by date

Responses

Response samples

Content type
application/json
{
  • "AbsenceTransactions": [
    ]
}

Create a new absence transaction

Request Body schema: */*

to create

object (AbsenceTransactionPayload)

Responses

Response samples

Content type
application/json
{
  • "AbsenceTransaction": {
    }
}

Retrieve absence transactions

Retrieves a list of absence transactions for an employee on a specific date and cause code.

path Parameters
EmployeeId
required
string

identifies the employee

Date
required
string <date>

of the absence transaction

Code
required
string
Enum: "ASK" "FPE" "FRA" "HAV" "KOM" "MIL" "NAR" "OS1" "OS2" "OS3" "OS4" "OS5" "PAP" "PEM" "PER" "SEM" "SJK" "SMB" "SVE" "TJL" "UTB" "VAB"

status code of the absence transaction

Responses

Response samples

Content type
application/json
{
  • "AbsenceTransactions": [
    ]
}

Delete an absence transaction

path Parameters
id
required
string <uuid>

identifies the transaction

Responses

Response samples

Content type
application/json
{
  • "AbsenceTransaction": {
    }
}

Retrieve a specific absence transaction

Retrieves a specific transaction

path Parameters
id
required
string <uuid>

identifies the transaction

Responses

Response samples

Content type
application/json
{
  • "AbsenceTransaction": {
    }
}

Update a single absence transaction

path Parameters
id
required
string <uuid>

identifies the transaction

Request Body schema: */*

to update

object (AbsenceTransactionPayload)

Responses

Response samples

Content type
application/json
{
  • "AbsenceTransaction": {
    }
}

Account Charts

Account charts resources

List all account charts

Retrieves a list of all the available account charts.

Responses

Response samples

Content type
application/json
{
  • "AccountCharts": [
    ]
}

Accounts

Accounts resources

List all accounts

The accounts are returned sorted by account number with the lowest number appearing first.

query Parameters
lastmodified
string
sru
integer <int32>
sortby
string
Value: "number"

field to sort returned list on

Responses

Response samples

Content type
application/json
{
  • "Accounts": [
    ]
}

Create an account

The created account will be returned if everything succeeded, if there was any problems an error will be returned.

query Parameters
financialyear
integer <int32>

financial year to create account against

Request Body schema: */*

account to create

object (AccountPayload)

Responses

Response samples

Content type
application/json
{
  • "Account": {
    }
}

Retrieve an account

Retrieves the details of an account. You need to supply the unique account number that was returned when the account was created or retrieved from the list of accounts.

path Parameters
Number
required
integer <int32>

identifies the account

Responses

Response samples

Content type
application/json
{
  • "Account": {
    }
}

Update an account

Updates the specified account with the values provided in the properties. Any property not provided will be left unchanged. Note that even though the account number is writeable you can´t change the number of an existing account.

path Parameters
Number
required
integer <int32>

identifies the account

query Parameters
financialyear
integer <int32>

financial year to update account against

Request Body schema: */*

account to update

object (AccountPayload)

Responses

Response samples

Content type
application/json
{
  • "Account": {
    }
}

Archive

Archive resources

Remove files

Please note that removing a folder will also resulting in removal of all the contents within!

query Parameters
path
string

identifies file/folder to remove

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve folder or file

If no path is provided the root will be returned. Providing fileId will return given file from fileattachments.

query Parameters
path
string

name of folder

fileid
string

fileId from fileattachments

Responses

Response samples

Content type
application/json
{
  • "Folder": {
    }
}

Upload a file to a specific subdirectory

If not path or folderId is provided, the file will be uploaded to the root directory.

query Parameters
path
string

name of folder

folderid
string

id of folder

Request Body schema: multipart/form-data
file
object

file to uplad

Responses

Response samples

Content type
application/json
{
  • "File": {
    }
}

Delete a single file

path Parameters
id
required
string

identifies file/folder to remove

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single file

Providing fileId will return given file from fileattachments.

path Parameters
id
required
string

identifies the file

query Parameters
fileid
string

fileId from fileattachments

Responses

Article File Connections

Article file connections resources

Retrieve a list of article file connections

The article file connections register can return a list of records or a single record. By specifying a FileId in the URL, a single record will be returned. Not specifying a FileId will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "ArticleFileConnections": [
    ]
}

Create an article file connection

Request Body schema: */*

to create

required
object (ArticleFileConnection)

Responses

Response samples

Content type
application/json
{
  • "ArticleFileConnection": {
    }
}

Remove an article file connection

path Parameters
FileId
required
string

identifies the article file connection

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single article file connection

path Parameters
FileId
required
string

identifies the article file connection

Responses

Response samples

Content type
application/json
{
  • "ArticleFileConnection": {
    }
}

Articles

Articles resources

Retrieve a list of articles

Retrieves a list of articles. The articles are returned sorted by article number with the lowest number appearing first.

query Parameters
filter
string
Enum: "active" "inactive"

possibility to filter supplier invoices

articlenumber
string

filter by article number

description
string

filter by description

ean
string

filter by ean

suppliernumber
string

filter by supplier number

manufacturer
string

filter by manufacturer

manufacturerarticlenumber
string

filter by manufacturerarticlenumber

webshop
string

filter by web shop

lastmodified
string

filter by lastmodified

sortby
string
Enum: "articlenumber" "quantityinstock" "reservedquantity" "stockvalue"

field to sort returned list

Responses

Response samples

Content type
application/json
{
  • "Articles": [
    ]
}

Create an article

The created article will be returned if everything succeeded, if there was any problems an error will be returned.

Request Body schema: */*

to create

object (Article)

Responses

Response samples

Content type
application/json
{
  • "Article": {
    }
}

Delete an article

Deletes the article permanently.

You need to supply the unique article number that was returned when the article was created or retrieved from the list of articles.

path Parameters
ArticleNumber
required
integer <int32>

identifies the article

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve an article

Retrieves the details of an article. You need to supply the unique article number that was returned when the article was created or retrieved from the list of articles.

path Parameters
ArticleNumber
required
integer <int32>

identifies the article

Responses

Response samples

Content type
application/json
{
  • "Article": {
    }
}

Update an article

Updates the specified article with the values provided in the properties. Any property not provided will be left unchanged. You need to supply the unique article number that was returned when the article was created or retrieved from the list of articles. Note that even though the article number is writeable you can not change the number of an existing article.

path Parameters
ArticleNumber
required
integer <int32>

identifies the article

Request Body schema: */*

to update

object (Article)

Responses

Response samples

Content type
application/json
{
  • "Article": {
    }
}

Asset File Connection

Asset file connections resources

Retrieve a list of asset file connections

The asset register can return a list of assets or a single asset. By specifying a FileId in the URL, a single asset will be returned. Not specifying a FileId will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "AssetFileConnections": [
    ],
  • "MetaInformation": {
    }
}

Create an asset file connection

Request Body schema: */*

asset file connection

AssetId
string
FileId
string

Responses

Response samples

Content type
application/json
{
  • "@url": "string",
  • "AssetId": "string",
  • "FileId": "string",
  • "Name": "string"
}

Remove an asset file connection

path Parameters
fileId
required
string

fileId

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Asset Types

Asset types resource

Retrieve a list of asset types

Responses

Response samples

Content type
application/json
{
  • "MetaInformation": {
    },
  • "Types": [
    ]
}

Delete an asset type

path Parameters
id
required
integer <int32>

id

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve an asset type

path Parameters
id
required
integer <int32>

id

Responses

Response samples

Content type
application/json
{
  • "Type": {
    }
}

Create an asset type

path Parameters
id
required
integer <int32>

id

Request Body schema: */*

request

object (CreateAsset)

Responses

Response samples

Content type
application/json
{
  • "Type": {
    }
}

Update an asset type

path Parameters
id
required
integer <int32>

id

Request Body schema: */*

request

object (UpdateAsset)

Responses

Response samples

Content type
application/json
{
  • "Type": {
    }
}

Assets

Assets resources

Possible filters on Assets endpoint
Name Description
active Retrieves all active assets
inactive Retrieves all inactive assets
fully_depreciated Retrieves all fully depreciated assets
sold Retrieves all sold assets
scrapped Retrieves all scrapped assets
voided Retrieves all voided assets

Retrieve a list of assets

Responses

Response samples

Content type
application/json
{
  • "Assets": [
    ]
}

Create an Asset

The created asset will be returned if everything succeeded, if there was any problems an error will be returned.

Request Body schema: */*

asset

object (CreateAsset)

Responses

Response samples

Content type
application/json
{
  • "Assets": {
    }
}

Perform a Depreciation of an Asset

The created vouchers list will be returned if everything succeeded, if there was any problems an error will be returned.

Request Body schema: */*

body

object (Depreciation)

Responses

Response samples

Content type
application/json
{
  • "AssetsDepreciation": [
    ]
}

Assets depreciation list

Retrieves a list of assets to depreciate.

path Parameters
ToDate
required
string

toDate

Responses

Response samples

Content type
application/json
{
  • "Assets": [
    ]
}

Scrap an Asset

The updated asset will be returned if everything succeeded, if there was any problems an error will be returned.

path Parameters
GivenNumber
required
string

Asset number

Request Body schema: */*

asset

object (Scrap)

Responses

Response samples

Content type
application/json
{
  • "Assets": {
    }
}

Sell an Asset

Partial sell or full sell of an asset.

path Parameters
GivenNumber
required
string

Asset number

Request Body schema: */*

asset

object (Sell)

Responses

Response samples

Content type
application/json
{
  • "Assets": {
    }
}

Write down an Asset

The updated asset will be returned if everything succeeded, if there was any problems an error will be returned.

path Parameters
GivenNumber
required
string

Asset number

Request Body schema: */*

asset

object (WriteDown)

Responses

Response samples

Content type
application/json
{
  • "Assets": {
    }
}

Write up an Asset

The updated asset will be returned if everything succeeded, if there was any problems an error will be returned.

path Parameters
GivenNumber
required
string

Asset number

Request Body schema: */*

asset

object (WriteUp)

Responses

Response samples

Content type
application/json
{
  • "Assets": {
    }
}

Delete or Void an Asset

By specifying a {GivenNumber} in the URL a single "Not active" asset or asset with a type "Not depreciable" can be deleted. By specifying a {GivenNumber} in the URL a single "Active" or "Fully depreciated" assets can be voided and in this case in request body voiddate should be provided, otherwise it will use todays date.

path Parameters
GivenNumber
required
string

Asset number

Request Body schema: */*

request

object (Delete)

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single asset

path Parameters
GivenNumber
required
string

Asset number

Responses

Response samples

Content type
application/json
{
  • "Assets": {
    }
}

Change manual OB value of an Asset

The updated asset will be returned if everything succeeded, if there was any problems an error will be returned.

path Parameters
GivenNumber
required
string

Asset number

Request Body schema: */*

asset

Amount
integer <int32>
Comment
string

Responses

Response samples

Content type
application/json
{
  • "Assets": {
    }
}

Attendance Transactions

Attendance transactions resources

Usable "CauseCodes"
CodeDescription
ARBTimlön
BE2Beredskapstid 2
BER or BE1Beredskapstid (BE1 is used in PAXml)
FLXFlextid +/-
HLGHelglön
JO2 or JR2Jourtid 2 (JR2 is used in PAXml)
JOR or JR1Jourtid (JR1 is used in PAXml)
MERMertid
OB1OB-ersättning 1
OB2OB-ersättning 2
OB3OB-ersättning 3
OB4OB-ersättning 4
OB5OB-ersättning 5
OK0 or NV9Extratid \u2013 Komptid (NV9 is used in PAXml)
OK1 or ÖK1Övertid 1 \u2013 Komptid (ÖK1 is used in PAXml)
OK2 or ÖK2Övertid 2 \u2013 Komptid (ÖK2 is used in PAXml)
OK3 or ÖK3Övertid 3 \u2013 Komptid (ÖK3 is used in PAXml)
OK4 or ÖK4Övertid 4 \u2013 Komptid (ÖK4 is used in PAXml)
OK5 or ÖK5Övertid 5 \u2013 Komptid (ÖK5 is used in PAXml)
OT1 or ÖT1Övertid 1 \u2013 Betalning (ÖT1 is used in PAXml)
OT2 or ÖT2Övertid 2 \u2013 Betalning (ÖT2 is used in PAXml)
OT3 or ÖT3Övertid 3 \u2013 Betalning (ÖT3 is used in PAXml)
OT4 or ÖT4Övertid 4 \u2013 Betalning (ÖT4 is used in PAXml)
OT5 or ÖT5Övertid 5 \u2013 Betalning (ÖT5 is used in PAXml)
RES or RE1Restid (RE1 is used in PAXml)
TIDArbetstid

Lists all attendance transactions

Supports query-string parameters employeeid and date for filtering the result.

query Parameters
employeeid
string

filter by employee id

date
string

filter by date

Responses

Response samples

Content type
application/json
{
  • "AttendanceTransactions": [
    ]
}

Create a new attendance transaction

Request Body schema: */*

attendance transaction to create

object (AttendanceTransaction)

Responses

Response samples

Content type
application/json
{
  • "AttendanceTransaction": {
    }
}

Retrieve attendance transactions

Retrieves a list of attendance transaction for an employee on a specific date and cause code.

path Parameters
EmployeeId
required
string

identifies the employee

Date
required
string <date>

date of the attendance

Code
required
string
Enum: "ARB" "BE2" "BER" "FLX" "HLG" "JO2" "JOR" "MER" "OB1" "OB2" "OB3" "OB4" "OB5" "OK0" "OK1" "OK2" "OK3" "OK4" "OK5" "OT1" "OT2" "OT3" "OT4" "OT5" "RES" "TID"

status code of the attendance transaction

Responses

Response samples

Content type
application/json
{
  • "AttendanceTransactions": [
    ]
}

Delete an attendance transaction

path Parameters
id
required
string <uuid>

identifies the transaction

Responses

Response samples

Content type
application/json
{
  • "AttendanceTransaction": {
    }
}

Retrieve a specific attendance transaction

Retrieves a specific transaction

path Parameters
id
required
string <uuid>

identifies the transaction

Responses

Response samples

Content type
application/json
{
  • "AttendanceTransaction": {
    }
}

Update a single attendance transaction

path Parameters
id
required
string <uuid>

identifies the transaction

Request Body schema: */*

to update

object (AttendanceTransaction)

Responses

Response samples

Content type
application/json
{
  • "AttendanceTransaction": {
    }
}

Company Information

Company information resource

Retrieve the Company Information

Responses

Response samples

Content type
application/json
{
  • "CompanyInformation": {
    }
}

Company Settings

Company settings resource

Retrieve the company settings

Responses

Response samples

Content type
application/json
{
  • "CompanySettings": {
    }
}

Contract Accruals

Contract accruals resources

Retrieve a list of contract accruals

The contract accruals register can return a list of records or a single record. By specifying a DocumentNumber in the URL, a single record will be returned. Not specifying a DocumentNumber will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "ContractAccruals": [
    ]
}

Create a contract accrual

Request Body schema: */*

contract accrual to create

object (ContractAccrual)

Responses

Response samples

Content type
application/json
{
  • "ContractAccrual": {
    }
}

Remove a contract accrual

path Parameters
DocumentNumber
required
integer <int32>

identifies the contract accrual

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single contract accrual

path Parameters
DocumentNumber
required
integer <int32>

identifies the contract accrual

Responses

Response samples

Content type
application/json
{
  • "ContractAccrual": {
    }
}

Update a contract accrual

path Parameters
DocumentNumber
required
integer <int32>

identifies the contract accrual

Request Body schema: */*

contract accrual to update

object (ContractAccrual)

Responses

Response samples

Content type
application/json
{
  • "ContractAccrual": {
    }
}

Contract Templates

Contract templates resources

Retrieve a list of contract templates

The contract template resource can return a list of records or a single record. By specifying a TemplateNumber in the URL, a single record will be returned. Not specifying a TemplateNumber will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "ContractTemplates": [
    ]
}

Create a contract template

Request Body schema: */*

contract template to create

object (ContractTemplate)

Responses

Response samples

Content type
application/json
{
  • "ContractTemplate": {
    }
}

Retrieve a single contract template

path Parameters
TemplateNumber
required
integer <int32>

identifies the contract template

Responses

Response samples

Content type
application/json
{
  • "ContractTemplate": {
    }
}

Update a contract template

path Parameters
TemplateNumber
required
integer <int32>

identifies the contract template

Request Body schema: */*

contract template to update

object (ContractTemplate)

Responses

Response samples

Content type
application/json
{
  • "ContractTemplate": {
    }
}

Contracts

Contracts resources

Possible filters on Contracts endpoint
Filter Description
active Retrieves all active contracts
inactive Retrieves all inactive contracts
finished Retrieves all finished contracts
Possible values for filter

Retrieve a list of contracts

query Parameters
filter
string
Enum: "active" "inactive" "finished"

possibility to filter contracts

Responses

Response samples

Content type
application/json
{
  • "Contracts": [
    ]
}

Create a contract

Request Body schema: */*

contract to create

object (Contract)

Responses

Response samples

Content type
application/json
{
  • "Contract": {
    }
}

Retrieve a single contract

path Parameters
DocumentNumber
required
string

identifies the contract

Responses

Response samples

Content type
application/json
{
  • "Contract": {
    }
}

Update a contract

Note that there are two approaches for updating the rows on a contract.

If RowId is not specified on any row, the rows will be mapped and updated in the order in which they are set in the array. All rows that should remain on the contract needs to be provided.

If RowId is specified on one or more rows the following goes: Corresponding row with that id will be updated. The rows without RowId will be interpreted as new rows. If a row should not be updated but remain on the contract then specify only RowId like { "RowId": 123 }, otherwise it will be removed. Note that new RowIds are generated for all rows every time a contract is updated.

When the InvoiceDiscount value is set on the rows and the Contract, the value set on the Contract takes precedence over the row-level InvoiceDiscount.

path Parameters
DocumentNumber
required
string

identifies the contract

Request Body schema: */*

contract to update

object (Contract)

Responses

Response samples

Content type
application/json
{
  • "Contract": {
    }
}

Create invoice from contract

path Parameters
DocumentNumber
required
string

identifies the contract

Responses

Response samples

Content type
application/json
{
  • "Invoice": {
    }
}

Set a contract as finished

path Parameters
DocumentNumber
required
string

identifies the contract

Responses

Response samples

Content type
application/json
{
  • "Contract": {
    }
}

Increases the invoice count without creating an invoice

path Parameters
DocumentNumber
required
string

identifies the contract

Responses

Response samples

Content type
application/json
{
  • "Contract": {
    }
}

Cost Centers

Cost centers resources

Possible search params on Cost Centers endpoint
Search Description
lastmodified Retrives costcenters modified after provided date and time

Possible sort params on Cost Centers endpoint
Sort Description
code Sorts cost centers according to code

Retrieve a list of cost centers

The cost centers register can return a list of records or a single record. By specifying a Code in the URL, a single record will be returned. Not specifying a Code will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "CostCenters": [
    ]
}

Create a cost center

Request Body schema: */*

cost center to create

object (CostCenter)

Responses

Response samples

Content type
application/json
{
  • "CostCenter": {
    }
}

Remove a cost center

path Parameters
Code
required
string

identifies the cost center to remove

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single cost center

path Parameters
Code
required
string

identifies the cost center

Responses

Response samples

Content type
application/json
{
  • "CostCenter": {
    }
}

Update a cost center

path Parameters
Code
required
string

identifies the cost center

Request Body schema: */*

cost center to update

object (CostCenter)

Responses

Response samples

Content type
application/json
{
  • "CostCenter": {
    }
}

Currencies

Currencies resources

Retrieve a list of currencies

The currency register can return a list of records or a single record. By specifying a Code in the URL, a single record will be returned. Not specifying a Code will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "Currencies": [
    ],
  • "MetaInformation": {
    }
}

Create a currency

Request Body schema: */*

currency to create

required
object (Currency)

Responses

Response samples

Content type
application/json
{
  • "Currency": {
    }
}

Remove a currency

path Parameters
Code
required
string

identifies the currency

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single currency

path Parameters
Code
required
string

identifies currency

Responses

Response samples

Content type
application/json
{
  • "Currency": {
    }
}

Update a currency

path Parameters
Code
required
string

identifies the currency

Request Body schema: */*

to update

required
object (Currency)

Responses

Response samples

Content type
application/json
{
  • "Currency": {
    }
}

Customer References

Customer references resource.

Retrieve a list of customers reference rows

query Parameters
customer
string

possibility to filter by customer number

Responses

Response samples

Content type
application/json
{
  • "CustomerReference": {
    }
}

Create a customer reference row

The created customer reference row will be returned if everything succeeded, if there was any problems an error will be returned.

Request Body schema: */*

customer reference row to create

object (CustomerReference_CustomerReferenceRow)

Responses

Response samples

Content type
application/json
{
  • "CustomerReference": {
    }
}

Delete a customer reference row

Deletes the customer reference row permanently. If everything succeeded the response will be of the type 204, No content and the response body will be empty.

If there was any problems an error will be returned.

You need to supply the unique customer reference row id of the customer reference row that you want to delete.

path Parameters
CustomerReferenceRowId
required
string

identifies the customer reference row

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a customer reference row

You need to supply the unique customer reference row id that was returned when the customer reference row was created or retrieved from the list of customer reference rows.

path Parameters
CustomerReferenceRowId
required
string

identifies the customer reference row

Responses

Response samples

Content type
application/json
{
  • "CustomerReference": {
    }
}

Update a customer reference row

The updated customer reference row will be returned if everything succeeded, if there was any problems an error will be returned.

You need to supply the unique customer reference row id of the customer reference row that you want to update.

Only the properties provided in the request body will be updated, properties not provided will be left unchanged.

CustomerNumber cannot be changed by this request.

path Parameters
CustomerReferenceRowId
required
string

identifies the customer reference row

Request Body schema: */*

customer reference row to update

object (CustomerReference_CustomerReferenceRow)

Responses

Response samples

Content type
application/json
{
  • "Customer": {
    }
}

Customers

Customers resources

Retrieve a list of customers

The customers are returned sorted by customer number with the lowest number appearing first.

query Parameters
filter
string
Enum: "active" "inactive"

possibility to filter customers

customernumber
string

filter by customer number

name
string

filter by name

zipcode
string

filter by zip code

city
string

filter by city

email
string

filter by email

phone
string

filter by phone

organisationnumber
string

filter by organisation number

gln
string

filter by gln

glndelivery
string

filter by gln delivery

lastmodified
string

filter by last modified

sortby
string
Enum: "customernumber" "name"

field to sort returned list

Responses

Response samples

Content type
application/json
{
  • "Customers": [
    ]
}

Create a customer

The created customer will be returned if everything succeeded, if there was any problems an error will be returned.

Request Body schema: */*

customer to create

object (Customer)

Responses

Response samples

Content type
application/json
{
  • "Customer": {
    }
}

Delete a customer

Deletes the customer permanently. If everything succeeded the response will be of the type 204 \u2013 No content and the response body will be empty. If there was any problems an error will be returned. You need to supply the unique customer number of the customer that you want to delete.

path Parameters
CustomerNumber
required
string

identifies the customer

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a customer

You need to supply the unique customer number that was returned when the customer was created or retrieved from the list of customers.

path Parameters
CustomerNumber
required
string

identifies the customer

Responses

Response samples

Content type
application/json
{
  • "Customer": {
    }
}

Update a customer

The updated customer will be returned if everything succeeded, if there was any problems an error will be returned.

You need to supply the unique customer number of the customer that you want to update.

Only the properties provided in the request body will be updated, properties not provided will left unchanged.

path Parameters
CustomerNumber
required
string

identifies the customer

Request Body schema: */*

customer to update

object (Customer)

Responses

Response samples

Content type
application/json
{
  • "Customer": {
    }
}

EU Vat Limit Regulation

EU vat limit regulation resources

Retrieve details about eu vat limit

query Parameters
year
integer <int32>

eu vat limit regulation for year, if not provided than this will be set to current year

Responses

Response samples

Content type
application/json
{
  • "EUVatLimitRegulation": {
    }
}

Employees

Employees resources

Retrieve a list of employees

ScheduleId, MonthlySalary and HourlyPay reflect current values, all ScheduleIds are returned in DatedSchedules and all MonthlySalary and HourlyPay pairs are returned in DatedWages.

Responses

Response samples

Content type
application/json
{
  • "Employees": [
    ]
}

Create a new employee

EmployeeId is optional. If not supplied the program will generate a unique id.

Only one of DatedSchedules and ScheduleId may be supplied. If DatedSchedules are supplied it must have one and only one record where FirstDay = '1970-01-01'. All FirstDay values must greater or equal to '1970-01-01' and unique.

If DatedWages is supplied neither MonthlySalary nor HourlyPay may be supplied. If MonthlySalary or HourlyPay are supplied, DatedWages may not be supplied. If DatedWages are supplied it must have one and only one record where FirstDay = '1970-01-01'. All FirstDay values must greater or equal to '1970-01-01' and unique.

Request Body schema: */*

employee to create

object (Employee)

Responses

Response samples

Content type
application/json
{
  • "Employee": {
    }
}

Retrieve a specific employee

ScheduleId, MonthlySalary and HourlyPay reflect current values, all ScheduleIds are returned in DatedSchedules and all MonthlySalary and HourlyPay pairs are returned in DatedWages.

path Parameters
EmployeeId
required
string

identifies the employee

Responses

Response samples

Content type
application/json
{
  • "Employee": {
    }
}

Update employee

Only one of DatedSchedules and ScheduleId may be supplied. If DatedSchedules are supplied it must have one and only one record where FirstDay = '1970-01-01'. All FirstDay values must greater or equal to '1970-01-01' and unique.

If DatedWages is supplied neither MonthlySalary nor HourlyPay may be supplied. If MonthlySalary or HourlyPay are supplied, DatedWages may not be supplied. If DatedWages are supplied it must have one and only one record where FirstDay = '1970-01-01'. All FirstDay values must greater or equal to '1970-01-01' and unique.

path Parameters
EmployeeId
required
string

identifies the employee

Request Body schema: */*

employee to update

object (Employee)

Responses

Response samples

Content type
application/json
{
  • "Employee": {
    }
}

Expenses

Expenses resources

Retrieve expenses

Retrieve expense codes.

Responses

Response samples

Content type
application/json
{
  • "Expenses": [
    ]
}

Create an expense

Request Body schema: */*

expense to create

object (Expense)

Responses

Response samples

Content type
application/json
{
  • "Expense": {
    }
}

Retrieve an expense

Retrieves expense information for specified expense.

path Parameters
ExpenseCode
required
string

expenseCode

Responses

Response samples

Content type
application/json
{
  • "Expense": {
    }
}

Finance Invoices

Fortnox Finans Invoice resources

These endpoints are useful when transferring an invoice to Fortnox Finans factoring service. When Fortnox Finans has taken over the responsibility for collecting the invoice - the actual invoice, reminders, collections etc (depending on settings) are automatically sent to the customer on the selected media.

Important before you start Please note that you need to get a special sandbox instance of Fortnox to test Fortnox Finans services, if you are using a production sandbox, it will send out invoices and start the reminder process and charge you for the service.

Also note that older invoices (typically dated before 2020-04) might be handled in "Noxbox", a platform previously used for administering invoices sent using Fortnox Finans' services. If this platform has been used for an invoice, some endpoints described below will not be available. In the "Retrieve a Fortnox Finans invoice" section it’s described how to determine if the old "Noxbox" platform was used.

Type of services

A Fortnox user can let Fortnox Finans handle their customer ledger. Fortnox Finans currently offers two types of services

Ledgerbase

Depending on customer settings, two subtypes of the service are available:

  • Invoice service with automatic reminders: this means that Fortnox Finans is sending invoices to end-customers and handling the customer ledger with reminders and collection. This service is also referred to as "Service Full"
  • Invoice service without automatic reminders: this means that Fortnox Finans is sending invoices to end-customers and handling the customer ledger. No reminders or collections are sent. This service is also referred to as "Service Light"
Reminder

  • Reminder service: this means that Fortnox Finans is sending reminders and collections on invoices already sent from Fortnox (without any Fortnox Finans services). The invoice is transferred to Fortnox Finans, and from now on reminders etc will automatically be sent to the customer. The invoice has to be unpaid, and the due date must be passed.
    An invoice sent by Ledgerbase (without automatic reminders) could be transferred to Reminder service.

Preconditions

General

Scope of your application registered to Fortnox must contain "Invoice Noxfinans" Fortnox Finans services must have been activated in the client database

Invoices

  • Invoice must have been created in Fortnox (Manually or by API)
  • Invoice must have an open balance >0
  • Invoice date is not allowed to be older than two years
  • Currency of Invoice must be in SEK
  • Invoice contains at least name, address, zip and city
  • Invoice must contain at least one invoice record
  • Interest invoices are not permitted to be sent to Fortnox Finans

Credit Invoices

Credit Invoice in Fortnox must have a connection to a debit invoice Debit invoice must have a open balance >= credit invoice amount

Authentication

To be able to use the endpoints, valid authentication must be provided. These are provided by Fortnox Finans when setting up the external api connection.

An access token (in the examples below stated as my_access_token) must be provided in the header of the request.

A client secret (in the examples below stated as my_client_secret) must be provided in the header of the request.

Example

Request
curl -X "GET" "https://api.fortnox.se/3/noxfinansinvoices/7201"
-H "Access-Token: my_access_token"
-H "Client-Secret: my_client_secret"
-H "Content-Type: application/json"
-H "Accept: application/json"

Send an invoice with Fortnox Finans

When sending an invoice with Fortnox Finans you will get the invoice status returned if everything succeeded, if there were any problems, an error will be returned.

Please note that it can take 1 min to several hours before you will get back status, OCR number and link to PDF document, meanwhile the invoice will have status UNKNOWN or NOT_AUTHORIZED.

Fortnox Finans is currently only accepting invoices in SEK

Parameters in the body:

  • InvoiceNumber: the invoice number for the invoice which should be sent with Fortnox Finans
  • SendMethod: how to send the invoice; EMAIL, LETTER, EINVOICE or NONE
  • Service: which service to use; LEDGERBASE or REMINDER

Request Body schema: */*

The payload for sending an invoice with Fortnox Finans

object (CreatePayload)

Responses

Response samples

Content type
application/json
{
  • "NoxFinansInvoice": {
    }
}

Retrieve a single invoice payment

Retrieves the status and balance of an invoice sent to Fortnox Finans. You need to supply the invoice number in Fortox to retrieve the invoice.

Note that invoices sent with the old "Noxbox" platform will not have the "ServiceName" property in the response. This new property is added to the response if the invoice is sent with the new finance service.

Response explanation for Service and ServiceName

Service:

  • LEDGERBASE: if the invoice is sent by using the old "Noxbox" platform, or the new finance service with the subtypes "Service Full" or "Service Light". These services are explained above in the "Fortnox Finans services" section
  • REMINDER: If the invoice is sent by the new finance service, with the service Reminder Service

ServiceName (only provided for new finance service invoices):

  • SERVICE_FULL: Ledgerbase service with automatic reminders is used
  • SERVICE_LIGHT: Ledgerbase service without automatic reminders is used.
  • REMINDER_SERVICE: Reminder service is used
path Parameters
Number
required
string

The Fortnox invoice number

Responses

Response samples

Content type
application/json
{
  • "NoxFinansInvoice": {
    }
}

Action Pause

Pauses an invoice for up to 60 days. Pause means that Fortnox Finans reminder process will stop for the invoice. All invoices which have the status OPEN can be paused.

Parameters in the body:

  • PausedUntilDate: the invoice will be paused to and including this date.

path Parameters
Number
required
string

The Fortnox invoice number

Request Body schema: */*

The payload for sending an invoice with Fortnox Finans

object (PausePayload)

Responses

Response samples

Content type
application/json
{
  • "NoxFinansInvoice": {
    }
}

Action Report Payment

If a customer has paid some or all of the capital on an invoice directly to the client, this can be reported for bookkeeping purposes and reported to Fortnox Finans to actually deduct the paid amount from the invoice.

Note: this action is not available for invoices sent by the old Noxbox platform

Parameters in the body:

  • ClientTakesFees: a boolean indicating if the client should take the customer fees or not.
  • BookkeepPaymentInFortnox: a boolean indicating if the payment should be bookkept in Fortnox or not. Usually the payment should be bookkept.
  • ReportToFinance: a boolean indicating if the payment should be reported to Fortnox Finans or not. Usually the payment should be reported.
  • PaymentAmount: a decimal field with the amount to report.
  • PaymentMethodCode: a string with the method code (e.g. BG, PG or other). Could be omitted if BookkeepPaymentInFortnox is false.
  • PaymentMethodAccount: an integer with the account number to bookkeep the payment on (e.g. 1920 or other). Could be omitted if BookkeepPaymentInFortnox is false.

path Parameters
Number
required
string

The Fortnox invoice number

Request Body schema: */*

The payload for sending an invoice with Fortnox Finans

BookkeepPaymentInFortnox
required
boolean
ClientTakesFees
required
boolean
PaymentAmount
required
number <float>
PaymentMethodAccount
required
string
PaymentMethodCode
required
string
ReportToFinance
required
boolean

Responses

Response samples

Content type
application/json
{
  • "NoxFinansInvoice": {
    }
}

Action Stop

Removes the invoice from Fortnox Finans process. The invoice can still be handled manually, but no further automatic process will be applied

path Parameters
Number
required
string

The Fortnox invoice number

Responses

Response samples

Content type
application/json
{
  • "NoxFinansInvoice": {
    }
}

Action Take Fees

If fees have been added to an invoice, e.g. reminder fees, the client can choose to pay those fees instead of letting the customer pay.

Note: this action is not available for invoices sent by the old Noxbox platform

path Parameters
Number
required
string

The Fortnox invoice number

Responses

Response samples

Content type
application/json
{
  • "NoxFinansInvoice": {
    }
}

Action Unpause

Unpauses a paused invoice. If the invoice is manually paused, then this action will remove the pause status immediately. Invoices which are paused by the system cannot be unpaused.

Note: this action is not available for invoices sent by the old Noxbox platform

path Parameters
Number
required
string

The Fortnox invoice number

Responses

Response samples

Content type
application/json
{
  • "NoxFinansInvoice": {
    }
}

Financial Years

Financial years resources

Retrieve a list of financial years

Add the query param to filter on specific date.

query Parameters
Date
string <date>

date to filter on, for example 2020-06-30

Responses

Response samples

Content type
application/json
{
  • "FinancialYears": [
    ]
}

Create a financial year

Request Body schema: */*

to create

required
object (FinancialYear)

Responses

Response samples

Content type
application/json
{
  • "FinancialYear": {
    }
}

Retrieve financial year by id

path Parameters
Id
required
integer <int32>

identifies the year

Responses

Response samples

Content type
application/json
{
  • "FinancialYear": {
    }
}

Inbox

Note that Inbox has nine static folders in the root directory.
PathDescription
Inbox_aAsset register
Inbox_dDaily takings
Inbox_sSupplier invoices
Inbox_vVouchers
Inbox_bBank files
Inbox_lPayroll files
Inbox_kfCustomer invoices
Inbox_oOrders
Inbox_ofOffers

Retrieve the root folder containing files and folders

Responses

Response samples

Content type
application/json
{
  • "Folder": {
    }
}

Upload a file

Upload a file to a specific subdirectory.

query Parameters
folderId
string

folder id

path
string

path

Request Body schema: multipart/form-data
file
object

file

Responses

Response samples

Content type
application/json
{
  • "File": {
    }
}

Remove a file or folder

path Parameters
Id
required
string

identifies the file to remove

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single file

path Parameters
Id
required
string

identifies the folder

Responses

Invoice Accruals

Resource for CRUD operations on Invoice Accruals

Retrieve a list of invoice accruals

The invoice accruals register can return a list of records or a single record. By specifying a InvoiceNumber in the URL, a single record will be returned. Not specifying a InvoiceNumber will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "InvoiceAccruals": [
    ]
}

Create an invoice accrual

Request Body schema: */*

invoice accrual to create

object (InvoiceAccrual)

Responses

Response samples

Content type
application/json
{
  • "InvoiceAccrual": {
    }
}

Remove an invoice accrual

path Parameters
InvoiceNumber
required
integer <int32>

identifies the invoice accrual

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single invoice accrual

path Parameters
InvoiceNumber
required
integer <int32>

identifies the invoice accrual

Responses

Response samples

Content type
application/json
{
  • "InvoiceAccrual": {
    }
}

Update an invoice accrual

path Parameters
InvoiceNumber
required
integer <int32>

identifies the invoice accrual

Request Body schema: */*

invoice accrual to update

object (InvoiceAccrual)

Responses

Response samples

Content type
application/json
{
  • "InvoiceAccrual": {
    }
}

Invoice Payments

Invoice payments resources

Retrieve a list of invoice payments

query Parameters
invoicenumber
integer <int32>

filter by invoice number

lastmodified
string

filter by last modified

sortby
string
Value: "paymentdate"

field to sort returned list on

Responses

Response samples

Content type
application/json
{
  • "InvoicePayments": [
    ]
}

Create an invoice payment

Request Body schema: */*

invoice payment to create

object (InvoicePayment)

Responses

Response samples

Content type
application/json
{
  • "InvoicePayment": {
    }
}

Remove an invoice payment

path Parameters
Number
required
string

identifies the invoice payment

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single invoice payment

path Parameters
Number
required
string

identifies the invoice payment

Responses

Response samples

Content type
application/json
{
  • "InvoicePayment": {
    }
}

Update an invoice payment

path Parameters
Number
required
string

identifies the invoice payment

Request Body schema: */*

invoice payment to update

object (InvoicePayment)

Responses

Response samples

Content type
application/json
{
  • "InvoicePayment": {
    }
}

Bookkeep an invoice payment

path Parameters
Number
required
string

identifies the invoice payment

Request Body schema: */*

invoice payment to update

object (InvoicePayment)

Responses

Response samples

Content type
application/json
{
  • "InvoicePayment": {
    }
}

Invoices

Note! if you are sending the invoice with Fortnox Finans, check out the Finance Invoices section

Possible filters on Invoice endpoint
Filter Description
cancelled Retrieves all invoices with the status "cancelled".
fullypaid Retrieves all invoices that has been fully paid.
unpaid Retrieves all invoices that is unpaid.
unpaidoverdue Retrieves all invoices that is unpaid and overdue.
unbooked Retrieves all invoices that is unbooked.

Retrieve a list of invoices

query Parameters
filter
string
Enum: "cancelled" "fullypaid" "unpaid" "unpaidoverdue" "unbooked"

possibility to filter invoices

costcenter
string
customername
string
customernumber
string
label
string
documentnumber
string
fromdate
string
todate
string
fromfinalpaydate
string
tofinalpaydate
string
lastmodified
string
notcompleted
string
ocr
string
ourreference
string
project
string
sent
string
externalinvoicereference1
string
externalinvoicereference2
string
yourreference
string
invoicetype
string
articlenumber
string
articledescription
string
currency
string
accountnumberfrom
string
accountnumberto
string
yourordernumber
string
credit
string
sortby
string
Enum: "customername" "customernumber" "documentnumber" "invoicedate" "ocr" "total"

field to sort returned list on

Responses

Response samples

Content type
application/json
{
  • "Invoices": [
    ]
}

Create an invoice

An endpoint for creating an invoice. While it is possible to create an invoice without rows, we encourage you to add them if you can. Omitted values in the payload will be supplied by Predefined values which can be edited in the Fortnox account settings. Note that Predefined values will always be overwritten by values provided through the API.

Should you have EasyVat enabled, it is mandatory to provide an account in the request should you use a custom VAT rate.

This endpoint can produce errors, some of which may only be relevant for EasyVat. Refer to the table below.

Errors that can be raised by this endpoint.
Error Code HTTP Code Description Solution
2004167 400 An account must be provided when using a custom VAT rate and EasyVat has been enabled. Supply each row which has a custom VAT rate with an account.

Note: The EuQuarterlyReport property will become obsolete at 2021-12-01. This property is currently used by the Quarterly report as one of the conditions that determine if an invoice should be included in the report or not. A new version of the Quarterly report is released at 2021-12-01. In the new report, this property will not be used when determining if an invoice should be included in the report or not, with one exception: if the invoice is created before 2021-12-01, and this property is false, the invoice will be excluded from the report. For invoices created 2021-12-01 and later, this property will have no effect.

Request Body schema: */*

payload

object (InvoicePayload)

Responses

Response samples

Content type
application/json
{
  • "Invoice": {
    }
}

Retrieve a single invoice

path Parameters
DocumentNumber
required
string

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "Invoice": {
    }
}

Update an invoice

Note that there are two approaches for updating the rows on an invoice.

If RowId is not specified on any row, the rows will be mapped and updated in the order in which they are set in the array. All rows that should remain on the invoice needs to be provided.

If RowId is specified on one or more rows the following goes: Corresponding row with that id will be updated. The rows without RowId will be interpreted as new rows. If a row should not be updated but remain on the invoice then specify only RowId like { "RowId": 123 }, otherwise it will be removed. Note that new RowIds are generated for all rows every time an invoice is updated.

Note: The EuQuarterlyReport property will become obsolete at 2021-12-01. This property is currently used by the Quarterly report as one of the conditions that determine if an invoice should be included in the report or not. A new version of the Quarterly report is released at 2021-12-01. In the new report, this property will not be used when determining if an invoice should be included in the report or not, with one exception: if the invoice is created before 2021-12-01, and this property is false, the invoice will be excluded from the report. For invoices created 2021-12-01 and later, this property will have no effect.

path Parameters
DocumentNumber
required
string

identifies the invoice

Request Body schema: */*

payload

object (InvoicePayload)

Responses

Response samples

Content type
application/json
{
  • "Invoice": {
    }
}

Bookkeep an invoice

path Parameters
DocumentNumber
required
string

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "Invoice": {
    }
}

Cancel an invoice

path Parameters
DocumentNumber
required
string

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "Invoice": {
    }
}

Credit an invoice

The created credit invoice will be referenced in the property CreditInvoiceReference.

path Parameters
DocumentNumber
required
string

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "Invoice": {
    }
}

Send an invoice as e-invoice

path Parameters
DocumentNumber
required
string

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "Invoice": {
    }
}

Send an invoice as email

You can use the properties in the EmailInformation to customize the e-mail message on each invoice.

path Parameters
DocumentNumber
required
string

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "Invoice": {
    }
}

Send an invoice as e-print

path Parameters
DocumentNumber
required
string

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "Invoice": {
    }
}

Set an invoice as sent

Use this endpoint to set invoice as sent, without generating an invoice.

path Parameters
DocumentNumber
required
string

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "Invoice": {
    }
}

Preview an invoice

The difference between this and the print-endpoint is that property Sent is not set to TRUE.

path Parameters
DocumentNumber
required
string

identifies the invoice

Responses

Print an invoice

path Parameters
DocumentNumber
required
string

identifies the invoice

Responses

Print an invoice as reminder

path Parameters
DocumentNumber
required
string

identifies the invoice

Responses

Set an invoice as done

Used for marking a document as ready in the warehouse module. DeliveryState needs to be set to "delivery".

path Parameters
DocumentNumber
required
string

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "Invoice": {
    }
}

Labels

Labels resources

Retrieve a list of labels

Responses

Response samples

Content type
application/json
{
  • "Labels": [
    ]
}

Create a label

The created label will be returned if everything succeeded, if there was any problems an error will be returned.

Request Body schema: */*

to create

required
object (Label)

Responses

Response samples

Content type
application/json
{
  • "Label": {
    }
}

Delete a label

Deletes the label and its connection to documents permanently. You need to supply the unique label id that was returned when the label was created or retrieved from the list of labels.

path Parameters
Id
required
integer <int32>

identifies the label

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Update a label

Updates the specified label with the values provided in the properties. Any property not provided will be left unchanged.

path Parameters
Id
required
integer <int32>

identifies the label

Request Body schema: */*

to update

required
object (Label)

Responses

Response samples

Content type
application/json
{
  • "Label": {
    }
}

Locked Period

Resource for CRUD operations on locked period

Retrieve the locked period

If no date is returned, no period is locked.

Responses

Response samples

Content type
application/json
{
  • "LockedPeriod": {
    }
}

Me

Me resource

Retrieve user information Use this endpoint to retrieve user information related to the used access token

Responses

Response samples

Content type
application/json
{
  • "MeInformation": {
    }
}

Modes Of Payments

Resource for the CRUD operations on modes of payments

Retrieve a list of modes of payments

The modes of payments register can return a list of records or a single record. By specifying a Code in the URL, a single record will be returned. Not specifying a Code will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "ModesOfPayments": [
    ]
}

Create a mode of payment

Request Body schema: */*

to create

required
object (ModeOfPayment)

Responses

Response samples

Content type
application/json
{
  • "ModeOfPayment": {
    }
}

Retrieve a single mode of payment

path Parameters
Code
required
string

identifies the mode of payment

Responses

Response samples

Content type
application/json
{
  • "ModeOfPayment": {
    }
}

Update a mode of payment

path Parameters
Code
required
string

identifies the mode of payment

Request Body schema: */*

mode of payment to update

required
object (ModeOfPayment)

Responses

Response samples

Content type
application/json
{
  • "ModeOfPayment": {
    }
}

Offers

Possible filters on Offers endpoint
Filter Description
cancelled Retrieves all offers with the status "cancelled"
expired Retrieves all offers that has been expired
completed Retrieves all offers where an order or invoice has been created
notcompleted Retrieves all offers where an order or invoice has not been created
ordercreated Retrieves all offers where an order has been created
ordernotcreated Retrieves all offers where an order has not been created

Retrieve a list of offers

query Parameters
filter
string
Enum: "cancelled" "expired" "completed" "notcompleted" "ordercreated" "ordernotcreated"

possibility to filter offers

customername
string

filter by customer name

customernumber
string

filter by customer number

documentnumber
string

filter by document number

costcenter
string

filter by cost center

label
string

filter by label

fromdate
string

filter by from date

todate
string

filter by to date

project
string

filter by project

sent
boolean

filter by sent

notcompleted
boolean

filter by not completed

ourreference
string

filter by our reference

yourreference
string

filter by your reference

lastmodified
string

filter by last modified

sortby
string
Enum: "customerName" "id" "transactionDate" "total"

sort returned list of offers

Responses

Response samples

Content type
application/json
{
  • "Offers": [
    ]
}

Create an offer

An endpoint for creating an offer.

Should you have EasyVat enabled, it is mandatory to provide an account in the request should you use a custom VAT rate.

This endpoint can produce errors, some of which may only be relevant for EasyVat. Refer to the table below.

Errors that can be raised by this endpoint.
Error Code HTTP Code Description Solution
2004167 400 An account must be provided when using a custom VAT rate and EasyVat has been enabled. Supply each row which has a custom VAT rate with an account.

Request Body schema: */*

to create

object (Offer)

Responses

Response samples

Content type
application/json
{
  • "Offer": {
    }
}

Retrieve a single offer

path Parameters
DocumentNumber
required
string

identifies the offer

Responses

Response samples

Content type
application/json
{
  • "Offer": {
    }
}

Update an offer

Note that there are two approaches for updating the rows on an offer.

If RowId is not specified on any row, the rows will be mapped and updated in the order in which they are set in the array. All rows that should remain on the offer needs to be provided.

If RowId is specified on one or more rows the following goes: Corresponding row with that id will be updated. The rows without RowId will be interpreted as new rows. If a row should not be updated but remain on the offer then specify only RowId like { "RowId": 123 }, otherwise it will be removed. Note that new RowIds are generated for all rows every time an offer is updated.

path Parameters
DocumentNumber
required
string

identifies the offer

Request Body schema: */*

to update

object (Offer)

Responses

Response samples

Content type
application/json
{
  • "Offer": {
    }
}

Cancels given offer

path Parameters
DocumentNumber
required
string

identifies the offer

Responses

Response samples

Content type
application/json
{
  • "Offer": {
    }
}

Create invoice out of given offer

path Parameters
DocumentNumber
required
string

identifies the offer

Responses

Response samples

Content type
application/json
{
  • "Order": {
    }
}

Create order out of given offer

path Parameters
DocumentNumber
required
string

identifies the offer

Responses

Response samples

Content type
application/json
{
  • "Order": {
    }
}

Send given offer as email

You can use the properties in the EmailInformation to customize the e-mail message on each offer.

path Parameters
DocumentNumber
required
string

identifies the offer

Responses

Response samples

Content type
application/json
{
  • "Offer": {
    }
}

Set given offer as sent

Use this endpoint to set offer as sent, without generating an offer.

path Parameters
DocumentNumber
required
string

identifies the offer

Responses

Response samples

Content type
application/json
{
  • "Offer": {
    }
}

Preview given offer

The difference between this and the print-endpoint is that property Sent is not set to TRUE.

path Parameters
DocumentNumber
required
string

identifies the offer

Responses

Print given offer

path Parameters
DocumentNumber
required
string

identifies the offer

Responses

Orders

Possible filters on Orders endpoint
Filter Description
cancelled Retrieves all orders with the status "cancelled"
expired Retrieves all orders that has been expired
invoicecreated Retrieves all offers where an invoice has been created
invoicenotcreated Retrieves all orders where an invoice has not been created
For information about how to use filters, please read this article.

Retrieve a list of orders

query Parameters
filter
string
Enum: "cancelled" "expired" "invoicecreated" "invoicenotcreated"

possibility to filter orders

customername
string

filter by customer name

customernumber
string

filter by customer number

label
string

filter by label

documentnumber
string

filter by document number

externalinvoicereference1
string

filter by external invoice reference 1

externalinvoicereference2
string

filter by external invoice reference 2

fromdate
string

filter by from date

todate
string

filter by to date

costcenter
string

filter by cost center

project
string

filter by project

sent
boolean

filter by sent

notcompleted
boolean

filter by not completed

ourreference
string

filter by ourreference

yourreference
string

filter by your reference

lastmodified
string

filter by lastmodified

ordertype
string

filter by order type

sortby
string
Enum: "customername" "customernumber" "orderdate" "documentnumber" "total"

field to sort returned list

Responses

Response samples

Content type
application/json
{
  • "Orders": [
    ]
}

Create a new order

An endpoint for creating an order.

Should you have EasyVat enabled, it is mandatory to provide an account in the request should you use a custom VAT rate.

This endpoint can produce errors, some of which may only be relevant for EasyVat. Refer to the table below.

Errors that can be raised by this endpoint.
Error Code HTTP Code Description Solution
2004167 400 An account must be provided when using a custom VAT rate and EasyVat has been enabled. Supply each row which has a custom VAT rate with an account.

Request Body schema: */*

order to create

object (Order)

Responses

Response samples

Content type
application/json
{
  • "Order": {
    }
}

Retrieve a single order

path Parameters
DocumentNumber
required
string

identifies the order

Responses

Response samples

Content type
application/json
{
  • "Order": {
    }
}

Update an order

Note that there are two approaches for updating the rows on an order.

If RowId is not specified on any row, the rows will be mapped and updated in the order in which they are set in the array. All rows that should remain on the order needs to be provided.

If RowId is specified on one or more rows the following goes: Corresponding row with that id will be updated. The rows without RowId will be interpreted as new rows. If a row should not be updated but remain on the order then specify only RowId like { "RowId": 123 }, otherwise it will be removed. Note that new RowIds are generated for all rows every time an order is updated.

path Parameters
DocumentNumber
required
string

identifies the order

Request Body schema: */*

order to update

object (Order)

Responses

Response samples

Content type
application/json
{
  • "Order": {
    }
}

Cancels given order

path Parameters
DocumentNumber
required
string

identifies the order

Responses

Response samples

Content type
application/json
{
  • "Order": {
    }
}

Create invoice out of given order

path Parameters
DocumentNumber
required
string

identifies the order

Responses

Response samples

Content type
application/json
{
  • "Invoice": {
    }
}

Send given order as email

You can use the properties in the EmailInformation to customize the e-mail message on each order.

path Parameters
DocumentNumber
required
string

identifies the order

Responses

Response samples

Content type
application/json
{
  • "Order": {
    }
}

Set given order as sent

Use this endpoint to set order as sent, without generating an order.

path Parameters
DocumentNumber
required
string

identifies the order

Responses

Response samples

Content type
application/json
{
  • "Order": {
    }
}

Preview given offer

The difference between this and the print-endpoint is that property Sent is not set to TRUE.

path Parameters
DocumentNumber
required
string

identifies the offer

Responses

Print given order

path Parameters
DocumentNumber
required
string

identifies the order

Responses

Predefined Accounts

Predefined Accounts resources

Retrieve a list of all predefined accounts

Responses

Response samples

Content type
application/json
{
  • "PreDefinedAccounts": [
    ]
}

Retrieve information for a specific account type

path Parameters
name
required
string

identifies the predefined account

Responses

Response samples

Content type
application/json
{
  • "PreDefinedAccount": {
    }
}

Update a Predefined Account

An endpoint for updating a Predefined Account. Predefined Accounts are identified by their name-field, and as such must be unique. Some Predefined Accounts distinguish between Goods and Services. In this case, the former retains the original name whereas the latter ends with a 2. Such as SALES and SALES2. Accounts are chosen from the Account Registry, and if you have EasyVat enabled then the new EasyVat Predefined Accounts (SALES_25_SE, etc.) have certain restrictions on the accounts that can be selected. Refer to the table below.

Account restrictions when EasyVat has been enabled.
Name VAT Code Restrictions
SALES_25_SE MP1 Must have a compatible VAT Code.
SALES_12_SE MP2 Must have a compatible VAT Code.
SALES_6_SE MP3 Must have a compatible VAT Code.
SALES_0_SE MF Must have a compatible VAT Code.

This endpoint can produce errors, some of which may only be relevant for EasyVat. Refer to the table below.

Errors that can be raised by this endpoint.
Error Code HTTP Code Description Solution
2001265 400 The provided account is invalid. It either has not been provided, does not exist, or is inactive. Verify that an account has been provided and that it exists and is active.
2002462 400 The account is not in a valid format. Verify that the format of the account is correct. It has to consist of 4 digits.
2000729 400 A Predefined Account has not been provided. Verify that a valid Predefined Account has been provided as a PATH-parameter.
2004052 400 The provided account has an incompatible VAT Code. Only applies if EasyVat has been enabled. Verify that the provided account has a VAT Code that is compatible with the selected Predefined Account. Refer to the table above for more information about compatibility.

If you have activated EasyVat, you can read more about how to use the new Predefined Accounts with your documents in their respective api documentation.

path Parameters
name
required
string

identifies the predefined account

Request Body schema: */*

predefined account to update

required
object (PredefinedAccount)

Responses

Response samples

Content type
application/json
{
  • "PreDefinedAccount": {
    }
}

Predefined Voucher Series

Predefined Voucher Series resources

Retrieve a list of predefined voucher series

Responses

Response samples

Content type
application/json
{
  • "PreDefinedVoucherSeriesCollection": [
    ]
}

Retrieve a specific predefined voucher series

path Parameters
Name
required
string

identifies the predefined voucher series

Responses

Response samples

Content type
application/json
{
  • "PreDefinedVoucherSeries": {
    }
}

Update a predefined voucher series

path Parameters
Name
required
string

identifies the predefined voucher series

Request Body schema: */*

predefined voucher series to update

object (PredefinedVoucherSeries)

Responses

Response samples

Content type
application/json
{
  • "PreDefinedVoucherSeries": {
    }
}

Price Lists

Resource for CRUD operations on Pricelists

Retrieve a list of price lists

The price lists register can return a list of records or a single record. By specifying a Code in the URL, a single record will be returned. Not specifying a Code will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "PriceLists": [
    ]
}

Create a price list

Request Body schema: */*

to create

required
object (PriceList)

Responses

Response samples

Content type
application/json
{
  • "PriceList": {
    }
}

Retrieve a single price list

path Parameters
Code
required
string

identifies the price list

Responses

Response samples

Content type
application/json
{
  • "PriceList": {
    }
}

Update a price list

path Parameters
Code
required
string

identifies the price list

Request Body schema: */*

price list to update

required
object (PriceList)

Responses

Response samples

Content type
application/json
{
  • "PriceList": {
    }
}

Prices

Resource for CRUD operations on prices

Create a price

Request Body schema: */*

price to create

object (Price)

Responses

Response samples

Content type
application/json
{
  • "Price": {
    }
}

Retrieve a list of articles with all their prices in the specified price list

The list contains a slimmer version of the prices. To get a full entity, use the GET with a price list, article number and from quantity.

path Parameters
PriceList
required
string

identifies the price list of the prices

ArticleNumber
required
string

identifies the article number of the prices

Responses

Response samples

Content type
application/json
{
  • "Prices": [
    ]
}

Retrieve the first price for the specified article

path Parameters
PriceList
required
string

identifies the price list

ArticleNumber
required
string

identifies the article

Responses

Response samples

Content type
application/json
{
  • "Price": {
    }
}

Update the first price in the specified article

path Parameters
PriceList
required
string

identifies the price list

ArticleNumber
required
string

identifies the article number

Request Body schema: */*

price to update

object (Price)

Responses

Response samples

Content type
application/json
{
  • "Price": {
    }
}

Delete a single price

path Parameters
PriceList
required
string

identifies the price list

ArticleNumber
required
string

identifies the article number

FromQuantity
required
number <double>

identifies the from quantity

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a price for a specified article

path Parameters
PriceList
required
string

identifies the price list

ArticleNumber
required
string

identifies the article

FromQuantity
required
number <double>

identifies from quantity

Responses

Response samples

Content type
application/json
{
  • "Price": {
    }
}

Update a price

path Parameters
PriceList
required
string

identifies the price list

ArticleNumber
required
string

identifies the article number

FromQuantity
required
number <double>

identifies the from quantity

Request Body schema: */*

price to update

object (Price)

Responses

Response samples

Content type
application/json
{
  • "Price": {
    }
}

Print Templates

Resource for the CRUD operations on print templates

Retrieve a list of print templates

Responses

Response samples

Content type
application/json
{
  • "PrintTemplates": [
    ]
}

Projects

Resource for the CRUD operations on projects

Retrieve a list of projects

The project register can return a list of records or a single record. By specifying a ProjectNumber in the URL, a single record will be returned. If no ProjectNumber is provided, a list of records will be returned.

Responses

Response samples

Content type
application/json
{
  • "Projects": [
    ]
}

Create a project

Request Body schema: */*

to create

object (Project)

Responses

Response samples

Content type
application/json
{
  • "Project": {
    }
}

Remove a project

path Parameters
ProjectNumber
required
integer <int32>

identifies the project

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single project

path Parameters
ProjectNumber
required
integer <int32>

identifies the project

Responses

Response samples

Content type
application/json
{
  • "Project": {
    }
}

Update a project

path Parameters
ProjectNumber
required
integer <int32>

identifies the project

Request Body schema: */*

to update

object (Project)

Responses

Response samples

Content type
application/json
{
  • "Project": {
    }
}

Salary Transactions

Salary Transaction resources
Usable SalaryCodes:
You can get a list of usable salary codes in the GUI from Register, Lönearter och koder − Lönearter by choosing one of two tables and pressing print.
Depending on which salary code table (löneartstabell) that is set in the settings (Inställningar, Lön, Avtal för arbetare/tjänsteman − Allmänt) you can choose the salary code to use from either salary code table.
Make sure to use the correct table that is used for the employee PersonelType you want to sent the salary transaction for. Some salary codes do not exist in every table.

List all salary transactions for all employees

Supports query-string parameters employeeid and date for filtering the result.

query Parameters
employeeId
string

filter on employeeId

date
string <date>

filter on date

Responses

Response samples

Content type
application/json
{
  • "SalaryTransactions": [
    ]
}

Create a new salary transaction for an employee

Request Body schema: */*

to create

required
object (SalaryTransaction)

Responses

Response samples

Content type
application/json
{
  • "SalaryTransaction": {
    }
}

Delete a single salary transaction

path Parameters
SalaryRow
required
integer <int32>

identifies the salary transaction

Responses

Response samples

Content type
application/json
{
  • "SalaryTransaction": {
    }
}

Retrieve a single salary transaction

path Parameters
SalaryRow
required
integer <int32>

identifies the salary transaction

Responses

Response samples

Content type
application/json
{
  • "SalaryTransaction": {
    }
}

Update a salary transaction

path Parameters
SalaryRow
required
integer <int32>

identifies the salary transaction

Request Body schema: */*

to update

required
object (SalaryTransaction)

Responses

Response samples

Content type
application/json
{
  • "SalaryTransaction": {
    }
}

Schedule Times

Schedule times resources

Retrieve a specific schedule time

path Parameters
EmployeeId
required
string

identifies the employee

Date
required
string <date>

identifies the date

Responses

Response samples

Content type
application/json
{
  • "ScheduleTime": {
    }
}

Update a schedule time

path Parameters
EmployeeId
required
string

identifies the employee

Date
required
string <date>

identifies the date

Request Body schema: */*

to update

object (ScheduleTime)

Responses

Response samples

Content type
application/json
{
  • "ScheduleTime": {
    }
}

Reset schedule time

path Parameters
EmployeeId
required
string

identifies the employee

Date
required
string <date>

identifies the date

Responses

Response samples

Content type
application/json
{
  • "ScheduleTime": {
    }
}

Sie

Filters

Possible filters on SIE endpoint
Type Description
FinancialYear Retreives the SIE-files for the specific financial year
Example: https://api.fortnox.se/3/sie/4?financialyear=1

Retrieve a SIE file

Retrieves a SIE file as streamed content

path Parameters
Type
required
string

type

query Parameters
financialYear
integer <int32>

financialYear

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Supplier Invoice Accruals

Resource for the CRUD operations on supplier invoice accruals

Retrieve a list of supplier invoice accruals

The supplier invoice accruals register can return a list of records or a single record. By specifying a SupplierInvoiceNumber in the URL, a single record will be returned. Not specifying a SupplierInvoiceNumber will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoiceAccruals": [
    ]
}

Create a supplier invoice accrual

Request Body schema: */*

to create

required
object (SupplierInvoiceAccrual)

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoiceAccrual": {
    }
}

Remove a supplier invoice accrual

path Parameters
SupplierInvoiceNumber
required
integer <int32>

identifies the supplier invoice accrual

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single supplier invoice accrual

path Parameters
SupplierInvoiceNumber
required
integer <int32>

identifies the supplier invoice accrual

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoiceAccrual": {
    }
}

Update a supplier invoice accrual

path Parameters
SupplierInvoiceNumber
required
integer <int32>

identifies the supplier invoice accrual

Request Body schema: */*

to update

required
object (SupplierInvoiceAccrual)

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoiceAccrual": {
    }
}

Supplier Invoice External Url Connections

Supplier Invoice External URL Connections resource Note: Requires a supplier invoice file attachment to be visible in Fortnox GUI.

Create a supplier invoice external URL connection

Request Body schema: */*

request

ExternalURLConnection
string
SupplierInvoiceNumber
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoiceExternalURLConnection": {
    }
}

Remove a supplier invoice external URL connection

path Parameters
Id
required
integer <int32>

id

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single supplier invoice external URL connection

path Parameters
Id
required
integer <int32>

id

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoiceExternalURLConnection": {
    }
}

Update a supplier invoice external URL connection

path Parameters
Id
required
integer <int32>

id

Request Body schema: */*

request

ExternalURLConnection
string
SupplierInvoiceNumber
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoiceExternalURLConnection": {
    }
}

Supplier Invoice File Connections

Resource for CRUD operations on Supplier invoice file connections

Retrieve a list of supplier invoice file connections

The supplier invoice file connections register can return a list of records or a single record. By specifying a FileId in the URL, a single record will be returned. Not specifying a FileId will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoiceFileConnections": [
    ]
}

Create an supplier invoice file connection

Request Body schema: */*

supplier invoice file connection to create

object (SupplierInvoiceFileConnection)

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoiceFileConnection": {
    }
}

Remove an supplier invoice file connection

path Parameters
FileId
required
string

identifies the supplier invoice file connection

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single supplier invoice file connection

path Parameters
FileId
required
string

identifies the file connection

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoiceFileConnection": {
    }
}

Supplier Invoice Payments

Supplier invoice payments resources

Possible search params on Supplier Invoice Payments endpoint
Search Description
invoicenumber Retrives supplier invoice payments modified by invoicenumber
lastmodified Retrives supplier invoice payments modified after provided date and time

Retrieve a list of supplier invoice payments

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoicePayments": [
    ]
}

Create a supplier invoice payment

Request Body schema: */*

to create

object (SupplierInvoicePayment)

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoicePayment": {
    }
}

Remove a supplier invoice payment

path Parameters
Number
required
integer <int32>

identifies the supplier invoice payment

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single supplier invoice payment

path Parameters
Number
required
integer <int32>

identifies the supplier invoice payment

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoicePayment": {
    }
}

Update a supplier invoice payment

path Parameters
Number
required
integer <int32>

identifies the supplier invoice payment

Request Body schema: */*

to update

object (SupplierInvoicePayment)

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoicePayment": {
    }
}

Bookkeep a supplier invoice payment

path Parameters
Number
required
integer <int32>

identifies the supplier invoice payment

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoicePayment": {
    }
}

Supplier Invoices

Possible filters on Supplier Invoice endpoint
Filter Description
cancelled Retrieves all invoices with the status "cancelled".
fullypaid Retrieves all invoices that has been fully paid.
unpaid Retrieves all invoices that is unpaid.
unpaidoverdue Retrieves all invoices that is unpaid and overdue.
unbooked Retrieves all invoices that is unbooked.
pendingpayment Retrieves all invoices that has PaymentPending=true and is booked.
authorizepending Retrieves all invoices that has a waiting authorization pending.

Retrieve a list of supplier invoices

query Parameters
filter
string
Enum: "cancelled" "fullypaid" "unpaid" "unpaidoverdue" "unbooked" "pendingpayment" "authorizepending"

possibility to filter supplier invoices

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoices": [
    ]
}

Create a supplier invoice

Request Body schema: */*

supplier invoice to create

object (SupplierInvoice)

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoice": {
    }
}

Retrieve a single supplier invoice

path Parameters
GivenNumber
required
integer <int32>

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoice": {
    }
}

Update a supplier invoice

path Parameters
GivenNumber
required
integer <int32>

identifies the invoice

Request Body schema: */*

supplier invoice to update

object (SupplierInvoice)

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoice": {
    }
}

Approval of bookkeep of given supplier invoice

path Parameters
GivenNumber
required
integer <int32>

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoice": {
    }
}

Approval of payment of given supplier invoice

path Parameters
GivenNumber
required
integer <int32>

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoice": {
    }
}

Bookkeep given supplier invoice

path Parameters
GivenNumber
required
integer <int32>

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoice": {
    }
}

Cancels given supplier invoice

path Parameters
GivenNumber
required
integer <int32>

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoice": {
    }
}

Credit given supplier invoice

The created credit invoice will be referenced in the property CreditReference.

path Parameters
GivenNumber
required
integer <int32>

identifies the invoice

Responses

Response samples

Content type
application/json
{
  • "SupplierInvoice": {
    }
}

Suppliers

Resource for the CRUD operations on suppliers

Retrieve a list of suppliers

The supplier register can return a list of records or a single record. By specifying a SupplierNumber in the URL, a single record will be returned. Not specifying a SupplierNumber will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "Suppliers": [
    ]
}

Create a supplier

Request Body schema: */*

to create

object (Supplier)

Responses

Response samples

Content type
application/json
{
  • "Supplier": {
    }
}

Retrieve a single supplier

path Parameters
SupplierNumber
required
string

identifies the supplier

Responses

Response samples

Content type
application/json
{
  • "Supplier": {
    }
}

Update a supplier

path Parameters
SupplierNumber
required
string

identifies the supplier

Request Body schema: */*

to update

object (Supplier)

Responses

Response samples

Content type
application/json
{
  • "Supplier": {
    }
}

Tax Reductions

Tax reductions resources

Possible filters
Filter Description
invoices Retrieves all Tax reductions for invoices
orders Retrieves all Tax reductions for orders
offers Retrieves all Tax reductions for offers

Retrieve a list of tax reductions

query Parameters
filter
string
Enum: "invoices" "orders" "offers"

possibility to filter tax reductions

Responses

Response samples

Content type
application/json
{
  • "TaxReductions": [
    ]
}

Create a Tax Reduction

Note that different types of tax reduction, i.e. ROT, RUT, or Green Technology, applications work differently. When creating an application for Green Technology, the field TaxReductionAmounts becomes mandatory as it is used to determine how much of the asked amount is intended for which type of work. Similarly, the AskedAmount field of the TaxReduction becomes optional, as it will always be considered to be equal to the sum of the TaxReductionAmounts.

For the other types, ROT and RUT, this field is not required and should be omitted.

Unlike earlier iterations of this endpoint, specifying the type of reduction for the provided TaxReduction (e.g. ROT, RUT, or Green) is not necessary as this value will always be equal to the type set on the provided document instead.

This endpoint can raise a variety of validation errors, some of which are only relevant for Green Technology applications. Those errors will always return an HTTP Code of 400 and include, but are not limited to, those shown below:

Errors that can be raised by this endpoint.
Error Code Types Description Solution
2000600 ROT, RUT, GREEN The provided Social Security Number is already in use for this document. Verify that the Social Security Number is different from any other applicants already added.
2004217, 2004218 ROT, RUT, GREEN The total asked amount of the application is either in an invalid format or is negative. Verify that the AskedAmount-field is a positive number (0 is valid for Green Technology) and that it is an integer.
2004209 GREEN The WorkType-field contains a work type that is not valid for the given type of reduction. Ensure that the WorkType contains a valid type of work for Green Technology.
2004263 GREEN The TaxReductionAmounts-field is missing for a Green Technology application. Ensure that the field is included, that it is an array, and that each contained object denotes a specific type's asked amount.
2004262 GREEN There are more than one object denoting the asked amount for the same type in the TaxReductionAmounts-field. Ensure that there is only one object denoting the asked amount per type contained in the array.
Request Body schema: */*

to create

required
object (TaxReduction)

Responses

Response samples

Content type
application/json
{
  • "TaxReduction": {
    }
}

Remove a tax reduction

path Parameters
Id
required
integer <int32>

identifies the tax reduction

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single tax reduction

path Parameters
Id
required
integer <int32>

identifies the tax reduction

Responses

Response samples

Content type
application/json
{
  • "TaxReduction": {
    }
}

Update a tax reduction

path Parameters
Id
required
integer <int32>

identifies the tax reduction

Request Body schema: */*

to update

required
object (TaxReduction)

Responses

Response samples

Content type
application/json
{
  • "TaxReduction": {
    }
}

Terms Of Deliveries

Resource for the CRUD operations on terms of deliveries

Retrieve a list of terms of deliveries

The terms of deliveries register can return a list of records or a single record. By specifying a Code in the URL, a single record will be returned. Not specifying a Code will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "TermsOfDeliveries": [
    ]
}

Create a terms of delivery

Request Body schema: */*

to create

required
object (TermsOfDelivery)

Responses

Response samples

Content type
application/json
{
  • "TermsOfDelivery": {
    }
}

Retrieve a single terms of delivery

path Parameters
Code
required
string

identifies the terms of delivery

Responses

Response samples

Content type
application/json
{
  • "TermsOfDelivery": {
    }
}

Update a terms of delivery

path Parameters
Code
required
string

identifies the terms of delivery

Request Body schema: */*

to update

required
object (TermsOfDelivery)

Responses

Response samples

Content type
application/json
{
  • "TermsOfDelivery": {
    }
}

Terms Of Payments

Resource for the CRUD operations on terms of payments

Retrieve a list of all terms of payments

Responses

Response samples

Content type
application/json
{
  • "TermsOfPayments": [
    ]
}

Create a term of payment

Request Body schema: */*

to create

required
object (TermsOfPayment)

Responses

Response samples

Content type
application/json
{
  • "TermsOfPayment": {
    }
}

Remove a term of payment

path Parameters
Code
required
string

identifies the terms of payment

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single terms of payment

path Parameters
Code
required
string

identifies the terms of payment

Responses

Response samples

Content type
application/json
{
  • "TermsOfPayment": {
    }
}

Update a term of payment

path Parameters
Code
required
string

identifies the term of payment

Request Body schema: */*

term of payment to update

required
object (TermsOfPayment)

Responses

Response samples

Content type
application/json
{
  • "TermsOfPayment": {
    }
}

Trusted Email Senders

Resource for the CRUD operations on trusted email senders

Retrieve a list of all trusted and rejected senders

Responses

Response samples

Content type
application/json
{
  • "EmailSenders": {
    }
}

Add a new email address as trusted

Request Body schema: */*

trusted email sender to create

object (TrustedEmailSender_TrustedSender)

Responses

Response samples

Content type
application/json
{
  • "TrustedSender": {
    }
}

Delete an email address from the trusted senders list

Provide an id matching an email to delete.

path Parameters
Id
required
integer <int32>

identifies the trusted email sender to delete

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Units

Units resources

Retrieve a list of units

The units register can return a list of records or a single record. By specifying a Code in the URL, a single record will be returned. Not specifying a Code will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "Units": [
    ]
}

Create a unit

Request Body schema: */*

to create

required
object (Unit)

Responses

Response samples

Content type
application/json
{
  • "Unit": {
    }
}

Remove a unit

path Parameters
Code
required
string

identifies the unit

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single unit

path Parameters
Code
required
string

identifies the unit

Responses

Response samples

Content type
application/json
{
  • "Unit": {
    }
}

Update a unit

path Parameters
Code
required
string

identifies the unit

Request Body schema: */*

unit to update

required
object (Unit)

Responses

Response samples

Content type
application/json
{
  • "Unit": {
    }
}

Vacation Debt Basis

Vacation Debt Basis resources

Retrieve a specific vacation debt basis for a posted voucher

path Parameters
Year
required
integer <int32>
Month
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "VacationDebtBasis": {
    }
}

Voucher File Connections

Voucher file connections resources

Possible search params on Voucher file connections endpoint
Search Description
voucheryear Retrives voucher file connections by voucher year
voucherdescription Retrives voucher file connections by voucher description
vouchernumber Retrives voucher file connections by voucher number
voucherseries Retrives voucher file connections by voucher series

Retrieve a list of voucher file connections

The voucher file connections register can return a list of records or a single record. By specifying a FileId in the URL, a single record will be returned. Not specifying a FileId will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "VoucherFileConnections": [
    ]
}

Create a voucher file connection

Request Body schema: */*

to create

required
object (VoucherFileConnection)

Responses

Response samples

Content type
application/json
{
  • "VoucherFileConnection": {
    }
}

Remove a voucher file connection

path Parameters
FileId
required
string

identifies the voucher file connection

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single voucher file connection

path Parameters
FileId
required
string

identifies the voucher file connection

Responses

Response samples

Content type
application/json
{
  • "VoucherFileConnection": {
    }
}

Voucher Series

Voucher Series resources

Possible search params on Voucher Series endpoint
Search Description
lastmodified Retrives Voucher Series modified after provided date and time

Possible sort params on Voucher Series endpoint
Sort Description
code Sorts Voucher Series according to code

Retrieve a list of voucher series

The voucher series register can return a list of records or a single record. By specifying a Code in the URL, a single record will be returned. Not specifying a Code will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "VoucherSeriesCollection": [
    ]
}

Create a voucher series

Request Body schema: */*

to create

required
object (VoucherSeries)

Responses

Response samples

Content type
application/json
{
  • "VoucherSeries": {
    }
}

Retrieve a single voucher series

path Parameters
Code
required
string

identifies the voucher series

Responses

Response samples

Content type
application/json
{
  • "VoucherSeries": {
    }
}

Update a voucher series

path Parameters
Code
required
string

identifies the voucher series

Request Body schema: */*

to update

required
object (VoucherSeries)

Responses

Response samples

Content type
application/json
{
  • "VoucherSeries": {
    }
}

Vouchers

Voucher resources

Possible search params on Vouchers endpoint
Search Description
lastmodified Retrives Vouchers modified after provided date and time
costcenter Retrives Vouchers by costcenter
fromdate Retrives Vouchers starting from provided date
todate Retrives Vouchers until provided date todate
voucherseries Retrives Vouchers by Voucher Series

Possible sort params on Vouchers endpoint
Sort Description
referencenumber Sorts vouchers according to referencenumber
referencetype Sorts vouchers according to referencetype
vouchernumber Sorts vouchers according to vouchernumber
voucherseries Sorts vouchers according to voucherseries

Retrieve all vouchers

Note that vouchers have two keys, one for voucher series and one for voucher number. The financial year is also specified for each voucher, this is due to the same voucher series and number is used each year. To get a unique voucher you need the voucher series, the voucher number and the financial year. These properties will always be returned where ever vouchers is used.

query Parameters
financialyear
integer <int32>

filter on financial year

Responses

Response samples

Content type
application/json
{
  • "Vouchers": [
    ]
}

Create a voucher

The created voucher will be returned if everything succeeded, if there was any problems an error will be returned. If no query param is used the voucher will be created in the preselected financial year. Go to the financialyears endpoint to read on how to retreive the Financial year id.

query Parameters
financialyear
integer <int32>

Financial year id, used to determine which financial year the voucher is created in

Request Body schema: */*

voucher to create

object (Voucher)

Responses

Response samples

Content type
application/json
{
  • "Voucher": {
    }
}

Retrieve a list of vouchers for a specific series

path Parameters
VoucherSeries
required
string

identifies the voucher series

query Parameters
financialyear
integer <int32>

filter on financial year

Responses

Response samples

Content type
application/json
{
  • "Vouchers": [
    ]
}

Retrieve a specific voucher

path Parameters
VoucherSeries
required
string

identifies the voucher series

VoucherNumber
required
integer <int32>

identifies the voucher number

query Parameters
financialyear
integer <int32>

filter on financial year

Responses

Response samples

Content type
application/json
{
  • "Voucher": {
    }
}

Way Of Deliveries

Resource for CRUD operations on Way of Deliveries

Retrieve a list of way of deliveries

The way of delivery register can return a list of records or a single record. By specifying a Code in the URL, a single record will be returned. Not specifying a Code will return a list of records.

Responses

Response samples

Content type
application/json
{
  • "WayOfDeliveries": [
    ]
}

Create a way of delivery

Request Body schema: */*

way of delivery to create

object (WayOfDelivery)

Responses

Response samples

Content type
application/json
{
  • "WayOfDelivery": {
    }
}

Remove a way of delivery

path Parameters
Code
required
string

identifies the way of delivery

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Retrieve a single way of delivery

path Parameters
Code
required
string

identifies the way of delivery

Responses

Response samples

Content type
application/json
{
  • "WayOfDelivery": {
    }
}

Update a way of delivery

path Parameters
Code
required
string

identifies the way of delivery

Request Body schema: */*

way of delivery to update

object (WayOfDelivery)

Responses

Response samples

Content type
application/json
{
  • "WayOfDelivery": {
    }
}

Attachment

AttachmentResource

Attach/Detach files to entities.

Possible 400 response error codes: no_attachment_provided, mixed_documents, wrong_file_location, wrong_file_type, could_not_retrieve_document, file_too_big, too_many_attachments_in_one_request, max_total_attachments_exceeded, attachment_files_max_count_exceeded, attachment_files_max_size_exceeded, attachment_files_max_pages_exceeded, field_not_writable, mismatch_attachment_id, missing_mandatory_field

Possible 404 response error codes: file_not_found, document_not_found, attachment_not_found

Get attached files on an entity

query Parameters
entityid
required
Array of integers <int64> [ items <int64 > ]

ids of the entities whose attachments should be fetched

entitytype
required
string
Enum: "OF" "O" "F" "C" "LGR_IO" "LGR_IG"

type of the entities whose attachments should be fetched

Responses

Response samples

Content type
application/json
{
  • "entityId": 0,
  • "entityType": "OF",
  • "fileId": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "includeOnSend": true
}

Attach files to one or more entities

Request Body schema: */*

A list of attachments

Array
entityId
integer <int64>
entityType
string
Enum: "OF" "O" "F" "C" "LGR_IO" "LGR_IG"
fileId
string
id
string <uuid>
includeOnSend
boolean

Responses

Response samples

Content type
application/json
{
  • "entityId": 0,
  • "entityType": "OF",
  • "fileId": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "includeOnSend": true
}

List number of attachments

query Parameters
entityids
required
Array of integers <int64> [ items <int64 > ]

ids of the entities to look for number of attachments on

entitytype
required
string
Enum: "OF" "O" "F" "C" "LGR_IO" "LGR_IG"

type of the entities to look for number of attachments on

Responses

Response samples

Content type
application/json
{
  • "entityId": 0,
  • "numberOfAttachments": 0
}

Validates a list of attachments that will be included on send

Request Body schema: */*

a list of Attachments

Array
entityId
integer <int64>
entityType
string
Enum: "OF" "O" "F" "C" "LGR_IO" "LGR_IG"
fileId
string
id
string <uuid>
includeOnSend
boolean

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Detach file

path Parameters
attachmentId
required
string <uuid>

id of the attachment to be detached

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "id": "string",
  • "message": "string"
}

Update attachment

path Parameters
attachmentId
required
string <uuid>

id of the attachment to be updated

Request Body schema: */*

an attachment

entityId
integer <int64>
entityType
string
Enum: "OF" "O" "F" "C" "LGR_IO" "LGR_IG"
fileId
string
id
string <uuid>
includeOnSend
boolean

Responses

Response samples

Content type
application/json
{
  • "entityId": 0,
  • "entityType": "OF",
  • "fileId": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "includeOnSend": true
}