Shop-Ware Repair Orders API

The Repair Orders API from Shop-Ware — 5 operation(s) for repair orders.

OpenAPI Specification

shop-ware-repair-orders-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: API V1 API Partners Repair Orders API
  version: v1
  contact:
    name: API Support
    email: support@shop-ware.com
security:
- api_partner_id: []
  api_secret: []
tags:
- name: Repair Orders
paths:
  /api/v1/tenants/{tenant_id}/repair_orders/{id}/start:
    parameters:
    - name: tenant_id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    - name: id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    post:
      summary: Start a specific repair order
      tags:
      - Repair Orders
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              examples:
                successful:
                  value:
                    id: 1
                    created_at: '2026-06-09T14:25:00Z'
                    updated_at: '2026-06-09T14:25:00Z'
                    number: 11341
                    odometer: 90321
                    odometer_out: null
                    state: in_progress
                    customer_id: 3
                    technician_id: 2
                    advisor_id: 1
                    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: null
                    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
                    fleet_po: null
                    started_at: null
                    closed_at: null
                    picked_up_at: null
                    due_in_at: '2026-06-12T14:25:00Z'
                    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:25:00Z'
                      updated_at: '2026-06-09T14:25:00Z'
                      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:25:00Z'
                        updated_at: '2026-06-09T14:25:00Z'
                        name: Advise on proper course of action
                        technician_id: 2
                        taxable: false
                        hours: 0.13
                        row_order: 1
                      parts:
                      - id: 1
                        created_at: '2026-06-09T14:25:00Z'
                        updated_at: '2026-06-09T14:25:00Z'
                        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: 1.0
                        quantity_needed: 1.0
                      - id: 1
                        created_at: '2026-06-09T14:25:00Z'
                        updated_at: '2026-06-09T14:25:00Z'
                        brand: Superbright
                        description: 194 LED - AMBER 120*
                        number: WLED-A-120
                        quoted_price_cents: 500
                        cost_cents: 85
                        part_inventory_id: 1
                        taxable: false
                        sell_price_cents: 500
                        quantity: 1.0
                        quantity_needed: 0.0
                      hazmats:
                      - id: 1
                        created_at: '2026-06-09T14:25:00Z'
                        updated_at: '2026-06-09T14:25:00Z'
                        name: Recycling fee
                        fee_cents: 2000
                        taxable: true
                        quantity: 1.0
                      sublets:
                      - id: 1
                        created_at: '2026-06-09T14:25:00Z'
                        updated_at: '2026-06-09T14:25:00Z'
                        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:25:00Z'
                      inspections:
                      - id: 1
                        created_at: '2026-06-09T14:25:00Z'
                        updated_at: '2026-06-09T14:25:00Z'
                        name: Measure tire tread depth
                        state: red
                    payments:
                    - id: 1
                      created_at: '2026-06-09T14:25:00Z'
                      updated_at: '2026-06-09T14:25:00Z'
                      payment_type: Credit Card - Visa
                      payment_type_details:
                        type: Credit Card
                        name: Visa
                      notes: Customer made partial payment
                      amount_cents: 21849
                    integrator_tags:
                    - id: 1
                      created_at: '2026-06-09T14:25:00Z'
                      updated_at: '2026-06-09T14:25:00Z'
                      taggable_type: RepairOrder
                      taggable_id: 1
                      name: tag_name
                      value: tag_value
                    label: null
              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: One of 'estimate', 'in_progress', or 'invoice'.
                  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
                    description: RO parts discount in percents. This will be null if part_discount_cents is non-null.
                  labor_discount_percentage:
                    type: number
                    nullable: true
                    description: RO labors discount in percents. This will be null if labor_discount_cents is non-null.
                  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
                    description: Shop supplies fee, if manually entered. After the RO is closed, reflects the total amount of supply fees from parts and labor after discounts and caps. This may be null if the RO is not yet closed.
                  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
                          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.
                        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
                          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: 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. For parts with excess quantity beyond guardrails, the excess will appear as a separate part line item with its own pricing.
                              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.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                initial_assignee_id:
                  type: integer
                  description: A foreign key that points to a Staff.id that will be initially assigned the RO.
                send_estimate_email:
                  type: boolean
                  description: True if an email should be sent to this RO’s customer’s email address, or false otherwise. This parameter will be ignored if the customer does not have an email address.
              required:
              - initial_assignee_id
              - send_estimate_email
              example:
                initial_assignee_id: 1
                send_estimate_email: true
  /api/v1/tenants/{tenant_id}/repair_orders/{id}/share:
    parameters:
    - name: tenant_id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    - name: id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    post:
      summary: Share repair order via text
      tags:
      - Repair Orders
      parameters: []
      responses:
        '200':
          description: successful
    

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