Decisiv SRM Gateway - Asset Management

The fleet / asset-owner view of the SRM Gateway. Registered assets and components, depots, extended asset attributes, contacts, service requests to service providers, cases and case summaries, case notes, attachments, participants and recipients, estimates, and the VMRS coding reference.

OpenAPI Specification

decisiv-asset-management-openapi.yml Raw ↑
openapi: 3.1.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: Asset Management
  description: Inside of **Decisiv SRM Gateway**, the `Asset Management` module represents all interactions and functionality
    which an Account registered with a `Fleet subscription` can perform through an API interface.
  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: []
paths:
  /asset_management/{srm_account_id}/v1/case_summaries:
    get:
      operationId: listCaseSummaries
      summary: List all case summaries for the requested account
      description: Returns summaries of case activity. Use the `include=case` parameter to sideload the full case resource
        alongside each summary.
      tags:
      - Case Summaries
      parameters:
      - name: srm_account_id
        in: path
        description: The account ID for SRM
        required: true
        schema:
          type: string
      - name: filter[service_provider.external_reference.srm_account]
        in: query
        required: false
        schema:
          type: string
        description: Filter case summaries by the specified service provider SRM account identifier
      - name: filter[updated_at:gt]
        in: query
        required: false
        schema:
          type: string
        description: Timebased filter to list case summaries updated _greater than_ a specified `ISO8601` timestamp.
      - name: filter[updated_at:gte]
        in: query
        required: false
        schema:
          type: string
        description: Timebased filter to list case summaries updated _greater than or equal to_ a specified `ISO8601` timestamp.
      - name: filter[updated_at:lt]
        in: query
        required: false
        schema:
          type: string
        description: Timebased filter to list case summaries updated _less than_ a specified `ISO8601` timestamp.
      - name: filter[updated_at:lte]
        in: query
        required: false
        schema:
          type: string
        description: Timebased filter to list case summaries updated _less than or equal to_ a specified `ISO8601` timestamp.
      - name: page[number]
        in: query
        required: false
        schema:
          type: number
        description: Sets the desired `page` when encountering larger result sets
      - name: page[size]
        in: query
        required: false
        schema:
          type: number
        description: Sets the desired maximum number of results per page
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - case
        description: The relationships to be included.
      responses:
        '200':
          description: Returns list of case summaries for the account
          content:
            application/vnd.api+json:
              example:
                data:
                - id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  type: case_summaries
                  attributes:
                    content: Vehicle arrived with check engine light on. Diagnosed as faulty O2 sensor. Replaced and cleared
                      codes.
                    created_at: '2025-04-07T18:58:31Z'
                    updated_at: '2025-04-07T18:58:31Z'
                  relationships:
                    case:
                      data:
                        type: cases
                        id: e3dd4797-3215-4522-a2a8-7f3ccdb1fd44
              schema:
                $ref: '#/components/schemas/case_summaries'
        '400':
          description: This response may occur when an invalid request has been provided to the server.  The request may be
            corrected by the consumer and resubmitted.
          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'
        '404':
          description: This response may occur when the requested resource is not found.
          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'
        '424':
          description: This response may occur when there is an unresolved data dependency or configuration required inside
            of the Decisiv Platform preventing access to the requested action.
          content:
            application/vnd.api+json:
              example:
                errors:
                - title: Failed Dependency
                  detail: Failed Dependency
                  code: '424'
                  status: '424'
              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'
  /asset_management/{srm_account_id}/v1/cases:
    get:
      operationId: listCases
      description: Returns a list of cases for the requested account.
      summary: List all Case for the requested account
      tags:
      - Cases
      parameters:
      - name: srm_account_id
        in: path
        description: The account ID for SRM
        required: true
        schema:
          type: string
      - name: filter[event_timestamps.started_at:lt]
        in: query
        required: false
        schema:
          type: string
        description: Timebased filter to list cases started _less than_ a specified `ISO8601` timestamp.
      - name: filter[event_timestamps.started_at:lte]
        in: query
        required: false
        schema:
          type: string
        description: Timebased filter to list cases started _less than or equal to_ a specified `ISO8601` timestamp.
      - name: filter[event_timestamps.started_at:gt]
        in: query
        required: false
        schema:
          type: string
        description: Timebased filter to list cases started _greater than_ a specified `ISO8601` timestamp.
      - name: filter[event_timestamps.started_at:gte]
        in: query
        required: false
        schema:
          type: string
        description: Timebased filter to list cases started _greater than or equal to_ a specified `ISO8601` timestamp.
      - name: filter[updated_at:gte]
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Filter cases last updated _on or after_ the specified `ISO 8601` datetime.
      - name: filter[updated_at:lte]
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Filter cases last updated _on or before_ the specified `ISO 8601` datetime.
      - name: filter[registered_asset.id]
        in: query
        required: false
        schema:
          type: string
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
          minLength: 36
          maxLength: 36
        description: Filter cases based upon the specified `Registered Asset` identifier
      - name: filter[service_provider.id]
        in: query
        required: false
        schema:
          type: string
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
          minLength: 36
          maxLength: 36
        description: Filter cases based upon the specified `Service Provider` identifier
      - name: filter[service_provider.external_reference.srm_account]
        in: query
        required: false
        schema:
          type: string
        description: Filter cases based upon the specified `Service Provider` srm account identifier
      - name: filter[event_timestamps.closed_at:exists]
        in: query
        required: false
        schema:
          type: boolean
        description: Filter cases by whether a `closed_at` timestamp exists. Use `true` to list only closed cases, or `false`
          to list only open cases. Must be paired up with either a registered_asset.id filter, a timebased filter, or a service_provider.id
          filter.
      - name: filter[closed]
        in: query
        required: false
        deprecated: true
        schema:
          type: string
        description: '**Deprecated** — use `filter[event_timestamps.closed_at:exists]` instead. Filters cases for the given
          closed, using `true` or `false` for exact matching search. Required to be paired up with either a registered_asset.id
          filter, a timebased filter, or a service_provider.id filter.'
      - name: page[number]
        in: query
        required: false
        schema:
          type: number
        description: Sets the desired `page` when encountering larger result sets
      - name: page[size]
        in: query
        required: false
        schema:
          type: number
        description: Sets the desired maximum number of results per page
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - registered_asset
            - service_provider
            - estimates
            - billing_contact
            - primary_contact
        description: The relationships to be included.
      responses:
        '200':
          description: Returns list of cases
          content:
            application/vnd.api+json:
              example:
                data:
                - id: e3dd4797-3215-4522-a2a8-7f3ccdb1fd44
                  type: cases
                  attributes:
                    complaint: Check Engine Light continually on
                    invoice:
                      total: 0
                      number: TR-91324
                      invoice_date: '2025-04-07'
                    po_number: THX1138
                    auth_number: FLT2112
                    ro_number: RO1888
                    reference_number: 18328893
                    closed: false
                    repair_status: Diagnosing
                    status: Drop-off
                    event_timestamps:
                      started_at: '2025-04-07T18:58:31Z'
                      requested_appointment_time: '2025-04-07T17:20:31Z'
                      requested_completion_time: '2025-04-07T17:20:31Z'
                      actual_time_to_repair: '2025-04-07T17:20:31Z'
                      estimated_time_to_repair: '2025-04-07T17:20:31Z'
                      followup_time: '2025-04-07T19:58:31Z'
                      asset_arrived: '2025-04-07T16:58:31Z'
                      asset_checked_in: '2025-04-07T17:20:31Z'
                      closed_at: '2025-04-07T17:20:31Z'
                      asset_uptime: '2025-04-07T17:20:31Z'
                      asset_downtime: '2025-04-06T18:58:31Z'
                    asset_information:
                      odometer_value: 61342
                      odometer_unit: mi
                      unit_number: 42X
                      cargo:
                        unit: null
                        loaded: false
                        load: null
                    breakdown:
                      location: outside Seneca Lodge
                      city: Watkins Glen
                      state: NY
                    created_at: '2025-04-07T18:58:31Z'
                    updated_at: '2025-04-07T18:58:31Z'
                  relationships:
                    estimates:
                      data: []
                    registered_asset:
                      data:
                        type: registered_assets
                        id: 552fb6b4-bbce-452b-bb60-8f40ca6e8eb3
                    service_provider:
                      data:
                        type: service_providers
                        id: 49babff7-536d-4262-b267-de66a19452cf
                    assignee:
                      data:
                        type: internal_users
                        id: d60717e2-e303-11ea-86c2-1f9b5bc5281b
                    billing_contact:
                      data:
                        type: contacts
                        id: 3f2a1c9e-6b4d-4e2a-9c1a-7d5f8e2b9a10
                    primary_contact:
                      data:
                        type: contacts
                        id: 9b6e2b7d-1f4a-4b8e-9d3c-5a7f0e2c8b41
              schema:
                $ref: '#/components/schemas/cases'
        '400':
          description: This response may occur when an invalid request has been provided to the server.  The request may be
            corrected by the consumer and resubmitted.
          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]
                - code: decisiv:filters:010
                  title: Invalid filter value
                  detail: Invalid filter value `{{invalid_filter}}`. Expected an ISO 8601 timestamp.
                  status: '400'
                  source:
                    parameter: filter[event_timestamps.started_at:gte]
              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'
        '404':
          description: This response may occur when the requested resource is not found.
          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'
        '424':
          description: This response may occur when there is an unresolved data dependency or configuration required inside
            of the Decisiv Platform preventing access to the requested action.
          content:
            application/vnd.api+json:
              example:
                errors:
                - title: Failed Dependency
                  detail: Failed Dependency
                  code: '424'
                  status: '424'
              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'
  /asset_management/{srm_account_id}/v1/cases/{id}:
    get:
      operationId: getCase
      description: Returns details for a specific case.
      summary: List details on a specific case
      tags:
      - Cases
      parameters:
      - name: srm_account_id
        in: path
        description: The account ID for SRM
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The resource uuid
        required: true
        schema:
          type: string
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - registered_asset
            - service_provider
            - estimates
            - billing_contact
            - primary_contact
        description: The relationships to be included.
      responses:
        '200':
          description: Show details for requested case
          content:
            application/vnd.api+json:
              example:
                data:
                  id: e3dd4797-3215-4522-a2a8-7f3ccdb1fd44
                  type: cases
                  attributes:
                    complaint: Check Engine Light continually on
                    invoice:
                      total: 0
                      number: TR-91324
                      invoice_date: '2025-04-07'
                    po_number: THX1138
                    auth_number: FLT2112
                    ro_number: RO1888
                    reference_number: 18328893
                    closed: false
                    repair_status: Diagnosing
                    status: Drop-off
                    event_timestamps:
                      started_at: '2025-04-07T18:58:31Z'
                      requested_appointment_time: '2025-04-07T17:20:31Z'
                      requested_completion_time: '2025-04-07T17:20:31Z'
                      actual_time_to_repair: '2025-04-07T17:20:31Z'
                      estimated_time_to_repair: '2025-04-07T17:20:31Z'
                      followup_time: '2025-04-07T19:58:31Z'
                      asset_arrived: '2025-04-07T16:58:31Z'
                      asset_checked_in: '2025-04-07T17:20:31Z'
                      closed_at: '2025-04-07T17:20:31Z'
                      asset_uptime: '2025-04-07T17:20:31Z'
                      asset_downtime: '2025-04-06T18:58:31Z'
                    asset_information:
                      odometer_value: 61342
                      odometer_unit: mi
                      unit_number: 42X
                      cargo:
                        unit: null
                        loaded: false
                        load: null
                    breakdown:
                      location: outside Seneca Lodge
                      city: Watkins Glen
                      state: NY
                    created_at: '2025-04-07T18:58:31Z'
                    updated_at: '2025-04-07T18:58:31Z'
                  relationships:
                    estimates:
                      data: []
                    registered_asset:
                      data:
                        type: registered_assets
                        id: 552fb6b4-bbce-452b-bb60-8f40ca6e8eb3
                    service_provider:
                      data:
                        type: service_providers
                        id: 49babff7-536d-4262-b267-de66a19452cf
                    assignee:
                      data:
                        type: internal_users
                        id: d60717e2-e303-11ea-86c2-1f9b5bc5281b
                    billing_contact:
                      data:
                        type: contacts
                        id: 3f2a1c9e-6b4d-4e2a-9c1a-7d5f8e2b9a10
                    primary_contact:
                      data:
                        type: contacts
                        id: 9b6e2b7d-1f4a-4b8e-9d3c-5a7f0e2c8b41
              schema:
                $ref: '#/components/schemas/case'
        '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.
          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'
        '424':
          description: This response may occur when there is an unresolved data dependency or configuration required inside
            of the Decisiv Platform preventing access to the requested action.
          content:
            application/vnd.api+json:
              example:
                errors:
                - title: Failed Dependency
                  detail: Failed Dependency
                  code: '424'
                  status: '424'
              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'
    patch:
      operationId: updateCase
      description: Updates the specified case with the provided attributes.
      summary: Updates a case
      tags:
      - Cases
      parameters:
      - name: srm_account_id
        in: path
        description: The account ID for SRM
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The resource uuid
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Show the case updated
          content:
            application/vnd.api+json:
              example:
                data:
                  id: e3dd4797-3215-4522-a2a8-7f3ccdb1fd44
                  type: cases
                  attributes:
                    complaint: Check Engine Light continually on
                    invoice:
                      total: 0
                      number: TR-91324
                      invoice_date: '2025-04-07'
                    po_number: THX1138
                    auth_number: FLT2112
                    ro_number: RO1888
                    reference_number: 18328893
                    closed: false
                    repair_status: Diagnosing
                    status: Drop-off
                    event_timestamps:
                      started_at: '2025-04-07T18:58:31Z'
                      requested_appointment_time: '2025-04-07T17:20:31Z'
                      requested_completion_time: '2025-04-07T17:20:31Z'
                      actual_time_to_repair: '2025-04-07T17:20:31Z'
                      estimated_time_to_repair: '2025-04-07T17:20:31Z'
                      followup_time: '2025-04-07T19:58:31Z'
                      asset_arrived: '2025-04-07T16:58:31Z'
                      asset_checked_in: '2025-04-07T17:20:31Z'
                      closed_at: '2025-04-07T17:20:31Z'
                      asset_uptime: '2025-04-07T17:20:31Z'
                      asset_downtime: '2025-04-06T18:58:31Z'
                    asset_information:
                      odometer_value: 61342
                      odometer_unit: mi
                      unit_number: 42X
                      cargo:
                        unit: null
                        loaded: false
                        load: null
                    breakdown:
                      location: outside Seneca Lodge
                      city: Watkins Glen
                      state: NY
                    created_at: '2025-04-07T18:58:31Z'
                    updated_at: '2025-04-07T18:58:31Z'
                  relationships:
                    estimates:
                      data: []
                    registered_asset:
                      data:
                        type: registered_assets
                        id: 552fb6b4-bbce-452b-bb60-8f40ca6e8eb3
                    service_provider:
                      data:
                        type: service_providers
                        id: 49babff7-536d-4262-b267-de66a19452cf
                    assignee:
                      data:
                        type: internal_users
                        id: d60717e2-e303-11ea-86c2-1f9b5bc5281b
                    billing_contact:
                      data:
                        type: contacts
                        id: 3f2a1c9e-6b4d-4e2a-9c1a-7d5f8e2b9a10
                    primary_contact:
                      data:
                        type: contacts
                        id: 9b6e2b7d-1f4a-4b8e-9d3c-5a7f0e2c8b41
              schema:
                $ref: '#/components/schemas/case'
        '400':
          description: This response may occur when the request body is missing required keys (e.g. attributes hash) or when
            a relationship linkage's `type` is not one of `contacts`, `registered_contacts`, `recipients`.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/errors_response'
              examples:
                Missing required attribute key:
                  value:
                    errors:
                    - status: '400'
                      code: decisiv:request_attributes:001
                      title: Missing required attribute key
                      detail: Required key not provided in request body
                      source:
                        pointer: /data/attributes
                Invalid resource type:
                  value:
                    errors:
                    - status: '400'
                      code: decisiv:resource:002
                      title: Resource type is invalid
                      detail: Resource type is invalid
                      source:
                        pointer: /data/relationships/primary_contact/data/type
        '404':
          description: This response may occur when the requested resource is not found.
          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'
        '422':
          description: Immutable Attribute error / Attribute cannot be updated error / Invalid fleet status value / Contact
            relationship not found
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/errors_response'
              examples:
                Immutable Attribute error:
                  value:
                    errors:
                    - status: '422'
                      title: Immutable Attribute
                      detail: The resource attribute is immutable through this particular endpoint
                      code: decisiv:request_attributes:005
                      source:
                        pointer: /data/attributes/ro_number
                Attribute cannot be updated error:
                  value:
                    errors:
                    - status: '422'
                      title: Immutable Attribute
                      detail: The resource attribute is immutable through this particular endpoint
                      code: decisiv:request_attributes:005
                      source:
                        pointer: /data/attributes/correction
                Invalid fleet status:
                  value:
                    errors:
                    - status: '422'
                      code: decisiv:request_attributes:010
                      title: Invalid Attribute Value
                      detail: 'Invalid status value provided - value must be one of: Working, Pick-up, Drop-off, Complete,
                        Hold (auth), Hold (parts), Hold (information)'
                      source:
                        pointer: /data/attributes/status
                Contact relationship not found:
                  value:
                    errors:
                    - status: '422'
                      code: decisiv:request_attributes:003
                      title: Identifier not found
                      detail: Contact not found in database
                      source:
                        pointer: /data/relationships/billing_contact/data/id
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              $ref:

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