Decisiv Line Items API

The Line Items API from Decisiv — 2 operation(s) for line items.

Operations 2

GET /service_management/{srm_account_id}/v1/line_items List line items across the account #
GET /service_management/{srm_account_id}/v1/line_items/{id} Retrieve a single line item by id #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/decisiv-line-items-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

decisiv-line-items-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 0.48.24
  termsOfService: https://www.decisiv.com/terms-of-use
  contact:
    name: Decisiv Support
    email: support@decisiv.com
    url: https://www.decisiv.com
  title: Service Management Line Items API
  description: The **Decisiv SRM Gateway** `Service Management` module provides the API functionality for managing an asset's case lifecycle from a Service Providers perspective.
  license:
    name: Proprietary
    identifier: proprietary
    url: https://www.decisiv.com/terms-of-use/
servers:
- url: https://srm-api.staging.decisivapps.com
- url: https://srm-api.decisivapps.com
security:
- OAuth2AuthorizationCode: []
  AccessToken: []
- OAuth2Password: []
  AccessToken: []
tags:
- name: Line Items
paths:
  /service_management/{srm_account_id}/v1/line_items:
    get:
      summary: List line items across the account
      operationId: listLineItems
      description: 'Returns line items for the authenticated account, sourced directly from EstimateItem rather than a single case. Soft-deleted items are excluded.


        This collection can be large, so it is always paginated and the response does not compute a total `record-count` (the `meta.record-count` value is `null`); use `page[number]`/`page[size]` to traverse results.

        '
      tags:
      - Line Items
      parameters:
      - name: srm_account_id
        in: path
        description: The account ID for SRM
        required: true
        schema:
          type: string
      - name: filter[case.id]
        in: query
        required: false
        schema:
          type: string
          format: uuid
        description: 'Restrict to a single case (estimate) UUID. Returns the same set as the nested `GET /cases/{case_id}/line_items` endpoint for that case.

          '
      - name: filter[assignee.id]
        in: query
        required: false
        schema:
          type: string
        description: 'Restrict to line items assigned to the given internal user id(s). Accepts a comma-separated list. Equivalent to `filter[assignee.id:includes]`.

          '
      - name: filter[assignee.id:includes]
        in: query
        required: false
        schema:
          type: string
        description: Comma-separated internal user id(s); returns items assigned to any of them.
      - name: filter[assignee.id:excludes]
        in: query
        required: false
        schema:
          type: string
        description: 'Comma-separated internal user id(s); returns items NOT assigned to any of them. Unassigned items are excluded (SQL `NOT IN` semantics, mirroring the case-level assignee filter).

          '
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - parts
            - technician_stories
            - assignee
            - case
        description: The relationships to be included.
      - name: page[number]
        in: query
        required: false
        schema:
          type: integer
          default: 1
          minimum: 1
        description: Sets the desired `page` when encountering larger result sets
      - name: page[size]
        in: query
        required: false
        schema:
          type: integer
          default: 25
          minimum: 1
        description: Sets the desired maximum number of results per page
      responses:
        '200':
          description: Returns the account's line items
          content:
            application/vnd.api+json:
              example:
                data:
                - id: ba889598-5f26-4481-90f7-2c172d42ca5f
                  type: line_items
                  attributes:
                    complaint: CEL on
                    cause: Diagnostic check required
                    correction: Reset Diagnostics
                    opcode: T3789-0-04
                    price_code: SR37TYP
                    name: Air Dryer Cartridge, Replacement
                    description: All Engines All Years All Models All Makes for Air Dryer Cartridge, Replacement, Description
                    labor:
                      time: 2
                      skill_level: A
                    pricing:
                      estimated_total: '300.00'
                      fixed_total: null
                      labor:
                        estimated_total: '140.00'
                        fixed_total: null
                      parts:
                        estimated_total: '140.00'
                      core_price:
                        estimated_total: '20.00'
                      additional_charges:
                        estimated_total: '450.0'
                    paint:
                      time: 1.5
                      rate: 95
                      total: 142.5
                      skill_level: P1
                    billing_classification: warranty
                    under_warranty: true
                    approval_group_tag: GROUP-A
                    work_status:
                      code: start
                      reason: awaiting_parts
                      timestamp: '2026-06-22T14:30:00Z'
                      set_by_user:
                        id: 6383dc89-05b6-4572-8979-a6257f3597ec
                        name: Jordan Tech
                    approval_status:
                      name: approved
                      reason: labor_cost
                      reason_description: Approved after review
                      reviewed_by:
                        id: 6383dc89-05b6-4572-8979-a6257f3597ec
                        name: Pat Reviewer
                      reviewed_at: '2026-06-22T15:00:00Z'
                    internal_label: approved
                  relationships:
                    parts:
                      data:
                      - type: line_item_parts
                        id: 167f089e-339d-4d05-b175-9b10206c3cbf
                    technician_stories:
                      data:
                      - type: technician_stories
                        id: b2610b45-a2e1-4abf-ad21-7f820bca4923
                    assignee:
                      data:
                        type: internal_users
                        id: 6383dc89-05b6-4572-8979-a6257f3597ec
                    case:
                      data:
                        type: cases
                        id: 9f0e9d3a-3b2a-4f6c-9c7e-2b1a0e5d6c7f
                meta:
                  record-count: null
              schema:
                $ref: '#/components/schemas/line_items'
        '400':
          description: Invalid request (e.g. unknown filter).
          content:
            application/vnd.api+json:
              example:
                errors:
                - title: Filter not allowed
                  detail: '''{{filter_name}}'' is not allowed. Valid filters: {{filters_list}}'
                  code: decisiv:filters:001
                  status: '400'
                  source:
                    parameter: filter[filter_name]
              schema:
                $ref: '#/components/schemas/errors_response'
        '401':
          description: This response may occur when the access token provided within the Authorization token has expired.
          content:
            application/vnd.api+json:
              example:
                errors:
                - title: Access unauthorized
                  detail: Access unauthorized
                  code: decisiv::access_token:001
                  status: '401'
              schema:
                $ref: '#/components/schemas/errors_response'
        '403':
          description: This response may occur when the authenticated user embedded within the Authorization header does not have access to the requested resource.
          content:
            application/vnd.api+json:
              example:
                errors:
                - title: Forbidden
                  detail: User does not have permission to perform this action on the requested resource(s)
                  code: decisiv:access:001
                  status: '403'
              schema:
                $ref: '#/components/schemas/errors_response'
        '422':
          description: A filter value failed validation (e.g. malformed `case.id`).
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/errors_response'
              examples:
                Invalid case id:
                  value:
                    errors:
                    - status: '422'
                      code: decisiv:request_attributes:010
                      title: Invalid Attribute Value
                      detail: Invalid uuid value provided
                      source:
                        parameter: filter[case.id]
        '504':
          description: This response may occur when there is an unexpected system timeout.
          content:
            application/vnd.api+json:
              example:
                errors:
                - code: '504'
                  detail: Gateway timeout error
                  status: '504'
                  title: Gateway timeout error
              schema:
                $ref: '#/components/schemas/errors_response'
  /service_management/{srm_account_id}/v1/line_items/{id}:
    get:
      summary: Retrieve a single line item by id
      operationId: getLineItem
      description: 'Retrieve a single line item scoped to the authenticated account, without needing to know its case.

        '
      tags:
      - Line Items
      parameters:
      - name: srm_account_id
        in: path
        description: The account ID for SRM
        required: true
        schema:
          type: string
      - name: id
        in: path
        schema:
          type: string
          format: uuid
        description: The line item UUID
        required: true
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - parts
            - technician_stories
            - assignee
            - case
        description: The relationships to be included.
      responses:
        '200':
          description: Show details for the requested line item
          content:
            application/vnd.api+json:
              example:
                data:
                  id: ba889598-5f26-4481-90f7-2c172d42ca5f
                  type: line_items
                  attributes:
                    complaint: CEL on
                    cause: Diagnostic check required
                    correction: Reset Diagnostics
                    opcode: T3789-0-04
                    price_code: SR37TYP
                    name: Air Dryer Cartridge, Replacement
                    description: All Engines All Years All Models All Makes for Air Dryer Cartridge, Replacement, Description
                    labor:
                      time: 2
                      skill_level: A
                    billing_classification: warranty
                    under_warranty: true
                    approval_group_tag: GROUP-A
                    internal_label: approved
                  relationships:
                    parts:
                      data:
                      - type: line_item_parts
                        id: 167f089e-339d-4d05-b175-9b10206c3cbf
                    case:
                      data:
                        type: cases
                        id: 9f0e9d3a-3b2a-4f6c-9c7e-2b1a0e5d6c7f
              schema:
                $ref: '#/components/schemas/line_item'
        '401':
          description: This response may occur when the access token provided within the Authorization token has expired.
          content:
            application/vnd.api+json:
              example:
                errors:
                - title: Access unauthorized
                  detail: Access unauthorized
                  code: decisiv::access_token:001
                  status: '401'
              schema:
                $ref: '#/components/schemas/errors_response'
        '403':
          description: This response may occur when the authenticated user embedded within the Authorization header does not have access to the requested resource.
          content:
            application/vnd.api+json:
              example:
                errors:
                - title: Forbidden
                  detail: User does not have permission to perform this action on the requested resource(s)
                  code: decisiv:access:001
                  status: '403'
              schema:
                $ref: '#/components/schemas/errors_response'
        '404':
          description: This response may occur when the requested resource is not found (or belongs to another account).
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '404'
                  code: decisiv:resource:001
                  title: Resource Identifier - Not Found
                  detail: The parent resource could not be found
                  source:
                    parameter: id
              schema:
                $ref: '#/components/schemas/errors_response'
        '504':
          description: This response may occur when there is an unexpected system timeout.
          content:
            application/vnd.api+json:
              example:
                errors:
                - code: '504'
                  detail: Gateway timeout error
                  status: '504'
                  title: Gateway timeout error
              schema:
                $ref: '#/components/schemas/errors_response'
components:
  schemas:
    line_items:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/line_item_properties-data'
        meta:
          type: object
          properties:
            record-count:
              type:
              - integer
              - 'null'
              description: Total count across all pages. An integer on the case-nested collection; null on the account-wide `GET /line_items` collection, which omits the count for performance.
    line_item:
      type: object
      required:
      - data
      properties:
        data:
          type: object
          description: 'A line_item represents a single operation (complaint/cause/correction) on the case.

            '
          properties:
            id:
              type: string
              format: uuid
            type:
              type: string
              enum:
              - line_items
            attributes:
              type: object
              properties:
                complaint:
                  type:
                  - string
                  - 'null'
                  description: Customer-reported issue that originated the operation.
                  maxLength: 6000
                cause:
                  type:
                  - string
                  - 'null'
                  description: Diagnosed cause of the issue.
                  maxLength: 6000
                correction:
                  type:
                  - string
                  - 'null'
                  description: Repair action performed (or to be performed) to address the cause.
                  maxLength: 6000
                internal_label:
                  type:
                  - string
                  - 'null'
                  description: Workflow status of the line item. Values are configurable per account — see `GET /line_item_internal_labels` for the accepted values. `none` is always accepted and represents "no label".
                  maxLength: 255
                  example: approved
                description:
                  type:
                  - string
                  - 'null'
                  description: Free-form notes on the operation, distinct from `complaint` / `cause` / `correction`.
                  maxLength: 6000
                price_code:
                  type:
                  - string
                  - 'null'
                  description: Dealer-defined identifier of a pricing tier used to look up custom labor and parts rates for the line item.
                  maxLength: 255
                approval_group_tag:
                  type:
                  - string
                  - 'null'
                  description: Free-form tag used to group line items together for approval workflows.
                  maxLength: 255
                  example: GROUP-A
                billing_classification:
                  type:
                  - string
                  - 'null'
                  description: How the operation is billed, derived from the operation type. `billable` is the default (no special operation type); the remaining values indicate the operation is not directly billed to the customer.
                  enum:
                  - billable
                  - warranty
                  - policy
                  - campaign
                  - recall
                  example: billable
                under_warranty:
                  type: boolean
                  description: Whether the operation is classified as warranty work (a convenience flag derived from `billing_classification` / the operation type).
                  example: false
                labor:
                  type: object
                  description: Labor inputs for the operation — estimated hours (`time`) and the technician tier (`skill_level`) whose rate drives the calculated labor price in `pricing.labor`.
                  properties:
                    time:
                      type:
                      - number
                      - 'null'
                      description: Labor hours required for the operation.
                      example: 2
                    skill_level:
                      type:
                      - string
                      - 'null'
                      description: Labor skill level applied to the operation. Values are configurable per account — see `GET /skill_levels` for the accepted values.
                      example: C
                paint:
                  type: object
                  description: Paint inputs for the operation — estimated hours (`time`), hourly `rate`, calculated `total`, and the technician tier (`skill_level`).
                  properties:
                    time:
                      type:
                      - number
                      - 'null'
                      description: Paint hours required for the operation.
                      example: 1.5
                    rate:
                      type:
                      - number
                      - 'null'
                      description: Hourly paint labor rate applied to the operation.
                      example: 95
                    total:
                      type:
                      - number
                      - 'null'
                      description: Calculated paint total (time × rate).
                      example: 142.5
                    skill_level:
                      type:
                      - string
                      - 'null'
                      description: Paint skill level applied to the operation.
                      example: P1
                name:
                  type:
                  - string
                  - 'null'
                  description: Human-readable name of the operation performed (e.g. `Air Dryer Cartridge, Replacement`), distinct from `opcode` which is the short identifier.
                  maxLength: 510
                  example: Air Dryer Cartridge, Replacement
                opcode:
                  type: string
                  description: Short identifier for the operation (e.g. `T3789-0-04`), drawn from the operation catalog or set on a custom operation. The serializer falls back through DMS-mapped opcode, source-system opcode, then the catalog opcode.
                  maxLength: 255
                  example: T3789-0-04
                work_status:
                  type:
                  - object
                  - 'null'
                  description: The current work-status transition for the line item (its most recent status history record). Null when the operation has no work status yet.
                  properties:
                    code:
                      type: string
                      description: The work-status transition code.
                      enum:
                      - start
                      - stop
                      - complete
                      - reopen
                      example: start
                    reason:
                      type:
                      - string
                      - 'null'
                      description: Standardized reason for the transition (primarily for `stop`). Null when the transition has no reason.
                      enum:
                      - break
                      - meal
                      - shift_change
                      - reassigned
                      - sick
                      - injured
                      - awaiting_approval
                      - awaiting_parts
                      - awaiting_tools
                      - awaiting_tech_support
                      - user_defined_1
                      - user_defined_2
                      - user_defined_3
                      - user_defined_4
                      - null
                      example: awaiting_parts
                    timestamp:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      description: When the transition occurred (ISO 8601).
                    set_by_user:
                      type:
                      - object
                      - 'null'
                      description: The user the work status is attributed to.
                      properties:
                        id:
                          type:
                          - string
                          - 'null'
                          description: The user's identifier.
                        name:
                          type:
                          - string
                          - 'null'
                          description: The user's full name.
                approval_status:
                  type:
                  - object
                  - 'null'
                  description: The metadata-backed approval status for the line item. Null when no approval has been recorded.
                  properties:
                    name:
                      type: string
                      description: The approval status.
                      enum:
                      - requested
                      - approved
                      - declined
                      - deferred
                      example: approved
                    reason:
                      type:
                      - string
                      - 'null'
                      description: Reason associated with the approval decision.
                    reason_description:
                      type:
                      - string
                      - 'null'
                      description: Free-form description of the approval reason.
                    reviewed_by:
                      type:
                      - object
                      - 'null'
                      description: The user who set the approval status.
                      properties:
                        id:
                          type:
                          - string
                          - 'null'
                          description: The reviewing user's identifier.
                        name:
                          type:
                          - string
                          - 'null'
                          description: The reviewing user's full name.
                    reviewed_at:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      description: When the approval status was last updated (ISO 8601).
                pricing:
                  type: object
                  description: Server-computed pricing breakdown — top-level totals plus per-category sub-totals for `labor`, `parts`, `core_price`, and `additional_charges`. The top-level object and `labor` expose `fixed_total` for flat-rate operations; the other sub-totals expose `estimated_total` only.
                  properties:
                    estimated_total:
                      type:
                      - string
                      - 'null'
                      format: decimal
                      description: Estimated total for the line item, dynamically calculated from labor time, parts, and additional charges. Null when the line item is fixed-price.
                      example: '330.00'
                    fixed_total:
                      type:
                      - string
                      - 'null'
                      format: decimal
                      description: Fixed total for the line item — a flat-rate price tied to a fixed-price opcode, not dynamically calculated. Null when the line item is estimated.
                      example: '425.00'
                    labor:
                      type: object
                      properties:
                        estimated_total:
                          type:
                          - string
                          - 'null'
                          format: decimal
                          description: Estimated labor price, calculated from labor time. Null when labor is fixed-price.
                          example: '140.00'
                        fixed_total:
                          type:
                          - string
                          - 'null'
                          format: decimal
                          description: Fixed labor price for fixed-price labor, not dynamically calculated. Null when labor is estimated.
                          example: '180.00'
                    parts:
                      type: object
                      properties:
                        estimated_total:
                          type: string
                          format: decimal
                          description: Estimated total for parts, calculated from the parts list.
                          example: '140.00'
                    additional_charges:
                      type: object
                      properties:
                        estimated_total:
                          type: string
                          format: decimal
                          description: Sum of additional charges on the line item.
                          example: '50.00'
                    core_price:
                      type: object
                      properties:
                        estimated_total:
                          type: string
                          format: decimal
                          description: Estimated total for core charges on the parts list.
                vmrs:
                  type: object
                  description: 'Vehicle Maintenance Reporting Standards (VMRS) coding for the line item, exposing six VMRS code categories: reason for repair (CK14), operator report (CK82), component code (CK33), position (CK79), technician failure (CK18), and work accomplished (CK15). Each section is null when no code of that category is assigned.'
                  properties:
                    reason_for_repair:
                      type:
                      - object
                      - 'null'
                      description: Identifies what caused an asset to come in for repair
                      properties:
                        code_key:
                          type: string
                          description: VMRS code key — the category bucket within the ATA Vehicle Maintenance Reporting Standards (e.g. `14` Reason for Repair, `33` Component, `15` Work Accomplished).
                          example: '14'
                        code:
                          type: string
                          description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category.
                          example: '01'
                    operator_report:
                      type:
                      - array
                      - 'null'
                      description: Identifies what the operator reports as being the issue
                      items:
                        type: object
                        properties:
                          code_key:
                            type: string
                            description: VMRS code key — the category bucket within the ATA Vehicle Maintenance Reporting Standards (e.g. `14` Reason for Repair, `33` Component, `15` Work Accomplished).
                            example: '82'
                          code:
                            type: string
                            description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category.
                            example: '001'
                    component:
                      type:
                      - object
                      - 'null'
                      description: Provides universal identifiers or generic terms for parts
                      properties:
                        code_key:
                          type: string
                          description: VMRS code key — the category bucket within the ATA Vehicle Maintenance Reporting Standards (e.g. `14` Reason for Repair, `33` Component, `15` Work Accomplished).
                          example: '33'
                        code:
                          type: string
                          description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category.
                          example: 023-000-000
                    position:
                      type:
                      - object
                      - 'null'
                      description: Identifies position based on industry-accepted conventions
                      properties:
                        code_key:
                          type: string
                          description: VMRS code key — the category bucket within the ATA Vehicle Maintenance Reporting Standards (e.g. `14` Reason for Repair, `33` Component, `15` Work Accomplished).
                          example: '79'
                        code:
                          type: string
                          description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category.
                          example: '03'
                    technician_failure:
                      type:
                      - object
                      - 'null'
                      description: Identifies the technical failure diagnosed by the technician
                      properties:
                        code_key:
                          type: string
                          description: VMRS code key — the category bucket within the ATA Vehicle Maintenance Reporting Standards (e.g. `14` Reason for Repair, `33` Component, `15` Work Accomplished).
                          example: '18'
                        code:
                          type: string
                          description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category.
                          example: B1
                    work_accomplished:
                      type:
                      - object
                      - 'null'
                      description: Identifies the repair action the technician performed
                      properties:
                        code_key:
                          type: string
                          description: VMRS code key — the category bucket within the ATA Vehicle Maintenance Reporting Standards (e.g. `14` Reason for Repair, `33` Component, `15` Work Accomplished).
                          example: '15'
                        code:
    

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/decisiv/refs/heads/main/openapi/decisiv-line-items-api-openapi.yml