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: Service Management 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: [] paths: /service_management/{srm_account_id}/v1/cases: get: summary: List cases for the requested account operationId: listCases description: 'Returns a paginated list of cases for the requested SRM account. Supports filtering by service provider, customer asset, customer, repair status, repair order number, and event timestamps. ' tags: - Cases 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 cases by the service provider's SRM account ID. - name: filter[customer_asset.id] in: query required: false schema: type: string format: uuid description: Filter cases matching the exact `customer_asset.id`. - name: filter[customer_asset.vin] in: query required: false schema: type: string minLength: 17 maxLength: 17 description: Filter cases matching the exact `customer_asset.vin`. Must be exactly 17 characters. - name: filter[customer_asset.serial_number] in: query required: false schema: type: string minLength: 6 maxLength: 17 description: Filter cases matching the exact `customer_asset.serial_number`. Must be between 6 and 17 characters. - name: filter[ro_number] in: query required: false schema: type: string maxLength: 40 description: Filter cases matching the exact repair order number. - name: filter[reference_number] in: query required: false schema: type: integer description: Filter cases matching the exact case reference number. - name: filter[repair_status:include] in: query required: false deprecated: true schema: type: string description: '**Deprecated** — use `filter[repair_status:includes]` instead. Filter cases to only those matching the specified repair status(es). Accepts a comma-separated list of up to 50 statuses. See the `repair_status` endpoint for available values.' - name: filter[repair_status:exclude] in: query required: false deprecated: true schema: type: string description: '**Deprecated** — use `filter[repair_status:excludes]` instead. Filter cases to exclude those matching the specified repair status(es). Accepts a comma-separated list of up to 50 statuses. See the `repair_status` endpoint for available values.' - name: filter[repair_status:includes] in: query required: false schema: type: string description: Filter cases to only those matching the specified repair status(es). Accepts a comma-separated list of up to 50 statuses. See the `repair_status` endpoint for available values. - name: filter[repair_status:excludes] in: query required: false schema: type: string description: Filter cases to exclude those matching the specified repair status(es). Accepts a comma-separated list of up to 50 statuses. See the `repair_status` endpoint for available values. - name: filter[assignee.id] in: query required: false schema: type: string format: uuid description: Filter cases assigned to the user with the given assignee id (the id segment of the assignee's user URI). - name: filter[assignee.id:includes] in: query required: false schema: type: string description: Filter cases assigned to any of the given assignee ids. Accepts a comma-separated list of up to 50 ids. - name: filter[assignee.id:excludes] in: query required: false schema: type: string description: Filter cases excluding those assigned to any of the given assignee ids. Accepts a comma-separated list of up to 50 ids. - name: filter[event_timestamps.started_at:lt] in: query required: false schema: type: string format: date-time description: Filter cases started _before_ the specified `ISO 8601` datetime. - name: filter[event_timestamps.started_at:lte] in: query required: false schema: type: string format: date-time description: Filter cases started _on or before_ the specified `ISO 8601` datetime. - name: filter[event_timestamps.started_at:gt] in: query required: false schema: type: string format: date-time description: Filter cases started _after_ the specified `ISO 8601` datetime. - name: filter[event_timestamps.started_at:gte] in: query required: false schema: type: string format: date-time description: Filter cases started _on or after_ the specified `ISO 8601` datetime. - 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. - name: filter[customer_asset.customer.id] in: query required: false schema: type: string format: uuid description: Filter cases matching the exact `customer_asset.customer.id`. - name: filter[customer.id] in: query required: false schema: type: string format: uuid description: Filter cases by the case's primary customer, matching the exact `customer.id` (the customer's UUID). Applies to both local (`customers`) and registered (`registered_customers`) customers. - 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: page[number] in: query required: false schema: type: integer default: 1 minimum: 1 description: 'Sets the desired `page` when encountering larger result sets. The response `meta.metadata.record-count` may be `null` (intentionally not computed to avoid expensive COUNT queries on large datasets). Paginate until a page returns fewer items than `page[size]`. ' - name: page[size] in: query required: false schema: type: integer default: 25 minimum: 1 description: 'Sets the desired maximum number of results per page. The response `meta.metadata.record-count` may be `null` (intentionally not computed to avoid expensive COUNT queries on large datasets). Paginate until a page returns fewer items than `page[size]`. ' responses: '200': description: Returns list of cases content: application/vnd.api+json: example: data: - id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: cases attributes: reference_number: 321098 complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics asset_information: odometer_value: 10000 odometer_unit: mi engine_hours: 167 switch_on_hours: 10 stand_by_hours: 2 event_timestamps: requested_appointment_time: '2025-10-10T13:30:41Z' requested_completion_time: '2025-10-10T13:30:41Z' followup_time: '2025-10-10T13:30:41Z' closed_at: '2025-04-10T13:30:41Z' asset_uptime: '2025-04-10T13:00:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' asset_checked_in: '2025-04-10T12:30:41Z' started_at: '2025-04-10T12:00:41Z' asset_arrived: '2025-04-10T11:30:41Z' asset_downtime: '2025-04-10T10:30:41Z' asset_departed_at: '2025-04-10T13:30:41Z' breakdown: location: Outside Seneca Lodge city: Watkins Glen state: NY repair_status: appointment invoice: total: 3758.5 number: TR-91324 date: '2025-04-10' pricing: parts_total: 432.5 labor_total: 250 core_total: 75 tax: 32.18 haz_waste: 15 vmrs: asset_type: code_key: '2' code: R repair_priority: code_key: '16' code: '2' repair_site: code_key: '17' code: '7' reason_for_repair: code_key: '14' code: '01' operator_report: - code_key: '82' code: '001' - code_key: '82' code: '002' component: code_key: '33' code: 023-000-000 position: code_key: '79' code: '03' technician_failure: code_key: '18' code: B1 work_accomplished: code_key: '15' code: A tag_number: null links: self: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/cases/487136d2-c4d6-424c-b018-f1ed8a740c6a relationships: customer_asset: data: type: customer_assets id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 customer: data: type: customers id: 9b1f3c52-7e44-4a8d-9c2f-1d6e0a2b4c8e billing_contact: data: type: registered_customers id: 7da042d2-c47b-4748-ba65-c114adf1cf62 billing_customer: data: type: registered_customers id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a shipping_customer: data: type: customers id: 11028a0c-1a4b-42c7-86ff-16343fb546a0 service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 program_type: data: type: program_types id: b7390546-9a28-4aed-9e30-1a5afc0ab696 primary_contact: data: type: recipients id: 462d54f5-a1a1-48b5-ac0f-2068259105df driver: data: type: recipients id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d assignee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec department: data: type: departments id: department_code schema: $ref: '#/components/schemas/cases' '400': description: The request contains invalid parameters and may be corrected by the consumer and resubmitted. content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Filter not allowed: value: 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] Invalid filter value: value: errors: - title: Invalid filter value detail: '''{{invalid_value}}'' is not a valid value. Valid values: {{valid_values}}' code: decisiv:filters:002 status: '400' source: parameter: filter[repair_status:include] Date range exceeded: value: errors: - title: Filter validation failed detail: Date range must not exceed 180 days code: decisiv:filters:004 status: '400' Minimum character length not met: value: errors: - title: Minimum character length not met detail: Filter value must be at least {{minimum_length}} characters code: decisiv:filters:007 status: '400' source: parameter: filter[filter_name] Maximum character length exceeded: value: errors: - title: Maximum character length not met detail: Filter value must be less than {{maximum_length}} characters code: decisiv:filters:008 status: '400' source: parameter: filter[filter_name] Invalid filter format: value: errors: - title: Invalid filter format detail: '''{{invalid_filter}}'' is not a valid filter format' code: decisiv:filters:009 status: '400' source: parameter: filter[customer_asset.id] Too many filter values: value: errors: - title: Too many filter values detail: 'Too many values for filter[repair_status:include]. Maximum allowed: 50.' code: decisiv:filters:011 status: '400' source: parameter: filter[repair_status:include] Filter value too long: value: errors: - title: Maximum character length not met detail: Filter value must be less than 4096 characters code: decisiv:filters:008 status: '400' source: parameter: filter[ro_number] Invalid filter characters: value: errors: - title: Invalid filter characters detail: Filter value for filter[ro_number] contains invalid characters. code: decisiv:filters:013 status: '400' source: parameter: filter[ro_number] Invalid filter shape: value: errors: - title: Invalid filter value shape detail: Filter value for filter[ro_number] must be a string. code: decisiv:filters:014 status: '400' source: parameter: filter[ro_number] Invalid date format: value: errors: - title: Invalid date format detail: Invalid filter value `{{invalid_filter}}`. Expected an ISO 8601 timestamp. code: decisiv:filters:010 status: '400' source: parameter: filter[filter_name] '401': description: The access token provided in the Authorization header is missing, invalid, or 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: The authenticated user does not have permission to access the requested resource or the feature is not enabled for the account. content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Forbidden: value: errors: - title: Forbidden detail: User does not have permission to perform this action on the requested resource(s) code: decisiv:access:001 status: '403' Feature unavailable: value: errors: - title: Feature unavailable detail: This feature is not enabled for the requested account code: decisiv:account:002 status: '403' '404': description: The requested account could not be found. content: application/vnd.api+json: example: errors: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' '424': description: An unresolved data dependency or configuration within the Decisiv Platform is 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' '428': description: The authenticated user's token does not include the required module assignment for this resource. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: The user does not have the required module assignment code: decisiv:access:003 status: '428' schema: $ref: '#/components/schemas/errors_response' '504': description: The request timed out due to a long-running query. content: application/vnd.api+json: example: errors: - title: Gateway timeout error detail: Gateway timeout error code: decisiv:timeout:001 status: '504' schema: $ref: '#/components/schemas/errors_response' /service_management/{srm_account_id}/v1/cases/{id}: get: summary: List details on a specific case operationId: getCase description: Returns full detail for a single case, including attributes, VMRS codes, invoice fields, and all relationships associated with the 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 schema: type: string format: uuid description: The resource UUID required: true responses: '200': description: Show details for case content: application/vnd.api+json: example: data: id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: cases attributes: reference_number: 321098 complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics asset_information: odometer_value: 10000 odometer_unit: mi engine_hours: 167 switch_on_hours: 10 stand_by_hours: 2 event_timestamps: requested_appointment_time: '2025-10-10T13:30:41Z' requested_completion_time: '2025-10-10T13:30:41Z' followup_time: '2025-10-10T13:30:41Z' closed_at: '2025-04-10T13:30:41Z' asset_uptime: '2025-04-10T13:00:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' asset_checked_in: '2025-04-10T12:30:41Z' started_at: '2025-04-10T12:00:41Z' asset_arrived: '2025-04-10T11:30:41Z' asset_downtime: '2025-04-10T10:30:41Z' asset_departed_at: '2025-04-10T13:30:41Z' breakdown: location: Outside Seneca Lodge city: Watkins Glen state: NY repair_status: appointment invoice: total: 3758.5 number: TR-91324 date: '2025-04-10' pricing: parts_total: 432.5 labor_total: 250 core_total: 75 tax: 32.18 haz_waste: 15 vmrs: asset_type: code_key: '2' code: R repair_priority: code_key: '16' code: '2' repair_site: code_key: '17' code: '7' reason_for_repair: code_key: '14' code: '01' operator_report: - code_key: '82' code: '001' - code_key: '82' code: '002' component: code_key: '33' code: 023-000-000 position: code_key: '79' code: '03' technician_failure: code_key: '18' code: B1 work_accomplished: code_key: '15' code: A tag_number: null links: self: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/cases/487136d2-c4d6-424c-b018-f1ed8a740c6a relationships: customer_asset: data: type: customer_assets id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 customer: data: type: customers id: 9b1f3c52-7e44-4a8d-9c2f-1d6e0a2b4c8e billing_contact: data: type: registered_customers id: 7da042d2-c47b-4748-ba65-c114adf1cf62 billing_customer: data: type: registered_customers id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a shipping_customer: data: type: customers id: 11028a0c-1a4b-42c7-86ff-16343fb546a0 service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 program_type: data: type: program_types id: b7390546-9a28-4aed-9e30-1a5afc0ab696 primary_contact: data: type: recipients id: 462d54f5-a1a1-48b5-ac0f-2068259105df driver: data: type: recipients id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d assignee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec department: data: type: departments id: department_code schema: $ref: '#/components/schemas/case' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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: summary: Updates a case operationId: updateCase description: Updates a case. Any subset of the attributes and relationships listed in the request body schema may be supplied; omitted fields are not modified. Immutable attributes (such as `ro_number` once set) cannot be changed and will return a 422 error. tags: - Cases 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 resource UUID required: true responses: '200': description: Successful update the meter data for asset content: application/vnd.api+json: example: data: id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: cases attributes: reference_number: 321098 complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics asset_information: odometer_value: 10000 odometer_unit: mi engine_hours: 167 switch_on_hours: 10 stand_by_hours: 2 event_timestamps: requested_appointment_time: '2025-10-10T13:30:41Z' requested_completion_time: '2025-10-10T13:30:41Z' followup_time: '2025-10-10T13:30:41Z' closed_at: '2025-04-10T13:30:41Z' asset_uptime: '2025-04-10T13:00:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' asset_checked_in: '2025-04-10T12:30:41Z' started_at: '2025-04-10T12:00:41Z' asset_arrived: '2025-04-10T11:30:41Z' asset_downtime: '2025-04-10T10:30:41Z' asset_departed_at: '2025-04-10T13:30:41Z' breakdown: location: Outside Seneca Lodge city: Watkins Glen state: NY repair_status: appointment invoice: total: 3758.5 number: TR-91324 date: '2025-04-10' pricing: parts_total: 432.5 labor_total: 250 core_total: 75 tax: 32.18 haz_waste: 15 vmrs: asset_type: code_key: '2' code: R repair_priority: code_key: '16' code: '2' repair_site: code_key: '17' code: '7' reason_for_repair: code_key: '14' code: '01' operator_report: - code_key: '82' code: '001' - code_key: '82' code: '002' component: code_key: '33' code: 023-000-000 position: code_key: '79' code: '03' technician_failure: code_key: '18' code: B1 work_accomplished: code_key: '15' code: A tag_number: null links: self: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/cases/487136d2-c4d6-424c-b018-f1ed8a740c6a relationships: customer_asset: data: type: customer_assets id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 customer: data: type: customers id: 9b1f3c52-7e44-4a8d-9c2f-1d6e0a2b4c8e billing_contact: data: type: registered_customers id: 7da042d2-c47b-4748-ba65-c114adf1cf62 billing_customer: data: type: registered_customers id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a shipping_customer: data: type: customers id: 11028a0c-1a4b-42c7-86ff-16343fb546a0 service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 program_type: data: type: program_types id: b7390546-9a28-4aed-9e30-1a5afc0ab696 primary_contact: data: type: recipients id: 462d54f5-a1a1-48b5-ac0f-2068259105df driver: data: type: recipients id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d assignee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec department: data: type: departments id: department_code schema: $ref: '#/components/schemas/case' '400': description: Path ID mismatch / Missing required attribute key content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Path ID mismatch: value: errors: - status: '400' code: decisiv:resource:006 title: Resource Identifier mismatch detail: Resource Identifier must match the one provided in URL source: pointer: /data/id Missing id key: value: errors: - status: '400' code: decisiv:request_attributes:001 title: Missing required attribute key detail: 'The request is missing a required attribute key: id' source: pointer: /data/id '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: Case not found content: application/vnd.api+json: example: errors: - status: '404' title: The parent resource could not be found code: decisiv:resource:001 source: pointer: /data/id schema: $ref: '#/components/schemas/errors_response' '422': description: Immutable Attribute error / Invalid Attribute Value / Customer asset deactivated 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 Invalid repair_status value: value: errors: - status: '422' code: decisiv:request_attributes:010 title: Invalid Attribute Value detail: Invalid repair_status value provided - must be a valid repair_status for this Service Management account source: pointer: /data/attributes/repair_status links: about: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/repair_statuses Customer asset deactivated: value: errors: - status: '422' code: decisiv:resource:008 title: Customer asset deactivated detail: The related customer asset has been deactivated and cannot be modified source: pointer: /data/relationships/customer_asset '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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/case_update' examples: Case: value: data: id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: cases attributes: complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics event_timestamps: followup_time: '2025-10-10T13:30:41Z' closed_at: '2025-04-10T13:30:41Z' asset_uptime: '2025-04-10T13:00:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' asset_checked_in: '2025-04-10T12:30:41Z' asset_arrived: '2025-04-10T11:30:41Z' asset_downtime: '2025-04-10T10:30:41Z' breakdown: location: Outside Seneca Lodge city: Watkins Glen state: NY country: US repair_status: parts_ordered invoice: total: 3758.5 number: TR-91324 date: '2025-04-10' tag_number: null /service_management/{srm_account_id}/v1/cases/{case_id}/actions/close: post: summary: Close a specific case tags: - Case Actions parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true responses: '202': description: This response may occur when the requested resource is closed. content: application/vnd.api+json: example: data: id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: cases attributes: {} schema: $ref: '#/components/schemas/close_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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' '409': description: This response may occur when the requested resource is already closed before the request. content: application/vnd.api+json: example: errors: - status: '409' code: decisiv:cases:001 title: Invalid Action Request detail: Cases in the closed state of the Service Event lifecycle can not be closed again schema: $ref: '#/components/schemas/errors_response' /service_management/{srm_account_id}/v1/cases/{case_id}/actions/open: post: summary: Open (re-open) a specific case tags: - Case Actions parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true responses: '202': description: This response may occur when the requested resource is opened. content: {} '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' '409': description: This response may occur when the requested resource is already opened before the request. content: application/vnd.api+json: example: errors: - status: '409' code: decisiv:cases:002 title: Invalid Action Request detail: Cases in the opened state of the Service Event lifecycle can not be opened again schema: $ref: '#/components/schemas/errors_response' /service_management/{srm_account_id}/v1/cases/{id}/update_meter_data: post: summary: Updates Meter Data operationId: updateCaseMeterData description: Appends meter readings (odometer, engine hours, stand-by hours, or switch-on hours) to a case. Each entry specifies the meter type, unit, and value; multiple entries may be submitted in a single request. tags: - Cases 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 resource UUID required: true responses: '200': description: Successful update the meter data for asset content: application/vnd.api+json: example: data: id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: cases attributes: reference_number: 321098 complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics asset_information: odometer_value: 10000 odometer_unit: mi engine_hours: 167 switch_on_hours: 10 stand_by_hours: 2 event_timestamps: requested_appointment_time: '2025-10-10T13:30:41Z' requested_completion_time: '2025-10-10T13:30:41Z' followup_time: '2025-10-10T13:30:41Z' closed_at: '2025-04-10T13:30:41Z' asset_uptime: '2025-04-10T13:00:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' asset_checked_in: '2025-04-10T12:30:41Z' started_at: '2025-04-10T12:00:41Z' asset_arrived: '2025-04-10T11:30:41Z' asset_downtime: '2025-04-10T10:30:41Z' asset_departed_at: '2025-04-10T13:30:41Z' breakdown: location: Outside Seneca Lodge city: Watkins Glen state: NY repair_status: appointment invoice: total: 3758.5 number: TR-91324 date: '2025-04-10' pricing: parts_total: 432.5 labor_total: 250 core_total: 75 tax: 32.18 haz_waste: 15 vmrs: asset_type: code_key: '2' code: R repair_priority: code_key: '16' code: '2' repair_site: code_key: '17' code: '7' reason_for_repair: code_key: '14' code: '01' operator_report: - code_key: '82' code: '001' - code_key: '82' code: '002' component: code_key: '33' code: 023-000-000 position: code_key: '79' code: '03' technician_failure: code_key: '18' code: B1 work_accomplished: code_key: '15' code: A tag_number: null links: self: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/cases/487136d2-c4d6-424c-b018-f1ed8a740c6a relationships: customer_asset: data: type: customer_assets id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 customer: data: type: customers id: 9b1f3c52-7e44-4a8d-9c2f-1d6e0a2b4c8e billing_contact: data: type: registered_customers id: 7da042d2-c47b-4748-ba65-c114adf1cf62 billing_customer: data: type: registered_customers id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a shipping_customer: data: type: customers id: 11028a0c-1a4b-42c7-86ff-16343fb546a0 service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 program_type: data: type: program_types id: b7390546-9a28-4aed-9e30-1a5afc0ab696 primary_contact: data: type: recipients id: 462d54f5-a1a1-48b5-ac0f-2068259105df driver: data: type: recipients id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d assignee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec department: data: type: departments id: department_code schema: $ref: '#/components/schemas/case' '400': description: Invalid type / Path ID mismatch content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid type: value: errors: - status: '400' code: decisiv:resource:002 title: Invalid JSON:API Resource specified in request detail: '''wrong-type'' is an invalid resource' source: pointer: /data/type Path ID mismatch: value: errors: - status: '400' code: decisiv:resource:002 title: Invalid JSON:API Resource specified in request detail: '''487136d2-c4d6-424c-b018-f1ed8a740c6a'' is an invalid resource' source: pointer: /data/id '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: Case not found content: application/vnd.api+json: example: errors: - status: '404' title: The parent resource could not be found code: decisiv:resource:001 source: pointer: /data/id schema: $ref: '#/components/schemas/errors_response' '422': description: No code provided content: application/vnd.api+json: example: errors: - status: '422' code: vmrs-001 title: Must have at least one valid code source: pointer: /data/attributes/vmrs 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' requestBody: content: application/vnd.api+json: schema: oneOf: - $ref: '#/components/schemas/case_update_meter_data_odometer_meter' - $ref: '#/components/schemas/case_update_meter_data_eng_hours' - $ref: '#/components/schemas/case_update_meter_data_stand_hours' - $ref: '#/components/schemas/case_update_meter_data_switch_hours' examples: Meter Data: value: data: id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: cases attributes: meter_data: - meter: odometer unit: mi value: 12114 - meter: engine_hours unit: hr value: 180 - meter: stand_by_hours unit: hr value: 1 - meter: switch_on_hours unit: hr value: 2 /service_management/{srm_account_id}/v1/cases/{case_id}/attachments: get: summary: List attachments for the requested case tags: - Case Attachments parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - publisher - subject - recipients 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 list of attachments for the case content: application/vnd.api+json: example: data: - id: 123563ee6-b2f2-49fc-a375-7fb5346ee19d type: attachments attributes: description: The latest estimate filename: estimate.pdf size: 2684354 format: application/pdf download_url: https://decisiv.net/shared/downloads/7746422/get_authed?filename=estimate.pdf&key=184bddd6479a3e3d created_at: '2023-10-01T12:00:00Z' updated_at: '2023-10-01T12:00:00Z' links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/cases/{case_uuid}/attachments/13b763ee6-b2f2-49fc-a375-7fb5346ee19d relationships: publisher: data: type: users id: 6383dc89-05b6-4572-8979-a6257f3597ec subject: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a recipients: data: - type: participants id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d schema: $ref: '#/components/schemas/attachments' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' post: summary: Create an attachment for the requested case tags: - Case Attachments parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: X-DECISIV-SILENCE-EVENTS in: header required: false schema: type: array items: type: string enum: - decisiv:service_management:case:attachment_posted description: Corresponding webhook events which can be muted for the given transaction responses: '201': description: Created an attachment for the case content: application/vnd.api+json: example: data: id: 123563ee6-b2f2-49fc-a375-7fb5346ee19d type: attachments attributes: description: The latest estimate filename: estimate.pdf size: 2684354 format: application/pdf download_url: https://decisiv.net/shared/downloads/7746422/get_authed?filename=estimate.pdf&key=184bddd6479a3e3d created_at: '2023-10-01T12:00:00Z' updated_at: '2023-10-01T12:00:00Z' links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/cases/{case_uuid}/attachments/13b763ee6-b2f2-49fc-a375-7fb5346ee19d relationships: publisher: data: type: users id: 6383dc89-05b6-4572-8979-a6257f3597ec subject: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a recipients: data: - type: participants id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d schema: $ref: '#/components/schemas/attachment' '400': description: Invalid event name to silence / Invalid request attribute / Filename extension does not match / Invalid attribute value content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid event name to silence: value: errors: - title: Bad Request detail: Invalid value for X-DECISIV-SILENCE-EVENTS header code: decisiv:silence_webhook_events:001 status: '400' Invalid request attribute: value: errors: - status: '400' code: decisiv:request_attributes:009 title: Attribute Not Allowed detail: invalid_attribute is not allowed source: pointer: /data/attributes/invalid_attribute Filename extension does not match: value: errors: - status: '400' code: decisiv:attachments:003 title: Filename extension does not match detail: Filename extension does not match the actual filename. source: pointer: /data/attributes/filename Invalid attribute value: value: errors: - status: '400' code: decisiv:request_attributes:010 title: Invalid Attribute Value detail: Invalid {{attribute_name}} value provided - {{reason}} source: pointer: /data/attributes/{{attribute_name}} '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' requestBody: content: multipart/form-data: schema: type: object properties: body: type: string description: 'Data to be sent as a body. **Example:** * {"data": {"type": "attachments","attributes": { "description": "This is a description", "filename": "filename.txt"},"relationships": { "subject": {"data": { "type": "cases", "id": "287b52ce-6429-4319-b8ef-2c3042acfd82"}}, "recipients": {"data": [{ "type": "participants", "id": "287b52ce-6429-4319-b8ef-87113944fe82"}]}}}}}* ' file: description: The file to upload. Sent either as a binary file (the typical multipart upload) or as a Base64-encoded string in this same field — the server decodes Base64 before storing. anyOf: - type: string format: binary - type: string format: byte /service_management/{srm_account_id}/v1/cases/{case_id}/attachments/{id}: get: summary: Retrieve an attachment for the requested case tags: - Case Attachments parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - publisher - subject - recipients description: The relationships to be included. responses: '200': description: Returns list of cases content: application/vnd.api+json: example: data: id: 123563ee6-b2f2-49fc-a375-7fb5346ee19d type: attachments attributes: description: The latest estimate filename: estimate.pdf size: 2684354 format: application/pdf download_url: https://decisiv.net/shared/downloads/7746422/get_authed?filename=estimate.pdf&key=184bddd6479a3e3d created_at: '2023-10-01T12:00:00Z' updated_at: '2023-10-01T12:00:00Z' links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/cases/{case_uuid}/attachments/13b763ee6-b2f2-49fc-a375-7fb5346ee19d relationships: publisher: data: type: users id: 6383dc89-05b6-4572-8979-a6257f3597ec subject: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a recipients: data: - type: participants id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d schema: $ref: '#/components/schemas/attachment' delete: summary: Delete an attachment for the requested case tags: - Case Attachments parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path description: The case uuid required: true schema: type: string - name: id in: path description: The resource uuid required: true schema: type: string responses: '204': description: Deletes an attachment content: {} '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: The resource is read-only and cannot be updated or deleted code: decisiv:resource:003 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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' /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' /service_management/{srm_account_id}/v1/cases/{case_id}/line_items: get: summary: List line items for the requested case operationId: listCaseLineItems description: 'A line item represents a single operation on the case — the atomic complaint/cause/correction unit billed against it, carrying labor, parts, and VMRS coding. ' tags: - Case Line Items parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - parts - technician_stories - assignee description: The relationships to be included. - name: filter[assignee.id] in: query required: false schema: type: string format: uuid description: Filter line items assigned to the user with the given assignee id (the id segment of the assignee's user URI). - name: filter[assignee.id:includes] in: query required: false schema: type: string description: Filter line items assigned to any of the given assignee ids. Accepts a comma-separated list of up to 50 ids. - name: filter[assignee.id:excludes] in: query required: false schema: type: string description: Filter line items excluding those assigned to any of the given assignee ids. Accepts a comma-separated list of up to 50 ids. - 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 list of line items for the case 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 vmrs: reason_for_repair: code_key: '14' code: '01' component: code_key: '33' code: 023-000-000 position: code_key: '79' code: '03' operator_report: - code_key: '82' code: '001' - code_key: '82' code: '002' technician_failure: code_key: '18' code: B1 work_accomplished: code_key: '15' code: 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 schema: $ref: '#/components/schemas/line_items' '400': description: Invalid request. 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' '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' post: summary: Create a line item for the requested case operationId: createCaseLineItem description: 'A line item represents a single operation on the case; multiple may exist per case. ' tags: - Case Line Items parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true responses: '201': description: Successful creation of 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 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 vmrs: reason_for_repair: code_key: '14' code: '01' component: code_key: '33' code: 023-000-000 position: code_key: '79' code: '03' operator_report: - code_key: '82' code: '001' - code_key: '82' code: '002' technician_failure: code_key: '18' code: B1 work_accomplished: code_key: '15' code: 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 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. 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: Attribute value rejected by validation. content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid internal_label value: value: errors: - status: '422' code: decisiv:request_attributes:010 title: Invalid Attribute Value detail: Invalid internal_label value provided source: pointer: /data/attributes/internal_label links: about: https://decisiv.net/service_management/SRM_ACCOUNT/v1/line_item_internal_labels '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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/create_line_item' examples: Create Line Item: value: data: type: line_items attributes: complaint: things are broken in the asset cause: bad use from the owner correction: Fix it all opcode: OPCODE price_code: PriceCode name: Change Engine description: Description internal_label: approved approval_group_tag: GROUP-A billing_classification: warranty labor: time: 3.5 skill_level: A rate: 100 total: 350 approval_status: name: approved reason: labor_cost reason_description: Approved after review vmrs: work_accomplished: code: A technician_failure: code: B1 component: code: 023-000-000 position: code: '03' operator_report: - code: '001' relationships: assignee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec /service_management/{srm_account_id}/v1/cases/{case_id}/line_items/{id}: get: summary: Retrieve a line item for the requested case operationId: getCaseLineItem description: Retrieve a single line item. tags: - Case Line Items parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - parts - technician_stories - assignee description: The relationships to be included. responses: '200': description: Show details for 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 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 vmrs: reason_for_repair: code_key: '14' code: '01' component: code_key: '33' code: 023-000-000 position: code_key: '79' code: '03' operator_report: - code_key: '82' code: '001' - code_key: '82' code: '002' technician_failure: code_key: '18' code: B1 work_accomplished: code_key: '15' code: 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 schema: $ref: '#/components/schemas/line_item' '400': description: Invalid request. 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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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: summary: Update a line item for the requested case operationId: updateCaseLineItem description: 'Reassigning the line item''s `assignee` is not supported on this endpoint. ' tags: - Case Line Items parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true responses: '200': description: Successful update of line item content: application/vnd.api+json: example: data: type: line_items id: ba889598-5f26-4481-90f7-2c172d42ca5f attributes: complaint: things are broken in the asset cause: bad use from the owner correction: Fix it all opcode: OPCODE price_code: PriceCode name: Change Engine description: Description internal_label: approved approval_group_tag: GROUP-A billing_classification: policy under_warranty: false labor: time: 3.5 skill_level: A paint: time: 1.5 rate: 95 total: 142.5 skill_level: P1 work_status: code: complete reason: null timestamp: '2026-06-22T16:00:00Z' set_by_user: id: 6383dc89-05b6-4572-8979-a6257f3597ec name: Jordan Tech approval_status: name: declined reason: parts_costs reason_description: Customer declined parts cost reviewed_by: id: 6383dc89-05b6-4572-8979-a6257f3597ec name: Pat Reviewer reviewed_at: '2026-06-22T16:00:00Z' schema: $ref: '#/components/schemas/line_item' '400': description: Invalid request. content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid Alpha Numeric: value: errors: - status: '400' code: decisiv:request_attributes:010 title: Invalid Attribute Value detail: Invalid skill_level value provided - must be a valid alphanumeric value source: pointer: /data/attributes/labor/skill_level Not Found Skill Level: value: errors: - status: '400' code: decisiv:request_attributes:010 title: Invalid Attribute Value detail: Invalid skill_level value provided - must exist for the namespaced SRM Account source: pointer: /data/attributes/labor/skill_level links: about: https://decisiv.net/service_management/SRM_ACCOUNT/v1/skill_levels '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' '422': description: Attribute value rejected by validation. content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid internal_label value: value: errors: - status: '422' code: decisiv:request_attributes:010 title: Invalid Attribute Value detail: Invalid internal_label value provided source: pointer: /data/attributes/internal_label links: about: https://decisiv.net/service_management/SRM_ACCOUNT/v1/line_item_internal_labels '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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/update_line_item' examples: Update Line Item: value: data: type: line_items id: ba889598-5f26-4481-90f7-2c172d42ca5f attributes: complaint: things are broken in the asset cause: bad use from the owner correction: Fix it all opcode: OPCODE price_code: PriceCode name: Change Engine description: Description internal_label: approved approval_group_tag: GROUP-A billing_classification: policy labor: time: 3.5 skill_level: A rate: 100 total: 350 approval_status: name: declined reason: parts_costs reason_description: Customer declined parts cost vmrs: work_accomplished: code: A technician_failure: code: B1 component: code: 023-000-000 position: code: '03' operator_report: - code: '001' delete: summary: Delete a line item for the requested case operationId: deleteCaseLineItem description: 'Related parts and technician stories are deleted transitively. ' tags: - Case Line Items parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true responses: '204': description: No content. content: {} '401': description: Access token missing, invalid, or 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: User lacks permission on 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: Resource not found. content: application/vnd.api+json: example: errors: - status: '404' code: decisiv:resource:001 title: Resource Identifier - Not Found detail: The resource could not be found source: parameter: id schema: $ref: '#/components/schemas/errors_response' '422': description: The line item cannot be removed because the case is closed. content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Closed case not eligible: value: errors: - status: '422' code: decisiv:cases:line_items:001 title: Closed case not eligible detail: Cases in the closed state cannot be modified '504': description: Gateway 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/cases/{case_uuid}/line_items/{line_item_uuid}/additional_charges: get: summary: List all Additional Charges for the requested line item tags: - Case Line Items - Additional Charges parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_uuid in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_uuid in: path schema: type: string format: uuid description: The line item UUID required: true responses: '200': description: Returns list of additional charge categories content: application/vnd.api+json: example: data: - id: ff0d0f58-9195-4071-a59c-96844600c2bb type: line_item_additional_charges attributes: description: Tax for sales done in the shop code: TAX-123 pricing: amount: '15.00' sales_tax_amount: '2.06' total_amount: '27.06' created_at: '2025-04-10T13:28:31Z' updated_at: '2025-04-10T13:28:31Z' relationships: category: data: type: additional_charge_categories id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 schema: $ref: '#/components/schemas/additional_charges' '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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' post: summary: Creates an additional charge for the line item tags: - Case Line Items - Additional Charges parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_uuid in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_uuid in: path schema: type: string format: uuid description: The line item UUID required: true responses: '201': description: Successful creation of Case Line Item Additional Charge content: application/vnd.api+json: example: data: id: ff0d0f58-9195-4071-a59c-96844600c2bb type: line_item_additional_charges attributes: description: Tax for sales done in the shop code: TAX-123 pricing: amount: '15.00' sales_tax_amount: '2.06' total_amount: '27.06' created_at: '2025-04-10T13:28:31Z' updated_at: '2025-04-10T13:28:31Z' relationships: category: data: type: additional_charge_categories id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 schema: $ref: '#/components/schemas/technician_story' '400': description: Request validation errors returned as HTTP 400. content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid resource error: value: errors: - status: '400' code: decisiv:resource:002 title: Invalid JSON:API Resource specified in request detail: '''{{invalid_resource}}'' is an invalid resource' source: pointer: /data/type Required key not provided error: 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/relationships/category/data Required key not populated error: value: errors: - status: '400' code: decisiv:request_attributes:002 title: Missing required attribute value detail: Required key must be populated source: pointer: /data/attributes/description Missing required relationship: value: errors: - status: '400' code: decisiv:relationships:002 title: Missing required relationship detail: The required relationship category is missing source: pointer: /data/relationships/category '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' '422': description: Subject not found — the relationship references an identifier that does not exist. content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' example: errors: - status: '422' code: decisiv:request_attributes:003 title: Identifier not found detail: Identifier not found source: pointer: /data/relationships/category/data/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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/create_additional_charge' examples: Create Additional Charge: value: data: type: line_item_additional_charges attributes: code: TEST-02 description: Toll api pricing: amount: '45.00' relationships: category: data: type: additional_charge_categories id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 /service_management/{srm_account_id}/v1/cases/{case_uuid}/line_items/{line_item_uuid}/additional_charges/{id}: get: summary: Show an Additional Charges for the requested line item tags: - Case Line Items - Additional Charges parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_uuid in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_uuid in: path schema: type: string format: uuid description: The line item UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - category description: The relationships to be included. responses: '200': description: Returns list of additional charge categories content: application/vnd.api+json: example: data: id: ff0d0f58-9195-4071-a59c-96844600c2bb type: line_item_additional_charges attributes: description: Tax for sales done in the shop code: TAX-123 pricing: amount: '15.00' sales_tax_amount: '2.06' total_amount: '27.06' created_at: '2025-04-10T13:28:31Z' updated_at: '2025-04-10T13:28:31Z' relationships: category: data: type: additional_charge_categories id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 schema: $ref: '#/components/schemas/additional_charge' '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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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: summary: Update an additional charge tags: - Case Line Items - Additional Charges parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_uuid in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_uuid in: path schema: type: string format: uuid description: The line item UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true responses: '200': description: Successful update of Additional Charge content: application/vnd.api+json: example: data: id: ff0d0f58-9195-4071-a59c-96844600c2bb type: line_item_additional_charges attributes: description: Tax for sales done in the shop code: TAX-123 pricing: amount: '15.00' sales_tax_amount: '2.06' total_amount: '27.06' created_at: '2025-04-10T13:28:31Z' updated_at: '2025-04-10T13:28:31Z' relationships: category: data: type: additional_charge_categories id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 schema: $ref: '#/components/schemas/additional_charge' '400': description: Request validation errors returned as HTTP 400. content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid resource error: value: errors: - status: '400' code: decisiv:resource:002 title: Invalid JSON:API Resource specified in request detail: '''{{invalid_resource}}'' is an invalid resource' source: pointer: /data/type Required key not provided error: 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/relationships/category/data Required key not populated error: value: errors: - status: '400' code: decisiv:request_attributes:002 title: Missing required attribute value detail: Required key must be populated source: pointer: /data/attributes/description Missing required relationship: value: errors: - status: '400' code: decisiv:relationships:002 title: Missing required relationship detail: The required relationship category is missing source: pointer: /data/relationships/category '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' '422': description: Subject not found — the relationship references an identifier that does not exist. content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' example: errors: - status: '422' code: decisiv:request_attributes:003 title: Identifier not found detail: Identifier not found source: pointer: /data/relationships/category/data/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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/update_additional_charge' examples: Update Additional Charge: value: data: type: line_item_additional_charges id: ff0d0f58-9195-4071-a59c-96844600c2bb attributes: code: TEST-02 description: Toll api pricing: amount: '45.00' relationships: category: data: type: additional_charge_categories id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 delete: summary: Delete an additional charge tags: - Case Line Items - Additional Charges parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_uuid in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_uuid in: path schema: type: string format: uuid description: The line item UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true responses: '204': description: Deletes an additional charge content: {} '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' '404': description: This response may occur when the requested resource is not found. content: application/vnd.api+json: example: errors: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' ? /service_management/{srm_account_id}/v1/cases/{case_uuid}/line_items/{line_item_uuid}/additional_charges/{id}/relationships/category : patch: summary: Update an additional charge category tags: - Case Line Items - Additional Charges - Relationships parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_uuid in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_uuid in: path schema: type: string format: uuid description: The line item UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true responses: '200': description: Successful update of Additional Charge content: application/vnd.api+json: example: data: id: ff0d0f58-9195-4071-a59c-96844600c2bb type: line_item_additional_charges attributes: description: Tax for sales done in the shop code: TAX-123 pricing: amount: '15.00' sales_tax_amount: '2.06' total_amount: '27.06' created_at: '2025-04-10T13:28:31Z' updated_at: '2025-04-10T13:28:31Z' relationships: category: data: type: additional_charge_categories id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 schema: $ref: '#/components/schemas/additional_charge' '400': description: Invalid resource error content: application/vnd.api+json: example: errors: - status: '400' code: decisiv:resource:002 title: Invalid JSON:API Resource specified in request detail: '''{{invalid_resource}}'' is an invalid resource' source: /data/type 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' '422': description: Required key not populated error / Required key not provided error / Subject not found content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Required key not populated error: value: errors: - status: '400' code: decisiv:request_attributes:002 title: Missing required attribute value detail: Required key must be populated source: /data/attributes/content Required key not provided error: value: errors: - status: '400' code: decisiv:request_attributes:001 title: Missing required attribute key detail: Required key not provided in request body source: /data/attributes/content Subject not found: value: errors: - status: 422 code: decisiv:request_attributes:003 title: Identifier not found detail: Identifier not found source: pointer: /data//data/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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/update_relationship_additional_charges' examples: Update Additional Charge: value: data: type: additional_charge_categories id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 /service_management/{srm_account_id}/v1/additional_charge_categories: get: summary: List all Additional Charge Categories for the requested account tags: - Case Line Items - Additional Charges Categories parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string responses: '200': description: Returns list of additional charge categories content: application/vnd.api+json: example: data: - id: f8649e5c-da38-442d-9158-9cedbec5ef23 type: additional_charge_categories attributes: name: Shop Supplies sales_tax_rate: '8.25' created_at: '2025-10-09T10:55:20-03:00' updated_at: '2025-10-09T10:55:20-03:00' links: self: /service_management/test-account/v1/additional_charge_categories/f8649e5c-da38-442d-9158-9cedbec5ef23 - id: f8649e5c-da38-442d-9158-9cedbec5ef23 type: additional_charge_categories attributes: name: Environmental Fee sales_tax_rate: '0.0' created_at: '2025-10-09T10:55:20-03:00' updated_at: '2025-10-09T10:55:20-03:00' links: self: /service_management/test-account/v1/additional_charge_categories/f8649e5c-da38-442d-9158-9cedbec5ef23 meta: record-count: 2 schema: $ref: '#/components/schemas/additional_charge_categories' '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: You do not have permission to access this resource code: decisiv:authorization:001 status: '403' schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Required permission is missing code: decisiv:permission:001 status: '428' 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: - title: Gateway timeout detail: The request timed out code: decisiv:timeout:001 status: '504' schema: $ref: '#/components/schemas/errors_response' /service_management/{srm_account_id}/v1/additional_charge_categories/{id}: get: summary: Retrieves a specific Additional Charge Category tags: - Case Line Items - Additional Charges Categories 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 resource UUID required: true responses: '200': description: Returns the additional charge category content: application/vnd.api+json: example: data: id: f8649e5c-da38-442d-9158-9cedbec5ef23 type: additional_charge_categories attributes: name: Shop Supplies sales_tax_rate: '8.25' created_at: '2025-10-09T10:55:20-03:00' updated_at: '2025-10-09T10:55:20-03:00' links: self: /service_management/test-account/v1/additional_charge_categories/f8649e5c-da38-442d-9158-9cedbec5ef23 schema: $ref: '#/components/schemas/additional_charge_category' '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: You do not have permission to access this resource code: decisiv:authorization: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: - title: Record not found detail: The requested additional charge category could not be found code: decisiv:resource:001 status: '404' schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Required permission is missing code: decisiv:permission:001 status: '428' 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: - title: Gateway timeout detail: The request timed out code: decisiv:timeout:001 status: '504' schema: $ref: '#/components/schemas/errors_response' /service_management/{srm_account_id}/v1/cases/{case_id}/line_items/{line_item_id}/relationships/assignee: patch: summary: Update an assignee from line item tags: - Case Line Items Relationships Assignee parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_id in: path schema: type: string format: uuid description: The line item UUID required: true responses: '200': description: Show details for changed Line Item content: application/vnd.api+json: example: data: id: ba889598-5f26-4481-90f7-2c172d42ca5f type: line_items attributes: complaint: null cause: null correction: null opcode: T3789-0-04 price_code: null name: All Engines All Years All Models All Makes for Air Dryer Cartridge, Replacement description: null 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' vmrs: component: code_key: '33' code: 023-000-000 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 schema: $ref: '#/components/schemas/line_item' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' '422': description: User does not have the underlying permission content: application/vnd.api+json: example: errors: - status: '422' code: decisiv:permissions:001 title: Missing Permission detail: Provided resource does not have the required permission to complete the request. 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' requestBody: content: application/vnd.api+json: schema: oneOf: - $ref: '#/components/schemas/assignee_change' examples: Change Assignee: value: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec /service_management/{srm_account_id}/v1/line_item_internal_labels: get: summary: List all the line item internal labels tags: - Case Line Item Internal Labels parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string responses: '200': description: Returns list of line item internal labels content: application/vnd.api+json: example: data: - id: approved type: line_item_internal_labels attributes: name: Approved schema: $ref: '#/components/schemas/line_item_internal_labels' '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' /service_management/{srm_account_id}/v1/cases/{case_id}/line_items/{line_item_id}/technician_stories: get: summary: List all the technician stories for the selected line item tags: - Case Line Items Technician Stories parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_id in: path schema: type: string format: uuid description: The line item UUID required: true - 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 list of technician stories for the line item content: application/vnd.api+json: example: data: - id: b2610b45-a2e1-4abf-ad21-7f820bca4923 type: technician_stories attributes: content: Here goes the technician story that can be many lines long created_at: 2025-04-10 13:28:31 UTC schema: $ref: '#/components/schemas/technician_story' '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' '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' post: summary: Creates a technician story for the line item tags: - Case Line Items Technician Stories parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_id in: path schema: type: string format: uuid description: The line item UUID required: true responses: '201': description: Successful creation of Technician Story content: application/vnd.api+json: example: data: id: b2610b45-a2e1-4abf-ad21-7f820bca4923 type: technician_stories attributes: content: Here goes the technician story that can be many lines long created_at: 2025-04-10 13:28:31 UTC schema: $ref: '#/components/schemas/technician_story' '400': description: Invalid resource error content: application/vnd.api+json: example: errors: - status: '400' code: decisiv:resource:002 title: Invalid JSON:API Resource specified in request detail: '''{{invalid_resource}}'' is an invalid resource' source: /data/type 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' '422': description: Required key not populated error / Required key not provided error content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Required key not populated error: value: errors: - status: '422' code: decisiv:request_attributes:002 title: Missing required attribute value detail: Required key must be populated source: /data/attributes/content Required key not provided error: value: errors: - status: '422' code: decisiv:request_attributes:001 title: Missing required attribute key detail: Required key not provided in request body source: /data/attributes/content '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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/create_technician_story' examples: Create Technician Story: value: data: type: technician_stories attributes: content: Technician story description /service_management/{srm_account_id}/v1/cases/{case_id}/line_items/{line_item_id}/technician_stories/{id}: get: summary: List all the technician stories for the selected line item tags: - Case Line Items Technician Stories parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_id in: path schema: type: string format: uuid description: The line item UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true responses: '200': description: Returns one technician story for the line item content: application/vnd.api+json: example: data: id: b2610b45-a2e1-4abf-ad21-7f820bca4923 type: technician_stories attributes: content: Here goes the technician story that can be many lines long created_at: 2025-04-10 13:28:31 UTC schema: $ref: '#/components/schemas/technician_story' '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' '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' /service_management/{srm_account_id}/v1/cases/{case_id}/line_items/{line_item_id}/parts: get: summary: List all parts for the requested line item tags: - Case Line Item Parts parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_id in: path schema: type: string format: uuid description: The line item UUID required: true - 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 - name: include in: query required: false schema: type: array items: type: string enum: - salesman description: The relationships to be included. responses: '200': description: Returns list of line items for the case content: application/vnd.api+json: example: data: - id: 167f089e-339d-4d05-b175-9b10206c3cbf type: line_item_parts attributes: name: Part123 quantity: '2.00' quantity_shipped: '2' quantity_backordered: '0' number: '2132' unit_price: '1.2000' core: price: '1.2000' quantity: 2 relationships: salesperson: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec schema: $ref: '#/components/schemas/parts' '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' '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' post: summary: Create a estimate item part tags: - Case Line Item Parts parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_id in: path schema: type: string format: uuid description: The line item UUID required: true responses: '201': description: Successful creation of line item content: application/vnd.api+json: example: data: id: 167f089e-339d-4d05-b175-9b10206c3cbf type: line_item_parts attributes: name: Part123 quantity: '2.00' quantity_shipped: '2' quantity_backordered: '0' number: '2132' unit_price: '1.2000' core: price: '1.2000' quantity: 2 relationships: salesperson: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec schema: $ref: '#/components/schemas/part' '400': description: Missing required key / Missing required value / Invalid Attribute Type / Attribute Not Allowed / Invalid Attribute Pattern content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Missing required 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/name Missing required value: value: errors: - status: 400 code: decisiv:request_attributes:002 title: Missing required attribute value detail: Required key must be populated source: pointer: /data/attributes/name Invalid Attribute Type: value: errors: - status: 400 code: decisiv:request_attributes:004 title: Invalid Attribute Type detail: Invalid type provided for the attribute source: pointer: /data/attributes/name Attribute Not Allowed: value: errors: - status: 400 code: decisiv:request_attributes:009 title: Attribute Not Allowed detail: '{{attribute}} is not allowed' source: pointer: /data/attributes/name Invalid Attribute Pattern: value: errors: - status: 400 code: decisiv:request_attributes:011 title: Invalid Attribute Pattern detail: Attribute value must match pattern '{{pattern}}' source: pointer: /data/attributes/unit_price '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' '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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/create_estimate_item_part' examples: Create Line Item Part: value: data: type: line_item_parts attributes: name: Valve quantity: '4' quantity_shipped: '2' quantity_backordered: '0' number: '1' unit_price: '12.50' core: price: '12.50' quantity: '1.0' relationships: salesperson: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec /service_management/{srm_account_id}/v1/cases/{case_id}/line_items/{line_item_id}/parts/{id}: get: summary: List details on a specific part for the requested line item tags: - Case Line Item Parts parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_id in: path schema: type: string format: uuid description: The line item UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - salesman description: The relationships to be included. responses: '200': description: Show details for requested Line Item content: application/vnd.api+json: example: data: id: 167f089e-339d-4d05-b175-9b10206c3cbf type: line_item_parts attributes: name: Part123 quantity: '2.00' quantity_shipped: '2' quantity_backordered: '0' number: '2132' unit_price: '1.2000' core: price: '1.2000' quantity: 2 relationships: salesperson: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec schema: $ref: '#/components/schemas/part' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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: summary: Update a specific part tags: - Case Line Item Parts parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_id in: path schema: type: string format: uuid description: The line item UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true responses: '200': description: Successful update of line item part content: application/vnd.api+json: example: data: id: 167f089e-339d-4d05-b175-9b10206c3cbf type: line_item_parts attributes: name: Part123 quantity: '2.00' quantity_shipped: '2' quantity_backordered: '0' number: '2132' unit_price: '1.2000' core: price: '1.2000' quantity: 2 relationships: salesperson: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec 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' '422': description: Missing required value / Invalid Attribute Type / Attribute Not Allowed / Invalid Attribute Pattern content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Missing required value: value: errors: - status: 400 code: decisiv:request_attributes:002 title: Missing required attribute value detail: Required key must be populated source: pointer: /data/attributes/name Invalid Attribute Type: value: errors: - status: 400 code: decisiv:request_attributes:004 title: Invalid Attribute Type detail: Invalid type provided for the attribute source: pointer: /data/attributes/name Attribute Not Allowed: value: errors: - status: 400 code: decisiv:request_attributes:009 title: Attribute Not Allowed detail: '{{attribute}} is not allowed' source: pointer: /data/attributes/name Invalid Attribute Pattern: value: errors: - status: 400 code: decisiv:request_attributes:011 title: Invalid Attribute Pattern detail: Attribute value must match pattern '{{pattern}}' source: pointer: /data/attributes/unit_price '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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/update_estimate_item_part' examples: Update Line Item Part: value: data: type: line_item_parts id: 167f089e-339d-4d05-b175-9b10206c3cbf attributes: name: Valve quantity: '4' quantity_shipped: '2' quantity_backordered: '0' number: '1' unit_price: '12.50' core: price: '12.50' quantity: '1.0' relationships: salesperson: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec delete: summary: Delete an estimate item part tags: - Case Line Item Parts parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_id in: path schema: type: string format: uuid description: The line item UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true responses: '204': description: Deletes an estimate item part content: {} '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' '404': description: This response may occur when the requested resource is not found. content: application/vnd.api+json: example: errors: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' ? /service_management/{srm_account_id}/v1/cases/{case_id}/line_items/{line_item_id}/parts/{part_id}/relationships/salesperson : patch: summary: Add, Update or Remove a Salesperson from part tags: - Case Line Item Parts Relationships SalesPerson parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: line_item_id in: path schema: type: string format: uuid description: The line item UUID required: true - name: part_id in: path schema: type: string format: uuid description: The part UUID required: true responses: '200': description: Show details for changed Line Item content: application/vnd.api+json: example: data: id: 167f089e-339d-4d05-b175-9b10206c3cbf type: line_item_parts attributes: name: Part123 quantity: '2.00' number: '2132' unit_price: '1.2000' core: price: '1.2000' quantity: 2 relationships: salesperson: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec schema: $ref: '#/components/schemas/part' '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. / Feature for this action is not available content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: ? This response may occur when the authenticated user embedded within the Authorization header does not have access to the requested resource. : value: errors: - title: Forbidden detail: User does not have permission to perform this action on the requested resource(s) code: decisiv:access:001 status: '403' Feature for this action is not available: value: errors: - status: '403' code: decisiv:account:002 title: Feature Unavailable detail: Requested feature or action not available for this account '404': description: This response may occur when the requested resource is not found. content: application/vnd.api+json: example: errors: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' '422': description: User does not have the underlying permission content: application/vnd.api+json: example: errors: - status: '422' code: decisiv:permissions:001 title: Missing Permission detail: Provided resource does not have the required permission to complete the request. 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' requestBody: content: application/vnd.api+json: schema: oneOf: - $ref: '#/components/schemas/salesperson_change' - $ref: '#/components/schemas/salesperson_remove' examples: Change Salesperson: value: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec Remove Salesperson: value: data: {} /service_management/{srm_account_id}/v1/cases/{case_id}/metadata: post: summary: Creates new metadata for a selected case tags: - Case Metadata parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true responses: '201': description: Creates new metadata for case record content: application/vnd.api+json: example: id: 0938140f-b7ab-4241-be54-a3d18a1db1b3 type: case_metadata attributes: metadata: case_metadata: Metadata for case case_other_value: '2.30' case_other_integer: '80000' case_other_date: '2025-04-10T13:28:31Z' schema: $ref: '#/components/schemas/case_metadata_persisted' '400': description: Invalid Filter / Wrong Key / Wrong Value / Empty Value / Invalid Length / Unique Keys content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid Filter: value: 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] Wrong Key: value: errors: - status: '400' title: Invalid Metadata key detail: null code: decisiv:metadata:001 source: pointer: /data/attributes/metadata/0/key Wrong Value: value: errors: - status: '400' title: Invalid Metadata value detail: null code: decisiv:metadata:002 source: pointer: /data/attributes/metadata/0/value Empty Value: value: errors: - status: '400' title: Missing required attribute value detail: Required key must be populated code: decisiv:request_attributes:002 source: pointer: /data/attributes/metadata/0/value Invalid Length: value: errors: - status: '400' title: Metadata object is too big detail: null code: decisiv:metadata:003 source: pointer: /data/attributes/metadata Unique Keys: value: errors: - status: '400' title: Immutable Attribute detail: The resource attribute is immutable through this particular endpoint code: decisiv:request_attributes:005 source: pointer: /data/attributes/metadata '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' '429': description: This response will often be associated as a result of an over abundance of calls by a specific Application, Account, or IP Address resulting in a required cool off period. content: application/vnd.api+json: example: errors: - code: '429' detail: The maximum number of requests for this application has been far exceeded with the given credentials. status: '429' title: Too Many Requests schema: $ref: '#/components/schemas/errors_response' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/case_metadata' examples: Metadata with many key/values: value: data: type: case_metadata attributes: metadata: - key: case_metadata value: Metadata for case - key: case_other_value value: '2.30' - key: case_other_integer value: '80000' - key: case_other_date value: '2025-04-10T13:28:31Z' /service_management/{srm_account_id}/v1/cases/{case_id}/metadata/{metadata_key}: patch: summary: Updates a specific metadata key tags: - Case Metadata parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: metadata_key in: path schema: type: string format: string description: The metadata key required: true responses: '200': description: Updates the metadata key content: application/vnd.api+json: example: id: 0938140f-b7ab-4241-be54-a3d18a1db1b3 type: case_metadata attributes: metadata: case_metadata: Metadata for case case_other_value: '2.30' case_other_integer: '80000' case_other_date: '2025-04-10T13:28:31Z' schema: $ref: '#/components/schemas/case_metadata_persisted' '400': description: Invalid Filter / Wrong Value / Empty/Null Value / Invalid Length content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid Filter: value: 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] Wrong Value: value: errors: - status: '400' title: Invalid Attribute Type detail: Invalid type provided for the attribute code: decisiv:request_attributes:004 source: pointer: /data/attributes/value Empty/Null Value: value: errors: - status: '400' title: Missing required attribute value detail: Required key must be populated code: decisiv:request_attributes:002 source: pointer: /data/attributes/value Invalid Length: value: errors: - status: '400' title: Character Limit Exceeded detail: Field length can not exceed {{limit}} characters code: decisiv:request_attributes:014 source: pointer: /data/attributes/value '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' '429': description: This response will often be associated as a result of an over abundance of calls by a specific Application, Account, or IP Address resulting in a required cool off period. content: application/vnd.api+json: example: errors: - code: '429' detail: The maximum number of requests for this application has been far exceeded with the given credentials. status: '429' title: Too Many Requests schema: $ref: '#/components/schemas/errors_response' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/patch_case_metadata' examples: Metadata with many key/values: value: id: metadata_key type: case_metadata attributes: value: The updated value goes here /service_management/{srm_account_id}/v1/cases/{case_id}/notes: get: summary: List notes for the requested case tags: - Case Notes parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - sender - subject - recipients - participants 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 list of notes for the case content: application/vnd.api+json: example: data: - id: 68d955e7-5679-418b-9d5d-6b35fc2b2c28 type: notes attributes: message: This is my note public: false created_at: '2025-04-10T13:30:41Z' relationships: subject: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a sender: data: type: users id: 6383dc89-05b6-4572-8979-a6257f3597ec recipients: data: - type: recipients id: 42c3f138-843a-4b7d-8d83-71b018da98fa - type: contacts id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d participants: data: - type: participants id: cb967209-0c68-42cc-ad8d-8413554b507f schema: $ref: '#/components/schemas/notes' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' post: summary: Create a note for the requested case tags: - Case Notes parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path description: The case ID required: true schema: type: string - name: X-DECISIV-SILENCE-EVENTS in: header required: false schema: type: array items: type: string enum: - decisiv:service_management:case:note_posted description: Corresponding webhook events which can be muted for the given transaction responses: '201': description: Created an note for the case content: application/vnd.api+json: example: data: id: 68d955e7-5679-418b-9d5d-6b35fc2b2c28 type: notes attributes: message: This is my note public: false created_at: '2025-04-10T13:30:41Z' relationships: subject: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a sender: data: type: users id: 6383dc89-05b6-4572-8979-a6257f3597ec recipients: data: - type: recipients id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d participants: data: - type: participants id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d schema: $ref: '#/components/schemas/note' '400': description: Path ID mismatch content: application/vnd.api+json: example: errors: - status: '400' code: decisiv:resource:002 title: Invalid JSON:API Resource specified in request detail: '''79327cde-d5ce-4ce6-bdba-eebab125ae2d'' is an invalid resource' source: pointer: /data/id 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: Case not found content: application/vnd.api+json: example: errors: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/create_case_note' examples: Note with recipients: value: data: type: notes attributes: message: This is my note public: false relationships: recipients: data: - type: recipients id: 42c3f138-843a-4b7d-8d83-71b018da98fa - type: contacts id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d Note with participant: value: data: type: notes attributes: message: This is my note public: false relationships: recipients: data: - type: participants id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d /service_management/{srm_account_id}/v1/cases/{case_id}/notes/{id}: get: summary: Retrieve a note for the requested case tags: - Case Notes parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - sender - subject - recipients - participants description: The relationships to be included. responses: '200': description: Show details for requested Note content: application/vnd.api+json: example: data: id: 68d955e7-5679-418b-9d5d-6b35fc2b2c28 type: notes attributes: message: This is my note public: false created_at: '2025-04-10T13:30:41Z' relationships: subject: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a sender: data: type: users id: 6383dc89-05b6-4572-8979-a6257f3597ec recipients: data: - type: recipients id: 42c3f138-843a-4b7d-8d83-71b018da98fa - type: contacts id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d participants: data: - type: participants id: cb967209-0c68-42cc-ad8d-8413554b507f schema: $ref: '#/components/schemas/note' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/cases/{case_id}/participants: get: summary: Lists the participants for a selected case tags: - Case Participants parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true responses: '200': description: Returns list of participants for the case content: application/vnd.api+json: example: data: - id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d type: participants attributes: name: Dealer Name scopes: - service_provider - billing_customer - shipping_customer - id: 5a07d6a9-3f60-4d9b-9df1-2b8b9e9a6c41 type: participants attributes: name: Acme Logistics scopes: - external_advisor schema: $ref: '#/components/schemas/participants' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/cases/{case_id}/participants/{id}: get: summary: List details on a specific Participant tags: - Case Participants parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true responses: '200': description: Show details for requested Participant content: application/vnd.api+json: example: data: id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d type: participants attributes: name: Dealer Name scopes: - service_provider - billing_customer - shipping_customer schema: $ref: '#/components/schemas/participant' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/cases/{case_id}/participants/{participant_id}/recipients: get: summary: Lists the recipients for a selected case tags: - Case Participant Recipients parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: participant_id in: path schema: type: string format: uuid description: The participant UUID required: true - 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 list of recipients for the case content: application/vnd.api+json: example: data: - id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d type: recipients attributes: name: John Doe phone: '12345678910' email: recipient@email.com first_name: John last_name: Doe communication: - method_type: email value: recipient@email.com notify: true - method_type: mobile value: '12345678910' notify: false relationships: affiliation: data: type: participants id: cb967209-0c68-42cc-ad8d-8413554b507f links: self: https://srm-api.example.com/service_management/ABC-123/v1/cases/719d44af-b0f5-4e3c-98f7-baa16cedea98/participants/cb967209-0c68-42cc-ad8d-8413554b507f/recipients/bd763ee6-b2f2-49fc-a375-7fb5346ee19d meta: record-count: 73 schema: $ref: '#/components/schemas/recipients' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/cases/{case_id}/participants/{participant_id}/recipients/{id}: get: summary: List details on a specific recipient tags: - Case Participant Recipients parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: participant_id in: path schema: type: string format: uuid description: The participant UUID required: true - name: id in: path schema: type: string format: uuid description: The resource ID required: true responses: '200': description: Show details for requested recipient content: application/vnd.api+json: example: data: id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d type: recipients attributes: name: John Doe phone: '12345678910' email: recipient@email.com first_name: John last_name: Doe communication: - method_type: email value: recipient@email.com notify: true - method_type: mobile value: '12345678910' notify: false relationships: affiliation: data: type: participants id: cb967209-0c68-42cc-ad8d-8413554b507f links: self: https://srm-api.example.com/service_management/ABC-123/v1/cases/719d44af-b0f5-4e3c-98f7-baa16cedea98/participants/cb967209-0c68-42cc-ad8d-8413554b507f/recipients/bd763ee6-b2f2-49fc-a375-7fb5346ee19d schema: $ref: '#/components/schemas/recipient' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/cases/{case_id}/relationships/shipping_customer: patch: summary: Modify shipping customer of a Case tags: - Case Relationships parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true responses: '200': description: Successful update of Case content: application/vnd.api+json: example: data: id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: cases attributes: reference_number: 321098 complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics asset_information: odometer_value: 10000 odometer_unit: mi engine_hours: 167 switch_on_hours: 10 stand_by_hours: 2 event_timestamps: followup_time: '2025-10-10T13:30:41Z' closed_at: '2025-04-10T13:30:41Z' asset_uptime: '2025-04-10T13:00:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' asset_checked_in: '2025-04-10T12:30:41Z' started_at: '2025-04-10T12:00:41Z' asset_arrived: '2025-04-10T11:30:41Z' asset_downtime: '2025-04-10T10:30:41Z' asset_departed_at: '2025-04-10T13:30:41Z' breakdown: location: Outside Seneca Lodge city: Watkins Glen state: NY repair_status: appointment invoice: total: 3758.5 number: TR-91324 date: '2025-04-10T13:30:41Z' vmrs: asset_type: code_key: '2' code: R repair_priority: code_key: '16' code: '2' repair_site: code_key: '17' code: '7' reason_for_repair: code_key: '14' code: '01' operator_report: - code_key: '82' code: '001' - code_key: '82' code: '002' component: code_key: '33' code: 023-000-000 position: code_key: '79' code: '03' technician_failure: code_key: '18' code: B1 work_accomplished: code_key: '15' code: A tag_number: null links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/cases/487136d2-c4d6-424c-b018-f1ed8a740c6a relationships: customer_asset: data: type: customer_assets id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 billing_contact: data: type: registered_customers id: 7da042d2-c47b-4748-ba65-c114adf1cf62 billing_customer: data: type: registered_customers id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a shipping_customer: data: type: customers id: 11028a0c-1a4b-42c7-86ff-16343fb546a0 service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 program_type: data: type: program_types id: b7390546-9a28-4aed-9e30-1a5afc0ab696 primary_contact: data: type: recipients id: 462d54f5-a1a1-48b5-ac0f-2068259105df driver: data: type: recipients id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d assignee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec department: data: type: departments id: department_code schema: $ref: '#/components/schemas/case' '400': description: Invalid type in relationships error content: application/vnd.api+json: example: errors: - status: '400' title: Invalid JSON:API Resource specified in request detail: '''{{invalid_resource}}'' is an invalid resource' code: decisiv:resource:002 source: pointer: /data/type 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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' '422': description: Invalid uuid format error / Identifier not found content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid uuid format error: value: errors: - status: '422' code: decisiv:relationships:001 title: Invalid ID format requested detail: Provided ID in relationships must be a valid UUID format source: pointer: /data/id Identifier not found: value: errors: - title: Identifier not found code: decisiv:resource:003 status: '422' source: pointer: /data/id requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/modify_shipping_customer' examples: Modify shipping customer: value: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: customers Modify registered customer: value: data: id: 3ed27b9f-978c-441c-8c04-beeffe23a283 type: registered_customers /service_management/{srm_account_id}/v1/cases/{case_id}/relationships/billing_customer: patch: summary: Modify billing customer of a Case tags: - Case Relationships parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true responses: '200': description: Successful update of Case content: application/vnd.api+json: example: data: id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: cases attributes: reference_number: 321098 complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics asset_information: odometer_value: 10000 odometer_unit: mi engine_hours: 167 switch_on_hours: 10 stand_by_hours: 2 event_timestamps: followup_time: '2025-10-10T13:30:41Z' closed_at: '2025-04-10T13:30:41Z' asset_uptime: '2025-04-10T13:00:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' asset_checked_in: '2025-04-10T12:30:41Z' started_at: '2025-04-10T12:00:41Z' asset_arrived: '2025-04-10T11:30:41Z' asset_downtime: '2025-04-10T10:30:41Z' asset_departed_at: '2025-04-10T13:30:41Z' breakdown: location: Outside Seneca Lodge city: Watkins Glen state: NY repair_status: appointment invoice: total: 3758.5 number: TR-91324 date: '2025-04-10T13:30:41Z' vmrs: asset_type: code_key: '2' code: R repair_priority: code_key: '16' code: '2' repair_site: code_key: '17' code: '7' reason_for_repair: code_key: '14' code: '01' operator_report: - code_key: '82' code: '001' - code_key: '82' code: '002' component: code_key: '33' code: 023-000-000 position: code_key: '79' code: '03' technician_failure: code_key: '18' code: B1 work_accomplished: code_key: '15' code: A tag_number: null links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/cases/487136d2-c4d6-424c-b018-f1ed8a740c6a relationships: customer_asset: data: type: customer_assets id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 billing_contact: data: type: registered_customers id: 7da042d2-c47b-4748-ba65-c114adf1cf62 billing_customer: data: type: registered_customers id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a shipping_customer: data: type: customers id: 11028a0c-1a4b-42c7-86ff-16343fb546a0 service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 program_type: data: type: program_types id: b7390546-9a28-4aed-9e30-1a5afc0ab696 primary_contact: data: type: recipients id: 462d54f5-a1a1-48b5-ac0f-2068259105df driver: data: type: recipients id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d assignee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec department: data: type: departments id: department_code schema: $ref: '#/components/schemas/case' '400': description: Invalid type in relationships error content: application/vnd.api+json: example: errors: - status: '400' title: Invalid JSON:API Resource specified in request detail: '''{{invalid_resource}}'' is an invalid resource' code: decisiv:resource:002 source: pointer: /data/type 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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' '422': description: Invalid uuid format error / Identifier not found content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid uuid format error: value: errors: - status: '422' code: decisiv:relationships:001 title: Invalid ID format requested detail: Provided ID in relationships must be a valid UUID format source: pointer: /data/id Identifier not found: value: errors: - title: Identifier not found code: decisiv:resource:003 status: '422' source: pointer: /data/id requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/modify_billing_customer' examples: Modify billing customer: value: data: id: 627a3cad-344a-41fa-bf7f-84617ea35f33 type: customers Modify registered customer: value: data: id: 3ed27b9f-978c-441c-8c04-beeffe23a283 type: registered_customers /service_management/{srm_account_id}/v1/cases/{case_id}/relationships/program_type: patch: summary: Modify program type of a Case tags: - Case Relationships parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true responses: '200': description: Successful update of Case content: application/vnd.api+json: example: data: id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: cases attributes: reference_number: 321098 complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics asset_information: odometer_value: 10000 odometer_unit: mi engine_hours: 167 switch_on_hours: 10 stand_by_hours: 2 event_timestamps: followup_time: '2025-10-10T13:30:41Z' closed_at: '2025-04-10T13:30:41Z' asset_uptime: '2025-04-10T13:00:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' asset_checked_in: '2025-04-10T12:30:41Z' started_at: '2025-04-10T12:00:41Z' asset_arrived: '2025-04-10T11:30:41Z' asset_downtime: '2025-04-10T10:30:41Z' asset_departed_at: '2025-04-10T13:30:41Z' breakdown: location: Outside Seneca Lodge city: Watkins Glen state: NY repair_status: appointment invoice: total: 3758.5 number: TR-91324 date: '2025-04-10T13:30:41Z' vmrs: asset_type: code_key: '2' code: R repair_priority: code_key: '16' code: '2' repair_site: code_key: '17' code: '7' reason_for_repair: code_key: '14' code: '01' operator_report: - code_key: '82' code: '001' - code_key: '82' code: '002' component: code_key: '33' code: 023-000-000 position: code_key: '79' code: '03' technician_failure: code_key: '18' code: B1 work_accomplished: code_key: '15' code: A tag_number: null links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/cases/487136d2-c4d6-424c-b018-f1ed8a740c6a relationships: customer_asset: data: type: customer_assets id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 billing_contact: data: type: registered_customers id: 7da042d2-c47b-4748-ba65-c114adf1cf62 billing_customer: data: type: registered_customers id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a shipping_customer: data: type: customers id: 11028a0c-1a4b-42c7-86ff-16343fb546a0 service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 program_type: data: type: program_types id: b7390546-9a28-4aed-9e30-1a5afc0ab696 primary_contact: data: type: recipients id: 462d54f5-a1a1-48b5-ac0f-2068259105df driver: data: type: recipients id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d assignee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec department: data: type: departments id: department_code schema: $ref: '#/components/schemas/case' '400': description: Invalid type in relationships error content: application/vnd.api+json: example: errors: - status: '400' title: Invalid JSON:API Resource specified in request detail: '''{{invalid_resource}}'' is an invalid resource' code: '''wrong-type'' is an invalid resource' source: pointer: /data/type 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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' '422': description: Invalid uuid format error / Identifier not found content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid uuid format error: value: errors: - status: '422' code: decisiv:relationships:001 title: Invalid ID format requested detail: Provided ID in relationships must be a valid UUID format source: pointer: /data/id Identifier not found: value: errors: - title: Identifier not found code: decisiv:resource:003 status: '422' source: pointer: /data/id requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/modify_program_type' examples: Assign program type: value: data: id: b7390546-9a28-4aed-9e30-1a5afc0ab696 type: program_types Remove program type: value: data: null /service_management/{srm_account_id}/v1/cases/{case_id}/relationships/primary_contact: patch: summary: Modify primary contact of a Case tags: - Case Relationships parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true responses: '200': description: Successful update of Primary Contact content: application/vnd.api+json: example: data: id: b7390546-9a28-4aed-9e30-1a5afc0ab696 type: cases relationships: primary_contact: data: id: b7390546-9a28-4aed-9e30-1a5afc0ab696 type: contacts schema: $ref: '#/components/schemas/modify_primary_contact_response' '400': description: Invalid type in relationships error content: application/vnd.api+json: example: errors: - status: '400' title: Invalid JSON:API Resource specified in request detail: '''wrong-type'' is an invalid resource' code: decisiv:resource:002 source: pointer: /data/type 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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' '422': description: Invalid uuid format error / Identifier not found content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid uuid format error: value: errors: - status: '422' code: decisiv:relationships:001 title: Invalid ID format requested detail: Provided ID in relationships must be a valid UUID format source: pointer: /data/id Identifier not found: value: errors: - title: Identifier not found code: decisiv:resource:003 status: '422' source: pointer: /data/id requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/modify_primary_contact' examples: Assign primary contact: value: data: id: b7390546-9a28-4aed-9e30-1a5afc0ab696 type: contacts Remove primary contact: value: data: null /service_management/{srm_account_id}/v1/cases/{case_id}/relationships/driver: patch: summary: Modify driver of a Case tags: - Case Relationships parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true responses: '200': description: Successful update of driver content: application/vnd.api+json: example: data: id: b7390546-9a28-4aed-9e30-1a5afc0ab696 type: cases relationships: driver: data: id: b7390546-9a28-4aed-9e30-1a5afc0ab696 type: contacts schema: $ref: '#/components/schemas/modify_driver_response' '400': description: Invalid type in relationships error content: application/vnd.api+json: example: errors: - status: '400' title: Invalid JSON:API Resource specified in request detail: '''wrong-type'' is an invalid resource' code: decisiv:resource:002 source: pointer: /data/type 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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' '422': description: Invalid uuid format error / Identifier not found content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid uuid format error: value: errors: - status: '422' code: decisiv:relationships:001 title: Invalid ID format requested detail: Provided ID in relationships must be a valid UUID format source: pointer: /data/id Identifier not found: value: errors: - title: Identifier not found code: decisiv:resource:003 status: '422' source: pointer: /data/id requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/modify_driver' examples: Assign driver: value: data: id: b7390546-9a28-4aed-9e30-1a5afc0ab696 type: contacts Remove driver: value: data: null /service_management/{srm_account_id}/v1/cases/{case_id}/relationships/billing_contact: patch: summary: Modify billing contact of a Case tags: - Case Relationships parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true responses: '200': description: Successful update of Billing Contact content: application/vnd.api+json: example: data: id: b7390546-9a28-4aed-9e30-1a5afc0ab696 type: cases relationships: billing_contact: data: id: b7390546-9a28-4aed-9e30-1a5afc0ab696 type: contacts schema: $ref: '#/components/schemas/modify_billing_contact_response' '400': description: Invalid type in relationships error content: application/vnd.api+json: example: errors: - status: '400' title: Invalid JSON:API Resource specified in request detail: '''wrong-type'' is an invalid resource' code: decisiv:resource:002 source: pointer: /data/type 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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' '422': description: Invalid uuid format error / Identifier not found content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid uuid format error: value: errors: - status: '422' code: decisiv:relationships:001 title: Invalid ID format requested detail: Provided ID in relationships must be a valid UUID format source: pointer: /data/id Identifier not found: value: errors: - title: Identifier not found code: decisiv:resource:003 status: '422' source: pointer: /data/id requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/modify_primary_contact' examples: Assign billing contact: value: data: id: b7390546-9a28-4aed-9e30-1a5afc0ab696 type: contacts Remove billing contact: value: data: null /service_management/{srm_account_id}/v1/customer_assets: get: summary: List all customer assets for the requested account tags: - Customer Assets parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: filter[serial_number] in: query required: false schema: type: string minLength: 8 maxLength: 9 description: Filter `customer_assets` matching the *exact* `serial_number` attribute. - name: filter[unit_number] in: query required: false schema: type: string description: Filter `customer_assets` matching the *exact* `unit_number` attribute. - name: filter[vin] in: query required: false schema: type: string minLength: 17 maxLength: 17 description: Filter `customer_assets` matching the *exact* `vin` attribute. - name: filter[chassis_id] in: query required: false schema: type: string maxLength: 50 description: Filter `customer_assets` matching the *exact* `chassis_id` attribute. - name: filter[customer.id] in: query required: false schema: type: string format: uuid description: Filter `customer_assets` matching the *exact* `customer.id` attribute. - name: filter[service_status] in: query required: false schema: type: string enum: - active - inactive - archived description: Filter `customer_assets` matching the *exact* `service_status` attribute. - name: filter[service_status:includes] in: query required: false schema: type: string description: List `customer_assets` whose `service_status` is in the supplied comma-separated list. Accepted values are `active`, `inactive`, `archived`. - name: filter[service_status:excludes] in: query required: false schema: type: string description: List `customer_assets` whose `service_status` is **NOT** in the supplied comma-separated list. Accepted values are `active`, `inactive`, `archived`. - 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 - name: include in: query required: false schema: type: array items: type: string enum: - customer - srm_verified_asset description: Return specified included relationships upon request - name: sort in: query required: false schema: type: string example: -year description: 'Sort `customer_assets` by a single attribute; prefix with `-` for descending order. Valid attributes: `year`, `make`, `model`' responses: '200': description: Returns list of customer assets content: application/vnd.api+json: example: data: - id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: customer_assets attributes: vin: 3B7HF13Z11M269883 serial_number: HN991562 unit_number: NU2695 chassis_id: N-991562 make: Make model: CH613 year: 2017 service_status: active engine: make: Engine Make model: X15 displacement: 14.8L serial_number: '79412345' odometer_value: 125000 odometer_unit: mi vmrs: asset_type: code_key: '2' code: D links: source_application: https://{host}/vehicles/{id}/edit self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/customer_assets/aa3e7935-bfe2-475e-9be2-80ccef5477c8 relationships: customer: data: type: customers id: cd91f5cb-5c38-4f10-90cb-de2efad3ee82 srm_verified_asset: data: type: srm_verified_assets id: a6cfb121-5e78-4ec4-a7ea-223900c76607 - id: bd4f8a46-cf03-586f-acf3-91dde0cc88e0 type: customer_assets attributes: vin: 1FUJBBCK57LX12345 serial_number: HN991563 unit_number: NU2696 chassis_id: N-991563 make: Make model: CH613 year: 2018 service_status: archived engine: make: Engine Make model: X15 displacement: 14.8L serial_number: '79412345' odometer_value: 125000 odometer_unit: mi vmrs: asset_type: code_key: '2' code: D links: source_application: https://{host}/vehicles/{id}/edit self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/customer_assets/bd4f8a46-cf03-586f-acf3-91dde0cc88e0 relationships: customer: data: type: service_group_customers id: de92a6dc-6d49-5021-a1dc-ef3fae4ef933 srm_verified_asset: data: type: srm_verified_assets id: b7d0c232-6f89-5fd5-b8fb-334a11d87718 schema: $ref: '#/components/schemas/customer_assets' '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: examples: Filter not allowed: value: 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] Invalid filter value: value: errors: - title: Invalid filter value detail: '''{{invalid_value}}'' is not a valid value. Valid values: {{valid_values}}' code: decisiv:filters:002 status: '400' source: parameter: filter[service_status:includes] 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 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' post: summary: Create a new Customer Asset tags: - Customer Assets parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string responses: '201': description: Creates a new Customer Asset record content: application/vnd.api+json: example: data: id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: customer_assets attributes: vin: 3B7HF13Z11M269883 serial_number: HN991562 unit_number: NU2695 chassis_id: N-991562 make: Make model: CH613 year: 2017 service_status: active engine: make: Engine Make model: X15 displacement: 14.8L serial_number: '79412345' odometer_value: 125000 odometer_unit: mi vmrs: asset_type: code_key: '2' code: D links: source_application: https://{host}/vehicles/{id}/edit self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/customer_assets/aa3e7935-bfe2-475e-9be2-80ccef5477c8 relationships: customer: data: type: customers id: cd91f5cb-5c38-4f10-90cb-de2efad3ee82 srm_verified_asset: data: type: srm_verified_assets id: a6cfb121-5e78-4ec4-a7ea-223900c76607 schema: $ref: '#/components/schemas/customer_asset' '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: examples: Filter not allowed: value: 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] Missing required attributes: 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/serial_number - status: '400' code: decisiv:request_attributes:001 title: Missing required attribute key detail: Required key not provided in request body source: pointer: /data/attributes/make - status: '400' code: decisiv:request_attributes:001 title: Missing required attribute key detail: Required key not provided in request body source: pointer: /data/attributes/model - status: '400' code: decisiv:request_attributes:002 title: Missing required attribute value detail: Required key must be populated source: pointer: /data/attributes/year 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: Invalid vmrs.asset_type.code / Invalid vmrs.asset_type.code_key content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid vmrs.asset_type.code: value: errors: - status: '422' code: decisiv:request_attributes:010 title: Invalid Attribute Value detail: Invalid vmrs.asset_type.code value provided - the value provided is not a valid code according to VMRS code key 2 source: pointer: /data/attributes/vmrs/asset_type/code Invalid vmrs.asset_type.code_key: value: errors: - status: '422' code: decisiv:request_attributes:010 title: Invalid Attribute Value detail: Invalid vmrs.asset_type.code_key value provided - vmrs.asset_type.code_key must be '2' source: pointer: /data/attributes/vmrs/asset_type/code_key '429': description: This response will often be associated as a result of an over abundance of calls by a specific Application, Account, or IP Address resulting in a required cool off period. content: application/vnd.api+json: example: errors: - code: '429' detail: The maximum number of requests for this application has been far exceeded with the given credentials. status: '429' title: Too Many Requests schema: $ref: '#/components/schemas/errors_response' requestBody: content: application/vnd.api+json: schema: oneOf: - $ref: '#/components/schemas/create_customer_asset' - $ref: '#/components/schemas/create_customer_asset_registered' examples: Using Local Customer: summary: Customer Asset using a local Customer description: 'Customer branch — the supplied `vmrs.asset_type.code` is written onto the newly-created vehicle''s `asset_type`. ' value: data: type: customer_assets attributes: vin: 3B7HF13Z11M269883 serial_number: HN991562 unit_number: NU2695 chassis_id: N-991562 make: Make model: CH613 year: 2017 vmrs: asset_type: code_key: '2' code: R relationships: customer: data: type: customers id: cd91f5cb-5c38-4f10-90cb-de2efad3ee82 Using Registered Asset: summary: Customer Asset using an existing Registered Asset description: 'Registered-asset branch — the supplied `vmrs.asset_type.code` is written onto the existing vehicle''s `asset_type` ONLY when that vehicle has no value yet (silent no-op otherwise). Overwriting / clearing belong on `PATCH /asset_management/{srm_account_id}/v1/registered_assets/{uuid}`. ' value: data: type: customer_assets attributes: unit_number: NU2695 make: Make year: 2017 vmrs: asset_type: code_key: '2' code: R relationships: registered_asset: data: type: registered_assets id: cd91f5cb-5c38-4f10-90cb-de2efad3ee82 /service_management/{srm_account_id}/v1/customer_assets/{id}: get: summary: List details on a specific Customer Asset tags: - Customer Assets 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 resource UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - customer - srm_verified_asset description: Return specified included relationships upon request responses: '200': description: Show details for requested Customer Asset content: application/vnd.api+json: example: data: type: customer_assets id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 attributes: vin: 3B7HF13Z11M269883 serial_number: HN991562 unit_number: NU2695 chassis_id: N-991562 make: Make model: CH613 year: 2017 service_status: active engine: make: Engine Make model: X15 displacement: 14.8L serial_number: '79412345' odometer_value: 125000 odometer_unit: mi vmrs: asset_type: code_key: '2' code: D relationships: customer: data: type: customers id: cd91f5cb-5c38-4f10-90cb-de2efad3ee82 srm_verified_asset: data: type: srm_verified_assets id: a6cfb121-5e78-4ec4-a7ea-223900c76607 schema: $ref: '#/components/schemas/customer_asset_by_id' '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 not found detail: The parent resource could not be found source: parameter: id schema: $ref: '#/components/schemas/errors_response' /service_management/{srm_account_id}/v1/customer_assets/{id}/create_case: post: summary: Create a case for the specific Customer Asset tags: - Customer Assets 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 resource UUID required: true - name: X-DECISIV-IDEMPOTENCY-KEY in: header required: false description: 'Optional idempotency key. The first successful create_case for a given (account, key) pair is cached briefly; a repeat request with the same key replays that original response (with X-Decisiv-Idempotent-Replay: true) instead of creating a duplicate case. A concurrent request with the same in-flight key gets 409; a key longer than 128 characters gets 400.' schema: type: string maxLength: 128 responses: '201': description: Creates a Case for the specified Customer Asset headers: X-Decisiv-Idempotent-Replay: description: Present and set to 'true' when this response was replayed from a prior request with the same X-DECISIV-IDEMPOTENCY-KEY (no new case was created). schema: type: string enum: - 'true' content: application/vnd.api+json: example: data: id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: cases attributes: reference_number: 1234 created_at: null updated_at: null service_management_service_providers_id: null service_management_customer_assets_id: null service_management_customers_id: null complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics asset_information: null event_timestamps: followup_time: '2025-10-10T13:30:41Z' asset_uptime: '2025-04-10T13:00:41Z' asset_downtime: '2025-04-10T10:30:41Z' asset_arrived: '2025-04-10T11:30:41Z' asset_checked_in: '2025-04-10T12:30:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' breakdown: location: Outside Seneca Lodge city: Watkins Glen state: NY country: US repair_status: null invoice: null vmrs: reason_for_repair: code_key: '14' code: '01' repair_priority: code_key: '16' code: '1' repair_site: code_key: '17' code: '1' tag_number: case_123 relationships: assignee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec driver: data: type: contacts id: 98bf9011-6dcd-4ea8-ac60-3dc6a66f77a2 primary_contact: data: type: contacts id: e3fe0737-d53c-49d1-ad35-0f5ee21c9c03 billing_contact: data: type: contacts id: bbf7dec7-83b9-413a-be5e-6bb7e74b9acf program_type: data: type: program_types id: fc8b1a9f-4705-4444-b3cc-fdaa06f5defe department: data: type: departments id: SERVICE shipping_customer: data: type: customers id: fab7f731-3191-425b-a3b7-076c9ab63f14 billing_customer: data: type: customers id: fab7f731-3312-67jn-a3b7-076c9ab63f14 customer: data: type: customers id: 9b1f3c52-7e44-4a8d-9c2f-1d6e0a2b4c8e schema: $ref: '#/components/schemas/case' '400': description: The X-DECISIV-IDEMPOTENCY-KEY header exceeds the maximum length. content: application/vnd.api+json: example: errors: - status: '400' code: decisiv:idempotency_key:002 title: Idempotency Key Length Exceeded detail: X-DECISIV-IDEMPOTENCY-KEY can not exceed 128 characters source: header: X-DECISIV-IDEMPOTENCY-KEY schema: $ref: '#/components/schemas/errors_response_with_header' '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_with_header' '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_with_header' '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 not found detail: The parent resource could not be found source: parameter: id schema: $ref: '#/components/schemas/errors_response_with_header' '409': description: A concurrent request with the same X-DECISIV-IDEMPOTENCY-KEY is already being processed. Retry to receive the original response. content: application/vnd.api+json: example: errors: - status: '409' code: decisiv:idempotency_key:001 title: Idempotency Key In Progress detail: A request with this idempotency key is already being processed. Retry to receive the original response. source: header: X-DECISIV-IDEMPOTENCY-KEY schema: $ref: '#/components/schemas/errors_response_with_header' '422': description: Unprocessable record / Attribute can't be used error / Relationship not found / Registered Asset associated to the Customer Asset is deactivated content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response_with_header' examples: Unprocessable record: value: errors: - code: '422' detail: Validation Error status: '422' title: Validation Error Attribute can't be used error: value: errors: - status: '422' code: attribute-001 title: Can't be used detail: /data/attributes/attribute Department relationship not found (unknown code or feature disabled): value: errors: - status: '422' code: decisiv:request_attributes:003 title: Identifier not found detail: Identifier not found source: pointer: /data/relationships/department/data/id Registered Asset associated to the Customer Asset is deactivated: value: errors: - status: '422' code: decisiv:customer_assets:005 title: Asset has been deactivated by the Registered Customer and is not eligible for use detail: Occurs when an established Customer Asset related to a Registered Customer has since been deactivated by the Customer source: parameter: id '429': description: This response will often be associated as a result of an over abundance of calls by a specific Application, Account, or IP Address resulting in a required cool off period. content: application/vnd.api+json: example: errors: - code: '429' detail: The maximum number of requests for this application has been far exceeded with the given credentials. status: '429' title: Too Many Requests schema: $ref: '#/components/schemas/errors_response_with_header' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/customer_asset_create_case' examples: Case: value: data: type: cases attributes: complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics event_timestamps: followup_time: '2025-10-10T13:30:41Z' asset_uptime: '2025-04-10T13:00:41Z' asset_downtime: '2025-04-10T10:30:41Z' asset_arrived: '2025-04-10T11:30:41Z' asset_checked_in: '2025-04-10T12:30:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' breakdown: location: Outside Seneca Lodge city: Watkins Glen state: NY country: US tag_number: case_123 repair_status: appointment metadata: case_metadata: Metadata for case case_other_value: '2.30' case_other_integer: '80000' case_other_date: '2025-04-10T13:28:31Z' invoice: total: 3758.5 number: TR-91324 date: '2025-04-10' vmrs: reason_for_repair: code_key: '14' code: '01' repair_priority: code_key: '16' code: '1' repair_site: code_key: '17' code: '1' relationships: assignee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec driver: data: type: contacts id: 98bf9011-6dcd-4ea8-ac60-3dc6a66f77a2 primary_contact: data: type: contacts id: e3fe0737-d53c-49d1-ad35-0f5ee21c9c03 billing_contact: data: type: contacts id: bbf7dec7-83b9-413a-be5e-6bb7e74b9acf program_type: data: type: program_types id: fc8b1a9f-4705-4444-b3cc-fdaa06f5defe department: data: type: departments id: SERVICE shipping_customer: data: type: customers id: fab7f731-3191-425b-a3b7-076c9ab63f14 billing_customer: data: type: customers id: fab7f731-3312-67jn-a3b7-076c9ab63f14 /service_management/{srm_account_id}/v1/customer_assets/{id}/service_history: get: summary: List Service History for the specific Customer Asset tags: - Customer Assets 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 resource UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - service_provider description: The relationships to be included. - name: filter[service_provider.id] in: query required: false schema: type: string format: uuid description: List `service histories` matching the *exact* `service_prodiver.id` attribute. - name: filter[reference_number] in: query required: false schema: type: integer description: List `service histories` matching the *exact* `reference_number` attribute. - name: filter[event_timestamps.closed_at:blank] in: query required: false schema: type: boolean description: List `service histories` matching if `closed_at` attribute is blank. - name: filter[event_timestamps.started_at:lt] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories started _less than_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.started_at:lte] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories started _less than or equal to_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.started_at:gt] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories started _greater than_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.started_at:gte] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories started _greater than or equal to_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.closed_at:lt] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories closed _less than_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.closed_at:lte] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories closed _less than or equal to_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.closed_at:gt] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories closed _greater than_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.closed_at:gte] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories closed _greater than or equal to_ a specified `ISO 8601` timestamp. - 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: Show the list of Service History for requested Customer Asset content: application/vnd.api+json: example: data: - id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: in_network_cases attributes: cause: This is the cause complaint: This is the complaint correction: This is the correction event_timestamps: closed_at: '2025-04-10T13:30:41Z' started_at: '2025-04-08T13:30:41Z' reference_number: 321098 repair_status: parts_ordered relationships: service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 schema: $ref: '#/components/schemas/service_histories' '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 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 not found detail: The parent resource could not be found source: parameter: id schema: $ref: '#/components/schemas/errors_response' '422': description: Unprocessable record / This response may occur when the shared vehicle history is not enable to the account content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Unprocessable record: value: errors: - code: '422' detail: Validation Error status: '422' title: Validation Error This response may occur when the shared vehicle history is not enable to the account: value: errors: - status: '422' code: '422' title: Unprocessable record detail: Shared vehicle history is not enabled for this dealer. /service_management/{srm_account_id}/v1/customer_requests: get: summary: Retrieves a list of customer requests tags: - Customer Requests parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: include in: query required: false schema: type: array items: type: string enum: - case - customer - customer.srm_account description: The relationships to be included. - name: filter[case.id] in: query required: false schema: type: string description: Filters the customer requests for the given case.id, using exact matching search - name: filter[event_timestamps.requested_at:gt] in: query required: false schema: type: string description: Filters the customer requests for the given event_timestamps.requested_at:gt, using exact matching search - name: filter[event_timestamps.requested_at:lt] in: query required: false schema: type: string description: Filters the customer requests for the given event_timestamps.requested_at:lt, using exact matching search - name: filter[event_timestamps.requested_at:gte] in: query required: false schema: type: string description: Filters the customer requests for the given event_timestamps.requested_at:gte, using exact matching search - name: filter[event_timestamps.requested_at:lte] in: query required: false schema: type: string description: Filters the customer requests for the given event_timestamps.requested_at:lte, using exact matching search - name: status in: query required: false schema: type: string enum: - pending - accepted - declined - canceled description: Filters the customer requests for the given status, using exact matching search - 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: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: - id: 31a9810e-70d1-40a3-8c9c-495ff6ce003b type: customer_requests attributes: complaint: transmission leaks on left side status: accepted po_number: PO836743 auth_number: AUTH984107 note: Initial Note asset_information: odometer_value: 1234566 odometer_unit: mi reference_number: 123245 primary_contact: name: Rutherford d'Brave email: rutherford@decisivgenerated.email phone: '+15555551138' driver: name: Wilson email: driver@decisivgenerated.email phone: '+15555551888' breakdown: location: Dorris city: South Lake Tahoe state: KY event_timestamps: requested_at: '2025-04-10T13:28:31Z' requested_appointment_time: '2025-04-10T13:28:31Z' requested_completion_time: '2025-04-10T13:28:31Z' asset_downtime: '2025-04-10T13:28:31Z' confirmed_appointment_at: '2025-04-10T13:28:31Z' metadata: null created_at: null updated_at: null links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/customer_requests/31a9810e-70d1-40a3-8c9c-495ff6ce003b relationships: case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a customer: data: type: registered_customers id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a schema: $ref: '#/components/schemas/customer_requests' '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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' /service_management/{srm_account_id}/v1/customer_request/{id}: get: summary: Retrieves a customer request tags: - Customer Requests 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 resource UUID required: true responses: '200': description: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: id: 31a9810e-70d1-40a3-8c9c-495ff6ce003b type: customer_requests attributes: complaint: transmission leaks on left side status: accepted po_number: PO836743 auth_number: AUTH984107 note: Initial Note asset_information: odometer_value: 1234566 odometer_unit: mi reference_number: 123245 primary_contact: name: Rutherford d'Brave email: rutherford@decisivgenerated.email phone: '+15555551138' driver: name: Wilson email: driver@decisivgenerated.email phone: '+15555551888' breakdown: location: Dorris city: South Lake Tahoe state: KY event_timestamps: requested_at: '2025-04-10T13:28:31Z' requested_appointment_time: '2025-04-10T13:28:31Z' requested_completion_time: '2025-04-10T13:28:31Z' asset_downtime: '2025-04-10T13:28:31Z' confirmed_appointment_at: '2025-04-10T13:28:31Z' metadata: null created_at: null updated_at: null links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/customer_requests/31a9810e-70d1-40a3-8c9c-495ff6ce003b relationships: case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a customer: data: type: registered_customers id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a schema: $ref: '#/components/schemas/customer_request' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' /service_management/{srm_account_id}/v1/customer_request/{id}/accept: post: summary: Retrieves a customer request tags: - Customer Requests 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 resource UUID required: true responses: '200': description: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: id: de7110b4-21a4-45f7-8621-51c6e701f371 type: customer_request_responses attributes: status: accepted note: There's one condition tho event_timestamps: confirmed_appointment_at: '2025-06-19T12:41:30Z' relationships: customer_request: data: type: customer_requests id: 31a9810e-70d1-40a3-8c9c-495ff6ce003b schema: $ref: '#/components/schemas/customer_request_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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' '428': description: Account does not have access to module / Invalid status for customer request content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Account does not have access to module: value: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' Invalid status for customer request: value: errors: - status: '428' code: decisiv:customer_requests:001 title: Response not allowed for status detail: Only Customer Requests with a status of Pending may be accepted or declined by the requesting account source: pointer: /data/attributes/status '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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/customer_request_response_accept' examples: CustomerRequest: value: data: type: customer_request_responses attributes: note: There's one condition tho event_timestamps: confirmed_appointment_at: '2025-06-19T12:41:30Z' /service_management/{srm_account_id}/v1/customer_request/{id}/decline: post: summary: Retrieves a customer request tags: - Customer Requests 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 resource UUID required: true responses: '200': description: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: id: de7110b4-21a4-45f7-8621-51c6e701f371 type: customer_request_responses attributes: status: declined note: There's one condition tho relationships: customer_request: data: type: customer_requests id: 31a9810e-70d1-40a3-8c9c-495ff6ce003b schema: $ref: '#/components/schemas/customer_request_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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' '428': description: Account does not have access to module / Invalid status for customer request content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Account does not have access to module: value: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' Invalid status for customer request: value: errors: - status: '428' code: decisiv:customer_requests:001 title: Response not allowed for status detail: Only Customer Requests with a status of Pending may be accepted or declined by the requesting account source: pointer: /data/attributes/status '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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/customer_request_response_decline' examples: CustomerRequest: value: data: type: customer_request_responses attributes: note: There's one condition tho /service_management/{srm_account_id}/v1/customers: get: summary: List all Customers tags: - Customers parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: filter[name] in: query required: false schema: type: string description: List `customers` matching the *exact* `name` attribute. - name: filter[name:like] in: query required: false schema: type: string description: List `customers` that match partially the `name` attribute. - name: filter[city] in: query required: false schema: type: string description: List `customers` matching the *exact* `city` attribute. - name: filter[state] in: query required: false schema: type: string description: List `customers` matching the *exact* `state` attribute. - name: filter[external_reference.business_system] in: query required: false schema: type: string description: List `customers` matching the *exact* `business_system` attribute. - 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 - name: sort in: query required: false schema: type: string example: -name description: 'Sort `customers` by a single attribute; prefix with `-` for descending order. Valid attributes: `name`' - name: include in: query required: false schema: type: array items: type: string enum: - srm_account - service_provider description: Return specified included relationships upon request responses: '200': description: Returns list of customers content: application/vnd.api+json: example: data: - id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email notes: Premium customer - call ahead account_number: ACC-1234 external_reference: business_system: ES-2112 relationships: srm_account: data: null service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 - id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: registered_customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email notes: Premium customer - call ahead account_number: ACC-1234 external_reference: business_system: ES-2112 relationships: srm_account: data: type: srm_accounts id: 2addba31-878e-40de-b3d6-6aee375250dc service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 schema: $ref: '#/components/schemas/customers' post: summary: Create a new Customer tags: - Customers parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string responses: '201': description: Creates a new Customer record content: application/vnd.api+json: example: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email notes: Premium customer - call ahead account_number: ACC-1234 external_reference: business_system: ES-2112 relationships: srm_account: data: null service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 schema: $ref: '#/components/schemas/customer' '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' '422': description: Phone/Fax number does not begin with + / Phone/Fax number has whitespace in it / Phone/Fax number has invalid country code or does not conform with E.164 / Phone/Fax number has less than 3 chars / Phone/Fax number has more than 15 chars content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Phone number does not begin with +: value: errors: - status: '422' code: decisiv:phone:001 title: Invalid Phone Format detail: Phone number must begin with a + character per E.164 standard source: pointer: /data/attributes/phone Fax number does not begin with +: value: errors: - status: '422' code: decisiv:phone:001 title: Invalid Phone Format detail: Fax number must begin with a + character per E.164 standard source: pointer: /data/attributes/fax Phone number has whitespace in it: value: errors: - status: '422' code: decisiv:phone:002 title: Invalid Phone Format detail: Phone number can not contain spaces source: pointer: /data/attributes/phone Fax number has whitespace in it: value: errors: - status: '422' code: decisiv:phone:002 title: Invalid Phone Format detail: Fax number can not contain spaces source: pointer: /data/attributes/fax Phone number has invalid country code or does not conform with E.164: value: errors: - status: '422' code: decisiv:phone:003 title: Invalid Phone Format detail: Phone number contains an invalid country code source: pointer: /data/attributes/phone Fax number has invalid country code or does not conform with E.164: value: errors: - status: '422' code: decisiv:phone:003 title: Invalid Phone Format detail: Fax number contains an invalid country code source: pointer: /data/attributes/fax Phone number has less than 3 chars: value: errors: - status: '422' code: decisiv:phone:004 title: Invalid Phone Format detail: Phone number length does not meet minimum length - must be 3 characters source: pointer: /data/attributes/phone Fax number has less than 3 chars: value: errors: - status: '422' code: decisiv:phone:004 title: Invalid Phone Format detail: Fax number length does not meet minimum length - must be 3 characters source: pointer: /data/attributes/fax Phone number has more than 15 chars: value: errors: - status: '422' code: decisiv:phone:005 title: Invalid Phone Format detail: Phone number length exceeds maximum length - can not be longer than 15 characters source: pointer: /data/attributes/phone Fax number has more than 15 chars: value: errors: - status: '422' code: decisiv:phone:005 title: Invalid Phone Format detail: Fax number length exceeds maximum length - can not be longer than 15 characters source: pointer: /data/attributes/fax '429': description: This response will often be associated as a result of an over abundance of calls by a specific Application, Account, or IP Address resulting in a required cool off period. content: application/vnd.api+json: example: errors: - code: '429' detail: The maximum number of requests for this application has been far exceeded with the given credentials. status: '429' title: Too Many Requests schema: $ref: '#/components/schemas/errors_response' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/create_customer' examples: New customer with all attributes: value: data: type: customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email notes: Premium customer - call ahead account_number: ACC-1234 external_reference: business_system: ES-2112 /service_management/{srm_account_id}/v1/customers/{id}: get: summary: Show details for a specific Customer tags: - Customers 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 resource UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - srm_account - service_provider description: Return specified included relationships upon request responses: '200': description: Show details for a specific Customer content: application/vnd.api+json: example: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email notes: Premium customer - call ahead account_number: ACC-1234 external_reference: business_system: ES-2112 relationships: srm_account: data: null service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 schema: $ref: '#/components/schemas/customer_by_id' '404': description: This response may occur when the requested resource is not found. content: application/vnd.api+json: example: errors: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' patch: summary: Updates a customer tags: - Customers 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 resource UUID required: true responses: '200': description: Successful update of Customer content: application/vnd.api+json: example: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email notes: Premium customer - call ahead account_number: ACC-1234 external_reference: business_system: ES-2112 relationships: srm_account: data: null service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 schema: $ref: '#/components/schemas/customer' '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: - status: '400' code: decisiv:request_schema:001 title: Request must be validated against exactly one of the documented schemas detail: Occurs when an invalid schema is provided 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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' requestBody: content: application/vnd.api+json: schema: oneOf: - $ref: '#/components/schemas/update_customer' - $ref: '#/components/schemas/update_registered_customer' examples: Customer: value: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email notes: Premium customer - call ahead account_number: ACC-1234 external_reference: business_system: ES-2112 Registered Customer: value: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: registered_customers attributes: external_reference: business_system: ES-2112 /service_management/{srm_account_id}/v1/customers/{customer_id}/contacts: get: summary: List all Contacts for the requested Customer tags: - Contacts parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: customer_id in: path schema: type: string format: uuid description: The customer UUID required: true - name: filter[name] in: query required: false schema: type: string description: List `contacts` matching the *exact* `name` attribute. - name: filter[name:like] in: query required: false schema: type: string minLength: 3 description: List `contacts` matching the *partial* `name` attribute. - name: filter[email] in: query required: false schema: type: string description: List `contacts` matching the *exact* `email` attribute. - name: page[number] in: query required: false schema: type: integer description: Page number - name: page[size] in: query required: false schema: type: integer description: Page size - name: sort in: query required: false schema: type: string example: -first_name,last_name description: 'Sort `contacts` by one or more attributes separated by commas; prefix with `-` for descending order. Valid attributes: `first_name`, `last_name`' responses: '200': description: Returns list of contacts content: application/vnd.api+json: example: data: - id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: contacts attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: null notify: false links: self: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/customers/{customer_id}/contacts/aa3e7935-bfe2-475e-9be2-80ccef5477c8 meta: record-count: 8 schema: $ref: '#/components/schemas/contacts' '400': description: Account filter is missing content: application/vnd.api+json: example: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' 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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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' post: summary: Create a Contact tags: - Contacts parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: customer_id in: path schema: type: string format: uuid description: The customer UUID required: true responses: '201': description: The request has been fulfilled and a new resource is available. content: application/vnd.api+json: example: data: id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: contacts attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: '+1234567890' notify: true links: self: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/customers/{customer_id}/contacts/aa3e7935-bfe2-475e-9be2-80ccef5477c8 schema: $ref: '#/components/schemas/contact' '400': description: Account filter is missing / Required key not provided / Required value not provided content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Account filter is missing: value: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' Required key not provided: 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/first_name Required value not provided: value: errors: - status: '400' code: decisiv:request_attributes:002 title: Missing required attribute value detail: Required key must be populated source: pointer: /data/attributes '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: Account not found content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '422': description: Email with invalid host / Email with long local part / Email with long domain part / Email with invalid format / Phone number does not begin with + / Phone number has whitespace in it / Phone number has invalid country code or does not conform with E.164 / Phone number has less than 3 chars / Phone number has more than 15 chars content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Email with invalid host: value: errors: - status: '422' code: decisiv:email:001 title: Invalid Email - Domain Resolution detail: Email domain name could not be resolved by DNS source: pointer: /data/attributes/communication/0/value Email with long local part: value: errors: - status: '422' code: decisiv:email:002 title: Invalid Email - Local Part Length detail: Local-part exceeds maximum length of 64 octets source: pointer: /data/attributes/communication/0/value Email with long domain part: value: errors: - status: '422' code: decisiv:email:003 title: Invalid Email - Domain Length detail: Email domain length exceeds 255 characters source: pointer: /data/attributes/communication/0/value Email with invalid format: value: errors: - status: '422' code: decisiv:email:004 title: Invalid Email - Invalid Syntax detail: Email address does not match correct syntax in RFC 3696 source: pointer: /data/attributes/communication/0/value Phone number does not begin with +: value: errors: - status: '422' code: decisiv:phone:001 title: Invalid Phone Format detail: Phone number must begin with a + character per E.164 standard source: pointer: /data/attributes/communication/1/value Phone number has whitespace in it: value: errors: - status: '422' code: decisiv:phone:002 title: Invalid Phone Format detail: Phone number can not contain spaces source: pointer: /data/attributes/communication/1/value Phone number has invalid country code or does not conform with E.164: value: errors: - status: '422' code: decisiv:phone:003 title: Invalid Phone Format detail: Phone number contains an invalid country code source: pointer: /data/attributes/communication/1/value Phone number has less than 3 chars: value: errors: - status: '422' code: decisiv:phone:004 title: Invalid Phone Format detail: Phone number length does not meet minimum length - must be 3 characters source: pointer: /data/attributes/communication/1/value Phone number has more than 15 chars: value: errors: - status: '422' code: decisiv:phone:005 title: Invalid Phone Format detail: Phone number length exceeds maximum length - can not be longer than 15 characters source: pointer: /data/attributes/communication/1/value '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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/create_contact' examples: Create Contact: value: data: type: contacts attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: '+1234567890' notify: true /service_management/{srm_account_id}/v1/customers/{customer_id}/contacts/{id}: get: summary: Retrieves a Contact from the requested Customer tags: - Contacts parameters: - name: srm_account_id in: path required: true schema: type: string - name: customer_id in: path schema: type: string format: uuid description: The customer UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true responses: '200': description: Returns a contact content: application/vnd.api+json: example: data: id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: contacts attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: '+1234567890' notify: true links: self: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/customers/{customer_id}/contacts/aa3e7935-bfe2-475e-9be2-80ccef5477c8 schema: $ref: '#/components/schemas/contact_by_id' '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: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' 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' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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: summary: Updates Contact tags: - Contacts parameters: - name: srm_account_id in: path required: true schema: type: string - name: customer_id in: path schema: type: string format: uuid description: The customer UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true responses: '200': description: Show the updated contact content: application/vnd.api+json: example: data: id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: contacts attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: '+1234567890' notify: true links: self: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/customers/{customer_id}/contacts/aa3e7935-bfe2-475e-9be2-80ccef5477c8 schema: $ref: '#/components/schemas/contact' '400': description: Path ID mismatch / 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: schema: $ref: '#/components/schemas/errors_response' examples: Path ID mismatch: value: errors: - status: '400' code: decisiv:resource:002 title: Invalid JSON:API Resource specified in request detail: '''79327cde-d5ce-4ce6-bdba-eebab125ae2d'' is an invalid resource' source: pointer: /data/id ? This response may occur when an invalid request has been provided to the server. The request may be corrected by the consumer and resubmitted. : value: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' '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' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '422': description: Email with invalid host / Email with long local part / Email with long domain part / Email with invalid format / Phone number does not begin with + / Phone number has whitespace in it / Phone number has invalid country code or does not conform with E.164 / Phone number has less than 3 chars / Phone number has more than 15 chars content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Email with invalid host: value: errors: - status: '422' code: decisiv:email:001 title: Invalid Email - Domain Resolution detail: Email domain name could not be resolved by DNS source: pointer: /data/attributes/communication/0/value Email with long local part: value: errors: - status: '422' code: decisiv:email:002 title: Invalid Email - Local Part Length detail: Local-part exceeds maximum length of 64 octets source: pointer: /data/attributes/communication/0/value Email with long domain part: value: errors: - status: '422' code: decisiv:email:003 title: Invalid Email - Domain Length detail: Email domain length exceeds 255 characters source: pointer: /data/attributes/communication/0/value Email with invalid format: value: errors: - status: '422' code: decisiv:email:004 title: Invalid Email - Invalid Syntax detail: Email address does not match correct syntax in RFC 3696 source: pointer: /data/attributes/communication/0/value Phone number does not begin with +: value: errors: - status: '422' code: decisiv:phone:001 title: Invalid Phone Format detail: Phone number must begin with a + character per E.164 standard source: pointer: /data/attributes/communication/1/value Phone number has whitespace in it: value: errors: - status: '422' code: decisiv:phone:002 title: Invalid Phone Format detail: Phone number can not contain spaces source: pointer: /data/attributes/communication/1/value Phone number has invalid country code or does not conform with E.164: value: errors: - status: '422' code: decisiv:phone:003 title: Invalid Phone Format detail: Phone number contains an invalid country code source: pointer: /data/attributes/communication/1/value Phone number has less than 3 chars: value: errors: - status: '422' code: decisiv:phone:004 title: Invalid Phone Format detail: Phone number length does not meet minimum length - must be 3 characters source: pointer: /data/attributes/communication/1/value Phone number has more than 15 chars: value: errors: - status: '422' code: decisiv:phone:005 title: Invalid Phone Format detail: Phone number length exceeds maximum length - can not be longer than 15 characters source: pointer: /data/attributes/communication/1/value '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/contact_update' examples: Update Contact: value: data: id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: contacts attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: '+1234567890' notify: true delete: summary: Deletes a Contact tags: - Contacts parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: customer_id in: path schema: type: string format: uuid description: The customer UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true responses: '204': description: Successful deletion content: {} '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' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource schema: $ref: '#/components/schemas/errors_response' /service_management/{srm_account_id}/v1/departments: get: operationId: listDepartments summary: List all departments for the requested account description: Departments are dealer-defined categories identified by a dealer-scoped string code. Requires the `service_management:ReadDepartments` permission and is only available when the `Departments` feature is enabled for the account. Results are ordered by the department's configured position. tags: - Departments parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - 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 list of departments content: application/vnd.api+json: example: data: - id: SERVICE type: departments attributes: name: Service - id: BODY_SHOP type: departments attributes: name: Body Shop meta: record-count: 2 schema: $ref: '#/components/schemas/departments' '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: The authenticated user does not have permission to access the requested resource or the feature is not enabled for the account. content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Forbidden: value: errors: - title: Forbidden detail: User does not have permission to perform this action on the requested resource(s) code: decisiv:access:001 status: '403' Feature unavailable: value: errors: - title: Feature unavailable detail: This feature is not enabled for the requested account code: decisiv:account:002 status: '403' '404': description: This response may occur when the requested resource is not found. content: application/vnd.api+json: example: errors: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/cases/{case_id}/diagnostic_readings: get: summary: List all Diagnostic Reading for a specific Case in the requested account tags: - Diagnostic Readings parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - 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 list of Diagnostic Readings for a case content: application/vnd.api+json: example: data: - id: 447e4535-78bf-4661-a06f-8dbd39d4f3fb type: diagnostic_readings attributes: triggered_at: 2025-04-10 13:30:41 UTC sensor_readings: - name: AFTRT 1 Intake NOx description: Aftertreatment 1 Intake NOx, Range -200 to 3012.75 value: '115.8' unit_of_measure: ppm classification_header: Engine Operation key_data: false localize: false components: - name: ECU description: 'The #1 on the Engine CA is to identify that this is the first PA being used for the particular function, Engine. It may only be used for the NAME Function of 0' version: Engine origin_id: 8b4f10f6-c762-485b-a3df-3e94ca6ad995 origin: paccar_remote_diagnostics location: heading: 251 altitude: 3649 latitude: '-58.28' longitude: '152.41' asset_data: vin: 3B7HF13Z11M269883 make: Make year: '2000' model: CH613 device_id: null chassis_id: '12312312' serial_number: '19992823' relationships: faults: data: - type: faults id: 1e4797e6-cdb0-4bc1-9cd0-41050e53df17 schema: $ref: '#/components/schemas/diagnostic_readings' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/extended_attributes: get: summary: List all Extended Attributes from the requested account tags: - Extended Attributes parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - 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 responses: '200': description: Returns list of extended attributes content: application/vnd.api+json: example: data: - id: 3e5f4d4d-8a3d-43d7-8b55-73a0b38adbf9 type: extended_attributes attributes: name: String Options schema: type: string enum: - option1 - option2 schema: $ref: '#/components/schemas/extended_attributes' '400': description: Account filter is missing content: application/vnd.api+json: example: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' 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' '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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' /service_management/{srm_account_id}/v1/extended_attributes/{id}: get: summary: Retrieves an Extended Attribute from the requested account tags: - Extended Attributes 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: Returns an extended attribute content: application/vnd.api+json: example: data: id: 3e5f4d4d-8a3d-43d7-8b55-73a0b38adbf9 type: extended_attributes attributes: name: String Options schema: type: string enum: - option1 - option2 schema: $ref: '#/components/schemas/extended_attribute' '400': description: Account filter is missing content: application/vnd.api+json: example: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' 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: Account not found content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' /service_management/{srm_account_id}/v1/extended_asset_attributes: get: summary: List all Extended Asset Attributes for the requested account tags: - Extended Asset Attributes parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: page[number] in: query required: false schema: type: number description: Page number - name: page[size] in: query required: false schema: type: number description: Page size responses: '200': description: Returns list of extended asset attributes content: application/vnd.api+json: example: data: - id: 3e5f4d4d-8a3d-43d7-8b55-73a0b38adbf9 type: extended_asset_attributes attributes: value: values relationships: account_extended_attribute: data: type: extended_attributes id: 3e5f4d4d-8a3d-43d7-8b55-73a0b38adbf9 customer_asset: data: type: customer_assets id: ed1641a8-fa41-478a-bd2e-dd72013096b0 schema: $ref: '#/components/schemas/extended_asset_attributes' '400': description: Account filter is missing content: application/vnd.api+json: example: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' 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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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' post: summary: Create an Extended Asset Attribute tags: - Extended Asset Attributes parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string responses: '201': description: The request has been fulfilled and a new resource is available. content: application/vnd.api+json: example: data: id: 3e5f4d4d-8a3d-43d7-8b55-73a0b38adbf9 type: extended_asset_attributes attributes: value: values relationships: account_extended_attribute: data: type: extended_attributes id: 3e5f4d4d-8a3d-43d7-8b55-73a0b38adbf9 customer_asset: data: type: customer_assets id: ed1641a8-fa41-478a-bd2e-dd72013096b0 schema: $ref: '#/components/schemas/extended_asset_attribute' '400': description: Account filter is missing / Required key not provided / Invalid Attribute Value / Required value not provided / Invalid ID format for account extended attribute relationship / Invalid ID format for registered_asset relationship content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Account filter is missing: value: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' Required key not provided: 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/value Invalid Attribute Value: value: errors: - status: '400' code: decisiv:request_attributes:010 title: Invalid Attribute Value detail: Invalid {{attribute_name}} value provided - {{reason}} source: pointer: /data/attributes/value links: about: https://decisiv.net/asset_management/srm_account/v1/ Required value not provided: value: errors: - status: '400' code: decisiv:request_attributes:002 title: Missing required attribute value detail: Required key must be populated source: pointer: /data/attributes/value Invalid ID format for account extended attribute relationship: value: errors: - status: '422' code: decisiv:relationships:001 title: Invalid ID format requested detail: Provided ID in relationships must be a valid UUID format source: pointer: /data/relationships/account_extended_attribute/data/id Invalid ID format for registered_asset relationship: value: errors: - status: '422' code: decisiv:relationships:001 title: Invalid ID format requested detail: Provided ID in relationships must be a valid UUID format source: pointer: /data/relationships/registered_asset/data/id '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: Account not found content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '422': description: Account Extended Attribute not found / Registered asset not found / Extended Asset Attribute Association Exists content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Account Extended Attribute not found: value: errors: - status: 422 code: decisiv:request_attributes:003 title: Identifier not found detail: Identifier not found source: pointer: /data/relationships/account_extended_attribute/data/id Registered asset not found: value: errors: - status: 422 code: decisiv:request_attributes:003 title: Identifier not found detail: Identifier not found source: pointer: /data/relationships/registered_asset/data/id Extended Asset Attribute Association Exists: value: errors: - status: '422' title: Extended Asset Attribute Association Exists detail: The extended asset attribute must be unique for the Extended Attribute and Customer Asset within your Account code: decisiv:extended_asset_attributes:001 source: pointer: /data/relationships '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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/extended_asset_attribute' examples: Example: value: data: type: extended_asset_attributes attributes: value: values relationships: account_extended_attribute: data: type: extended_attributes id: 3e5f4d4d-8a3d-43d7-8b55-73a0b38adbf9 customer_asset: data: type: customer_assets id: ed1641a8-fa41-478a-bd2e-dd72013096b0 /service_management/{srm_account_id}/v1/extended_asset_attributes/{id}: get: summary: Retrieves an Extended Asset Attribute from the requested account tags: - Extended Asset Attributes parameters: - name: srm_account_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string responses: '200': description: Returns an extended asset attribute content: application/vnd.api+json: example: data: id: 3e5f4d4d-8a3d-43d7-8b55-73a0b38adbf9 type: extended_asset_attributes attributes: value: values relationships: account_extended_attribute: data: type: extended_attributes id: 3e5f4d4d-8a3d-43d7-8b55-73a0b38adbf9 customer_asset: data: type: customer_assets id: ed1641a8-fa41-478a-bd2e-dd72013096b0 schema: $ref: '#/components/schemas/extended_asset_attribute' '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: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' 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' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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: summary: Updates an Extended Asset Attribute tags: - Extended Asset Attributes parameters: - name: srm_account_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string responses: '200': description: Show the updated extended asset attribute content: application/vnd.api+json: example: data: id: 3e5f4d4d-8a3d-43d7-8b55-73a0b38adbf9 type: extended_asset_attributes attributes: value: values relationships: account_extended_attribute: data: type: extended_attributes id: 3e5f4d4d-8a3d-43d7-8b55-73a0b38adbf9 customer_asset: data: type: customer_assets id: ed1641a8-fa41-478a-bd2e-dd72013096b0 schema: $ref: '#/components/schemas/extended_asset_attribute' '400': description: Path ID mismatch / 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: schema: $ref: '#/components/schemas/errors_response' examples: Path ID mismatch: value: errors: - status: '400' code: decisiv:resource:002 title: Invalid JSON:API Resource specified in request detail: '''79327cde-d5ce-4ce6-bdba-eebab125ae2d'' is an invalid resource' source: pointer: /data/id ? This response may occur when an invalid request has been provided to the server. The request may be corrected by the consumer and resubmitted. : value: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' '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' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '422': description: Extended Asset Attribute Association Exists content: application/vnd.api+json: example: errors: - status: '422' title: Extended Asset Attribute Association Exists detail: The extended asset attribute must be unique for the Extended Attribute and Customer Asset within your Account code: decisiv:extended_asset_attributes:001 source: pointer: /data/relationships schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/update_extended_asset_attribute' examples: Example: value: data: id: 3e5f4d4d-8a3d-43d7-8b55-73a0b38adbf9 type: extended_asset_attributes attributes: value: values relationships: account_extended_attribute: data: type: extended_attributes id: 3e5f4d4d-8a3d-43d7-8b55-73a0b38adbf9 customer_asset: data: type: customer_assets id: ed1641a8-fa41-478a-bd2e-dd72013096b0 delete: summary: Deletes an Extended Asset Attribute tags: - Extended Asset Attributes parameters: - name: srm_account_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string responses: '204': description: Successful deletion content: {} '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' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource schema: $ref: '#/components/schemas/errors_response' /service_management/{srm_account_id}/v1/cases/{case_id}/faults: get: summary: List all Faults for a specific Case in the requested account tags: - Faults parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - 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 list of Faults for a case content: application/vnd.api+json: example: data: - id: 1e4797e6-cdb0-4bc1-9cd0-41050e53df17 type: faults attributes: triggered_at: 2025-04-10 13:30:41 UTC spn: '3456' fmi: '19' fault_code: '1223' sensor_readings: - name: AFTRT 1 Intake NOx description: Aftertreatment 1 Intake NOx, Range -200 to 3012.75 value: '115.8' unit_of_measure: ppm classification_header: Engine Operation key_data: false localize: false guidance: - name: AFTRT 2 NOx description: Aftertreatment 1 value: '15.8' classification_header: Engine Operation location: heading: '251' altitude: '3649' latitude: '-58.28' longitude: '152.41' details: components: name: ECU description: 'The #1 on the Engine CA is to identify that this is the first PA being used for the particular function, Engine. It may only be used for the NAME Function of 0' version: Engine occurrences: '3' odometer_unit: mi odometer_value: '23993123' severity_level: '2' active: false diagnostic_reading_id: null severity: 2 created_by: user updated_by: user relationships: diagnostic_reading: data: type: diagnostic_readings id: 447e4535-78bf-4661-a06f-8dbd39d4f3fb asset: data: type: assets id: 3fdd7ee5-ce1a-45b6-a938-b3e367952e0b schema: $ref: '#/components/schemas/faults' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/cases/{case_id}/applicable_operations: get: summary: List all applicable operations for a specific case in the requested account tags: - Operations parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: case_id in: path schema: type: string format: uuid description: The case UUID required: true - name: filter[opcode] in: query required: true schema: type: string minLength: 3 description: Filters operations for the given opcode, using exact matching search - 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 list of Applicable Operations for a case content: application/vnd.api+json: example: data: - id: T3789-0-04 type: applicable_operations attributes: name: All Engines All Years All Models All Makes for Air Dryer Cartridge, Replacement description: Default variation for Air Dryer Cartridge, Replacement opcode: T3789-0-04 notes: A note added to the operation pricing: estimated_total: '100.0' fixed_total: null labor: estimated_total: '50.0' parts: estimated_total: 50 fixed_total: null labor: time: '2.0' skill_level: A vmrs: code_key: '33' code_key_name: Component Code code: 001-001-000 description: Component Code description parts: - number: AB1098 name: Replacement for Air Dryer Cartridge quantity: 1 unit_price: '353.28' price_code: SR37TYP schema: $ref: '#/components/schemas/applicable_operations' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/internal_users: get: summary: List details all Internal Users tags: - Internal Users parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: filter[permissions:includes] in: query required: false schema: type: string minLength: 1 description: Filters users for the given permission assigned, using exact matching search - name: filter[external_reference.business_system] in: query required: false schema: type: string minLength: 1 description: Filters users by the exact match of the external reference business system responses: '200': description: Returns a list of internal_users content: application/vnd.api+json: example: data: - id: 6383dc89-05b6-4572-8979-a6257f3597ec type: internal_users attributes: first_name: Joe last_name: Ramone email: joe-ramone@decisivgenerated.email permissions: - service_management:CreateCustomers - service_management:ReadCustomers - service_management:ModifyCustomers - service_management:ReadCases - service_management:CreateCases - service_management:ModifyCases - service_management:ReadCustomerAssets - service_management:ModifyCustomerAssets - service_management:CreateCustomerAssets - service_management:CreateCaseMetadata - service_management:ReadApplicableOperations - service_management:ModifyCustomerNumber external_reference: business_system: '123' meta: record-count: 1 schema: $ref: '#/components/schemas/internal_users' '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' '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' /service_management/{srm_account_id}/v1/internal_users/{id}: get: summary: List details on a specific Internal User tags: - Internal Users 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 resource UUID required: true responses: '200': description: Show details for Internal User content: application/vnd.api+json: example: data: id: 6383dc89-05b6-4572-8979-a6257f3597ec type: internal_users attributes: first_name: Joe last_name: Ramone email: joe-ramone@decisivgenerated.email permissions: - service_management:CreateCustomers - service_management:ReadCustomers - service_management:ModifyCustomers - service_management:ReadCases - service_management:CreateCases - service_management:ModifyCases - service_management:ReadCustomerAssets - service_management:ModifyCustomerAssets - service_management:CreateCustomerAssets - service_management:CreateCaseMetadata - service_management:ReadApplicableOperations - service_management:ModifyCustomerNumber external_reference: business_system: '123' schema: $ref: '#/components/schemas/internal_user' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/program_types: get: summary: List all program types for the requested account tags: - Program Types parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - 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 list of program types content: application/vnd.api+json: example: data: - id: b7390546-9a28-4aed-9e30-1a5afc0ab696 type: program_types attributes: name: Trucks default: true schema: $ref: '#/components/schemas/program_types' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/program_types/{id}: get: summary: List details on a specific Program Type tags: - Program Types 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 resource UUID required: true responses: '200': description: Show details for requested Program Type content: application/vnd.api+json: example: data: id: b7390546-9a28-4aed-9e30-1a5afc0ab696 type: program_types attributes: name: Trucks default: true schema: $ref: '#/components/schemas/program_type_by_id' '404': description: Account not found / Program Type not found content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Account not found: value: errors: - status: '404' title: Record not found source: parameter: srm_account_id Program Type not found: value: errors: - status: '404' code: decisiv:resource:001 title: Resource Identifier - Not Found detail: The parent resource could not be found source: parameter: id /service_management/{srm_account_id}/v1/registered_assets: get: summary: List all registered assets filtered by vin or serial number or unit number tags: - Registered Assets parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: filter[serial_number] in: query required: false schema: type: string minLength: 8 maxLength: 9 description: Filter `registered_assets` matching the *exact* `serial_number` attribute. - name: filter[unit_number] in: query required: false schema: type: string description: Filter `registered_assets` matching the *exact* `unit_number` attribute. - name: filter[vin] in: query required: false schema: type: string minLength: 17 maxLength: 17 description: Filter `registered_assets` matching the *exact* `vin` attribute. - name: filter[chassis_id] in: query required: false schema: type: string maxLength: 50 description: Filter `registered_assets` matching the *exact* `chassis_id` attribute. - 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 list of registered assets content: application/vnd.api+json: example: data: - id: f444a054-4889-484a-b549-7a60caa5d79f type: registered_assets attributes: vin: 3B7HF13Z11M269883 serial_number: 1M269883 unit_number: NU2695 chassis_id: N-991562 make: Acme model: CH613 year: 2024 engine: make: Cummins model: X15 displacement: 14.8L serial_number: '79412345' odometer_value: 125000 odometer_unit: mi vmrs: asset_type: code_key: '2' code: D schema: $ref: '#/components/schemas/registered_assets' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/repair_statuses: get: summary: List all the repair statuses tags: - Repair Statuses parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string responses: '200': description: Returns list of repair statuses content: application/vnd.api+json: example: data: - id: appointment type: decisiv_case_repair_statuses attributes: name: 'Appointment ' description: An appointment has been associated with the case category: arrival schema: $ref: '#/components/schemas/repair_statuses' '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' /service_management/{srm_account_id}/v1/service_group/customer_assets: get: summary: List all Customer Assets from Service group tags: - Service Group - Customer Assets parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: filter[vin] in: query required: false schema: type: string minLength: 17 maxLength: 17 description: List `customer_assets` matching the *exact* `vin` attribute. - name: filter[unit_number] in: query required: false schema: type: string description: Filter `customer_assets` matching the *exact* `unit_number` attribute. - name: filter[serial_number] in: query required: false schema: type: string minLength: 8 maxLength: 9 description: Filter `customer_assets` matching the *exact* `serial_number` attribute. - name: filter[chassis_id] in: query required: false schema: type: string maxLength: 50 description: Filter `customer_assets` matching the *exact* `chassis_id` attribute. - name: filter[customer.id] in: query required: false schema: type: string format: uuid description: Filter `customer_assets` matching the *exact* `customer.id` attribute. - name: filter[service_status] in: query required: false schema: type: string enum: - active - inactive - archived description: Filter `customer_assets` matching the *exact* `service_status` attribute. - name: filter[service_status:includes] in: query required: false schema: type: string description: List `customer_assets` whose `service_status` is in the supplied comma-separated list. Accepted values are `active`, `inactive`, `archived`. - name: filter[service_status:excludes] in: query required: false schema: type: string description: List `customer_assets` whose `service_status` is **NOT** in the supplied comma-separated list. Accepted values are `active`, `inactive`, `archived`. - 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 - name: include in: query required: false schema: type: array items: type: string enum: - customer - srm_verified_asset description: Return specified included relationships upon request responses: '200': description: Returns list of customer_assets / Returns list of Service Group Customer Asset content: application/vnd.api+json: schema: $ref: '#/components/schemas/customer_assets' examples: Returns list of customer_assets: value: data: - id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: customer_assets attributes: vin: 3B7HF13Z11M269883 serial_number: HN991562 unit_number: NU2695 chassis_id: N-991562 make: Make model: CH613 year: 2017 service_status: active engine: make: Engine Make model: X15 displacement: 14.8L serial_number: '79412345' odometer_value: 125000 odometer_unit: mi vmrs: asset_type: code_key: '2' code: D links: source_application: https://{host}/vehicles/{id}/edit self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/customer_assets/aa3e7935-bfe2-475e-9be2-80ccef5477c8 relationships: customer: data: type: customers id: cd91f5cb-5c38-4f10-90cb-de2efad3ee82 srm_verified_asset: data: type: srm_verified_assets id: a6cfb121-5e78-4ec4-a7ea-223900c76607 Returns list of Service Group Customer Asset: value: data: - id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: service_group_customer_assets attributes: vin: 3B7HF13Z11M269883 serial_number: HN991562 unit_number: NU2695 chassis_id: N-991562 make: Make model: CH613 year: 2017 service_status: active engine: make: Engine Make model: X15 displacement: 14.8L serial_number: '79412345' odometer_value: 125000 odometer_unit: mi vmrs: asset_type: code_key: '2' code: D links: source_application: https://{host}/vehicles/{id}/edit self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/customer_assets/aa3e7935-bfe2-475e-9be2-80ccef5477c8 relationships: customer: data: type: service_group_customers id: cd91f5cb-5c38-4f10-90cb-de2efad3ee82 srm_verified_asset: data: type: srm_verified_assets id: a6cfb121-5e78-4ec4-a7ea-223900c76607 - id: bd4f8a46-cf03-586f-acf3-91dde0cc88e0 type: service_group_customer_assets attributes: vin: 1FUJBBCK57LX12345 serial_number: HN991563 unit_number: NU2696 chassis_id: N-991563 make: Make model: CH613 year: 2018 service_status: archived engine: make: Engine Make model: X15 displacement: 14.8L serial_number: '79412345' odometer_value: 125000 odometer_unit: mi vmrs: asset_type: code_key: '2' code: D links: source_application: https://{host}/vehicles/{id}/edit self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/customer_assets/bd4f8a46-cf03-586f-acf3-91dde0cc88e0 relationships: customer: data: type: service_group_registered_customers id: de92a6dc-6d49-5021-a1dc-ef3fae4ef933 srm_verified_asset: data: type: srm_verified_assets id: b7d0c232-6f89-5fd5-b8fb-334a11d87718 '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: examples: Filter not allowed: value: 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] Invalid filter value: value: errors: - title: Invalid filter value detail: '''{{invalid_value}}'' is not a valid value. Valid values: {{valid_values}}' code: decisiv:filters:002 status: '400' source: parameter: filter[service_status:includes] schema: $ref: '#/components/schemas/errors_response' /service_management/{srm_account_id}/v1/service_group/customer_assets/{id}: get: summary: List details on a specific Customer Asset from Service group tags: - Service Group - Customer Assets 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 resource UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - customer - srm_verified_asset description: Return specified included relationships upon request responses: '200': description: Show details for requested Customer Asset / Show details for requested Service Group Customer Asset content: application/vnd.api+json: schema: $ref: '#/components/schemas/customer_asset_by_id' examples: Show details for requested Customer Asset: value: data: type: customer_assets id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 attributes: vin: 3B7HF13Z11M269883 serial_number: HN991562 unit_number: NU2695 chassis_id: N-991562 make: Make model: CH613 year: 2017 service_status: active engine: make: Engine Make model: X15 displacement: 14.8L serial_number: '79412345' odometer_value: 125000 odometer_unit: mi vmrs: asset_type: code_key: '2' code: D relationships: customer: data: type: customers id: cd91f5cb-5c38-4f10-90cb-de2efad3ee82 srm_verified_asset: data: type: srm_verified_assets id: a6cfb121-5e78-4ec4-a7ea-223900c76607 Show details for requested Service Group Customer Asset: value: data: type: service_group_customer_assets id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 attributes: vin: 3B7HF13Z11M269883 serial_number: HN991562 unit_number: NU2695 chassis_id: N-991562 make: Make model: CH613 year: 2017 service_status: active engine: make: Engine Make model: X15 displacement: 14.8L serial_number: '79412345' odometer_value: 125000 odometer_unit: mi vmrs: asset_type: code_key: '2' code: D relationships: customer: data: type: service_group_customers id: cd91f5cb-5c38-4f10-90cb-de2efad3ee82 srm_verified_asset: data: type: srm_verified_assets id: a6cfb121-5e78-4ec4-a7ea-223900c76607 '404': description: This response may occur when the requested resource is not found. content: application/vnd.api+json: example: errors: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' /service_management/{srm_account_id}/v1/service_group/customer_assets/{id}/create_case: post: summary: Create a case for the specific Customer Asset from Service Group tags: - Service Group - Customer Assets 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 resource UUID required: true - name: X-DECISIV-IDEMPOTENCY-KEY in: header required: false description: 'Optional idempotency key. The first successful create_case for a given (account, key) pair is cached briefly; a repeat request with the same key replays that original response (with X-Decisiv-Idempotent-Replay: true) instead of creating a duplicate case. A concurrent request with the same in-flight key gets 409; a key longer than 128 characters gets 400.' schema: type: string maxLength: 128 responses: '201': description: Creates a Case for the specified Customer Asset headers: X-Decisiv-Idempotent-Replay: description: Present and set to 'true' when this response was replayed from a prior request with the same X-DECISIV-IDEMPOTENCY-KEY (no new case was created). schema: type: string enum: - 'true' content: application/vnd.api+json: example: data: id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: cases attributes: reference_number: 1234 created_at: null updated_at: null service_management_service_providers_id: null service_management_customer_assets_id: null service_management_customers_id: null complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics asset_information: null event_timestamps: followup_time: '2025-10-10T13:30:41Z' asset_uptime: '2025-04-10T13:00:41Z' asset_downtime: '2025-04-10T10:30:41Z' asset_arrived: '2025-04-10T11:30:41Z' asset_checked_in: '2025-04-10T12:30:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' breakdown: location: Outside Seneca Lodge city: Watkins Glen state: NY country: US repair_status: null invoice: null vmrs: reason_for_repair: code_key: '14' code: '01' repair_priority: code_key: '16' code: '1' repair_site: code_key: '17' code: '1' tag_number: case_123 relationships: assignee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec driver: data: type: contacts id: 98bf9011-6dcd-4ea8-ac60-3dc6a66f77a2 primary_contact: data: type: contacts id: e3fe0737-d53c-49d1-ad35-0f5ee21c9c03 billing_contact: data: type: contacts id: bbf7dec7-83b9-413a-be5e-6bb7e74b9acf program_type: data: type: program_types id: fc8b1a9f-4705-4444-b3cc-fdaa06f5defe department: data: type: departments id: SERVICE shipping_customer: data: type: customers id: fab7f731-3191-425b-a3b7-076c9ab63f14 billing_customer: data: type: customers id: fab7f731-3312-67jn-a3b7-076c9ab63f14 customer: data: type: customers id: 9b1f3c52-7e44-4a8d-9c2f-1d6e0a2b4c8e schema: $ref: '#/components/schemas/service_group_customer_asset_create_case' '400': description: The X-DECISIV-IDEMPOTENCY-KEY header exceeds the maximum length. content: application/vnd.api+json: example: errors: - status: '400' code: decisiv:idempotency_key:002 title: Idempotency Key Length Exceeded detail: X-DECISIV-IDEMPOTENCY-KEY can not exceed 128 characters source: header: X-DECISIV-IDEMPOTENCY-KEY schema: $ref: '#/components/schemas/errors_response_with_header' '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_with_header' '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_with_header' '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_with_header' '409': description: A concurrent request with the same X-DECISIV-IDEMPOTENCY-KEY is already being processed. Retry to receive the original response. content: application/vnd.api+json: example: errors: - status: '409' code: decisiv:idempotency_key:001 title: Idempotency Key In Progress detail: A request with this idempotency key is already being processed. Retry to receive the original response. source: header: X-DECISIV-IDEMPOTENCY-KEY schema: $ref: '#/components/schemas/errors_response_with_header' '422': description: Unprocessable record / Attribute can't be used error / Relationship not found content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response_with_header' examples: Unprocessable record: value: errors: - code: '422' detail: Validation Error status: '422' title: Validation Error Attribute can't be used error: value: errors: - status: '422' code: attribute-001 title: Can't be used detail: /data/attributes/attribute Department relationship not found (unknown code or feature disabled): value: errors: - status: '422' code: decisiv:request_attributes:003 title: Identifier not found detail: Identifier not found source: pointer: /data/relationships/department/data/id '429': description: This response will often be associated as a result of an over abundance of calls by a specific Application, Account, or IP Address resulting in a required cool off period. content: application/vnd.api+json: example: errors: - code: '429' detail: The maximum number of requests for this application has been far exceeded with the given credentials. status: '429' title: Too Many Requests schema: $ref: '#/components/schemas/errors_response_with_header' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/service_group_customer_asset_create_case' examples: Case: value: data: type: cases attributes: complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics event_timestamps: followup_time: '2025-10-10T13:30:41Z' asset_uptime: '2025-04-10T13:00:41Z' asset_downtime: '2025-04-10T10:30:41Z' asset_arrived: '2025-04-10T11:30:41Z' asset_checked_in: '2025-04-10T12:30:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' breakdown: location: Outside Seneca Lodge city: Watkins Glen state: NY country: US tag_number: case_123 repair_status: appointment metadata: - key: case_metadata value: Metadata for case - key: case_other_value value: '2.30' - key: case_other_integer value: '80000' - key: case_other_date value: '2025-04-10T13:28:31Z' invoice: total: 3758.5 number: TR-91324 date: '2025-04-10' vmrs: reason_for_repair: code_key: '14' code: '01' repair_priority: code_key: '16' code: '1' repair_site: code_key: '17' code: '1' relationships: assignee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec driver: data: type: contacts id: 98bf9011-6dcd-4ea8-ac60-3dc6a66f77a2 primary_contact: data: type: contacts id: e3fe0737-d53c-49d1-ad35-0f5ee21c9c03 billing_contact: data: type: contacts id: bbf7dec7-83b9-413a-be5e-6bb7e74b9acf program_type: data: type: program_types id: fc8b1a9f-4705-4444-b3cc-fdaa06f5defe department: data: type: departments id: SERVICE shipping_customer: data: type: customers id: fab7f731-3191-425b-a3b7-076c9ab63f14 billing_customer: data: type: customers id: fab7f731-3312-67jn-a3b7-076c9ab63f14 /service_management/{srm_account_id}/v1/service_group/customer_assets/{id}/service_history: get: summary: List Service History for the specific Customer Asset from Service Group tags: - Service Group - Customer Assets 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 resource UUID required: true - name: filter[service_provider.id] in: query required: false schema: type: string format: uuid description: List `service histories` matching the *exact* `service_prodiver.id` attribute. - name: filter[reference_number] in: query required: false schema: type: integer description: List `service histories` matching the *exact* `reference_number` attribute. - name: filter[event_timestamps.closed_at:blank] in: query required: false schema: type: boolean description: List `service histories` matching if `closed_at` attribute is blank. - name: filter[event_timestamps.started_at:lt] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories started _less than_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.started_at:lte] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories started _less than or equal to_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.started_at:gt] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories started _greater than_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.started_at:gte] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories started _greater than or equal to_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.closed_at:lt] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories closed _less than_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.closed_at:lte] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories closed _less than or equal to_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.closed_at:gt] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories closed _greater than_ a specified `ISO 8601` timestamp. - name: filter[event_timestamps.closed_at:gte] in: query required: false schema: type: string format: date-time description: Timebased filter to list service histories closed _greater than or equal to_ a specified `ISO 8601` timestamp. - name: include in: query required: false schema: type: array items: type: string enum: - service_provider 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: Show the list of Service History for requested Customer Asset from Service Group content: application/vnd.api+json: example: data: - id: 487136d2-c4d6-424c-b018-f1ed8a740c6a type: in_network_cases attributes: cause: This is the cause complaint: This is the complaint correction: This is the correction event_timestamps: closed_at: '2025-04-10T13:30:41Z' started_at: '2025-04-08T13:30:41Z' reference_number: 321098 repair_status: parts_ordered relationships: service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 schema: $ref: '#/components/schemas/service_histories' '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' '422': description: Unprocessable record / This response may occur when the shared vehicle history is not enable to the account content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Unprocessable record: value: errors: - code: '422' detail: Validation Error status: '422' title: Validation Error This response may occur when the shared vehicle history is not enable to the account: value: errors: - status: '422' code: '422' title: Unprocessable record detail: Shared vehicle history is not enabled for this dealer. /service_management/{srm_account_id}/v1/service_group/customers: get: summary: List all Customers from Service group tags: - Service Group - Customers parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: filter[external_reference.business_system] in: query required: false schema: type: string description: List `customers` matching the *exact* `business_system` attribute. - name: filter[name] in: query required: false schema: type: string description: List `customers` matching the *exact* `name` attribute. - name: filter[name:like] in: query required: false schema: type: string minLength: 3 description: List `customers` that match partially the `name` attribute. - name: filter[city] in: query required: false schema: type: string description: List `customers` matching the *exact* `city` attribute. - name: filter[state] in: query required: false schema: type: string description: List `customers` matching the *exact* `state` attribute. - 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 list of customers content: application/vnd.api+json: example: data: - id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email external_reference: business_system: ES-2112 relationships: srm_account: data: null service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 - id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: registered_customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email external_reference: business_system: ES-2112 relationships: srm_account: data: type: srm_accounts id: 2addba31-878e-40de-b3d6-6aee375250dc service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 schema: $ref: '#/components/schemas/customers' '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' /service_management/{srm_account_id}/v1/service_group/customers/{id}: get: summary: List details on a specific Customer from Service group tags: - Service Group - Customers 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 resource UUID required: true responses: '200': description: Show details for requested Customer content: application/vnd.api+json: schema: $ref: '#/components/schemas/customer_by_id' examples: Customer: value: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email external_reference: business_system: ES-2112 relationships: srm_account: data: null service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 Registered Customer: value: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: registered_customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email external_reference: business_system: ES-2112 relationships: srm_account: data: type: srm_accounts id: 2addba31-878e-40de-b3d6-6aee375250dc service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 Service Group Customer: value: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: service_group_customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email external_reference: business_system: ES-2112 relationships: srm_account: data: null service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 Service Group Registered Customer: value: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: service_group_registered_customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email external_reference: business_system: ES-2112 relationships: srm_account: data: type: srm_accounts id: 2addba31-878e-40de-b3d6-6aee375250dc service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 '404': description: This response may occur when the requested resource is not found. content: application/vnd.api+json: example: errors: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' patch: summary: Updates a Customer from Service group tags: - Service Group - Customers 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 resource UUID required: true responses: '200': description: Successful update of Customer content: application/vnd.api+json: schema: $ref: '#/components/schemas/customer' examples: Customer: value: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email external_reference: business_system: ES-2112 relationships: srm_account: data: null service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 Registered Customer: value: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: registered_customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email external_reference: business_system: ES-2112 relationships: srm_account: data: type: srm_accounts id: 2addba31-878e-40de-b3d6-6aee375250dc service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 Service Group Customer: value: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: service_group_customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email external_reference: business_system: ES-2112 relationships: srm_account: data: null service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 Service Group Registered Customer: value: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: service_group_registered_customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email external_reference: business_system: ES-2112 relationships: srm_account: data: type: srm_accounts id: 2addba31-878e-40de-b3d6-6aee375250dc service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 '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: - status: '400' code: decisiv:request_schema:001 title: Request must be validated against exactly one of the documented schemas detail: Occurs when an invalid schema is provided 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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' requestBody: content: application/vnd.api+json: schema: oneOf: - $ref: '#/components/schemas/update_customer' - $ref: '#/components/schemas/update_registered_customer' examples: Customer: value: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email external_reference: business_system: ES-2112 Registered Customer: value: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: registered_customers attributes: external_reference: business_system: ES-2112 /service_management/{srm_account_id}/v1/service_group/customers/{customer_id}/contacts: get: summary: List all Contacts for the requested Service Group Customer tags: - Service Group - Customer Contacts parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: customer_id in: path schema: type: string format: uuid description: The customer UUID required: true - name: filter[name] in: query required: false schema: type: string description: List `contacts` whose full name (`first_name` and `last_name` joined by a single space) exactly matches the provided value. - name: filter[name:like] in: query required: false schema: type: string minLength: 3 description: List `contacts` matching a partial-token search across `first_name` and `last_name`. Whitespace-separated tokens in the provided value are matched as prefixes against either name field. - name: filter[email] in: query required: false schema: type: string description: List `contacts` whose `attributes.communication[]` entry with `method_type` of `email` has a `value` exactly matching the provided value. - name: page[number] in: query required: false schema: type: integer description: Page number - name: page[size] in: query required: false schema: type: integer description: Page size - name: sort in: query required: false schema: type: string example: -first_name,last_name description: 'Sort `contacts` by one or more attributes separated by commas; prefix with `-` for descending order. Valid attributes: `first_name`, `last_name`' responses: '200': description: Returns list of contacts / Returns list of service group contacts content: application/vnd.api+json: schema: $ref: '#/components/schemas/contacts' examples: Returns list of contacts: value: data: - id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: contacts attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: '+1234567890' notify: true links: self: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/service_group/customers/{customer_id}/contacts/aa3e7935-bfe2-475e-9be2-80ccef5477c8 Returns list of service group contacts: value: data: - id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: service_group_contacts attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: '+1234567890' notify: true links: self: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/service_group/customers/{customer_id}/contacts/aa3e7935-bfe2-475e-9be2-80ccef5477c8 '400': description: Account filter is missing content: application/vnd.api+json: example: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' 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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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' post: summary: Create a Contact for Service Group Customer tags: - Service Group - Customer Contacts parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: customer_id in: path schema: type: string format: uuid description: The customer UUID required: true responses: '201': description: The request has been fulfilled and a new resource is available. content: application/vnd.api+json: example: data: id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: contacts attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: '+1234567890' notify: true links: self: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/service_group/customers/{customer_id}/contacts/aa3e7935-bfe2-475e-9be2-80ccef5477c8 schema: $ref: '#/components/schemas/contact' '400': description: Account filter is missing / Required key not provided / Required value not provided content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Account filter is missing: value: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' Required key not provided: 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/first_name Required value not provided: value: errors: - status: '400' code: decisiv:request_attributes:002 title: Missing required attribute value detail: Required key must be populated source: pointer: /data/attributes '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: Account not found content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '422': description: Email with invalid host / Email with long local part / Email with long domain part / Phone number does not begin with + / Phone number has whitespace in it / Phone number has invalid country code or does not conform with E.164 / Phone number has less than 3 chars / Phone number has more than 15 chars content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Email with invalid host: value: errors: - status: '422' code: decisiv:email:001 title: Invalid Email - Domain Resolution detail: Email domain name could not be resolved by DNS source: pointer: /data/attributes/communication/0/value Email with long local part: value: errors: - status: '422' code: decisiv:email:002 title: Invalid Email - Local Part Length detail: Local-part exceeds maximum length of 64 octets source: pointer: /data/attributes/communication/0/value Email with long domain part: value: errors: - status: '422' code: decisiv:email:003 title: Invalid Email - Domain Length detail: Email domain length exceeds 255 characters source: pointer: /data/attributes/communication/0/value Phone number does not begin with +: value: errors: - status: '422' code: decisiv:phone:001 title: Invalid Phone Format detail: Phone number must begin with a + character per E.164 standard source: pointer: /data/attributes/communication/1/value Phone number has whitespace in it: value: errors: - status: '422' code: decisiv:phone:002 title: Invalid Phone Format detail: Phone number can not contain spaces source: pointer: /data/attributes/communication/1/value Phone number has invalid country code or does not conform with E.164: value: errors: - status: '422' code: decisiv:phone:003 title: Invalid Phone Format detail: Phone number contains an invalid country code source: pointer: /data/attributes/communication/1/value Phone number has less than 3 chars: value: errors: - status: '422' code: decisiv:phone:004 title: Invalid Phone Format detail: Phone number length does not meet minimum length - must be 3 characters source: pointer: /data/attributes/communication/1/value Phone number has more than 15 chars: value: errors: - status: '422' code: decisiv:phone:005 title: Invalid Phone Format detail: Phone number length exceeds maximum length - can not be longer than 15 characters source: pointer: /data/attributes/communication/1/value '428': description: Missing required permission content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource schema: $ref: '#/components/schemas/errors_response' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/create_contact' examples: Create Contact: value: data: type: contacts attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: '+1234567890' notify: true /service_management/{srm_account_id}/v1/service_group/customers/{customer_id}/contacts/{id}: get: summary: Retrieves a Contact from the requested Service Group Customer tags: - Service Group - Customer Contacts parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: customer_id in: path schema: type: string format: uuid description: The customer UUID required: true - name: id in: path schema: type: string format: uuid description: The contact UUID required: true responses: '200': description: Returns the contact content: application/vnd.api+json: example: data: type: contacts id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: '+1234567890' notify: true links: self: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/service_group/customers/{customer_id}/contacts/aa3e7935-bfe2-475e-9be2-80ccef5477c8 schema: $ref: '#/components/schemas/contact_by_id' '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' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource schema: $ref: '#/components/schemas/errors_response' patch: summary: Updates a Contact for Service Group Customer tags: - Service Group - Customer Contacts parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: customer_id in: path schema: type: string format: uuid description: The customer UUID required: true - name: id in: path schema: type: string format: uuid description: The contact UUID required: true responses: '200': description: Successful update of Contact content: application/vnd.api+json: example: data: id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: contacts attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: '+1234567890' notify: true links: self: https://srm-api.decisivapps.com/service_management/{srm_account_id}/v1/service_group/customers/{customer_id}/contacts/aa3e7935-bfe2-475e-9be2-80ccef5477c8 schema: $ref: '#/components/schemas/contact' '400': description: Path ID mismatch content: application/vnd.api+json: example: errors: - status: '400' code: decisiv:resource:002 title: Invalid JSON:API Resource specified in request detail: '''79327cde-d5ce-4ce6-bdba-eebab125ae2d'' is an invalid resource' source: pointer: /data/id 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' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '422': description: Email with invalid host / Email with long local part / Email with long domain part / Phone number does not begin with + / Phone number has whitespace in it / Phone number has invalid country code or does not conform with E.164 / Phone number has less than 3 chars / Phone number has more than 15 chars content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Email with invalid host: value: errors: - status: '422' code: decisiv:email:001 title: Invalid Email - Domain Resolution detail: Email domain name could not be resolved by DNS source: pointer: /data/attributes/communication/0/value Email with long local part: value: errors: - status: '422' code: decisiv:email:002 title: Invalid Email - Local Part Length detail: Local-part exceeds maximum length of 64 octets source: pointer: /data/attributes/communication/0/value Email with long domain part: value: errors: - status: '422' code: decisiv:email:003 title: Invalid Email - Domain Length detail: Email domain length exceeds 255 characters source: pointer: /data/attributes/communication/0/value Phone number does not begin with +: value: errors: - status: '422' code: decisiv:phone:001 title: Invalid Phone Format detail: Phone number must begin with a + character per E.164 standard source: pointer: /data/attributes/communication/1/value Phone number has whitespace in it: value: errors: - status: '422' code: decisiv:phone:002 title: Invalid Phone Format detail: Phone number can not contain spaces source: pointer: /data/attributes/communication/1/value Phone number has invalid country code or does not conform with E.164: value: errors: - status: '422' code: decisiv:phone:003 title: Invalid Phone Format detail: Phone number contains an invalid country code source: pointer: /data/attributes/communication/1/value Phone number has less than 3 chars: value: errors: - status: '422' code: decisiv:phone:004 title: Invalid Phone Format detail: Phone number length does not meet minimum length - must be 3 characters source: pointer: /data/attributes/communication/1/value Phone number has more than 15 chars: value: errors: - status: '422' code: decisiv:phone:005 title: Invalid Phone Format detail: Phone number length exceeds maximum length - can not be longer than 15 characters source: pointer: /data/attributes/communication/1/value '428': description: Missing required permission content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource schema: $ref: '#/components/schemas/errors_response' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/contact_update' examples: Update Contact: value: data: type: contacts id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: '+1234567890' notify: true delete: summary: Deletes a Contact from Service Group Customer tags: - Service Group - Customer Contacts parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: customer_id in: path schema: type: string format: uuid description: The customer UUID required: true - name: id in: path schema: type: string format: uuid description: The contact UUID required: true responses: '204': description: Contact deleted successfully content: {} '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' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: Missing required permission content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource schema: $ref: '#/components/schemas/errors_response' /service_management/{srm_account_id}/v1/service_networks: get: summary: List all Service Networks for the requested account tags: - Service Networks parameters: - name: srm_account_id in: path required: true schema: type: string - name: filter[name] in: query required: false schema: type: string description: List `service_network` matching the *exact* `name` attribute. responses: '200': description: Returns list of service networks content: application/vnd.api+json: example: data: - id: 6686a1ab-a307-4c28-ba9e-a1a9fa1ec76c type: service_networks attributes: name: Network name schema: $ref: '#/components/schemas/service_networks' '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' '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' /service_management/{srm_account_id}/v1/service_networks/{id}: get: summary: List details on a specific service network tags: - Service Networks parameters: - name: srm_account_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string responses: '200': description: Show details for requested asset content: application/vnd.api+json: example: data: id: 6686a1ab-a307-4c28-ba9e-a1a9fa1ec76c type: service_networks attributes: name: Network name schema: $ref: '#/components/schemas/service_network' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/service_providers: get: summary: List all Service Providers for the requested account tags: - Service Providers description: 'You need to use at least one of the filters: filter[name], filter[name:like], filter[geolocation.point] or filter[state].' parameters: - name: srm_account_id in: path required: true schema: type: string - name: include in: query required: false schema: type: array items: type: string description: 'Return specified included relationships upon request. Valid relationships are: `service_networks`' - name: filter[name] in: query required: false schema: type: string minimum: 3 description: List `service_provider` matching the *exact* `name` attribute. Cannot be combined with `filter[name:like]`. - name: filter[name:like] in: query required: false schema: type: string minimum: 3 description: List `service_provider` that match partially the `name` attribute. Cannot be combined with `filter[name]`. - name: filter[geolocation.point] in: query required: false schema: type: string description: 'List `service_provider` for the given geolocation.point, using geolocation search. Format: `lat,lon`' - name: filter[geolocation.radius] in: query required: false schema: type: string description: Used combined with `geolocation.point filter`. Maximum value of 100 - name: filter[geolocation.radius_unit] in: query required: false schema: type: string description: 'Used combined with `geolocation.point` and `geolocation.radius` filters. Valid values: `mi` and `km`' - name: filter[state] in: query required: false schema: type: string description: List `service_provider` matching the *exact* `state` attribute. - name: filter[service_networks.name] in: query required: false schema: type: string description: List `service_provider` matching the *exact* `service_networks.name` attribute. - name: filter[service_networks.id] in: query required: false schema: type: string format: uuid description: List `service_provider` matching the *exact* `service_networks.id` attribute. responses: '200': description: Returns list of service providers content: application/vnd.api+json: example: data: - id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 type: service_providers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' country: US email: roxy.by.proxy@decisivgenerated.email phone: (939) 555-0113 fax: (939) 555-0113 location: latitude: 34.090674 longitude: -118.387979 schema: $ref: '#/components/schemas/service_providers' '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] - status: '400' code: decisiv:filters:007 title: Minimum character length not met detail: Filter value must be at least 3 characters source: pointer: /filter/name - title: Maximum character length not met detail: Filter value must be less than 255 characters code: decisiv:filters:008 status: '400' source: parameter: filter[name] - status: '400' code: decisiv:filters:007 title: Minimum character length not met detail: Filter value must be at least 3 characters source: pointer: /filter/name:like - title: Maximum character length not met detail: Filter value must be less than 255 characters code: decisiv:filters:008 status: '400' source: parameter: filter[name:like] - title: Conflicting filters detail: Cannot combine filter[name] with its :like variant. Use only one. code: decisiv:filters:012 status: '400' source: parameter: filter[name] - title: Maximum character length not met detail: Filter value must be less than 4096 characters code: decisiv:filters:008 status: '400' source: parameter: filter[name] - title: Invalid filter characters detail: Filter value for filter[name] contains invalid characters. code: decisiv:filters:013 status: '400' source: parameter: filter[name] - title: Invalid filter value shape detail: Filter value for filter[name] must be a string. code: decisiv:filters:014 status: '400' source: parameter: 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' '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' /service_management/{srm_account_id}/v1/skill_levels: get: summary: Retrieves a list of skill levels tags: - Skill Levels parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string responses: '200': description: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: - id: A type: skill_levels attributes: description: This is a skill level description pricing: labor: '50.00' links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/skill_levels/A schema: $ref: '#/components/schemas/skill_levels' '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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' /service_management/{srm_account_id}/v1/skill_levels/{id}: get: summary: Retrieves a skill level tags: - Skill Levels 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: string description: The resource ID example A required: true responses: '200': description: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: id: A type: skill_levels attributes: description: This is a skill level description pricing: labor: '50.00' links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/skill_levels/A schema: $ref: '#/components/schemas/skill_level' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' /service_management/{srm_account_id}/v1/service_providers/{id}: get: summary: List details on a specific service provider tags: - Service Providers parameters: - name: srm_account_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string responses: '200': description: Show details for requested asset content: application/vnd.api+json: example: data: id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 type: service_providers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' country: US email: roxy.by.proxy@decisivgenerated.email phone: (939) 555-0113 fax: (939) 555-0113 location: latitude: 34.090674 longitude: -118.387979 schema: $ref: '#/components/schemas/service_provider' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/sublet_associations: get: summary: Retrieves a list of sublet associations tags: - Sublet Associations parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: include in: query required: false schema: type: array items: type: string enum: - sublet_case - parent_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: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: - id: e45cf094-4141-4ab0-b2a5-90271aaa137d type: sublet_associations attributes: reason: Text description of the reason for the association relationships: parent_case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a sublet_case: data: type: sublet_cases id: dc8b7b66-288c-4072-9e31-3df871d5e561 schema: $ref: '#/components/schemas/sublet_associations' '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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' post: summary: Create a sublet association for two cases tags: - Sublet Associations parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string responses: '201': description: Creates a Case for the specified Sublet Association content: application/vnd.api+json: example: data: id: e45cf094-4141-4ab0-b2a5-90271aaa137d type: sublet_associations attributes: reason: Text description of the reason for the association relationships: parent_case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a sublet_case: data: type: sublet_cases id: dc8b7b66-288c-4072-9e31-3df871d5e561 schema: $ref: '#/components/schemas/sublet_association' '400': description: Empty body error / Invalid type in relationships error content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Empty body error: value: errors: - status: '400' code: decisiv:request_schema:001 title: Request must be validated against exactly one of the documented schemas detail: Occurs when an invalid schema is provided Invalid type in relationships error: value: errors: - status: '400' title: Invalid JSON:API Resource specified in request detail: '''{{invalid_resource}}'' is an invalid resource' code: '''wrong-type'' is an invalid resource' source: pointer: /data/relationships/parent_case|sublet_case/type '401': 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: 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' '412': description: Association not allowed content: application/vnd.api+json: example: errors: - status: '412' code: decisiv:sublet_associations:007 title: Ineligible Account detail: Service Provider account does not participate in any configured Sublet Association Program schema: $ref: '#/components/schemas/errors_response' '422': description: Invalid relationship uuid format error / Parent case not found for the requested Account error / Sublet case not found or not owned by service provider error / Case closed error / Sublet case older than 30 days error / Cases with different asset associated error / Same case error / Cases already associated content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid relationship uuid format error: value: errors: - status: '422' code: decisiv:relationships:001 title: Invalid ID format requested detail: Provided ID in relationships must be a valid UUID format source: pointer: /data/relationships/parent_case|sublet_case/data/id Parent case not found for the requested Account error: value: errors: - status: '422' code: decisiv:sublet_associations:008 title: Parent Case Not Found detail: Parent Case not found for the requested Account source: pointer: /data/relationships/parent_case/data/id Case closed error: value: errors: - status: '422' title: Closed case not eligible detail: Cases in the closed state cannot be modified code: decisiv:sublet_associations:001 source: pointer: /data/relationships/'parent_case|sublet_case'/id Sublet case older than 30 days error: value: errors: - status: '422' title: Invalid Action Request detail: Case should have been created in the last 30 days code: decisiv:sublet_associations:002 source: pointer: /data/relationships/sublet_case/id Sublet case not found or not owned by service provider error: value: errors: - status: '422' title: Sublet Case Not Found detail: The identified sublet case can not be found code: decisiv:sublet_requests:006 source: pointer: /data/relationships/sublet_case/data/id Cases with different asset associated error: value: errors: - status: '422' title: Invalid Action Request detail: Cases must be associated with the same asset code: decisiv:sublet_associations:004 source: pointer: /data/relationships/sublet_case/id Same case error: value: errors: - status: '422' title: Invalid Action Request detail: Case cannot be associated with itself code: decisiv:sublet_associations:005 source: pointer: /data/relationships Cases already associated: value: errors: - status: '422' title: Invalid Action Request detail: Parent case and sublet case have already been associated code: decisiv:sublet_associations:006 source: pointer: /data/relationships '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' schema: $ref: '#/components/schemas/errors_response' '429': description: This response will often be associated as a result of an over abundance of calls by a specific Application, Account, or IP Address resulting in a required cool off period. content: application/vnd.api+json: example: errors: - code: '429' detail: The maximum number of requests for this application has been far exceeded with the given credentials. status: '429' title: Too Many Requests schema: $ref: '#/components/schemas/errors_response' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/create_sublet_association' examples: Sublet Association: value: data: type: sublet_associations attributes: reason: Text description of the reason for the association relationships: parent_case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a sublet_case: data: type: in_network_cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a /service_management/{srm_account_id}/v1/sublet_associations/{id}: get: summary: List details on a specific sublet associations tags: - Sublet Associations parameters: - name: srm_account_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string responses: '200': description: Show details for sublet association content: application/vnd.api+json: example: data: id: e45cf094-4141-4ab0-b2a5-90271aaa137d type: sublet_associations attributes: reason: Text description of the reason for the association relationships: parent_case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a sublet_case: data: type: sublet_cases id: dc8b7b66-288c-4072-9e31-3df871d5e561 schema: $ref: '#/components/schemas/sublet_association' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/sublet_cases: get: summary: Retrieves a list of sublet cases tags: - Sublet Cases parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: include in: query required: false schema: type: array items: type: string enum: - service_provider - parent_case description: The relationships to be included. - name: filter[ro_number] in: query required: false schema: type: string description: Filters the sublet_cases for the given ro_number, using exact matching search - name: filter[reference_number] in: query required: false schema: type: string description: Filters the sublet_cases for the given reference_number, using exact matching search - name: filter[parent_case.id] in: query required: false schema: type: string description: Filters the sublet_cases for the given parent_case.id, using exact matching search - name: filter[service_provider.id] in: query required: false schema: type: string description: Filters the sublet_cases for the given service_provider.id, using exact matching search - name: filter[event_timestamps.started_at:gt] in: query required: false schema: type: string description: Filters the sublet_cases for the given event_timestamps.started_at:gt, using exact matching search - name: filter[event_timestamps.started_at:lt] in: query required: false schema: type: string description: Filters the sublet_cases for the given event_timestamps.started_at:lt, using exact matching search - name: filter[event_timestamps.started_at:gte] in: query required: false schema: type: string description: Filters the sublet_cases for the given event_timestamps.started_at:gte, using exact matching search - name: filter[event_timestamps.started_at:lte] in: query required: false schema: type: string description: Filters the sublet_cases for the given event_timestamps.started_at:lte, using exact matching search - 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: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: - id: dc8b7b66-288c-4072-9e31-3df871d5e561 type: sublet_cases attributes: reference_number: 321098 complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics repair_status: appointment pricing: parts_total: '140.00' labor_total: '0.0' taxes_total: '20.0' total: '160.00' invoice: total: 3758.5 number: TR-91324 invoice_date: '2025-04-10T13:30:41Z' event_timestamps: closed_at: '2025-04-10T13:30:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' started_at: '2025-04-10T12:00:41Z' created_at: 2025-04-10 12:30:41 UTC updated_at: 2025-04-10 13:21:41 UTC links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/cases/487136d2-c4d6-424c-b018-f1ed8a740c6a relationships: parent_case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 schema: $ref: '#/components/schemas/sublet_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] 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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' /service_management/{srm_account_id}/v1/sublet_cases/{id}: get: summary: List details on a specific sublet case tags: - Sublet Cases parameters: - name: srm_account_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string responses: '200': description: Show details for requested asset content: application/vnd.api+json: example: data: id: dc8b7b66-288c-4072-9e31-3df871d5e561 type: sublet_cases attributes: reference_number: 321098 complaint: CEL on po_number: V2479-128 auth_number: DV793957 ro_number: U2112550 cause: Diagnostic check required correction: Reset Diagnostics repair_status: appointment pricing: parts_total: '140.00' labor_total: '0.0' taxes_total: '20.0' total: '160.00' invoice: total: 3758.5 number: TR-91324 invoice_date: '2025-04-10T13:30:41Z' event_timestamps: closed_at: '2025-04-10T13:30:41Z' estimated_time_to_repair: '2025-04-10T13:15:41Z' actual_time_to_repair: '2025-04-10T13:10:41Z' started_at: '2025-04-10T12:00:41Z' created_at: 2025-04-10 12:30:41 UTC updated_at: 2025-04-10 13:21:41 UTC links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/cases/487136d2-c4d6-424c-b018-f1ed8a740c6a relationships: parent_case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 schema: $ref: '#/components/schemas/sublet_case' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/sublet_cases/{sublet_case_uuid}/attachments: get: summary: Retrieves a list of sublet cases attachments tags: - Sublet Cases Attachments parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: sublet_case_uuid in: path schema: type: string format: uuid description: The sublet case UUID required: true - 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 list of attachments for the sublet case content: application/vnd.api+json: example: data: - id: 4c346310-aed3-48cd-af4b-3f6494cf95a1 type: attachments attributes: description: The latest estimate filename: estimate.pdf size: 2684354 format: application/pdf download_url: https://decisiv.net/shared/downloads/7746422/get_authed?filename=estimate.pdf&key=184bddd6479a3e3d created_at: '2023-10-01T12:00:00Z' updated_at: '2023-10-01T12:00:00Z' links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/sublet_cases/{sublet_case_uuid}/attachments/4c346310-aed3-48cd-af4b-3f6494cf95a1 relationships: publisher: data: type: users id: 6383dc89-05b6-4572-8979-a6257f3597ec subject: data: type: sublet_cases id: dc8b7b66-288c-4072-9e31-3df871d5e561 recipients: data: - type: participants id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d schema: $ref: '#/components/schemas/attachments' '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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' post: summary: Creates an attachment for the requested sublet case tags: - Sublet Cases Attachments parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: sublet_case_uuid in: path schema: type: string format: uuid description: The sublet case UUID required: true - name: X-DECISIV-SILENCE-EVENTS in: header required: false schema: type: array items: type: string enum: - decisiv:service_management:sublet_case:attachment_posted description: Corresponding webhook events which can be muted for the given transaction responses: '201': description: Created an attachment for the sublet case content: application/vnd.api+json: example: data: id: 4c346310-aed3-48cd-af4b-3f6494cf95a1 type: attachments attributes: description: The latest estimate filename: estimate.pdf size: 2684354 format: application/pdf download_url: https://decisiv.net/shared/downloads/7746422/get_authed?filename=estimate.pdf&key=184bddd6479a3e3d created_at: '2023-10-01T12:00:00Z' updated_at: '2023-10-01T12:00:00Z' links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/sublet_cases/{sublet_case_uuid}/attachments/4c346310-aed3-48cd-af4b-3f6494cf95a1 relationships: publisher: data: type: users id: 6383dc89-05b6-4572-8979-a6257f3597ec subject: data: type: sublet_cases id: dc8b7b66-288c-4072-9e31-3df871d5e561 recipients: data: - type: participants id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d schema: $ref: '#/components/schemas/attachment' '400': description: Invalid event name to silence / Invalid request attribute / Filename extension does not match / Invalid attribute value content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid event name to silence: value: errors: - title: Bad Request detail: Invalid value for X-DECISIV-SILENCE-EVENTS header code: decisiv:silence_webhook_events:001 status: '400' Invalid request attribute: value: errors: - status: '400' code: decisiv:request_attributes:009 title: Attribute Not Allowed detail: invalid_attribute is not allowed source: pointer: /data/attributes/invalid_attribute Filename extension does not match: value: errors: - status: '400' code: decisiv:attachments:003 title: Filename extension does not match detail: Filename extension does not match the actual filename. source: pointer: /data/attributes/filename Invalid attribute value: value: errors: - status: '400' code: decisiv:request_attributes:010 title: Invalid Attribute Value detail: Invalid {{attribute_name}} value provided - {{reason}} source: pointer: /data/attributes/{{attribute_name}} '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' requestBody: content: multipart/form-data: schema: type: object properties: body: type: string description: 'Data to be sent as a body. **Example:** * {"data": {"type": "attachments","attributes": { "description": "This is a description", "filename": "filename.txt"},"relationships": { "subject": {"data": { "type": "sublet_cases", "id": "287b52ce-6429-4319-b8ef-2c3042acfd82"}}, "recipients": {"data": [{ "type": "participants", "id": "287b52ce-6429-4319-b8ef-87113944fe82"}]}}}}}* ' file: type: string format: binary description: File to be uploaded /service_management/{srm_account_id}/v1/sublet_cases/{sublet_case_uuid}/attachments/{id}: get: summary: Retrieves a sublet cases attachment tags: - Sublet Cases Attachments parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: sublet_case_uuid in: path schema: type: string format: uuid description: The sublet case UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true responses: '200': description: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: id: 4c346310-aed3-48cd-af4b-3f6494cf95a1 type: attachments attributes: description: The latest estimate filename: estimate.pdf size: 2684354 format: application/pdf download_url: https://decisiv.net/shared/downloads/7746422/get_authed?filename=estimate.pdf&key=184bddd6479a3e3d created_at: '2023-10-01T12:00:00Z' updated_at: '2023-10-01T12:00:00Z' links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/sublet_cases/{sublet_case_uuid}/attachments/4c346310-aed3-48cd-af4b-3f6494cf95a1 relationships: publisher: data: type: users id: 6383dc89-05b6-4572-8979-a6257f3597ec subject: data: type: sublet_cases id: dc8b7b66-288c-4072-9e31-3df871d5e561 recipients: data: - type: participants id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d schema: $ref: '#/components/schemas/attachment' '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: Invalid UUID Format detail: The `ID` value does not contain a valid UUID format code: '107' status: '400' 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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' /service_management/{srm_account_id}/v1/sublet_cases/{sublet_case_id}/participants: get: summary: Lists the participants for a selected sublet case tags: - Sublet Case Participants parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: sublet_case_id in: path schema: type: string format: uuid description: The sublet case UUID required: true responses: '200': description: Returns list of participants for the sublet case content: application/vnd.api+json: example: data: - id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d type: participants attributes: name: Dealer Name scopes: - service_provider - billing_customer - shipping_customer schema: $ref: '#/components/schemas/participants' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/sublet_cases/{sublet_case_id}/participants/{id}: get: summary: List details on a specific Participant tags: - Sublet Case Participants parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: sublet_case_id in: path schema: type: string format: uuid description: The sublet case UUID required: true - name: id in: path schema: type: string format: uuid description: The resource ID required: true responses: '200': description: Show details for requested Participant content: application/vnd.api+json: example: data: id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d type: participants attributes: name: Dealer Name scopes: - service_provider - billing_customer - shipping_customer schema: $ref: '#/components/schemas/participant' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/sublet_cases/{sublet_case_id}/participants/{participant_id}/recipients: get: summary: Lists the recipients for a selected sublet case tags: - Sublet Case Recipients parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: sublet_case_id in: path schema: type: string format: uuid description: The sublet case UUID required: true - name: participant_id in: path schema: type: string format: uuid description: The participant UUID required: true - 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 list of recipients for the sublet case content: application/vnd.api+json: example: data: - id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d type: recipients attributes: name: John Doe phone: '12345678910' email: recipient@email.com first_name: John last_name: Doe communication: - method_type: email value: recipient@email.com notify: true - method_type: mobile value: '12345678910' notify: false relationships: affiliation: data: type: participants id: cb967209-0c68-42cc-ad8d-8413554b507f links: self: https://srm-api.example.com/service_management/ABC-123/v1/sublet_cases/719d44af-b0f5-4e3c-98f7-baa16cedea98/participants/cb967209-0c68-42cc-ad8d-8413554b507f/recipients/bd763ee6-b2f2-49fc-a375-7fb5346ee19d meta: record-count: 1 schema: $ref: '#/components/schemas/recipients' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/sublet_cases/{sublet_case_id}/participants/{participant_id}/recipients/{id}: get: summary: List details on a specific recipient tags: - Sublet Case Recipients parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: sublet_case_id in: path schema: type: string format: uuid description: The sublet case UUID required: true - name: participant_id in: path schema: type: string format: uuid description: The participant UUID required: true - name: id in: path schema: type: string format: uuid description: The resource ID required: true responses: '200': description: Show details for requested recipient content: application/vnd.api+json: example: data: id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d type: recipients attributes: name: John Doe phone: '12345678910' email: recipient@email.com first_name: John last_name: Doe communication: - method_type: email value: recipient@email.com notify: true - method_type: mobile value: '12345678910' notify: false relationships: affiliation: data: type: participants id: cb967209-0c68-42cc-ad8d-8413554b507f links: self: https://srm-api.example.com/service_management/ABC-123/v1/sublet_cases/719d44af-b0f5-4e3c-98f7-baa16cedea98/participants/cb967209-0c68-42cc-ad8d-8413554b507f/recipients/bd763ee6-b2f2-49fc-a375-7fb5346ee19d schema: $ref: '#/components/schemas/recipient' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/sublet_cases/{sublet_case_uuid}/notes: get: summary: Retrieves a list of sublet cases notes tags: - Sublet Cases Notes parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: sublet_case_uuid in: path schema: type: string format: uuid description: The sublet case UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - sender - subject - recipients - participants 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 list of notes for the sublet case content: application/vnd.api+json: example: data: - id: 68d955e7-5679-418b-9d5d-6b35fc2b2c28 type: notes attributes: message: This is my note public: false created_at: '2025-04-10T13:30:41Z' relationships: subject: data: type: sublet_cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a sender: data: type: users id: 6383dc89-05b6-4572-8979-a6257f3597ec recipients: data: - type: recipients id: 42c3f138-843a-4b7d-8d83-71b018da98fa - type: contacts id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d participants: data: - type: participants id: cb967209-0c68-42cc-ad8d-8413554b507f schema: $ref: '#/components/schemas/notes' '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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' post: summary: Creates a note for the requested sublet case tags: - Sublet Cases Notes parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: sublet_case_uuid in: path schema: type: string format: uuid description: The sublet case UUID required: true - name: X-DECISIV-SILENCE-EVENTS in: header required: false schema: type: array items: type: string enum: - decisiv:service_management:sublet_case:note_posted description: Corresponding webhook events which can be muted for the given transaction responses: '201': description: Created an note for the case content: application/vnd.api+json: example: data: id: 68d955e7-5679-418b-9d5d-6b35fc2b2c28 type: notes attributes: message: This is my note public: false created_at: '2025-04-10T13:30:41Z' relationships: subject: data: type: sublet_cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a sender: data: type: users id: 6383dc89-05b6-4572-8979-a6257f3597ec recipients: data: - type: recipients id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d participants: data: - type: participants id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d schema: $ref: '#/components/schemas/note' '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: Sublet case not found content: application/vnd.api+json: example: errors: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/create_case_note' examples: Note with recipient: value: data: type: notes attributes: message: This is my note public: false relationships: recipients: data: - type: recipients id: 42c3f138-843a-4b7d-8d83-71b018da98fa - type: contacts id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d Note with participant: value: data: type: notes attributes: message: This is my note public: false relationships: recipients: data: - type: participants id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d /service_management/{srm_account_id}/v1/sublet_cases/{sublet_case_uuid}/notes/{id}: get: summary: List details on a specific note for the requested sublet case tags: - Sublet Cases Notes parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: sublet_case_uuid in: path schema: type: string format: uuid description: The sublet case UUID required: true - name: id in: path schema: type: string format: uuid description: The resource UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - sender - subject - recipients - participants description: The relationships to be included. responses: '200': description: Show details for requested Note content: application/vnd.api+json: example: data: id: 68d955e7-5679-418b-9d5d-6b35fc2b2c28 type: notes attributes: message: This is my note public: false created_at: '2025-04-10T13:30:41Z' relationships: subject: data: type: sublet_cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a sender: data: type: users id: 6383dc89-05b6-4572-8979-a6257f3597ec recipients: data: - type: recipients id: 42c3f138-843a-4b7d-8d83-71b018da98fa - type: contacts id: bd763ee6-b2f2-49fc-a375-7fb5346ee19d participants: data: - type: participants id: cb967209-0c68-42cc-ad8d-8413554b507f schema: $ref: '#/components/schemas/note' '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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' /service_management/{srm_account_id}/v1/sublet_cases/{sublet_case_uuid}/line_items: get: summary: Retrieves a list of sublet cases line items tags: - Sublet Cases Line Items parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: sublet_case_uuid in: path schema: type: string format: uuid description: The sublet case UUID required: true - 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 list of line items for the sublet case content: application/vnd.api+json: example: data: - id: e4353f9d-0938-4fb1-8d81-4b8796219c2c type: sublet_case_line_items attributes: status: null name: Air Dryer Cartridge, Replacement opcode: T3789-0-04 pricing: estimated_total: '330.00' fixed_total: null labor: estimated_total: '140.00' fixed_total: null parts: estimated_total: '140.00' additional_charges: estimated_total: '50.00' labor: time: 2 skill_level: null parts: - number: '8675309' name: Filter quantity: 2 additional_charges: - code: SHOP_SUPPLIES description: Shop supplies fee amount: '50.00' category: Service sales_tax_rate: '0.00' sales_tax_amount: '0.00' total_amount: '50.00' vmrs: code_key: '33' code_key_name: Component Code code: 023-000-000 description: Engine schema: $ref: '#/components/schemas/sublet_case_line_items' '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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' /service_management/{srm_account_id}/v1/sublet_requests: get: summary: Retrieves a list of sublet requests tags: - Sublet Requests parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: include in: query required: false schema: type: array items: type: string enum: - service_provider - parent_case - sublet_case description: The relationships to be included. - name: filter[status] in: query required: false schema: type: string description: Filters the sublet_requests for the given status, using exact matching search - name: filter[service_provider.id] in: query required: false schema: type: string description: Filters the sublet_requests for the given service_provider.id, using exact matching search - name: filter[parent_case.id] in: query required: false schema: type: string description: Filters the sublet_requests for the given parent_case.id, using exact matching search - name: filter[event_timestamps.requested_at:gt] in: query required: false schema: type: string description: Filters the sublet_requests for the given event_timestamps.requested_at:gt, using exact matching search - name: filter[event_timestamps.requested_at:lt] in: query required: false schema: type: string description: Filters the sublet_requests for the given event_timestamps.requested_at:lt, using exact matching search - name: filter[event_timestamps.requested_at:gte] in: query required: false schema: type: string description: Filters the sublet_requests for the given event_timestamps.requested_at:gte, using exact matching search - name: filter[event_timestamps.requested_at:lte] in: query required: false schema: type: string description: Filters the sublet_requests for the given event_timestamps.requested_at:lte, using exact matching search - 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: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: - id: 55dc388f-89ed-411d-9a79-825162e59137 type: sublet_requests attributes: complaint: Check Engine Light continually on status: pending po_number: THX1138 auth_number: FLT2112 note: Sample note reference_number: 18328893 primary_contact: {} driver: {} breakdown: location: John Smith, 5480 7th Ave city: San Francisco state: CA event_timestamps: requested_at: '2025-04-10T13:28:31Z' requested_appointment_time: '2025-04-10T13:28:31Z' requested_completion_time: '2025-04-10T13:28:31Z' asset_downtime: '2025-04-09T13:28:31Z' created_at: '2025-04-10T13:28:31Z' updated_at: '2025-04-10T13:28:31Z' links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/sublet_requests/55dc388f-89ed-411d-9a79-825162e59137 relationships: parent_case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 sublet_case: data: type: sublet_cases id: dc8b7b66-288c-4072-9e31-3df871d5e561 schema: $ref: '#/components/schemas/sublet_requests' '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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' post: summary: Create a new sublet request tags: - Sublet Requests parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: include in: query required: false schema: type: array items: type: string enum: - service_provider - parent_case - sublet_case description: The relationships to be included. - name: X-DECISIV-SILENCE-EVENTS in: header required: false schema: type: array items: type: string enum: - sublet_request:submitted - decisiv:service_management:sublet_request:submitted description: Corresponding webhook events which can be muted for the given transaction responses: '201': description: The request has been fulfilled and a new resource is available. content: application/vnd.api+json: example: data: id: 55dc388f-89ed-411d-9a79-825162e59137 type: sublet_requests attributes: complaint: Check Engine Light continually on status: pending po_number: THX1138 auth_number: FLT2112 note: Sample note reference_number: 18328893 primary_contact: {} driver: {} breakdown: location: John Smith, 5480 7th Ave city: San Francisco state: CA event_timestamps: requested_at: '2025-04-10T13:28:31Z' requested_appointment_time: '2025-04-10T13:28:31Z' requested_completion_time: '2025-04-10T13:28:31Z' asset_downtime: '2025-04-09T13:28:31Z' created_at: '2025-04-10T13:28:31Z' updated_at: '2025-04-10T13:28:31Z' links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/sublet_requests/55dc388f-89ed-411d-9a79-825162e59137 relationships: parent_case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 sublet_case: data: type: sublet_cases id: dc8b7b66-288c-4072-9e31-3df871d5e561 schema: $ref: '#/components/schemas/sublet_request' '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] - title: Bad Request detail: Invalid value for X-DECISIV-SILENCE-EVENTS header code: decisiv:silence_webhook_events:001 status: '400' 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: Invalid relationship uuid format error / Parent case not found error content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Invalid relationship uuid format error: value: errors: - status: '422' code: decisiv:relationships:001 title: Invalid ID format requested detail: Provided ID in relationships must be a valid UUID format source: pointer: /data/relationships/parent_case|service_provider/data/id Parent case not found error: value: errors: - status: '422' code: decisiv:sublet_request:001 detail: Parent Case not found for the requested Account source: pointer: /data/relationships/parent_case/data/id '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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' schema: $ref: '#/components/schemas/errors_response' '429': description: This response will often be associated as a result of an over abundance of calls by a specific Application, Account, or IP Address resulting in a required cool off period. content: application/vnd.api+json: example: errors: - code: '429' detail: The maximum number of requests for this application has been far exceeded with the given credentials. status: '429' title: Too Many Requests 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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/create_sublet_request' examples: Sublet: value: data: type: sublet_requests attributes: complaint: Check Engine Light continually on po_number: THX1138 auth_number: FLT2112 note: Sample note primary_contact: {} driver: {} breakdown: location: John Smith, 5480 7th Ave city: San Francisco state: CA event_timestamps: requested_at: '2025-04-10T13:28:31Z' requested_appointment_time: '2025-04-10T13:28:31Z' requested_completion_time: '2025-04-10T13:28:31Z' asset_downtime: '2025-04-09T13:28:31Z' relationships: parent_case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 /service_management/{srm_account_id}/v1/sublet_requests/{id}: get: summary: Retrieves a sublet request tags: - Sublet Requests 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 resource UUID required: true responses: '200': description: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: id: 55dc388f-89ed-411d-9a79-825162e59137 type: sublet_requests attributes: complaint: Check Engine Light continually on status: pending po_number: THX1138 auth_number: FLT2112 note: Sample note reference_number: 18328893 primary_contact: {} driver: {} breakdown: location: John Smith, 5480 7th Ave city: San Francisco state: CA event_timestamps: requested_at: '2025-04-10T13:28:31Z' requested_appointment_time: '2025-04-10T13:28:31Z' requested_completion_time: '2025-04-10T13:28:31Z' asset_downtime: '2025-04-09T13:28:31Z' created_at: '2025-04-10T13:28:31Z' updated_at: '2025-04-10T13:28:31Z' links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/sublet_requests/55dc388f-89ed-411d-9a79-825162e59137 relationships: parent_case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 sublet_case: data: type: sublet_cases id: dc8b7b66-288c-4072-9e31-3df871d5e561 schema: $ref: '#/components/schemas/sublet_request' '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: Invalid UUID Format detail: The `ID` value does not contain a valid UUID format code: '107' status: '400' 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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' 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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' put: summary: Updates a sublet request tags: - Sublet Requests 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 resource UUID required: true responses: '200': description: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: id: 55dc388f-89ed-411d-9a79-825162e59137 type: sublet_requests attributes: complaint: Check Engine Light continually on status: pending po_number: THX1138 auth_number: FLT2112 note: Sample note reference_number: 18328893 primary_contact: {} driver: {} breakdown: location: John Smith, 5480 7th Ave city: San Francisco state: CA event_timestamps: requested_at: '2025-04-10T13:28:31Z' requested_appointment_time: '2025-04-10T13:28:31Z' requested_completion_time: '2025-04-10T13:28:31Z' asset_downtime: '2025-04-09T13:28:31Z' created_at: '2025-04-10T13:28:31Z' updated_at: '2025-04-10T13:28:31Z' links: self: https://srm-api.decisivapps.com/api/service_management/{srm_account_id}/v1/sublet_requests/55dc388f-89ed-411d-9a79-825162e59137 relationships: parent_case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 sublet_case: data: type: sublet_cases id: dc8b7b66-288c-4072-9e31-3df871d5e561 schema: $ref: '#/components/schemas/sublet_request' '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: invalid previous status content: application/vnd.api+json: example: errors: - code: decisiv:sublet_requests:004 status: '422' title: Unprocessable record detail: Only Sublet Requests with a status of 'Pending' may be canceled by the requesting account 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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' schema: $ref: '#/components/schemas/errors_response' '429': description: This response will often be associated as a result of an over abundance of calls by a specific Application, Account, or IP Address resulting in a required cool off period. content: application/vnd.api+json: example: errors: - code: '429' detail: The maximum number of requests for this application has been far exceeded with the given credentials. status: '429' title: Too Many Requests 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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/update_sublet_request' /service_management/{srm_account_id}/v1/sublet_requests/{id}/cancel: post: summary: Cancel sublet request tags: - Sublet Requests 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 resource UUID required: true responses: '200': description: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: id: 55dc388f-89ed-411d-9a79-825162e59137 type: sublet_requests attributes: complaint: Check Engine Light continually on po_number: THX1138 auth_number: FLT2112 note: Sample note reference_number: 18328893 primary_contact: {} driver: {} breakdown: location: John Smith, 5480 7th Ave city: San Francisco state: CA event_timestamps: requested_at: '2025-04-10T13:28:31Z' requested_appointment_time: '2025-04-10T13:28:31Z' requested_completion_time: '2025-04-10T13:28:31Z' asset_downtime: '2025-04-09T13:28:31Z' status: Canceled relationships: parent_case: data: type: cases id: 487136d2-c4d6-424c-b018-f1ed8a740c6a service_provider: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 sublet_case: data: type: sublet_cases id: dc8b7b66-288c-4072-9e31-3df871d5e561 schema: $ref: '#/components/schemas/sublet_request' '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: invalid previous status content: application/vnd.api+json: example: errors: - code: decisiv:sublet_requests:004 status: '422' title: Unprocessable record detail: Only Sublet Requests with a status of 'Pending' may be canceled by the requesting account 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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' schema: $ref: '#/components/schemas/errors_response' '429': description: This response will often be associated as a result of an over abundance of calls by a specific Application, Account, or IP Address resulting in a required cool off period. content: application/vnd.api+json: example: errors: - code: '429' detail: The maximum number of requests for this application has been far exceeded with the given credentials. status: '429' title: Too Many Requests 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' /service_management/{srm_account_id}/v1/time_tasks: get: summary: Retrieves a list of time tasks tags: - Time Tasks parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string - name: include in: query required: false schema: type: array items: type: string enum: - employee - subject description: The relationships to be included. - name: filter[event_timestamps.stopped_at:gt] in: query required: false schema: type: string description: Filters the time tasks for the given event_timestamps.stopped_at:gt, using exact matching search - name: filter[event_timestamps.stopped_at:lt] in: query required: false schema: type: string description: Filters the time tasks for the given event_timestamps.stopped_at:lt, using exact matching search - name: filter[event_timestamps.stopped_at:gte] in: query required: false schema: type: string description: Filters the time tasks for the given event_timestamps.stopped_at:gte, using exact matching search - name: filter[event_timestamps.stopped_at:lte] in: query required: false schema: type: string description: Filters the time tasks for the given event_timestamps.stopped_at:lte, using exact matching search - name: filter[event_timestamps.stopped_at:blank] in: query required: false schema: type: string description: Filters the time tasks for the given event_timestamps.stopped_at:blank, using exact matching search - name: filter[event_timestamps.started_at:gt] in: query required: false schema: type: string description: Filters the time tasks for the given event_timestamps.started_at:gt, using exact matching search - name: filter[event_timestamps.started_at:lt] in: query required: false schema: type: string description: Filters the time tasks for the given event_timestamps.started_at:lt, using exact matching search - name: filter[event_timestamps.started_at:gte] in: query required: false schema: type: string description: Filters the time tasks for the given event_timestamps.started_at:gte, using exact matching search - name: filter[event_timestamps.started_at:lte] in: query required: false schema: type: string description: Filters the time tasks for the given event_timestamps.started_at:lte, using exact matching search - name: filter[employee.id] in: query required: false schema: type: string description: Filters the time tasks for the given employee.id, using exact matching search - name: filter[subject.id] in: query required: false schema: type: string description: Filters the time tasks for the given subject.id, using exact matching search - name: subject.type in: query required: false schema: type: string enum: - line_items description: Filters the time tasks for the given subject.type, using exact matching search - 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: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: - id: 8b4cb314-19f7-46ec-9393-2db04d7996fc type: time_tasks attributes: description: Change oil event_timestamps: started_at: '2025-04-10T13:28:31Z' stopped_at: '2025-04-10T13:28:31Z' created_at: 2025-04-10 13:28:31 UTC updated_at: 2025-04-10 13:28:31 UTC relationships: subject: data: type: line_items id: ba889598-5f26-4481-90f7-2c172d42ca5f employee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec schema: $ref: '#/components/schemas/time_tasks' '400': description: Account filter is missing / Invalid filter / Invalid filter value / Invalid employee filter format / Invalid subject filter format / Invalid datetime filter content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Account filter is missing: value: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' Invalid filter: value: 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] Invalid filter value: value: errors: - status: '400' code: decisiv:filters:002 title: Invalid filter value detail: '''invalid_value'' is not a valid value for filter. Expected values: line_items' source: pointer: /filter/[subject.type] Invalid employee filter format: value: errors: - code: decisiv:filters:009 title: Invalid Filter Format detail: Invalid format for `employee.id` status: '400' source: parameter: filter[employee.id] Invalid subject filter format: value: errors: - code: decisiv:filters:009 title: Invalid Filter Format detail: Invalid format for `subject.id` status: '400' source: parameter: filter[subject.id] Invalid datetime filter: value: errors: - code: decisiv:filters:010 detail: Invalid filter value `{{invalid_filter}}`. Expected an ISO 8601 timestamp. status: '400' source: parameter: filter[event_timestamps.started_at:gte] '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: Account not found content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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' post: summary: Create a new time task tags: - Time Tasks parameters: - name: srm_account_id in: path description: The account ID for SRM required: true schema: type: string responses: '201': description: The request has been fulfilled and a new resource is available. content: application/vnd.api+json: example: data: id: 8b4cb314-19f7-46ec-9393-2db04d7996fc type: time_tasks attributes: description: Change oil event_timestamps: started_at: '2025-04-10T13:28:31Z' stopped_at: '2025-04-10T13:28:31Z' created_at: 2025-04-10 13:28:31 UTC updated_at: 2025-04-10 13:28:31 UTC relationships: subject: data: type: line_items id: ba889598-5f26-4481-90f7-2c172d42ca5f employee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec schema: $ref: '#/components/schemas/time_task' '400': description: Account filter is missing / Required key not provided / Invalid ID format for employee relationship / Invalid ID format for subject relationship content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Account filter is missing: value: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' Required key not provided: 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/event_timestamps/started_at Invalid ID format for employee relationship: value: errors: - status: '422' code: decisiv:relationships:001 title: Invalid ID format requested detail: Provided ID in relationships must be a valid UUID format source: pointer: /data/relationships/employee/data/id Invalid ID format for subject relationship: value: errors: - status: '422' code: decisiv:relationships:001 title: Invalid ID format requested detail: Provided ID in relationships must be a valid UUID format source: pointer: /data/relationships/subject/data/id '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: Account not found content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '422': description: Employee not found / Subject not found content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Employee not found: value: errors: - status: 422 code: decisiv:request_attributes:003 title: Identifier not found detail: Identifier not found source: pointer: /data/relationships/employee/data/id Subject not found: value: errors: - status: 422 code: decisiv:request_attributes:003 title: Identifier not found detail: Identifier not found source: pointer: /data/relationships/subject/data/id '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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' schema: $ref: '#/components/schemas/errors_response' '429': description: This response will often be associated as a result of an over abundance of calls by a specific Application, Account, or IP Address resulting in a required cool off period. content: application/vnd.api+json: example: errors: - code: '429' detail: The maximum number of requests for this application has been far exceeded with the given credentials. status: '429' title: Too Many Requests 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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/create_time_task' examples: Time Task: value: data: type: time_tasks attributes: description: Change oil event_timestamps: started_at: '2025-04-10T13:28:31Z' stopped_at: '2025-04-10T13:28:31Z' relationships: subject: data: type: line_items id: ba889598-5f26-4481-90f7-2c172d42ca5f employee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec /service_management/{srm_account_id}/v1/time_tasks/{id}: get: summary: Retrieves a time task tags: - Time Tasks 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 resource UUID required: true - name: include in: query required: false schema: type: array items: type: string enum: - employee - subject description: The relationships to be included. responses: '200': description: The request has succeeded. It may or may not return a single resource of collection of resources. content: application/vnd.api+json: example: data: id: 8b4cb314-19f7-46ec-9393-2db04d7996fc type: time_tasks attributes: description: Change oil event_timestamps: started_at: '2025-04-10T13:28:31Z' stopped_at: '2025-04-10T13:28:31Z' created_at: 2025-04-10 13:28:31 UTC updated_at: 2025-04-10 13:28:31 UTC relationships: subject: data: type: line_items id: ba889598-5f26-4481-90f7-2c172d42ca5f employee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec schema: $ref: '#/components/schemas/time_task' '400': description: Account filter is missing / Invalid ID format content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Account filter is missing: value: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' Invalid ID format: value: errors: - title: Invalid UUID Format detail: The `ID` value does not contain a valid UUID format code: '107' status: '400' '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: Account not found / Time Task not found content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Account not found: value: errors: - status: '404' title: Record not found source: parameter: srm_account_id Time Task not found: value: errors: - status: '404' code: decisiv:resource:001 title: Resource Identifier - Not Found detail: The parent resource could not be found source: parameter: id '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' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - title: Precondition Required detail: Precondition Required code: '428' status: '428' 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: summary: Updates a Time task tags: - Time Tasks 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 resource UUID required: true responses: '200': description: Successful update the time task content: application/vnd.api+json: example: data: id: 8b4cb314-19f7-46ec-9393-2db04d7996fc type: time_tasks attributes: description: Change oil event_timestamps: started_at: '2025-04-10T13:28:31Z' stopped_at: '2025-04-10T13:28:31Z' created_at: 2025-04-10 13:28:31 UTC updated_at: 2025-04-10 13:28:31 UTC relationships: subject: data: type: line_items id: ba889598-5f26-4481-90f7-2c172d42ca5f employee: data: type: internal_users id: 6383dc89-05b6-4572-8979-a6257f3597ec schema: $ref: '#/components/schemas/time_task' '400': description: Account filter is missing / Invalid type / Path ID mismatch / Invalid ID format content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Account filter is missing: value: errors: - title: Required filter is missing detail: 'Required filter must be provided. Valid required filters: srm_account_id' code: decisiv:filters:006 status: '400' Invalid type: value: errors: - status: '400' code: decisiv:resource:002 title: Invalid JSON:API Resource specified in request detail: '''wrong-type'' is an invalid resource' source: pointer: /data/type Path ID mismatch: value: errors: - status: '400' code: decisiv:resource:002 title: Invalid JSON:API Resource specified in request detail: '''79327cde-d5ce-4ce6-bdba-eebab125ae2d'' is an invalid resource' source: pointer: /data/id Invalid ID format: value: errors: - title: Invalid UUID Format detail: The `ID` value does not contain a valid UUID format code: '107' status: '400' '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: Account not found / Time Task not found content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_response' examples: Account not found: value: errors: - status: '404' title: Record not found source: parameter: srm_account_id Time Task not found: value: errors: - status: '404' code: decisiv:resource:001 title: Resource Identifier - Not Found detail: The parent resource could not be found source: parameter: id '422': description: Invalid Period Error content: application/vnd.api+json: example: errors: - title: Invalid Period for Timestamp detail: Timestamp can not be in the future code: decisiv:request_attributes:012 status: 422 source: pointer: /data/attributes/event_timestamps/stopped_at 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' requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/time_task_update' examples: Time Task: value: data: id: 8b4cb314-19f7-46ec-9393-2db04d7996fc type: time_tasks attributes: description: Change oil event_timestamps: stopped_at: '2025-04-10T13:28:31Z' delete: summary: Deletes a time task tags: - Time Tasks 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: '204': description: Deletes an attachment content: {} '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: The resource is read-only and cannot be updated or deleted code: decisiv:resource:003 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: - title: Record not found detail: The requested record or one of its relationships could not be found code: '404' status: '404' schema: $ref: '#/components/schemas/errors_response' /service_management/{srm_account_id}/v1/vmrs/asset_types: get: operationId: listVmrsAssetTypes description: 'Returns the catalog of VMRS Code Key 2 ("Equipment Category" / asset type) reference values. Use this to populate dropdowns and validate `vmrs_asset_type` values before sending them on asset write endpoints. The response payload is byte-identical to the equivalent route under `asset_management` — both URLs are served by the same backend controller. Results are sorted alphabetically by `code` (ascending), with `description` as a deterministic tiebreaker. ' summary: List all VMRS Asset Types (Code Key 2) tags: - VMRS parameters: - name: srm_account_id in: path required: true description: The SRM Account ID. schema: type: string - 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 list of VMRS Asset Types. content: application/vnd.api+json: example: data: - id: '01' type: decisiv_vmrs_asset_types attributes: code_key: '2' code_key_name: Equipment Category code: '01' description: Truck - id: '02' type: decisiv_vmrs_asset_types attributes: code_key: '2' code_key_name: Equipment Category code: '02' description: Tractor - id: D type: decisiv_vmrs_asset_types attributes: code_key: '2' code_key_name: Equipment Category code: D description: Agricultural Equipment meta: record-count: 78 schema: $ref: '#/components/schemas/vmrs_asset_types' '401': description: This response may occur when the access token provided within the Authorization header 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: The authenticated user does not have the `vmrs:ReadAssetTypes` permission for the requested account. 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: Account not found. content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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' /service_management/{srm_account_id}/v1/vmrs/reasons_for_repair: get: operationId: listVmrsReasonsForRepair description: 'Returns the catalog of VMRS Code Key 14 ("Reason for Repair") reference values. Use this to populate dropdowns and validate reason-for-repair values before sending them on case/line item write endpoints. The response payload is byte-identical to the equivalent route under `asset_management` — both URLs are served by the same backend controller. Results are sorted by `code` (ascending), with `reason` as a deterministic tiebreaker. Each record also carries a `category` attribute (the VMRS `repair_type` grouping the reason belongs to). ' summary: List all VMRS Reasons for Repair (Code Key 14) tags: - VMRS parameters: - name: srm_account_id in: path required: true description: The SRM Account ID. schema: type: string - 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 list of VMRS Reasons for Repair. content: application/vnd.api+json: example: data: - id: '01' type: decisiv_vmrs_reasons_for_repair attributes: code_key: '14' code_key_name: Reason for Repair code: '01' description: Breakdown category: Maintenance - id: '22' type: decisiv_vmrs_reasons_for_repair attributes: code_key: '14' code_key_name: Reason for Repair code: '22' description: Vandalism category: Outside Influence - id: '70' type: decisiv_vmrs_reasons_for_repair attributes: code_key: '14' code_key_name: Reason for Repair code: '70' description: Tow-in category: Management Decision meta: record-count: 60 schema: $ref: '#/components/schemas/vmrs_reasons_for_repair' '401': description: This response may occur when the access token provided within the Authorization header 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: The authenticated user does not have the `vmrs:ReadReasonsForRepair` permission for the requested account. 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: Account not found. content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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' /service_management/{srm_account_id}/v1/vmrs/repair_priorities: get: operationId: listVmrsRepairPriorities description: 'Returns the catalog of VMRS Code Key 16 ("Repair Priority Class") reference values. Use this to populate dropdowns and validate repair-priority values before sending them on case/line item write endpoints. The response payload is byte-identical to the equivalent route under `asset_management` — both URLs are served by the same backend controller. Results are sorted by `code` (ascending). ' summary: List all VMRS Repair Priorities (Code Key 16) tags: - VMRS parameters: - name: srm_account_id in: path required: true description: The SRM Account ID. schema: type: string - 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 list of VMRS Repair Priorities. content: application/vnd.api+json: example: data: - id: '1' type: decisiv_vmrs_repair_priorities attributes: code_key: '16' code_key_name: Repair Priority Class code: '1' description: Scheduled - id: '2' type: decisiv_vmrs_repair_priorities attributes: code_key: '16' code_key_name: Repair Priority Class code: '2' description: Non-Scheduled - id: '3' type: decisiv_vmrs_repair_priorities attributes: code_key: '16' code_key_name: Repair Priority Class code: '3' description: Emergency meta: record-count: 3 schema: $ref: '#/components/schemas/vmrs_repair_priorities' '401': description: This response may occur when the access token provided within the Authorization header 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: The authenticated user does not have the `vmrs:ReadRepairPriorities` permission for the requested account. 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: Account not found. content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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' /service_management/{srm_account_id}/v1/vmrs/repair_sites: get: operationId: listVmrsRepairSites description: 'Returns the catalog of VMRS Code Key 17 ("Repair Site") reference values. Use this to populate dropdowns and validate repair-site values before sending them on case/line item write endpoints. The response payload is byte-identical to the equivalent route under `asset_management` — both URLs are served by the same backend controller. Results are sorted by `code` (ascending). ' summary: List all VMRS Repair Sites (Code Key 17) tags: - VMRS parameters: - name: srm_account_id in: path required: true description: The SRM Account ID. schema: type: string - 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 list of VMRS Repair Sites. content: application/vnd.api+json: example: data: - id: '1' type: decisiv_vmrs_repair_sites attributes: code_key: '17' code_key_name: Repair Site code: '1' description: Facility (Fleet) - id: '2' type: decisiv_vmrs_repair_sites attributes: code_key: '17' code_key_name: Repair Site code: '2' description: Field - id: '3' type: decisiv_vmrs_repair_sites attributes: code_key: '17' code_key_name: Repair Site code: '3' description: Terminal meta: record-count: 3 schema: $ref: '#/components/schemas/vmrs_repair_sites' '401': description: This response may occur when the access token provided within the Authorization header 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: The authenticated user does not have the `vmrs:ReadRepairSites` permission for the requested account. 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: Account not found. content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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' /service_management/{srm_account_id}/v1/vmrs/components: get: operationId: listVmrsComponents description: 'Returns the catalog of VMRS Code Key 33 ("Component") reference values. Use this to populate dropdowns and validate `component` values before sending them on case/line item write endpoints. The response payload is byte-identical to the equivalent route under `asset_management` — both URLs are served by the same backend controller. Results are sorted by `code` (ascending). ' summary: List all VMRS Components (Code Key 33) tags: - VMRS parameters: - name: srm_account_id in: path required: true description: The SRM Account ID. schema: type: string - 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 list of VMRS Components. content: application/vnd.api+json: example: data: - id: 000-000-000 type: decisiv_vmrs_components attributes: code_key: '33' code_key_name: Component code: 000-000-000 description: Cab, Climate Control, Instrumentation, & Aerodynamic Devices Group - id: 001-000-000 type: decisiv_vmrs_components attributes: code_key: '33' code_key_name: Component code: 001-000-000 description: Air Conditioning, Heating & Ventilating System meta: record-count: 2 schema: $ref: '#/components/schemas/vmrs_components' '401': description: This response may occur when the access token provided within the Authorization header 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: The authenticated user does not have the `vmrs:ReadComponents` permission for the requested account. 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: Account not found. content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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' /service_management/{srm_account_id}/v1/vmrs/operator_reports: get: operationId: listVmrsOperatorReports description: 'Returns the catalog of VMRS Code Key 82 ("Operator Vehicle/Equipment Condition Report") reference values. Use this to populate dropdowns and validate `operator_reports` values before sending them on line item / estimate write endpoints. The response payload is byte-identical to the equivalent route under `asset_management` — both URLs are served by the same backend controller. Results are sorted by `code` (ascending). ' summary: List all VMRS Operator Reports (Code Key 82) tags: - VMRS parameters: - name: srm_account_id in: path required: true description: The SRM Account ID. schema: type: string - 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 list of VMRS Operator Reports. content: application/vnd.api+json: example: data: - id: '001' type: decisiv_vmrs_operator_reports attributes: code_key: '82' code_key_name: Operator Vehicle/Equipment Condition Report code: '001' description: Aim/Alignment (Out of Adjustment) - id: '050' type: decisiv_vmrs_operator_reports attributes: code_key: '82' code_key_name: Operator Vehicle/Equipment Condition Report code: '050' description: Brakes, Grabbing - id: '190' type: decisiv_vmrs_operator_reports attributes: code_key: '82' code_key_name: Operator Vehicle/Equipment Condition Report code: '190' description: ABS, Light Stays On meta: record-count: 136 schema: $ref: '#/components/schemas/vmrs_operator_reports' '401': description: This response may occur when the access token provided within the Authorization header 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: The authenticated user does not have the `vmrs:ReadOperatorReports` permission for the requested account. 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: Account not found. content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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' /service_management/{srm_account_id}/v1/vmrs/positions: get: operationId: listVmrsPositions description: 'Returns the catalog of VMRS Code Key 79 ("Position") reference values. Use this to populate dropdowns and validate `positions` values before sending them on line item / estimate write endpoints. Results are sorted by `code` (ascending). ' summary: List all VMRS Positions (Code Key 79) tags: - VMRS parameters: - name: srm_account_id in: path required: true description: The SRM Account ID. schema: type: string - 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 list of VMRS Positions. content: application/vnd.api+json: example: data: - id: '00' type: decisiv_vmrs_positions attributes: code_key: '79' code_key_name: Position code: '00' description: Not Applicable - id: '01' type: decisiv_vmrs_positions attributes: code_key: '79' code_key_name: Position code: '01' description: Front - id: '02' type: decisiv_vmrs_positions attributes: code_key: '79' code_key_name: Position code: '02' description: Front Left meta: record-count: 162 schema: $ref: '#/components/schemas/vmrs_positions' '401': description: This response may occur when the access token provided within the Authorization header 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: The authenticated user does not have the `vmrs:ReadPositions` permission for the requested account. 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: Account not found. content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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' /service_management/{srm_account_id}/v1/vmrs/work_accomplished: get: operationId: listVmrsWorkAccomplished description: 'Returns the catalog of VMRS Code Key 15 ("Work Accomplished") reference values. Use this to populate dropdowns and validate `work_accomplished` values before sending them on line item / estimate write endpoints. Results are sorted by `code` (ascending). ' summary: List all VMRS Work Accomplished values (Code Key 15) tags: - VMRS parameters: - name: srm_account_id in: path required: true description: The SRM Account ID. schema: type: string - 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 list of VMRS Work Accomplished values. content: application/vnd.api+json: example: data: - id: '01' type: decisiv_vmrs_work_accomplished attributes: code_key: '15' code_key_name: Work Accomplished code: '01' description: Adjust - id: '02' type: decisiv_vmrs_work_accomplished attributes: code_key: '15' code_key_name: Work Accomplished code: '02' description: Clean - id: '03' type: decisiv_vmrs_work_accomplished attributes: code_key: '15' code_key_name: Work Accomplished code: '03' description: Replace with New meta: record-count: 68 schema: $ref: '#/components/schemas/vmrs_work_accomplished_list' '401': description: This response may occur when the access token provided within the Authorization header 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: The authenticated user does not have the `vmrs:ReadWorkAccomplished` permission for the requested account. 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: Account not found. content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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' /service_management/{srm_account_id}/v1/vmrs/technician_part_failure_codes: get: operationId: listVmrsTechnicianPartFailureCodes description: 'Returns the catalog of VMRS Code Key 18 ("Technician Part Failure Code") reference values. Use this to populate dropdowns and validate `technician_part_failure_codes` values before sending them on line item / estimate write endpoints. The response payload is byte-identical to the equivalent route under `asset_management` — both URLs are served by the same backend controller. Results are sorted by `code` (ascending). ' summary: List all VMRS Technician Part Failure Codes (Code Key 18) tags: - VMRS parameters: - name: srm_account_id in: path required: true description: The SRM Account ID. schema: type: string - 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 list of VMRS Technician Part Failure Codes. content: application/vnd.api+json: example: data: - id: '00' type: decisiv_vmrs_technician_part_failure_codes attributes: code_key: '18' code_key_name: Technician Part Failure Code code: '00' description: No Failure - id: '01' type: decisiv_vmrs_technician_part_failure_codes attributes: code_key: '18' code_key_name: Technician Part Failure Code code: '01' description: Battered, Hammered - id: '02' type: decisiv_vmrs_technician_part_failure_codes attributes: code_key: '18' code_key_name: Technician Part Failure Code code: '02' description: Burned, Scorched, Melted, Blistered meta: record-count: 109 schema: $ref: '#/components/schemas/vmrs_technician_part_failure_codes' '401': description: This response may occur when the access token provided within the Authorization header 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: The authenticated user does not have the `vmrs:ReadTechnicianPartFailureCodes` permission for the requested account. 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: Account not found. content: application/vnd.api+json: example: errors: - status: '404' title: Record not found source: parameter: srm_account_id schema: $ref: '#/components/schemas/errors_response' '428': description: This response represents requests to a module or endpoint which can not immediately be accessed due to the Account permissions and subscriptions in the Decisiv Platform. content: application/vnd.api+json: example: errors: - status: '428' code: decisiv:access:003 title: Precondition required detail: OAuth Application does not have appropriate provisioning to access this resource 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: error_response: type: object properties: status: type: string title: type: string detail: type: - string - 'null' code: type: - string - 'null' source: type: object properties: parameter: type: - string - 'null' pointer: type: - string - 'null' links: type: object description: Links related to this error (e.g. documentation reference). additionalProperties: type: string format: uri required: - status - title errors_response: type: object properties: errors: type: array items: $ref: '#/components/schemas/error_response' required: - errors relationship_object: type: object properties: data: type: - object - 'null' properties: id: type: string type: type: string required: - id - type required: - data relationship_objects: type: object properties: data: type: array items: type: - object - 'null' properties: id: type: string type: type: string required: - id - type required: - data assignee: type: object required: - data properties: data: type: object properties: type: type: string id: type: string assignee_change: type: object required: - data properties: data: type: object properties: type: type: string id: type: string applicable_operation: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string attributes: type: object properties: name: type: string description: Name of the applicable operation description: type: string description: Description of the applicable operation opcode: type: string description: Unique operation code price_code: type: string description: Price code information notes: type: string description: Notes added to the operation pricing: type: object description: Pricing information and estimates for the operation properties: estimated_total: type: - string - 'null' format: decimal description: Estimated total for the operation (parts costs + labor costs). Null when the operation has a fixed price — `fixed_total` is populated instead. fixed_total: type: - number - 'null' description: Fixed total when the operation has a fixed price. Null when the operation is estimated — `estimated_total` is populated instead. parts: type: object description: Pricing information and estimates for the operation parts properties: estimated_total: type: - number - 'null' description: Estimated total for the operation parts. Null when the parts have a fixed price — `parts.fixed_total` is populated instead. fixed_total: type: - number - 'null' description: Fixed total when the parts have a fixed price. Null when the parts are estimated — `parts.estimated_total` is populated instead. labor: type: object description: Information and estimates for the operation labor properties: estimated_total: type: string description: Estimated total for the operation labor. The skill level times the quantity of hours time: type: string description: The value in hours of the operation skill_level: type: string description: The value of the hour for the labor vmrs: type: object description: VMRS Code Keys for the operation properties: code_key: type: string description: The VMRS Code Key code_key_name: type: string description: The VMRS Code Key name code: type: string description: VMRS Code Key 33 coding for the operation description: type: string description: The VMRS Code Key description parts: type: array description: List of parts associated with applicable operation items: type: object properties: number: type: string description: Part number of material associated with applicable operation name: type: string description: Part name of materials associated with applicable operation quantity: type: integer description: Count of specific parts associated with applicable operation unit_price: type: string description: Unit cost of each part associated with the applicable operation additional_charges: type: - array - 'null' description: Additional charges associated with the operation; null when none are present. items: type: object properties: category: type: - string - 'null' description: Category of the additional charge code: type: - string - 'null' description: Code of the additional charge description: type: - string - 'null' description: Description of the additional charge amount: type: - string - 'null' format: decimal description: Amount of the additional charge required: - name - opcode required: - attributes - type - id applicable_operations: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/applicable_operation' meta: type: object attachment: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string attributes: type: object properties: description: type: string maxLength: 1024 description: The description of the file filename: type: string maxLength: 256 description: The name of the file example: example.pdf size: type: integer maximum: 10485760 description: The file size in bytes (max allowed is 10 megabytes) example: 2684355 format: type: string description: The file content type example: application/pdf download_url: type: string description: A temporary URL to download the file example: https://decisiv.net/shared/downloads/7746422/get_authed?filename=example.pdf&key=184bddd6479a3e3d created_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the attachment was created' example: '2023-10-01T12:00:00Z' updated_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the attachment was updated' example: '2023-10-01T12:00:00Z' required: - filename - size - format - download_url - created_at - updated_at relationships: type: object properties: publisher: $ref: '#/components/schemas/relationship_object' subject: $ref: '#/components/schemas/relationship_object' recipients: $ref: '#/components/schemas/relationship_object' required: - attributes - type - id attachments: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/properties-data' meta: type: object case: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - cases attributes: type: object properties: auth_number: type: string description: The Authorization number maxLength: 40 po_number: type: string description: The Purchase Order number maxLength: 40 ro_number: type: string description: The Repair Order number maxLength: 40 reference_number: type: integer description: Integer representation of the Case ID as shown in the UI complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 cause: type: string description: Documentation of the technical failure assessed by the Service Location maxLength: 6000 correction: type: string description: Summary of the actual work accomplished to address the reported issue maxLength: 6000 repair_status: type: string description: ID of the repair status from `GET /service_management/{srm_account_id}/v1/repair_statuses.` examples: - appointment tag_number: type: string description: 'Tag #, sometimes called Repair Tag, or Key Tag, is a tag that is attached to the truck keys when a truck is dropped off, so shop personnel can easily find the keys on a tag board and know which case/RO that set of keys/truck belonged to.' maxLength: 40 asset_information: type: object description: Information about the asset properties: odometer_value: type: integer description: Odometer reading of the asset odometer_unit: type: string description: 'Abbreviation for the odometer unit: `mi` for miles or `km` for kilometers' enum: - mi - km engine_hours: type: - integer - 'null' description: Engine hours of the asset stand_by_hours: type: - integer - 'null' description: Stand-by hours of the asset switch_on_hours: type: - integer - 'null' description: Switch-on hours of the asset event_timestamps: type: object description: Timestamp attributes reflecting key events surrounding the case required: - started_at properties: requested_completion_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the completion time requested by the Customer' examples: - '2025-10-10T13:30:41Z' requested_appointment_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the appointment time requested by the Customer' examples: - '2025-10-10T13:30:41Z' followup_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the next check-in point between Customer / Provider' examples: - '2025-10-10T13:30:41Z' closed_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Case was marked as completed and closed' examples: - '2025-04-10T13:30:41Z' asset_uptime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset became operational, once again' examples: - '2025-04-10T13:00:41Z' actual_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time spent to repair the asset' examples: - '2025-04-10T13:10:41Z' estimated_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time estimated to repair the asset' examples: - '2025-04-10T13:15:41Z' asset_checked_in: type: string format: date-time description: '`ISO 8601` timestamp indicating when the check-in was performed' examples: - '2025-04-10T12:30:41Z' started_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Case was first opened' examples: - '2025-04-10T12:00:41Z' updated_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Case was last updated. Pairs with the `filter[updated_at:gte]` / `filter[updated_at:lte]` filters for incremental sync.' examples: - '2025-04-10T13:20:41Z' asset_arrived: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset arrived' examples: - '2025-04-10T11:30:41Z' asset_downtime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset was considered no longer operational' examples: - '2025-04-10T10:30:41Z' asset_departed_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset departed the service location' examples: - '2025-04-10T13:30:41Z' invoice: type: object description: Invoice details properties: total: type: number description: Total amount for the invoice maximum: 999999.99 examples: - 432.5 number: type: string description: Number of the invoice maxLength: 255 examples: - TR3847 date: type: string format: date description: Date of the invoice in `ISO 8601` date format (not datetime). examples: - '2025-06-19' pricing: type: object description: Financial totals for the case, sourced directly from the Estimate properties: parts_total: type: number description: Total cost of parts examples: - 432.5 labor_total: type: number description: Total cost of labor examples: - 250 core_total: type: number description: Total cost of cores examples: - 75 tax: type: number description: Total tax amount examples: - 32.18 haz_waste: type: number description: Total hazardous waste charge examples: - 15 vmrs: type: object description: 'Vehicle Maintenance Reporting Standards (VMRS) coding for the case, exposing nine VMRS code categories: asset type (CK02), repair priority (CK16), repair site (CK17), reason for repair (CK14), operator report (CK82), component code (CK33), position (CK79), technician failure (CK18), and work accomplished (CK15). Each category outside `asset_type` is null when no code is assigned; `asset_type` is always present.' properties: asset_type: type: object description: Identifies the asset type. Useful for non-VIN assets. properties: code_key: type: - string - 'null' 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). examples: - '2' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - R repair_priority: type: - object - 'null' description: Identifies the priority assigned to the repair. properties: code_key: type: - string - 'null' 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). examples: - '16' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - '1' repair_site: type: - object - 'null' description: Identifies the relative location where the repair is taking place. properties: code_key: type: - string - 'null' 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). examples: - '17' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - '7' reason_for_repair: type: - object - 'null' description: Identifies what caused a piece of equipment to come in for repair. properties: code_key: type: - string - 'null' 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). examples: - '14' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - '01' operator_report: type: - array - 'null' description: Identifies what the operator reports as being the issue. items: type: object properties: code_key: type: - string - 'null' 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). examples: - '82' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - '001' component: type: - object - 'null' description: Provides universal identifiers or generic terms for parts. properties: code_key: type: - string - 'null' 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). examples: - '33' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - 023-000-000 position: type: - object - 'null' description: Identifies position based on industry-accepted conventions. properties: code_key: type: - string - 'null' 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). examples: - '79' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - '03' technician_failure: type: - object - 'null' description: Identifies the technical failure diagnosed by the mechanic. properties: code_key: type: - string - 'null' 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). examples: - '18' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - B1 work_accomplished: type: - object - 'null' description: Identifies the work accomplished by the mechanic. properties: code_key: type: - string - 'null' 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). examples: - '15' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - A breakdown: type: object description: Information about the location of the Service Provider properties: location: type: string description: Location field accepts City and/or State (eg. Newark or Newark, NJ to be unambiguous) or GPS coordinates (eg. 37.50, -77.33). maxLength: 255 city: type: string description: Breakdown City name maxLength: 255 state: type: string description: Second part of the `ISO 3166-2` code indicating the breakdown State minLength: 1 maxLength: 3 examples: - NJ metadata: type: object additionalProperties: true required: - reference_number relationships: type: object properties: customer_asset: $ref: '#/components/schemas/relationship_object' customer: type: object description: The case's primary customer. `data.type` is `customers` for local customers or `registered_customers` for registered (fleet) customers. required: - data properties: data: type: - object - 'null' required: - id - type properties: id: type: string type: type: string enum: - customers - registered_customers billing_contact: $ref: '#/components/schemas/relationship_object' billing_customer: $ref: '#/components/schemas/relationship_object' shipping_customer: $ref: '#/components/schemas/relationship_object' service_provider: $ref: '#/components/schemas/relationship_object' program_type: $ref: '#/components/schemas/relationship_object' driver: $ref: '#/components/schemas/relationship_object' primary_contact: $ref: '#/components/schemas/relationship_object' assignee: $ref: '#/components/schemas/relationship_object' department: allOf: - $ref: '#/components/schemas/relationship_object' - description: 'Note: `department.data.id` is a dealer-scoped string code (e.g. "SERVICE"), not a UUID.' required: - customer_asset links: type: object properties: self: type: string description: URL of the case resource required: - attributes - relationships - type - id case_metadata: type: object properties: data: type: object properties: type: type: string enum: - case_metadata attributes: type: object properties: metadata: type: array description: Metadata about the case minItems: 1 maxItems: 50 items: type: object properties: key: type: string description: Metadata key has to start and end with a letter or number, be lower snake case minLength: 1 maxLength: 50 pattern: ^[a-z0-9]+(_{1}[a-z0-9]+)*$ example: some_key value: type: string description: The metadata value must be a string with 500 characters or less minLength: 1 maxLength: 500 example: The value goes here required: - metadata required: - type - attributes required: - data patch_case_metadata: type: object required: - data properties: data: type: object properties: type: type: string attributes: type: object required: - value properties: value: type: string description: The metadata value must be a string with 500 characters or less minLength: 1 maxLength: 500 example: The value goes here required: - type - attributes case_metadata_persisted: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string attributes: type: object properties: metadata: type: object description: Metadata object with the key and values. example: '{foo: "bar", name: "mr. nobody"}' minProperties: 1 maxProperties: 50 properties: {} case_update: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - cases attributes: type: object properties: auth_number: type: string description: The Authorization number maxLength: 40 po_number: type: string description: The Purchase Order number maxLength: 40 ro_number: type: string description: The Repair Order number maxLength: 40 complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 cause: type: string description: Documentation of the technical failure assessed by the Service Location maxLength: 6000 correction: type: string description: Summary of the actual work accomplished to address the reported issue maxLength: 6000 repair_status: type: string description: ID of the repair status from `GET /service_management/{srm_account_id}/v1/repair_statuses.` examples: - asset_ready invoice: type: object description: Invoice details properties: total: type: number description: Total amount for the invoice maximum: 999999.99 examples: - 432.5 number: type: string description: Number of the invoice maxLength: 255 examples: - TR3847 date: type: string format: date description: Date of the invoice in `ISO 8601` date format (not datetime). examples: - '2025-06-19' tag_number: type: string description: 'Tag #, sometimes called Repair Tag, or Key Tag, is a tag that is attached to the truck keys when a truck is dropped off, so shop personnel can easily find the keys on a tag board and know which case/RO that set of keys/truck belonged to.' maxLength: 40 event_timestamps: type: object description: Timestamp attributes reflecting key events surrounding the case properties: followup_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the next check-in point between Customer / Provider' examples: - '2025-10-10T13:30:41Z' closed_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Case was marked as completed and closed' examples: - '2025-04-10T13:30:41Z' asset_uptime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset became operational, once again' examples: - '2025-04-10T13:00:41Z' actual_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time spent to repair the asset' examples: - '2025-04-10T13:10:41Z' estimated_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time estimated to repair the asset' examples: - '2025-04-10T13:15:41Z' asset_checked_in: type: string format: date-time description: '`ISO 8601` timestamp indicating when the check-in was performed' examples: - '2025-04-10T12:30:41Z' asset_arrived: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset arrived' examples: - '2025-04-10T11:30:41Z' asset_downtime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset was considered no longer operational' examples: - '2025-04-10T10:30:41Z' asset_departed_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset departed the service location' examples: - '2025-04-10T13:30:41Z' breakdown: type: object description: Information about the location of the Service Provider properties: location: type: string description: Location field accepts City and/or State (eg. Newark or Newark, NJ to be unambiguous) or GPS coordinates (eg. 37.50, -77.33). maxLength: 255 city: type: string description: Breakdown City name maxLength: 255 state: type: string description: Second part of the `ISO 3166-2` code indicating the breakdown State minLength: 1 maxLength: 3 examples: - NJ country: type: string description: '`ISO 3166-1` alpha-2 code indicating the breakdown Country' minLength: 2 maxLength: 2 examples: - US vmrs: type: object description: Case-level VMRS codes. Each code is provided as a `{ code_key, code }` object, consistent with `vmrs.asset_type`. properties: reason_for_repair: type: object description: VMRS Code Key 14 — identifies what caused the asset to come in for repair properties: code_key: type: string description: The VMRS code key identifier example: '14' code: type: string description: A valid VMRS Code Key 14 value example: '01' repair_priority: type: object description: VMRS Code Key 16 — priority assigned to the repair properties: code_key: type: string description: The VMRS code key identifier example: '16' code: type: string description: A valid VMRS Code Key 16 value example: '1' repair_site: type: object description: VMRS Code Key 17 — relative location where the repair takes place properties: code_key: type: string description: The VMRS code key identifier example: '17' code: type: string description: A valid VMRS Code Key 17 value example: '1' relationships: type: object description: 'Relationships that may be reassigned on update. Each value follows the JSON:API `{ data: { type, id } }` shape; the `type` must match the enum listed for that relationship, and `id` must be a UUID.' properties: assignee: type: object description: Internal user assigned to the case. properties: data: type: - object - 'null' properties: type: type: string enum: - internal_users id: type: string format: uuid required: - type - id required: - data driver: type: object description: Driver contact on the case. properties: data: type: - object - 'null' properties: type: type: string enum: - contacts id: type: string format: uuid required: - type - id required: - data primary_contact: type: object description: Primary contact on the case. properties: data: type: - object - 'null' properties: type: type: string enum: - contacts id: type: string format: uuid required: - type - id required: - data billing_contact: type: object description: Billing contact on the case. properties: data: type: - object - 'null' properties: type: type: string enum: - contacts id: type: string format: uuid required: - type - id required: - data program_type: type: object description: Program type assigned to the case. properties: data: type: - object - 'null' properties: type: type: string enum: - program_types id: type: string format: uuid required: - type - id required: - data shipping_customer: type: object description: Customer to which parts/services will be shipped. properties: data: type: - object - 'null' properties: type: type: string enum: - customers id: type: string format: uuid required: - type - id required: - data billing_customer: type: object description: Customer that will be billed for the case. properties: data: type: - object - 'null' properties: type: type: string enum: - customers id: type: string format: uuid required: - type - id required: - data required: - id - type - attributes case_update_meter_data: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - cases attributes: type: object required: - meter_data required: - attributes - type - id case_update_meter_data_eng_hours: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - cases attributes: type: object properties: meter_data: type: array description: Engine-hours meter readings to record on the case. items: type: object description: Type of meter data properties: meter: type: string enum: - engine_hours description: Meter data type to be changed unit: type: string enum: - hr description: Unit of measurement for given meter data. Valid unit for `engine_hours` is `hr`. value: type: integer description: Reading value for the given meter data required: - attributes - type - id case_update_meter_data_switch_hours: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - cases attributes: type: object properties: meter_data: type: array description: Switch-on-hours meter readings to record on the case. items: type: object description: Type of meter data properties: meter: type: string enum: - switch_on_hours description: Meter data type to be changed unit: type: string enum: - hr description: Unit of measurement for given meter data. Valid unit for `switch_on_hours` is `hr`. value: type: integer description: Reading value for the given meter data required: - attributes - type - id case_update_meter_data_stand_hours: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - cases attributes: type: object properties: meter_data: type: array description: Stand-by-hours meter readings to record on the case. items: type: object description: Type of meter data properties: meter: type: string enum: - stand_by_hours description: Meter data type to be changed unit: type: string enum: - hr description: Unit of measurement for given meter data. Valid unit for `stand_by_hours` is `hr`. value: type: integer description: Reading value for the given meter data required: - attributes - type - id case_update_meter_data_odometer_meter: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - cases attributes: type: object properties: meter_data: type: array description: Odometer readings to record on the case. items: type: object description: Type of meter data properties: meter: type: string enum: - odometer description: Meter data type to be changed unit: type: string enum: - mi - km description: Unit of measurement for given meter data. Valid units for `odometer` are `mi` and `km`. value: type: integer description: Reading value for the given meter data required: - attributes - type - id cases: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/data' meta: type: object properties: metadata: type: object properties: record-count: type: - integer - 'null' description: 'Total record count for the query. Intentionally null in degraded mode to avoid expensive COUNT queries; paginate until a page returns fewer items than `page[size]`. ' close_case: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - cases attributes: type: object required: - attributes - type - id create_contact: type: object properties: data: type: object properties: type: type: string enum: - contacts attributes: type: object properties: first_name: type: string description: First name of the contact maxLength: 100 last_name: type: string description: Last name of the contact maxLength: 100 communication: type: array description: Array of communication methods for the contact items: type: object properties: method_type: type: string description: Type of communication method (e.g., email, mobile) enum: - email - mobile value: type: string description: Value of the communication method (e.g., email address, phone number) maxLength: 128 notify: type: boolean description: Indicates if notifications should be sent to this contact required: - method_type - value - notify required: - first_name - last_name - communication required: - type - attributes required: - data contact: type: object properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - contacts - service_group_contacts - registered_contacts attributes: type: object properties: first_name: type: string description: First name of the contact maxLength: 100 last_name: type: string description: Last name of the contact maxLength: 100 communication: type: array description: Array of communication methods for the contact items: type: object properties: method_type: type: string description: Type of communication method (e.g., email, mobile) enum: - email - mobile value: type: - string - 'null' description: Value of the communication method (e.g., email address, phone number) maxLength: 128 notify: type: boolean description: Indicates if notifications should be sent to this contact required: - method_type - value - notify required: - first_name - last_name - communication links: type: object properties: self: type: string required: - id - type - attributes required: - data contact_by_id: example: data: id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 type: contacts attributes: first_name: John last_name: Doe communication: - method_type: email value: john.doe@example.com notify: true - method_type: mobile value: '+1234567890' notify: true type: object properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - contacts - service_group_contacts - registered_contacts attributes: type: object properties: first_name: type: string description: First name of the contact maxLength: 100 last_name: type: string description: Last name of the contact maxLength: 100 communication: type: array description: Array of communication methods for the contact items: type: object properties: method_type: type: string description: Type of communication method (e.g., email, mobile) enum: - email - mobile value: type: - string - 'null' description: Value of the communication method (e.g., email address, phone number) maxLength: 128 notify: type: boolean description: Indicates if notifications should be sent to this contact required: - method_type - value - notify required: - first_name - last_name - communication links: type: object properties: self: type: string required: - attributes - type - id required: - data contact_update: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - contacts attributes: type: object properties: first_name: type: string description: First name of the contact maxLength: 100 last_name: type: string description: Last name of the contact maxLength: 100 communication: type: array description: Array of communication methods for the contact items: type: object properties: method_type: type: string description: Type of communication method (e.g., email, mobile) enum: - email - mobile value: type: string description: Value of the communication method (e.g., email address, phone number) maxLength: 128 notify: type: boolean description: Indicates if notifications should be sent to this contact required: - method_type - value - notify required: - attributes - type - id contacts: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/contact_properties-data' meta: type: object properties: record-count: type: integer description: Total count across all pages create_case: type: object properties: data: type: object properties: type: type: string enum: - cases attributes: type: object properties: auth_number: type: string description: The Authorization number maxLength: 40 po_number: type: string description: The Purchase Order number maxLength: 40 ro_number: type: string description: The Repair Order number maxLength: 40 complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 cause: type: string description: Documentation of the technical failure assessed by the Service Location maxLength: 6000 correction: type: string description: Summary of the actual work accomplished to address the reported issue maxLength: 6000 invoice: type: object description: Invoice details properties: total: type: number description: Total amount for the invoice example: 432.5 maximum: 999999.99 number: type: string description: Number of the invoice example: TR3847 maxLength: 255 invoice_date: type: string format: date description: Date of the invoice in `ISO 8601` format example: '2025-06-19' tag_number: type: string description: 'Tag #, sometimes called Repair Tag, or Key Tag, is a tag that is attached to the truck keys when a truck is dropped off, so shop personnel can easily find the keys on a tag board and know which case/RO that set of keys/truck belonged to.' maxLength: 40 event_timestamps: type: object description: Timestamp attributes relfecting key events surround the case properties: followup_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the next check-in point between Customer / Provider' example: '2025-10-10T13:30:41Z' asset_uptime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset became operational, once again' example: '2025-04-10T13:00:41Z' asset_downtime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset was considered no longer operational' example: '2025-04-10T10:30:41Z' asset_arrived: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset arrived' example: '2025-04-10T11:30:41Z' asset_checked_in: type: string format: date-time description: '`ISO 8601` timestamp indicating when the check-in was performed' example: '2025-04-10T12:30:41Z' estimated_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time estimated to repair the asset' example: '2025-04-10T13:15:41Z' actual_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time spent to repair the asset' example: '2025-04-10T13:10:41Z' breakdown: type: object description: Information about the location of the Service Provider properties: location: type: string description: Location field accepts City and/or State (eg. Newark or Newark, NJ to be unambiguous) or GPS coordinates (eg. 37.50, -77.33). maxLength: 255 city: type: string description: Breakdown City name maxLength: 255 state: type: string description: Second part of the `ISO 3166-2` code indicating the breakdown State minLength: 1 maxLength: 3 example: NJ country: type: string description: '`ISO 3166-1` alpha-2 code indicating the breakdown Country' minLength: 2 maxLength: 2 example: US vmrs: type: object description: Case-level VMRS codes. Each code is provided as a `{ code_key, code }` object, consistent with `vmrs.asset_type`. properties: reason_for_repair: type: object description: VMRS Code Key 14 — identifies what caused the asset to come in for repair properties: code_key: type: string description: The VMRS code key identifier example: '14' code: type: string description: A valid VMRS Code Key 14 value example: '01' repair_priority: type: object description: VMRS Code Key 16 — priority assigned to the repair properties: code_key: type: string description: The VMRS code key identifier example: '16' code: type: string description: A valid VMRS Code Key 16 value example: '1' repair_site: type: object description: VMRS Code Key 17 — relative location where the repair takes place properties: code_key: type: string description: The VMRS code key identifier example: '17' code: type: string description: A valid VMRS Code Key 17 value example: '1' relationships: type: object properties: customer_asset: $ref: '#/components/schemas/relationship_object' program_type: $ref: '#/components/schemas/relationship_object' department: allOf: - $ref: '#/components/schemas/relationship_object' - description: 'Optional. Note: `department.data.id` is a dealer-scoped string code (e.g. "SERVICE"), not a UUID. The code must belong to the account and the `Departments` feature must be enabled for the account; otherwise the request fails with a 422 `Identifier not found` error.' billing_customer: $ref: '#/components/schemas/relationship_object' required: - customer_asset required: - type - attributes required: - data create_case_note: type: object required: - data properties: data: type: object required: - type - attributes - relationships properties: type: type: string enum: - notes attributes: type: object required: - message - public properties: message: type: string example: This is a note public: type: boolean description: Notes with Public selected can be viewed from the Fleet case perspective. example: true relationships: type: object required: - recipients properties: recipients: type: object description: Despite the key name, this accepts a single `participants` entry as an alternative to one or more `recipients`, `contacts`, or `registered_contacts` entries; the two groups can't be mixed. required: - data properties: data: oneOf: - title: Recipients or contacts type: array minItems: 1 items: type: object required: - type - id properties: type: type: string enum: - recipients - contacts - registered_contacts example: recipients id: type: string format: uuid description: UUID of the recipient example: 1ed4f5ce-e426-11eb-a848-4fd53322f5bb - title: Single participant type: array minItems: 1 maxItems: 1 items: type: object required: - type - id properties: type: type: string enum: - participants example: participants id: type: string format: uuid description: UUID of the participant example: 1ed4f5ce-e426-11eb-a848-4fd53322f5bb create_customer: type: object properties: data: type: object properties: type: type: string enum: - customers attributes: type: object properties: name: type: string description: Name of the customer maxLength: 100 address1: type: string description: Primary address information maxLength: 100 address2: type: string description: Secondary address information maxLength: 100 city: type: string description: City in which the business resides maxLength: 100 state: type: string description: Second part of the `ISO 3166-2` code indicating the state minLength: 1 maxLength: 3 example: NJ country: type: string description: '`ISO 3166-1` alpha-2 code indicating the country' minLength: 2 maxLength: 2 example: US postal_code: type: string description: Postal ZIP Code maxLength: 20 phone: type: string description: Telephone number, must conform to E.164 standard maxLength: 60 fax: type: string description: Fax number, must conform to E.164 standard maxLength: 60 email: type: string description: Email contact information maxLength: 128 notes: type: string description: Free-form notes about the customer example: Premium customer - call ahead account_number: type: string description: Account number for the customer (applies to MVP/OEM accounts) maxLength: 36 example: ACC-1234 external_reference: type: object description: Reference Identifiers used outside of Decisiv SRM properties: customer_number: type: string description: Number used to identify Customer record in external system minLength: 1 maxLength: 40 deprecated: true business_system: type: string description: Number used to identify Customer record in external system minLength: 1 maxLength: 40 required: - name - external_reference required: - type - attributes required: - data create_customer_asset: title: Customer Asset using a local Customer type: object description: 'Create a Customer Asset linked to a local Customer. The vehicle described in `attributes` will be created (or reused if found by VIN / serial); on this branch the supplied `vmrs.asset_type.code` is written onto the newly-created vehicle''s `asset_type`. ' required: - data properties: data: type: object properties: type: type: string enum: - customer_assets attributes: type: object properties: vin: type: string description: 17 digit vehicle identification number minLength: 17 maxLength: 17 serial_number: type: string description: Production number of the asset minLength: 8 maxLength: 9 chassis_id: type: string description: Unique identifier consisting of a letter (chassis series) and six digits (chassis number) maxLength: 50 unit_number: type: string description: Identification number commonly used on assets residing within a fleet make: type: string description: Brand of the asset maxLength: 100 model: type: string description: Name of the asset product from the manufacturer maxLength: 100 year: type: integer description: 'Calendar year the asset model was released, minimum: 1970, maximum: two years from now' vmrs: type: object description: VMRS classification of the asset. Optional on create. On the customer branch the code persists onto the newly-created vehicle's `asset_type`. properties: asset_type: type: object description: VMRS Code Key 2 (Equipment Category). properties: code_key: type: string description: The VMRS code key identifier. Must be `"2"` when supplied. example: '2' code: type: string description: The VMRS Code Key 2 code (e.g. `"D"`, `"1"`, `"R"`). Must match an active value from `GET /vmrs/asset_types`. example: R relationships: type: object properties: customer: type: object description: The customer id properties: data: type: object properties: type: type: string examples: - customers id: type: string examples: - The UUID of the customer registered_asset: $ref: '#/components/schemas/relationship_object' required: - type - attributes create_customer_asset_registered: title: Customer Asset using an existing Registered Asset type: object description: 'Create a Customer Asset linked to an existing Registered Asset (i.e. an already-registered vehicle). On this branch the supplied `vmrs.asset_type.code` is written onto the underlying vehicle''s `asset_type` ONLY when that vehicle has no value yet (silent no-op otherwise — overwriting / clearing belong on `PATCH /asset_management/{srm_account_id}/v1/registered_assets/{uuid}`). ' required: - data properties: data: type: object properties: type: type: string attributes: type: object properties: unit_number: type: string description: Identification number commonly used on assets residing within a fleet make: type: string description: Brand of the asset maxLength: 100 year: type: integer description: 'Calendar year the asset model was released, minimum: 1970, maximum: next year' vmrs: type: object description: 'VMRS classification of the asset. Optional on create. On the registered_asset branch the supplied `code` is written through to the underlying vehicle''s `asset_type` ONLY when that vehicle currently has no value. If the vehicle already has an `asset_type`, the supplied value is silently ignored — clearing and overwriting belong on `PATCH /asset_management/{srm_account_id}/v1/registered_assets/{uuid}`, not on this create endpoint. ' properties: asset_type: type: object description: VMRS Code Key 2 (Equipment Category). properties: code_key: type: string description: The VMRS code key identifier. Must be `"2"` when supplied. example: '2' code: type: string description: The VMRS Code Key 2 code (e.g. `"D"`, `"1"`, `"R"`). Must match an active value from `GET /vmrs/asset_types`. example: R relationships: type: object properties: registered_assets: type: object description: The registered asset id properties: data: type: object properties: type: type: string example: registered_assets id: type: string example: The UUID of the registered_asset create_sublet_request: type: object required: - data properties: data: type: object properties: type: type: string enum: - sublet_requests attributes: type: object properties: complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 status: type: string enum: - pending - canceled - declined - accepted description: Status of the sublet request maxLength: 255 po_number: type: string description: Purchase Order number maxLength: 40 auth_number: type: string description: Authorization number maxLength: 40 note: type: string description: The notes for the sublet request reference_number: type: integer description: Integer representation of the sublet request ID inside of the User Interface breakdown: type: object description: Information about the breakdown location properties: city: type: string description: City of breakdown maxLength: 255 examples: - North Haven location: type: string description: Exact map location of the breakdown maxLength: 255 examples: - 41.395022,-72.856326 state: type: string description: Second part of the `ISO 3166-2` code indicating the breakdown State minLength: 1 maxLength: 3 examples: - NJ event_timestamps: type: object description: All the timestamps related to the sublet request properties: requested_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the sublet was requested' requested_appointment_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the appointment time' requested_completion_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the completion time of the case' asset_downtime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset was considered no longer operational' primary_contact: type: object properties: first_name: type: string last_name: type: string email: type: string relation: type: string phone: type: object driver: type: object properties: first_name: type: string last_name: type: string email: type: string phone: type: object required: - complaint relationships: properties: parent_case: $ref: '#/components/schemas/relationship_object' service_provider: $ref: '#/components/schemas/relationship_object' required: - parent_case - service_provider required: - type - attributes - relationships customer: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - customers - registered_customers - service_group_customers - service_group_registered_customers attributes: type: object properties: name: type: string description: Name of the customer maxLength: 100 address1: type: string description: Primary address information maxLength: 100 address2: type: string description: Secondary address information maxLength: 100 city: type: string description: City in which the business resides maxLength: 100 state: type: string description: Second part of the `ISO 3166-2` code indicating the state minLength: 1 maxLength: 3 example: NJ country: type: string description: '`ISO 3166-1` alpha-2 code indicating the country' minLength: 2 maxLength: 2 example: US postal_code: type: string description: Postal ZIP Code maxLength: 20 phone: type: string description: Telephone number, must conform to E.164 standard maxLength: 60 fax: type: string description: Fax number, must conform to E.164 standard maxLength: 60 email: type: string description: Email contact information maxLength: 128 notes: type: string description: Free-form notes about the customer example: Premium customer - call ahead account_number: type: string description: Account number for the customer (applies to MVP/OEM accounts) maxLength: 36 example: ACC-1234 external_reference: type: object description: Reference Identifiers used outside of Decisiv SRM properties: customer_number: type: string description: Number used to identify Customer record in external system minLength: 1 maxLength: 40 deprecated: true business_system: type: string description: Number used to identify Customer record in external system minLength: 1 maxLength: 40 relationships: type: object properties: srm_account: $ref: '#/components/schemas/relationship_object' service_location: $ref: '#/components/schemas/relationship_object' update_customer: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - customers attributes: type: object properties: name: type: string description: Name of the customer maxLength: 100 address1: type: string description: Primary address information maxLength: 100 address2: type: string description: Secondary address information maxLength: 100 city: type: string description: City in which the business resides maxLength: 100 state: type: string description: Second part of the `ISO 3166-2` code indicating the state minLength: 1 maxLength: 3 example: NJ country: type: string description: '`ISO 3166-1` alpha-2 code indicating the country' minLength: 2 maxLength: 2 example: US postal_code: type: string description: Postal ZIP Code maxLength: 20 phone: type: string description: Telephone number, must conform to E.164 standard maxLength: 60 fax: type: string description: Fax number, must conform to E.164 standard maxLength: 60 email: type: string description: Email contact information maxLength: 128 notes: type: string description: Free-form notes about the customer example: Premium customer - call ahead account_number: type: string description: Account number for the customer (applies to MVP/OEM accounts) maxLength: 36 example: ACC-1234 external_reference: type: object description: Reference Identifiers used outside of Decisiv SRM properties: customer_number: type: string description: Number used to identify Customer record in external system minLength: 1 maxLength: 40 deprecated: true business_system: type: string description: Number used to identify Customer record in external system minLength: 1 maxLength: 40 required: - attributes - type - id update_registered_customer: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - registered_customers attributes: type: object properties: external_reference: type: object description: Reference Identifiers used outside of Decisiv SRM properties: customer_number: type: string description: Number used to identify Customer record in external system minLength: 1 maxLength: 40 deprecated: true business_system: type: string description: Number used to identify Customer record in external system minLength: 1 maxLength: 40 required: - attributes - type - id customer_asset: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - customer_assets - service_group_customer_assets attributes: type: object properties: vin: type: string description: 17 digit vehicle identification number minLength: 17 maxLength: 17 serial_number: type: string description: Production number of the asset minLength: 8 maxLength: 9 chassis_id: type: string description: Unique identifier consisting of a letter (chassis series) and six digits (chassis number) maxLength: 50 example: N-991562 unit_number: type: string description: Identification number commonly used on assets residing within a fleet make: type: string description: Brand of the asset maxLength: 100 model: type: string description: Name of the asset product from the manufacturer maxLength: 100 year: type: integer description: 'Calendar year the asset model was released, minimum: 1970, maximum: two years from now' service_status: type: string description: "Current service eligibility for this customer asset.\n\n- `active` — service relationship\ \ is currently in force between\n the Service Provider account and the customer on the asset.\n- `inactive`\ \ — no longer the current association; superseded by\n a newer record for the same asset, but remains\ \ serviceable.\n Creating a case against it flips the asset back to `active`.\n- `archived` — the underlying\ \ registered asset has been\n deactivated by its Registered Asset Management account holder;\n the asset\ \ is reference-only and cannot be used to create new\n cases.\n" enum: - active - inactive - archived engine: type: object description: Engine data properties: make: type: - string - 'null' maxLength: 255 description: The make of the engine example: Cummins model: type: - string - 'null' maxLength: 100 description: The model of the engine example: X15 displacement: type: - string - 'null' maxLength: 100 description: The engine size related in liters or cubic inches example: 14.8L serial_number: type: - string - 'null' maxLength: 40 description: The engine serial number example: '79412345' odometer_value: type: - number - 'null' description: Integer representation about the asset odometer example: 125000 odometer_unit: type: - string - 'null' description: ' The unit of measure for odometer value represented in standard or metric (mi = Miles or km = Kilometers)' enum: - mi - km example: mi vmrs: type: object description: VMRS classification of the asset. properties: asset_type: type: object description: VMRS Code Key 2 (Equipment Category). properties: code_key: type: string description: The VMRS code key identifier. Must be `"2"` when supplied on write. example: '2' code: type: string description: The VMRS Code Key 2 code (e.g. `"D"`, `"1"`, `"R"`). Must match an active value from `GET /vmrs/asset_types`. required: - service_status relationships: type: object properties: customer: type: object required: - data properties: data: type: - object - 'null' required: - id - type properties: id: type: string type: type: string enum: - customers - registered_customers - service_group_customers - service_group_registered_customers srm_verified_asset: $ref: '#/components/schemas/relationship_object' required: - customer links: type: object properties: self: type: string source_application: type: string required: - attributes - relationships - type - id customer_asset_by_id: example: data: type: customer_assets id: aa3e7935-bfe2-475e-9be2-80ccef5477c8 attributes: vin: 3B7HF13Z11M269883 serial_number: HN991562 unit_number: NU2695 chassis_id: N-991562 make: Make model: CH613 year: 2017 service_status: active engine: make: Engine Make vmrs: asset_type: code_key: '2' code: D relationships: customer: data: type: customers id: cd91f5cb-5c38-4f10-90cb-de2efad3ee82 srm_verified_asset: data: type: srm_verified_assets id: a6cfb121-5e78-4ec4-a7ea-223900c76607 type: object properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - customer_assets - service_group_customer_assets attributes: type: object properties: vin: type: string description: 17 digit vehicle identification number minLength: 17 maxLength: 17 serial_number: type: string description: Production number of the asset minLength: 8 maxLength: 9 chassis_id: type: string description: Unique identifier consisting of a letter (chassis series) and six digits (chassis number) maxLength: 50 unit_number: type: string description: Identification number commonly used on assets residing within a fleet make: type: string description: Brand of the asset maxLength: 100 model: type: string description: Name of the asset product from the manufacturer maxLength: 100 year: type: integer description: 'Calendar year the asset model was released, minimum: 1970, maximum: two years from now' service_status: type: string description: "Current service eligibility for this customer asset.\n\n- `active` — service relationship\ \ is currently in force between\n the Service Provider account and the customer on the asset.\n- `inactive`\ \ — no longer the current association; superseded by\n a newer record for the same asset, but remains\ \ serviceable.\n Creating a case against it flips the asset back to `active`.\n- `archived` — the underlying\ \ registered asset has been\n deactivated by its Registered Asset Management account holder;\n the asset\ \ is reference-only and cannot be used to create new\n cases.\n" enum: - active - inactive - archived engine: type: object properties: make: type: - string - 'null' vmrs: type: object description: VMRS classification of the asset properties: asset_type: type: object description: VMRS Code Key 2 (Equipment Category) properties: code_key: type: string description: The VMRS code key identifier example: '2' code: type: string description: The VMRS code value for the equipment category (e.g. 'D', '1', 'R') required: - service_status relationships: type: object properties: customer: type: object required: - data properties: data: type: - object - 'null' required: - id - type properties: id: type: string type: type: string enum: - customers - registered_customers - service_group_customers - service_group_registered_customers srm_verified_asset: description: When present, indicates this asset's identity has been verified against a manufacturer-sourced canonical record. The associated YMMI (Year, Make, Model, and Identifier) values are OEM-authoritative and supersede any locally stored asset attributes. $ref: '#/components/schemas/relationship_object' required: - customer links: type: object properties: self: type: string source_application: type: string required: - attributes - relationships - type - id required: - data customer_asset_create_case: type: object properties: data: type: object properties: type: type: string enum: - cases attributes: type: object properties: auth_number: type: string description: The Authorization number maxLength: 40 po_number: type: string description: The Purchase Order number maxLength: 40 ro_number: type: string description: The Repair Order number maxLength: 40 complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 cause: type: string description: Documentation of the technical failure assessed by the Service Location maxLength: 6000 correction: type: string description: Summary of the actual work accomplished to address the reported issue maxLength: 6000 repair_status: type: string description: ID of the repair status from `GET /service_management/{srm_account_id}/v1/repair_statuses.` example: asset_ready metadata: type: array description: Metadata about the case minItems: 1 maxItems: 50 items: type: object properties: key: type: string description: Metadata key has to start and end with a letter or number, be lower snake case minLength: 1 maxLength: 50 pattern: ^[a-z0-9]+(_{1}[a-z0-9]+)*$ example: some_key value: type: string description: The metadata value must be a string with 500 characters or less minLength: 1 maxLength: 500 example: The value goes here invoice: type: object description: Invoice details properties: total: type: number description: Total amount for the invoice example: 432.5 maximum: 999999.99 number: type: string description: Number of the invoice example: TR3847 maxLength: 255 date: type: string format: date description: Date of the invoice in `ISO 8601` format example: '2025-06-19' tag_number: type: string description: 'Tag #, sometimes called Repair Tag, or Key Tag, is a tag that is attached to the truck keys when a truck is dropped off, so shop personnel can easily find the keys on a tag board and know which case/RO that set of keys/truck belonged to.' maxLength: 40 event_timestamps: type: object description: Timestamp attributes relfecting key events surround the case properties: followup_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the next check-in point between Customer / Provider' example: '2025-10-10T13:30:41Z' asset_uptime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset became operational, once again' example: '2025-04-10T13:00:41Z' asset_downtime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset was considered no longer operational' example: '2025-04-10T10:30:41Z' asset_arrived: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset arrived' example: '2025-04-10T11:30:41Z' asset_checked_in: type: string format: date-time description: '`ISO 8601` timestamp indicating when the check-in was performed' example: '2025-04-10T12:30:41Z' estimated_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time estimated to repair the asset' example: '2025-04-10T13:15:41Z' actual_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time spent to repair the asset' example: '2025-04-10T13:10:41Z' breakdown: type: object description: Information about the location of the Service Provider properties: location: type: string description: Location field accepts City and/or State (eg. Newark or Newark, NJ to be unambiguous) or GPS coordinates (eg. 37.50, -77.33). maxLength: 255 city: type: string description: Breakdown City name maxLength: 255 state: type: string description: Second part of the `ISO 3166-2` code indicating the breakdown State minLength: 1 maxLength: 3 example: NJ country: type: string description: '`ISO 3166-1` alpha-2 code indicating the breakdown Country' minLength: 2 maxLength: 2 example: US vmrs: type: object description: Case-level VMRS codes. Each code is provided as a `{ code_key, code }` object, consistent with `vmrs.asset_type`. properties: reason_for_repair: type: object description: VMRS Code Key 14 — identifies what caused the asset to come in for repair properties: code_key: type: string description: The VMRS code key identifier example: '14' code: type: string description: A valid VMRS Code Key 14 value example: '01' repair_priority: type: object description: VMRS Code Key 16 — priority assigned to the repair properties: code_key: type: string description: The VMRS code key identifier example: '16' code: type: string description: A valid VMRS Code Key 16 value example: '1' repair_site: type: object description: VMRS Code Key 17 — relative location where the repair takes place properties: code_key: type: string description: The VMRS code key identifier example: '17' code: type: string description: A valid VMRS Code Key 17 value example: '1' relationships: type: object properties: assignee: $ref: '#/components/schemas/relationship_object' driver: $ref: '#/components/schemas/relationship_object' primary_contact: $ref: '#/components/schemas/relationship_object' billing_contact: $ref: '#/components/schemas/relationship_object' program_type: $ref: '#/components/schemas/relationship_object' department: allOf: - $ref: '#/components/schemas/relationship_object' - description: 'Optional. Note: `department.data.id` is a dealer-scoped string code (e.g. "SERVICE"), not a UUID. The code must belong to the account and the `Departments` feature must be enabled for the account; otherwise the request fails with a 422 `Identifier not found` error.' shipping_customer: $ref: '#/components/schemas/relationship_object' billing_customer: $ref: '#/components/schemas/relationship_object' required: - type - attributes required: - data customer_assets: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/customer_asset_properties-data' meta: type: object customer_by_id: example: data: id: 014ee85e-a183-4bf7-b4d7-67e758fa2b2a type: customers attributes: name: Joe's Garage address1: 9009 Sunset Blvd address2: Door 5 city: West Hollywood state: CA postal_code: '90069' phone: '+12025550128' fax: '+12025550129' country: US email: roxy.by.proxy@decisivgenerated.email notes: Premium customer - call ahead account_number: ACC-1234 external_reference: business_system: ES-2112 relationships: srm_account: data: null service_location: data: type: service_providers id: 65b8d7f1-77aa-4b62-9a62-7207da98bb94 type: object properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - customers - registered_customers - service_group_customers - service_group_registered_customers attributes: type: object properties: name: type: string description: Name of the customer maxLength: 100 address1: type: string description: Primary address information maxLength: 100 address2: type: string description: Secondary address information maxLength: 100 city: type: string description: City in which the business resides maxLength: 100 state: type: string description: Second part of the `ISO 3166-2` code indicating the state minLength: 1 maxLength: 3 example: NJ country: type: string description: '`ISO 3166-1` alpha-2 code indicating the country' minLength: 2 maxLength: 2 example: US postal_code: type: string description: Postal ZIP Code maxLength: 20 phone: type: string description: Telephone number, must conform to E.164 standard maxLength: 60 fax: type: string description: Fax number, must conform to E.164 standard maxLength: 60 email: type: string description: Email contact information maxLength: 128 notes: type: string description: Free-form notes about the customer example: Premium customer - call ahead account_number: type: string description: Account number for the customer (applies to MVP/OEM accounts) maxLength: 36 example: ACC-1234 external_reference: type: object description: Reference Identifiers used outside of Decisiv SRM properties: customer_number: type: string description: Number used to identify Customer record in external system minLength: 1 maxLength: 40 deprecated: true business_system: type: string description: Number used to identify Customer record in external system minLength: 1 maxLength: 40 relationships: type: object properties: srm_account: $ref: '#/components/schemas/relationship_object' service_location: $ref: '#/components/schemas/relationship_object' required: - attributes - type - id required: - data customer_request: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - customer_requests attributes: type: object properties: complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 examples: - Broken truck po_number: type: string description: PO number maxLength: 40 examples: - '1234' auth_number: type: string description: The auth number maxLength: 40 examples: - '1234' note: type: string description: The notes for the customer request examples: - Initial note reference_number: type: number description: Integer representation of the customer request ID inside of the User Interface status: type: string description: Status of the customer request enum: - pending - canceled - declined - accepted maxLength: 255 examples: - pending updated_at: type: - string - 'null' format: date-time description: '`ISO 8601` timestamp indicating when the customer request was updated' examples: - '2022-04-14T05:23:45Z' created_at: type: - string - 'null' format: date-time description: '`ISO 8601` timestamp indicating when the customer request was created' examples: - '2022-04-14T05:23:45Z' asset_information: type: object description: The asset information when the customer request was created properties: odometer_value: type: number description: Integer representation about the asset odometer odometer_unit: type: string description: abreviation about the unit of asset can be mi for miles or km for Kilometers enum: - mi - km examples: - mi breakdown: type: object description: Information about the breakdown location properties: city: type: string description: City of breakdown maxLength: 255 examples: - North Haven location: type: string description: Exact map location of the breakdown maxLength: 255 examples: - 41.395022,-72.856326 state: type: string description: Second part of the `ISO 3166-2` code indicating the breakdown State minLength: 1 maxLength: 3 examples: - NJ primary_contact: type: object description: Primary contact information properties: first_name: type: string description: First name maxLength: 100 examples: - Martha last_name: type: string description: Last name maxLength: 100 examples: - Wayne email: type: string description: Contact email examples: - martha@wayne.com relation: type: string examples: - Bobby phone: type: object description: Phone information properties: mobile: type: string maxLength: 32 examples: - (582) 123-1234 work: type: string maxLength: 32 examples: - (582) 123-1234 driver: type: object description: Driver information properties: first_name: type: string description: First name maxLength: 100 examples: - Martha last_name: type: string description: Last name maxLength: 100 examples: - Wayne email: type: string description: Contact email examples: - martha@wayne.com phone: type: object description: Phone information properties: mobile: type: string maxLength: 32 examples: - (582) 123-1234 work: type: string maxLength: 32 examples: - (582) 123-1234 metadata: type: object properties: {} event_timestamps: type: object description: All the timestamps related to the customer request properties: requested_at: type: - string - 'null' description: '`ISO 8601` timestamp indicating when the service was requested' format: date-time examples: - '2022-04-14T05:23:45Z' requested_completion_time: type: - string - 'null' format: date-time description: '`ISO 8601` timestamp indicating the completion time of the case' examples: - '2022-04-14T05:23:45Z' requested_appointment_time: type: - string - 'null' format: date-time description: '`ISO 8601` timestamp indicating the appointment time' examples: - '2022-04-14T05:23:45Z' confirmed_appointment_at: type: - string - 'null' format: date-time description: '`ISO 8601` timestamp indicating when the service provider confirmed the appointment with the customer' examples: - '2022-04-14T05:23:45Z' asset_downtime: type: - string - 'null' format: date-time description: '`ISO 8601` timestamp indicating when the Asset was considered no longer operational' examples: - '2022-04-14T05:23:45Z' relationships: type: object properties: case: $ref: '#/components/schemas/relationship_object' customer: $ref: '#/components/schemas/relationship_object' links: type: object properties: self: type: string required: - attributes - type - id customer_request_response: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - customer_request_responses attributes: type: object properties: status: type: string description: Status of the customer request enum: - pending - canceled - declined - accepted example: pending maxLength: 255 note: type: string description: The notes for the customer request example: Initial note event_timestamps: type: object description: All the timestamps related to the customer request relationships: type: object properties: customer_request: $ref: '#/components/schemas/relationship_object' required: - attributes - type - id customer_request_response_accept: type: object required: - data properties: data: type: object properties: type: type: string attributes: type: object properties: note: type: string description: Details on Approving the Customer's Request example: There is one condition tho event_timestamps: type: object description: All the timestamps related to the customer request response properties: confirmed_appointment_at: type: string description: '`ISO 8601` timestamp indicating when appointment was scheduled' example: '2025-06-18T12:41:31Z' format: date-time customer_request_response_decline: type: object required: - data properties: data: type: object properties: type: type: string attributes: type: object properties: note: type: string description: Details on Approving the Customer's Request example: There is one condition tho customer_requests: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/customer_request_properties-data' meta: type: object customers: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/customer_properties-data' meta: type: object department: type: object required: - data properties: data: type: object properties: id: type: string description: 'The department code. Note: this is a dealer-scoped string code (e.g. "SERVICE"), not a UUID.' type: type: string enum: - departments attributes: type: object properties: name: type: string description: Name of the Department required: - attributes - type - id departments: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/department_properties-data' meta: type: object properties: record-count: type: integer description: Total count across all pages diagnostic_reading: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - diagnostic_readings attributes: type: object properties: origin_id: type: string description: Unique ID for Diagnostic record origin: type: string description: Source of Diagnostic data triggered_at: type: string format: date-time description: Date / Time when the diagnostic was triggered in `ISO8601` format sensor_readings: type: array description: Information about the diagnostic reading items: type: object properties: name: type: string description: Name of the sensor description: type: string description: Description of sensor value: type: number description: Sensor reading value unit_of_measure: type: string description: Unit of measure for Sensor classification_header: type: string description: Header Group in UI key_data: type: boolean description: Indicator to Display info in UI localize: type: boolean description: Indicator to Display info in UI components: type: array description: Components of device tested items: type: object properties: name: type: string description: Name of Component description: type: string description: Description of Component version: type: number description: version asset_data: type: object description: Asset information properties: chassis_id: type: string description: Unique identifier consisting of a letter (chassis series) and six digits (chassis number) device_id: type: string description: Telematic Device ID make: type: string description: Brand of the asset model: type: string description: Name of the asset product from the manufacturer serial_number: type: string description: Production number of the asset minLength: 8 maxLength: 9 vin: type: string description: 17 digit vehicle identification number minLength: 17 maxLength: 17 vehicle: type: string description: Asset Type location: type: object description: Geolocation information about the Asset properties: latitude: type: number description: Asset Latitude longitude: type: number description: Asset Longitude altitude: type: integer description: Asset Altitude heading: type: integer description: Asset Heading relationships: type: object properties: faults: $ref: '#/components/schemas/relationship_object' required: - attributes - type - id diagnostic_readings: type: object required: - data properties: data: type: array items: type: object required: - id - type - attributes properties: id: type: string format: uuid type: type: string enum: - diagnostic_readings attributes: $ref: '#/components/schemas/attributes' relationships: type: object properties: faults: $ref: '#/components/schemas/relationship_objects' source_account: $ref: '#/components/schemas/relationship_object' links: type: object properties: self: type: string format: uri description: Canonical URL of the diagnostic reading resource meta: type: object sublet_case_line_item: type: object required: - data properties: data: type: object description: 'A sublet case line item represents a single repair operation on the case — typically a labor task or a parts replacement performed by a sublet vendor. ' properties: id: type: string format: uuid type: type: string enum: - sublet_case_line_items attributes: type: object properties: status: 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. maxLength: 255 example: approved name: type: - string - 'null' description: Name of the operation line item maxLength: 510 example: Air Dryer Cartridge, Replacement opcode: type: - string - 'null' description: Unique operation code maxLength: 255 example: T3789-0-04 pricing: type: object description: Pricing breakdown for the line item. 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' additional_charges: type: - array - 'null' description: Additional charges associated with the line item; null when none are present. items: type: object properties: code: type: string description: Code of the additional charge example: FLAT description: type: string description: Description of the additional charge example: Flat fee amount: type: string format: decimal description: Amount of the additional charge example: '100.00' category: type: - string - 'null' description: Category of the additional charge example: Service sales_tax_rate: type: string format: decimal description: Sales tax rate applied to the additional charge example: '1.00' sales_tax_amount: type: string format: decimal description: Sales tax amount for the additional charge example: '1.00' total_amount: type: string format: decimal description: Total amount for the additional charge example: '101.00' parts: type: array description: Parts associated with the line item items: type: object properties: number: type: string description: Part number example: '8675309' name: type: string description: Part name example: Filter quantity: type: integer description: Quantity of the part example: 2 labor: type: object description: Labor associated with line item properties: time: type: number 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 vmrs: type: - object - 'null' description: Vehicle Maintenance Reporting Standards (VMRS) coding for the line item, currently exposing Component Code (CK33). Null when no component code is assigned. properties: code_key: type: string description: VMRS code key — the numeric category designator within the VMRS standard (e.g., "33" identifies Component Code). example: '33' code_key_name: type: string description: Human-readable name of the VMRS code key. example: Component Code code: type: string description: VMRS code value within the code key (e.g., "023-000-000" identifies "Engine" within Component Code). example: 023-000-000 description: type: string description: Human-readable description of the VMRS code. example: Engine required: - attributes - type - id extended_attribute: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - extended_attributes attributes: type: object properties: name: type: string description: Description of extended attribute minLength: 1 maxLength: 255 schema: type: object oneOf: - type: object description: String with enum validation required: - type - enum properties: type: type: string example: string enum: type: array items: type: string - type: object description: String with length validation required: - type - minLength - maxLength properties: type: type: string example: string minLength: type: integer maxLength: type: integer - type: object description: String with pattern validation required: - type - pattern properties: type: type: string example: string pattern: type: string - type: object description: Integer with range validation required: - type - minimum - maximum properties: type: type: integer example: integer minimum: type: integer maximum: type: integer - type: object description: Integer with enum validation required: - type - enum properties: type: type: integer example: integer enum: type: array items: type: integer - type: object description: Number with range validation required: - type - minimum - maximum properties: type: type: number example: number minimum: type: number maximum: type: number - type: object description: Boolean required: - type properties: type: type: boolean example: boolean - type: object description: Datetime required: - type - format properties: type: type: string example: string format: type: string example: date-time - type: object description: Date required: - type - format properties: type: type: string example: string format: type: string example: date - type: object description: Time required: - type - format properties: type: type: string example: string format: type: string example: time - type: object description: Email required: - type - format properties: type: type: string example: string format: type: string example: email - type: object description: URI required: - type - format properties: type: type: string example: string format: type: string example: uri - type: object description: UUID required: - type - format properties: type: type: string example: string format: type: string example: uuid required: - attributes - type - id extended_attributes: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/extended_attribute_properties-data' meta: type: object extended_asset_attribute: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - extended_asset_attributes attributes: type: object properties: value: type: string description: Value of extended attribute for the asset name: type: string created_at: type: string format: date-time example: '2022-04-14T05:23:45Z' updated_at: type: string format: date-time example: '2022-04-14T05:23:45Z' required: - value relationships: type: object properties: account_extended_attribute: $ref: '#/components/schemas/relationship_object' customer_asset: $ref: '#/components/schemas/relationship_object' required: - account_extended_attribute - customer_asset required: - type - attributes - relationships extended_asset_attributes: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/extended_asset_attribute_properties-data' meta: type: object update_extended_asset_attribute: type: object required: - data properties: data: type: object required: - id - type - attributes properties: id: type: string format: uuid type: type: string attributes: type: object required: - value properties: value: type: string description: Value of extended attribute for the asset fault: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - faults attributes: type: object properties: triggered_at: type: string format: date-time description: Date / Time when the diagnostic was triggered in `ISO8601` format spn: type: string description: SPN value fmi: type: string description: FMi value fault_code: type: string description: Fault Code value severity: type: string description: Fault Severity active: type: boolean description: Determine if this fauls still active sensor_readings: type: array description: Information about the diagnostic reading items: type: object properties: name: type: string description: Name of the sensor description: type: string description: Description of sensor value: type: number description: Sensor reading value unit_of_measure: type: string description: Unit of measure for Sensor classification_header: type: string description: Header Group in UI key_data: type: boolean description: Indicator to Display info in UI localize: type: boolean description: Indicator to Display info in UI guidance: type: array description: Information about the diagnostic reading items: type: object properties: name: type: string description: Name of the sensor description: type: string description: Description of sensor value: type: string description: Sensor reading explanation classification_header: type: string description: Header Group in UI details: type: object description: Details of the fault properties: components: type: object description: Components of device tested properties: name: type: string description: Name of Component description: type: string description: Description of Component version: type: number description: version occurrences: type: integer description: Number of times the faults occurred odometer_unit: type: string description: Odometer unit of measure enum: - mi - km odometer_value: type: integer description: Odometer reading at the time of the fault severity_level: type: integer description: Number of the severity level location: type: object description: Geolocation information about the Asset properties: latitude: type: number description: Asset Latitude longitude: type: number description: Asset Longitude altitude: type: integer description: Asset Altitude heading: type: integer description: Asset Heading relationships: type: object properties: diagnostic_readings: $ref: '#/components/schemas/relationship_object' assets: $ref: '#/components/schemas/relationship_object' required: - attributes - type - id faults: type: object required: - data properties: data: type: array items: type: object required: - id - type - attributes properties: id: type: string format: uuid type: type: string enum: - faults attributes: $ref: '#/components/schemas/properties-attributes' relationships: type: object properties: diagnostic_reading: $ref: '#/components/schemas/relationship_object' source_account: $ref: '#/components/schemas/relationship_object' asset: $ref: '#/components/schemas/relationship_object' links: type: object properties: self: type: string format: uri description: Canonical URL of the fault resource meta: type: object modify_billing_customer: type: object required: - data properties: data: type: object properties: id: type: string description: UUID of the customer to be associated maxLength: 36 type: oneOf: - type: string description: customers - type: string description: registered_customers required: - type - id modify_program_type: type: object required: - data properties: data: type: object properties: id: type: string description: UUID of the program type to be associated maxLength: 36 type: type: string description: Must be "program_types" required: - type - id modify_shipping_customer: type: object required: - data properties: data: type: object properties: id: type: string description: UUID of the customer to be associated maxLength: 36 type: oneOf: - type: string description: customers - type: string description: registered_customers required: - type - id modify_primary_contact: type: object required: - data properties: data: type: object properties: id: type: string description: UUID of the contact to be associated maxLength: 36 type: type: string description: Must be one of "recipients", "contacts", "registered_contacts" required: - type - id modify_primary_contact_response: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string relationships: type: object properties: primary_contact: type: object properties: data: type: object properties: id: type: string format: uuid type: type: string modify_driver: type: object required: - data properties: data: type: object properties: id: type: string description: UUID of the contact to be associated maxLength: 36 type: type: string description: Must be one of "recipients", "contacts", "registered_contacts" required: - type - id modify_driver_response: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string relationships: type: object properties: driver: type: object properties: data: type: object properties: id: type: string format: uuid type: type: string modify_billing_contact_response: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string relationships: type: object properties: billing_contact: type: object properties: data: type: object properties: id: type: string format: uuid type: type: string internal_user: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - internal_users attributes: type: object properties: first_name: type: string description: First name of the internal user maxLength: 50 last_name: type: string description: Last name of the internal user maxLength: 50 email: type: string description: Email of the internal user maxLength: 120 external_reference: type: object description: Reference Identifiers used outside of Decisiv SRM properties: business_system: type: - string - 'null' description: Business System Identifier permissions: type: array description: A list of permissions for the user. items: type: string description: Name of the permission minItems: 1 required: - attributes - type - id internal_users: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/internal_user_properties-data' meta: type: object properties: record-count: type: integer description: Total count across all pages 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: type: string description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. example: A relationships: type: object properties: parts: description: Parts consumed or quoted on this line item, each contributing to `pricing.parts.estimated_total`. Returned as a JSON:API to-many relationship; expand via `include=parts`. $ref: '#/components/schemas/relationship_objects' technician_stories: description: Technician-authored notes attached to this line item, capturing the diagnostic narrative around the complaint/cause/correction. To-many; expand via `include=technician_stories`. $ref: '#/components/schemas/relationship_objects' assignee: description: The user assigned to perform the operation on this line item. To-one; expand via `include=assignee`. $ref: '#/components/schemas/relationship_object' case: description: The case (estimate) this line item belongs to. To-one; only present when expanded via `include=case` (used by the account-wide `GET /line_items` collection). $ref: '#/components/schemas/relationship_object' required: - attributes - type - id line_item_internal_labels: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - line_item_internal_labels attributes: type: object properties: name: type: string description: Name of line item status minLength: 1 maxLength: 150 required: - attributes - type - id create_line_item: type: object required: - data properties: data: type: object properties: type: type: string attributes: type: object required: - name - opcode properties: name: type: string description: Name of the operation line item maxLength: 510 opcode: type: string description: Unique operation code maxLength: 255 complaint: type: string description: Complaint that originated the operation maxLength: 6000 cause: type: string description: Cause of the operation maxLength: 6000 correction: type: string description: Correction to be made in the operation maxLength: 6000 internal_label: type: string 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 description: Description for the operation maxLength: 6000 price_code: type: string description: Price code for the operation maxLength: 255 approval_group_tag: type: string maxLength: 255 description: Free-form tag used to group line items for approval workflows. example: GROUP-A billing_classification: type: string description: How the operation is billed. Maps to the operation type. Mutually exclusive with `under_warranty`. enum: - billable - warranty - policy - campaign - recall example: warranty under_warranty: type: boolean description: Marks the operation as warranty work. Mutually exclusive with `billing_classification`. example: true labor: type: object properties: time: type: number minimum: 0 description: Labor hours required for the operation. skill_level: type: string maxLength: 32 description: Skill level required for the operation rate: type: number minimum: 0 description: Hourly labor rate for the operation. total: type: number minimum: 0 description: Labor total price for the operation. approval_status: type: object description: Sets the metadata-backed approval status for the line item, attributed to the requesting user and account. required: - name properties: name: type: string enum: - requested - approved - declined - deferred example: approved reason: type: string maxLength: 255 description: Reason associated with the approval decision. reason_description: type: string maxLength: 6000 description: Free-form description of the approval reason. vmrs: type: object description: VMRS coding to persist on the new line item. Each category takes a `code` string; `operator_report` takes a list of `{ code }` entries. Categories omitted here are not set; a category sent with a blank `code` is left empty. properties: work_accomplished: type: object description: Work accomplished (VMRS CK15). properties: code: type: string maxLength: 2 example: A technician_failure: type: object description: Technician-diagnosed failure (VMRS CK18). properties: code: type: string maxLength: 2 example: B1 component: type: object description: Component (VMRS CK33). properties: code: type: string maxLength: 11 example: 023-000-000 position: type: object description: Position (VMRS CK79). properties: code: type: string maxLength: 2 example: '03' operator_report: type: array description: Operator reports (VMRS CK82). items: type: object properties: code: type: string maxLength: 3 example: '001' relationships: type: object properties: assignee: type: object required: - data properties: data: type: object required: - type - id properties: type: type: string enum: - internal_users example: internal_users id: type: string format: uuid description: The uuid of the assignee example: 1ed4f5ce-e426-11eb-a848-4fd53322f5bb required: - type - attributes update_line_item: type: object description: 'PATCH body for a case line item. Note that `assignee` reassignment is not supported on PATCH — set the assignee on create and manage subsequent changes via the relationship endpoint. ' required: - data properties: data: type: object properties: type: type: string id: type: string format: uuid attributes: type: object properties: name: type: string description: Name of the operation line item maxLength: 510 opcode: type: string description: Unique operation code maxLength: 255 complaint: type: string description: Complaint that originated the operation maxLength: 6000 cause: type: string description: Cause of the operation maxLength: 6000 correction: type: string description: Correction to be made in the operation maxLength: 6000 internal_label: type: string 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 description: Description for the operation maxLength: 6000 price_code: type: string description: Price code for the operation maxLength: 255 approval_group_tag: type: string maxLength: 255 description: Free-form tag used to group line items for approval workflows. example: GROUP-A billing_classification: type: string description: How the operation is billed. Maps to the operation type. Mutually exclusive with `under_warranty`. enum: - billable - warranty - policy - campaign - recall example: warranty under_warranty: type: boolean description: Marks the operation as warranty work. Mutually exclusive with `billing_classification`. example: true labor: type: object properties: time: type: number minimum: 0 description: Labor hours required for the operation. skill_level: type: string maxLength: 32 description: Skill level required for the operation rate: type: number minimum: 0 description: Hourly labor rate for the operation. total: type: number minimum: 0 description: Labor total price for the operation. approval_status: type: object description: Sets the metadata-backed approval status for the line item, attributed to the requesting user and account. required: - name properties: name: type: string enum: - requested - approved - declined - deferred example: approved reason: type: string maxLength: 255 description: Reason associated with the approval decision. reason_description: type: string maxLength: 6000 description: Free-form description of the approval reason. vmrs: type: object description: VMRS coding to persist on the line item. Each category takes a `code` string; `operator_report` takes a list of `{ code }` entries. Omitted categories are left unchanged; a category sent with a blank `code` clears it. properties: work_accomplished: type: object description: Work accomplished (VMRS CK15). properties: code: type: string maxLength: 2 example: A technician_failure: type: object description: Technician-diagnosed failure (VMRS CK18). properties: code: type: string maxLength: 2 example: B1 component: type: object description: Component (VMRS CK33). properties: code: type: string maxLength: 11 example: 023-000-000 position: type: object description: Position (VMRS CK79). properties: code: type: string maxLength: 2 example: '03' operator_report: type: array description: Operator reports (VMRS CK82). items: type: object properties: code: type: string maxLength: 3 example: '001' required: - type - attributes - id 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. part: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - line_item_parts attributes: type: object properties: name: type: string description: Part name of materials associated with the item maxLength: 510 quantity: type: string description: Count of specific parts associated with the item maxLength: 11 pattern: ^[0-9]{1,9}\.[0-9]{2}$ quantity_shipped: type: - string - 'null' description: Count of parts that have been shipped for the item, emitted as an integer-formatted string for consistency with quantity quantity_backordered: type: - string - 'null' description: Count of parts that are backordered for the item, emitted as an integer-formatted string for consistency with quantity number: type: string description: Part number of material associated with the item maxLength: 100 unit_price: type: string description: Unit cost of each part associated with the item maxLength: 11 pattern: ^[0-9]{1,7}\.[0-9]{4}$ core: type: object description: Information about the core parts properties: quantity: type: - integer - 'null' description: Count of specific core parts associated with the item price: type: string description: Unit cost of each core part associated with the item maxLength: 11 pattern: ^[0-9]{1,7}\.[0-9]{4}$ relationships: type: object properties: salesperson: $ref: '#/components/schemas/relationship_object' required: - attributes - type - id parts: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/part_properties-data' meta: type: object create_estimate_item_part: type: object required: - data properties: data: type: object properties: type: type: string attributes: type: object required: - name - unit_price properties: name: type: string description: Part name of materials associated with the item maxLength: 510 quantity: type: string description: Count of specific parts associated with the item maxLength: 11 pattern: ^[0-9]{1,9}\.[0-9]{2}$ quantity_shipped: type: string description: Count of parts that have been shipped, as an integer-formatted string. Response bodies emit this field as an integer; the request side accepts the contract's string form. maxLength: 9 pattern: ^[0-9]{1,9}$ quantity_backordered: type: string description: Count of parts that are backordered, as an integer-formatted string. Response bodies emit this field as an integer; the request side accepts the contract's string form. maxLength: 9 pattern: ^[0-9]{1,9}$ number: type: string description: Part number of material associated with the item maxLength: 100 unit_price: type: string description: Unit cost of each part associated with the item maxLength: 11 pattern: ^[0-9]{1,7}\.[0-9]{4}$ core: type: object description: Information about the core parts properties: quantity: type: string description: Quantity for the core charge as a decimal-formatted string. Response bodies emit this field as an integer; the request side accepts the contract's string form. maxLength: 11 pattern: ^-?[0-9]{1,9}(\.[0-9]{1,2})?$ price: type: string description: Unit cost of each core part associated with the item maxLength: 11 pattern: ^[0-9]{1,7}\.[0-9]{4}$ relationships: type: object properties: salesperson: type: object properties: data: type: object properties: type: type: string id: type: string format: uuid required: - type - id required: - type - attributes update_estimate_item_part: type: object required: - data properties: data: type: object properties: type: type: string attributes: type: object properties: name: type: string description: Part name of materials associated with the item maxLength: 510 quantity: type: string description: Count of specific parts associated with the item maxLength: 11 pattern: ^[0-9]{1,9}\.[0-9]{2}$ quantity_shipped: type: string description: Count of parts that have been shipped, as an integer-formatted string. Response bodies emit this field as an integer; the request side accepts the contract's string form. maxLength: 9 pattern: ^[0-9]{1,9}$ quantity_backordered: type: string description: Count of parts that are backordered, as an integer-formatted string. Response bodies emit this field as an integer; the request side accepts the contract's string form. maxLength: 9 pattern: ^[0-9]{1,9}$ number: type: string description: Part number of material associated with the item maxLength: 100 unit_price: type: string description: Unit cost of each part associated with the item maxLength: 11 pattern: ^[0-9]{1,7}\.[0-9]{4}$ core: type: object description: Information about the core parts properties: quantity: type: string description: Quantity for the core charge as a decimal-formatted string. Response bodies emit this field as an integer; the request side accepts the contract's string form. maxLength: 11 pattern: ^-?[0-9]{1,9}(\.[0-9]{1,2})?$ price: type: string description: Unit cost of each core part associated with the item maxLength: 11 pattern: ^[0-9]{1,7}\.[0-9]{4}$ relationships: type: object properties: salesperson: type: object properties: data: type: object properties: type: type: string id: type: string format: uuid required: - type - id required: - type - attributes note: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - notes attributes: type: object properties: message: type: string examples: - This is a note public: type: boolean description: Notes with Public selected can be viewed from the Fleet case perspective. examples: - true created_at: type: string format: date-time description: '`ISO 8601` timestamp' required: - message - public relationships: type: object properties: recipients: $ref: '#/components/schemas/relationship_objects' subject: $ref: '#/components/schemas/relationship_object' sender: $ref: '#/components/schemas/relationship_object' participants: $ref: '#/components/schemas/relationship_objects' required: - recipients required: - attributes - relationships - type - id notes: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/note_properties-data' meta: type: object properties: record-count: type: integer description: Total count across all pages open_case: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - cases attributes: type: object required: - attributes - type - id parent_case: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - cases attributes: type: object properties: complaint: type: string description: Initially reported information from driver or other customer entity example: Broken truck po_number: type: string description: The Purchase Order number example: '1234' auth_number: type: string description: The Authorization number example: '1234' ro_number: type: string description: The Repair Order number example: '1234' reference_number: type: number description: Integer representation of the Case ID inside of the User Interface closed: type: boolean description: Indicates whether the case has been closed. repair_status: type: string description: Status of the repair example: Hold (auth) status: type: string description: Status of the case example: Pick-up invoice: type: object description: The invoice information for the case properties: total: type: number description: The total amount of the invoice number: type: number description: The invoice number invoice_date: type: string description: The date of the invoice example: '2022-04-14T05:23:45Z' event_timestamps: type: object description: All the timestamps related to the case properties: started_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Case was first opened' example: '2022-04-14T05:23:45Z' requested_completion_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the completion time of the case' example: '2022-04-14T05:23:45Z' requested_appointment_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the appointment time' example: '2022-04-14T05:23:45Z' actual_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time spent to repair the asset' example: '2022-04-14T05:23:45Z' estimated_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time estimated to repair the asset' example: '2022-04-14T05:23:45Z' followup_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the next check-in point between Customer / Provider' example: '2022-04-14T05:23:45Z' asset_arrived: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset arrived' example: '2022-04-14T05:23:45Z' asset_checked_in: type: string format: date-time description: '`ISO 8601` timestamp indicating when the check-in was performed' example: '2022-04-14T05:23:45Z' closed_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Case was marked as completed and closed' example: '2022-04-14T05:23:45Z' asset_uptime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset became operational, once again' example: '2022-04-14T05:23:45Z' asset_downtime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset was considered no longer operational' example: '2022-04-14T05:23:45Z' asset_information: type: object description: The asset information when the case was created properties: odometer_value: type: number description: Integer representation about the asset odometer odometer_unit: type: string description: Abbreviation for the asset odometer unit (e.g., `mi` for miles or `km` for kilometers). example: mi unit_number: type: string description: The unit number cargo: type: object properties: unit: type: string description: The unit number loaded: type: boolean description: Indicates whether the cargo is loaded. load: type: number description: The load amount breakdown: type: object description: Information about the breakdown location properties: city: type: string description: City of breakdown example: North Haven location: type: string description: Exact map location of the breakdown example: 41.395022,-72.856326 state: type: string description: State of the breakdown example: CT required: - attributes - type - id participant: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - participants attributes: type: object properties: name: type: string description: Participant name example: Pilot Travel Centers scopes: type: array description: A list of scopes to which the participant belongs. items: type: string description: Name of the scope enum: - customer - billing_customer - shipping_customer - service_provider - originator - external_advisor minItems: 1 example: - service_provider - billing_customer - shipping_customer required: - attributes - type - id participants: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/participant_properties-data' meta: type: object program_type: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - program_types attributes: type: object properties: name: type: string description: Name of the Program Type minLength: 1 maxLength: 255 default: type: boolean description: When set to `true`, the identified `Program Type` is defaultly set on all cases required: - attributes - type - id program_type_by_id: example: data: id: b7390546-9a28-4aed-9e30-1a5afc0ab696 type: program_types attributes: name: Trucks default: true type: object properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - program_types attributes: type: object properties: name: type: string description: Name of the Program Type minLength: 1 maxLength: 255 default: type: boolean description: When set to `true`, the identified `Program Type` is defaultly set on all cases required: - attributes - type - id required: - data program_types: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/program_type' meta: type: object recipient: type: object required: - data properties: data: type: object description: A participant recipient — the addressable identity used to deliver case notifications. The `type` indicates which underlying record provides the contact details (a directly-attached recipient, a registered contact, an ad-hoc contact, or a service-group contact). properties: id: type: string format: uuid type: type: string description: Discriminator for the recipient's underlying source record. enum: - recipients - registered_contacts - contacts - service_group_contacts attributes: type: object properties: name: type: string example: John Doe email: type: string example: support@support.com phone: type: string example: '12345678910' first_name: type: string example: John maxLength: 100 last_name: type: string example: Doe maxLength: 100 communication: type: array items: type: object properties: method_type: type: string example: email enum: - email - mobile value: type: string example: 123-456-7890 maxLength: 128 notify: type: boolean description: Whether to notify via this method example: true relationships: type: object properties: affiliation: allOf: - $ref: '#/components/schemas/relationship_object' - description: The affiliated participant. links: type: object properties: self: type: string required: - attributes - type - id recipients: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/recipient_properties-data' meta: type: object properties: record-count: type: integer description: Total count across all pages registered_asset: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - registered_assets attributes: type: object properties: vin: type: string description: 17 digit vehicle identification number minLength: 17 maxLength: 17 serial_number: type: string description: Production number of the asset minLength: 8 maxLength: 9 unit_number: type: string description: Identification number commonly used on assets residing within a fleet chassis_id: type: string description: Unique identifier consisting of a letter (chassis series) and six digits (chassis number) maxLength: 50 example: N-991562 make: type: string description: Brand of the asset maxLength: 100 model: type: string description: Name of the asset product from the manufacturer maxLength: 100 year: type: integer description: 'Calendar year the asset model was released, minimum: 1970, maximum: two years from now' engine: type: object description: Engine data properties: make: type: - string - 'null' maxLength: 255 description: The make of the engine example: Cummins model: type: - string - 'null' maxLength: 100 description: The model of the engine example: X15 displacement: type: - string - 'null' maxLength: 100 description: The engine size related in liters or cubic inches example: 14.8L serial_number: type: - string - 'null' maxLength: 40 description: The engine serial number example: '79412345' odometer_value: type: - number - 'null' description: Integer representation about the asset odometer example: 125000 odometer_unit: type: - string - 'null' description: ' The unit of measure for odometer value represented in standard or metric (mi = Miles or km = Kilometers)' enum: - mi - km example: mi vmrs: type: object description: VMRS classification of the asset properties: asset_type: type: object description: VMRS Code Key 2 (Equipment Category) properties: code_key: type: string description: The VMRS code key identifier example: '2' code: type: - string - 'null' description: The VMRS code value for the equipment category (e.g. 'D', '1', 'R'). Null when unset on the underlying vehicle. required: - attributes - type - id registered_assets: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/registered_asset_properties-data' meta: type: object repair_status: type: object required: - data properties: data: type: object properties: id: type: string type: type: string enum: - decisiv_case_repair_statuses attributes: type: object properties: name: type: string description: Name of the repair status minLength: 1 maxLength: 150 description: type: string description: Description of the repair status minLength: 0 maxLength: 255 category: type: string description: Category of the repair status inside the case minLength: 0 maxLength: 255 required: - attributes - type - id repair_statuses: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/repair_status_properties-data' meta: type: object properties: record-count: type: integer description: Total count across all pages service_group_customer_asset_create_case: type: object properties: data: type: object properties: type: type: string enum: - cases attributes: type: object properties: auth_number: type: string description: The Authorization number maxLength: 40 po_number: type: string description: The Purchase Order number maxLength: 40 ro_number: type: string description: The Repair Order number maxLength: 40 complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 cause: type: string description: Documentation of the technical failure assessed by the Service Location maxLength: 6000 correction: type: string description: Summary of the actual work accomplished to address the reported issue maxLength: 6000 repair_status: type: string description: ID of the repair status from `GET /service_management/{srm_account_id}/v1/repair_statuses.` example: asset_ready metadata: type: array description: Metadata about the case minItems: 1 maxItems: 50 items: type: object properties: key: type: string description: Metadata key has to start and end with a letter or number, be lower snake case minLength: 1 maxLength: 50 pattern: ^[a-z0-9]+(_{1}[a-z0-9]+)*$ example: some_key value: type: string description: The metadata value must be a string with 500 characters or less minLength: 1 maxLength: 500 example: The value goes here invoice: type: object description: Invoice details properties: total: type: number description: Total amount for the invoice example: 432.5 maximum: 999999.99 number: type: string description: Number of the invoice example: TR3847 maxLength: 255 date: type: string format: date description: Date of the invoice in `ISO 8601` format example: '2025-06-19' tag_number: type: string description: 'Tag #, sometimes called Repair Tag, or Key Tag, is a tag that is attached to the truck keys when a truck is dropped off, so shop personnel can easily find the keys on a tag board and know which case/RO that set of keys/truck belonged to.' maxLength: 40 event_timestamps: type: object description: Timestamp attributes relfecting key events surround the case properties: followup_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the next check-in point between Customer / Provider' example: '2025-10-10T13:30:41Z' asset_uptime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset became operational, once again' example: '2025-04-10T13:00:41Z' asset_downtime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset was considered no longer operational' example: '2025-04-10T10:30:41Z' asset_arrived: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset arrived' example: '2025-04-10T11:30:41Z' asset_checked_in: type: string format: date-time description: '`ISO 8601` timestamp indicating when the check-in was performed' example: '2025-04-10T12:30:41Z' estimated_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time estimated to repair the asset' example: '2025-04-10T13:15:41Z' actual_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time spent to repair the asset' example: '2025-04-10T13:10:41Z' breakdown: type: object description: Information about the location of the Service Provider properties: location: type: string description: Location field accepts City and/or State (eg. Newark or Newark, NJ to be unambiguous) or GPS coordinates (eg. 37.50, -77.33). maxLength: 255 city: type: string description: Breakdown City name maxLength: 255 state: type: string description: Second part of the `ISO 3166-2` code indicating the breakdown State minLength: 1 maxLength: 3 example: NJ country: type: string description: '`ISO 3166-1` alpha-2 code indicating the breakdown Country' minLength: 2 maxLength: 2 example: US vmrs: type: object description: Case-level VMRS codes. Each code is provided as a `{ code_key, code }` object, consistent with `vmrs.asset_type`. properties: reason_for_repair: type: object description: VMRS Code Key 14 — identifies what caused the asset to come in for repair properties: code_key: type: string description: The VMRS code key identifier example: '14' code: type: string description: A valid VMRS Code Key 14 value example: '01' repair_priority: type: object description: VMRS Code Key 16 — priority assigned to the repair properties: code_key: type: string description: The VMRS code key identifier example: '16' code: type: string description: A valid VMRS Code Key 16 value example: '1' repair_site: type: object description: VMRS Code Key 17 — relative location where the repair takes place properties: code_key: type: string description: The VMRS code key identifier example: '17' code: type: string description: A valid VMRS Code Key 17 value example: '1' relationships: type: object properties: assignee: $ref: '#/components/schemas/relationship_object' driver: $ref: '#/components/schemas/relationship_object' primary_contact: $ref: '#/components/schemas/relationship_object' billing_contact: $ref: '#/components/schemas/relationship_object' program_type: $ref: '#/components/schemas/relationship_object' department: allOf: - $ref: '#/components/schemas/relationship_object' - description: 'Optional. Note: `department.data.id` is a dealer-scoped string code (e.g. "SERVICE"), not a UUID. The code must belong to the account and the `Departments` feature must be enabled for the account; otherwise the request fails with a 422 `Identifier not found` error.' shipping_customer: $ref: '#/components/schemas/relationship_object' billing_customer: $ref: '#/components/schemas/relationship_object' customer: type: object readOnly: true description: The case's primary customer (response only; derived from the asset, not settable on create). `data.type` is `customers` / `registered_customers`, or the `service_group_`-prefixed variant in a service group context. required: - data properties: data: type: - object - 'null' required: - id - type properties: id: type: string type: type: string enum: - customers - registered_customers - service_group_customers - service_group_registered_customers required: - type - attributes required: - data create_technician_story: type: object required: - data properties: data: type: object properties: type: type: string enum: - technician_stories attributes: type: object required: - content properties: content: type: string description: The story itself minLength: 1 maxLength: 5000 examples: - This is a story from the technician created_at: type: string description: '`ISO 8601` timestamp indicating when the technician story was created' format: date-time required: - type - attributes technician_story: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - technician_stories attributes: type: object properties: content: type: string description: The story itself minLength: 1 maxLength: 5000 examples: - This is a story from the technician created_at: type: string description: '`ISO 8601` timestamp indicating when the technician story was created' format: date-time required: - attributes - type - id technician_stories: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/technician_story_properties-data' meta: type: object time_task: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - time_tasks attributes: type: object properties: description: type: string description: Description for time task maxLength: 255 event_timestamps: type: object required: - started_at description: All the timestamps related to the time task properties: started_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Time task was initiated' example: '2022-04-14T05:23:45Z' stopped_at: type: string format: date-time description: '`ISO 8601` timestamp indicating the completion time of the Time task' example: '2022-04-14T05:23:45Z' required: - event_timestamps relationships: type: object properties: subject: $ref: '#/components/schemas/relationship_object' employee: $ref: '#/components/schemas/relationship_object' required: - attributes - type - id time_tasks: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/time_task' meta: type: object time_task_update: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string attributes: type: object properties: description: type: string description: Description for time task maxLength: 255 event_timestamps: type: object description: All the timestamps related to the time task properties: stopped_at: type: string format: date-time description: '`ISO 8601` timestamp indicating the completion time of the Time task' example: '2022-04-14T05:23:45Z' required: - type - id - attributes create_time_task: type: object required: - data properties: data: type: object properties: type: type: string enum: - time_tasks attributes: type: object properties: description: type: string description: Description for time task maxLength: 255 event_timestamps: type: object required: - started_at description: All the timestamps related to the time task properties: started_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Time task was initiated' example: '2022-04-14T05:23:45Z' stopped_at: type: string format: date-time description: '`ISO 8601` timestamp indicating the completion time of the Time task' example: '2022-04-14T05:23:45Z' required: - event_timestamps relationships: type: object properties: subject: $ref: '#/components/schemas/relationship_object' employee: $ref: '#/components/schemas/relationship_object' required: - attributes - type additional_charge_category: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - additional_charge_categories attributes: type: object required: - name - sales_tax_rate properties: name: type: string description: The name of the additional charge category maxLength: 255 example: Shop Supplies sales_tax_rate: type: string description: The sales tax rate as a formatted string (e.g., "8.25") pattern: ^\d+\.\d{2}$ example: '8.25' created_at: type: string format: date-time updated_at: type: string format: date-time links: type: object properties: self: type: string required: - id - type - attributes additional_charge_categories: type: object required: - data properties: data: type: array items: type: object required: - id - type - attributes properties: id: type: string format: uuid type: type: string enum: - additional_charge_categories attributes: type: object required: - name - sales_tax_rate properties: name: type: string description: The name of the additional charge category maxLength: 255 example: Shop Supplies sales_tax_rate: type: string description: The sales tax rate as a formatted string (e.g., "8.25") pattern: ^\d+\.\d{2}$ example: '8.25' created_at: type: string format: date-time updated_at: type: string format: date-time links: type: object properties: self: type: string meta: type: object properties: record-count: type: integer description: Total count across all pages additional_charge: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - line_item_additional_charges attributes: type: object properties: code: type: string description: The code for the additional charge maxLength: 20 example: TAX-123 description: type: string description: The description for the additional charge maxLength: 255 example: Required state tax for the service pricing: type: object description: Pricing information for the additional charge properties: amount: type: string description: The amount for the additional charge, formatted as a decimal with two decimal places pattern: ^-?\d{1,7}\.\d{2}$ example: '8.25' sales_tax_amount: type: string description: The amount for the sales tax in the additional charge, formatted as a decimal with two decimal places pattern: ^-?\d{1,7}\.\d{2}$ example: '1.25' total_amount: type: string description: The amount and the sales tax added together for the additional charge, formatted as a decimal with two decimal places pattern: ^-?\d{1,7}\.\d{2}$ example: '9.50' created_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the additional charge was created' updated_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the additional charge was updated' required: - code - description - pricing relationships: type: object properties: category: $ref: '#/components/schemas/relationship_object' required: - attributes - type - id create_additional_charge: type: object required: - data properties: data: type: object properties: type: type: string attributes: type: object required: - description - pricing properties: code: type: string description: The code for the additional charge maxLength: 20 example: TAX-123 description: type: string description: The description for the additional charge maxLength: 255 example: Required state tax for the service pricing: type: object description: Pricing information for the additional charge properties: amount: type: string description: The amount for the additional charge, formatted as a decimal with up to two decimal places. pattern: ^-?\d{1,7}(\.\d{1,2})?$ example: '8.25' relationships: type: object required: - category properties: category: type: object description: The additional charge category to associate with this charge. required: - data properties: data: type: object required: - type - id properties: type: type: string enum: - additional_charge_categories id: type: string format: uuid description: The UUID of the additional charge category. example: 5f3a7d6c-8b1e-4f2a-9c4d-1e5b8a7f2c3d required: - type - attributes - relationships update_additional_charge: type: object required: - data properties: data: type: object properties: type: type: string id: type: string format: uuid attributes: type: object required: - description - pricing properties: code: type: string description: The code for the additional charge maxLength: 20 example: TAX-123 description: type: string description: The description for the additional charge maxLength: 255 example: Required state tax for the service pricing: type: object description: Pricing information for the additional charge properties: amount: type: string description: The amount for the additional charge, formatted as a decimal with two decimal places pattern: ^-?\d{1,7}\.\d{2}$ example: '8.25' relationships: type: object properties: category: type: object description: The additional charge category id properties: type: type: string example: additional_charge_categories id: type: string example: The UUID of the additional charge category required: - type - attributes - id - relationships additional_charges: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/additional_charge_properties-data' meta: type: object update_relationship_additional_charges: type: object properties: data: type: object properties: type: type: string id: type: string format: uuid required: - type - id required: - data service_history: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - in_network_cases attributes: type: object properties: reference_number: type: integer description: Integer representation of the Case ID inside of the User Interface complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 cause: type: string description: Documentation of the technical failure assessed by the Service Location correction: type: string description: Summary of the actual work accomplished to address the reported issue repair_status: type: string description: Name of the repair status event_timestamps: type: object description: Timestamp attributes relfecting key events surround the case properties: closed_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Case was marked as completed and closed' example: '2025-06-19T12:41:31Z' started_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Case was first opened' example: '2025-06-19T11:11:31Z' relationships: type: object properties: service_provider: $ref: '#/components/schemas/relationship_object' required: - attributes - type - id service_histories: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/service_history' meta: type: object included: type: array items: anyOf: - $ref: '#/components/schemas/service_provider' service_network: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - service_networks attributes: type: object properties: name: type: string description: Name of the Service Network minLength: 1 maxLength: 150 required: - attributes - type - id service_networks: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/service_network_properties-data' meta: type: object properties: record-count: type: integer description: Total count across all pages service_provider: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - service_providers attributes: type: object properties: name: type: string address1: type: string address2: type: string city: type: string state: type: string postal_code: type: string country: type: string email: type: string format: email phone: type: string fax: type: string location: type: object properties: latitude: type: number longitude: type: number distance_from_geolocation: type: number description: Present only when filtering by `geolocation.point`. relationships: type: object properties: service_networks: $ref: '#/components/schemas/relationship_objects' required: - attributes - type - id service_providers: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/service_provider_properties-data' meta: type: object properties: record-count: type: integer description: Total count across all pages create_sublet_association: type: object required: - data properties: data: type: object properties: type: type: string enum: - sublet_associations attributes: type: object properties: reason: type: string description: Reason for create the association examples: - Text description of the reason for the association relationships: type: object properties: parent_case: $ref: '#/components/schemas/relationship_object' sublet_case: $ref: '#/components/schemas/relationship_object' required: - parent_case - sublet_case required: - type - attributes - relationships salesperson_change: type: object required: - data properties: data: type: object properties: type: type: string id: type: string salesperson_remove: type: object required: - data properties: data: type: object properties: type: type: string id: type: string salesperson: type: object required: - data properties: data: type: object properties: type: type: string id: type: string skill_level: type: object required: - data properties: data: type: object properties: id: type: string description: Customer-defined skill level identifier minLength: 1 type: type: string enum: - skill_levels attributes: type: object properties: description: type: string description: Description for skill level maxLength: 255 pricing: type: object description: Pricing details for the skill level properties: labor: type: string pattern: ^\d+\.\d{2}$ description: Labor value for the skill level example: '50.00' required: - labor required: - description - pricing links: type: object properties: self: type: string required: - attributes - type - id skill_levels: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/skill_level_properties-data' meta: type: object properties: record-count: type: integer description: Total count across all pages sublet_association: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - sublet_associations attributes: type: object properties: reason: type: string description: Reason for create the association examples: - Text description of the reason for the association relationships: type: object properties: parent_case: $ref: '#/components/schemas/relationship_object' sublet_case: $ref: '#/components/schemas/relationship_object' required: - sublet_case - parent_case required: - attributes - relationships - type - id sublet_associations: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/sublet_association_properties-data' meta: type: object included: type: array items: anyOf: - $ref: '#/components/schemas/parent_case' - $ref: '#/components/schemas/sublet_case' sublet_case: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - sublet_cases attributes: type: object properties: complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 po_number: type: string description: Purchase Order number maxLength: 40 auth_number: type: string description: Authorization number maxLength: 40 ro_number: type: string description: The Repair Order number maxLength: 40 cause: type: string description: Documentation of the technical failure assessed by the Service Location reference_number: type: integer description: Integer representation of the sublet request ID inside of the User Interface correction: type: string description: Summary of the actual work accomplished to address the reported issue repair_status: type: string description: Status of the repair example: Hold (auth) pricing: type: object description: Total price properties: parts_total: type: string format: decimal description: Total price for operation parts labor_total: type: string format: decimal description: Total price for operation labor taxes_total: type: string format: decimal description: Total price for operation taxes total: type: string format: decimal description: Total price invoice: type: object description: Invoice details properties: total: type: number description: Total amount for the invoice example: 432.5 number: type: string description: Number of the invoice example: TR3847 invoice_date: type: string format: date description: Date of the invoice in `ISO 8601` format example: '2025-04-10T13:30:41Z' event_timestamps: type: object description: All the timestamps related to the sublet request properties: actual_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time spent to repair the asset' example: '2025-04-10T13:10:41Z' closed_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the SubletCase was marked as completed and closed' example: '2025-04-10T13:30:41Z' estimated_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time estimated to repair the asset' example: '2025-04-10T13:15:41Z' started_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the SubletCase started' example: '2025-04-10T12:00:41Z' created_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the attachment was created' example: 2025-04-10 12:30:41 UTC updated_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the attachment was updated' example: 2025-04-10 13:21:41 UTC relationships: type: object properties: parent_case: $ref: '#/components/schemas/relationship_object' service_provider: $ref: '#/components/schemas/relationship_object' required: - attributes - type - id sublet_cases: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/sublet_case' meta: type: object sublet_case_line_items: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/sublet_case_line_item_properties-data' meta: type: object properties: record-count: type: integer description: Total count across all pages sublet_request: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - sublet_requests attributes: type: object properties: complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 status: type: string enum: - pending - canceled - declined - accepted description: Status of the sublet request maxLength: 255 po_number: type: string description: Purchase Order number maxLength: 40 auth_number: type: string description: Authorization number maxLength: 40 note: type: string description: The notes for the sublet request reference_number: type: integer description: Integer representation of the sublet request ID inside of the User Interface breakdown: type: object description: Information about the breakdown location properties: city: type: string description: City of breakdown maxLength: 255 examples: - North Haven location: type: string description: Exact map location of the breakdown maxLength: 255 examples: - 41.395022,-72.856326 state: type: string description: Second part of the `ISO 3166-2` code indicating the breakdown State minLength: 1 maxLength: 3 examples: - NJ event_timestamps: type: object description: All the timestamps related to the sublet request properties: requested_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the sublet was requested' requested_appointment_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the appointment time' requested_completion_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the completion time of the case' asset_downtime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset was considered no longer operational' created_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the sublet request was created' updated_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the sublet request was last updated' primary_contact: type: object description: The primary contact on the sublet request. properties: first_name: type: string last_name: type: string email: type: string relation: type: string description: Relationship of the contact to the service request (e.g. Driver, Fleet Manager). phone: type: object properties: mobile: type: string work: type: string driver: type: object description: The driver contact on the sublet request. properties: first_name: type: string last_name: type: string email: type: string phone: type: object properties: mobile: type: string work: type: string required: - complaint relationships: type: object properties: service_provider: $ref: '#/components/schemas/relationship_object' parent_case: $ref: '#/components/schemas/relationship_object' sublet_case: $ref: '#/components/schemas/relationship_object' required: - service_provider - parent_case required: - attributes - relationships - type - id sublet_request_canceled: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - sublet_requests attributes: type: object properties: complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 status: type: string enum: - pending - canceled - declined - accepted description: Status of the sublet request maxLength: 255 po_number: type: string description: Purchase Order number maxLength: 40 auth_number: type: string description: Authorization number maxLength: 40 note: type: string description: The notes for the sublet request reference_number: type: integer description: Integer representation of the sublet request ID inside of the User Interface breakdown: type: object description: Information about the breakdown location properties: city: type: string description: City of breakdown example: North Haven maxLength: 255 location: type: string description: Exact map location of the breakdown example: 41.395022,-72.856326 maxLength: 255 state: type: string description: Second part of the `ISO 3166-2` code indicating the breakdown State minLength: 1 maxLength: 3 example: NJ event_timestamps: type: object description: All the timestamps related to the sublet request properties: requested_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the sublet was requested' requested_appointment_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the appointment time' requested_completion_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the completion time of the case' asset_downtime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset was considered no longer operational' required: - complaint relationships: type: object properties: service_provider: $ref: '#/components/schemas/relationship_object' parent_case: $ref: '#/components/schemas/relationship_object' sublet_case: $ref: '#/components/schemas/relationship_object' required: - service_provider - parent_case - sublet_case required: - attributes - relationships - type - id sublet_requests: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/sublet_request_properties-data' meta: type: object included: type: array items: anyOf: - $ref: '#/components/schemas/service_provider' - $ref: '#/components/schemas/parent_case' - $ref: '#/components/schemas/sublet_case' update_sublet_request: type: object required: - data properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - sublet_requests attributes: type: object required: - attributes - type - id create_note: type: object required: - data properties: data: type: object required: - type - attributes properties: type: type: string enum: - notes attributes: type: object properties: message: type: string description: The message itself. public: type: boolean description: 'Notes with `public: true` are viewable by both the Fleet and Service Provider; `public: false` keeps the note private to the sender''s side.' required: - message - public relationships: type: object properties: recipients: allOf: - $ref: '#/components/schemas/relationship_objects' - description: One or more targets for the note. Each item's `type` must be one of `recipients`, `contacts`, `registered_contacts`, or `participants` — all items in a single request must resolve to the same kind (mixing recipient-style types with `participants` will be rejected). srm_account: $ref: '#/components/schemas/relationship_object' required: - recipients update_salesperson: type: object required: - data properties: data: type: object description: Identity replacement payload. The salesperson update endpoint accepts only `type` and `id` — it reassigns which internal user is the salesperson for the case. Sending `attributes` (even `{}`) is rejected with `decisiv:request_attributes:005`. required: - id - type properties: type: type: string enum: - internal_users id: type: string format: uuid vmrs_asset_type: type: object required: - data properties: data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 2 `code` value (natural key). example: '01' type: type: string enum: - decisiv_vmrs_asset_types attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"2"` for asset type lookups. example: '2' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 2 this is `"Equipment Category"`. ' example: Equipment Category code: type: string maxLength: 2 description: The VMRS Code Key 2 code (e.g. `"01"`, `"D"`). example: '01' description: type: string description: Human-readable name for the asset type / equipment category. example: Truck vmrs_asset_types: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/vmrs_asset_type_properties-data' meta: type: object properties: record-count: type: integer description: Total number of VMRS Asset Type records across all pages. example: 78 vmrs_reason_for_repair: type: object required: - data properties: data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 14 `code` value (natural key). example: '01' type: type: string enum: - decisiv_vmrs_reasons_for_repair attributes: type: object required: - code_key - code_key_name - code - description - category properties: code_key: type: string description: VMRS Code Key number. Always `"14"` for reason-for-repair lookups. example: '14' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 14 this is `"Reason for Repair"`. ' example: Reason for Repair code: type: string maxLength: 2 description: The VMRS Code Key 14 code (e.g. `"01"`, `"70"`). example: '01' description: type: string description: Human-readable name for the reason for repair. example: Breakdown category: type: string description: 'The VMRS Code Key 14 `repair_type` grouping the reason belongs to (e.g. `"Maintenance"`, `"Outside Influence"`, `"Management Decision"`). ' example: Maintenance vmrs_reasons_for_repair: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/vmrs_reason_for_repair_properties-data' meta: type: object properties: record-count: type: integer description: Total number of VMRS Reason for Repair records across all pages. example: 60 vmrs_repair_priority: type: object required: - data properties: data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 16 `code` value (natural key). example: '1' type: type: string enum: - decisiv_vmrs_repair_priorities attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"16"` for repair-priority lookups. example: '16' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 16 this is `"Repair Priority Class"`. ' example: Repair Priority Class code: type: string maxLength: 1 description: The VMRS Code Key 16 code (e.g. `"1"`, `"2"`, `"3"`). example: '1' description: type: string description: Human-readable name for the repair priority class. example: Scheduled vmrs_repair_priorities: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/vmrs_repair_priority_properties-data' meta: type: object properties: record-count: type: integer description: Total number of VMRS Repair Priority records across all pages. example: 3 vmrs_repair_site: type: object required: - data properties: data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 17 `code` value (natural key). example: '1' type: type: string enum: - decisiv_vmrs_repair_sites attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"17"` for repair-site lookups. example: '17' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 17 this is `"Repair Site"`. ' example: Repair Site code: type: string maxLength: 1 description: The VMRS Code Key 17 code (e.g. `"1"`, `"2"`, `"3"`). example: '1' description: type: string description: Human-readable name for the repair site. example: Facility (Fleet) vmrs_repair_sites: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/vmrs_repair_site_properties-data' meta: type: object properties: record-count: type: integer description: Total number of VMRS Repair Site records across all pages. example: 3 vmrs_component: type: object required: - data properties: data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 33 `code` value (natural key). example: 001-000-000 type: type: string enum: - decisiv_vmrs_components attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"33"` for component lookups. example: '33' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 33 this is `"Component"`. ' example: Component code: type: string maxLength: 11 description: The VMRS Code Key 33 code (e.g. `"001-000-000"`). example: 001-000-000 description: type: string description: Human-readable name for the component. example: Air Conditioning, Heating & Ventilating System vmrs_components: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/vmrs_component_properties-data' meta: type: object properties: record-count: type: integer description: Total number of VMRS Component records across all pages. example: 2 vmrs_operator_report: type: object required: - data properties: data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 82 `code` value (natural key). example: '001' type: type: string enum: - decisiv_vmrs_operator_reports attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"82"` for operator report lookups. example: '82' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 82 this is `"Operator Vehicle/Equipment Condition Report"`. ' example: Operator Vehicle/Equipment Condition Report code: type: string maxLength: 3 description: The VMRS Code Key 82 code (e.g. `"001"`, `"190"`). example: '001' description: type: string description: Human-readable name for the operator report condition. example: Aim/Alignment (Out of Adjustment) vmrs_operator_reports: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/vmrs_operator_report_properties-data' meta: type: object properties: record-count: type: integer description: Total number of VMRS Operator Report records across all pages. example: 136 vmrs_position: type: object required: - data properties: data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 79 `code` value (natural key). example: '01' type: type: string enum: - decisiv_vmrs_positions attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"79"` for position lookups. example: '79' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 79 this is `"Position"`. ' example: Position code: type: string maxLength: 2 description: The VMRS Code Key 79 code (e.g. `"00"`, `"01"`). example: '01' description: type: string description: Human-readable name for the position. example: Front vmrs_positions: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/vmrs_position_properties-data' meta: type: object properties: record-count: type: integer description: Total number of VMRS Position records across all pages. example: 162 vmrs_work_accomplished: type: object required: - data properties: data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 15 `code` value (natural key). example: '01' type: type: string enum: - decisiv_vmrs_work_accomplished attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"15"` for work accomplished lookups. example: '15' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 15 this is `"Work Accomplished"`. ' example: Work Accomplished code: type: string maxLength: 2 description: The VMRS Code Key 15 code (e.g. `"01"`, `"02"`). example: '01' description: type: string description: Human-readable short label for the work accomplished. example: Adjust vmrs_work_accomplished_list: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/vmrs_work_accomplished_properties-data' meta: type: object properties: record-count: type: integer description: Total number of VMRS Work Accomplished records across all pages. example: 68 vmrs_technician_part_failure_code: type: object required: - data properties: data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 18 `code` value (natural key). example: '01' type: type: string enum: - decisiv_vmrs_technician_part_failure_codes attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"18"` for technician part failure code lookups. example: '18' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 18 this is `"Technician Part Failure Code"`. ' example: Technician Part Failure Code code: type: string maxLength: 2 description: The VMRS Code Key 18 code (e.g. `"00"`, `"01"`). example: '01' description: type: string description: Human-readable name for the technician part failure code. example: Battered, Hammered vmrs_technician_part_failure_codes: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/vmrs_technician_part_failure_code_properties-data' meta: type: object properties: record-count: type: integer description: Total number of VMRS Technician Part Failure Code records across all pages. example: 109 data: type: object properties: id: type: string format: uuid type: type: string enum: - cases attributes: type: object properties: auth_number: type: string description: The Authorization number maxLength: 40 po_number: type: string description: The Purchase Order number maxLength: 40 ro_number: type: string description: The Repair Order number maxLength: 40 reference_number: type: integer description: Integer representation of the Case ID as shown in the UI complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 cause: type: string description: Documentation of the technical failure assessed by the Service Location maxLength: 6000 correction: type: string description: Summary of the actual work accomplished to address the reported issue maxLength: 6000 repair_status: type: string description: ID of the repair status from `GET /service_management/{srm_account_id}/v1/repair_statuses.` examples: - appointment tag_number: type: string description: 'Tag #, sometimes called Repair Tag, or Key Tag, is a tag that is attached to the truck keys when a truck is dropped off, so shop personnel can easily find the keys on a tag board and know which case/RO that set of keys/truck belonged to.' maxLength: 40 asset_information: type: object description: Information about the asset properties: odometer_value: type: integer description: Odometer reading of the asset odometer_unit: type: string description: 'Abbreviation for the odometer unit: `mi` for miles or `km` for kilometers' enum: - mi - km engine_hours: type: - integer - 'null' description: Engine hours of the asset stand_by_hours: type: - integer - 'null' description: Stand-by hours of the asset switch_on_hours: type: - integer - 'null' description: Switch-on hours of the asset event_timestamps: type: object description: Timestamp attributes reflecting key events surrounding the case required: - started_at properties: requested_completion_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the completion time requested by the Customer' examples: - '2025-10-10T13:30:41Z' requested_appointment_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the appointment time requested by the Customer' examples: - '2025-10-10T13:30:41Z' followup_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the next check-in point between Customer / Provider' examples: - '2025-10-10T13:30:41Z' closed_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Case was marked as completed and closed' examples: - '2025-04-10T13:30:41Z' asset_uptime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset became operational, once again' examples: - '2025-04-10T13:00:41Z' actual_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time spent to repair the asset' examples: - '2025-04-10T13:10:41Z' estimated_time_to_repair: type: string format: date-time description: '`ISO 8601` timestamp indicating the time estimated to repair the asset' examples: - '2025-04-10T13:15:41Z' asset_checked_in: type: string format: date-time description: '`ISO 8601` timestamp indicating when the check-in was performed' examples: - '2025-04-10T12:30:41Z' started_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Case was first opened' examples: - '2025-04-10T12:00:41Z' updated_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Case was last updated. Pairs with the `filter[updated_at:gte]` / `filter[updated_at:lte]` filters for incremental sync.' examples: - '2025-04-10T13:20:41Z' asset_arrived: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset arrived' examples: - '2025-04-10T11:30:41Z' asset_downtime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset was considered no longer operational' examples: - '2025-04-10T10:30:41Z' asset_departed_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset departed the service location' examples: - '2025-04-10T13:30:41Z' invoice: type: object description: Invoice details properties: total: type: number description: Total amount for the invoice maximum: 999999.99 examples: - 432.5 number: type: string description: Number of the invoice maxLength: 255 examples: - TR3847 date: type: string format: date description: Date of the invoice in `ISO 8601` date format (not datetime). examples: - '2025-06-19' pricing: type: object description: Financial totals for the case, sourced directly from the Estimate properties: parts_total: type: number description: Total cost of parts examples: - 432.5 labor_total: type: number description: Total cost of labor examples: - 250 core_total: type: number description: Total cost of cores examples: - 75 tax: type: number description: Total tax amount examples: - 32.18 haz_waste: type: number description: Total hazardous waste charge examples: - 15 vmrs: type: object description: 'Vehicle Maintenance Reporting Standards (VMRS) coding for the case, exposing nine VMRS code categories: asset type (CK02), repair priority (CK16), repair site (CK17), reason for repair (CK14), operator report (CK82), component code (CK33), position (CK79), technician failure (CK18), and work accomplished (CK15). Each category outside `asset_type` is null when no code is assigned; `asset_type` is always present.' properties: asset_type: type: object description: Identifies the asset type. Useful for non-VIN assets. properties: code_key: type: - string - 'null' 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). examples: - '2' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - R repair_priority: type: - object - 'null' description: Identifies the priority assigned to the repair. properties: code_key: type: - string - 'null' 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). examples: - '16' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - '1' repair_site: type: - object - 'null' description: Identifies the relative location where the repair is taking place. properties: code_key: type: - string - 'null' 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). examples: - '17' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - '7' reason_for_repair: type: - object - 'null' description: Identifies what caused a piece of equipment to come in for repair. properties: code_key: type: - string - 'null' 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). examples: - '14' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - '01' operator_report: type: - array - 'null' description: Identifies what the operator reports as being the issue. items: type: object properties: code_key: type: - string - 'null' 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). examples: - '82' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - '001' component: type: - object - 'null' description: Provides universal identifiers or generic terms for parts. properties: code_key: type: - string - 'null' 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). examples: - '33' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - 023-000-000 position: type: - object - 'null' description: Identifies position based on industry-accepted conventions. properties: code_key: type: - string - 'null' 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). examples: - '79' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - '03' technician_failure: type: - object - 'null' description: Identifies the technical failure diagnosed by the mechanic. properties: code_key: type: - string - 'null' 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). examples: - '18' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - B1 work_accomplished: type: - object - 'null' description: Identifies the work accomplished by the mechanic. properties: code_key: type: - string - 'null' 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). examples: - '15' code: type: - string - 'null' description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. examples: - A breakdown: type: object description: Information about the location of the Service Provider properties: location: type: string description: Location field accepts City and/or State (eg. Newark or Newark, NJ to be unambiguous) or GPS coordinates (eg. 37.50, -77.33). maxLength: 255 city: type: string description: Breakdown City name maxLength: 255 state: type: string description: Second part of the `ISO 3166-2` code indicating the breakdown State minLength: 1 maxLength: 3 examples: - NJ metadata: type: object additionalProperties: true required: - reference_number relationships: type: object properties: customer_asset: $ref: '#/components/schemas/relationship_object' customer: type: object description: The case's primary customer. `data.type` is `customers` for local customers or `registered_customers` for registered (fleet) customers. required: - data properties: data: type: - object - 'null' required: - id - type properties: id: type: string type: type: string enum: - customers - registered_customers billing_contact: $ref: '#/components/schemas/relationship_object' billing_customer: $ref: '#/components/schemas/relationship_object' shipping_customer: $ref: '#/components/schemas/relationship_object' service_provider: $ref: '#/components/schemas/relationship_object' program_type: $ref: '#/components/schemas/relationship_object' driver: $ref: '#/components/schemas/relationship_object' primary_contact: $ref: '#/components/schemas/relationship_object' assignee: $ref: '#/components/schemas/relationship_object' department: allOf: - $ref: '#/components/schemas/relationship_object' - description: 'Note: `department.data.id` is a dealer-scoped string code (e.g. "SERVICE"), not a UUID.' required: - customer_asset links: type: object properties: self: type: string description: URL of the case resource required: - attributes - relationships - type - id properties-data: type: object properties: id: type: string format: uuid type: type: string attributes: type: object properties: description: type: string maxLength: 1024 description: The description of the file filename: type: string maxLength: 256 description: The name of the file example: example.pdf size: type: integer maximum: 10485760 description: The file size in bytes (max allowed is 10 megabytes) example: 2684355 format: type: string description: The file content type example: application/pdf download_url: type: string description: A temporary URL to download the file example: https://decisiv.net/shared/downloads/7746422/get_authed?filename=example.pdf&key=184bddd6479a3e3d created_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the attachment was created' example: '2023-10-01T12:00:00Z' updated_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the attachment was updated' example: '2023-10-01T12:00:00Z' required: - filename - size - format - download_url - created_at - updated_at relationships: type: object properties: publisher: $ref: '#/components/schemas/relationship_object' subject: $ref: '#/components/schemas/relationship_object' recipients: $ref: '#/components/schemas/relationship_object' required: - attributes - type - id line_item_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: type: string description: The VMRS code value selected within the parent `code_key`; meaning is scoped to that category. example: A relationships: type: object properties: parts: description: Parts consumed or quoted on this line item, each contributing to `pricing.parts.estimated_total`. Returned as a JSON:API to-many relationship; expand via `include=parts`. $ref: '#/components/schemas/relationship_objects' technician_stories: description: Technician-authored notes attached to this line item, capturing the diagnostic narrative around the complaint/cause/correction. To-many; expand via `include=technician_stories`. $ref: '#/components/schemas/relationship_objects' assignee: description: The user assigned to perform the operation on this line item. To-one; expand via `include=assignee`. $ref: '#/components/schemas/relationship_object' case: description: The case (estimate) this line item belongs to. To-one; only present when expanded via `include=case` (used by the account-wide `GET /line_items` collection). $ref: '#/components/schemas/relationship_object' required: - attributes - type - id additional_charge_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - line_item_additional_charges attributes: type: object properties: code: type: string description: The code for the additional charge maxLength: 20 example: TAX-123 description: type: string description: The description for the additional charge maxLength: 255 example: Required state tax for the service pricing: type: object description: Pricing information for the additional charge properties: amount: type: string description: The amount for the additional charge, formatted as a decimal with two decimal places pattern: ^-?\d{1,7}\.\d{2}$ example: '8.25' sales_tax_amount: type: string description: The amount for the sales tax in the additional charge, formatted as a decimal with two decimal places pattern: ^-?\d{1,7}\.\d{2}$ example: '1.25' total_amount: type: string description: The amount and the sales tax added together for the additional charge, formatted as a decimal with two decimal places pattern: ^-?\d{1,7}\.\d{2}$ example: '9.50' created_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the additional charge was created' updated_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the additional charge was updated' required: - code - description - pricing relationships: type: object properties: category: $ref: '#/components/schemas/relationship_object' required: - attributes - type - id part_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - line_item_parts attributes: type: object properties: name: type: string description: Part name of materials associated with the item maxLength: 510 quantity: type: string description: Count of specific parts associated with the item maxLength: 11 pattern: ^[0-9]{1,9}\.[0-9]{2}$ quantity_shipped: type: - string - 'null' description: Count of parts that have been shipped for the item, emitted as an integer-formatted string for consistency with quantity quantity_backordered: type: - string - 'null' description: Count of parts that are backordered for the item, emitted as an integer-formatted string for consistency with quantity number: type: string description: Part number of material associated with the item maxLength: 100 unit_price: type: string description: Unit cost of each part associated with the item maxLength: 11 pattern: ^[0-9]{1,7}\.[0-9]{4}$ core: type: object description: Information about the core parts properties: quantity: type: - integer - 'null' description: Count of specific core parts associated with the item price: type: string description: Unit cost of each core part associated with the item maxLength: 11 pattern: ^[0-9]{1,7}\.[0-9]{4}$ relationships: type: object properties: salesperson: $ref: '#/components/schemas/relationship_object' required: - attributes - type - id note_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - notes attributes: type: object properties: message: type: string examples: - This is a note public: type: boolean description: Notes with Public selected can be viewed from the Fleet case perspective. examples: - true created_at: type: string format: date-time description: '`ISO 8601` timestamp' required: - message - public relationships: type: object properties: recipients: $ref: '#/components/schemas/relationship_objects' subject: $ref: '#/components/schemas/relationship_object' sender: $ref: '#/components/schemas/relationship_object' participants: $ref: '#/components/schemas/relationship_objects' required: - recipients required: - attributes - relationships - type - id participant_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - participants attributes: type: object properties: name: type: string description: Participant name example: Pilot Travel Centers scopes: type: array description: A list of scopes to which the participant belongs. items: type: string description: Name of the scope enum: - customer - billing_customer - shipping_customer - service_provider - originator - external_advisor minItems: 1 example: - service_provider - billing_customer - shipping_customer required: - attributes - type - id recipient_properties-data: type: object description: A participant recipient — the addressable identity used to deliver case notifications. The `type` indicates which underlying record provides the contact details (a directly-attached recipient, a registered contact, an ad-hoc contact, or a service-group contact). properties: id: type: string format: uuid type: type: string description: Discriminator for the recipient's underlying source record. enum: - recipients - registered_contacts - contacts - service_group_contacts attributes: type: object properties: name: type: string example: John Doe email: type: string example: support@support.com phone: type: string example: '12345678910' first_name: type: string example: John maxLength: 100 last_name: type: string example: Doe maxLength: 100 communication: type: array items: type: object properties: method_type: type: string example: email enum: - email - mobile value: type: string example: 123-456-7890 maxLength: 128 notify: type: boolean description: Whether to notify via this method example: true relationships: type: object properties: affiliation: allOf: - $ref: '#/components/schemas/relationship_object' - description: The affiliated participant. links: type: object properties: self: type: string required: - attributes - type - id customer_asset_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - customer_assets - service_group_customer_assets attributes: type: object properties: vin: type: string description: 17 digit vehicle identification number minLength: 17 maxLength: 17 serial_number: type: string description: Production number of the asset minLength: 8 maxLength: 9 chassis_id: type: string description: Unique identifier consisting of a letter (chassis series) and six digits (chassis number) maxLength: 50 example: N-991562 unit_number: type: string description: Identification number commonly used on assets residing within a fleet make: type: string description: Brand of the asset maxLength: 100 model: type: string description: Name of the asset product from the manufacturer maxLength: 100 year: type: integer description: 'Calendar year the asset model was released, minimum: 1970, maximum: two years from now' service_status: type: string description: "Current service eligibility for this customer asset.\n\n- `active` — service relationship is currently\ \ in force between\n the Service Provider account and the customer on the asset.\n- `inactive` — no longer\ \ the current association; superseded by\n a newer record for the same asset, but remains serviceable.\n\ \ Creating a case against it flips the asset back to `active`.\n- `archived` — the underlying registered\ \ asset has been\n deactivated by its Registered Asset Management account holder;\n the asset is reference-only\ \ and cannot be used to create new\n cases.\n" enum: - active - inactive - archived engine: type: object description: Engine data properties: make: type: - string - 'null' maxLength: 255 description: The make of the engine example: Cummins model: type: - string - 'null' maxLength: 100 description: The model of the engine example: X15 displacement: type: - string - 'null' maxLength: 100 description: The engine size related in liters or cubic inches example: 14.8L serial_number: type: - string - 'null' maxLength: 40 description: The engine serial number example: '79412345' odometer_value: type: - number - 'null' description: Integer representation about the asset odometer example: 125000 odometer_unit: type: - string - 'null' description: ' The unit of measure for odometer value represented in standard or metric (mi = Miles or km = Kilometers)' enum: - mi - km example: mi vmrs: type: object description: VMRS classification of the asset. properties: asset_type: type: object description: VMRS Code Key 2 (Equipment Category). properties: code_key: type: string description: The VMRS code key identifier. Must be `"2"` when supplied on write. example: '2' code: type: string description: The VMRS Code Key 2 code (e.g. `"D"`, `"1"`, `"R"`). Must match an active value from `GET /vmrs/asset_types`. required: - service_status relationships: type: object properties: customer: type: object required: - data properties: data: type: - object - 'null' required: - id - type properties: id: type: string type: type: string enum: - customers - registered_customers - service_group_customers - service_group_registered_customers srm_verified_asset: $ref: '#/components/schemas/relationship_object' required: - customer links: type: object properties: self: type: string source_application: type: string required: - attributes - relationships - type - id error_response_with_header: type: object properties: status: type: string title: type: string detail: type: - string - 'null' code: type: - string - 'null' source: type: object properties: parameter: type: - string - 'null' pointer: type: - string - 'null' header: type: - string - 'null' description: The request header the error refers to (e.g. X-DECISIV-IDEMPOTENCY-KEY). links: type: object description: Links related to this error (e.g. documentation reference). additionalProperties: type: string format: uri required: - status - title errors_response_with_header: type: object properties: errors: type: array items: $ref: '#/components/schemas/error_response_with_header' required: - errors customer_request_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - customer_requests attributes: type: object properties: complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 examples: - Broken truck po_number: type: string description: PO number maxLength: 40 examples: - '1234' auth_number: type: string description: The auth number maxLength: 40 examples: - '1234' note: type: string description: The notes for the customer request examples: - Initial note reference_number: type: number description: Integer representation of the customer request ID inside of the User Interface status: type: string description: Status of the customer request enum: - pending - canceled - declined - accepted maxLength: 255 examples: - pending updated_at: type: - string - 'null' format: date-time description: '`ISO 8601` timestamp indicating when the customer request was updated' examples: - '2022-04-14T05:23:45Z' created_at: type: - string - 'null' format: date-time description: '`ISO 8601` timestamp indicating when the customer request was created' examples: - '2022-04-14T05:23:45Z' asset_information: type: object description: The asset information when the customer request was created properties: odometer_value: type: number description: Integer representation about the asset odometer odometer_unit: type: string description: abreviation about the unit of asset can be mi for miles or km for Kilometers enum: - mi - km examples: - mi breakdown: type: object description: Information about the breakdown location properties: city: type: string description: City of breakdown maxLength: 255 examples: - North Haven location: type: string description: Exact map location of the breakdown maxLength: 255 examples: - 41.395022,-72.856326 state: type: string description: Second part of the `ISO 3166-2` code indicating the breakdown State minLength: 1 maxLength: 3 examples: - NJ primary_contact: type: object description: Primary contact information properties: first_name: type: string description: First name maxLength: 100 examples: - Martha last_name: type: string description: Last name maxLength: 100 examples: - Wayne email: type: string description: Contact email examples: - martha@wayne.com relation: type: string examples: - Bobby phone: type: object description: Phone information properties: mobile: type: string maxLength: 32 examples: - (582) 123-1234 work: type: string maxLength: 32 examples: - (582) 123-1234 driver: type: object description: Driver information properties: first_name: type: string description: First name maxLength: 100 examples: - Martha last_name: type: string description: Last name maxLength: 100 examples: - Wayne email: type: string description: Contact email examples: - martha@wayne.com phone: type: object description: Phone information properties: mobile: type: string maxLength: 32 examples: - (582) 123-1234 work: type: string maxLength: 32 examples: - (582) 123-1234 metadata: type: object properties: {} event_timestamps: type: object description: All the timestamps related to the customer request properties: requested_at: type: - string - 'null' description: '`ISO 8601` timestamp indicating when the service was requested' format: date-time examples: - '2022-04-14T05:23:45Z' requested_completion_time: type: - string - 'null' format: date-time description: '`ISO 8601` timestamp indicating the completion time of the case' examples: - '2022-04-14T05:23:45Z' requested_appointment_time: type: - string - 'null' format: date-time description: '`ISO 8601` timestamp indicating the appointment time' examples: - '2022-04-14T05:23:45Z' confirmed_appointment_at: type: - string - 'null' format: date-time description: '`ISO 8601` timestamp indicating when the service provider confirmed the appointment with the customer' examples: - '2022-04-14T05:23:45Z' asset_downtime: type: - string - 'null' format: date-time description: '`ISO 8601` timestamp indicating when the Asset was considered no longer operational' examples: - '2022-04-14T05:23:45Z' relationships: type: object properties: case: $ref: '#/components/schemas/relationship_object' customer: $ref: '#/components/schemas/relationship_object' links: type: object properties: self: type: string required: - attributes - type - id customer_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - customers - registered_customers - service_group_customers - service_group_registered_customers attributes: type: object properties: name: type: string description: Name of the customer maxLength: 100 address1: type: string description: Primary address information maxLength: 100 address2: type: string description: Secondary address information maxLength: 100 city: type: string description: City in which the business resides maxLength: 100 state: type: string description: Second part of the `ISO 3166-2` code indicating the state minLength: 1 maxLength: 3 example: NJ country: type: string description: '`ISO 3166-1` alpha-2 code indicating the country' minLength: 2 maxLength: 2 example: US postal_code: type: string description: Postal ZIP Code maxLength: 20 phone: type: string description: Telephone number, must conform to E.164 standard maxLength: 60 fax: type: string description: Fax number, must conform to E.164 standard maxLength: 60 email: type: string description: Email contact information maxLength: 128 notes: type: string description: Free-form notes about the customer example: Premium customer - call ahead account_number: type: string description: Account number for the customer (applies to MVP/OEM accounts) maxLength: 36 example: ACC-1234 external_reference: type: object description: Reference Identifiers used outside of Decisiv SRM properties: customer_number: type: string description: Number used to identify Customer record in external system minLength: 1 maxLength: 40 deprecated: true business_system: type: string description: Number used to identify Customer record in external system minLength: 1 maxLength: 40 relationships: type: object properties: srm_account: $ref: '#/components/schemas/relationship_object' service_location: $ref: '#/components/schemas/relationship_object' contact_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - contacts - service_group_contacts - registered_contacts attributes: type: object properties: first_name: type: string description: First name of the contact maxLength: 100 last_name: type: string description: Last name of the contact maxLength: 100 communication: type: array description: Array of communication methods for the contact items: type: object properties: method_type: type: string description: Type of communication method (e.g., email, mobile) enum: - email - mobile value: type: - string - 'null' description: Value of the communication method (e.g., email address, phone number) maxLength: 128 notify: type: boolean description: Indicates if notifications should be sent to this contact required: - method_type - value - notify required: - first_name - last_name - communication links: type: object properties: self: type: string required: - id - type - attributes department_properties-data: type: object properties: id: type: string description: 'The department code. Note: this is a dealer-scoped string code (e.g. "SERVICE"), not a UUID.' type: type: string enum: - departments attributes: type: object properties: name: type: string description: Name of the Department required: - attributes - type - id attributes: type: object properties: triggered_at: type: string format: date-time description: Date / Time when the diagnostic was triggered in `ISO8601` format sensor_readings: type: array description: Sensor readings captured at the time of the diagnostic items: type: object properties: name: type: string description: Name of the sensor description: type: string description: Description of the sensor value: type: string description: Sensor reading value unit_of_measure: type: - string - 'null' description: Unit of measure for the sensor reading classification_header: type: string description: Header group used to classify the reading in the UI key_data: type: boolean description: Flag indicating whether the reading should be highlighted in the UI localize: type: boolean description: Flag indicating whether the reading should be localized in the UI components: type: array description: Components reported by the diagnostic items: type: object properties: name: type: string description: Name of the component description: type: - string - 'null' description: Description of the component version: type: - string - 'null' description: Component version origin_id: type: string description: Unique identifier of the diagnostic record at the source system origin: type: string description: Source system that produced the diagnostic data location: type: - object - 'null' description: Geolocation information about the asset properties: latitude: type: - string - 'null' description: Asset latitude longitude: type: - string - 'null' description: Asset longitude altitude: type: - number - string - 'null' description: Asset altitude heading: type: - number - string - 'null' description: Asset heading asset_data: type: object description: Asset information properties: chassis_id: type: string description: Unique identifier consisting of a letter (chassis series) and six digits (chassis number) device_id: type: string description: Telematic Device ID minLength: 0 maxLength: 17 make: type: string description: Brand of the asset minLength: 0 maxLength: 10 model: type: string description: Name of the asset product from the manufacturer serial_number: type: string description: Production number of the asset, *if `vin` is present, it needs to match the last 8-9 digits of it* minLength: 8 maxLength: 9 vin: type: string description: 17 digit vehicle identification number minLength: 0 maxLength: 17 year: type: string description: The year of the vehicle external_resources: type: array description: External resources related to the diagnostic reading items: type: object properties: href: type: string format: url description: Location (URL) of the external resource pattern: ^https?://(www.)?[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)+([/?#].*)?$ title: type: string description: Title of the external resource minLength: 3 maxLength: 75 description: type: string description: Description of the resource minLength: 3 maxLength: 150 classification_header: type: string description: Classification of the external resource minLength: 3 maxLength: 50 type: type: string description: Type of the external resource enum: - document - image - video - audio - website - other extended_attribute_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - extended_attributes attributes: type: object properties: name: type: string description: Description of extended attribute minLength: 1 maxLength: 255 schema: type: object oneOf: - type: object description: String with enum validation required: - type - enum properties: type: type: string example: string enum: type: array items: type: string - type: object description: String with length validation required: - type - minLength - maxLength properties: type: type: string example: string minLength: type: integer maxLength: type: integer - type: object description: String with pattern validation required: - type - pattern properties: type: type: string example: string pattern: type: string - type: object description: Integer with range validation required: - type - minimum - maximum properties: type: type: integer example: integer minimum: type: integer maximum: type: integer - type: object description: Integer with enum validation required: - type - enum properties: type: type: integer example: integer enum: type: array items: type: integer - type: object description: Number with range validation required: - type - minimum - maximum properties: type: type: number example: number minimum: type: number maximum: type: number - type: object description: Boolean required: - type properties: type: type: boolean example: boolean - type: object description: Datetime required: - type - format properties: type: type: string example: string format: type: string example: date-time - type: object description: Date required: - type - format properties: type: type: string example: string format: type: string example: date - type: object description: Time required: - type - format properties: type: type: string example: string format: type: string example: time - type: object description: Email required: - type - format properties: type: type: string example: string format: type: string example: email - type: object description: URI required: - type - format properties: type: type: string example: string format: type: string example: uri - type: object description: UUID required: - type - format properties: type: type: string example: string format: type: string example: uuid required: - attributes - type - id extended_asset_attribute_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - extended_asset_attributes attributes: type: object properties: value: type: string description: Value of extended attribute for the asset name: type: string created_at: type: string format: date-time example: '2022-04-14T05:23:45Z' updated_at: type: string format: date-time example: '2022-04-14T05:23:45Z' required: - value relationships: type: object properties: account_extended_attribute: $ref: '#/components/schemas/relationship_object' customer_asset: $ref: '#/components/schemas/relationship_object' required: - account_extended_attribute - customer_asset required: - type - attributes - relationships properties-attributes: type: object properties: triggered_at: type: string format: date-time description: Date / Time when the diagnostic was triggered in `ISO8601` format spn: type: - string - 'null' description: SPN value. *Must be sent together with `fmi`. Either the SPN/FMI pair or `fault_code` is required.* fmi: type: - string - 'null' description: FMI value. *Must be sent together with `spn`. Either the SPN/FMI pair or `fault_code` is required.* fault_code: type: - string - 'null' description: Fault code value. *Required when SPN/FMI pair is not provided.* severity: type: - integer - 'null' minimum: 0 maximum: 100 description: Fault severity, ranging from `0` (lowest) to `100` (highest) active: type: boolean description: Indicates whether this fault is still active sensor_readings: type: array description: Sensor readings captured when the fault was triggered items: type: object properties: name: type: string description: Name of the sensor description: type: string description: Description of the sensor value: type: string description: Sensor reading value unit_of_measure: type: - string - 'null' description: Unit of measure for the sensor reading classification_header: type: string description: Header group used to classify the reading in the UI key_data: type: boolean description: Flag indicating whether the reading should be highlighted in the UI localize: type: boolean description: Flag indicating whether the reading should be localized in the UI guidance: type: array description: Guidance information related to the fault items: type: object properties: name: type: string description: Name of the guidance entry description: type: string description: Description of the guidance entry value: type: string description: Guidance value classification_header: type: string description: Header group used to classify the entry in the UI details: type: object description: Details of the fault properties: component: type: object description: Component on which the fault occurred properties: name: type: string description: Name of the component description: type: - string - 'null' description: Description of the component version: type: - string - 'null' description: Component version occurrences: type: - integer - 'null' description: Number of times the fault has occurred odometer_unit: type: - string - 'null' description: Odometer unit of measure enum: - mi - km - null odometer_value: type: - number - 'null' description: Odometer reading at the time of the fault severity_level: type: - string - 'null' description: Human-readable severity tier of the fault (e.g. `Needs Attention`, `Moderate`, `Severe`) description: type: - string - 'null' description: Description of the fault location: type: - object - 'null' description: Geolocation information about the asset when the fault was triggered properties: latitude: type: - string - 'null' description: Asset latitude longitude: type: - string - 'null' description: Asset longitude altitude: type: - number - string - 'null' description: Asset altitude heading: type: - number - string - 'null' description: Asset heading external_resources: type: array description: External resources related to the fault items: type: object properties: href: type: string format: url description: Location (URL) of the external resource pattern: ^https?://(www.)?[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)+([/?#].*)?$ title: type: string description: Title of the external resource minLength: 3 maxLength: 75 description: type: string description: Description of the resource minLength: 3 maxLength: 150 classification_header: type: string description: Classification of the external resource minLength: 3 maxLength: 50 type: type: string description: Type of the external resource enum: - document - image - video - audio - website - other required: - triggered_at - active - details internal_user_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - internal_users attributes: type: object properties: first_name: type: string description: First name of the internal user maxLength: 50 last_name: type: string description: Last name of the internal user maxLength: 50 email: type: string description: Email of the internal user maxLength: 120 external_reference: type: object description: Reference Identifiers used outside of Decisiv SRM properties: business_system: type: - string - 'null' description: Business System Identifier permissions: type: array description: A list of permissions for the user. items: type: string description: Name of the permission minItems: 1 required: - attributes - type - id registered_asset_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - registered_assets attributes: type: object properties: vin: type: string description: 17 digit vehicle identification number minLength: 17 maxLength: 17 serial_number: type: string description: Production number of the asset minLength: 8 maxLength: 9 unit_number: type: string description: Identification number commonly used on assets residing within a fleet chassis_id: type: string description: Unique identifier consisting of a letter (chassis series) and six digits (chassis number) maxLength: 50 example: N-991562 make: type: string description: Brand of the asset maxLength: 100 model: type: string description: Name of the asset product from the manufacturer maxLength: 100 year: type: integer description: 'Calendar year the asset model was released, minimum: 1970, maximum: two years from now' engine: type: object description: Engine data properties: make: type: - string - 'null' maxLength: 255 description: The make of the engine example: Cummins model: type: - string - 'null' maxLength: 100 description: The model of the engine example: X15 displacement: type: - string - 'null' maxLength: 100 description: The engine size related in liters or cubic inches example: 14.8L serial_number: type: - string - 'null' maxLength: 40 description: The engine serial number example: '79412345' odometer_value: type: - number - 'null' description: Integer representation about the asset odometer example: 125000 odometer_unit: type: - string - 'null' description: ' The unit of measure for odometer value represented in standard or metric (mi = Miles or km = Kilometers)' enum: - mi - km example: mi vmrs: type: object description: VMRS classification of the asset properties: asset_type: type: object description: VMRS Code Key 2 (Equipment Category) properties: code_key: type: string description: The VMRS code key identifier example: '2' code: type: - string - 'null' description: The VMRS code value for the equipment category (e.g. 'D', '1', 'R'). Null when unset on the underlying vehicle. required: - attributes - type - id repair_status_properties-data: type: object properties: id: type: string type: type: string enum: - decisiv_case_repair_statuses attributes: type: object properties: name: type: string description: Name of the repair status minLength: 1 maxLength: 150 description: type: string description: Description of the repair status minLength: 0 maxLength: 255 category: type: string description: Category of the repair status inside the case minLength: 0 maxLength: 255 required: - attributes - type - id service_network_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - service_networks attributes: type: object properties: name: type: string description: Name of the Service Network minLength: 1 maxLength: 150 required: - attributes - type - id service_provider_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - service_providers attributes: type: object properties: name: type: string address1: type: string address2: type: string city: type: string state: type: string postal_code: type: string country: type: string email: type: string format: email phone: type: string fax: type: string location: type: object properties: latitude: type: number longitude: type: number distance_from_geolocation: type: number description: Present only when filtering by `geolocation.point`. relationships: type: object properties: service_networks: $ref: '#/components/schemas/relationship_objects' required: - attributes - type - id skill_level_properties-data: type: object properties: id: type: string description: Customer-defined skill level identifier minLength: 1 type: type: string enum: - skill_levels attributes: type: object properties: description: type: string description: Description for skill level maxLength: 255 pricing: type: object description: Pricing details for the skill level properties: labor: type: string pattern: ^\d+\.\d{2}$ description: Labor value for the skill level example: '50.00' required: - labor required: - description - pricing links: type: object properties: self: type: string required: - attributes - type - id sublet_association_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - sublet_associations attributes: type: object properties: reason: type: string description: Reason for create the association examples: - Text description of the reason for the association relationships: type: object properties: parent_case: $ref: '#/components/schemas/relationship_object' sublet_case: $ref: '#/components/schemas/relationship_object' required: - sublet_case - parent_case required: - attributes - relationships - type - id sublet_case_line_item_properties-data: type: object description: 'A sublet case line item represents a single repair operation on the case — typically a labor task or a parts replacement performed by a sublet vendor. ' properties: id: type: string format: uuid type: type: string enum: - sublet_case_line_items attributes: type: object properties: status: 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. maxLength: 255 example: approved name: type: - string - 'null' description: Name of the operation line item maxLength: 510 example: Air Dryer Cartridge, Replacement opcode: type: - string - 'null' description: Unique operation code maxLength: 255 example: T3789-0-04 pricing: type: object description: Pricing breakdown for the line item. 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' additional_charges: type: - array - 'null' description: Additional charges associated with the line item; null when none are present. items: type: object properties: code: type: string description: Code of the additional charge example: FLAT description: type: string description: Description of the additional charge example: Flat fee amount: type: string format: decimal description: Amount of the additional charge example: '100.00' category: type: - string - 'null' description: Category of the additional charge example: Service sales_tax_rate: type: string format: decimal description: Sales tax rate applied to the additional charge example: '1.00' sales_tax_amount: type: string format: decimal description: Sales tax amount for the additional charge example: '1.00' total_amount: type: string format: decimal description: Total amount for the additional charge example: '101.00' parts: type: array description: Parts associated with the line item items: type: object properties: number: type: string description: Part number example: '8675309' name: type: string description: Part name example: Filter quantity: type: integer description: Quantity of the part example: 2 labor: type: object description: Labor associated with line item properties: time: type: number 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 vmrs: type: - object - 'null' description: Vehicle Maintenance Reporting Standards (VMRS) coding for the line item, currently exposing Component Code (CK33). Null when no component code is assigned. properties: code_key: type: string description: VMRS code key — the numeric category designator within the VMRS standard (e.g., "33" identifies Component Code). example: '33' code_key_name: type: string description: Human-readable name of the VMRS code key. example: Component Code code: type: string description: VMRS code value within the code key (e.g., "023-000-000" identifies "Engine" within Component Code). example: 023-000-000 description: type: string description: Human-readable description of the VMRS code. example: Engine required: - attributes - type - id sublet_request_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - sublet_requests attributes: type: object properties: complaint: type: string description: Initially reported information from driver or other customer entity maxLength: 6000 status: type: string enum: - pending - canceled - declined - accepted description: Status of the sublet request maxLength: 255 po_number: type: string description: Purchase Order number maxLength: 40 auth_number: type: string description: Authorization number maxLength: 40 note: type: string description: The notes for the sublet request reference_number: type: integer description: Integer representation of the sublet request ID inside of the User Interface breakdown: type: object description: Information about the breakdown location properties: city: type: string description: City of breakdown maxLength: 255 examples: - North Haven location: type: string description: Exact map location of the breakdown maxLength: 255 examples: - 41.395022,-72.856326 state: type: string description: Second part of the `ISO 3166-2` code indicating the breakdown State minLength: 1 maxLength: 3 examples: - NJ event_timestamps: type: object description: All the timestamps related to the sublet request properties: requested_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the sublet was requested' requested_appointment_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the appointment time' requested_completion_time: type: string format: date-time description: '`ISO 8601` timestamp indicating the completion time of the case' asset_downtime: type: string format: date-time description: '`ISO 8601` timestamp indicating when the Asset was considered no longer operational' created_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the sublet request was created' updated_at: type: string format: date-time description: '`ISO 8601` timestamp indicating when the sublet request was last updated' primary_contact: type: object description: The primary contact on the sublet request. properties: first_name: type: string last_name: type: string email: type: string relation: type: string description: Relationship of the contact to the service request (e.g. Driver, Fleet Manager). phone: type: object properties: mobile: type: string work: type: string driver: type: object description: The driver contact on the sublet request. properties: first_name: type: string last_name: type: string email: type: string phone: type: object properties: mobile: type: string work: type: string required: - complaint relationships: type: object properties: service_provider: $ref: '#/components/schemas/relationship_object' parent_case: $ref: '#/components/schemas/relationship_object' sublet_case: $ref: '#/components/schemas/relationship_object' required: - service_provider - parent_case required: - attributes - relationships - type - id vmrs_asset_type_properties-data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 2 `code` value (natural key). example: '01' type: type: string enum: - decisiv_vmrs_asset_types attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"2"` for asset type lookups. example: '2' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 2 this is `"Equipment Category"`. ' example: Equipment Category code: type: string maxLength: 2 description: The VMRS Code Key 2 code (e.g. `"01"`, `"D"`). example: '01' description: type: string description: Human-readable name for the asset type / equipment category. example: Truck vmrs_reason_for_repair_properties-data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 14 `code` value (natural key). example: '01' type: type: string enum: - decisiv_vmrs_reasons_for_repair attributes: type: object required: - code_key - code_key_name - code - description - category properties: code_key: type: string description: VMRS Code Key number. Always `"14"` for reason-for-repair lookups. example: '14' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 14 this is `"Reason for Repair"`. ' example: Reason for Repair code: type: string maxLength: 2 description: The VMRS Code Key 14 code (e.g. `"01"`, `"70"`). example: '01' description: type: string description: Human-readable name for the reason for repair. example: Breakdown category: type: string description: 'The VMRS Code Key 14 `repair_type` grouping the reason belongs to (e.g. `"Maintenance"`, `"Outside Influence"`, `"Management Decision"`). ' example: Maintenance vmrs_repair_priority_properties-data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 16 `code` value (natural key). example: '1' type: type: string enum: - decisiv_vmrs_repair_priorities attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"16"` for repair-priority lookups. example: '16' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 16 this is `"Repair Priority Class"`. ' example: Repair Priority Class code: type: string maxLength: 1 description: The VMRS Code Key 16 code (e.g. `"1"`, `"2"`, `"3"`). example: '1' description: type: string description: Human-readable name for the repair priority class. example: Scheduled vmrs_repair_site_properties-data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 17 `code` value (natural key). example: '1' type: type: string enum: - decisiv_vmrs_repair_sites attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"17"` for repair-site lookups. example: '17' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 17 this is `"Repair Site"`. ' example: Repair Site code: type: string maxLength: 1 description: The VMRS Code Key 17 code (e.g. `"1"`, `"2"`, `"3"`). example: '1' description: type: string description: Human-readable name for the repair site. example: Facility (Fleet) vmrs_component_properties-data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 33 `code` value (natural key). example: 001-000-000 type: type: string enum: - decisiv_vmrs_components attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"33"` for component lookups. example: '33' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 33 this is `"Component"`. ' example: Component code: type: string maxLength: 11 description: The VMRS Code Key 33 code (e.g. `"001-000-000"`). example: 001-000-000 description: type: string description: Human-readable name for the component. example: Air Conditioning, Heating & Ventilating System vmrs_operator_report_properties-data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 82 `code` value (natural key). example: '001' type: type: string enum: - decisiv_vmrs_operator_reports attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"82"` for operator report lookups. example: '82' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 82 this is `"Operator Vehicle/Equipment Condition Report"`. ' example: Operator Vehicle/Equipment Condition Report code: type: string maxLength: 3 description: The VMRS Code Key 82 code (e.g. `"001"`, `"190"`). example: '001' description: type: string description: Human-readable name for the operator report condition. example: Aim/Alignment (Out of Adjustment) vmrs_position_properties-data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 79 `code` value (natural key). example: '01' type: type: string enum: - decisiv_vmrs_positions attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"79"` for position lookups. example: '79' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 79 this is `"Position"`. ' example: Position code: type: string maxLength: 2 description: The VMRS Code Key 79 code (e.g. `"00"`, `"01"`). example: '01' description: type: string description: Human-readable name for the position. example: Front vmrs_work_accomplished_properties-data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 15 `code` value (natural key). example: '01' type: type: string enum: - decisiv_vmrs_work_accomplished attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"15"` for work accomplished lookups. example: '15' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 15 this is `"Work Accomplished"`. ' example: Work Accomplished code: type: string maxLength: 2 description: The VMRS Code Key 15 code (e.g. `"01"`, `"02"`). example: '01' description: type: string description: Human-readable short label for the work accomplished. example: Adjust vmrs_technician_part_failure_code_properties-data: type: object required: - id - type - attributes properties: id: type: string description: The Code Key 18 `code` value (natural key). example: '01' type: type: string enum: - decisiv_vmrs_technician_part_failure_codes attributes: type: object required: - code_key - code_key_name - code - description properties: code_key: type: string description: VMRS Code Key number. Always `"18"` for technician part failure code lookups. example: '18' code_key_name: type: string description: 'Human-readable label for the Code Key, sourced from the `Vmrs::Coding` data table. For Code Key 18 this is `"Technician Part Failure Code"`. ' example: Technician Part Failure Code code: type: string maxLength: 2 description: The VMRS Code Key 18 code (e.g. `"00"`, `"01"`). example: '01' description: type: string description: Human-readable name for the technician part failure code. example: Battered, Hammered technician_story_properties-data: type: object properties: id: type: string format: uuid type: type: string enum: - technician_stories attributes: type: object properties: content: type: string description: The story itself minLength: 1 maxLength: 5000 examples: - This is a story from the technician created_at: type: string description: '`ISO 8601` timestamp indicating when the technician story was created' format: date-time required: - attributes - type - id securitySchemes: AccessToken: type: http scheme: bearer bearerFormat: JWT OAuth2AuthorizationCode: type: oauth2 description: OAuth 2.0 Authorization Code flow. This is the required flow for new integrations. See https://api-docs.decisiv.net/docs/api/oauth/ flows: authorizationCode: authorizationUrl: https://login.decisiv.net/auth/api_gateway tokenUrl: https://login.decisiv.net/oauth/token refreshUrl: https://login.decisiv.net/oauth/token scopes: {} OAuth2Password: type: oauth2 description: '**Deprecated.** OAuth 2.0 Password flow. New integrations must use the Authorization Code flow (`OAuth2AuthorizationCode`); this flow remains available only during the migration window and will be removed in a future release. See https://api-docs.decisiv.net/docs/api/oauth/' flows: password: tokenUrl: https://login.decisiv.net/oauth/token scopes: {}