Vouchers

Vouchers represent financial documents in the system that can be linked to various entities such as documents, journal entries, and collections. They form a crucial part of the financial document management system.

Status Values

Voucher Status

| Value | Description | |——-|————-| | PENDING | Initial state, voucher awaiting processing | | DRAFT | Voucher is being worked on, can be modified | | ARCHIVED | Voucher has been archived and is no longer active | | BOOKED | Voucher has been posted to the accounting system | | DELETED | Voucher has been marked as deleted |

Document Types

Accounts Receivable Documents

| Value | Description | |——-|————-| | ARINV | AR Invoice - Customer invoice | | ARCRN | AR Credit Note - Customer credit note | | ARCIN | AR Cash Invoice - Customer cash invoice | | ARPIN | AR Proforma Invoice - Customer proforma invoice | | ARDEB | AR Debt Collection - Customer debt collection document |

Accounts Payable Documents

| Value | Description | |——-|————-| | APINV | AP Invoice - Supplier invoice | | APCRN | AP Credit Note - Supplier credit note | | RECPT | AP Receipt - Supplier receipt | | APCIN | AP Cash Invoice - Supplier cash invoice | | APPIN | AP Proforma Invoice - Supplier proforma invoice | | APDEB | AP Debt Collection - Supplier debt collection document |

Settlement Documents

| Value | Description | |——-|————-| | PAYSR | Payment Settlement Report | | SALSM | Sales Summary | | VATST | VAT Settlement - For payment of VAT | | VATRP | VAT Report - For reporting VAT |

Payroll Documents

| Value | Description | |——-|————-| | PRRUN | Payroll Run | | PRPAY | Payroll Payment List | | PRTAX | Payroll Tax Settlement |

Workflow Status

| Value | Description | |——-|————-| | IMAGE_PROCESSING | Document image is being processed and text extracted | | STARTING_WORKFLOW | Initial workflow setup is in progress | | CLASSIFICATION | Document type is being determined | | DATA_EXTRACTION | Relevant data is being extracted from the document | | WAITING_FOR_ANSWER | Workflow is paused waiting for user input | | DUPLICATE_CHECK | Checking for duplicate documents | | BOOKING | Document is being posted to the accounting system | | CANCELLED | Workflow has been cancelled | | COMPLETED | Workflow has completed successfully |

List Vouchers

GET /api/v2/vouchers

Retrieves a paginated list of vouchers based on specified filters.

Query Parameters

Parameter Type Description
client_account_id integer[] Filter by specific client account IDs
status string[] Filter by voucher status (see Voucher Status table above)
document_type string[] Filter by document type (see Document Types tables above)
document_status string[] Filter by document status
payment_status string[] Filter by payment status
document_date_from date Filter by document date range start (YYYY-MM-DD)
document_date_to date Filter by document date range end (YYYY-MM-DD)
due_date_from date Filter by due date range start (YYYY-MM-DD)
due_date_to date Filter by due date range end (YYYY-MM-DD)
business_partner_id integer[] Filter by business partner IDs
collection_id integer[] Filter by collection IDs
project_id integer[] Filter by project IDs
free_text string Search across voucher fields and related documents
has_project boolean Filter vouchers with/without projects
has_collection boolean Filter vouchers with/without collections
has_journal_entry boolean Filter vouchers with/without journal entries
has_document boolean Filter vouchers with/without documents
has_attachment boolean Filter vouchers with/without attachments
order_by string Sort field and direction (e.g., “created_at desc”)
with string[] Include related objects in response
page integer Page number for pagination (default: 1)
per_page integer Items per page (default: 100, max: 100)

Response Fields

Field Type Description
id integer Unique identifier
created_at datetime Creation timestamp
document_date date Date of the voucher document
status string Current status of the voucher (see Voucher Status table above)
collection_id integer ID of associated collection
project_id integer ID of associated project
workflow_status string Current workflow status (see Workflow Status table above)

The following related objects can be included using the with parameter:

  • attachments: Associated file attachments
  • documents: Linked commercial documents
  • document: Primary document
  • journal_entries: Associated journal entries
  • journal_entry: Primary journal entry
  • statements: Associated statements
  • statement: Primary statement
  • tasks: Related worker tasks
  • questions: Associated accounting questions
  • collection: Associated voucher collection
  • project: Associated project

Example Request

GET /api/v2/vouchers?status[]=PENDING&document_date_from=2024-01-01&with[]=documents&with[]=journal_entries

Example Response

{
  "items": [
    {
      "id": 1234,
      "created_at": "2024-01-15T10:30:00Z",
      "document_date": "2024-01-15",
      "status": "PENDING",
      "collection_id": 567,
      "project_id": 890,
      "workflow_status": "DATA_EXTRACTION",
      "documents": [
        {
          "id": 456,
          "type": "APINV",
          "status": "PENDING"
        }
      ],
      "journal_entries": [
        {
          "id": 789,
          "posting_date": "2024-01-15",
          "status": "DRAFT"
        }
      ]
    }
  ],
  "total": 45,
  "page": 1,
  "per_page": 100
}

Get Single Voucher

GET /api/v2/vouchers/{id}

Retrieves a specific voucher by ID.

Path Parameters

Parameter Type Description
id integer Voucher ID

Example Request

GET /api/v2/vouchers/1234?with[]=documents&with[]=journal_entries

Example Response

{
  "id": 1234,
  "created_at": "2024-01-15T10:30:00Z",
  "document_date": "2024-01-15",
  "status": "PENDING",
  "collection_id": 567,
  "project_id": 890,
  "workflow_status": "DATA_EXTRACTION",
  "documents": [
    {
      "id": 456,
      "type": "APINV",
      "status": "PENDING"
    }
  ],
  "journal_entries": [
    {
      "id": 789,
      "posting_date": "2024-01-15",
      "status": "DRAFT"
    }
  ]
}

Error Responses

Status Code Description
404 Voucher not found
403 No access to voucher

Endpoints

Method Endpoint Description
GET /vouchers List vouchers
GET /vouchers/{id} Get a single voucher
POST /vouchers/merge Merge multiple vouchers into one
POST /vouchers/split Split a multi-page voucher
GET /vouchers/{id}/statements List statements for a voucher
POST /vouchers/{id}/statements Create a statement for a voucher

Merge Vouchers

POST /api/v2/vouchers/merge

Merges multiple vouchers into a single PDF voucher. PDFs and images from the source vouchers are combined into one document. Non-PDF files (Word, Excel, etc.) are transferred as attachments on the merged voucher. The page order in the merged PDF follows the order of the voucher_ids array.

Request Body

Field Type Required Description
voucher_ids integer[] Yes List of voucher IDs to merge. Must contain at least 2 IDs. Order determines page order in the merged PDF
source_action string No What to do with source vouchers after merge. Default: NONE

Source Action Values

Value Description
NONE Keep source vouchers unchanged
ARCHIVE Archive the documents associated with the source vouchers
DELETE Delete the source vouchers. Fails if any source voucher has posted journal entries

Example Request

{
  "voucher_ids": [101, 102, 103],
  "source_action": "ARCHIVE"
}

Example Response (201 Created)

{
  "id": 200,
  "created_at": "2026-04-10T08:30:00Z",
  "document_date": "2026-04-10",
  "status": "PENDING",
  "collection_id": null,
  "project_id": null,
  "workflow_status": null
}

Error Responses

Status Description
400 voucher_ids missing, not a list, or contains fewer than 2 IDs
400 Invalid source_action value
400 Source vouchers belong to different client accounts
400 source_action is DELETE but a source voucher has posted journal entries
400 No PDF-able files found in the selected vouchers
403 No access to one of the specified vouchers
404 A voucher ID was not found

Split Voucher

POST /api/v2/vouchers/split

Splits a multi-page PDF voucher into multiple vouchers by page ranges. Each page range produces a new voucher. Pages are 1-indexed and ranges are inclusive. If the source voucher has a statement, it is copied to all new vouchers.

Request Body

Field Type Required Description
voucher_id integer Yes ID of the PDF voucher to split
page_ranges integer[][] Yes List of [start_page, end_page] pairs. Must contain at least 2 ranges. Pages are 1-indexed and inclusive
source_action string No What to do with the source voucher after split. Default: NONE

The source_action values are the same as for Merge Vouchers.

Example Request

{
  "voucher_id": 456,
  "page_ranges": [[1, 2], [3, 5], [6, 6]],
  "source_action": "DELETE"
}

Example Response (201 Created)

Returns an array of newly created vouchers, one per page range:

[
  {
    "id": 457,
    "created_at": "2026-04-10T09:00:00Z",
    "document_date": "2026-04-10",
    "status": "PENDING",
    "collection_id": null,
    "project_id": null,
    "workflow_status": null
  },
  {
    "id": 458,
    "created_at": "2026-04-10T09:00:00Z",
    "document_date": "2026-04-10",
    "status": "PENDING",
    "collection_id": null,
    "project_id": null,
    "workflow_status": null
  },
  {
    "id": 459,
    "created_at": "2026-04-10T09:00:00Z",
    "document_date": "2026-04-10",
    "status": "PENDING",
    "collection_id": null,
    "project_id": null,
    "workflow_status": null
  }
]

Error Responses

Status Description
400 voucher_id missing or not an integer
400 page_ranges missing, not a list, or contains fewer than 2 ranges
400 A page range is not a list of exactly 2 integers
400 Invalid source_action value
400 Voucher is not a PDF
400 Voucher has only one page
400 Page range is out of bounds
400 Start page is greater than end page in a range
400 Page ranges overlap
400 source_action is DELETE but voucher has posted journal entries
403 No access to the voucher
404 Voucher not found

Voucher Statements

Voucher statements capture user-provided metadata about a voucher, such as the expense purpose, item categories, payment method, and payor. They are used during the document processing workflow to enrich vouchers with accounting-relevant information. Creating or updating a statement can trigger automatic updates to the linked journal entry (e.g. setting the project dimension) and influence the document posting workflow.

List Voucher Statements

GET /api/v2/vouchers/{id}/statements

Returns a paginated list of statements for a specific voucher, ordered by creation date (newest first).

Path Parameters

Parameter Type Description
id integer Voucher ID

Query Parameters

Parameter Type Required Description
page integer No Page number (default: 1)
per_page integer No Items per page (default: 100)
with string No Include related resources (supported: created_by, payor, project, collection, tags)

Response

{
  "data": [
    {
      "id": 10,
      "created_by_id": 7,
      "created_at": "2026-04-10T09:15:00Z",
      "client_account_id": 7,
      "voucher_id": 1234,
      "voucher_category_id": 2,
      "item_categories": "ELECTRONICS,SOFTWARE_CLOUD_SERVICES",
      "purpose": "WORKPLACE_EQUIPMENT",
      "participant_information": null,
      "additional_information": "New laptop for development team",
      "payment_method": "BUSINESS_CARD",
      "payor_id": null,
      "project_id": 5,
      "collection_id": null
    }
  ],
  "meta": {
    "page": 1,
    "pages": 1,
    "per_page": 100,
    "records": 1
  }
}

Error Responses

Status Description
403 No access to the voucher’s client account
404 Voucher not found

Create Voucher Statement

POST /api/v2/vouchers/{id}/statements

Creates a new statement for a voucher. When a statement is created, the system may automatically update the linked journal entry’s project dimension and manage document posting workflow tasks.

Path Parameters

Parameter Type Description
id integer Voucher ID

Request Body

Field Type Required Description
voucher_category_id integer No Voucher category ID
item_categories string No Comma-separated item categories (see Item Categories below)
purpose string No Expense purpose (see Purpose Values below)
participant_information string No Details about event participants (max 500 characters)
additional_information string No Additional notes (max 500 characters)
payment_method string No How the expense was paid (see Payment Methods below)
payor_id integer No Business partner ID of the person who paid
project_id integer No Project to associate with this expense
collection_id integer No Voucher collection ID
tags array No Array of tag objects with id field, e.g. [{"id": 1}, {"id": 2}]

Example Request

{
  "item_categories": "ELECTRONICS",
  "purpose": "WORKPLACE_EQUIPMENT",
  "payment_method": "BUSINESS_CARD",
  "project_id": 5,
  "additional_information": "New laptop for development team",
  "tags": [{"id": 1}]
}

Response (201 Created)

Returns the created statement object (same shape as list response items).

Error Responses

Status Description
400 Invalid item category, purpose, or tag validation failure
403 No access to the voucher’s client account
404 Voucher not found

Statement Attributes

Attribute Type Description
id integer Unique identifier (read-only)
created_by_id integer User who created the statement (read-only)
created_at datetime Creation timestamp (read-only)
client_account_id integer The client account ID
voucher_id integer The voucher this statement belongs to
voucher_category_id integer Voucher category reference
item_categories string Comma-separated list of item category codes
purpose string Expense purpose code
participant_information string Details about participants (for entertainment/events)
additional_information string Free-text notes
payment_method string How the expense was paid
payor_id integer Business partner ID of the payor
project_id integer Associated project
collection_id integer Associated voucher collection

Relationships

Relationship Description
created_by The user who created the statement
payor The business partner who paid
project The associated project
collection The associated voucher collection
tags Tags attached to the statement

Payment Methods

Value Description
PRIVATE_ACCOUNT Paid from a personal bank account
PRIVATE_CARD Paid with a personal card
BUSINESS_ACCOUNT Paid from the company bank account
BUSINESS_CARD Paid with a company card

Purpose Values

Value Description
MAINTENANCE_OF_OWN_ASSETS Maintenance or repair of company assets
BUILD_PHYSICAL_PRODUCT Materials for building physical products
USED_IN_CUSTOMER_PROJECTS Expense related to customer project work
FOR_RESALE Goods purchased for resale
WORKPLACE_EQUIPMENT Office and workplace equipment
INCREASE_SALES Marketing, sales, or promotional expenses
INTERNAL_EMPLOYEE_EVENTS Internal events, team activities
OVERTIME_TRAVEL_INCONVENIENT_WORKING_HOURS Travel, overtime, or inconvenient working hours

Item Categories

Common item category values include: ELECTRONICS, FOOD, FUEL, VEHICLES, BROADBAND_TELEPHONY, SOFTWARE_CLOUD_SERVICES, OFFICE_SUPPLIES, MARKETING, TRAVEL, ACCOMMODATION, CLOTHING, CLEANING, INSURANCE, RENT, PROFESSIONAL_SERVICES, EQUIPMENT, and others. Multiple categories can be combined with commas.