> ## Documentation Index
> Fetch the complete documentation index at: https://docs.driv.ly/llms.txt
> Use this file to discover all available pages before exploring further.

# Mechanical Repair

> Learn how to use Mechanical Repair workflows.

## Overview

Drivly's Mechanical Repair API simplifies the complex process of managing mechanical repairs,
offering a straightforward solution for obtaining quotes and placing orders.

***

## Workflows

The Mechanical Repair API facilitates two primary functions, `Quote Repair` and `Order Repair` for all mechanical repair types.

### Quote Mechanical Repair

Obtain accurate quotes for mechanical repair services, including engine, transmission, and brake repairs.

<Accordion title="Create Quote">
  To obtain a quote for Mechanical Repair services, you will need to provide the following information:

  ```json Create Quote theme={null}
  {
    "type": "mechanical-repair",
    "vin": "WP0AF2A99KS165242",
    "items": [
      // An Array of fault items, you can find
      // these in the vehicle's inspection report
      "fault_EbaCojKxsJL"
    ]
  }
  ```

  ```json Example Response theme={null}
  {
    "id": "quote_sf7Y7c",
    "status": "awaiting-payment",
    "estimatedTime": "2024-01-01T12:00:00Z",
    "checkoutLink": "https://checkout.driv.ly/quote_sf7Y7c",
    "paid": false,
    "total": 350,
    "items": [
      {
        "service": "mechanical-repair",
        "price": 350,
        "name": "Brake Repair for WP0AF2A99KS165242",
        "description": "fault_EbaCojKxsJL",
        "quantity": 1
      }
    ]
  }
  ```

  Upon payment, a service order will be generated with all pertinent details and an estimated completion time. Progress of the service order can be monitored using [webhooks](#webhooks), ensuring timely updates throughout the mechanical repair process.
</Accordion>

### Order Mechanical Repair

Place orders for mechanical repair services, ensuring vehicles are quickly brought up to your standards.

<Accordion title="Place Order">
  Creating a service order for mechanical repair services allows you to schedule, and pay for the service directly. This will create a service order which can be used to track progress and monitor costs.

  <Info>
    For service orders, attaching a deal is highly recommended as this will allow you to keep all
    pending invoices in one place. The final invoice for the deal will include this order, but is
    rolled up into the total cost of the deal.
  </Info>

  ```json Create Order theme={null}
  {
    "type": "mechanical-repair",
    "items": [
      // An Array of fault items, you can find
      // these in the vehicle's inspection report
      "fault_EbaCojKxsJL"
    ],
    "vin": "WP0AF2A99KS165242",
    "deal": "deal_8f7Y7c" // Optional, but recommended
  }
  ```

  ```json Example Response theme={null}
  {
    "id": "order_PUjabSbTExm1Ac",
    "deal": "deal_8f7Y7c",
    "status": "pending",
    "estimatedTime": "2024-01-01T12:00:00Z",
    "receiptLink": "https://checkout.driv.ly/order_PUjabSbTExm1Ac",
    "paid": true, // Will always be true for a service order
    "total": 350,
    "items": [
      {
        "service": "mechanical-repair",
        "price": 350,
        "name": "Brake Repair for WP0AF2A99KS165242",
        "description": "fault_EbaCojKxsJL",
        "quantity": 1
      }
    ]
  }
  ```

  You'll also be notified via [webhooks](#webhooks) of the service order's status, ensuring you're always up-to-date on the progress of your vehicle's mechanical-repair.
</Accordion>

***

## Typical Progression

Lets go over the typical progression of a mechanical repair service order. While these steps are
typical, there may be issues, delays, or other factors that can affect the progression of your service order.

If any problems arise, the service order's status will be updated to either `delayed` or `canceled`, and you
will be notified of the issue via email and webhook.

<Steps>
  <Step title="After payment is successful">
    A service order is created with the details of your quote, including the estimated time and cost.

    The service order will start in the `pending` status, this means that its just waiting for the team to pick up the vehicle, and start work.
  </Step>

  <Step title="After some time has passed">
    The service provider will begin working on your vehicle, ensuring it receives the care it needs.

    The service order will be updated to include the status of the service, moving from `pending` to `in-progress`.
  </Step>

  <Step title="Work is completed">
    Once the service is completed, the service order will be updated to reflect the status of the service.

    After work is completed, the service order will be updated to include the status of the service, moving from `in-progress` to `completed`.
  </Step>
</Steps>

***

## Webhooks

`service.created` - This event is triggered when a service order is created, providing you with the details of the order:

```json theme={null}
{
  "event": "service.created",
  "type": "mechanical-repair",
  "data": {
    "id": "order_PUjabSbTExm1Ac",
    "deal": "deal_8f7Y7c",
    "status": "pending", // pending, in-progress, completed, delayed, canceled
    "estimatedTime": "2024-01-01T12:00:00Z",
    "receiptLink": "https://checkout.driv.ly/order_PUjabSbTExm1Ac",
    "paid": true,
    "total": 350,
    "items": [
      {
        "service": "mechanical-repair",
        "price": 350,
        "name": "Brake Repair for WP0AF2A99KS165242",
        "description": "fault_EbaCojKxsJL",
        "quantity": 1
      }
    ],
    "history": [
      // An Array to show the keys changed and when
      {
        "status": "pending",
        "paid": true,
        "time": "2024-01-01T12:00:00Z"
      }
    ]
  }
}
```

`service.updated` - This event is triggered when a service order is updated, providing you with the updated details of the order:

```json theme={null}
{
  "event": "service.updated",
  "type": "mechanical-repair",
  "data": {
    "id": "order_PUjabSbTExm1Ac",
    "deal": "deal_8f7Y7c",
    "status": "in-progress",
    "estimatedTime": "2024-01-01T12:00:00Z",
    "receiptLink": "https://checkout.driv.ly/order_PUjabSbTExm1Ac",
    "paid": true,
    "total": 350,
    "items": [
      {
        "service": "mechanical-repair",
        "price": 350,
        "name": "Brake Repair for WP0AF2A99KS165242",
        "description": "fault_EbaCojKxsJL",
        "quantity": 1
      }
    ],
    "history": [
      {
        "status": "pending",
        "paid": true,
        "time": "2024-01-01T12:00:00Z"
      },
      {
        "status": "in-progress",
        "time": "2024-01-02T12:00:00Z"
      }
    ]
  }
}
```

`service.completed` - This event is triggered when a service order is completed, providing you with the final details of the order:

```json theme={null}
{
  "event": "service.completed",
  "type": "mechanical-repair",
  "data": {
    "id": "order_PUjabSbTExm1Ac",
    "deal": "deal_8f7Y7c",
    "status": "completed",
    "estimatedTime": "2024-01-01T12:00:00Z",
    "receiptLink": "https://checkout.driv.ly/order_PUjabSbTExm1Ac",
    "paid": true,
    "total": 350,
    "items": [
      {
        "service": "mechanical-repair",
        "price": 350,
        "name": "Brake Repair for WP0AF2A99KS165242",
        "description": "fault_EbaCojKxsJL",
        "quantity": 1
      }
    ],
    "history": [
      {
        "status": "pending",
        "paid": true,
        "time": "2024-01-01T12:00:00Z"
      },
      {
        "status": "in-progress",
        "time": "2024-01-02T12:00:00Z"
      },
      {
        "status": "completed",
        "time": "2024-01-03T12:00:00Z"
      }
    ]
  }
}
```

***

## Next Steps

Ready to get started with Mechanical Repair API?

<CardGroup cols={2}>
  <Card title="Quote – Mechanical Repair" icon="square-quote" href="/services/reference/service-quote">
    Quote mechanical repair services
  </Card>

  <Card title="Order – Mechanical Repair" icon="money-bill-wave" href="/services/reference/service-order/create-a-new-service-order">
    Order mechanical repair services
  </Card>
</CardGroup>
