Shop-Ware Estimates API

The Estimates API from Shop-Ware — 2 operation(s) for estimates.

OpenAPI Specification

shop-ware-estimates-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: API V1 API Partners Estimates API
  version: v1
  contact:
    name: API Support
    email: support@shop-ware.com
security:
- api_partner_id: []
  api_secret: []
tags:
- name: Estimates
paths:
  /api/v1/tenants/{tenant_id}/estimates/{estimate_id}/canned_jobs/{canned_job_id}:
    parameters:
    - name: tenant_id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    - name: estimate_id
      in: path
      required: true
      example: '2'
      schema:
        type: integer
    - name: canned_job_id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    put:
      summary: Add canned job as service
      tags:
      - Estimates
      responses:
        '200':
          description: successful
          content:
            application/json:
              examples:
                successful:
                  value:
                    id: 2
                    created_at: '2026-06-09T14:22:43Z'
                    updated_at: '2026-06-09T14:22:43Z'
                    number: 11340
                    odometer: 90321
                    odometer_out: null
                    state: estimate
                    customer_id: 3
                    technician_id: 1
                    advisor_id: 2
                    vehicle_id: 1
                    detail: Key tag 84, customer waiting
                    preferred_contact_type: Text
                    part_discount_cents: null
                    labor_discount_cents: null
                    shop_id: 2
                    status_id: 1
                    taxable: true
                    customer_source: Repeat
                    supply_fee_cents: 3250
                    part_discount_percentage: null
                    labor_discount_percentage: null
                    customer_concern: example of reason for customers to visit
                    vehicle_use: example of primary use of vehicle
                    started_at: null
                    closed_at: null
                    picked_up_at: null
                    due_in_at: '2026-06-12T14:22:43Z'
                    due_out_at: null
                    part_tax_rate: 0.0
                    labor_tax_rate: 0.0
                    hazmat_tax_rate: 0.0
                    sublet_tax_rate: 0.0
                    services:
                    - id: 1
                      created_at: '2026-06-09T14:22:42Z'
                      updated_at: '2026-06-09T14:22:43Z'
                      title: Warning Light On
                      completed: false
                      category_id: 4
                      row_order: 1
                      fixed_price_cents: null
                      canned_job_id: 1
                      comment: ''
                      fixed_price_labor_total_cents: null
                      is_fixed_price_service: false
                      labor_rate_cents: 10000
                      completed_at: null
                      last_completed_at: null
                      labors:
                      - id: 1
                        created_at: '2026-06-09T14:22:42Z'
                        updated_at: '2026-06-09T14:22:42Z'
                        name: Advise on proper course of action
                        technician_id: 1
                        taxable: false
                        hours: 0.13
                        row_order: 1
                      parts:
                      - id: 1
                        created_at: '2026-06-09T14:22:42Z'
                        updated_at: '2026-06-09T14:22:42Z'
                        brand: Superbright
                        description: 194 LED - AMBER 120*
                        number: WLED-A-120
                        quoted_price_cents: 395
                        cost_cents: 85
                        part_inventory_id: 1
                        taxable: false
                        sell_price_cents: 395
                        quantity: 2.0
                        quantity_needed: 1.0
                      hazmats:
                      - id: 1
                        created_at: '2026-06-09T14:22:42Z'
                        updated_at: '2026-06-09T14:22:42Z'
                        name: Recycling fee
                        fee_cents: 2000
                        taxable: true
                        quantity: 1.0
                      sublets:
                      - id: 1
                        created_at: '2026-06-09T14:22:42Z'
                        updated_at: '2026-06-09T14:22:42Z'
                        name: Windshield repair
                        price_cents: 1999
                        cost_cents: 999
                        provider: Windshield Bros.
                        invoice_number: '1111'
                        description: windshield provider
                        taxable: true
                        vendor_id: 1
                        invoice_date: '2026-06-10T14:22:42Z'
                      inspections:
                      - id: 1
                        created_at: '2026-06-09T14:22:42Z'
                        updated_at: '2026-06-09T14:22:42Z'
                        name: Measure tire tread depth
                        state: red
                    payments: []
                    integrator_tags:
                    - id: 1
                      created_at: '2026-06-09T14:22:43Z'
                      updated_at: '2026-06-09T14:22:43Z'
                      taggable_type: RepairOrder
                      taggable_id: 2
                      name: tag_name
                      value: tag_value
                    label:
                      id: 1
                      text: Test
                      color_code: '#FFFFFF'
                      row_order: 1
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: Unique identifier of this record.
                  number:
                    type: integer
                    description: The RO number.
                  odometer:
                    type: integer
                    nullable: true
                  odometer_out:
                    type: integer
                    nullable: true
                  state:
                    type: string
                    description: Only 'estimate'.
                  status_id:
                    type: integer
                    nullable: true
                    description: A foreign key which points to a Status.id. Represents the Status for this RO.
                  customer_id:
                    type: integer
                    description: A foreign key which points to a Customer.id. Represents the Customer for this RO.
                  technician_id:
                    type: integer
                    nullable: true
                    description: A foreign key which points to a Staff.id. Represents the technician assigned to this RO.
                  advisor_id:
                    type: integer
                    nullable: true
                    description: A foreign key which points to a Staff.id. Represents the service advisor assigned to this RO.
                  vehicle_id:
                    type: integer
                    description: A foreign key which points to a Vehicle.id. Represents the vehicle for this RO.
                  shop_id:
                    type: integer
                    description: A foreign key which points to a Shop.id. Represents the Shop for this RO.
                  detail:
                    type: string
                    nullable: true
                    description: Notes made by the staff about this RO.
                  preferred_contact_type:
                    type: string
                    nullable: true
                    description: How the customer prefers to receive progress updates about this RO. One of 'Waiting', 'Phone', 'Email', 'Text'. More contact types may be added.
                  part_discount_cents:
                    type: integer
                    nullable: true
                    description: The total amount in cents parts are discounted on this RO, subtracted from the parts subtotal before tax. This will be null if part_discount_percentage is non-null.
                  labort_discount_cents:
                    type: integer
                    nullable: true
                    description: The total amount in cents labor is discounted on this RO, subtracted from the labor subtotal before tax. This will be null if labor_discount_percentage is non-null.
                  part_discount_percentage:
                    type: number
                    nullable: true
                  labor_discount_percentage:
                    type: number
                    nullable: true
                  started_at:
                    type: string
                    nullable: true
                    format: date-time
                    description: The datetime the RO was started and transitioned to 'in_progress' state, or null if the RO is still an estimate.
                  closed_at:
                    type: string
                    nullable: true
                    format: date-time
                    description: The datetime the RO was closed and transitioned to 'invoice' state, or null if the RO is not yet an invoice.
                  picked_up_at:
                    type: string
                    nullable: true
                    format: date-time
                    description: The datetime the vehicle was marked as 'picked up', or null if the vehicle is still in the shop.
                  due_in_at:
                    type: string
                    nullable: true
                    format: date-time
                    description: The datetime the vehicle was scheduled to be dropped off.
                  due_out_at:
                    type: string
                    nullable: true
                    format: date-time
                    description: The datetime the vehicle was scheduled to be picked up.
                  part_tax_rate:
                    type: number
                    description: The tax rate applied to parts on this RO.
                  labor_tax_rate:
                    type: number
                    description: The tax rate applied to labor on this RO.
                  sublet_tax_rate:
                    type: number
                    description: The tax rate applied to sublets on this RO.
                  hazmat_tax_rate:
                    type: number
                    description: The tax rate applied to hazmats and fees on this RO.
                  taxable:
                    type: boolean
                    description: Determines if tax rates will apply on this RO.
                  customer_concern:
                    type: string
                    nullable: true
                    description: Represents the reason for Customer's Visit
                  vehicle_use:
                    type: string
                    nullable: true
                    description: Represents the primary use of vehicle
                  customer_source:
                    type: string
                    nullable: true
                    description: 'The marketing source of the customer for this RO. Example: "Repeat", "Referral", "Website", etc.'
                  supply_fee_cents:
                    type: integer
                    nullable: true
                  fleet_po:
                    type: string
                    nullable: true
                    description: Fleet purchase order number.
                  services:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: The service primary key.
                        title:
                          type: string
                        completed:
                          type: boolean
                          description: True if the service has been marked as completed by a staff member, false otherwise.
                        category_id:
                          type: integer
                        labor_rate_cents:
                          type: integer
                          nullable: true
                          description: The rate in cents that labor on this service is charged at.
                        fixed_price_cents:
                          type: integer
                          nullable: true
                          description: The price in cents that this service will be charged at.
                        fixed_price_labor_total_cents:
                          type: integer
                          nullable: true
                          description: The total price in cents that labors on this service will be charged at.
                        is_fixed_price_service:
                          type: boolean
                          description: Determines if this service has a fixed price.
                        canned_job_id:
                          type: integer
                          nullable: true
                          description: A foreign key which points to a CannedJob.id. Represents the canned job assigned to this specific service item.
                        comment:
                          type: text
                          description: Service comments.
                        completed_at:
                          type: string
                          nullable: true
                          format: date-time
                          description: The datetime the service was marked completed
                        last_completed_at:
                          type: string
                          nullable: true
                          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.
                        row_order:
                          type: integer
                          description: Sequence number of service.
                        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 appears 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.
                              taxable:
                                type: boolean
                                description: Determines if labor tax rate will be applied to this labor.
                              hours:
                                type: number
                              row_order:
                                type: integer
                                description: Sequence number of labor.
                              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
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The part primary key.
                              brand:
                                type: string
                                description: The part brand.
                              description:
                                type: string
                                description: The part description.
                              number:
                                type: string
                                description: The part number.
                              quoted_price_cents:
                                type: integer
                                description: The price of this part that is being sold to the customer in cents per unit.
                                deprecated: true
                              sell_price_cents:
                                type: integer
                                description: The price of this part that is being sold to the customer in cents per unit.
                              cost_cents:
                                type: integer
                                description: The wholesale cost of this part to the shop in cents per unit.
                              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.
                              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.
                              quantity_needed:
                                type: number
                                description: The number of parts needed for service.
                              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 appears 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 appears on the RO.
                              price_cents:
                                type: integer
                                description: The price in cents of sublet being sold to customer.
                              cost_cents:
                                type: integer
                                description: The amount in cents paid to provider for services.
                              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.
                              description:
                                type: string
                                description: The sublet description.
                              invoice_date:
                                type: string
                                format: date-time
                                description: The date when the invoice from provider was created.
                              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.
                              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 appears on the RO.
                              state:
                                type: string
                                description: One of "yellow", "green", "unchecked", "red". More states may be added.
                              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.
                        created_at:
                          type: string
                          format: date-time
                          description: The date and time when service was created.
                        updated_at:
                          type: string
                          format: date-time
                          description: The date and time when service was last updated.
                  payments:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: The payment primary key.
                        repair_order_id:
                          type: integer
                          description: A foreign key which points to a RepairOrder.id
                        payment_type:
                          type: string
                          description: 'The display name of the payment type. Payment types are customizable for each shop. Examples: "Other", "Credit Card", "Check", "Cash", "Credit Card - Visa", and "Other - Warranty".'
                        payment_type_details:
                          type: object
                          properties:
                            type:
                              type: string
                            name:
                              type: string
                              nullable: true
                        notes:
                          type: string
                          description: Staff-entered notes about this payment.
                        amount_cents:
                          type: integer
                          description: The total payment amount, in cents.
                        integrator_tags:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The tag primary key.
                              taggable_type:
                                type: string
                                description: Entity type the tag attached to.
                              taggable_id:
                                type: integer
                                description: Entity identifier the tag attached to.
                              name:
                                type: string
                                description: Tag Name.
                              value:
                                type: string
                                description: Tag Value.
                              created_at:
                                type: string
                                format: date-time
                                description: The date and time when tag was created.
                              updated_at:
                                type: string
                                format: date-time
                                description: The date and time when tag was last updated.
                        created_at:
                          type: string
                          format: date-time
                          description: The date and time when payment was created.
                        updated_at:
                          type: string
                          format: date-time
                          description: The date and time when payment was last updated.
                  integrator_tags:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: The tag primary key.
                        taggable_type:
                          type: string
                          description: Entity type the tag attached to.
                        taggable_id:
                          type: integer
                          description: Entity identifier the tag attached to.
                        name:
                          type: string
                          description: Tag Name.
                        value:
                          type: string
                          description: Tag Value.
                        created_at:
                          type: string
                          format: date-time
                          description: The date and time when tag was created.
                        updated_at:
                          type: string
                          format: date-time
                          description: The date and time when tag was last updated.
                  label:
                    type: object
                    nullable: true
                    properties:
                      id:
                        type: integer
                        description: Unique identifier of this record.
                      text:
                        type: string
                        nullable: true
                        description: The description of the label.
                      color_code:
                        type: string
                        nullable: true
                        description: The color code of which the label is represented.
                      row_order:
                        type: integer
                        nullable: true
                        description: Order of this specific label.
                  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.
  /api/v1/tenants/{tenant_id}/estimates/{estimate_id}/services/{service_id}:
    parameters:
    - name: tenant_id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    - name: estimate_id
      in: path
      required: true
      example: '2'
      schema:
        type: integer
    - name: service_id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    delete:
      summary: Delete service
      tags:
      - Estimates
      responses:
        '200':
          description: successful
          content:
            application/json:
              examples:
                successful:
                  value:
                    id: 2
                    created_at: '2026-06-09T14:22:46Z'
                    updated_at: '2026-06-09T14:22:46Z'
                    number: 11340
                    odometer: 90321
                    odometer_out: null
                    state: estimate
                    customer_id: 3
                    technician_id: 1
                    advisor_id: 2
                    vehicle_id: 1
                    detail: Key tag 84, customer waiting
                    preferred_contact_type: Text
                    part_discount_cents: null
                    labor_discount_cents: null
                    shop_id: 2
                    status_id: 1
                    taxable: true
                    customer_source: Repeat
                    supply_fee_cents: 3250
                    part_discount_percentage: null
                    labor_discount_percentage: null
                    customer_concern: example of reason for customers to visit
                    vehicle_use: example of primary use of vehicle
                    started_at: null
                    closed_at: null
                    picked_up_at: null
                    due_in_at: '2026-06-12T14:22:46Z'
                    due_out_at: null
                    part_tax_rate: 0.0
                    labor_tax_rate: 0.0
                    hazmat_tax_rate: 0.0
                    sublet_tax_rate: 0.0
                    services: []
                    payments: []
                    integrator_tags:
                    - id: 1
                      created_at: '2026-06-09T14:22:46Z'
                      updated_at: '2026-06-09T14:22:46Z'
                      taggable_type: RepairOrder
                      taggable_id: 2
                      name: tag_name
                      value: tag_value
                    label:
                      id: 1
                      text: Test
                      color_code: '#FFFFFF'
                      row_order: 1
              schema:
                type: object
                properties:
                  id:
                    type: integer
                

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