Skip to content
AutomotiveMCP
SchemasService · R04RFC / v0.1

Service Order

v0.1.0

A dealership repair order (RO) — the authoritative record of a service visit, from write-up through invoice and payment. Captures the vehicle, advisor, mileage, and a set of operation lines (labor, parts, sublet, fee) each with complaint/cause/correction (the 3 C's), pay type, and optional warranty claim data. Rolls up parts/labor/sublet/fees/discount/tax into totals, records payments, and carries declined recommendations for follow-up marketing. Modernizes DMS service-RO structures and the ADF/AutomotiveAPI <service> lineage into a typed JSON entity; links customer, vehicle, appointment, advisor, technicians, parts, and warranty claim by id rather than embedding them. May carry PII on the payer/customer via linked records and denormalized contact fields — handle under the spec's Auth & Security profile.

Resourcesservice.get_orderservice.create_orderservice.list_orders

service-order.example.jsonJSON
{
  "id": "b3f0c2a1-8e4d-4a2b-9c1f-5d6e7a8b9c0d",
  "source_ids": [
    {
      "system": "cdk-drive",
      "id": "RO-0098421",
      "sequence": 1
    },
    {
      "system": "gm-globalconnect",
      "id": "WC-77123",
      "sequence": 2
    }
  ],
  "ro_number": "98421",
  "ro_tag": "K-142",
  "status": "paid",
  "pay_type": "customer_pay",
  "customer_id": "1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
  "customer_name": {
    "first": "Dana",
    "last": "Whitfield"
  },
  "customer_phone": {
    "number": "+1-402-555-0147"
  },
  "customer_email": {
    "address": "dana.whitfield@example.com"
  },
  "vehicle_id": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
  "vin": "1GNSKBKC5JR256789",
  "license_plate": "NE-KHP482",
  "appointment_id": "7f6e5d4c-3b2a-4918-8f7e-6d5c4b3a2918",
  "service_type": "maintenance",
  "priority": "waiter",
  "mileage_in": 41230,
  "mileage_out": 41232,
  "odometer_unit": "mi",
  "advisor_id": "2b1a0f9e-8d7c-4b6a-9584-73625140f3e2",
  "advisor_name": {
    "first": "Marcus",
    "last": "Reyes"
  },
  "dispatcher_id": "3c2b1a0f-9e8d-4c7b-8a69-847362514f30",
  "dealer_id": "0f1e2d3c-4b5a-4697-8879-2a1b0c9d8e7f",
  "service_department": "Cobalt Chevrolet - Main Service",
  "cost_center": "SVC-01",
  "opened_at": "2026-06-28T08:15:00Z",
  "promised_at": "2026-06-28T16:00:00Z",
  "work_started_at": "2026-06-28T09:02:00Z",
  "completed_at": "2026-06-28T14:42:00Z",
  "closed_at": "2026-06-28T15:10:00Z",
  "invoiced_at": "2026-06-28T15:05:00Z",
  "customer_arrived_at": "2026-06-28T08:05:00Z",
  "vehicle_delivered_at": "2026-06-28T15:20:00Z",
  "customer_waiting": true,
  "customer_concerns": "Requests scheduled oil change; also reports a grinding noise when braking at low speed.",
  "transportation": {
    "type": "waiter"
  },
  "currency": "USD",
  "lines": [
    {
      "id": "aaaa1111-2222-4333-8444-555566667777",
      "sequence": 1,
      "type": "labor",
      "op_code": "MAINT-LOF",
      "op_code_type": "menu",
      "description": "Lube, oil & filter - full synthetic",
      "complaint": "Customer requests scheduled oil change",
      "cause": "Maintenance interval reached (5,000 mi)",
      "correction": "Drained oil, replaced filter, refilled 6 qt 0W-20 full synthetic, reset oil life monitor",
      "status": "completed",
      "hours": 0.5,
      "actual_hours": 0.4,
      "labor_rate": {
        "amount": 165,
        "currency": "USD"
      },
      "labor_type": "menu",
      "amount": {
        "amount": 82.5,
        "currency": "USD"
      },
      "taxable": false,
      "technician_id": "4d3c2b1a-0f9e-4d8c-b7a6-95847362514f",
      "skill_level": "B",
      "pay_type": "customer_pay"
    },
    {
      "sequence": 2,
      "type": "part",
      "op_code": "MAINT-LOF",
      "op_code_type": "menu",
      "description": "Oil filter, ACDelco PF63",
      "part_number": "PF63",
      "part_id": "aa11bb22-cc33-4d44-8e55-ff66aa77bb88",
      "quantity": 1,
      "unit_price": {
        "amount": 12.99,
        "currency": "USD"
      },
      "unit_cost": {
        "amount": 6.1,
        "currency": "USD"
      },
      "amount": {
        "amount": 12.99,
        "currency": "USD"
      },
      "tax": {
        "amount": 0.9,
        "currency": "USD"
      },
      "taxable": true,
      "pay_type": "customer_pay"
    },
    {
      "sequence": 3,
      "type": "labor",
      "op_code": "BRK-FRPAD",
      "op_code_type": "dealer",
      "description": "Replace front brake pads and resurface rotors",
      "complaint": "Grinding noise when braking at low speed",
      "cause": "Front pads worn to 2mm; rotors within resurface spec",
      "correction": "Replaced front pads, resurfaced front rotors, cleaned and lubricated slides, road-tested OK",
      "status": "completed",
      "hours": 1.8,
      "actual_hours": 1.6,
      "labor_rate": {
        "amount": 165,
        "currency": "USD"
      },
      "labor_type": "flat_rate",
      "amount": {
        "amount": 297,
        "currency": "USD"
      },
      "taxable": false,
      "technician_id": "4d3c2b1a-0f9e-4d8c-b7a6-95847362514f",
      "skill_level": "A",
      "warranty": {
        "is_warranty": false
      },
      "pay_type": "customer_pay"
    },
    {
      "sequence": 4,
      "type": "sublet",
      "description": "Front-end alignment (sublet to Precision Alignment Co.)",
      "status": "completed",
      "amount": {
        "amount": 89.95,
        "currency": "USD"
      },
      "unit_cost": {
        "amount": 62,
        "currency": "USD"
      },
      "sublet_vendor": "Precision Alignment Co.",
      "sublet_invoice_number": "PA-55210",
      "taxable": false,
      "pay_type": "customer_pay"
    },
    {
      "sequence": 5,
      "type": "fee",
      "description": "Shop supplies & hazmat disposal",
      "status": "completed",
      "quantity": 1,
      "unit_price": {
        "amount": 14.5,
        "currency": "USD"
      },
      "amount": {
        "amount": 14.5,
        "currency": "USD"
      },
      "tax": {
        "amount": 1.01,
        "currency": "USD"
      },
      "taxable": true,
      "pay_type": "customer_pay"
    }
  ],
  "parts": [
    {
      "line_sequence": 2,
      "part_id": "aa11bb22-cc33-4d44-8e55-ff66aa77bb88",
      "part_number": "PF63",
      "description": "Engine oil filter, ACDelco PF63",
      "manufacturer": "ACDelco",
      "source": "oem",
      "quantity": 1,
      "unit_of_measure": "each",
      "cost": {
        "amount": 6.1,
        "currency": "USD"
      },
      "sale": {
        "amount": 12.99,
        "currency": "USD"
      },
      "bin_location": "A-14-3"
    },
    {
      "line_sequence": 3,
      "part_id": "bb22cc33-dd44-4e55-9f66-aa77bb88cc99",
      "part_number": "171-1104",
      "description": "Front brake pad set, ceramic",
      "manufacturer": "ACDelco",
      "source": "oem",
      "quantity": 1,
      "unit_of_measure": "each",
      "cost": {
        "amount": 41.2,
        "currency": "USD"
      },
      "sale": {
        "amount": 98,
        "currency": "USD"
      },
      "bin_location": "C-07-1"
    }
  ],
  "inspection": {
    "performed_at": "2026-06-28T09:20:00Z",
    "technician_id": "4d3c2b1a-0f9e-4d8c-b7a6-95847362514f",
    "template": "GM Courtesy Multi-Point Inspection",
    "items": [
      {
        "name": "Front brake pads",
        "grade": "red",
        "measurement": "2 mm",
        "notes": "Below minimum; replaced this visit"
      },
      {
        "name": "Tire tread (front)",
        "grade": "yellow",
        "measurement": "5/32 in",
        "notes": "Rotate/monitor"
      },
      {
        "name": "Cabin air filter",
        "grade": "yellow",
        "measurement": "contaminated",
        "notes": "Recommend replacement"
      },
      {
        "name": "Battery",
        "grade": "green",
        "measurement": "12.6 V, 640 CCA"
      }
    ]
  },
  "totals": {
    "parts": {
      "amount": 110.99,
      "currency": "USD"
    },
    "labor": {
      "amount": 379.5,
      "currency": "USD"
    },
    "sublet": {
      "amount": 89.95,
      "currency": "USD"
    },
    "fees": {
      "amount": 14.5,
      "currency": "USD"
    },
    "shop_supplies": {
      "amount": 14.5,
      "currency": "USD"
    },
    "discount": {
      "amount": 20,
      "currency": "USD"
    },
    "subtotal": {
      "amount": 594.94,
      "currency": "USD"
    },
    "taxable_amount": {
      "amount": 125.49,
      "currency": "USD"
    },
    "tax": {
      "amount": 45.86,
      "currency": "USD"
    },
    "total": {
      "amount": 620.8,
      "currency": "USD"
    },
    "amount_paid": {
      "amount": 620.8,
      "currency": "USD"
    },
    "balance_due": {
      "amount": 0,
      "currency": "USD"
    },
    "cost_total": {
      "amount": 240.3,
      "currency": "USD"
    },
    "customer_pay_total": {
      "amount": 620.8,
      "currency": "USD"
    },
    "warranty_total": {
      "amount": 0,
      "currency": "USD"
    },
    "internal_total": {
      "amount": 0,
      "currency": "USD"
    }
  },
  "payments": [
    {
      "method": "credit_card",
      "amount": {
        "amount": 620.8,
        "currency": "USD"
      },
      "paid_at": "2026-06-28T15:08:00Z",
      "reference": "AUTH-4417-9920",
      "card_brand": "visa",
      "card_last4": "4242"
    }
  ],
  "recommendations": [
    {
      "op_code": "TIRE-ROT",
      "description": "Tire rotation and balance",
      "urgency": "soon",
      "declined": true,
      "declined_at": "2026-06-28T13:30:00Z",
      "declined_reason": "not_now",
      "estimate": {
        "amount": 49.95,
        "currency": "USD"
      },
      "estimated_hours": 0.4,
      "follow_up_at": "2026-07-28T09:00:00Z"
    },
    {
      "op_code": "AIR-CAB",
      "description": "Replace cabin air filter (contaminated)",
      "urgency": "future",
      "declined": true,
      "declined_at": "2026-06-28T13:30:00Z",
      "declined_reason": "price",
      "estimate": {
        "amount": 64,
        "currency": "USD"
      },
      "estimated_hours": 0.3,
      "follow_up_at": "2026-09-28T09:00:00Z"
    }
  ],
  "authorizations": [
    {
      "authorized_at": "2026-06-28T10:05:00Z",
      "amount": {
        "amount": 650,
        "currency": "USD"
      },
      "method": "phone",
      "authorized_by": {
        "first": "Dana",
        "last": "Whitfield"
      },
      "line_sequences": [
        3,
        4
      ]
    }
  ],
  "csi": {
    "surveyed_at": "2026-06-30T12:00:00Z",
    "score": 9.5,
    "scale_max": 10,
    "nps": 10,
    "comments": "Marcus kept me updated the whole time. Quick and easy."
  },
  "notes": "Waiter appointment; express lane. Customer approved brake work by phone.",
  "created_at": "2026-06-28T08:15:03Z",
  "updated_at": "2026-06-28T15:10:12Z",
  "created_by": "2b1a0f9e-8d7c-4b6a-9584-73625140f3e2",
  "updated_by": "2b1a0f9e-8d7c-4b6a-9584-73625140f3e2",
  "extensions": {
    "cdk:appointment_source": "web_scheduler",
    "cobalt:express_lane": true
  }
}
Object shapes align with the AutomotiveAPI open data standard where sensible, and with the industry's ADF lead format — so a conformant server maps cleanly onto systems dealers already run.