> ## 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.

# Body & Paint

> Learn how to use Body & Paint workflows.

## Overview

Drivly's Body & Paint API simplifies the complex process of managing body and paint services,
offering a straightforward solution for obtaining quotes and placing orders.

***

## Workflows

The API facilitates two primary functions, `Quote` and `Order` Body & Paint service types.

### Quote Body & Paint

Obtain accurate quotes for body and paint services, including dent repair, paint touch-ups, and full body paint jobs.

<Accordion title="Create Quote">
  To get a quote for a body and paint service, you can submit a request with the following information:

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

  ```json Example Response theme={null}
  {
    "id": "quote_sf7Y7c",
    "deal": "deal_8f7Y7c", // Null if not provided
    "status": "pending",
    "estimatedTime": "2024-01-01T12:00:00Z",
    "checkoutLink": "https://checkout.driv.ly/quote_sf7Y7c",
    "paid": false,
    "total": 450,
    "items": [
      {
        "service": "body-&-paint",
        "price": 350,
        "name": "Body & Paint Repair for WP0AF2A99KS165242",
        "description": "fault_EbaCojKxsJL",
        "quantity": 1
      },
      {
        "service": "body-&-paint",
        "price": 100,
        "name": "Paint Touch-Up for WP0AF2A99KS165242",
        "description": "fault_tqdCQstNcNq",
        "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 body & paint process.
</Accordion>

### Order Paint & Body

Place orders for body and paint services, ensuring vehicles are quickly brought up to your standards.

<Accordion title="Place Order">
  Creating a service order for body and paint 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 Place Order theme={null}
  {
    "type": "body-&-paint",
    "vin": "WP0AF2A99KS165242",
    "deal": "deal_8f7Y7c" // Optional, but recommended
  }
  ```

  ```json Example Response theme={null}
  {
    "id": "order_cuRxvZfmcgAchV",
    "deal": "deal_8f7Y7c", // Null if not provided
    "status": "pending",
    "estimatedTime": "2024-01-01T12:00:00Z",
    "receiptLink": "https://checkout.driv.ly/order_cuRxvZfmcgAchV",
    "paid": true,
    "total": 450,
    "items": [
      {
        "service": "body-&-paint",
        "price": 350,
        "name": "Body & Paint Repair for WP0AF2A99KS165242",
        "description": "fault_EbaCojKxsJL",
        "quantity": 1
      },
      {
        "service": "body-&-paint",
        "price": 100,
        "name": "Paint Touch-Up for WP0AF2A99KS165242",
        "description": "fault_tqdCQstNcNq",
        "quantity": 1
      }
    ]
  }
  ```

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

***

## Typical Progression

Lets go over the typical progression of a body and paint 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": "body-&-paint",
  "data": {
    "id": "order_cuRxvZfmcgAchV",
    "deal": "deal_8f7Y7c",
    "status": "pending", // pending, in-progress, completed, delayed, canceled
    "estimatedTime": "2024-01-01T12:00:00Z",
    "receiptLink": "https://checkout.driv.ly/order_cuRxvZfmcgAchV",
    "paid": true,
    "price": 450,
    "items": [
      {
        "service": "body-&-paint",
        "price": 350,
        "name": "Body & Paint Repair for WP0AF2A99KS165242",
        "description": "fault_EbaCojKxsJL",
        "quantity": 1
      },
      {
        "service": "body-&-paint",
        "price": 100,
        "name": "Paint Touch-Up for WP0AF2A99KS165242",
        "description": "fault_tqdCQstNcNq",
        "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": "body-&-paint",
  "data": {
    "id": "order_cuRxvZfmcgAchV",
    "deal": "deal_8f7Y7c",
    "status": "in-progress",
    "estimatedTime": "2024-01-01T12:00:00Z",
    "receiptLink": "https://checkout.driv.ly/order_cuRxvZfmcgAchV",
    "paid": true,
    "price": 450,
    "items": [
      {
        "service": "body-&-paint",
        "price": 350,
        "name": "Body & Paint Repair for WP0AF2A99KS165242",
        "description": "fault_EbaCojKxsJL",
        "quantity": 1
      },
      {
        "service": "body-&-paint",
        "price": 100,
        "name": "Paint Touch-Up for WP0AF2A99KS165242",
        "description": "fault_tqdCQstNcNq",
        "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": "body-&-paint",
  "data": {
    "id": "order_cuRxvZfmcgAchV",
    "deal": "deal_8f7Y7c",
    "status": "completed",
    "estimatedTime": "2024-01-01T12:00:00Z",
    "receiptLink": "https://checkout.driv.ly/order_cuRxvZfmcgAchV",
    "paid": true,
    "price": 450,
    "items": [
      {
        "service": "body-&-paint",
        "price": 350,
        "name": "Body & Paint Repair for WP0AF2A99KS165242",
        "description": "fault_EbaCojKxsJL",
        "quantity": 1
      },
      {
        "service": "body-&-paint",
        "price": 100,
        "name": "Paint Touch-Up for WP0AF2A99KS165242",
        "description": "fault_tqdCQstNcNq",
        "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 Body & Paint API?

<CardGroup cols={2}>
  <Card title="Quote – Body and Paint" icon="square-quote" href="/services/reference/service-quote">
    Quote body and paint services
  </Card>

  <Card title="Order – Body and Paint" icon="money-bill-wave" href="/services/reference/service-order/create-a-new-service-order">
    Order body and paint services
  </Card>
</CardGroup>
