Laravel (0.0.1)

Download OpenAPI specification:

Auth

Confirm the current session is authenticated and the token is valid

Returns {"status": "OK"} when the user is logged in. Aborts with 401 otherwise.

Responses

Response samples

Content type
application/json
{
  • "status": "OK"
}

Load the authenticated mechanic's shop, sales states, event types, and today's calendar resource

Used to bootstrap the mechanic work view with all data needed to display the daily schedule.

Responses

Response samples

Content type
application/json
{ }

Load the authenticated mechanic's shop and schedule data for a specific day

Currently returns {"status": "OK"} — data population is pending implementation.

path Parameters
day
required
string

Date in YYYY-MM-DD format.

Responses

Response samples

Content type
application/json
{
  • "status": "OK"
}

Open a new punch-in time-stamp event for the authenticated mechanic

Returns 422 if the mechanic already has an open punch-in without a closing punch-out.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "shop_id": 0,
  • "finance_department_id": 0,
  • "finance_sequence": 0,
  • "finance_car_id": 0,
  • "type_id": 0,
  • "employee_id": 0,
  • "group_id": 0,
  • "subgroup_id": 0,
  • "delivery": 0,
  • "allday": 0,
  • "date": "2019-08-24T14:15:22Z",
  • "from": "2019-08-24T14:15:22Z",
  • "to": "2019-08-24T14:15:22Z",
  • "subject": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": 0,
  • "updated_by": 0,
  • "deleted_at": "2019-08-24T14:15:22Z",
  • "deleted_by": 0
}

Close the authenticated mechanic's open punch-in by recording the current time as `to`

Returns 422 when no open punch-in exists.

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "shop_id": 0,
  • "finance_department_id": 0,
  • "finance_sequence": 0,
  • "finance_car_id": 0,
  • "type_id": 0,
  • "employee_id": 0,
  • "group_id": 0,
  • "subgroup_id": 0,
  • "delivery": 0,
  • "allday": 0,
  • "date": "2019-08-24T14:15:22Z",
  • "from": "2019-08-24T14:15:22Z",
  • "to": "2019-08-24T14:15:22Z",
  • "subject": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": 0,
  • "updated_by": 0,
  • "deleted_at": "2019-08-24T14:15:22Z",
  • "deleted_by": 0
}

Return punch-in/out records for the authenticated mechanic grouped by day with summed hours

Defaults to the current calendar month. Supply a YYYY-MM segment to query any past month.

path Parameters
month
required
string or null
Default: null

Optional. Optional month in YYYY-MM format; defaults to current month.

Responses

Response samples

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

Update the authenticated user's display name, email address, and optionally their password

Password change requires both password and password_confirmation fields. The email field must remain unique across all users.

Responses

Response samples

Content type
application/json
{
  • "status": "OK",
  • "user": {
    }
}

Calendar events for the authenticated mechanic within a date range

Returns all non-punch calendar events assigned to the authenticated user's employee_id, formatted for FullCalendar display.

path Parameters
start
required
string

Start date in YYYY-MM-DD format

end
required
string

End date in YYYY-MM-DD format

Responses

Response samples

Content type
application/json
[
  • { }
]

Calendar

List resources, event types, sales states, and shop configuration for the calendar

Returns all data required to initialise the calendar view for a given shop: the shop record, available sales-state types, unlocked event types scoped to the shop (or global), and a list of calendar resources (employees, subgroups, and rental cars) with their current work-hour totals and business-hours schedules.

path Parameters
id
required
integer

The shop ID to load resources for

Responses

Response samples

Content type
application/json
{
  • "shop": { },
  • "states": [
    ],
  • "types": [
    ],
  • "resources": [
    ]
}

Create a new calendar event

Creates a new calendar event with the specified properties including date, time, and resource assignment. Validates input data, resolves group and employee/subgroup from the resource string, and dispatches a broadcast event to notify connected clients about the new event.

Request Body schema: application/json
required
resource
required
string
id
required
integer
shop_id
required
integer
from
required
string <date-time>
to
required
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "resource": "string",
  • "id": 0,
  • "shop_id": 0,
  • "from": "2019-08-24T14:15:22Z",
  • "to": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
201

List calendar events for a specific shop within a date range

Retrieves all calendar events and punch-ins for the specified shop within the given date range. Events are filtered by type and formatted for FullCalendar display. Punch-ins are returned as EventsCollection-wrapped records.

path Parameters
shop_id
required
integer

The ID of the shop to retrieve events for

startdate
required
string

The start date in YYYY-MM-DD format

enddate
required
string

The end date in YYYY-MM-DD format

Responses

Response samples

Content type
application/json
{
  • "events": [
    ],
  • "punchins": [
    ]
}

Update an existing calendar event

Updates the properties of an existing calendar event including time, date, and resource assignment. Dispatches broadcast events to notify connected clients about the removal of the old event and creation of the updated event.

path Parameters
id
required
integer

The ID of the event to update

Request Body schema: application/json
allDay
string
Default: 0
from
string
to
string
resource
string

Responses

Request samples

Content type
application/json
{
  • "allDay": 0,
  • "from": "string",
  • "to": "string",
  • "resource": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "shop_id": "string",
  • "type_id": "string",
  • "employee_id": "string",
  • "group_id": "string",
  • "subgroup_id": "string",
  • "finance_department_id": "string",
  • "finance_sequence": "string",
  • "finance_car_id": "string",
  • "delivery": "string",
  • "allday": "string",
  • "date": "string",
  • "from": "string",
  • "to": "string",
  • "subject": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Delete a calendar event

Removes a calendar event from the system and dispatches broadcast events to notify connected clients about the removal. Also triggers a resource availability update for the event date.

path Parameters
id
required
integer

The ID of the event to delete

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "shop_id": "string",
  • "type_id": "string",
  • "employee_id": "string",
  • "group_id": "string",
  • "subgroup_id": "string",
  • "finance_department_id": "string",
  • "finance_sequence": "string",
  • "finance_car_id": "string",
  • "delivery": "string",
  • "allday": "string",
  • "date": "string",
  • "from": "string",
  • "to": "string",
  • "subject": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Create a copy of an existing calendar event

Duplicates an existing calendar event by creating a new event with identical properties. Dispatches a broadcast event to notify connected clients about the newly created copy.

path Parameters
id
required
integer

The ID of the event to copy

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "shop_id": "string",
  • "type_id": "string",
  • "employee_id": "string",
  • "group_id": "string",
  • "subgroup_id": "string",
  • "finance_department_id": "string",
  • "finance_sequence": "string",
  • "finance_car_id": "string",
  • "delivery": "string",
  • "allday": "string",
  • "date": "string",
  • "from": "string",
  • "to": "string",
  • "subject": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Move a calendar event by a specified number of days

Shifts an existing calendar event forward or backward by the specified number of days. Updates all date-related fields (date, from, to) and dispatches a broadcast event notifying connected clients about the removal of the event from its original position.

path Parameters
id
required
integer

The ID of the event to move

days
required
integer

The number of days to move the event (positive for forward, negative for backward)

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "shop_id": "string",
  • "type_id": "string",
  • "employee_id": "string",
  • "group_id": "string",
  • "subgroup_id": "string",
  • "finance_department_id": "string",
  • "finance_sequence": "string",
  • "finance_car_id": "string",
  • "delivery": "string",
  • "allday": "string",
  • "date": "string",
  • "from": "string",
  • "to": "string",
  • "subject": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

List all calendar groups for the active shop

Returns all non-deleted calendar group records that are associated with the authenticated user's selected shop, ordered by the ordering column.

Responses

Response samples

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

Create a calendar group

Validates the request and creates a new calendar group record scoped to the authenticated user's selected shop.

Request Body schema: application/json
required
name
required
string <= 255 characters
active
boolean or null
finance_department_id
integer or null
ordering
integer or null
is_rental_cars
boolean or null
employees
Array of strings or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "active": true,
  • "finance_department_id": 0,
  • "ordering": 0,
  • "is_rental_cars": true,
  • "employees": [
    ]
}

Response samples

Content type
application/json
201

Get a calendar group by ID

Retrieves a single calendar group record by its primary key.

path Parameters
id
required
integer

The ID of the calendar group to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "active": "string",
  • "shop_id": "string",
  • "name": "string",
  • "finance_department_id": "string",
  • "ordering": "string",
  • "is_rental_cars": "string",
  • "employees": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Update a calendar group

Validates the request and applies the provided fields to the specified calendar group record.

path Parameters
id
required
integer

The ID of the calendar group to update

Request Body schema: application/json
name
string <= 255 characters
active
boolean or null
finance_department_id
integer or null
ordering
integer or null
is_rental_cars
boolean or null
employees
Array of strings or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "active": true,
  • "finance_department_id": 0,
  • "ordering": 0,
  • "is_rental_cars": true,
  • "employees": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "active": "string",
  • "shop_id": "string",
  • "name": "string",
  • "finance_department_id": "string",
  • "ordering": "string",
  • "is_rental_cars": "string",
  • "employees": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Delete a calendar group

Soft-deletes the specified calendar group record.

path Parameters
id
required
integer

The ID of the calendar group to delete

Responses

Response samples

Content type
application/json
204

List all calendar event types for the active shop

Returns all non-deleted calendar event type records associated with the authenticated user's selected shop, ordered by name.

Responses

Response samples

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

Create a calendar event type

Validates the request and creates a new calendar event type record scoped to the authenticated user's selected shop.

Request Body schema: application/json
required
name
required
string <= 255 characters
active
boolean or null
description
string or null
exclude
string or null
backgroundcolor
string or null <= 20 characters
textcolor
string or null <= 20 characters
paid
boolean or null
unpaid
boolean or null
is_free
boolean or null
is_vacation
boolean or null
is_sick
boolean or null
is_absence
boolean or null
is_locked
boolean or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "active": true,
  • "description": "string",
  • "exclude": "string",
  • "backgroundcolor": "string",
  • "textcolor": "string",
  • "paid": true,
  • "unpaid": true,
  • "is_free": true,
  • "is_vacation": true,
  • "is_sick": true,
  • "is_absence": true,
  • "is_locked": true
}

Response samples

Content type
application/json
201

Get a calendar event type by ID

Retrieves a single calendar event type record by its primary key.

path Parameters
id
required
integer

The ID of the event type to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "shop_id": "string",
  • "active": "string",
  • "name": "string",
  • "description": "string",
  • "exclude": "string",
  • "backgroundcolor": "string",
  • "textcolor": "string",
  • "paid": "string",
  • "unpaid": "string",
  • "is_free": "string",
  • "is_vacation": "string",
  • "is_sick": "string",
  • "is_absence": "string",
  • "is_locked": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Update a calendar event type

Validates the request and applies the provided fields to the specified calendar event type record.

path Parameters
id
required
integer

The ID of the event type to update

Request Body schema: application/json
name
string <= 255 characters
active
boolean or null
description
string or null
exclude
string or null
backgroundcolor
string or null <= 20 characters
textcolor
string or null <= 20 characters
paid
boolean or null
unpaid
boolean or null
is_free
boolean or null
is_vacation
boolean or null
is_sick
boolean or null
is_absence
boolean or null
is_locked
boolean or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "active": true,
  • "description": "string",
  • "exclude": "string",
  • "backgroundcolor": "string",
  • "textcolor": "string",
  • "paid": true,
  • "unpaid": true,
  • "is_free": true,
  • "is_vacation": true,
  • "is_sick": true,
  • "is_absence": true,
  • "is_locked": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "shop_id": "string",
  • "active": "string",
  • "name": "string",
  • "description": "string",
  • "exclude": "string",
  • "backgroundcolor": "string",
  • "textcolor": "string",
  • "paid": "string",
  • "unpaid": "string",
  • "is_free": "string",
  • "is_vacation": "string",
  • "is_sick": "string",
  • "is_absence": "string",
  • "is_locked": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Delete a calendar event type

Soft-deletes the specified calendar event type record.

path Parameters
id
required
integer

The ID of the event type to delete

Responses

Response samples

Content type
application/json
204

Cars

Create or update a car rental record

Creates a new rental record for a car or updates an existing one. Returns the car resource with its associated vehicle information.

path Parameters
id
required
integer

The ID of the car to create/update a rental for

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "hash": "string",
  • "plate": "string",
  • "vin": "string",
  • "plate_type": "string",
  • "country": "string",
  • "vehicle_id": "string",
  • "registration_status": "string",
  • "last_insurance_company": "string",
  • "registration_status_updated_date": "string",
  • "first_registration_date": "string",
  • "expire_date": "string",
  • "status_updated_date": "string",
  • "last_inspection_date": "string",
  • "last_inspection_result": "string",
  • "last_inspection_odometer": "string",
  • "next_inspection_date": "string",
  • "leasing_period_start": "string",
  • "leasing_period_end": "string",
  • "external_id": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "vehicle": {
    },
  • "comments": {
    }
}

List comments for a car

Returns all non-deleted comments for the given car, ordered oldest first.

path Parameters
id
required
integer

Car ID

Responses

Response samples

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

Add a comment to a car

Creates a new comment record for the given car, scoped to the authenticated user's shop. Comment text is deduplicated via the Texts table.

path Parameters
id
required
integer

Car ID

Request Body schema: application/json
required
text
required
string <= 5000 characters

Responses

Request samples

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

Response samples

Content type
application/json
201

Delete a car comment

Soft-deletes the given comment. Returns 403 if the comment does not belong to the authenticated user's shop.

path Parameters
id
required
integer

Car ID

commentId
required
integer

Comment ID

Responses

Response samples

Content type
application/json
204

Get vehicle makes (brands)

Retrieves a list of vehicle makes/brands, optionally filtered by IDs. Returns an array of makes with their ID, name, alias, and vehicles count.

query Parameters
ids
string

Responses

Response samples

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

Get vehicle models for specific makes

Retrieves a list of vehicle models filtered by make IDs. Returns an array of models with their ID, name, alias, and vehicles count.

query Parameters
ids
string

Responses

Response samples

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

Get vehicle versions for specific models

Retrieves a list of distinct vehicle versions filtered by model IDs. Returns an array of version entries where id and version both hold the version string.

query Parameters
ids
string

Responses

Response samples

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

Look up car by license plate

Retrieves car information by searching for a specific license plate in a given country. Uses the CarService to perform the lookup and returns the car details if found.

path Parameters
country
required
string

Two-letter country code (ISO 3166-1 alpha-2)

plate
required
string

The license plate number to search for

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "hash": "string",
  • "plate": "string",
  • "vin": "string",
  • "plate_type": "string",
  • "country": "string",
  • "vehicle_id": 0,
  • "registration_status": "string",
  • "last_insurance_company": "string",
  • "registration_status_updated_date": "2019-08-24",
  • "first_registration_date": "2019-08-24",
  • "expire_date": "2019-08-24",
  • "status_updated_date": "2019-08-24",
  • "last_inspection_date": "2019-08-24",
  • "last_inspection_result": "string",
  • "last_inspection_odometer": 0,
  • "next_inspection_date": "2019-08-24",
  • "leasing_period_start": "2019-08-24",
  • "leasing_period_end": "2019-08-24",
  • "external_id": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": 0,
  • "updated_by": 0,
  • "deleted_at": "string",
  • "deleted_by": 0
}

Look up car by VIN number

Retrieves car information by searching for a specific VIN (Vehicle Identification Number) in a given country. Uses the CarService to perform the lookup and returns the car details if found.

path Parameters
country
required
string

Two-letter country code (ISO 3166-1 alpha-2)

vin
required
string

The Vehicle Identification Number to search for

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "hash": "string",
  • "plate": "string",
  • "vin": "string",
  • "plate_type": "string",
  • "country": "string",
  • "vehicle_id": 0,
  • "registration_status": "string",
  • "last_insurance_company": "string",
  • "registration_status_updated_date": "2019-08-24",
  • "first_registration_date": "2019-08-24",
  • "expire_date": "2019-08-24",
  • "status_updated_date": "2019-08-24",
  • "last_inspection_date": "2019-08-24",
  • "last_inspection_result": "string",
  • "last_inspection_odometer": 0,
  • "next_inspection_date": "2019-08-24",
  • "leasing_period_start": "2019-08-24",
  • "leasing_period_end": "2019-08-24",
  • "external_id": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": 0,
  • "updated_by": 0,
  • "deleted_at": "string",
  • "deleted_by": 0
}

Get vehicle inspections by vehicle ID

Retrieves all inspection records for a specific vehicle. Returns a collection of inspection records with their details.

path Parameters
vehicle_id
required
integer

The ID of the vehicle to retrieve inspections for

Responses

Response samples

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

Get vehicle taxes by vehicle ID

Retrieves all tax records for a specific vehicle. Returns a collection of tax records with their details and associated tax type.

path Parameters
vehicle_id
required
integer

The ID of the vehicle to retrieve taxes for

Responses

Response samples

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

Get car details by ID

Retrieves detailed information about a specific car by its ID. Returns the car record with its associated vehicle information.

path Parameters
id
required
integer

The ID of the car to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "hash": "string",
  • "plate": "string",
  • "vin": "string",
  • "plate_type": "string",
  • "country": "string",
  • "vehicle_id": "string",
  • "registration_status": "string",
  • "last_insurance_company": "string",
  • "registration_status_updated_date": "string",
  • "first_registration_date": "string",
  • "expire_date": "string",
  • "status_updated_date": "string",
  • "last_inspection_date": "string",
  • "last_inspection_result": "string",
  • "last_inspection_odometer": "string",
  • "next_inspection_date": "string",
  • "leasing_period_start": "string",
  • "leasing_period_end": "string",
  • "external_id": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "vehicle": {
    },
  • "comments": {
    }
}

Finance

List all customers

Returns every customer record in the system.

Responses

Response samples

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

Create a new customer record

Creates or updates the customer by email address, then creates the delivery address. Returns the created customer with its address loaded.

Request Body schema: application/json
required
required
object
required
object

Responses

Request samples

Content type
application/json
{
  • "customer": {
    },
  • "address": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "string",
  • "type_id": "string",
  • "group_id": "string",
  • "pricegroup_id": "string",
  • "address_id": "string",
  • "default_company_no": "string",
  • "default_company_gln": "string",
  • "default_currency_id": "string",
  • "default_vat_id": "string",
  • "default_vat_zone_id": "string",
  • "default_paymentterms_id": "string",
  • "default_creditlimit": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "address": "string"
}

Search customers by name, phone, or email

At least one of name, phone, or email must be provided. Returns 404 when no matching customers are found.

query Parameters
phone
string

Responses

Response samples

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

List all customer types with their groups and pricegroups

Returns all active customer types with nested groups and their pricegroups.

Responses

Response samples

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

Check whether a customer exists by email address

Returns {"exists": true} when a customer with the given email is found, {"exists": false} otherwise.

Request Body schema: application/json
email
string

Responses

Request samples

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

Response samples

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

Create a new customer type

Request Body schema: application/json
required
name
required
string
default
boolean
active
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "default": true,
  • "active": true
}

Response samples

Content type
application/json
201

Update an existing customer type

Request Body schema: application/json
required
id
required
integer
name
required
string
default
boolean
active
boolean

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "default": true,
  • "active": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "default": "string",
  • "active": "string",
  • "lastused_at": "string",
  • "customers_groups_id": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "groups": [
    ]
}

Create a new customer group

Request Body schema: application/json
required
name
required
string
default
boolean
active
boolean
customers_types_id
integer
account_id
integer
layout_id
integer

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "default": true,
  • "active": true,
  • "customers_types_id": 0,
  • "account_id": 0,
  • "layout_id": 0
}

Response samples

Content type
application/json
201

Update an existing customer group

Request Body schema: application/json
required
id
required
integer
name
required
string
default
boolean
active
boolean
customers_types_id
integer
account_id
integer
layout_id
integer

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "default": true,
  • "active": true,
  • "customers_types_id": 0,
  • "account_id": 0,
  • "layout_id": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "default": "string",
  • "active": "string",
  • "lastused_at": "string",
  • "customers_types_id": "string",
  • "customers_pricegroups_id": "string",
  • "account_id": "string",
  • "layout_id": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "pricegroups": [
    ]
}

Create a new customer price group

Request Body schema: application/json
required
name
required
string
default
boolean
active
boolean
customers_groups_id
integer

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "default": true,
  • "active": true,
  • "customers_groups_id": 0
}

Response samples

Content type
application/json
201

Update an existing customer price group

Request Body schema: application/json
required
id
required
integer
name
required
string
default
boolean
active
boolean
customers_groups_id
integer

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "default": true,
  • "active": true,
  • "customers_groups_id": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "default": "string",
  • "active": "string",
  • "lastused_at": "string",
  • "customers_groups_id": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Retrieve a single customer delivery address by its primary key

path Parameters
id
required
integer

The address primary key.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "customers_id": 0,
  • "hash": "string",
  • "lastused_at": "string",
  • "name": "string",
  • "att": "string",
  • "address": "string",
  • "zip": "string",
  • "city": "string",
  • "country_id": 0,
  • "insurances_id": 0,
  • "text_id": 0,
  • "company_no": "string",
  • "company_gln": "string",
  • "email_general": "string",
  • "email_offer": "string",
  • "email_order": "string",
  • "email_invoice": "string",
  • "email_creditmemo": "string",
  • "email_statement": "string",
  • "phone": "string",
  • "phone2": "string",
  • "mobile": "string",
  • "fax": "string",
  • "paymentterms_id": 0,
  • "currency_id": 0,
  • "vat_id": 0,
  • "vat_zone_id": 0,
  • "creditlimit": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": 0,
  • "updated_by": 0,
  • "deleted_at": "string",
  • "deleted_by": 0
}

Find or create a customer address by hash, returning the matching or new record

Request Body schema: application/json
required
customers_id
required
integer
name
required
string
att
string or null
address
string or null
zip
string or null
city
string or null
country_id
required
integer
email_general
string or null <email>
email_offer
string or null <email>
email_order
string or null <email>
email_invoice
string or null <email>
email_creditmemo
string or null <email>
email_statement
string or null <email>
phone
string or null
phone2
string or null
mobile
string or null
fax
string or null

Responses

Request samples

Content type
application/json
{
  • "customers_id": 0,
  • "name": "string",
  • "att": "string",
  • "address": "string",
  • "zip": "string",
  • "city": "string",
  • "country_id": 0,
  • "email_general": "user@example.com",
  • "email_offer": "user@example.com",
  • "email_order": "user@example.com",
  • "email_invoice": "user@example.com",
  • "email_creditmemo": "user@example.com",
  • "email_statement": "user@example.com",
  • "phone": "string",
  • "phone2": "string",
  • "mobile": "string",
  • "fax": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "customers_id": 0,
  • "hash": "string",
  • "lastused_at": "string",
  • "name": "string",
  • "att": "string",
  • "address": "string",
  • "zip": "string",
  • "city": "string",
  • "country_id": 0,
  • "insurances_id": 0,
  • "text_id": 0,
  • "company_no": "string",
  • "company_gln": "string",
  • "email_general": "string",
  • "email_offer": "string",
  • "email_order": "string",
  • "email_invoice": "string",
  • "email_creditmemo": "string",
  • "email_statement": "string",
  • "phone": "string",
  • "phone2": "string",
  • "mobile": "string",
  • "fax": "string",
  • "paymentterms_id": 0,
  • "currency_id": 0,
  • "vat_id": 0,
  • "vat_zone_id": 0,
  • "creditlimit": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": 0,
  • "updated_by": 0,
  • "deleted_at": "string",
  • "deleted_by": 0
}

Get sales history for a customer

Returns all offers, orders, invoices, and credit memos for the given customer, sorted by date descending.

path Parameters
id
required
integer

Responses

Response samples

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

Get balance summary and postings for a customer

Returns the aggregate balance and all individual posting lines, sorted by posting date descending.

path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "aggregate": [
    ],
  • "postings": {
    }
}

Get vehicles associated with a customer

Returns all unique cars linked to the customer via sales documents, sorted by latest first.

path Parameters
id
required
integer

Responses

Response samples

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

List comments for a customer

Returns all non-deleted comments for the given customer, ordered oldest first.

path Parameters
id
required
integer

Customer ID

Responses

Response samples

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

Add a comment to a customer

Creates a new comment record for the given customer, scoped to the authenticated user's shop. Comment text is deduplicated via the Texts table.

path Parameters
id
required
integer

Customer ID

Request Body schema: application/json
required
text
required
string <= 5000 characters

Responses

Request samples

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

Response samples

Content type
application/json
201

Delete a customer comment

Soft-deletes the given comment. Returns 403 if the comment does not belong to the authenticated user's shop.

path Parameters
id
required
integer

Customer ID

commentId
required
integer

Comment ID

Responses

Response samples

Content type
application/json
204

List upcoming deliveries with a return date on or after today

Sorted ascending by return date. Returns 404 when no upcoming deliveries are found.

Responses

Response samples

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

Search for sales documents by plate, VIN, sequence, invoice number, total price, or phone

All search parameters are optional; omitting all of them returns all documents.

Request Body schema: application/json
sequence
string
Default: false
invoice_sequence
string
Default: false
price_total_vat
string
Default: false

Responses

Request samples

Content type
application/json
{
  • "sequence": false,
  • "invoice_sequence": false,
  • "price_total_vat": false
}

Response samples

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

Create a new offer or order

Creates a sales document (offer or order depending on the finance.start_as_order setting) with the next available sequence number.

Request Body schema: application/json
required
car_id
required
integer
customer_id
required
integer
address_id
required
integer
finance_department_id
required
integer

Responses

Request samples

Content type
application/json
{
  • "car_id": 0,
  • "customer_id": 0,
  • "address_id": 0,
  • "finance_department_id": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "sequence": "string",
  • "shop_id": "string",
  • "customer_id": "string",
  • "address_id": "string",
  • "invoiced_customer_id": "string",
  • "invoiced_address_id": "string",
  • "responsible_employee_id": "string",
  • "car_id": "string",
  • "odometer": "string",
  • "status_id": "string",
  • "finance_department_id": "string",
  • "order_date": "string",
  • "invoice_date": "string",
  • "invoice_sequence": "string",
  • "delivery_at": "string",
  • "return_at": "string",
  • "requisition_no": "string",
  • "is_deactivated": "string",
  • "is_closed": "string",
  • "is_internal": "string",
  • "is_warranty": "string",
  • "is_claim": "string",
  • "priceIncDiscountTotal": "string",
  • "priceIncDiscountTotalVat": "string",
  • "vatTotal": "string",
  • "discount": "string",
  • "discountPct": "string",
  • "type_name": "string",
  • "model": "string",
  • "reset_lines": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "type": "string",
  • "car": "string",
  • "department": "string",
  • "shop": "string",
  • "customer": "string",
  • "address": "string",
  • "invoiced_customer": "string",
  • "invoiced_address": "string",
  • "states": "string",
  • "lines": "string"
}

Retrieve a single offer, order, invoice, or credit memo by sequence number

Returns 404 when no document exists for the given sequence.

path Parameters
sequence
required
string

The unique sequence number of the sales document.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "sequence": "string",
  • "shop_id": "string",
  • "customer_id": "string",
  • "address_id": "string",
  • "invoiced_customer_id": "string",
  • "invoiced_address_id": "string",
  • "responsible_employee_id": "string",
  • "car_id": "string",
  • "odometer": "string",
  • "status_id": "string",
  • "finance_department_id": "string",
  • "order_date": "string",
  • "invoice_date": "string",
  • "invoice_sequence": "string",
  • "delivery_at": "string",
  • "return_at": "string",
  • "requisition_no": "string",
  • "is_deactivated": "string",
  • "is_closed": "string",
  • "is_internal": "string",
  • "is_warranty": "string",
  • "is_claim": "string",
  • "priceIncDiscountTotal": "string",
  • "priceIncDiscountTotalVat": "string",
  • "vatTotal": "string",
  • "discount": "string",
  • "discountPct": "string",
  • "type_name": "string",
  • "model": "string",
  • "reset_lines": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "type": "string",
  • "car": "string",
  • "department": "string",
  • "shop": "string",
  • "customer": "string",
  • "address": "string",
  • "invoiced_customer": "string",
  • "invoiced_address": "string",
  • "states": "string",
  • "lines": "string"
}

Update an offer, order, invoice, or credit memo by sequence number

Dispatches integration and calendar jobs after saving. Returns 404 when no document exists for the given sequence.

path Parameters
sequence
required
string

The unique sequence number of the sales document.

Request Body schema: application/json
car_id
integer
customer_id
integer
address_id
integer
invoiced_customer_id
integer
invoiced_address_id
integer
responsible_employee_id
integer
status_id
integer
requisition_no
integer
finance_department_id
integer
delivery_at
string
return_at
string
is_deactivated
integer
is_internal
integer
is_warranty
integer
is_claim
integer
odometer
integer or null >= 0

Responses

Request samples

Content type
application/json
{
  • "car_id": 0,
  • "customer_id": 0,
  • "address_id": 0,
  • "invoiced_customer_id": 0,
  • "invoiced_address_id": 0,
  • "responsible_employee_id": 0,
  • "status_id": 0,
  • "requisition_no": 0,
  • "finance_department_id": 0,
  • "delivery_at": "string",
  • "return_at": "string",
  • "is_deactivated": 0,
  • "is_internal": 0,
  • "is_warranty": 0,
  • "is_claim": 0,
  • "odometer": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "sequence": "string",
  • "shop_id": "string",
  • "customer_id": "string",
  • "address_id": "string",
  • "invoiced_customer_id": "string",
  • "invoiced_address_id": "string",
  • "responsible_employee_id": "string",
  • "car_id": "string",
  • "odometer": "string",
  • "status_id": "string",
  • "finance_department_id": "string",
  • "order_date": "string",
  • "invoice_date": "string",
  • "invoice_sequence": "string",
  • "delivery_at": "string",
  • "return_at": "string",
  • "requisition_no": "string",
  • "is_deactivated": "string",
  • "is_closed": "string",
  • "is_internal": "string",
  • "is_warranty": "string",
  • "is_claim": "string",
  • "priceIncDiscountTotal": "string",
  • "priceIncDiscountTotalVat": "string",
  • "vatTotal": "string",
  • "discount": "string",
  • "discountPct": "string",
  • "type_name": "string",
  • "model": "string",
  • "reset_lines": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "type": "string",
  • "car": "string",
  • "department": "string",
  • "shop": "string",
  • "customer": "string",
  • "address": "string",
  • "invoiced_customer": "string",
  • "invoiced_address": "string",
  • "states": "string",
  • "lines": "string"
}

Update line items on an offer or order by sequence number

Recalculates pricing after updating lines. Dispatches integration jobs after saving. Returns 404 when the document, customer pricegroup, or invoiced customer is not found.

path Parameters
sequence
required
string

The unique sequence number of the sales document.

Request Body schema: application/json
Array of objects

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": "string",
  • "sequence": "string",
  • "shop_id": "string",
  • "customer_id": "string",
  • "address_id": "string",
  • "invoiced_customer_id": "string",
  • "invoiced_address_id": "string",
  • "responsible_employee_id": "string",
  • "car_id": "string",
  • "odometer": "string",
  • "status_id": "string",
  • "finance_department_id": "string",
  • "order_date": "string",
  • "invoice_date": "string",
  • "invoice_sequence": "string",
  • "delivery_at": "string",
  • "return_at": "string",
  • "requisition_no": "string",
  • "is_deactivated": "string",
  • "is_closed": "string",
  • "is_internal": "string",
  • "is_warranty": "string",
  • "is_claim": "string",
  • "priceIncDiscountTotal": "string",
  • "priceIncDiscountTotalVat": "string",
  • "vatTotal": "string",
  • "discount": "string",
  • "discountPct": "string",
  • "type_name": "string",
  • "model": "string",
  • "reset_lines": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "type": "string",
  • "car": "string",
  • "department": "string",
  • "shop": "string",
  • "customer": "string",
  • "address": "string",
  • "invoiced_customer": "string",
  • "invoiced_address": "string",
  • "states": "string",
  • "lines": "string"
}

Convert an offer to an order

The document must be a SalesOffer and must have a valid customer pricegroup and invoiced customer. Dispatches integration events after conversion.

path Parameters
sequence
required
string

The unique sequence number of the offer.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "sequence": "string",
  • "shop_id": "string",
  • "customer_id": "string",
  • "address_id": "string",
  • "invoiced_customer_id": "string",
  • "invoiced_address_id": "string",
  • "responsible_employee_id": "string",
  • "car_id": "string",
  • "odometer": "string",
  • "status_id": "string",
  • "finance_department_id": "string",
  • "order_date": "string",
  • "invoice_date": "string",
  • "invoice_sequence": "string",
  • "delivery_at": "string",
  • "return_at": "string",
  • "requisition_no": "string",
  • "is_deactivated": "string",
  • "is_closed": "string",
  • "is_internal": "string",
  • "is_warranty": "string",
  • "is_claim": "string",
  • "priceIncDiscountTotal": "string",
  • "priceIncDiscountTotalVat": "string",
  • "vatTotal": "string",
  • "discount": "string",
  • "discountPct": "string",
  • "type_name": "string",
  • "model": "string",
  • "reset_lines": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "type": "string",
  • "car": "string",
  • "department": "string",
  • "shop": "string",
  • "customer": "string",
  • "address": "string",
  • "invoiced_customer": "string",
  • "invoiced_address": "string",
  • "states": "string",
  • "lines": "string"
}

Convert an order to an invoice

The document must be a SalesOrder and must have a valid customer pricegroup and invoiced customer. Dispatches integration events after conversion.

path Parameters
sequence
required
string

The unique sequence number of the order.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "sequence": "string",
  • "shop_id": "string",
  • "customer_id": "string",
  • "address_id": "string",
  • "invoiced_customer_id": "string",
  • "invoiced_address_id": "string",
  • "responsible_employee_id": "string",
  • "car_id": "string",
  • "odometer": "string",
  • "status_id": "string",
  • "finance_department_id": "string",
  • "order_date": "string",
  • "invoice_date": "string",
  • "invoice_sequence": "string",
  • "delivery_at": "string",
  • "return_at": "string",
  • "requisition_no": "string",
  • "is_deactivated": "string",
  • "is_closed": "string",
  • "is_internal": "string",
  • "is_warranty": "string",
  • "is_claim": "string",
  • "priceIncDiscountTotal": "string",
  • "priceIncDiscountTotalVat": "string",
  • "vatTotal": "string",
  • "discount": "string",
  • "discountPct": "string",
  • "type_name": "string",
  • "model": "string",
  • "reset_lines": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "type": "string",
  • "car": "string",
  • "department": "string",
  • "shop": "string",
  • "customer": "string",
  • "address": "string",
  • "invoiced_customer": "string",
  • "invoiced_address": "string",
  • "states": "string",
  • "lines": "string"
}

Reassign line_no values in bulk to reorder lines on a sales document

Accepts an array of {id, line_no} pairs. Returns only the new ordering; the client already has full line data.

path Parameters
sequence
required
string

The sales document sequence number.

Request Body schema: application/json
required
required
Array of objects non-empty

Responses

Request samples

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

Response samples

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

Remove every line sharing the given bundle ID from a sales document and recalculate totals

path Parameters
sequence
required
string

The sales document sequence number.

bundleId
required
integer

The bundle_id shared by the lines to remove.

Responses

Response samples

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

Append a new product line to an offer or order, recalculating totals and broadcasting the change

Invoices are read-only and will be rejected with 403.

path Parameters
sequence
required
string

The sales document sequence number.

Request Body schema: application/json
required
products_id
required
integer
qty
required
number
price
number
costPrice
number
title
string or null
description
string or null
bundle
integer
bundle_id
integer
is_printable
integer
discountPct
number

Responses

Request samples

Content type
application/json
{
  • "products_id": 0,
  • "qty": 0,
  • "price": 0,
  • "costPrice": 0,
  • "title": "string",
  • "description": "string",
  • "bundle": 0,
  • "bundle_id": 0,
  • "is_printable": 0,
  • "discountPct": 0
}

Response samples

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

Update qty, price, discount, title, or description on a single sales line and recalculate totals

path Parameters
sequence
required
string

The sales document sequence number.

lineId
required
integer

The line ID within that document.

Request Body schema: application/json
qty
number
price
number
costPrice
number
title
string or null
description
string or null
is_printable
integer
discountPct
number

Responses

Request samples

Content type
application/json
{
  • "qty": 0,
  • "price": 0,
  • "costPrice": 0,
  • "title": "string",
  • "description": "string",
  • "is_printable": 0,
  • "discountPct": 0
}

Response samples

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

Remove a single line from a sales document and recalculate totals

path Parameters
sequence
required
string

The sales document sequence number.

lineId
required
integer

The line ID to delete.

Responses

Response samples

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

Add a product item to an existing bundle

path Parameters
id
required
integer

The ID of the product bundle to add the item to.

Request Body schema: application/json
required
products_id
required
integer
title
string or null
ordering
integer or null
qty
required
string
price_guided
required
string

Responses

Request samples

Content type
application/json
{
  • "products_id": 0,
  • "title": "string",
  • "ordering": 0,
  • "qty": "string",
  • "price_guided": "string"
}

Response samples

Content type
application/json
201

Remove a single item from a product bundle

path Parameters
id
required
integer

The ID of the product bundle containing the item.

itemid
required
integer

The ID of the specific item to delete from the bundle.

Responses

Response samples

Content type
application/json
{
  • "message": "Deleted successfully"
}

Update an item within a product bundle

path Parameters
id
required
integer

The ID of the product bundle containing the item.

itemid
required
integer

The ID of the specific map item to update.

Request Body schema: application/json
required
products_id
required
integer
title
string or null
ordering
integer or null
qty
required
string
price_guided
required
string

Responses

Request samples

Content type
application/json
{
  • "products_id": 0,
  • "title": "string",
  • "ordering": 0,
  • "qty": "string",
  • "price_guided": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "products_bundles_id": 0,
  • "products_id": 0,
  • "title": "string",
  • "ordering": 0,
  • "qty": "string",
  • "price_guided": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": 0,
  • "updated_by": 0,
  • "deleted_at": "string",
  • "deleted_by": 0
}

Search for product bundles, optionally filtered by vehicle compatibility

Returns all finished bundles alongside the full list of product categories. When a vehicle ID is supplied, bundles are filtered to those compatible with the vehicle's make, model, version, and tecdoc identifiers.

query Parameters
vehicle
integer

Responses

Response samples

Content type
application/json
{
  • "categories": [
    ],
  • "products": [
    ]
}

Retrieve a single product bundle by ID, including its map items

path Parameters
id
required
integer

The ID of the product bundle to retrieve.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "alias": "string",
  • "name": "string",
  • "products_id": "string",
  • "category_id": "string",
  • "products_pricing": "string",
  • "make_ids": "string",
  • "model_ids": "string",
  • "version_ids": "string",
  • "tecdoc_ids": "string",
  • "finished": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "products": "string",
  • "product": "string"
}

Update an existing product bundle

Returns the updated bundle with its map items loaded.

path Parameters
id
required
integer

The ID of the product bundle to update.

Request Body schema: application/json
alias
string <= 191 characters
name
integer
products_id
integer
category_id
integer or null
products_pricing
integer or null
make_ids
string or null
model_ids
integer or null
version_ids
string or null
tecdoc_ids
integer or null
finished
boolean

Responses

Request samples

Content type
application/json
{
  • "alias": "string",
  • "name": 0,
  • "products_id": 0,
  • "category_id": 0,
  • "products_pricing": 0,
  • "make_ids": "string",
  • "model_ids": 0,
  • "version_ids": "string",
  • "tecdoc_ids": 0,
  • "finished": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "alias": "string",
  • "name": "string",
  • "products_id": "string",
  • "category_id": "string",
  • "products_pricing": "string",
  • "make_ids": "string",
  • "model_ids": "string",
  • "version_ids": "string",
  • "tecdoc_ids": "string",
  • "finished": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "products": "string",
  • "product": "string"
}

Delete a product bundle and all its associated map items

path Parameters
id
required
integer

The ID of the product bundle to delete.

Responses

Response samples

Content type
application/json
{
  • "message": "Deleted successfully"
}

Search products by SKU and supplier

Filters products by SKU (partial match) and supplier ID. Optionally narrows results to a specific product type.

query Parameters
query
string
type
integer
supplier
required
integer

Responses

Response samples

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

Create a new product

Request Body schema: application/json
required
sku
required
string <= 191 characters
supplier_id
required
integer
type_id
integer
group_id
integer or null
unit_id
integer or null
title
string or null
texts_id
integer or null
ean
string or null
default_qty
integer or null
price_locked
boolean
price_cost
number or null
price_guided
number or null
price_deposit
number or null
price_toll
number or null
is_vat_exempted
integer
Enum: "0" "1"
stock_management
integer
Enum: "0" "1"

Responses

Request samples

Content type
application/json
{
  • "sku": "string",
  • "supplier_id": 0,
  • "type_id": 0,
  • "group_id": 0,
  • "unit_id": 0,
  • "title": "string",
  • "texts_id": 0,
  • "ean": "string",
  • "default_qty": 0,
  • "price_locked": true,
  • "price_cost": 0,
  • "price_guided": 0,
  • "price_deposit": 0,
  • "price_toll": 0,
  • "is_vat_exempted": "0",
  • "stock_management": "0"
}

Response samples

Content type
application/json
201

Update an existing product

path Parameters
id
required
integer
Request Body schema: application/json
sku
string <= 191 characters
supplier_id
integer
type_id
integer
group_id
integer or null
unit_id
integer or null
title
string or null
texts_id
integer or null
ean
string or null
default_qty
integer or null
price_locked
boolean
price_cost
number or null
price_guided
number or null
price_deposit
number or null
price_toll
number or null
is_vat_exempted
integer
Enum: "0" "1"
stock_management
integer
Enum: "0" "1"

Responses

Request samples

Content type
application/json
{
  • "sku": "string",
  • "supplier_id": 0,
  • "type_id": 0,
  • "group_id": 0,
  • "unit_id": 0,
  • "title": "string",
  • "texts_id": 0,
  • "ean": "string",
  • "default_qty": 0,
  • "price_locked": true,
  • "price_cost": 0,
  • "price_guided": 0,
  • "price_deposit": 0,
  • "price_toll": 0,
  • "is_vat_exempted": "0",
  • "stock_management": "0"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "sku": "string",
  • "active": "string",
  • "type_id": "string",
  • "group_id": "string",
  • "supplier_id": "string",
  • "unit_id": "string",
  • "title": "string",
  • "texts_id": "string",
  • "ean": "string",
  • "default_qty": "string",
  • "price_locked": "string",
  • "price_cost": "string",
  • "price_guided": "string",
  • "price_deposit": "string",
  • "price_toll": "string",
  • "is_vat_exempted": "string",
  • "stock_management": "string",
  • "stock_negative": "string",
  • "stock_available": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "group": "string",
  • "texts": "string"
}

Delete a product by ID

path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "message": "Product deleted successfully"
}

Retrieve the states and statuses for a specific financial document

Loads the document's current status and all available status types. Returns 404 when no state record exists for the given sequence.

path Parameters
sequence
required
string

The unique sequence number of the financial document.

Responses

Response samples

Content type
application/json
"string"

Update the other_statuses collection for a specific financial document

Sets or removes a status value in the document's other_statuses field. A status_value of 0 removes the entry; any non-zero value sets it. Returns 404 when the document state or the status type is not found.

path Parameters
sequence
required
string

The unique sequence number of the financial document.

Request Body schema: application/json
required
status_id
required
integer
status_value
required
integer

Responses

Request samples

Content type
application/json
{
  • "status_id": 0,
  • "status_value": 0
}

Response samples

Content type
application/json
"string"

List all finance accounts with their account type

Returns every non-header finance account record in the system, each including the related account type object.

Responses

Response samples

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

List all product categories

Returns all product category records ordered by their display ordering field.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": "string",
  • "per_page": "string",
  • "current_page": "string",
  • "last_page": "string",
  • "from": "string",
  • "to": "string"
}

Create a product category

Validates the request and creates a new product category record.

Request Body schema: application/json
required
name
required
string <= 255 characters
ordering
integer or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "ordering": 0
}

Response samples

Content type
application/json
201

Get a product category by ID

Retrieves a single product category record by its primary key.

path Parameters
id
required
integer

The ID of the product category to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "ordering": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Update a product category

Validates the request and updates the specified product category record.

path Parameters
id
required
integer

The ID of the product category to update

Request Body schema: application/json
name
string <= 255 characters
ordering
integer or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "ordering": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "ordering": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Delete a product category

Permanently removes the specified product category record.

path Parameters
id
required
integer

The ID of the product category to delete

Responses

Response samples

Content type
application/json
204

List all product groups

Returns all product group records ordered by name, with supplier and unit relations eager-loaded.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": "string",
  • "per_page": "string",
  • "current_page": "string",
  • "last_page": "string",
  • "from": "string",
  • "to": "string"
}

Create a product group

Validates the request and creates a new product group record.

Request Body schema: application/json
required
name
required
string <= 255 characters
supplier_id
integer or null
unit_id
integer or null
costprice_multiplier_percent
number or null
liable_account_id
integer or null
exempt_account_id
integer or null
accrual_account_id
integer or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "supplier_id": 0,
  • "unit_id": 0,
  • "costprice_multiplier_percent": 0,
  • "liable_account_id": 0,
  • "exempt_account_id": 0,
  • "accrual_account_id": 0
}

Response samples

Content type
application/json
201

Get a product group by ID

Retrieves a single product group record by its primary key, with supplier and unit relations eager-loaded.

path Parameters
id
required
integer

The ID of the product group to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "costprice_multiplier_percent": "string",
  • "supplier_id": "string",
  • "unit_id": "string",
  • "liable_account_id": "string",
  • "exempt_account_id": "string",
  • "accrual_account_id": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "supplier": "string",
  • "unit": "string"
}

Update a product group

Validates the request and updates the specified product group record.

path Parameters
id
required
integer

The ID of the product group to update

Request Body schema: application/json
name
string <= 255 characters
supplier_id
integer or null
unit_id
integer or null
costprice_multiplier_percent
number or null
liable_account_id
integer or null
exempt_account_id
integer or null
accrual_account_id
integer or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "supplier_id": 0,
  • "unit_id": 0,
  • "costprice_multiplier_percent": 0,
  • "liable_account_id": 0,
  • "exempt_account_id": 0,
  • "accrual_account_id": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "costprice_multiplier_percent": "string",
  • "supplier_id": "string",
  • "unit_id": "string",
  • "liable_account_id": "string",
  • "exempt_account_id": "string",
  • "accrual_account_id": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "supplier": "string",
  • "unit": "string"
}

Delete a product group

Permanently removes the specified product group record.

path Parameters
id
required
integer

The ID of the product group to delete

Responses

Response samples

Content type
application/json
204

List all product suppliers

Returns all product supplier records ordered by name.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": "string",
  • "per_page": "string",
  • "current_page": "string",
  • "last_page": "string",
  • "from": "string",
  • "to": "string"
}

Create a product supplier

Validates the request and creates a new product supplier record. The prefix field is automatically derived from the supplier name on creation.

Request Body schema: application/json
required
name
required
string <= 255 characters
visible
boolean or null
editable
boolean or null
stockable
boolean or null
costprice_multiplier_percent
number or null
integration
string or null <= 255 characters
exclude_pricegroup_ids
Array of integers or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "visible": true,
  • "editable": true,
  • "stockable": true,
  • "costprice_multiplier_percent": 0,
  • "integration": "string",
  • "exclude_pricegroup_ids": [
    ]
}

Response samples

Content type
application/json
201

Get a product supplier by ID

Retrieves a single product supplier record by its primary key.

path Parameters
id
required
integer

The ID of the product supplier to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "prefix": "string",
  • "name": "string",
  • "visible": "string",
  • "editable": "string",
  • "stockable": "string",
  • "costprice_multiplier_percent": "string",
  • "exclude_pricegroup_ids": "string",
  • "integration": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Update a product supplier

Validates the request and updates the specified product supplier record.

path Parameters
id
required
integer

The ID of the product supplier to update

Request Body schema: application/json
name
string <= 255 characters
visible
boolean or null
editable
boolean or null
stockable
boolean or null
costprice_multiplier_percent
number or null
integration
string or null <= 255 characters
exclude_pricegroup_ids
Array of integers or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "visible": true,
  • "editable": true,
  • "stockable": true,
  • "costprice_multiplier_percent": 0,
  • "integration": "string",
  • "exclude_pricegroup_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "prefix": "string",
  • "name": "string",
  • "visible": "string",
  • "editable": "string",
  • "stockable": "string",
  • "costprice_multiplier_percent": "string",
  • "exclude_pricegroup_ids": "string",
  • "integration": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Integrations

Probe the E-conomic REST API and return the customer list as a connectivity check

Passes the raw E-conomic response back to the caller so integration health can be inspected without leaving the DMS UI.

Responses

Response samples

Content type
application/json
"string"

Refresh the AD Danmark OAuth access token and persist the new token pair to settings

Exchanges the stored refresh token for a new access/refresh token pair via the AD Danmark token endpoint. Returns the raw token response so the client can inspect expiry times.

Responses

Response samples

Content type
application/json
"string"

Import line items from an AD Danmark basket into a sales document

Fetches the basket(s) associated with the given sequence from the AD Danmark API, creates any missing products, and appends them as sales lines. Returns the updated sales model. Returns 404 when no basket or no token is found.

path Parameters
sequence
required
string

The sales document sequence number used as the basket reference.

Responses

Response samples

Content type
application/json
{ }

Templates

Preview a single email template rendered for the given sales sequence

Optionally accepts a content override to preview unsaved edits. Returns the full rendered HTML including the email layout wrapper.

Request Body schema: application/json
required
sequence
required
string
id
required
string
content
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": 0,
  • "key": "string",
  • "from": "string",
  • "to": "string",
  • "cc": "string",
  • "bcc": "string",
  • "subject": "string",
  • "content": "string",
  • "subject_rendered": "string",
  • "content_rendered": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "created_by": 0,
  • "updated_by": 0
}

Send an email using the given template and sales sequence

Logs the outbound email and dispatches it via the mail driver. Optionally attaches a PDF rendered from the sales model.

Request Body schema: application/json
required
sequence
required
string
customer_id
required
string
template_id
required
string
to
required
string
cc
string
bcc
string
subject
required
string
content
required
string
attachment
string

Responses

Request samples

Content type
application/json
{
  • "sequence": "string",
  • "customer_id": "string",
  • "template_id": "string",
  • "to": "string",
  • "cc": "string",
  • "bcc": "string",
  • "subject": "string",
  • "content": "string",
  • "attachment": "string"
}

Response samples

Content type
application/json
200

List all email templates rendered for the given sales sequence

Each template has its subject and content rendered via Blade using the sales model resolved from the sequence parameter.

path Parameters
sequence
required
string

The sales document sequence number used as Blade context.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Preview a single SMS template rendered for the given sales sequence

Returns the template with its content rendered via Blade.

Request Body schema: application/json
required
sequence
required
string
id
required
string
content
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "sender": "string",
  • "content": "string",
  • "content_rendered": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "created_by": 0,
  • "updated_by": 0
}

Send an SMS using the given content and customer recipient details

Resolves the customer's country dial code from their address and dispatches the message via the configured SMS supplier.

Request Body schema: application/json
required
sequence
required
string
customer_id
required
string
to
required
string
content
required
string

Responses

Request samples

Content type
application/json
{
  • "sequence": "string",
  • "customer_id": "string",
  • "to": "string",
  • "content": "string"
}

Response samples

Content type
application/json
200

List all SMS templates rendered for the given sales sequence

Each template has its content rendered via Blade using the sales model resolved from the sequence parameter.

path Parameters
sequence
required
string

The sales document sequence number used as Blade context.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Preview a single PDF template rendered for the given sales sequence

Optionally accepts a content override to preview unsaved edits.

Request Body schema: application/json
required
sequence
required
string
id
required
string
content
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": 0,
  • "type": "string",
  • "name": "string",
  • "content": "string",
  • "content_rendered": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "created_by": 0,
  • "updated_by": 0
}

Download the rendered PDF for the given sales sequence

Resolves the sales model from the sequence and streams the generated PDF as a file download response.

Request Body schema: application/json
required
sequence
required
string
id
string

Responses

Request samples

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

Response samples

Content type
application/json
{ }

List all PDF templates rendered for the given sales sequence

Each template has its content rendered via Blade using the sales model resolved from the sequence parameter.

path Parameters
sequence
required
string

The sales document sequence number used as Blade context.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

System

List all SMS messages sent for a given sales sequence

Returns a flat array of logged SMS records ordered newest-first, including sender, recipient, content, status, and audit timestamps.

path Parameters
sequence
required
string

The sales document sequence number.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List all emails sent for a given sales sequence

Returns a flat array of logged email records ordered newest-first, including delivery status, recipients, content, and audit timestamps.

path Parameters
sequence
required
string

The sales document sequence number.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Verify Postmark domain, server, and sender configuration against the app's primary domain

Queries the Postmark API for matching domain, server, and sender records, then appends DNS records for the same domain. Useful for diagnosing email deliverability issues.

Responses

Response samples

Content type
application/json
{ }

Countries

List all countries, paginated

Returns every country record in the system. Supports standard pagination query parameters (page, per_page). Used by shop configuration screens and address pickers throughout the application.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": "string",
  • "per_page": "string",
  • "current_page": "string",
  • "last_page": "string",
  • "from": "string",
  • "to": "string"
}

Retrieve a single country by its primary key

Returns the full country record, including currency and postal-code fields. Returns null (empty body) when the ID does not exist.

path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "code": "string",
  • "country": "string",
  • "active": "string",
  • "phone_code": "string",
  • "currency_code": "string",
  • "currency_name": "string",
  • "currency_symbol": "string",
  • "currency_align": "string",
  • "from_base_to_currency": "string",
  • "dec_point": "string",
  • "thousands_sep": "string",
  • "postal_code_format": "string",
  • "postal_code_regex": "string",
  • "is_eu_member": "string",
  • "iso_code": "string",
  • "iso_639_1": "string",
  • "translator": "string"
}

Update editable fields on a country record

All fields are optional (partial PUT). Only fields present in the request body are changed. Returns the updated country record.

path Parameters
id
required
integer
Request Body schema: application/json
country
string <= 100 characters
code
string <= 10 characters
active
boolean
phone_code
integer or null
currency_code
string or null <= 10 characters
currency_name
string or null <= 100 characters
currency_symbol
string or null <= 10 characters
currency_align
string or null
Enum: "LEFT" "RIGHT"
dec_point
string or null <= 5 characters
postal_code_format
string or null <= 20 characters
postal_code_regex
string or null <= 255 characters
is_eu_member
boolean

Responses

Request samples

Content type
application/json
{
  • "country": "string",
  • "code": "string",
  • "active": true,
  • "phone_code": 0,
  • "currency_code": "string",
  • "currency_name": "string",
  • "currency_symbol": "string",
  • "currency_align": "LEFT",
  • "dec_point": "strin",
  • "postal_code_format": "string",
  • "postal_code_regex": "string",
  • "is_eu_member": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "code": "string",
  • "country": "string",
  • "active": "string",
  • "phone_code": "string",
  • "currency_code": "string",
  • "currency_name": "string",
  • "currency_symbol": "string",
  • "currency_align": "string",
  • "from_base_to_currency": "string",
  • "dec_point": "string",
  • "thousands_sep": "string",
  • "postal_code_format": "string",
  • "postal_code_regex": "string",
  • "is_eu_member": "string",
  • "iso_code": "string",
  • "iso_639_1": "string",
  • "translator": "string"
}

List cities (postal codes) belonging to a country, paginated

Supports filtering via the standard RequesterService filter mechanism. Useful for address auto-complete and postal-code lookup flows.

path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": "string",
  • "per_page": "string",
  • "current_page": "string",
  • "last_page": "string",
  • "from": "string",
  • "to": "string"
}

List languages associated with a country, paginated

Returns language codes and their type classification (primary, official, etc.) for the given country.

path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": "string",
  • "per_page": "string",
  • "current_page": "string",
  • "last_page": "string",
  • "from": "string",
  • "to": "string"
}

List timezone zones associated with a country, paginated

Returns IANA-style zone names for the given country. A country may have multiple zones (e.g. large countries spanning time zones).

path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": "string",
  • "per_page": "string",
  • "current_page": "string",
  • "last_page": "string",
  • "from": "string",
  • "to": "string"
}

Shops

List all shops

Returns all active and inactive shop records in a data-wrapped collection.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": "string",
  • "per_page": "string",
  • "current_page": "string",
  • "last_page": "string",
  • "from": "string",
  • "to": "string"
}

Create a shop

Validates the request and creates a new shop record.

Request Body schema: application/json
required
region_id
required
integer
name
required
string <= 255 characters
active
boolean or null
city
string or null <= 255 characters
address
string or null <= 255 characters
post_code
string or null <= 20 characters
phone
string or null <= 50 characters
email
string or null <email> <= 255 characters
cvr
string or null <= 50 characters
bank_reg
string or null <= 50 characters
bank_no
string or null <= 50 characters
bank_iban
string or null <= 50 characters
mobile_pay
string or null <= 50 characters
fi_creditor
string or null <= 50 characters
settings
Array of strings or null
opening_hours
Array of strings or null
close_days
Array of strings or null

Responses

Request samples

Content type
application/json
{
  • "region_id": 0,
  • "name": "string",
  • "active": true,
  • "city": "string",
  • "address": "string",
  • "post_code": "string",
  • "phone": "string",
  • "email": "user@example.com",
  • "cvr": "string",
  • "bank_reg": "string",
  • "bank_no": "string",
  • "bank_iban": "string",
  • "mobile_pay": "string",
  • "fi_creditor": "string",
  • "settings": [
    ],
  • "opening_hours": [
    ],
  • "close_days": [
    ]
}

Response samples

Content type
application/json
201

Get a shop by ID

Retrieves detailed information for a single shop record.

path Parameters
id
required
integer

The ID of the shop to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "region_id": "string",
  • "name": "string",
  • "active": "string",
  • "city": "string",
  • "address": "string",
  • "post_code": "string",
  • "phone": "string",
  • "email": "string",
  • "cvr": "string",
  • "bank_reg": "string",
  • "bank_no": "string",
  • "bank_iban": "string",
  • "mobile_pay": "string",
  • "fi_creditor": "string",
  • "settings": "string",
  • "opening_hours": "string",
  • "close_days": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Update a shop

Validates the request and updates the specified shop record.

path Parameters
id
required
integer

The ID of the shop to update

Request Body schema: application/json
region_id
integer or null
name
string <= 255 characters
active
boolean or null
city
string or null <= 255 characters
address
string or null <= 255 characters
post_code
string or null <= 20 characters
phone
string or null <= 50 characters
email
string or null <email> <= 255 characters
cvr
string or null <= 50 characters
bank_reg
string or null <= 50 characters
bank_no
string or null <= 50 characters
bank_iban
string or null <= 50 characters
mobile_pay
string or null <= 50 characters
fi_creditor
string or null <= 50 characters
settings
Array of strings or null
opening_hours
Array of strings or null
close_days
Array of strings or null

Responses

Request samples

Content type
application/json
{
  • "region_id": 0,
  • "name": "string",
  • "active": true,
  • "city": "string",
  • "address": "string",
  • "post_code": "string",
  • "phone": "string",
  • "email": "user@example.com",
  • "cvr": "string",
  • "bank_reg": "string",
  • "bank_no": "string",
  • "bank_iban": "string",
  • "mobile_pay": "string",
  • "fi_creditor": "string",
  • "settings": [
    ],
  • "opening_hours": [
    ],
  • "close_days": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "region_id": "string",
  • "name": "string",
  • "active": "string",
  • "city": "string",
  • "address": "string",
  • "post_code": "string",
  • "phone": "string",
  • "email": "string",
  • "cvr": "string",
  • "bank_reg": "string",
  • "bank_no": "string",
  • "bank_iban": "string",
  • "mobile_pay": "string",
  • "fi_creditor": "string",
  • "settings": "string",
  • "opening_hours": "string",
  • "close_days": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Delete a shop

Soft-deletes the specified shop record.

path Parameters
id
required
integer

The ID of the shop to delete

Responses

Response samples

Content type
application/json
204

List all shop regions

Returns all shop region records in a data-wrapped collection.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": "string",
  • "per_page": "string",
  • "current_page": "string",
  • "last_page": "string",
  • "from": "string",
  • "to": "string"
}

Create a shop region

Validates the request and creates a new shop region record.

Request Body schema: application/json
required
region
required
string <= 255 characters

Responses

Request samples

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

Response samples

Content type
application/json
201

Get a shop region by ID

Retrieves detailed information for a single shop region record.

path Parameters
id
required
integer

The ID of the region to retrieve

Responses

Response samples

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

Update a shop region

Validates the request and updates the specified shop region record.

path Parameters
id
required
integer

The ID of the region to update

Request Body schema: application/json
region
string <= 255 characters

Responses

Request samples

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

Response samples

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

Delete a shop region

Soft-deletes the specified shop region record.

path Parameters
id
required
integer

The ID of the region to delete

Responses

Response samples

Content type
application/json
204

Worksheets

List all worksheet lines for a sales sequence

path Parameters
sequence
required
string

The sales document sequence number.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a custom worksheet line to a sales sequence

path Parameters
sequence
required
string
Request Body schema: application/json
required
option_title
required
string <= 255 characters
option_type_id
integer or null
w_option_enable_comment
boolean
w_option_req_image
boolean

Responses

Request samples

Content type
application/json
{
  • "option_title": "string",
  • "option_type_id": 0,
  • "w_option_enable_comment": true,
  • "w_option_req_image": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "ordering": "string",
  • "sequence": "string",
  • "shop_id": "string",
  • "line_id": "string",
  • "w_id": "string",
  • "w_custom": "string",
  • "w_option_id": "string",
  • "w_option_type_id": "string",
  • "option_title": "string",
  • "w_title": "string",
  • "w_option_enable_comment": "string",
  • "w_option_req": "string",
  • "w_option_req_image": "string",
  • "w_option_value": "string",
  • "w_option_comment": "string",
  • "products": "string",
  • "option": {
    },
  • "custom_type": {
    },
  • "created_at": "string",
  • "updated_at": "string"
}

Update a worksheet line's answer and optional comment

path Parameters
sequence
required
string

The sales document sequence number.

id
required
integer

The worksheet line ID.

Request Body schema: application/json
w_option_value
integer or null
w_option_comment
string or null <= 5000 characters

Responses

Request samples

Content type
application/json
{
  • "w_option_value": 0,
  • "w_option_comment": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "ordering": "string",
  • "sequence": "string",
  • "shop_id": "string",
  • "line_id": "string",
  • "w_id": "string",
  • "w_custom": "string",
  • "w_option_id": "string",
  • "w_option_type_id": "string",
  • "option_title": "string",
  • "w_title": "string",
  • "w_option_enable_comment": "string",
  • "w_option_req": "string",
  • "w_option_req_image": "string",
  • "w_option_value": "string",
  • "w_option_comment": "string",
  • "products": "string",
  • "option": {
    },
  • "custom_type": {
    },
  • "created_at": "string",
  • "updated_at": "string"
}

Delete a custom worksheet line. Template lines (w_custom=0) cannot be deleted

path Parameters
sequence
required
string
id
required
integer

Responses

Response samples

Content type
application/json
204

List all attachments for a worksheet line

path Parameters
sequence
required
string
id
required
integer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Upload an image to a worksheet line

path Parameters
sequence
required
string
id
required
integer
Request Body schema: multipart/form-data
required
file
required
string <binary> <application/octet-stream> <= 10240 characters

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "file_path": "string",
  • "file_preview": "string",
  • "url": "string",
  • "preview_url": "string",
  • "file_mime": "string",
  • "file_size": "string",
  • "worksheets_id": "string",
  • "worksheets_line_id": "string",
  • "created_at": "string"
}

Delete an attachment from a worksheet line

path Parameters
sequence
required
string
id
required
integer
attachmentId
required
integer

Responses

Response samples

Content type
application/json
204

List all clock-in/out events for a sales sequence

path Parameters
sequence
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Clock in on a sales sequence. Creates a new open clock event for the authenticated employee

path Parameters
sequence
required
string

Responses

Response samples

Content type
application/json
201

Clock out on a sales sequence. Closes the most recent open clock event for the authenticated employee

path Parameters
sequence
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "shop_id": "string",
  • "employee_id": "string",
  • "employee_name": "string",
  • "finance_sequence": "string",
  • "from": "string",
  • "to": "string",
  • "is_open": true,
  • "created_at": "string"
}

Employees

List all employees

Returns all employee records for the active shop, ordered by name, in a data-wrapped collection.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": "string",
  • "per_page": "string",
  • "current_page": "string",
  • "last_page": "string",
  • "from": "string",
  • "to": "string"
}

Create an employee

Validates the request and creates a new employee record. The working_hours array is used to compute the total contracted hours and percentage.

Request Body schema: application/json
required
name
required
string <= 255 characters
title
string or null <= 255 characters
email
string or null <email> <= 255 characters
tags
string or null <= 255 characters
finance_id
string or null <= 255 characters
shop_id
string or null
working_hours
Array of strings or null
user_id
integer or null
sync_user
boolean or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "title": "string",
  • "email": "user@example.com",
  • "tags": "string",
  • "finance_id": "string",
  • "shop_id": "string",
  • "working_hours": [
    ],
  • "user_id": 0,
  • "sync_user": true
}

Response samples

Content type
application/json
201

Get an employee by ID

Retrieves detailed information for a single employee record.

path Parameters
id
required
integer

The ID of the employee to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "user_id": "string",
  • "name": "string",
  • "title": "string",
  • "email": "string",
  • "tags": "string",
  • "finance_id": "string",
  • "percentage": "string",
  • "hours": "string",
  • "shop_id": "string",
  • "working_hours": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Update an employee

Validates the request and updates the specified employee record. Recomputes total hours and percentage from the updated working_hours array when provided.

path Parameters
id
required
integer

The ID of the employee to update

Request Body schema: application/json
name
string <= 255 characters
title
string or null <= 255 characters
email
string or null <email> <= 255 characters
tags
string or null <= 255 characters
finance_id
string or null <= 255 characters
shop_id
string or null
working_hours
Array of strings or null
user_id
integer or null
sync_user
boolean or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "title": "string",
  • "email": "user@example.com",
  • "tags": "string",
  • "finance_id": "string",
  • "shop_id": "string",
  • "working_hours": [
    ],
  • "user_id": 0,
  • "sync_user": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "user_id": "string",
  • "name": "string",
  • "title": "string",
  • "email": "string",
  • "tags": "string",
  • "finance_id": "string",
  • "percentage": "string",
  • "hours": "string",
  • "shop_id": "string",
  • "working_hours": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Delete an employee

Removes the specified employee record from the database.

path Parameters
id
required
integer

The ID of the employee to delete

Responses

Response samples

Content type
application/json
204

Tire Storage

List shops available for location assignment

Returns a minimal list of shops (id, name) for use in the location editor shop selector.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List all tire storage locations across all shops

Responses

Response samples

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

Create a new tire storage location

Request Body schema: application/json
required
name
required
string <= 255 characters
is_external
boolean
is_global
boolean
shop_id
integer or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "is_external": true,
  • "is_global": true,
  • "shop_id": 0
}

Response samples

Content type
application/json
201

Get a single tire storage location

path Parameters
id
required
integer

Location ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "shop_id": "string",
  • "name": "string",
  • "is_external": "string",
  • "racks": [
    ],
  • "created_at": "string",
  • "updated_at": "string"
}

Update an existing tire storage location

path Parameters
id
required
integer

Location ID

Request Body schema: application/json
required
name
required
string <= 255 characters
is_external
boolean
is_global
boolean
shop_id
integer or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "is_external": true,
  • "is_global": true,
  • "shop_id": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "shop_id": "string",
  • "name": "string",
  • "is_external": "string",
  • "racks": [
    ],
  • "created_at": "string",
  • "updated_at": "string"
}

Delete a tire storage location

path Parameters
id
required
integer

Location ID

Responses

Response samples

Content type
application/json
204

List racks for a given location

path Parameters
locationId
required
integer

Location ID

Responses

Response samples

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

Create multiple racks for a location in one request

Accepts an array of rack names and creates them all in a single transaction.

Request Body schema: application/json
required
location_id
required
integer
names
required
Array of strings [ 1 .. 500 ] items [ items <= 255 characters ]

Responses

Request samples

Content type
application/json
{
  • "location_id": 0,
  • "names": [
    ]
}

Response samples

Content type
application/json
201

Create a new rack within a location

Request Body schema: application/json
required
location_id
required
integer
name
required
string <= 255 characters

Responses

Request samples

Content type
application/json
{
  • "location_id": 0,
  • "name": "string"
}

Response samples

Content type
application/json
201

Update an existing rack

path Parameters
id
required
integer

Rack ID

Request Body schema: application/json
required
name
required
string <= 255 characters

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": "string",
  • "location_id": "string",
  • "name": "string",
  • "active_tire_sets_count": "string",
  • "shelves": [
    ],
  • "created_at": "string",
  • "updated_at": "string"
}

Delete a rack

path Parameters
id
required
integer

Rack ID

Responses

Response samples

Content type
application/json
204

List shelves for a given rack

path Parameters
rackId
required
integer

Rack ID

Responses

Response samples

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

Create multiple shelves for a rack in one request

Accepts an array of shelf names and creates them all in a single transaction.

Request Body schema: application/json
required
rack_id
required
integer
names
required
Array of strings [ 1 .. 500 ] items [ items <= 255 characters ]

Responses

Request samples

Content type
application/json
{
  • "rack_id": 0,
  • "names": [
    ]
}

Response samples

Content type
application/json
201

Create a single shelf within a rack

Request Body schema: application/json
required
rack_id
required
integer
name
required
string <= 255 characters

Responses

Request samples

Content type
application/json
{
  • "rack_id": 0,
  • "name": "string"
}

Response samples

Content type
application/json
201

Update a shelf name

path Parameters
id
required
integer

Shelf ID

Request Body schema: application/json
required
name
required
string <= 255 characters

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": "string",
  • "rack_id": "string",
  • "name": "string",
  • "active_tire_sets_count": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Delete a shelf

path Parameters
id
required
integer

Shelf ID

Responses

Response samples

Content type
application/json
204

List tire sets for the active shop

Supports optional filters: ?plate=, ?email=, ?phone=, ?rack_id=, ?season=, ?include_removed=1

query Parameters
rack_id
integer
Default: 0
season
string

Responses

Response samples

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

Create a new tire set for a customer

Request Body schema: application/json
required
customer_id
required
integer
car_id
integer or null
rack_id
integer or null
shelf_id
integer or null
season
required
string
Enum: "summer" "winter" "all_year"
tire_size
required
string <= 100 characters
rim_type
required
string
Enum: "alloy" "steel" "only_tire"
prepare
boolean
notes
string or null <= 2000 characters
sales_sequence
string or null <= 50 characters

Responses

Request samples

Content type
application/json
{
  • "customer_id": 0,
  • "car_id": 0,
  • "rack_id": 0,
  • "shelf_id": 0,
  • "season": "summer",
  • "tire_size": "string",
  • "rim_type": "alloy",
  • "prepare": true,
  • "notes": "string",
  • "sales_sequence": "string"
}

Response samples

Content type
application/json
201

Get a single tire set

path Parameters
id
required
integer

Tire set ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "shop_id": "string",
  • "customer_id": "string",
  • "car_id": "string",
  • "car_plate": "string",
  • "rack_id": "string",
  • "season": "string",
  • "tire_size": "string",
  • "rim_type": "string",
  • "prepare": "string",
  • "notes": "string",
  • "linked_sales": "string",
  • "removed_at": "string",
  • "last_used_note": "string",
  • "shelf_id": "string",
  • "shelf": {
    },
  • "rack": {
    },
  • "created_at": "string",
  • "updated_at": "string"
}

Update an existing tire set

path Parameters
id
required
integer

Tire set ID

Request Body schema: application/json
required
car_id
integer or null
rack_id
integer or null
shelf_id
integer or null
season
required
string
Enum: "summer" "winter" "all_year"
tire_size
required
string <= 100 characters
rim_type
required
string
Enum: "alloy" "steel" "only_tire"
prepare
boolean
notes
string or null <= 2000 characters
sales_sequence
string or null <= 50 characters

Responses

Request samples

Content type
application/json
{
  • "car_id": 0,
  • "rack_id": 0,
  • "shelf_id": 0,
  • "season": "summer",
  • "tire_size": "string",
  • "rim_type": "alloy",
  • "prepare": true,
  • "notes": "string",
  • "sales_sequence": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "shop_id": "string",
  • "customer_id": "string",
  • "car_id": "string",
  • "car_plate": "string",
  • "rack_id": "string",
  • "season": "string",
  • "tire_size": "string",
  • "rim_type": "string",
  • "prepare": "string",
  • "notes": "string",
  • "linked_sales": "string",
  • "removed_at": "string",
  • "last_used_note": "string",
  • "shelf_id": "string",
  • "shelf": {
    },
  • "rack": {
    },
  • "created_at": "string",
  • "updated_at": "string"
}

Delete a tire set

path Parameters
id
required
integer

Tire set ID

Responses

Response samples

Content type
application/json
204

Mark a tire set as removed from storage

Sets removed_at to now and stores the last-used note. The record is not deleted.

path Parameters
id
required
integer

Tire set ID

Request Body schema: application/json
last_used_note
string or null <= 1000 characters

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": "string",
  • "shop_id": "string",
  • "customer_id": "string",
  • "car_id": "string",
  • "car_plate": "string",
  • "rack_id": "string",
  • "season": "string",
  • "tire_size": "string",
  • "rim_type": "string",
  • "prepare": "string",
  • "notes": "string",
  • "linked_sales": "string",
  • "removed_at": "string",
  • "last_used_note": "string",
  • "shelf_id": "string",
  • "shelf": {
    },
  • "rack": {
    },
  • "created_at": "string",
  • "updated_at": "string"
}

Attach a tire set to a sales order or offer as a line item

Creates a tire storage line on the given sales sequence and links the tire set to it.

path Parameters
id
required
integer

Tire set ID

Request Body schema: application/json
required
sequence
required
string <= 50 characters
products_id
integer or null

Responses

Request samples

Content type
application/json
{
  • "sequence": "string",
  • "products_id": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "shop_id": "string",
  • "customer_id": "string",
  • "car_id": "string",
  • "car_plate": "string",
  • "rack_id": "string",
  • "season": "string",
  • "tire_size": "string",
  • "rim_type": "string",
  • "prepare": "string",
  • "notes": "string",
  • "linked_sales": "string",
  • "removed_at": "string",
  • "last_used_note": "string",
  • "shelf_id": "string",
  • "shelf": {
    },
  • "rack": {
    },
  • "created_at": "string",
  • "updated_at": "string"
}

Switch tire season for a tire set

Marks the current set as removed and creates a new one with the opposite season (summer ↔ winter) on the same rack and customer. Returns the new tire set.

path Parameters
id
required
integer

Tire set ID

Responses

Response samples

Content type
application/json
201

Insurances

List all insurances

Returns a paginated list of insurance provider records ordered by name.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": "string",
  • "per_page": "string",
  • "current_page": "string",
  • "last_page": "string",
  • "from": "string",
  • "to": "string"
}

Create an insurance

Validates the request and creates a new insurance provider record.

Request Body schema: application/json
required
parent_id
integer or null
active
boolean or null
type
integer or null
name
required
string <= 255 characters
logo
string or null <= 255 characters
slug
string or null <= 255 characters
forsi_code
string or null <= 10 characters
cars_insurance_name
string or null <= 255 characters
cars_insurance_updated
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "parent_id": 0,
  • "active": true,
  • "type": 0,
  • "name": "string",
  • "logo": "string",
  • "slug": "string",
  • "forsi_code": "string",
  • "cars_insurance_name": "string",
  • "cars_insurance_updated": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
201

Get an insurance by ID

Retrieves detailed information for a single insurance provider record.

path Parameters
id
required
integer

The ID of the insurance to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "parent_id": "string",
  • "active": "string",
  • "type": "string",
  • "name": "string",
  • "logo": "string",
  • "slug": "string",
  • "forsi_code": "string",
  • "cars_insurance_name": "string",
  • "cars_insurance_updated": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Update an insurance

Validates the request and updates the specified insurance provider record.

path Parameters
id
required
integer

The ID of the insurance to update

Request Body schema: application/json
parent_id
integer or null
active
boolean or null
type
integer or null
name
string <= 255 characters
logo
string or null <= 255 characters
slug
string or null <= 255 characters
forsi_code
string or null <= 10 characters
cars_insurance_name
string or null <= 255 characters
cars_insurance_updated
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "parent_id": 0,
  • "active": true,
  • "type": 0,
  • "name": "string",
  • "logo": "string",
  • "slug": "string",
  • "forsi_code": "string",
  • "cars_insurance_name": "string",
  • "cars_insurance_updated": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "parent_id": "string",
  • "active": "string",
  • "type": "string",
  • "name": "string",
  • "logo": "string",
  • "slug": "string",
  • "forsi_code": "string",
  • "cars_insurance_name": "string",
  • "cars_insurance_updated": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Rules

List all adjustment rules

Returns all adjustment rules ordered by their ordering field, including rule class name and all pricing/logic configuration.

Responses

Response samples

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

Create an adjustment rule

Validates the request and creates a new adjustment rule record.

Request Body schema: application/json
active
integer or null
Enum: "0" "1"
ordering
integer or null
title
string or null <= 255 characters
rule
string or null <= 255 characters
type
integer or null
type_line
integer or null
shop_id
integer or null
look_products_id
integer or null
look_products_group_id
integer or null
add_products_id
integer or null
percentage_of
number or null
by_quantity
integer or null
Enum: "0" "1"
price
number or null
lock_price
integer or null
Enum: "0" "1"
if_is_upsale
integer or null
Enum: "0" "1"

Responses

Request samples

Content type
application/json
{
  • "active": "0",
  • "ordering": 0,
  • "title": "string",
  • "rule": "string",
  • "type": 0,
  • "type_line": 0,
  • "shop_id": 0,
  • "look_products_id": 0,
  • "look_products_group_id": 0,
  • "add_products_id": 0,
  • "percentage_of": 0,
  • "by_quantity": "0",
  • "price": 0,
  • "lock_price": "0",
  • "if_is_upsale": "0"
}

Response samples

Content type
application/json
201

Get an adjustment rule by ID

Retrieves a single adjustment rule record by its primary key.

path Parameters
id
required
integer

The ID of the adjustment rule to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "active": "string",
  • "ordering": "string",
  • "title": "string",
  • "rule": "string",
  • "type": "string",
  • "type_line": "string",
  • "shop_id": "string",
  • "look_products_id": "string",
  • "look_products_group_id": "string",
  • "add_products_id": "string",
  • "percentage_of": "string",
  • "by_quantity": "string",
  • "price": "string",
  • "lock_price": "string",
  • "if_is_upsale": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Update an adjustment rule

Validates the request and updates the specified adjustment rule record.

path Parameters
id
required
integer

The ID of the adjustment rule to update

Request Body schema: application/json
active
integer or null
Enum: "0" "1"
ordering
integer or null
title
string or null <= 255 characters
rule
string or null <= 255 characters
type
integer or null
type_line
integer or null
shop_id
integer or null
look_products_id
integer or null
look_products_group_id
integer or null
add_products_id
integer or null
percentage_of
number or null
by_quantity
integer or null
Enum: "0" "1"
price
number or null
lock_price
integer or null
Enum: "0" "1"
if_is_upsale
integer or null
Enum: "0" "1"

Responses

Request samples

Content type
application/json
{
  • "active": "0",
  • "ordering": 0,
  • "title": "string",
  • "rule": "string",
  • "type": 0,
  • "type_line": 0,
  • "shop_id": 0,
  • "look_products_id": 0,
  • "look_products_group_id": 0,
  • "add_products_id": 0,
  • "percentage_of": 0,
  • "by_quantity": "0",
  • "price": 0,
  • "lock_price": "0",
  • "if_is_upsale": "0"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "active": "string",
  • "ordering": "string",
  • "title": "string",
  • "rule": "string",
  • "type": "string",
  • "type_line": "string",
  • "shop_id": "string",
  • "look_products_id": "string",
  • "look_products_group_id": "string",
  • "add_products_id": "string",
  • "percentage_of": "string",
  • "by_quantity": "string",
  • "price": "string",
  • "lock_price": "string",
  • "if_is_upsale": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Delete an adjustment rule

Deletes the specified adjustment rule record.

path Parameters
id
required
integer

The ID of the adjustment rule to delete

Responses

Response samples

Content type
application/json
204

List all shop rules

Returns all shop rules ordered by ID, including product group and shop targeting alongside the configured cost-price multiplier.

Responses

Response samples

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

Create a shop rule

Validates the request and creates a new shop rule record.

Request Body schema: application/json
active
integer or null
Enum: "0" "1"
costprice_multiplier_percent
number or null
products_group_ids
Array of integers or null
shop_ids
Array of integers or null

Responses

Request samples

Content type
application/json
{
  • "active": "0",
  • "costprice_multiplier_percent": 0,
  • "products_group_ids": [
    ],
  • "shop_ids": [
    ]
}

Response samples

Content type
application/json
201

Get a shop rule by ID

Retrieves a single shop rule record by its primary key.

path Parameters
id
required
integer

The ID of the shop rule to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "active": "string",
  • "products_group_ids": "string",
  • "shop_ids": "string",
  • "costprice_multiplier_percent": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Update a shop rule

Validates the request and updates the specified shop rule record.

path Parameters
id
required
integer

The ID of the shop rule to update

Request Body schema: application/json
active
integer or null
Enum: "0" "1"
costprice_multiplier_percent
number or null
products_group_ids
Array of integers or null
shop_ids
Array of integers or null

Responses

Request samples

Content type
application/json
{
  • "active": "0",
  • "costprice_multiplier_percent": 0,
  • "products_group_ids": [
    ],
  • "shop_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "active": "string",
  • "products_group_ids": "string",
  • "shop_ids": "string",
  • "costprice_multiplier_percent": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Delete a shop rule

Deletes the specified shop rule record.

path Parameters
id
required
integer

The ID of the shop rule to delete

Responses

Response samples

Content type
application/json
204

List all price rules

Returns all price rules ordered by ID, including targeting IDs, rule type, and all multiplier values.

Responses

Response samples

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

Create a price rule

Validates the request and creates a new price rule record.

Request Body schema: application/json
active
integer or null
Enum: "0" "1"
show_on_lines
integer or null
Enum: "0" "1"
name
string or null <= 255 characters
display_name
string or null <= 255 characters
type
integer or null
Enum: "1" "2" "3"
price_multiplier_percent
number or null
price_multiplier_amount
number or null
price_multiplier_fixed
number or null
customer_pricegroup_ids
Array of integers or null
shop_ids
Array of integers or null
products_group_ids
Array of integers or null

Responses

Request samples

Content type
application/json
{
  • "active": "0",
  • "show_on_lines": "0",
  • "name": "string",
  • "display_name": "string",
  • "type": "1",
  • "price_multiplier_percent": 0,
  • "price_multiplier_amount": 0,
  • "price_multiplier_fixed": 0,
  • "customer_pricegroup_ids": [
    ],
  • "shop_ids": [
    ],
  • "products_group_ids": [
    ]
}

Response samples

Content type
application/json
201

Get a price rule by ID

Retrieves a single price rule record by its primary key.

path Parameters
id
required
integer

The ID of the price rule to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "active": "string",
  • "show_on_lines": "string",
  • "name": "string",
  • "display_name": "string",
  • "type": "string",
  • "customer_pricegroup_ids": "string",
  • "shop_ids": "string",
  • "products_group_ids": "string",
  • "price_multiplier_percent": "string",
  • "price_multiplier_amount": "string",
  • "price_multiplier_fixed": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Update a price rule

Validates the request and updates the specified price rule record.

path Parameters
id
required
integer

The ID of the price rule to update

Request Body schema: application/json
active
integer or null
Enum: "0" "1"
show_on_lines
integer or null
Enum: "0" "1"
name
string or null <= 255 characters
display_name
string or null <= 255 characters
type
integer or null
Enum: "1" "2" "3"
price_multiplier_percent
number or null
price_multiplier_amount
number or null
price_multiplier_fixed
number or null
customer_pricegroup_ids
Array of integers or null
shop_ids
Array of integers or null
products_group_ids
Array of integers or null

Responses

Request samples

Content type
application/json
{
  • "active": "0",
  • "show_on_lines": "0",
  • "name": "string",
  • "display_name": "string",
  • "type": "1",
  • "price_multiplier_percent": 0,
  • "price_multiplier_amount": 0,
  • "price_multiplier_fixed": 0,
  • "customer_pricegroup_ids": [
    ],
  • "shop_ids": [
    ],
  • "products_group_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "active": "string",
  • "show_on_lines": "string",
  • "name": "string",
  • "display_name": "string",
  • "type": "string",
  • "customer_pricegroup_ids": "string",
  • "shop_ids": "string",
  • "products_group_ids": "string",
  • "price_multiplier_percent": "string",
  • "price_multiplier_amount": "string",
  • "price_multiplier_fixed": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Delete a price rule

Deletes the specified price rule record.

path Parameters
id
required
integer

The ID of the price rule to delete

Responses

Response samples

Content type
application/json
204

Api

Return a static OK payload to confirm the API is reachable

This endpoint is intentionally public (no auth:api middleware) and is used by uptime monitors and deployment checks.

Responses

Response samples

Content type
application/json
{
  • "status": "OK"
}