Rise API (0.0.2)

Download OpenAPI specification:

Rise API for Rise Bank backend services.

Consistency notes for frontend:

  • Purchase invoice amounts are numbers; sales invoice amounts and rates are strings with two decimals.
  • List endpoints return an object with data and meta fields.
  • Some fields appear only in detail responses (e.g., audit_summary) and not in list summaries.

Authorization:

  • Use header Authorization: Bearer

Glossary:

  • source: How a purchase invoice was received ('manual' or 'einvoice').
  • invoice_channel: Channel describing how a sales invoice was received (sales invoices).
  • invoicing_channel: Channel describing how an invoice will be sent (sales invoices).
  • bank_account_id: Receiving bank account for sales invoices. For purchase invoices, bank accounts are specified on payment records, not invoices.
  • delegated_by_user_id: User who delegated a purchase invoice to its current assignee.
  • current_assignee_user_id: User currently responsible for acting on a purchase invoice.

Bank Accounts

Bank account management operations including listing, creation, and deletion

List banks

Retrieve list of available banks from Enable Banking

Authorizations:
bearerAuth
query Parameters
country
string = 2 characters
Example: country=FI

Country code to filter banks (default: FI)

Responses

Response samples

Content type
application/json
{
  • "country": "string",
  • "banks": [
    ]
}

List bank accounts

Retrieve bank accounts for a company with latest authorization status

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get bank account

Retrieve bank account details with authorization status

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

bankAccountId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Bank account ID

Responses

Response samples

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

Update bank account

Update bank account display name

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

bankAccountId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Bank account ID

Request Body schema: application/json
required

Bank account update data

required
string or null

Responses

Request samples

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

Response samples

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

Revoke bank account

Revoke authorization for a bank account, stopping automatic transaction syncing while preserving all account and transaction history

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

bankAccountId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Bank account ID

Responses

Response samples

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

Authorize bank account

Start an Enable Banking authorization flow for the selected company. Requires both redirect_url and cancel_url as absolute URIs.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

Bank account authorization data

aspsp_name
required
string [ 1 .. 255 ] characters
aspsp_country
required
string = 2 characters
redirect_url
required
string <uri>
cancel_url
required
string <uri>
consent_duration_seconds
required
number
transaction_start_date
string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...

Responses

Request samples

Content type
application/json
{
  • "aspsp_name": "string",
  • "aspsp_country": "st",
  • "redirect_url": "http://example.com",
  • "cancel_url": "http://example.com",
  • "consent_duration_seconds": 0,
  • "transaction_start_date": "2019-08-24"
}

Response samples

Content type
application/json
{}

List company bank transactions

Retrieve transactions across all bank accounts for a company

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

query Parameters
bank_account_id
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Filter by bank account ID

limit
integer [ 1 .. 100 ]
Example: limit=10

Maximum number of results to return (1-100, default: 10)

cursor
string

Pagination cursor from previous response

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get company bank transaction

Retrieve transaction details for a company

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

transactionId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Transaction ID

Responses

Response samples

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

Company Management

Company management operations including creation and retrieval of companies

Get company

Retrieve company details including settings and bank accounts

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "settings": {
    },
  • "accounts": [
    ]
}

Create company

Create a new company

Authorizations:
bearerAuth
Request Body schema: application/json
required

Company creation data

name
required
string
business_id
required
string
object
default_locale
string
Enum: "fi-FI" "en-US"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "business_id": "string",
  • "address": {
    },
  • "default_locale": "fi-FI"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "business_id": "string"
}

Publish company to Netbox

Publish company information to Netbox system. Only admins can update company status.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_created_in_netbox": true
}

Documents

Get document relationships tree

Returns a tree of documents related to the specified document via settlements. The depth parameter controls how many levels of relationships to include (1-3). Documents are connected through settlements, showing the network of documents that have been settled together.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

documentId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Document ID

query Parameters
depth
integer [ 1 .. 3 ]

Relationship tree depth (1-3, default: 1)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Expense Claims

Expense claim operations including creation

Create expense claim

Create a new expense claim document with line items and optional file attachments.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

Expense claim creation data

expense_date
required
string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...

Expense date (YYYY-MM-DD)

description
required
string non-empty

Expense claim description

payment_method
required
string
Enum: "user_paid" "company_card"

Payment method

expense_type
required
string
Value: "travel_costs"

Expense type

currency_code
required
string = 3 characters

Currency code (e.g., EUR)

required
Array of objects non-empty

Expense claim lines

files
Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ]

Optional array of file IDs to attach

Responses

Request samples

Content type
application/json
{
  • "expense_date": "2019-08-24",
  • "description": "string",
  • "payment_method": "user_paid",
  • "expense_type": "travel_costs",
  • "currency_code": "str",
  • "lines": [
    ],
  • "files": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "expense_date": "2019-08-24",
  • "description": "string",
  • "payment_method": "user_paid",
  • "expense_type": "travel_costs",
  • "currency_code": "string",
  • "amount": "string",
  • "status": "draft",
  • "lines": [
    ],
  • "files": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get expense claim

Retrieve expense claim details by ID

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

expenseClaimId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Expense claim ID (document ID)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "expense_date": "2019-08-24",
  • "description": "string",
  • "payment_method": "user_paid",
  • "expense_type": "travel_costs",
  • "currency_code": "string",
  • "amount": "string",
  • "status": "draft",
  • "lines": [
    ],
  • "files": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update expense claim

Partially update an expense claim. When lines or files are provided they replace existing ones and total amount is recalculated. Updates are allowed only while the document is in draft status.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

expenseClaimId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Expense claim ID (document ID)

Request Body schema: application/json
required

Expense claim update data (partial updates supported)

expense_date
string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...

Expense date (YYYY-MM-DD)

description
string non-empty

Expense claim description

payment_method
string
Enum: "user_paid" "company_card"

Payment method

expense_type
string
Value: "travel_costs"

Expense type

currency_code
string = 3 characters

Currency code (e.g., EUR)

Array of objects

Expense claim lines (replaces existing lines when provided; pass an empty array to clear all lines)

files
Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ]

Optional array of file IDs to attach (replaces existing files when provided)

Responses

Request samples

Content type
application/json
{
  • "expense_date": "2019-08-24",
  • "description": "string",
  • "payment_method": "user_paid",
  • "expense_type": "travel_costs",
  • "currency_code": "str",
  • "lines": [
    ],
  • "files": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "expense_date": "2019-08-24",
  • "description": "string",
  • "payment_method": "user_paid",
  • "expense_type": "travel_costs",
  • "currency_code": "string",
  • "amount": "string",
  • "status": "draft",
  • "lines": [
    ],
  • "files": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Files

File operations

Create file

Create a new file and optionally attach it to a document

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

File creation data

original_filename
required
string
document_id
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "original_filename": "string",
  • "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
  • "original_filename": "string",
  • "s3_path": "string",
  • "ref_file_id": "4e2990c8-5744-4c5c-bc59-f31c1bdb1a8d",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "type": "string",
  • "status": "string",
  • "source": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "metadata": {
    },
  • "upload_url": "http://example.com"
}

List files

List files for a company. By default, excludes files with upload_pending status.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

query Parameters
status
string (FileStatus)
Enum: "upload_pending" "process_pending" "process_completed" "process_failed" "process_skipped" "all"
Example: status=process_completed

Filter by file status. By default, upload_pending files are excluded. Use "all" to include them.

offset
integer [ 0 .. 9007199254740991 ]

Number of results to skip for pagination

limit
integer [ 1 .. 100 ]
Example: limit=10

Maximum number of results to return

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get file

Retrieve file details including presigned download URL

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

fileId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

File ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
  • "original_filename": "string",
  • "s3_path": "string",
  • "ref_file_id": "4e2990c8-5744-4c5c-bc59-f31c1bdb1a8d",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "type": "string",
  • "status": "string",
  • "source": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "metadata": {
    },
  • "download_url": "http://example.com"
}

Delete file

Delete a file

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

fileId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

File ID

Responses

Response samples

Content type
application/json
{
  • "error": "Resource not found",
  • "debug": "Sales invoice not found",
  • "timestamp": "2024-01-15T10:30:00Z"
}

List my files

List files created by the authenticated user

Authorizations:
bearerAuth
query Parameters
status
string (FileStatus)
Enum: "upload_pending" "process_pending" "process_completed" "process_failed" "process_skipped" "all"
Example: status=process_completed

Filter by file status. By default, upload_pending files are excluded. Use "all" to include them.

offset
integer [ 0 .. 9007199254740991 ]

Number of results to skip for pagination

limit
integer [ 1 .. 100 ]
Example: limit=10

Maximum number of results to return

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Fiscal periods

Create fiscal period

Create a new fiscal period for a company

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

Fiscal period creation data

start_date
required
string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...

Start date of the fiscal period (YYYY-MM-DD)

end_date
required
string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...

End date of the fiscal period (YYYY-MM-DD)

is_closed
boolean

Whether the fiscal period is closed (defaults to false)

string or null

Lock date for the fiscal period (YYYY-MM-DD)

Responses

Request samples

Content type
application/json
{
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "is_closed": true,
  • "lock_date": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "is_closed": true,
  • "lock_date": "2019-08-24",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

List fiscal periods

Retrieve all fiscal periods for a company with optional filtering

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

query Parameters
is_closed
boolean

Filter by closed status

Responses

Response samples

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

Get fiscal period

Retrieve fiscal period details

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

fiscalPeriodId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Fiscal period ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "is_closed": true,
  • "lock_date": "2019-08-24",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Edit fiscal period

Update fiscal period details

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

fiscalPeriodId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Fiscal period ID

Request Body schema: application/json
required

Fiscal period update data. Note: is_closed cannot be modified after creation.

start_date
string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...

Start date of the fiscal period (YYYY-MM-DD)

end_date
string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...

End date of the fiscal period (YYYY-MM-DD)

string or null

Lock date for the fiscal period (YYYY-MM-DD)

Responses

Request samples

Content type
application/json
{
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "lock_date": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "is_closed": true,
  • "lock_date": "2019-08-24",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete fiscal period

Delete a fiscal period (only open periods can be deleted)

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

fiscalPeriodId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Fiscal period ID

Responses

Response samples

Content type
application/json
{
  • "error": "Invalid input",
  • "debug": "Validation failed for field 'invoice_date'",
  • "timestamp": "2024-01-15T10:30:00Z"
}

General

General operations

Get current user

Get current user info including roles and permissions

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

General Ledger

General ledger account operations including listing and filtering

List general ledger accounts

Retrieve general ledger accounts with filtering, pagination, and i18n-resolved names. Supports filtering by type, code (exact/range), currency, and text search on account names.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

query Parameters
type
string (GeneralLedgerAccountType)
Enum: "asset" "liability" "equity" "revenue" "expense"
Example: type=asset

Filter by account type

code
string non-empty
Example: code=1000

Filter by exact account code

code_from
string non-empty
Example: code_from=1000

Filter by account code range (from)

code_to
string non-empty
Example: code_to=2000

Filter by account code range (to)

currency
string = 3 characters
Example: currency=EUR

Filter by currency code

query
string non-empty
Example: query=cash

Text search on account names (partial match)

limit
integer [ 1 .. 100 ]
Example: limit=10

Maximum number of results to return (1-100)

offset
integer [ 0 .. 9007199254740991 ]

Number of results to skip for pagination

locale
string = 2 characters ^[a-z]{2}$
Example: locale=en

Locale for i18n name resolution (e.g., "en", "fi", "sv")

include_balances
boolean
Example: include_balances=true

Include balance information for accounts (requires from_date and to_date)

from_date
string^\d{4}-\d{2}-\d{2}$
Example: from_date=2024-01-01

Start date for balance calculation (ISO date format: YYYY-MM-DD). Required when include_balances=true.

to_date
string^\d{4}-\d{2}-\d{2}$
Example: to_date=2024-12-31

End date for balance calculation (ISO date format: YYYY-MM-DD). Required when include_balances=true.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get general ledger account by code

Retrieve a single general ledger account by its code

Authorizations:
bearerAuth
path Parameters
code
required
string [ 1 .. 20 ] characters ^[A-Za-z0-9_-]+$
Example: 1000

Account code (e.g., "1000", "2000")

query Parameters
locale
string [ 2 .. 5 ] characters ^[a-z]{2}(-[A-Z]{2})?$
Example: locale=en

Locale for i18n name and description resolution (e.g., "en", "fi", "en-US")

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "code": "string",
  • "name": "string",
  • "description": "string",
  • "type": "asset",
  • "currency": "string",
  • "is_active": true,
  • "i18n_group_id": "b9f52139-56f9-42ad-a35a-2ddb4484a320",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

List general ledger lines

Retrieve general ledger lines with filtering and pagination. Supports filtering by GL account code, voucher, and posting date range. Opening balance and running balance are automatically included for account-wide queries (when account_code is provided and voucher_id is not provided) - they are always present regardless of from_date. When from_date is specified, opening balance is the sum before from_date; when from_date is not specified, opening balance is 0.00. Opening balance and running balance are NOT included when voucher_id is provided. Voided vouchers are automatically excluded from results, opening balance, and running balance calculations.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

query Parameters
account_code
string non-empty
Example: account_code=1000

GL account code (e.g., "1000"). Required when voucher_id is not provided. When voucher_id is provided, account_code is optional - if omitted, all lines for the voucher are returned.

voucher_id
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Filter by voucher ID. When provided, account_code becomes optional. Either account_code or voucher_id must be provided.

from_date
string^\d{4}-\d{2}-\d{2}$
Example: from_date=2024-01-01

Filter by posting date (from, inclusive)

to_date
string^\d{4}-\d{2}-\d{2}$
Example: to_date=2024-12-31

Filter by posting date (to, inclusive)

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=50

Maximum number of results to return (1-100). Defaults to 10 if not specified.

cursor
string non-empty
Example: cursor=eyJwb3N0aW5nRGF0ZSI6IjIwMjQtMDEtMTUiLCJ2b3VjaGVySWQiOiJ2b3VjaGVyLTEiLCJsaW5lSWQiOiJsaW5lLTEifQ

Cursor for pagination (base64-encoded). Use the nextCursor from the previous response to fetch the next page.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "opening_balance": "string",
  • "meta": {
    }
}

Memos

Memo operations including listing, creation, and editing

List memos

Retrieve memos for a company with optional filtering and pagination

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

query Parameters
offset
integer [ 0 .. 9007199254740991 ]

Number of results to skip for pagination

limit
integer [ 1 .. 100 ]
Example: limit=10

Maximum number of results to return

status
string (SalesInvoiceStatus)
Enum: "draft" "approved" "rejected" "voided"
Example: status=draft

Filter by document status

tag
string
Example: tag=urgent

Filter by tag name

search
string
Example: search=rent

Search in memo description (case-insensitive substring)

with_amount
boolean
Example: with_amount=true

Filter by presence of amount (true = has amount, false = no amount)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Create memo

Create a new memo document. A memo is a manual document with a textual description and optional metadata, used as a workaround source for vouchers when automated sources are unavailable.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

Memo creation data

description
required
string non-empty

Memo description (required) - textual description of what the document represents

document_date
required
string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...

Document date (YYYY-MM-DD). Required for memo creation. Used as default posting date when creating vouchers.

amount
string^-?[0-9]+(\.[0-9]{1,8})?$

Optional amount (numeric string with up to 8 decimals)

currency_code
string

Optional currency code (e.g., EUR, USD). Required when amount is provided.

files
Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ]

Optional array of file IDs to attach to the memo

tags
Array of strings

Optional array of tag names to attach to the memo

string or null

Optional internal notes for team visibility only (internal-only field)

object

Optional voucher data. If provided, a GL voucher will be created atomically with the memo.

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "document_date": "2019-08-24",
  • "amount": "string",
  • "currency_code": "string",
  • "files": [
    ],
  • "tags": [
    ],
  • "internal_notes": "string",
  • "voucher": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "description": "string",
  • "amount": "string",
  • "unsettled_amount": "string",
  • "currency_code": "string",
  • "status": "string",
  • "internal_notes": "string",
  • "document_date": "2019-08-24",
  • "files": [
    ],
  • "tags": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "voucher": {
    }
}

Get memo

Retrieve memo details by ID

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

memoId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Memo ID (document ID)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "description": "string",
  • "amount": "string",
  • "unsettled_amount": "string",
  • "currency_code": "string",
  • "status": "string",
  • "internal_notes": "string",
  • "document_date": "2019-08-24",
  • "files": [
    ],
  • "tags": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update memo

Update an existing memo document. Partial updates are supported - only provided fields will be updated. Business rules: (1) Cannot edit if fiscal period for document_date is locked, (2) Cannot change amount if memo has a linked voucher.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

memoId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Memo ID (document ID)

Request Body schema: application/json
required

Memo update data (partial updates supported)

description
string non-empty

Memo description

string or null

Document date (YYYY-MM-DD). Used as default posting date when creating vouchers.

string or null

Optional amount (numeric string with up to 8 decimals)

string or null

Currency code (e.g., EUR, USD). Required when amount is provided.

files
Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ]

File IDs to attach (replaces all existing files)

tags
Array of strings

Tag names to attach (replaces all existing tags)

string or null

Optional internal notes for team visibility only (internal-only field)

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "document_date": "2019-08-24",
  • "amount": "string",
  • "currency_code": "string",
  • "files": [
    ],
  • "tags": [
    ],
  • "internal_notes": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "description": "string",
  • "amount": "string",
  • "unsettled_amount": "string",
  • "currency_code": "string",
  • "status": "string",
  • "internal_notes": "string",
  • "document_date": "2019-08-24",
  • "files": [
    ],
  • "tags": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Parties

Party management operations including listing, creation, and editing

List parties

Retrieve parties for a company with optional search and filtering

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

query Parameters
scope
required
string (PartyScope)
Enum: "registry" "associated"
Example: scope=registry

Scope of parties to return

query
string
Example: query=Acme

Search query (searches in party names)

offset
string
Example: offset=0

Number of results to skip for pagination

limit
string
Example: limit=10

Maximum number of results to return

sort
string (PartySort)
Enum: "name" "updated_at"
Example: sort=name

Sort order

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create party

Create a new party

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

Party creation data

registration_country_code
required
string^[A-Z]{2}$
business_id
required
string
name
required
string
string or null
object or null
object or null
object
object
string or null
object or null

Responses

Request samples

Content type
application/json
{
  • "registration_country_code": "string",
  • "business_id": "string",
  • "name": "string",
  • "vat_number": "string",
  • "postal_address": {
    },
  • "visiting_address": {
    },
  • "invoicing_address": {
    },
  • "settings": {
    },
  • "invoicing_email": "user@example.com",
  • "einvoice": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "registration_country_code": "string",
  • "business_id": "string",
  • "number": 0,
  • "vat_number": "string",
  • "postal_address": {
    },
  • "visiting_address": {
    },
  • "invoicing_address": {
    },
  • "settings": {
    },
  • "invoicing_email": "string",
  • "einvoice": {
    },
  • "public_registry": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get party

Retrieve party details with optional includes

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

partyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Party ID

query Parameters
include
string
Example: include=settings,address

Comma-separated list of related resources to include

namespace
string
Example: namespace=sales_invoice,purchase_invoice

Comma-separated list of namespaces to include

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "registration_country_code": "string",
  • "business_id": "string",
  • "number": 0,
  • "vat_number": "string",
  • "postal_address": {
    },
  • "visiting_address": {
    },
  • "invoicing_address": {
    },
  • "settings": {
    },
  • "invoicing_email": "string",
  • "einvoice": {
    },
  • "public_registry": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Edit party

Update party details

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

partyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Party ID

Request Body schema: application/json
required

Party update data

name
string
(string or "" (string)) or null
object or null
object or null
object
object

Settings (can be flat structure for backward compatibility or namespaced like { namespace: { key: value } })

(string or "" (string)) or null
object or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "vat_number": "string",
  • "postal_address": {
    },
  • "visiting_address": {
    },
  • "invoicing_address": {
    },
  • "settings": {
    },
  • "invoicing_email": "user@example.com",
  • "einvoice": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "number": 0
}

Payments

Payment management operations including creation and tracking

List payments

List payments for a company with optional filtering

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

query Parameters
document_id
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Filter by payable document ID

status
string (PaymentStatus)
Enum: "draft" "pending" "scheduled" "executed" "failed" "canceled" "rejected"

Filter by payment status

offset
integer [ 0 .. 9007199254740991 ]

Number of records to skip (for pagination)

limit
integer [ 1 .. 100 ]

Maximum number of records to return (default 10, max 100)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Create payment

Create a new payment for a document

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

Payment creation data

document_id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

ID of the payable document (purchase invoice)

amount
required
string^\d+(\.\d{1,2})?$

Payment amount with up to 2 decimal places

currency
required
string = 3 characters

Payment currency (currently only EUR supported)

debtor_bank_account_id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Bank account ID for the debtor

Responses

Request samples

Content type
application/json
{
  • "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6",
  • "amount": "string",
  • "currency": "str",
  • "debtor_bank_account_id": "231a5002-84bd-418b-8831-7cbf4bf000b2"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
  • "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6",
  • "currency": "str",
  • "amount": "string",
  • "status": "draft",
  • "debtor_bank_account_id": "231a5002-84bd-418b-8831-7cbf4bf000b2",
  • "beneficiary_party_id": "string",
  • "beneficiary_iban": "string",
  • "beneficiary_bic": "string",
  • "reference_number": "string",
  • "message": "string",
  • "scheduled_at": "2019-08-24",
  • "executed_at": "2019-08-24T14:15:22Z",
  • "upstream_id": "string",
  • "end_to_end_id": "string",
  • "rejection_code": "string",
  • "failure_reason": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Initiate payment

Initiate a payment through PSD2 provider

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

paymentId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Payment ID

Request Body schema: application/json
required

Payment initiation data

redirect_url
required
string <uri>

URL to redirect user after successful bank authentication

cancel_url
string <uri>

URL to redirect user if authentication fails or is canceled (defaults to redirect_url if not provided)

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "status": "pending",
  • "channel": "psd2",
  • "requested_execution_date": "2019-08-24",
  • "redirect_url": "http://example.com",
  • "rejection_code": "string",
  • "failure_reason": "string"
}

Product registry

Product management operations including creation, listing, editing, and deletion

List products

Retrieve products for a company with optional search and pagination

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

query Parameters
query
string
Example: query=laptop

Search query (searches in product names and descriptions)

offset
integer [ 0 .. 9007199254740991 ]

Number of results to skip for pagination

limit
integer [ 1 .. 100 ]
Example: limit=10

Maximum number of results to return

include_inactive
boolean

Include inactive (deleted) products in results

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Create product

Create a new product

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

Product creation data

title
required
string <= 255 characters
string or null
string or null
string or null
string or null
string or null
string or null

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "unit_price": "string",
  • "unit_name": "string",
  • "vat_rate": "string",
  • "currency": "str",
  • "type": "services"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "unit_price": "string",
  • "unit_name": "string",
  • "vat_rate": "string",
  • "currency": "string",
  • "type": "services",
  • "is_active": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get product

Retrieve product details

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

productId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Product ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "unit_price": "string",
  • "unit_name": "string",
  • "vat_rate": "string",
  • "currency": "string",
  • "type": "services",
  • "is_active": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Edit product

Update product details

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

productId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Product ID

Request Body schema: application/json
required

Product update data

title
string <= 255 characters
description
string <= 255 characters
unit_price
string^-?[0-9]+(\.[0-9]{1,2})?$
unit_name
string <= 16 characters
vat_rate
string^1?[0-9]{0,2}(\.[0-9]{1,2})?$
currency
string = 3 characters
type
string
Enum: "services" "goods" "electronic_services"

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "unit_price": "string",
  • "unit_name": "string",
  • "vat_rate": "string",
  • "currency": "str",
  • "type": "services"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "unit_price": "string",
  • "unit_name": "string",
  • "vat_rate": "string",
  • "currency": "string",
  • "type": "services",
  • "is_active": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete product

Delete a product

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

productId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Product ID

Responses

Response samples

Content type
application/json
{
  • "error": "Resource not found",
  • "debug": "Sales invoice not found",
  • "timestamp": "2024-01-15T10:30:00Z"
}

Reactivate product

Reactivate a deleted (inactive) product

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

productId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Product ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "unit_price": "string",
  • "unit_name": "string",
  • "vat_rate": "string",
  • "currency": "string",
  • "type": "services",
  • "is_active": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Purchase Invoices

Purchase invoice operations including listing and creation

List purchase invoices

Retrieve purchase invoices for a company with optional filtering

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

query Parameters
status
string (SalesInvoiceStatus)
Enum: "draft" "approved" "rejected" "voided"
Example: status=draft

Filter by document status

offset
integer [ 0 .. 9007199254740991 ]

Number of results to skip for pagination

limit
integer [ 1 .. 100 ]
Example: limit=10

Maximum number of results to return

owner_user_id
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Filter by owner user ID

Responses

Response samples

Content type
application/json
{
  • "example_query": "/companies/{companyId}/purchase-invoices?owner_user_id=73930057-2a35-4b9a-a675-4478e5fd3f4a&status=draft&offset=0&limit=10",
  • "data": [
    ],
  • "meta": {
    }
}

Create purchase invoice

Create a new purchase invoice

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

Purchase invoice creation data

string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
object or null
string or null
string or null
string or null
Array of objects or null
Array of strings or null
Array of strings or null

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "invoice_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "invoice_number": "string",
  • "currency": "EUR",
  • "total_amount_gross": "string",
  • "total_amount_net": "string",
  • "total_amount_vat": "string",
  • "payment_method": "string",
  • "reference": "string",
  • "supplier": {
    },
  • "supplier_iban": "string",
  • "supplier_bic": "string",
  • "recipient_name": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "invoice_number": "string",
  • "invoice_date": "2019-08-24",
  • "document_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "description": "string",
  • "currency": "string",
  • "company": {
    },
  • "supplier": {
    },
  • "supplier_iban": "string",
  • "supplier_bic": "string",
  • "recipient_name": "string",
  • "payment_method": "string",
  • "source": "manual",
  • "reference": "string",
  • "internal_notes": "string",
  • "delegated_by_user_id": "be8da939-c65d-49cd-9cb4-f522d9d858d8",
  • "total_amount_net": "string",
  • "total_amount_gross": "string",
  • "total_amount_vat": "string",
  • "rounding_amount_gross": "string",
  • "rounding_amount_net": "string",
  • "payable_amount": "string",
  • "unsettled_amount": "string",
  • "ai_summary": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ],
  • "caution_level": "caution",
  • "status": "draft",
  • "payment_status": "unpaid",
  • "current_assignee_user_id": "3d697ec3-cb4c-4391-8815-473809da15c5",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "audit_summary": [
    ]
}

Get purchase invoice

Retrieve purchase invoice details

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

purchaseInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Purchase invoice ID

Responses

Response samples

Content type
application/json
{
  • "id": "50345a92-121d-4428-9805-a53b416cfaaf",
  • "description": "Laptop for new hire",
  • "invoice_date": "2024-01-15",
  • "due_date": "2024-02-15",
  • "currency": "EUR",
  • "total_amount_gross": "124.00",
  • "total_amount_net": "100.00",
  • "total_amount_vat": "24.00",
  • "supplier": {
    },
  • "status": "draft"
}

Edit purchase invoice

Update purchase invoice details

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

purchaseInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Purchase invoice ID

Request Body schema: application/json
required

Purchase invoice update data

string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
object or null
supplier_iban
string
supplier_bic
string
recipient_name
string
Array of objects or null
Array of strings or null
Array of strings or null

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "internal_notes": "string",
  • "invoice_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "invoice_number": "string",
  • "currency": "EUR",
  • "total_amount_gross": "string",
  • "total_amount_net": "string",
  • "total_amount_vat": "string",
  • "payment_method": "string",
  • "reference": "string",
  • "supplier": {
    },
  • "supplier_iban": "string",
  • "supplier_bic": "string",
  • "recipient_name": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "invoice_number": "string",
  • "invoice_date": "2019-08-24",
  • "document_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "description": "string",
  • "currency": "string",
  • "company": {
    },
  • "supplier": {
    },
  • "supplier_iban": "string",
  • "supplier_bic": "string",
  • "recipient_name": "string",
  • "payment_method": "string",
  • "source": "manual",
  • "reference": "string",
  • "internal_notes": "string",
  • "delegated_by_user_id": "be8da939-c65d-49cd-9cb4-f522d9d858d8",
  • "total_amount_net": "string",
  • "total_amount_gross": "string",
  • "total_amount_vat": "string",
  • "rounding_amount_gross": "string",
  • "rounding_amount_net": "string",
  • "payable_amount": "string",
  • "unsettled_amount": "string",
  • "ai_summary": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ],
  • "caution_level": "caution",
  • "status": "draft",
  • "payment_status": "unpaid",
  • "current_assignee_user_id": "3d697ec3-cb4c-4391-8815-473809da15c5",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "audit_summary": [
    ]
}

Delete purchase invoice

Delete a purchase invoice

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

purchaseInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Purchase invoice ID

Responses

Response samples

Content type
application/json
{
  • "error": "Resource not found",
  • "debug": "Sales invoice not found",
  • "timestamp": "2024-01-15T10:30:00Z"
}

Approve purchase invoice

Approve a purchase invoice

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

purchaseInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Purchase invoice ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "invoice_number": "string",
  • "invoice_date": "2019-08-24",
  • "document_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "description": "string",
  • "currency": "string",
  • "company": {
    },
  • "supplier": {
    },
  • "supplier_iban": "string",
  • "supplier_bic": "string",
  • "recipient_name": "string",
  • "payment_method": "string",
  • "source": "manual",
  • "reference": "string",
  • "internal_notes": "string",
  • "delegated_by_user_id": "be8da939-c65d-49cd-9cb4-f522d9d858d8",
  • "total_amount_net": "string",
  • "total_amount_gross": "string",
  • "total_amount_vat": "string",
  • "rounding_amount_gross": "string",
  • "rounding_amount_net": "string",
  • "payable_amount": "string",
  • "unsettled_amount": "string",
  • "ai_summary": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ],
  • "caution_level": "caution",
  • "status": "draft",
  • "payment_status": "unpaid",
  • "current_assignee_user_id": "3d697ec3-cb4c-4391-8815-473809da15c5",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "audit_summary": [
    ]
}

Reject purchase invoice

Reject a purchase invoice

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

purchaseInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Purchase invoice ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "invoice_number": "string",
  • "invoice_date": "2019-08-24",
  • "document_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "description": "string",
  • "currency": "string",
  • "company": {
    },
  • "supplier": {
    },
  • "supplier_iban": "string",
  • "supplier_bic": "string",
  • "recipient_name": "string",
  • "payment_method": "string",
  • "source": "manual",
  • "reference": "string",
  • "internal_notes": "string",
  • "delegated_by_user_id": "be8da939-c65d-49cd-9cb4-f522d9d858d8",
  • "total_amount_net": "string",
  • "total_amount_gross": "string",
  • "total_amount_vat": "string",
  • "rounding_amount_gross": "string",
  • "rounding_amount_net": "string",
  • "payable_amount": "string",
  • "unsettled_amount": "string",
  • "ai_summary": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ],
  • "caution_level": "caution",
  • "status": "draft",
  • "payment_status": "unpaid",
  • "current_assignee_user_id": "3d697ec3-cb4c-4391-8815-473809da15c5",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "audit_summary": [
    ]
}

Delegate purchase invoice

Delegate a purchase invoice to another user

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

purchaseInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Purchase invoice ID

Request Body schema: application/json
required

Delegation data

to_user_id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "to_user_id": "bdcaa974-8e23-4fc9-823d-e060850bbef1"
}

Response samples

Content type
application/json
{
  • "error": "Resource not found",
  • "debug": "Sales invoice not found",
  • "timestamp": "2024-01-15T10:30:00Z"
}

Send back purchase invoice

Send back a purchase invoice to the previous assignee

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

purchaseInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Purchase invoice ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "invoice_number": "string",
  • "invoice_date": "2019-08-24",
  • "document_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "description": "string",
  • "currency": "string",
  • "company": {
    },
  • "supplier": {
    },
  • "supplier_iban": "string",
  • "supplier_bic": "string",
  • "recipient_name": "string",
  • "payment_method": "string",
  • "source": "manual",
  • "reference": "string",
  • "internal_notes": "string",
  • "delegated_by_user_id": "be8da939-c65d-49cd-9cb4-f522d9d858d8",
  • "total_amount_net": "string",
  • "total_amount_gross": "string",
  • "total_amount_vat": "string",
  • "rounding_amount_gross": "string",
  • "rounding_amount_net": "string",
  • "payable_amount": "string",
  • "unsettled_amount": "string",
  • "ai_summary": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ],
  • "caution_level": "caution",
  • "status": "draft",
  • "payment_status": "unpaid",
  • "current_assignee_user_id": "3d697ec3-cb4c-4391-8815-473809da15c5",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "audit_summary": [
    ]
}

Reports

Generate profit and loss report

Generate a hierarchical Profit & Loss report for the specified date range. Returns revenue and expense accounts aggregated by account hierarchy with totals.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

Report generation parameters

start_date
required
string^\d{4}-\d{2}-\d{2}$

Start date of the reporting period (ISO date format: YYYY-MM-DD)

end_date
required
string^\d{4}-\d{2}-\d{2}$

End date of the reporting period (ISO date format: YYYY-MM-DD)

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "period": {
    },
  • "currency": "string",
  • "roots": [
    ],
  • "totals": {
    }
}

Generate balance sheet report

Generate a hierarchical Balance Sheet report as of a specific date. Returns asset, liability, and equity accounts aggregated by account hierarchy with totals.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

Report generation parameters

as_of_date
required
string^\d{4}-\d{2}-\d{2}$

Balance sheet date (ISO format: YYYY-MM-DD)

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "as_of_date": "string",
  • "currency": "string",
  • "roots": [
    ],
  • "totals": {
    }
}

Sales Invoices

Sales invoice management operations including searching, listing, creating, approval, and posting

List sales invoices

Retrieve sales invoices for a company with optional filtering

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

query Parameters
status
string (SalesInvoiceStatus)
Enum: "draft" "approved" "rejected" "voided"
Example: status=draft

Filter by document status

kind
string (SalesInvoiceKind)
Enum: "invoice" "credit_note"
Example: kind=invoice

Filter by invoice kind (invoice or credit_note)

party_id
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
Example: party_id=123e4567-e89b-12d3-a456-426614174000

Filter by recipient party ID

offset
integer [ 0 .. 9007199254740991 ]

Number of results to skip for pagination

limit
integer [ 1 .. 100 ]
Example: limit=10

Maximum number of results to return

Responses

Response samples

Content type
application/json
{
  • "example_query": "/companies/{companyId}/sales-invoices?status=draft&offset=0&limit=10",
  • "data": [
    ],
  • "meta": {
    }
}

Create sales invoice

Create a new sales invoice

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

Sales invoice creation data

Any of
string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
object or null
string or null
object or null
object or null
Array of objects or null
Array of strings or null
Array of strings or null
"invoice" (string) or null
credit_reason
null
credited_sales_invoice_id
null

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "invoice_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "interest_rate": "string",
  • "our_reference": "string",
  • "your_reference": "string",
  • "bank_account_id": "9335a679-63ab-44d5-9de9-e01e0c5a1fff",
  • "currency": "EUR",
  • "locale": "fi-FI",
  • "invoicing_channel": "email",
  • "recipient": {
    },
  • "recipient_invoicing_email": "string",
  • "recipient_invoicing_address": {
    },
  • "recipient_einvoice": {
    },
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ],
  • "kind": "credit_note",
  • "credit_reason": "string",
  • "credited_sales_invoice_id": "8fdec0e4-3a29-4ed0-b4d6-d6af3836d63e"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "document_date": "2019-08-24",
  • "invoice_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "description": "string",
  • "internal_notes": "string",
  • "invoice_number": "string",
  • "currency": "string",
  • "invoicing_channel": "string",
  • "bank_account_id": "9335a679-63ab-44d5-9de9-e01e0c5a1fff",
  • "our_reference": "string",
  • "your_reference": "string",
  • "sender_name": "string",
  • "sender_domicile": "string",
  • "sender_vat_number": "string",
  • "sender_address": {
    },
  • "recipient": {
    },
  • "recipient_invoicing_address": {
    },
  • "recipient_invoicing_email": "string",
  • "recipient_einvoice": {
    },
  • "recipient_vat_number": "string",
  • "bank_reference": "string",
  • "gross_amount": "string",
  • "vat_amount": "string",
  • "interest_rate": "string",
  • "locale": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ],
  • "status": "draft",
  • "sending_status": "string",
  • "rejection_code": "string",
  • "rejection_reason": "string",
  • "kind": "invoice",
  • "credited_sales_invoice_id": "8fdec0e4-3a29-4ed0-b4d6-d6af3836d63e",
  • "credit_reason": "string",
  • "unsettled_amount": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get sales invoice

Retrieve sales invoice details

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

salesInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Sales invoice ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "document_date": "2019-08-24",
  • "invoice_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "description": "string",
  • "internal_notes": "string",
  • "invoice_number": "string",
  • "currency": "string",
  • "invoicing_channel": "string",
  • "bank_account_id": "9335a679-63ab-44d5-9de9-e01e0c5a1fff",
  • "our_reference": "string",
  • "your_reference": "string",
  • "sender_name": "string",
  • "sender_domicile": "string",
  • "sender_vat_number": "string",
  • "sender_address": {
    },
  • "recipient": {
    },
  • "recipient_invoicing_address": {
    },
  • "recipient_invoicing_email": "string",
  • "recipient_einvoice": {
    },
  • "recipient_vat_number": "string",
  • "bank_reference": "string",
  • "gross_amount": "string",
  • "vat_amount": "string",
  • "interest_rate": "string",
  • "locale": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ],
  • "status": "draft",
  • "sending_status": "string",
  • "rejection_code": "string",
  • "rejection_reason": "string",
  • "kind": "invoice",
  • "credited_sales_invoice_id": "8fdec0e4-3a29-4ed0-b4d6-d6af3836d63e",
  • "credit_reason": "string",
  • "unsettled_amount": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Edit sales invoice

Update sales invoice details

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

salesInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Sales invoice ID

Request Body schema: application/json
required

Sales invoice update data

string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
string or null
object or null
string or null
object or null
object or null
Array of objects or null
Array of strings or null
Array of strings or null

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "internal_notes": "string",
  • "invoice_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "interest_rate": "string",
  • "our_reference": "string",
  • "your_reference": "string",
  • "bank_account_id": "9335a679-63ab-44d5-9de9-e01e0c5a1fff",
  • "currency": "EUR",
  • "locale": "fi-FI",
  • "invoicing_channel": "email",
  • "recipient": {
    },
  • "recipient_invoicing_email": "string",
  • "recipient_invoicing_address": {
    },
  • "recipient_einvoice": {
    },
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "document_date": "2019-08-24",
  • "invoice_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "description": "string",
  • "internal_notes": "string",
  • "invoice_number": "string",
  • "currency": "string",
  • "invoicing_channel": "string",
  • "bank_account_id": "9335a679-63ab-44d5-9de9-e01e0c5a1fff",
  • "our_reference": "string",
  • "your_reference": "string",
  • "sender_name": "string",
  • "sender_domicile": "string",
  • "sender_vat_number": "string",
  • "sender_address": {
    },
  • "recipient": {
    },
  • "recipient_invoicing_address": {
    },
  • "recipient_invoicing_email": "string",
  • "recipient_einvoice": {
    },
  • "recipient_vat_number": "string",
  • "bank_reference": "string",
  • "gross_amount": "string",
  • "vat_amount": "string",
  • "interest_rate": "string",
  • "locale": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ],
  • "status": "draft",
  • "sending_status": "string",
  • "rejection_code": "string",
  • "rejection_reason": "string",
  • "kind": "invoice",
  • "credited_sales_invoice_id": "8fdec0e4-3a29-4ed0-b4d6-d6af3836d63e",
  • "credit_reason": "string",
  • "unsettled_amount": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete sales invoice

Delete a sales invoice

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

salesInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Sales invoice ID

Responses

Response samples

Content type
application/json
{
  • "error": "Resource not found",
  • "debug": "Sales invoice not found",
  • "timestamp": "2024-01-15T10:30:00Z"
}

Approve sales invoice

Approve a sales invoice. If any line items have null product_id, products will be automatically created from the line item data (title, description, unit price, VAT rate, etc.) during approval. All approved line items will have a product_id set.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

salesInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Sales invoice ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "document_date": "2019-08-24",
  • "invoice_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "description": "string",
  • "internal_notes": "string",
  • "invoice_number": "string",
  • "currency": "string",
  • "invoicing_channel": "string",
  • "bank_account_id": "9335a679-63ab-44d5-9de9-e01e0c5a1fff",
  • "our_reference": "string",
  • "your_reference": "string",
  • "sender_name": "string",
  • "sender_domicile": "string",
  • "sender_vat_number": "string",
  • "sender_address": {
    },
  • "recipient": {
    },
  • "recipient_invoicing_address": {
    },
  • "recipient_invoicing_email": "string",
  • "recipient_einvoice": {
    },
  • "recipient_vat_number": "string",
  • "bank_reference": "string",
  • "gross_amount": "string",
  • "vat_amount": "string",
  • "interest_rate": "string",
  • "locale": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ],
  • "status": "draft",
  • "sending_status": "string",
  • "rejection_code": "string",
  • "rejection_reason": "string",
  • "kind": "invoice",
  • "credited_sales_invoice_id": "8fdec0e4-3a29-4ed0-b4d6-d6af3836d63e",
  • "credit_reason": "string",
  • "unsettled_amount": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Send sales invoice

Send a sales invoice via the configured invoicing channel

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

salesInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Sales invoice ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "document_date": "2019-08-24",
  • "invoice_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "description": "string",
  • "internal_notes": "string",
  • "invoice_number": "string",
  • "currency": "string",
  • "invoicing_channel": "string",
  • "bank_account_id": "9335a679-63ab-44d5-9de9-e01e0c5a1fff",
  • "our_reference": "string",
  • "your_reference": "string",
  • "sender_name": "string",
  • "sender_domicile": "string",
  • "sender_vat_number": "string",
  • "sender_address": {
    },
  • "recipient": {
    },
  • "recipient_invoicing_address": {
    },
  • "recipient_invoicing_email": "string",
  • "recipient_einvoice": {
    },
  • "recipient_vat_number": "string",
  • "bank_reference": "string",
  • "gross_amount": "string",
  • "vat_amount": "string",
  • "interest_rate": "string",
  • "locale": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ],
  • "status": "draft",
  • "sending_status": "string",
  • "rejection_code": "string",
  • "rejection_reason": "string",
  • "kind": "invoice",
  • "credited_sales_invoice_id": "8fdec0e4-3a29-4ed0-b4d6-d6af3836d63e",
  • "credit_reason": "string",
  • "unsettled_amount": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get credit note prefill data

Get pre-filled data for creating a credit note from an existing sales invoice

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

salesInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Original sales invoice ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "document_date": "2019-08-24",
  • "invoice_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "description": "string",
  • "internal_notes": "string",
  • "invoice_number": "string",
  • "currency": "string",
  • "invoicing_channel": "string",
  • "bank_account_id": "9335a679-63ab-44d5-9de9-e01e0c5a1fff",
  • "our_reference": "string",
  • "your_reference": "string",
  • "sender_name": "string",
  • "sender_domicile": "string",
  • "sender_vat_number": "string",
  • "sender_address": {
    },
  • "recipient": {
    },
  • "recipient_invoicing_address": {
    },
  • "recipient_invoicing_email": "string",
  • "recipient_einvoice": {
    },
  • "recipient_vat_number": "string",
  • "bank_reference": "string",
  • "gross_amount": "string",
  • "vat_amount": "string",
  • "interest_rate": "string",
  • "locale": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ],
  • "status": "draft",
  • "sending_status": "string",
  • "rejection_code": "string",
  • "rejection_reason": "string",
  • "kind": "invoice",
  • "credited_sales_invoice_id": "8fdec0e4-3a29-4ed0-b4d6-d6af3836d63e",
  • "credit_reason": "string",
  • "unsettled_amount": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get copy prefill data

Get pre-filled data for creating a copy of an existing sales invoice

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

salesInvoiceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Sales invoice ID to copy from

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "document_date": "2019-08-24",
  • "invoice_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "description": "string",
  • "internal_notes": "string",
  • "invoice_number": "string",
  • "currency": "string",
  • "invoicing_channel": "string",
  • "bank_account_id": "9335a679-63ab-44d5-9de9-e01e0c5a1fff",
  • "our_reference": "string",
  • "your_reference": "string",
  • "sender_name": "string",
  • "sender_domicile": "string",
  • "sender_vat_number": "string",
  • "sender_address": {
    },
  • "recipient": {
    },
  • "recipient_invoicing_address": {
    },
  • "recipient_invoicing_email": "string",
  • "recipient_einvoice": {
    },
  • "recipient_vat_number": "string",
  • "bank_reference": "string",
  • "gross_amount": "string",
  • "vat_amount": "string",
  • "interest_rate": "string",
  • "locale": "string",
  • "lines": [
    ],
  • "files": [
    ],
  • "tags": [
    ],
  • "status": "draft",
  • "sending_status": "string",
  • "rejection_code": "string",
  • "rejection_reason": "string",
  • "kind": "invoice",
  • "credited_sales_invoice_id": "8fdec0e4-3a29-4ed0-b4d6-d6af3836d63e",
  • "credit_reason": "string",
  • "unsettled_amount": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Settings

Settings management operations including listing and editing

Resolve settings

Resolve settings with optional company or party context. Settings are resolved in order: party scope > company scope > global scope.

Authorizations:
bearerAuth
query Parameters
company_id
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID for company-specific settings

party_id
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Party ID for party-specific settings (will resolve company_id if not provided)

namespace
string
Example: namespace=sales_invoice,purchase_invoice

Comma-separated list of namespaces to include

Responses

Response samples

Content type
application/json
{
  • "property1": null,
  • "property2": null
}

List tags

Retrieve tags for a company with optional search and pagination

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

query Parameters
query
string
Example: query=important

Search query (searches in tag names)

offset
integer [ 0 .. 9007199254740991 ]

Number of results to skip for pagination

limit
integer [ 1 .. 100 ]
Example: limit=100

Maximum number of results to return (default: 100)

Responses

Response samples

Content type
application/json
[
  • "string"
]

Settlements

Settlement operations for reconciling bank transactions with invoices

Create settlement between two documents

Create a settlement between any two document types (memo, purchase_invoice, sales_invoice, bank_transaction). This records that a specific amount has been settled between the two documents, updating the relevant unsettled_amount fields. Supports type-aware matching: incoming documents match incoming, outgoing match outgoing, and same-type documents require opposite signs (e.g., invoice and credit note). Memos without amount cannot be reconciled.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

Settlement creation data

document_a_id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

First document ID (memo, purchase_invoice, sales_invoice, or bank_transaction)

document_b_id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Second document ID (memo, purchase_invoice, sales_invoice, or bank_transaction)

amount
required
string^([1-9][0-9]*(\.[0-9]{1,8})?|0\.([1-9][0-9]{0...

Settlement amount (positive decimal string, must be > 0)

Responses

Request samples

Content type
application/json
{
  • "document_a_id": "f5f1b8a4-b413-4922-a4b9-1097ae15b1b0",
  • "document_b_id": "5755b0e6-dd6a-43e3-ae3e-2e974a49f8ff",
  • "amount": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "document_a_id": "f5f1b8a4-b413-4922-a4b9-1097ae15b1b0",
  • "document_b_id": "5755b0e6-dd6a-43e3-ae3e-2e974a49f8ff",
  • "amount": "string",
  • "updated_unsettled_amount_a": "string",
  • "updated_unsettled_amount_b": "string"
}

Delete (reject) settlement

Soft-delete (reject) a settlement. If the settlement has a linked voucher and the voucher is in a locked or closed fiscal period, returns 409 Conflict. Otherwise marks the settlement as rejected and, if present, voids the voucher. Document unsettled amounts are recalculated. See TECH-569.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

settlementId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Settlement ID

Responses

Response samples

Content type
application/json
{
  • "error": "Invalid input",
  • "debug": "Validation failed for field 'invoice_date'",
  • "timestamp": "2024-01-15T10:30:00Z"
}

VAT Classes

List VAT classes

Retrieve all active VAT classes (ALV-tunnisteet) from Netvisor standards. These are predefined codes used in Finnish accounting systems for VAT reporting and compliance.

Authorizations:
bearerAuth

Responses

Response samples

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

Vouchers

Voucher operations including listing, creation, and editing

List vouchers

List vouchers for a company with cursor-based pagination. Filters by status, date range, document type, and voucher number. All vouchers include their lines.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

query Parameters
status
string (VoucherStatus)
Enum: "valid" "voided"
Example: status=valid

Filter by voucher status

from_date
string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
Example: from_date=2024-01-01

Filter by posting date (from, inclusive)

to_date
string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
Example: to_date=2024-12-31

Filter by posting date (to, inclusive)

document_type
string (VoucherDocumentType)
Enum: "sales_invoice" "purchase_invoice" "bank_transaction" "memo" "settlement"
Example: document_type=sales_invoice

Filter by document type

document_id
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
Example: document_id=12345678-1234-4234-8234-123456789abc

Filter by source document ID (to find voucher for a specific document)

voucher_number
string non-empty
Example: voucher_number=SI-1000

Filter by voucher number

limit
integer [ 1 .. 100 ]
Example: limit=10

Maximum number of results to return (1-100)

cursor
string

Pagination cursor from previous response

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Create voucher

Create a new GL voucher for a given document. Each voucher is tied to exactly one document (sales invoice, purchase invoice, bank transaction, memo). Vouchers are created as valid and are locked via fiscal period locking. Vouchers can be voided but cannot be deleted. Vouchers that are not locked, can be updated. A document can have only one voucher.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

Request Body schema: application/json
required

Voucher creation data

document_id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Document ID - must exist and must not already have a voucher

posting_date
string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...

Posting date (YYYY-MM-DD). Defaults to document document_date if not provided. Must be inside a non-locked fiscal period, or no fiscal period must exist for the date.

currency
required
string
Value: "EUR"

Currency code

required
Array of objects >= 2 items

Voucher lines. Must have at least 2 lines. Lines must balance (sum of amounts = 0.00).

Responses

Request samples

Content type
application/json
{
  • "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6",
  • "posting_date": "2019-08-24",
  • "currency": "EUR",
  • "lines": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6",
  • "document_type": "sales_invoice",
  • "currency": "EUR",
  • "status": "valid",
  • "posting_date": "2019-08-24",
  • "lines": [
    ],
  • "voucher_number": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get voucher

Retrieve a specific GL voucher by ID with all its lines. Returns vouchers regardless of status (valid or voided).

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

voucherId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Voucher ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6",
  • "document_type": "sales_invoice",
  • "currency": "EUR",
  • "status": "valid",
  • "posting_date": "2019-08-24",
  • "lines": [
    ],
  • "voucher_number": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update voucher

Update an existing GL voucher. Vouchers can only be edited if they have status = "valid" and the voucher's posting_date falls within an unlocked fiscal period (fiscal period's lock_date is null or the voucher date is after the lock date). The endpoint updates both gl_voucher and gl_line tables in a single transaction, replacing all existing lines with the new lines. document_id cannot be changed.

Authorizations:
bearerAuth
path Parameters
companyId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Company ID

voucherId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Voucher ID

Request Body schema: application/json
required

Voucher update data

posting_date
string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...

Posting date (YYYY-MM-DD). If provided, must be inside an open/planned fiscal period and unlocked.

required
Array of objects >= 2 items

Voucher lines. Must have at least 2 lines. Lines must balance (sum of amounts = 0.00). All existing lines will be replaced.

Responses

Request samples

Content type
application/json
{
  • "posting_date": "2019-08-24",
  • "lines": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6",
  • "document_type": "sales_invoice",
  • "currency": "EUR",
  • "status": "valid",
  • "posting_date": "2019-08-24",
  • "lines": [
    ],
  • "voucher_number": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}