Checkins

Create a checkin

Creates an intake/inspection record for an existing vehicle.

Required body fields: customer_id, vehicle_id. Everything else is optional. The server assigns id, company_id (from the authenticated user), created_by, seq_number, timestamps, and an initial status of "active".

Line-item creation is out of scope for v1 — a created checkin starts with an empty line_items array. The response is the fully materialized post-create entity (same shape as GET /v1/checkins/{id}).

Foreign-key references in the body (customer_id, vehicle_id, work_category_id) must resolve to resources owned by the authenticated user's company. Unreachable refs return 422 parameter_invalid pointing at the offending field.

post/v1/checkins

Request

  • Base URL: https://api.officina.it
  • URL: https://api.officina.it/v1/checkins
  • Auth: HTTP bearer

Request body

customer_idstring required
vehicle_idstring required
titlestring nullable
commentsstring nullable
internal_commentsstring nullable
work_category_idstring nullable

Single-category form, accepted in every revision: the document's only category. To set several, send work_category_ids instead (not both).

work_category_idsstring[]

The document's work categories, in the order chosen (work_category_id in responses reports the first). Trimmed and de-duplicated (first occurrence wins); at most 10, each one of the company's categories (GET /v1/work-categories) — an unknown id is reported on /work_category_ids/{i}. Do not send together with work_category_id: both → 422 parameter_invalid. Available since revision 2026-10-03.

fuel_levelinteger nullable
section1string nullable
section2string nullable
section3string nullable
section4string nullable
section5string nullable
section6string nullable
section7string nullable
section8string nullable
kmnumber nullable

Response

Checkin created.

object'checkin' required
idstring required
seq_numberinteger required

Per-company human-readable sequence (e.g. "Checkin #142"). Assigned at create time and stable afterwards.

status'active' | 'completed' required

Lifecycle state. Mutated only through POST /v1/checkins/{id}/transitions, never via PATCH.

titlestring nullable
commentsstring nullable
internal_commentsstring nullable

Notes visible only to workshop staff.

customer_idstring required
vehicle_idstring required
work_category_idstring nullable
worksheet_idstring nullable

Set when the checkin has been converted into a worksheet.

quote_idstring nullable

Set when the checkin has been converted into a quote.

fuel_levelinteger nullable

Free-form integer captured at intake. Convention is 0–100 (percentage) but the API enforces no bounds today.

section1string nullable
section2string nullable
section3string nullable
section4string nullable
section5string nullable
section6string nullable
section7string nullable
section8string nullable
kmnumber nullable

Odometer reading at intake.

created_bystring required

User id of the staff member who created the checkin.

customer_namestring required

Denormalized display string of the linked customer. Pre-computed on the entity for list-row rendering without a second request.

vehicle_namestring required

Denormalized display string of the linked vehicle.

vehicle_licensestring nullable
work_category_namestring nullable
work_category_idsstring[] required

Every work category ("categoria") of the document, in the order chosen. work_category_id (kept for clients that handle a single category) always equals the first. [] when the document has none, never null. Available since revision 2026-10-03.

delivered_atstring date-time nullable
created_atstring date-time required
updated_atstring date-time required
deleted_atstring date-time nullable

Soft-deletion timestamp. Populated on the response from DELETE /v1/checkins/{id}. Checkins with a non-null deleted_at are not returned by list/detail endpoints — this field appears for the delete response only.

Example response

{
  "id": "chk_4412"
}

Changes

No recorded changes to this operation across all 1 revision of this API.