Shop-Ware Services API

The Services API from Shop-Ware — 2 operation(s) for services.

OpenAPI Specification

shop-ware-services-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: API V1 API Partners Services API
  version: v1
  contact:
    name: API Support
    email: support@shop-ware.com
security:
- api_partner_id: []
  api_secret: []
tags:
- name: Services
paths:
  /api/v1/tenants/{tenant_id}/services:
    parameters:
    - name: tenant_id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    get:
      summary: Get a list of all services
      tags:
      - Services
      parameters:
      - name: repair_order_id
        in: query
        required: false
        description: A foreign key which points to a WorkOrder.id. Represents the repair order related with this service.
        example: null
        schema:
          type: integer
      - name: technician_id
        in: query
        required: false
        description: Filter response to only include Services with labors assigned to this Technican ID.
        example: null
        schema:
          type: integer
      - name: updated_after
        in: query
        required: false
        format: date-time
        description: Filter response to only include Services updated after a given time
        example: '2026-09-08T14:25:34Z'
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              examples:
                without filter:
                  value:
                    results:
                    - id: 2
                      created_at: '2026-09-09T14:25:23Z'
                      updated_at: '2026-09-09T14:25:23Z'
                      title: Test Service
                      completed: false
                      category_id: null
                      canned_job_id: null
                      comment: No comment
                      fixed_price_cents: null
                      fixed_price_labor_total_cents: null
                      is_fixed_price_service: false
                      labor_rate_cents: 10000
                      repair_order_id: 2
                      completed_at: null
                      last_completed_at: null
                      labors:
                      - id: 2
                        created_at: '2026-09-09T14:25:23Z'
                        updated_at: '2026-09-09T14:25:23Z'
                        name: Test labor 6
                        technician_id: null
                        taxable: true
                        hours: 1.0
                      parts:
                      - id: 2
                        created_at: '2026-09-09T14:25:23Z'
                        updated_at: '2026-09-09T14:25:23Z'
                        brand: null
                        description: null
                        number: null
                        quoted_price_cents: null
                        cost_cents: null
                        part_inventory_id: 2
                        taxable: true
                        sell_price_cents: null
                        quantity: 1.0
                      hazmats:
                      - id: 2
                        created_at: '2026-09-09T14:25:23Z'
                        updated_at: '2026-09-09T14:25:23Z'
                        name: Test hazmat fee 6
                        fee_cents: 25
                        taxable: true
                        quantity: 1.0
                      sublets:
                      - id: 2
                        created_at: '2026-09-09T14:25:23Z'
                        updated_at: '2026-09-09T14:25:23Z'
                        name: Test sublet 6
                        price_cents: 50
                        cost_cents: null
                        provider: ''
                        invoice_number: '1111'
                        description: null
                        taxable: true
                        vendor_id: null
                        invoice_date: null
                      inspections:
                      - id: 2
                        created_at: '2026-09-09T14:25:23Z'
                        updated_at: '2026-09-09T14:25:23Z'
                        name: Test inspection 6
                        state: null
                    - id: 1
                      created_at: '2026-06-09T14:25:23Z'
                      updated_at: '2026-06-09T14:25:23Z'
                      title: Test Service
                      completed: false
                      category_id: null
                      canned_job_id: null
                      comment: No comment
                      fixed_price_cents: null
                      fixed_price_labor_total_cents: null
                      is_fixed_price_service: false
                      labor_rate_cents: 10000
                      repair_order_id: 1
                      completed_at: null
                      last_completed_at: null
                      labors:
                      - id: 1
                        created_at: '2026-06-09T14:25:23Z'
                        updated_at: '2026-06-09T14:25:23Z'
                        name: Test labor 5
                        technician_id: null
                        taxable: true
                        hours: 1.0
                      parts:
                      - id: 1
                        created_at: '2026-06-09T14:25:23Z'
                        updated_at: '2026-06-09T14:25:23Z'
                        brand: null
                        description: null
                        number: null
                        quoted_price_cents: null
                        cost_cents: null
                        part_inventory_id: 1
                        taxable: true
                        sell_price_cents: null
                        quantity: 1.0
                      hazmats:
                      - id: 1
                        created_at: '2026-06-09T14:25:23Z'
                        updated_at: '2026-06-09T14:25:23Z'
                        name: Test hazmat fee 5
                        fee_cents: 25
                        taxable: true
                        quantity: 1.0
                      sublets:
                      - id: 1
                        created_at: '2026-06-09T14:25:23Z'
                        updated_at: '2026-06-09T14:25:23Z'
                        name: Test sublet 5
                        price_cents: 50
                        cost_cents: null
                        provider: ''
                        invoice_number: '1111'
                        description: null
                        taxable: true
                        vendor_id: null
                        invoice_date: null
                      inspections:
                      - id: 1
                        created_at: '2026-06-09T14:25:23Z'
                        updated_at: '2026-06-09T14:25:23Z'
                        name: Test inspection 5
                        state: null
                    limit: 2
                    limited: false
                    total_count: 2
                    current_page: 1
                    total_pages: 1
                filtering by repair_order_id:
                  value:
                    results:
                    - id: 1
                      created_at: '2026-06-09T14:25:26Z'
                      updated_at: '2026-06-09T14:25:27Z'
                      title: Test Service
                      completed: false
                      category_id: null
                      canned_job_id: null
                      comment: No comment
                      fixed_price_cents: null
                      fixed_price_labor_total_cents: null
                      is_fixed_price_service: false
                      labor_rate_cents: 10000
                      repair_order_id: 1
                      completed_at: null
                      last_completed_at: null
                      labors:
                      - id: 1
                        created_at: '2026-06-09T14:25:27Z'
                        updated_at: '2026-06-09T14:25:27Z'
                        name: Test labor 7
                        technician_id: null
                        taxable: true
                        hours: 1.0
                      parts:
                      - id: 1
                        created_at: '2026-06-09T14:25:27Z'
                        updated_at: '2026-06-09T14:25:27Z'
                        brand: null
                        description: null
                        number: null
                        quoted_price_cents: null
                        cost_cents: null
                        part_inventory_id: 1
                        taxable: true
                        sell_price_cents: null
                        quantity: 1.0
                      hazmats:
                      - id: 1
                        created_at: '2026-06-09T14:25:27Z'
                        updated_at: '2026-06-09T14:25:27Z'
                        name: Test hazmat fee 7
                        fee_cents: 25
                        taxable: true
                        quantity: 1.0
                      sublets:
                      - id: 1
                        created_at: '2026-06-09T14:25:27Z'
                        updated_at: '2026-06-09T14:25:27Z'
                        name: Test sublet 7
                        price_cents: 50
                        cost_cents: null
                        provider: ''
                        invoice_number: '1111'
                        description: null
                        taxable: true
                        vendor_id: null
                        invoice_date: null
                      inspections:
                      - id: 1
                        created_at: '2026-06-09T14:25:27Z'
                        updated_at: '2026-06-09T14:25:27Z'
                        name: Test inspection 7
                        state: null
                    limit: 1
                    limited: false
                    total_count: 1
                    current_page: 1
                    total_pages: 1
                filtering by technician_id:
                  value:
                    results:
                    - id: 2
                      created_at: '2026-09-09T14:25:30Z'
                      updated_at: '2026-09-09T14:25:30Z'
                      title: Test Service
                      completed: false
                      category_id: null
                      canned_job_id: null
                      comment: No comment
                      fixed_price_cents: null
                      fixed_price_labor_total_cents: null
                      is_fixed_price_service: false
                      labor_rate_cents: 10000
                      repair_order_id: 2
                      completed_at: null
                      last_completed_at: null
                      labors:
                      - id: 2
                        created_at: '2026-09-09T14:25:30Z'
                        updated_at: '2026-09-09T14:25:30Z'
                        name: Test labor 10
                        technician_id: null
                        taxable: true
                        hours: 1.0
                      parts:
                      - id: 2
                        created_at: '2026-09-09T14:25:30Z'
                        updated_at: '2026-09-09T14:25:30Z'
                        brand: null
                        description: null
                        number: null
                        quoted_price_cents: null
                        cost_cents: null
                        part_inventory_id: 2
                        taxable: true
                        sell_price_cents: null
                        quantity: 1.0
                      hazmats:
                      - id: 2
                        created_at: '2026-09-09T14:25:30Z'
                        updated_at: '2026-09-09T14:25:30Z'
                        name: Test hazmat fee 10
                        fee_cents: 25
                        taxable: true
                        quantity: 1.0
                      sublets:
                      - id: 2
                        created_at: '2026-09-09T14:25:30Z'
                        updated_at: '2026-09-09T14:25:30Z'
                        name: Test sublet 10
                        price_cents: 50
                        cost_cents: null
                        provider: ''
                        invoice_number: '1111'
                        description: null
                        taxable: true
                        vendor_id: null
                        invoice_date: null
                      inspections:
                      - id: 2
                        created_at: '2026-09-09T14:25:30Z'
                        updated_at: '2026-09-09T14:25:30Z'
                        name: Test inspection 10
                        state: null
                    - id: 1
                      created_at: '2026-06-09T14:25:30Z'
                      updated_at: '2026-06-09T14:25:30Z'
                      title: Test Service
                      completed: false
                      category_id: null
                      canned_job_id: null
                      comment: No comment
                      fixed_price_cents: null
                      fixed_price_labor_total_cents: null
                      is_fixed_price_service: false
                      labor_rate_cents: 10000
                      repair_order_id: 1
                      completed_at: null
                      last_completed_at: null
                      labors:
                      - id: 1
                        created_at: '2026-06-09T14:25:30Z'
                        updated_at: '2026-06-09T14:25:30Z'
                        name: Test labor 9
                        technician_id: null
                        taxable: true
                        hours: 1.0
                      parts:
                      - id: 1
                        created_at: '2026-06-09T14:25:30Z'
                        updated_at: '2026-06-09T14:25:30Z'
                        brand: null
                        description: null
                        number: null
                        quoted_price_cents: null
                        cost_cents: null
                        part_inventory_id: 1
                        taxable: true
                        sell_price_cents: null
                        quantity: 1.0
                      hazmats:
                      - id: 1
                        created_at: '2026-06-09T14:25:30Z'
                        updated_at: '2026-06-09T14:25:30Z'
                        name: Test hazmat fee 9
                        fee_cents: 25
                        taxable: true
                        quantity: 1.0
                      sublets:
                      - id: 1
                        created_at: '2026-06-09T14:25:30Z'
                        updated_at: '2026-06-09T14:25:30Z'
                        name: Test sublet 9
                        price_cents: 50
                        cost_cents: null
                        provider: ''
                        invoice_number: '1111'
                        description: null
                        taxable: true
                        vendor_id: null
                        invoice_date: null
                      inspections:
                      - id: 1
                        created_at: '2026-06-09T14:25:30Z'
                        updated_at: '2026-06-09T14:25:30Z'
                        name: Test inspection 9
                        state: null
                    limit: 2
                    limited: false
                    total_count: 2
                    current_page: 1
                    total_pages: 1
                filtering by updated_after:
                  value:
                    results:
                    - id: 2
                      created_at: '2026-09-09T14:25:34Z'
                      updated_at: '2026-09-09T14:25:34Z'
                      title: Test Service
                      completed: false
                      category_id: null
                      canned_job_id: null
                      comment: No comment
                      fixed_price_cents: null
                      fixed_price_labor_total_cents: null
                      is_fixed_price_service: false
                      labor_rate_cents: 10000
                      repair_order_id: 2
                      completed_at: null
                      last_completed_at: null
                      labors:
                      - id: 2
                        created_at: '2026-09-09T14:25:34Z'
                        updated_at: '2026-09-09T14:25:34Z'
                        name: Test labor 12
                        technician_id: null
                        taxable: true
                        hours: 1.0
                      parts:
                      - id: 2
                        created_at: '2026-09-09T14:25:34Z'
                        updated_at: '2026-09-09T14:25:34Z'
                        brand: null
                        description: null
                        number: null
                        quoted_price_cents: null
                        cost_cents: null
                        part_inventory_id: 2
                        taxable: true
                        sell_price_cents: null
                        quantity: 1.0
                      hazmats:
                      - id: 2
                        created_at: '2026-09-09T14:25:34Z'
                        updated_at: '2026-09-09T14:25:34Z'
                        name: Test hazmat fee 12
                        fee_cents: 25
                        taxable: true
                        quantity: 1.0
                      sublets:
                      - id: 2
                        created_at: '2026-09-09T14:25:34Z'
                        updated_at: '2026-09-09T14:25:34Z'
                        name: Test sublet 12
                        price_cents: 50
                        cost_cents: null
                        provider: ''
                        invoice_number: '1111'
                        description: null
                        taxable: true
                        vendor_id: null
                        invoice_date: null
                      inspections:
                      - id: 2
                        created_at: '2026-09-09T14:25:34Z'
                        updated_at: '2026-09-09T14:25:34Z'
                        name: Test inspection 12
                        state: null
                    limit: 1
                    limited: false
                    total_count: 1
                    current_page: 1
                    total_pages: 1
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: Unique identifier of this record.
                        title:
                          type: string
                          description: The title of the service.
                        completed:
                          type: boolean
                          description: True if the service has been completed.
                        category_id:
                          type: integer
                          description: A foreign key that points to a Category ID.
                          nullable: true
                        canned_job_id:
                          type: integer
                          description: A reference that points to a CannedJob ID.
                          nullable: true
                        labor_rate_cents:
                          type: integer
                          description: The rate in cents that labor on this service is charged at.
                          nullable: true
                        fixed_price_cents:
                          type: integer
                          description: The price in cents that this service will be charged at.
                          nullable: true
                        fixed_price_labor_total_cents:
                          type: integer
                          description: The total price in cents that labors on this service will be charged at.
                          nullable: true
                        is_fixed_price_service:
                          type: boolean
                          description: Determines if this service has a fixed price.
                        comment:
                          type: text
                          description: Service comments.
                        completed_at:
                          type: string
                          format: date-time
                          description: The datetime the service was last marked completed. This may occur if the service had been marked completed then restarted and marked completed again.
                          nullable: true
                        last_completed_at:
                          type: string
                          format: date-time
                          description: The datetime the service was last marked completed. This may occur if the service had been marked completed then restarted and marked completed again.
                          nullable: true
                        created_at:
                          type: string
                          format: date-time
                          description: Date and time when record was created.
                        updated_at:
                          type: string
                          format: date-time
                          description: Date and time when record was last updated.
                        labors:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The labor primary key.
                              name:
                                type: string
                                description: The name of this labor as it will appear on the RO.
                              technician_id:
                                type: integer
                                description: A foreign key which points to a Staff.id. Represents the technician assigned to this specific labor item.
                                nullable: true
                              taxable:
                                type: boolean
                                description: Determines if labor tax rate will be applied to this labor.
                              hours:
                                type: number
                              created_at:
                                type: string
                                format: date-time
                                description: The date and time when labor was created.
                              updated_at:
                                type: string
                                format: date-time
                                description: The date and time when labor was last updated.
                        parts:
                          type: array
                          description: If you hit a guardrail on a fixed price service, you will get two lines for the part as they could have separate prices
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The part primary key.
                              brand:
                                type: string
                                description: Part`s brand
                                nullable: true
                              description:
                                type: string
                                description: Part`s description
                                nullable: true
                              quoted_price_cents:
                                type: number
                                description: The price of this part that is being sold to the customer in cents per unit.
                                nullable: true
                                deprecated: true
                              sell_price_cents:
                                type: number
                                description: The price of this part that is being sold to the customer in cents per unit.
                                nullable: true
                              cost_cents:
                                type: number
                                description: The wholesale cost of this part to the shop in cents per unit.
                                nullable: true
                              part_inventory_id:
                                type: integer
                                description: A foreign key which points to an Inventory.id. Represents the associated inventory and quantity information for this part.
                                nullable: true
                              quantity:
                                type: number
                                description: The number of units this part line item represents.
                              taxable:
                                type: boolean
                                description: Determines if part tax rate will be applied to this part.
                              created_at:
                                type: string
                                format: date-time
                                description: The date and time when part was created.
                              updated_at:
                                type: string
                                format: date-time
                                description: The date and time when part was last updated.
                        hazmats:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The hazmat primary key.
                              name:
                                type: string
                                description: The name of this hazmat as it will appear on the RO.
                              fee_cents:
                                type: integer
                                description: The price of this fee or hazmat in cents per unit.
                              quantity:
                                type: number
                                description: The number of units.
                              taxable:
                                type: boolean
                                description: Determines if hazmat tax rate will be applied to this hazmat.
                              created_at:
                                type: string
                                format: date-time
                                description: The date and time when hazmat was created.
                              updated_at:
                                type: string
                                format: date-time
                                description: The date and time when hazmat was last updated.
                        sublets:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The sublet primary key.
                              name:
                                type: string
                                description: The name of this sublet as it will appear on the RO.
                              price_cents:
                                type: integer
                                description: The price in cents of sublet being sold to customer.
                              cost_cents:
                                type: number
                                description: The amount in cents paid to provider for services.
                                nullable: true
                              provider:
                                type: string
                                description: The name of the entity providing services for sublet.
                              invoice_number:
                                type: string
                                description: A string which identifies invoice from provider.
                              invoice_date:
                                type: string
                                format: date-time
                                description: The date when the invoice from provider was created.
                                nullable: true
                              taxable:
                                type: boolean
                                description: Determines if sublet tax rate will be applied to this sublet.
                              vendor_id:
                                type: integer
                                description: A foreign key which points to a Vendor.id. Represents a vendor associated with this sublet item.
                                nullable: true
                              created_at:
                                type: string
                                format: date-time
                                description: The date and time when sublet was created.
                              updated_at:
                                type: string
                                format: date-time
                                description: The date and time when sublet was last updated.
                        inspections:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The inspection primary key.
                              name:
                                type: string
                                description: The name of this inspection as it will appear on the RO.
                              state:
                                type: string
                                description: One of "yellow", "green", "unchecked", "red". More states may be added.
                                nullable: true
                              created_at:
                                type: string
                                format: date-time
                                description: The date and time when inspection was created.
                              updated_at:
                                type: string
                                format: date-time
                                description: The date and time when inspection was last updated.
                  limit:
                    type: integer
                  limited:
                    type: boolean
                  total_count:
                    type: integer
                  current_page:
                    type: integer
                  total_pages:
                    type: integer
  /api/v1/tenants/{tenant_id}/services/{id}:
    parameters:
    - name: tenant_id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    - name: id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    get:
      summary: Get a specific service by ID
      tags:
      - Services
      responses:
        '200':
          description: successful
          content:
            application/json:
              examples:
                successful:
                  value:
                    id: 1
                    created_at: '2026-06-09T14:25:37Z'
                    updated_at: '2026-06-09T14:25:37Z'
                    title: Test Service
                    completed: false
                    category_id: null
                    canned_job_id: null
                    comment: No comment
                    fix

# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/shop-ware/refs/heads/main/openapi/shop-ware-services-api-openapi.yml