Organise and send work
Intervention types, forms, customers, technicians, cases, appointments, missions, checklists, documents, quotes, recurring work and knowledge base.
API · Dossieropvolging
Maak interventies aan, wijs technici toe en beheer berichten, documenten, offertes, goedkeuringen, checklists, herhalingen en tijdregistraties vanuit uw eigen systeem.
https://api.sellviaapp.com/X-API-Key + BearerSnel starten
Get the X-API-Key and generate the Bearer in Dashboard → API. Enter them below, then use “Test · Generate” on an endpoint to obtain the response and cURL, PHP 8 or JavaScript code.
Credentials remain in memory for this page only. For a customer-related operation, add customer_id.
ERP ↔ SellViaApp
The API is not limited to retrieving cases. Your software can configure the module, supply the data used by the app, assign technicians and retrieve actions completed in the field or by customers.
Intervention types, forms, customers, technicians, cases, appointments, missions, checklists, documents, quotes, recurring work and knowledge base.
Customer requests, statuses, progress, messages, photos, documents, completed steps, time entries, quote decisions, approvals and signatures.
Your ERP stores the identifiers returned by SellViaApp, retrieves cases and related data, then applies only relevant changes to your system.
Eindpunten
Create, search, retrieve and update a case: status, priority, progress, appointments, assignment and technician mission.
/case/list
Sleutel + drager
List the signed-in customer cases; a supplier token can list every case.
page
geheel getal
Optional
Paginanummer, vanaf 1.
per_page
geheel getal
Optional
Number of results per page.
customer_id
geheel getal
Optional
Required only with an integration token when the operation targets a specific customer.
status
tekenreeks
Optional
Filter by status code.
type_id
geheel getal
Optional
Filter by intervention type.
priority
enum
Optional
low | normal | high | urgent
q
tekenreeks
Optional
Supplier search by reference, title, description or assignee.
{
"success": true,
"message": "Operation successful",
"data": {
"items": [],
"pagination": {
"page": 1,
"per_page": 25,
"total": 0,
"last_page": 1
}
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/detail
Sleutel + drager
Retrieve a case with timeline, messages, documents and detailed quotes. The private mission is returned only to the assigned technician and supplier.
id
geheel getal
Vereist
Case identifier.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/create
Sleutel + drager
Create a service request linked to the customer.
customer_id
geheel getal
Optional
Required only with a supplier token.
type_id
geheel getal
Optional
Active intervention type.
title
tekenreeks
Vereist
Short request title.
description
tekenreeks
Vereist
Problem or request description.
status
tekenreeks
Optional
Supplier only; defaults to new.
priority
enum
Optional
low | normal | high | urgent
progress
geheel getal
Optional
0 - 100
address
tekenreeks
Optional
Service address.
appointment_start
datetime
Optional
YYYY-MM-DD HH:MM:SS
appointment_end
datetime
Optional
YYYY-MM-DD HH:MM:SS
assigned_to
tekenreeks
Optional
Assigned person or team.
technician_id
geheel getal
Optional
Assigned technician; supplier only.
custom_fields
object
Optional
Values indexed by custom field ID or key.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/update
Sleutel + drager
Update customer, type, status, priority, progress, appointment and assignment.
id
geheel getal
Vereist
Case identifier.
customer_id
geheel getal
Optional
Linked customer; 0 removes the link.
type_id
geheel getal
Optional
Type; 0 removes the type.
title
tekenreeks
Optional
Case title.
description
tekenreeks
Optional
Detailed description.
status
tekenreeks
Optional
Code returned by case/status/list.
priority
enum
Optional
low | normal | high | urgent
progress
geheel getal
Optional
0 - 100
address
tekenreeks
Optional
Service address.
appointment_start
datetime
Optional
Empty to clear the date.
appointment_end
datetime
Optional
Empty to clear the date.
assigned_to
tekenreeks
Optional
Assigned person or team.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/status/list
Sleutel + drager
List workflow statuses and their translated labels.
No business parameter is expected. Send only the indicated authentication headers.
{
"success": true,
"message": "Operation successful",
"data": {
"items": [],
"pagination": {
"page": 1,
"per_page": 25,
"total": 0,
"last_page": 1
}
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}Eindpunten
Let the ERP manage intervention types and custom fields requested in the mobile app.
/case/type/list
Sleutel + drager
List available intervention types.
include_inactive
booleaans
Optional
Supplier only; includes hidden types.
{
"success": true,
"message": "Operation successful",
"data": {
"items": [],
"pagination": {
"page": 1,
"per_page": 25,
"total": 0,
"last_page": 1
}
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/type/add
Sleutel + drager
Create an intervention type.
name
tekenreeks
Vereist
Type name.
description
tekenreeks
Optional
Maximum 2,000 characters.
sort_order
geheel getal
Optional
Display order.
active
booleaans
Optional
Active by default.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/type/update
Sleutel + drager
Edit, reorder or hide an intervention type.
id
geheel getal
Vereist
Type identifier.
name
tekenreeks
Vereist
Type name.
description
tekenreeks
Optional
Description.
sort_order
geheel getal
Optional
Display order.
active
booleaans
Optional
Type availability.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/type/delete
Sleutel + drager
Delete an unused type or archive a linked type.
id
geheel getal
Vereist
A type in use will be archived.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/form/list
Sleutel + drager
List custom service-request fields.
type_id
geheel getal
Optional
Limit to global fields and the selected type.
include_inactive
booleaans
Optional
Supplier only.
{
"success": true,
"message": "Operation successful",
"data": {
"items": [],
"pagination": {
"page": 1,
"per_page": 25,
"total": 0,
"last_page": 1
}
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/form/add
Sleutel + drager
Add information to request from customers.
type_id
geheel getal
Optional
0 or omitted for every type.
label_fr
tekenreeks
Vereist
French label.
label_en
tekenreeks
Optional
English label.
field_type
enum
Vereist
text | textarea | select | boolean | date | number
options
array
Optional
Required for select.
required
booleaans
Optional
Required answer.
sort_order
geheel getal
Optional
Display order.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/form/update
Sleutel + drager
Update a custom request field.
id
geheel getal
Vereist
Field identifier.
type_id
geheel getal
Optional
Linked type or 0.
label_fr
tekenreeks
Vereist
French label.
label_en
tekenreeks
Optional
English label.
field_type
enum
Vereist
text | textarea | select | boolean | date | number
options
array
Optional
Menu options.
required
booleaans
Optional
Required answer.
active
booleaans
Optional
Visible field.
sort_order
geheel getal
Optional
Order.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/form/delete
Sleutel + drager
Delete or archive a custom request field.
id
geheel getal
Vereist
Field identifier.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}Eindpunten
Synchronise field teams, skills and roles, then assign every intervention to the right technician.
/case/technician/list
Sleutel + drager
List technicians separately with job, skills, availability and workload.
No business parameter is expected. Send only the indicated authentication headers.
{
"success": true,
"message": "Operation successful",
"data": {
"items": [],
"pagination": {
"page": 1,
"per_page": 25,
"total": 0,
"last_page": 1
}
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/technician/detail
Sleutel + drager
Retrieve a technician’s complete professional record.
technician_id
geheel getal
Vereist
Technician identifier.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/technician/profile
Sleutel + drager
Create or update a technician account’s professional profile.
technician_id
geheel getal
Vereist
Mobile account to configure as technician.
employee_code
tekenreeks
Optional
Employee or internal code.
job_title
tekenreeks
Optional
Technician job title.
specialties
tekenreeks
Optional
Field specialities.
skills
tekenreeks
Optional
Skills and certifications.
service_area
tekenreeks
Optional
Service area.
availability_notes
tekenreeks
Optional
Usual availability.
emergency_available
booleaans
Optional
Available for emergencies.
internal_notes
tekenreeks
Optional
Internal notes hidden in the app.
profile_color
tekenreeks
Optional
#RRGGBB
active
booleaans
Optional
Active technician.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/technician/role
Sleutel + drager
Assign the Customer or Technician role to a mobile account.
customer_id
geheel getal
Vereist
Mobile account.
role
enum
Vereist
client | technician
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/technician/update
Sleutel + drager
Allow the assigned technician to update status and progress.
case_id
geheel getal
Vereist
Service assigned to the signed-in technician.
status
enum
Vereist
planned | in_progress | waiting_customer | completed
progress
geheel getal
Optional
0 - 100
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}Eindpunten
Prepare procedures, retrieve applied steps and record field completion.
/case/checklist/list
Sleutel + drager
Retrieve the checklist and progress for an authorised case.
case_id
geheel getal
Vereist
Case authorised for the signed-in account.
{
"success": true,
"message": "Operation successful",
"data": {
"items": [],
"pagination": {
"page": 1,
"per_page": 25,
"total": 0,
"last_page": 1
}
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/mission/update
Sleutel + drager
Set the private mission visible only to the assigned technician.
case_id
geheel getal
Vereist
Case whose mission is being set.
mission_note
tekenreeks
Optional
Private technician instruction, maximum 10,000 characters. An empty value clears the mission.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/checklist/item/update
Sleutel + drager
Complete or reopen a step; assigned technician or supplier only.
case_id
geheel getal
Vereist
Case assigned to the technician.
item_id
geheel getal
Vereist
Checklist step.
completed
booleaans
Vereist
Complete or reopen the step.
note
tekenreeks
Optional
Optional field note.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/checklist/template/list
Sleutel + drager
List checklist templates and their steps.
No business parameter is expected. Send only the indicated authentication headers.
{
"success": true,
"message": "Operation successful",
"data": {
"items": [],
"pagination": {
"page": 1,
"per_page": 25,
"total": 0,
"last_page": 1
}
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/checklist/template/add
Sleutel + drager
Create a global checklist or one linked to an intervention type.
type_id
geheel getal
Optional
Omit or use 0 for every type.
title_fr
tekenreeks
Vereist
French title.
title_en
tekenreeks
Optional
English title.
items
array
Vereist
Steps as strings or objects with label_fr, label_en, required and sort_order.
active
booleaans
Optional
Active by default.
sort_order
geheel getal
Optional
Template order.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/checklist/template/update
Sleutel + drager
Update a template and safely replace its steps.
id
geheel getal
Vereist
Template identifier.
type_id
geheel getal
Optional
Linked type or 0.
title_fr
tekenreeks
Vereist
French title.
title_en
tekenreeks
Optional
English title.
items
array
Vereist
Complete list replacing template steps.
active
booleaans
Optional
Availability.
sort_order
geheel getal
Optional
Order.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/checklist/template/delete
Sleutel + drager
Delete an unused template or archive an applied template.
id
geheel getal
Vereist
An applied template will be archived.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}Eindpunten
Start, stop, add and audit technician time for every case.
/case/time/list
Sleutel + drager
List time entries and total tracked time for an authorised case.
case_id
geheel getal
Vereist
Case assigned to the technician; supplier access is read-only.
technician_id
geheel getal
Optional
Supplier access only; assigned technician by default.
include_deleted
booleaans
Optional
Supplier access only; include deleted entries and their reason.
{
"success": true,
"message": "Operation successful",
"data": {
"items": [],
"pagination": {
"page": 1,
"per_page": 25,
"total": 0,
"last_page": 1
}
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/time/start
Sleutel + drager
Start a live timer for the assigned technician.
case_id
geheel getal
Vereist
Case assigned to the signed-in technician.
note
tekenreeks
Optional
Optional note, maximum 1,000 characters.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/time/stop
Sleutel + drager
Stop and calculate the active time entry.
case_id
geheel getal
Vereist
Case containing the active time entry.
entry_id
geheel getal
Optional
Active entry; the current case entry is used when omitted.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/time/add
Sleutel + drager
Manually add a date, start time and end time.
case_id
geheel getal
Vereist
Case assigned to the signed-in technician.
started_at
datetime
Vereist
ISO 8601 date and time with timezone.
ended_at
datetime
Vereist
After started_at; duration from 1 minute to 48 hours, without overlap.
note
tekenreeks
Optional
Optional note.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/time/delete
Sleutel + drager
Soft-delete a time entry with a mandatory reason retained in the audit trail.
entry_id
geheel getal
Vereist
Completed entry belonging to the technician.
reason
tekenreeks
Vereist
Mandatory reason from 5 to 1,000 characters.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}Eindpunten
Exchange data with the app, classify documents, send photos and retrieve authorised files.
/case/message/send
Sleutel + drager
Add a message to the case; the sender is identified automatically from the authenticated account.
case_id
geheel getal
Vereist
Case identifier.
message
tekenreeks
Vereist
Message to add.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/document-type/list
Sleutel + drager
List document types visible in the mobile app.
include_inactive
booleaans
Optional
Supplier token only; includes archived types.
{
"success": true,
"message": "Operation successful",
"data": {
"items": [],
"pagination": {
"page": 1,
"per_page": 25,
"total": 0,
"last_page": 1
}
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/document-type/add
Sleutel + drager
Create a document type for the shop.
label_fr
tekenreeks
Vereist
French type name.
label_en
tekenreeks
Optional
English name; falls back to French.
icon
enum
Optional
description | photo_camera | assignment | request_quote | receipt_long | verified | folder | build
color
hex
Optional
#RRGGBB
sort_order
geheel getal
Optional
Display order.
active
booleaans
Optional
Active by default.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/document-type/update
Sleutel + drager
Edit, reorder or hide a document type.
id
geheel getal
Vereist
Type identifier.
label_fr
tekenreeks
Vereist
French type name.
label_en
tekenreeks
Optional
English name.
icon
enum
Optional
description | photo_camera | assignment | request_quote | receipt_long | verified | folder | build
color
hex
Optional
#RRGGBB
sort_order
geheel getal
Optional
Display order.
active
booleaans
Optional
Type availability.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/document-type/delete
Sleutel + drager
Delete an unused type or archive a type already in use.
id
geheel getal
Vereist
Type identifier. A type in use will be archived.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/document/list
Sleutel + drager
List all authorised documents newest first with their customer, technician or administrator source.
page
geheel getal
Optional
Paginanummer, vanaf 1.
per_page
geheel getal
Optional
Number of results per page.
customer_id
geheel getal
Optional
Supplier-only filter.
case_id
geheel getal
Optional
Limit to one case.
unlinked_only
booleaans
Optional
Return only documents not linked to a case.
document_type_id
geheel getal
Optional
Limit to one document type.
folder_path
tekenreeks
Optional
Limit to an exact path, for example Reports / 2026.
{
"success": true,
"message": "Operation successful",
"data": {
"items": [],
"pagination": {
"page": 1,
"per_page": 25,
"total": 0,
"last_page": 1
}
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/document/add
Sleutel + drager
Add one or more photos, PDFs, documents or signatures, optionally linked to a checklist step.
case_id
geheel getal
Optional
Optional case. Required when checklist_item_id is provided.
customer_id
geheel getal
Optional
Required with a supplier token when case_id is absent; ignored for an authenticated customer.
document_type_id
geheel getal
Optional
Classification type; an active default is used when omitted.
checklist_item_id
geheel getal
Optional
Checklist step that must belong to the specified case. Repeat the call to link multiple files.
title
tekenreeks
Optional
Readable title; falls back to the file name.
folder_path
tekenreeks
Optional
Free folder structure separated by /, maximum 8 levels.
note
tekenreeks
Optional
Optional note, maximum 5,000 characters.
customer_visible
booleaans
Optional
A supplier token can keep the document internal with false; mobile uploads remain visible.
kind
enum
Optional
photo | document | signature
photo_stage
enum
Optional
general | before | after
file_name
tekenreeks
Vereist
File name.
mime_type
enum
Vereist
image/jpeg | image/png | image/webp | application/pdf
content_base64
base64
Vereist
Encoded file, maximum 6 MB.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/document/get
Sleutel + drager
Download the Base64 content of an authorised document.
id
geheel getal
Vereist
Document identifier.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/document/preview
Sleutel + drager
Load an optimised image thumbnail before opening and zooming.
id
geheel getal
Vereist
Authorised image-document identifier.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/document/delete
Sleutel + drager
Delete a document that is not attached to a quote.
id
geheel getal
Vereist
Document identifier.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}Eindpunten
Create detailed quotes, retrieve customer decisions and manage final intervention approval.
/case/quote/create
Sleutel + drager
Create and send a detailed quote with lines, discounts, VAT and an optional attachment.
case_id
geheel getal
Vereist
Case identifier.
lines
array
Vereist
1 to 100 objects: description, quantity, unit_price, discount_percent and tax_rate.
notes
tekenreeks
Optional
Maximum 5,000 characters.
valid_until
datum
Optional
JJJJ-MM-DD
attachment
object
Optional
file_name, mime_type and content_base64; maximum 6 MB.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/quote/respond
Sleutel + drager
Accept or reject a quote sent to the customer.
case_id
geheel getal
Vereist
Case identifier.
quote_id
geheel getal
Vereist
Quote identifier.
decision
enum
Vereist
accepted | rejected
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/validation/request
Sleutel + drager
Request customer approval and signature.
case_id
geheel getal
Vereist
Case identifier.
validation_type
tekenreeks
Optional
Defaults to completion.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/validation/send
Sleutel + drager
Record the customer signature, either directly by the customer or on the assigned technician’s phone.
case_id
geheel getal
Vereist
Case identifier accessible to the customer or assigned technician.
validation_type
tekenreeks
Optional
Defaults to completion.
signature_name
tekenreeks
Vereist
Name of the customer signing.
signature_base64
base64
Vereist
PNG signature image encoded as Base64.
comment
tekenreeks
Optional
Optional customer comment.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}Eindpunten
Automate recurring interventions and produce structured final-report data.
/case/recurrence/list
Sleutel + drager
List recurring services.
No business parameter is expected. Send only the indicated authentication headers.
{
"success": true,
"message": "Operation successful",
"data": {
"items": [],
"pagination": {
"page": 1,
"per_page": 25,
"total": 0,
"last_page": 1
}
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/recurrence/add
Sleutel + drager
Create a recurrence from a source case.
source_case_id
geheel getal
Vereist
Case used as the template.
frequency
enum
Vereist
daily | weekly | monthly | yearly
interval_value
geheel getal
Optional
1 - 52
next_run_at
datetime
Vereist
YYYY-MM-DD HH:MM:SS
end_at
datetime
Optional
Optional end date.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/recurrence/update
Sleutel + drager
Update a recurring service.
id
geheel getal
Vereist
Recurrence identifier.
source_case_id
geheel getal
Vereist
Source case.
frequency
enum
Vereist
daily | weekly | monthly | yearly
interval_value
geheel getal
Optional
1 - 52
next_run_at
datetime
Vereist
YYYY-MM-DD HH:MM:SS
end_at
datetime
Optional
Optional end date.
active
booleaans
Optional
Active recurrence.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/recurrence/delete
Sleutel + drager
Stop a recurring service.
id
geheel getal
Vereist
Recurrence identifier.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/recurrence/process
Sleutel + drager
Generate recurring services that are due.
limit
geheel getal
Optional
Maximum 200 creations per call.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/report/summary
Sleutel + drager
Prepare the final report with fields and before/after photos.
case_id
geheel getal
Vereist
Report case.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}Eindpunten
Retrieve customer or technician alerts and synchronise their read status.
/case/notification/list
Sleutel + drager
List automatic notifications for the signed-in customer or technician.
limit
geheel getal
Optional
1 - 100
recipient_type
enum
Optional
Supplier token only: customer or technician.
recipient_id
geheel getal
Optional
Supplier token only.
{
"success": true,
"message": "Operation successful",
"data": {
"items": [],
"pagination": {
"page": 1,
"per_page": 25,
"total": 0,
"last_page": 1
}
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/notification/read
Sleutel + drager
Mark one or every notification as read.
id
geheel getal
Optional
Omit to mark all notifications as read.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}Eindpunten
Supply procedures, FAQs and technical documents available to technicians in the mobile app.
/case/knowledge/categories
Sleutel + drager
List knowledge-base categories. On mobile, access is restricted to active technicians.
include_inactive
booleaans
Optional
Supplier token only.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/knowledge/search
Sleutel + drager
Quickly search FAQs, information, procedures and documents by keyword. Mobile access is technician-only.
q
tekenreeks
Optional
Keyword or phrase, maximum 120 characters.
category_id
geheel getal
Optional
Filter by category.
type
enum
Optional
faq | information | procedure | document
page
geheel getal
Optional
Page, defaults to 1.
limit
geheel getal
Optional
1 to 50 results.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/knowledge/detail
Sleutel + drager
Open an entry and list its attachments without loading large files.
id
geheel getal
Vereist
Entry identifier.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/knowledge/document
Sleutel + drager
Download an authorised Base64 attachment.
id
geheel getal
Vereist
Attachment identifier.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/knowledge/category/add
Sleutel + drager
Create a knowledge category.
title_fr
tekenreeks
Vereist
French title.
title_en
tekenreeks
Optional
English title with French fallback.
description_fr
tekenreeks
Optional
French description.
description_en
tekenreeks
Optional
English description.
color
hex
Optional
#RRGGBB
active
booleaans
Optional
Visible by default.
sort_order
geheel getal
Optional
Order.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/knowledge/category/update
Sleutel + drager
Edit, reorder or hide a category.
id
geheel getal
Vereist
Category identifier.
title_fr
tekenreeks
Vereist
French title.
title_en
tekenreeks
Optional
English title.
active
booleaans
Optional
Visibility.
sort_order
geheel getal
Optional
Order.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/knowledge/category/delete
Sleutel + drager
Delete a category while retaining its entries as uncategorised.
id
geheel getal
Vereist
Category identifier.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/knowledge/article/add
Sleutel + drager
Create a FAQ, information entry, procedure or documentation.
category_id
geheel getal
Optional
Optional category.
content_type
enum
Vereist
faq | information | procedure | document
title_fr
tekenreeks
Vereist
French title.
title_en
tekenreeks
Optional
English title.
summary_fr
tekenreeks
Optional
French summary.
summary_en
tekenreeks
Optional
English summary.
content_fr
tekenreeks
Optional
French content.
content_en
tekenreeks
Optional
English content.
keywords
tekenreeks
Optional
Comma-separated keywords.
featured
booleaans
Optional
Featured.
active
booleaans
Optional
Published.
sort_order
geheel getal
Optional
Order.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/knowledge/article/update
Sleutel + drager
Edit and publish an entry.
id
geheel getal
Vereist
Entry identifier.
content_type
enum
Vereist
faq | information | procedure | document
title_fr
tekenreeks
Vereist
French title.
title_en
tekenreeks
Optional
English title.
content_fr
tekenreeks
Optional
French content.
content_en
tekenreeks
Optional
English content.
active
booleaans
Optional
Published.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/knowledge/article/delete
Sleutel + drager
Delete an entry and its attachments.
id
geheel getal
Vereist
Entry identifier.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/knowledge/document/add
Sleutel + drager
Attach a document up to 8 MB.
article_id
geheel getal
Vereist
Parent entry.
title_fr
tekenreeks
Optional
French title.
title_en
tekenreeks
Optional
English title.
file_name
tekenreeks
Vereist
File name.
mime_type
tekenreeks
Vereist
Allowed MIME type.
content_base64
base64
Vereist
Maximum 8 MB.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}/case/knowledge/document/delete
Sleutel + drager
Delete an attachment.
id
geheel getal
Vereist
Attachment identifier.
{
"success": true,
"message": "Operation successful",
"data": {
"id": 123,
"status": "ok"
},
"error": null
}{
"success": false,
"message": "The request cannot be processed.",
"data": null,
"error": {
"code": "VALIDATION_ERROR",
"category": "validation",
"message": "Check the indicated parameters.",
"details": {
"field": "parameter_name"
}
}
}Reference
Each row has a “Parameters and responses” button showing required or optional fields, possible statuses and JSON examples. An empty list means the resource is not populated yet, not that the endpoint is down.