Service contracts
GET /service-contracts?status=active&supplier_id={id}
POST /service-contracts
GET /service-contracts/{id}
PATCH /service-contracts/{id}number is generated. Do not send tenant_id.
POST — name is required. Optional: status (default active), supplier_id, included_services, starts_at, ends_at (ends_at ≥ starts_at), auto_renew (boolean, default false), notice_date, response_hours (1–720), resolution_hours (1–2160), cost_per_year, contract_manager_id (uuid or numeric user id). Response 201.
PATCH — the same fields, all optional. name must not be empty when you send it.
status: draft | active | paused | ended.
curl -X POST https://app.gymmaintain.com/api/v1/service-contracts \
-H "Authorization: Bearer gm_..." -H "Content-Type: application/json" \
-d '{"name":"All-in cardio","supplier_id":"<uuid>","status":"active","response_hours":8}'