> For the complete documentation index, see [llms.txt](https://help.paintscout.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.paintscout.com/developers/models.md).

# Models

## The Company object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Company":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the Company. Ignord when creating & updating companies"},"name":{"type":"string","nullable":true,"description":"The Name of the Company."},"email":{"type":"string","nullable":true,"description":"The email address of this Company"},"phoneNumber":{"type":"string","nullable":true,"description":"The phone number of this Company"},"phoneNumberExt":{"type":"string","nullable":true,"description":"The phone number extension of this Company"},"address":{"type":"string","nullable":true,"description":"The address of this Company"},"city":{"type":"string","nullable":true,"description":"The city of this Company"},"state":{"type":"string","nullable":true,"description":"The state of this Company"},"zip":{"type":"string","nullable":true,"description":"The zip or postal code of this Company"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Company"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"tags":{"type":"array","description":"Tags associated with this Company","items":{"type":"string"}}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}}}}}
```

## The CompanySearchResult object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"CompanySearchResult":{"$ref":"#/components/schemas/Company"},"Company":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the Company. Ignord when creating & updating companies"},"name":{"type":"string","nullable":true,"description":"The Name of the Company."},"email":{"type":"string","nullable":true,"description":"The email address of this Company"},"phoneNumber":{"type":"string","nullable":true,"description":"The phone number of this Company"},"phoneNumberExt":{"type":"string","nullable":true,"description":"The phone number extension of this Company"},"address":{"type":"string","nullable":true,"description":"The address of this Company"},"city":{"type":"string","nullable":true,"description":"The city of this Company"},"state":{"type":"string","nullable":true,"description":"The state of this Company"},"zip":{"type":"string","nullable":true,"description":"The zip or postal code of this Company"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Company"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"tags":{"type":"array","description":"Tags associated with this Company","items":{"type":"string"}}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}}}}}
```

## The Contact object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Contact":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the Contact. Ignored when creating & updating contacts"},"firstName":{"type":"string","nullable":true,"description":"The First Name of the Contact."},"lastName":{"type":"string","nullable":true,"description":"The Last Name of the Contact"},"secondaryFirstName":{"type":"string","nullable":true,"description":"The secondary First Name of the Contact"},"secondaryLastName":{"type":"string","nullable":true,"description":"The secondary Last Name of the Contact"},"company":{"type":"string","nullable":true,"description":"The name of the Company this Contact is associated with"},"email":{"type":"string","nullable":true,"description":"The email address of this Contact"},"alternateEmail":{"type":"string","nullable":true,"description":"The alternate email address of this Contact"},"phoneNumber":{"type":"string","nullable":true,"description":"The phone number of this Contact"},"phoneNumberExt":{"type":"string","nullable":true,"description":"The phone number extension of this Contact"},"alternatePhoneNumber":{"type":"string","nullable":true,"description":"The alternate phone number of this Contact"},"alternatePhoneNumberExt":{"type":"string","nullable":true,"description":"The alternate phone number extension of this Contact"},"preferredContactMethod":{"type":"string","nullable":true,"description":"The preferred contact method for this Contact"},"address":{"type":"string","nullable":true,"description":"The address of this Contact"},"city":{"type":"string","nullable":true,"description":"The city of this Contact"},"state":{"type":"string","nullable":true,"description":"The state of this Contact"},"zip":{"type":"string","nullable":true,"description":"The zip or postal code of this Contact"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Contact"},"source":{"$ref":"#/components/schemas/Source"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"note":{"type":"string","nullable":true,"description":"A note about this Contact"},"tags":{"type":"array","description":"Tags associated with this Contact","items":{"type":"string"}}}},"Source":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":true,"description":"The ID of the entity on the other side"},"provider":{"type":"string","nullable":true,"description":"The name of the provider this entity came from"}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}}}}}
```

## The ContactSearchResult object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"ContactSearchResult":{"$ref":"#/components/schemas/Contact"},"Contact":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the Contact. Ignored when creating & updating contacts"},"firstName":{"type":"string","nullable":true,"description":"The First Name of the Contact."},"lastName":{"type":"string","nullable":true,"description":"The Last Name of the Contact"},"secondaryFirstName":{"type":"string","nullable":true,"description":"The secondary First Name of the Contact"},"secondaryLastName":{"type":"string","nullable":true,"description":"The secondary Last Name of the Contact"},"company":{"type":"string","nullable":true,"description":"The name of the Company this Contact is associated with"},"email":{"type":"string","nullable":true,"description":"The email address of this Contact"},"alternateEmail":{"type":"string","nullable":true,"description":"The alternate email address of this Contact"},"phoneNumber":{"type":"string","nullable":true,"description":"The phone number of this Contact"},"phoneNumberExt":{"type":"string","nullable":true,"description":"The phone number extension of this Contact"},"alternatePhoneNumber":{"type":"string","nullable":true,"description":"The alternate phone number of this Contact"},"alternatePhoneNumberExt":{"type":"string","nullable":true,"description":"The alternate phone number extension of this Contact"},"preferredContactMethod":{"type":"string","nullable":true,"description":"The preferred contact method for this Contact"},"address":{"type":"string","nullable":true,"description":"The address of this Contact"},"city":{"type":"string","nullable":true,"description":"The city of this Contact"},"state":{"type":"string","nullable":true,"description":"The state of this Contact"},"zip":{"type":"string","nullable":true,"description":"The zip or postal code of this Contact"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Contact"},"source":{"$ref":"#/components/schemas/Source"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"note":{"type":"string","nullable":true,"description":"A note about this Contact"},"tags":{"type":"array","description":"Tags associated with this Contact","items":{"type":"string"}}}},"Source":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":true,"description":"The ID of the entity on the other side"},"provider":{"type":"string","nullable":true,"description":"The name of the provider this entity came from"}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}}}}}
```

## The Deal object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Deal":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid","description":"The unique ID for the Deal. Ignored when creating & updating deals."},"name":{"type":"string","nullable":true,"description":"The Name of the Deal."},"contact":{"type":"object","nullable":false,"description":"Contact details to create inline with the Deal","$ref":"#/components/schemas/Contact"},"jobAddress":{"type":"object","nullable":true,"additionalProperties":false,"description":"The Job Address of this Deal","properties":{"address":{"type":"string","nullable":true,"description":"The address component of the job address"},"city":{"type":"string","nullable":true,"description":"The city component of the job address"},"state":{"type":"string","nullable":true,"description":"The state component of the job address"},"zip":{"type":"string","nullable":true,"description":"The zip code component of the job address"}}},"pipeline":{"type":"string","nullable":true,"description":"The pipeline this Deal is in"},"stage":{"type":"string","nullable":true,"description":"The stage of the pipeline this Deal is in"},"value":{"type":"number","format":"float","nullable":true,"description":"The monetary value of this Deal"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Deal"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"tags":{"type":"array","description":"Tags associated with this Deal","items":{"type":"string"}},"quoteType":{"type":"object","nullable":true,"additionalProperties":false,"description":"The Quote Type associated with this Deal","properties":{"id":{"type":"string","description":"The unique ID of the Quote Type"},"label":{"type":"string","description":"The display label of the Quote Type"}}},"linkedEstimateIds":{"type":"array","description":"List of linked Estimate IDs","items":{"type":"string"}},"linkedInvoiceIds":{"type":"array","description":"List of linked Invoice IDs","items":{"type":"string"}}}},"Contact":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the Contact. Ignored when creating & updating contacts"},"firstName":{"type":"string","nullable":true,"description":"The First Name of the Contact."},"lastName":{"type":"string","nullable":true,"description":"The Last Name of the Contact"},"secondaryFirstName":{"type":"string","nullable":true,"description":"The secondary First Name of the Contact"},"secondaryLastName":{"type":"string","nullable":true,"description":"The secondary Last Name of the Contact"},"company":{"type":"string","nullable":true,"description":"The name of the Company this Contact is associated with"},"email":{"type":"string","nullable":true,"description":"The email address of this Contact"},"alternateEmail":{"type":"string","nullable":true,"description":"The alternate email address of this Contact"},"phoneNumber":{"type":"string","nullable":true,"description":"The phone number of this Contact"},"phoneNumberExt":{"type":"string","nullable":true,"description":"The phone number extension of this Contact"},"alternatePhoneNumber":{"type":"string","nullable":true,"description":"The alternate phone number of this Contact"},"alternatePhoneNumberExt":{"type":"string","nullable":true,"description":"The alternate phone number extension of this Contact"},"preferredContactMethod":{"type":"string","nullable":true,"description":"The preferred contact method for this Contact"},"address":{"type":"string","nullable":true,"description":"The address of this Contact"},"city":{"type":"string","nullable":true,"description":"The city of this Contact"},"state":{"type":"string","nullable":true,"description":"The state of this Contact"},"zip":{"type":"string","nullable":true,"description":"The zip or postal code of this Contact"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Contact"},"source":{"$ref":"#/components/schemas/Source"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"note":{"type":"string","nullable":true,"description":"A note about this Contact"},"tags":{"type":"array","description":"Tags associated with this Contact","items":{"type":"string"}}}},"Source":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":true,"description":"The ID of the entity on the other side"},"provider":{"type":"string","nullable":true,"description":"The name of the provider this entity came from"}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}}}}}
```

## The DealSearchResult object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"DealSearchResult":{"$ref":"#/components/schemas/Deal"},"Deal":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid","description":"The unique ID for the Deal. Ignored when creating & updating deals."},"name":{"type":"string","nullable":true,"description":"The Name of the Deal."},"contact":{"type":"object","nullable":false,"description":"Contact details to create inline with the Deal","$ref":"#/components/schemas/Contact"},"jobAddress":{"type":"object","nullable":true,"additionalProperties":false,"description":"The Job Address of this Deal","properties":{"address":{"type":"string","nullable":true,"description":"The address component of the job address"},"city":{"type":"string","nullable":true,"description":"The city component of the job address"},"state":{"type":"string","nullable":true,"description":"The state component of the job address"},"zip":{"type":"string","nullable":true,"description":"The zip code component of the job address"}}},"pipeline":{"type":"string","nullable":true,"description":"The pipeline this Deal is in"},"stage":{"type":"string","nullable":true,"description":"The stage of the pipeline this Deal is in"},"value":{"type":"number","format":"float","nullable":true,"description":"The monetary value of this Deal"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Deal"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"tags":{"type":"array","description":"Tags associated with this Deal","items":{"type":"string"}},"quoteType":{"type":"object","nullable":true,"additionalProperties":false,"description":"The Quote Type associated with this Deal","properties":{"id":{"type":"string","description":"The unique ID of the Quote Type"},"label":{"type":"string","description":"The display label of the Quote Type"}}},"linkedEstimateIds":{"type":"array","description":"List of linked Estimate IDs","items":{"type":"string"}},"linkedInvoiceIds":{"type":"array","description":"List of linked Invoice IDs","items":{"type":"string"}}}},"Contact":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the Contact. Ignored when creating & updating contacts"},"firstName":{"type":"string","nullable":true,"description":"The First Name of the Contact."},"lastName":{"type":"string","nullable":true,"description":"The Last Name of the Contact"},"secondaryFirstName":{"type":"string","nullable":true,"description":"The secondary First Name of the Contact"},"secondaryLastName":{"type":"string","nullable":true,"description":"The secondary Last Name of the Contact"},"company":{"type":"string","nullable":true,"description":"The name of the Company this Contact is associated with"},"email":{"type":"string","nullable":true,"description":"The email address of this Contact"},"alternateEmail":{"type":"string","nullable":true,"description":"The alternate email address of this Contact"},"phoneNumber":{"type":"string","nullable":true,"description":"The phone number of this Contact"},"phoneNumberExt":{"type":"string","nullable":true,"description":"The phone number extension of this Contact"},"alternatePhoneNumber":{"type":"string","nullable":true,"description":"The alternate phone number of this Contact"},"alternatePhoneNumberExt":{"type":"string","nullable":true,"description":"The alternate phone number extension of this Contact"},"preferredContactMethod":{"type":"string","nullable":true,"description":"The preferred contact method for this Contact"},"address":{"type":"string","nullable":true,"description":"The address of this Contact"},"city":{"type":"string","nullable":true,"description":"The city of this Contact"},"state":{"type":"string","nullable":true,"description":"The state of this Contact"},"zip":{"type":"string","nullable":true,"description":"The zip or postal code of this Contact"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Contact"},"source":{"$ref":"#/components/schemas/Source"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"note":{"type":"string","nullable":true,"description":"A note about this Contact"},"tags":{"type":"array","description":"Tags associated with this Contact","items":{"type":"string"}}}},"Source":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":true,"description":"The ID of the entity on the other side"},"provider":{"type":"string","nullable":true,"description":"The name of the provider this entity came from"}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}}}}}
```

## The Event object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Event":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":false,"description":"The unique ID of the Event. Ignored when creating new events."},"eventType":{"type":"string","nullable":false,"description":"The type of Event."},"dealId":{"type":"string","nullable":false,"description":"The deal ID this event is associated with"},"address":{"type":"string","nullable":true,"description":"The address"},"note":{"type":"string","nullable":true,"description":"A note about this event"},"canceled":{"type":"boolean","nullable":true,"description":"Whether the event has been canceled"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"},"start":{"type":"number","description":"The timestamp when this event is scheduled to start"},"end":{"type":"number","description":"The timestamp when this event is scheduled to end"}}}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}}}}}
```

## The EventSearchResult object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"EventSearchResult":{"$ref":"#/components/schemas/Event"},"Event":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":false,"description":"The unique ID of the Event. Ignored when creating new events."},"eventType":{"type":"string","nullable":false,"description":"The type of Event."},"dealId":{"type":"string","nullable":false,"description":"The deal ID this event is associated with"},"address":{"type":"string","nullable":true,"description":"The address"},"note":{"type":"string","nullable":true,"description":"A note about this event"},"canceled":{"type":"boolean","nullable":true,"description":"Whether the event has been canceled"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"},"start":{"type":"number","description":"The timestamp when this event is scheduled to start"},"end":{"type":"number","description":"The timestamp when this event is scheduled to end"}}}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}}}}}
```

## The Quote object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Quote":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"A unique ID for the Quote. Ignored when creating & updating quotes"},"number":{"type":"number","description":"The Number of the Quote"},"status":{"type":"string","nullable":true,"description":"The status of this quote"},"hourlyRate":{"type":"number","description":"The Hourly Rate of the Quote"},"contactId":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use contact.id instead."},"contact":{"$ref":"#/components/schemas/Contact"},"billingContact":{"$ref":"#/components/schemas/Contact"},"dates":{"type":"object","additionalProperties":false,"description":"important dates about this quote","properties":{"quote":{"type":"number","description":"The date the quote was create"},"sent":{"type":"number","description":"The date the quote was most recently sent"},"viewed":{"type":"number","description":"The date the quote was most recently viewed"},"accepted":{"type":"number","description":"The date the quote was accepted"},"declined":{"type":"number","description":"The date the quote was declined"}}},"jobAddress":{"type":"object","additionalProperties":false,"description":"The Job Address/Identifier of this quote","properties":{"identifier":{"type":"string","nullable":true,"description":"The free-form job identifier of this quote"},"address":{"type":"string","nullable":true,"description":"The address component of the job address"},"city":{"type":"string","nullable":true,"description":"The city component of the job address"},"state":{"type":"string","nullable":true,"description":"The state component of the job address"},"zip":{"type":"string","nullable":true,"description":"The zip code component of the job address"}}},"parentQuoteId":{"type":"string","nullable":true,"description":"The unique ID of the parent quote if this quote was created from another quote"},"parentQuoteNumber":{"type":"number","description":"The quote number of the parent quote if this quote was created from another quote"},"childInvoiceId":{"type":"string","nullable":true,"description":"The unique ID of the invoice created from this quote if available"},"dealId":{"type":"string","nullable":true,"description":"The unique ID of the deal associated with this quote"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this quote"},"quoteType":{"type":"object","additionalProperties":false,"description":"The Quote Type of this quote","properties":{"id":{"type":"string","nullable":true,"description":"The unique ID of the Quote Type"},"value":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteType.id instead"},"label":{"type":"string","nullable":true,"description":"The text used to describe this Quote Type"}}},"quoteTypeId":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteType.id instead"},"quoteTemplate":{"type":"object","additionalProperties":false,"description":"The Quote Template that was made to use this quote","properties":{"id":{"type":"string","nullable":true,"description":"The unique ID of the Quote Template"},"value":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteType.id instead"},"label":{"type":"string","nullable":true,"description":"The label of the Quote Template"}}},"quoteTemplateId":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteTemplate.id instead"},"payments":{"type":"array","description":"Payments applied to this quote","items":{"$ref":"#/components/schemas/Payment"}},"totalAdjustment":{"type":"object","additionalProperties":false,"description":"The manual total adjustment applied to the quote","properties":{"rate":{"type":"number","description":"The percentage of the adjustment. Omitted if the adjustment is not a percentage"},"total":{"type":"number","description":"The calculated amount of the adjustment of the sub-total"},"description":{"type":"string","nullable":true,"description":"The description of the adjustment"}}},"discount":{"type":"object","additionalProperties":false,"description":"The discount applied to the quote","properties":{"rate":{"type":"number","description":"The percentage of the discount. Omitted if the discount is not a percentage"},"total":{"type":"number","description":"The calculated amount of the discount of the sub-total"},"description":{"type":"string","nullable":true,"description":"The description of the discount"}}},"tax":{"type":"object","additionalProperties":false,"description":"The tax applied to the quote","properties":{"rate":{"type":"number","description":"The percentage rate of tax"},"total":{"type":"number","description":"The total amount of tax applied"},"description":{"type":"string","nullable":true,"description":"The description of the tax"},"details":{"type":"array","description":"The detailed tax breakdown by rate","items":{"type":"object","additionalProperties":false,"properties":{"key":{"type":"string","nullable":true,"description":"The id of the tax rate"},"rate":{"type":"number","description":"The percentage rate of tax"},"description":{"type":"string","nullable":true,"description":"The description of the tax rate"}}}}}},"terms":{"type":"string","nullable":true,"description":"The terms/contract associated with this quote"},"estimatorNotes":{"type":"string","nullable":true,"description":"The estimator notes associated with this quote"},"clientNote":{"type":"string","nullable":true,"description":"The client note associated with this quote"},"crewNote":{"type":"string","nullable":true,"description":"The crew note associated with this quote"},"totals":{"type":"object","additionalProperties":false,"description":"The totals of the quote","properties":{"price":{"type":"number","description":"The sub-total price of the quote"},"laborPrice":{"type":"number","description":"The labor component of the sub-total"},"materialsPrice":{"type":"number","description":"The materials component of the sub-total"},"additionalWorkLaborPrice":{"type":"number","description":"The additional work labor component of the total"},"additionalWorkMaterialsPrice":{"type":"number","description":"The additional work materials component of the total"},"afterAdjustment":{"type":"number","description":"The price after sub-total adjustment of the quote"},"afterDiscount":{"type":"number","description":"The price after discount of the quote"},"afterTax":{"type":"number","description":"The after tax price of the quote"},"hours":{"type":"number","description":"The number of hours of the quote"}}},"urls":{"type":"object","additionalProperties":false,"description":"Customer-View Links to this quote and work order","properties":{"quote":{"type":"string","description":"A link to this quote"},"workOrder":{"type":"string","description":"A link to this work order"}}},"source":{"$ref":"#/components/schemas/Source"},"owner":{"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"tags":{"type":"array","description":"Tags associated with this Quote","items":{"type":"string"}},"tagDetails":{"type":"array","description":"Detailed tag information associated with this Quote","items":{"$ref":"#/components/schemas/TagDetail"}}}},"Contact":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the Contact. Ignored when creating & updating contacts"},"firstName":{"type":"string","nullable":true,"description":"The First Name of the Contact."},"lastName":{"type":"string","nullable":true,"description":"The Last Name of the Contact"},"secondaryFirstName":{"type":"string","nullable":true,"description":"The secondary First Name of the Contact"},"secondaryLastName":{"type":"string","nullable":true,"description":"The secondary Last Name of the Contact"},"company":{"type":"string","nullable":true,"description":"The name of the Company this Contact is associated with"},"email":{"type":"string","nullable":true,"description":"The email address of this Contact"},"alternateEmail":{"type":"string","nullable":true,"description":"The alternate email address of this Contact"},"phoneNumber":{"type":"string","nullable":true,"description":"The phone number of this Contact"},"phoneNumberExt":{"type":"string","nullable":true,"description":"The phone number extension of this Contact"},"alternatePhoneNumber":{"type":"string","nullable":true,"description":"The alternate phone number of this Contact"},"alternatePhoneNumberExt":{"type":"string","nullable":true,"description":"The alternate phone number extension of this Contact"},"preferredContactMethod":{"type":"string","nullable":true,"description":"The preferred contact method for this Contact"},"address":{"type":"string","nullable":true,"description":"The address of this Contact"},"city":{"type":"string","nullable":true,"description":"The city of this Contact"},"state":{"type":"string","nullable":true,"description":"The state of this Contact"},"zip":{"type":"string","nullable":true,"description":"The zip or postal code of this Contact"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Contact"},"source":{"$ref":"#/components/schemas/Source"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"note":{"type":"string","nullable":true,"description":"A note about this Contact"},"tags":{"type":"array","description":"Tags associated with this Contact","items":{"type":"string"}}}},"Source":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":true,"description":"The ID of the entity on the other side"},"provider":{"type":"string","nullable":true,"description":"The name of the provider this entity came from"}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}},"Payment":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","nullable":true,"description":"The type of payment method"},"amount":{"type":"number","description":"The amount paid on this payment"},"date":{"type":"number","description":"The date the payment was made"},"note":{"type":"string","nullable":true,"description":"The note associated with this payment"},"deposit":{"type":"boolean","description":"Whether this payment is a deposit or not"}}},"TagDetail":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The id of the tag"},"label":{"type":"string","description":"The label of the tag"},"deleted":{"type":"boolean","description":"Whether the tag has been deleted"},"updated":{"type":"number","description":"The last updated timestamp of the tag"}}}}}}
```

## The QuoteUpdate object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"QuoteUpdate":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"A unique ID for the Quote. Ignored when creating & updating quotes"},"number":{"type":"number","description":"The Number of the Quote"},"status":{"type":"string","nullable":true,"description":"The status of this quote"},"hourlyRate":{"type":"number","description":"The Hourly Rate of the Quote"},"contactId":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use contact.id instead."},"contact":{"$ref":"#/components/schemas/Contact"},"billingContact":{"$ref":"#/components/schemas/Contact"},"dates":{"type":"object","additionalProperties":false,"description":"important dates about this quote","properties":{"quote":{"type":"number","description":"The date the quote was create"},"sent":{"type":"number","description":"The date the quote was most recently sent"},"viewed":{"type":"number","description":"The date the quote was most recently viewed"},"accepted":{"type":"number","description":"The date the quote was accepted"},"declined":{"type":"number","description":"The date the quote was declined"}}},"jobAddress":{"type":"object","additionalProperties":false,"description":"The Job Address/Identifier of this quote","properties":{"identifier":{"type":"string","nullable":true,"description":"The free-form job identifier of this quote"},"address":{"type":"string","nullable":true,"description":"The address component of the job address"},"city":{"type":"string","nullable":true,"description":"The city component of the job address"},"state":{"type":"string","nullable":true,"description":"The state component of the job address"},"zip":{"type":"string","nullable":true,"description":"The zip code component of the job address"}}},"parentQuoteId":{"type":"string","nullable":true,"description":"The unique ID of the parent quote if this quote was created from another quote"},"parentQuoteNumber":{"type":"number","description":"The quote number of the parent quote if this quote was created from another quote"},"childInvoiceId":{"type":"string","nullable":true,"description":"The unique ID of the invoice created from this quote if available"},"dealId":{"type":"string","nullable":true,"description":"The unique ID of the deal associated with this quote"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this quote"},"quoteType":{"type":"object","additionalProperties":false,"description":"The Quote Type of this quote","properties":{"id":{"type":"string","nullable":true,"description":"The unique ID of the Quote Type"},"value":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteType.id instead"},"label":{"type":"string","nullable":true,"description":"The text used to describe this Quote Type"}}},"quoteTypeId":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteType.id instead"},"quoteTemplate":{"type":"object","additionalProperties":false,"description":"The Quote Template that was made to use this quote","properties":{"id":{"type":"string","nullable":true,"description":"The unique ID of the Quote Template"},"value":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteType.id instead"},"label":{"type":"string","nullable":true,"description":"The label of the Quote Template"}}},"quoteTemplateId":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteTemplate.id instead"},"totalAdjustment":{"type":"object","additionalProperties":false,"description":"The manual total adjustment applied to the quote","properties":{"rate":{"type":"number","description":"The percentage of the adjustment. Omitted if the adjustment is not a percentage"},"total":{"type":"number","description":"The calculated amount of the adjustment of the sub-total"},"description":{"type":"string","nullable":true,"description":"The description of the adjustment"}}},"discount":{"type":"object","additionalProperties":false,"description":"The discount applied to the quote","properties":{"rate":{"type":"number","description":"The percentage of the discount. Omitted if the discount is not a percentage"},"total":{"type":"number","description":"The calculated amount of the discount of the sub-total"},"description":{"type":"string","nullable":true,"description":"The description of the discount"}}},"tax":{"type":"object","additionalProperties":false,"description":"The tax applied to the quote","properties":{"rate":{"type":"number","description":"The percentage rate of tax"},"total":{"type":"number","description":"The total amount of tax applied"},"description":{"type":"string","nullable":true,"description":"The description of the tax"},"details":{"type":"array","description":"The detailed tax breakdown by rate","items":{"type":"object","additionalProperties":false,"properties":{"key":{"type":"string","nullable":true,"description":"The id of the tax rate"},"rate":{"type":"number","description":"The percentage rate of tax"},"description":{"type":"string","nullable":true,"description":"The description of the tax rate"}}}}}},"terms":{"type":"string","nullable":true,"description":"The terms/contract associated with this quote"},"estimatorNotes":{"type":"string","nullable":true,"description":"The estimator notes associated with this quote"},"clientNote":{"type":"string","nullable":true,"description":"The client note associated with this quote"},"crewNote":{"type":"string","nullable":true,"description":"The crew note associated with this quote"},"totals":{"type":"object","additionalProperties":false,"description":"The totals of the quote","properties":{"price":{"type":"number","description":"The sub-total price of the quote"},"laborPrice":{"type":"number","description":"The labor component of the sub-total"},"materialsPrice":{"type":"number","description":"The materials component of the sub-total"},"additionalWorkLaborPrice":{"type":"number","description":"The additional work labor component of the total"},"additionalWorkMaterialsPrice":{"type":"number","description":"The additional work materials component of the total"},"afterAdjustment":{"type":"number","description":"The price after sub-total adjustment of the quote"},"afterDiscount":{"type":"number","description":"The price after discount of the quote"},"afterTax":{"type":"number","description":"The after tax price of the quote"},"hours":{"type":"number","description":"The number of hours of the quote"}}},"urls":{"type":"object","additionalProperties":false,"description":"Customer-View Links to this quote and work order","properties":{"quote":{"type":"string","description":"A link to this quote"},"workOrder":{"type":"string","description":"A link to this work order"}}},"source":{"$ref":"#/components/schemas/Source"},"owner":{"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"tags":{"type":"array","description":"Tags associated with this Quote","items":{"type":"string"}},"tagDetails":{"type":"array","description":"Detailed tag information associated with this Quote","items":{"$ref":"#/components/schemas/TagDetail"}}}},"Contact":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the Contact. Ignored when creating & updating contacts"},"firstName":{"type":"string","nullable":true,"description":"The First Name of the Contact."},"lastName":{"type":"string","nullable":true,"description":"The Last Name of the Contact"},"secondaryFirstName":{"type":"string","nullable":true,"description":"The secondary First Name of the Contact"},"secondaryLastName":{"type":"string","nullable":true,"description":"The secondary Last Name of the Contact"},"company":{"type":"string","nullable":true,"description":"The name of the Company this Contact is associated with"},"email":{"type":"string","nullable":true,"description":"The email address of this Contact"},"alternateEmail":{"type":"string","nullable":true,"description":"The alternate email address of this Contact"},"phoneNumber":{"type":"string","nullable":true,"description":"The phone number of this Contact"},"phoneNumberExt":{"type":"string","nullable":true,"description":"The phone number extension of this Contact"},"alternatePhoneNumber":{"type":"string","nullable":true,"description":"The alternate phone number of this Contact"},"alternatePhoneNumberExt":{"type":"string","nullable":true,"description":"The alternate phone number extension of this Contact"},"preferredContactMethod":{"type":"string","nullable":true,"description":"The preferred contact method for this Contact"},"address":{"type":"string","nullable":true,"description":"The address of this Contact"},"city":{"type":"string","nullable":true,"description":"The city of this Contact"},"state":{"type":"string","nullable":true,"description":"The state of this Contact"},"zip":{"type":"string","nullable":true,"description":"The zip or postal code of this Contact"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Contact"},"source":{"$ref":"#/components/schemas/Source"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"note":{"type":"string","nullable":true,"description":"A note about this Contact"},"tags":{"type":"array","description":"Tags associated with this Contact","items":{"type":"string"}}}},"Source":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":true,"description":"The ID of the entity on the other side"},"provider":{"type":"string","nullable":true,"description":"The name of the provider this entity came from"}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}},"TagDetail":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The id of the tag"},"label":{"type":"string","description":"The label of the tag"},"deleted":{"type":"boolean","description":"Whether the tag has been deleted"},"updated":{"type":"number","description":"The last updated timestamp of the tag"}}}}}}
```

## The QuoteItem object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"QuoteItem":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the quote item"},"name":{"type":"string","description":"The title/name for this item"},"quoteType":{"type":"string","description":"The quote type this item applies to"},"description":{"type":"string","description":"The plain text description for this item"},"descriptionHtml":{"type":"string","description":"The HTML formatted description for this item"},"price":{"type":"number","description":"The total price for this item"},"hours":{"type":"number","description":"The estimated hours for this item"},"quantity":{"type":"number","description":"The quantity of this item"},"pricePerUnit":{"type":"number","description":"The price per unit if quantity-based pricing"},"files":{"type":"array","description":"Files attached to this item","items":{"type":"object","properties":{"key":{"type":"string","description":"Unique identifier for the file"},"src":{"type":"string","description":"URL or path to the file"},"title":{"type":"string","description":"Title of the file"},"caption":{"type":"string","description":"Caption or description of the file"}}}},"source":{"type":"object","description":"External source information if item is from external system","properties":{"provider":{"type":"string","description":"The provider/system name"},"id":{"type":"string","description":"External system ID"},"value":{"type":"string","description":"External system value"},"label":{"type":"string","description":"External system label"}}},"section":{"type":"string","enum":["bid","options","archived","additional","pending"],"description":"The section this item belongs to","default":"bid"}},"required":["name","price"]}}}}
```

## The QuoteItemCreate object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"QuoteItemCreate":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The title/name for this item"},"quoteType":{"type":"string","description":"The quote type this item applies to"},"description":{"type":"string","description":"The plain text description for this item"},"descriptionHtml":{"type":"string","description":"The HTML formatted description for this item"},"price":{"type":"number","description":"The total price for this item"},"hours":{"type":"number","description":"The estimated hours for this item"},"quantity":{"type":"number","description":"The quantity of this item"},"pricePerUnit":{"type":"number","description":"The price per unit if quantity-based pricing"},"files":{"type":"array","description":"Files attached to this item","items":{"type":"object","properties":{"key":{"type":"string","description":"Unique identifier for the file"},"src":{"type":"string","description":"URL or path to the file"},"title":{"type":"string","description":"Title of the file"},"caption":{"type":"string","description":"Caption or description of the file"}}}},"source":{"type":"object","description":"External source information if item is from external system","properties":{"provider":{"type":"string","description":"The provider/system name"},"id":{"type":"string","description":"External system ID"},"value":{"type":"string","description":"External system value"},"label":{"type":"string","description":"External system label"}}},"section":{"type":"string","enum":["bid","options","archived","additional","pending"],"description":"The section this item belongs to","default":"bid"}},"required":["name","price"]}}}}
```

## The QuoteItemUpdate object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"QuoteItemUpdate":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The title/name for this item"},"quoteType":{"type":"string","description":"The quote type this item applies to"},"description":{"type":"string","description":"The plain text description for this item"},"descriptionHtml":{"type":"string","description":"The HTML formatted description for this item"},"price":{"type":"number","description":"The total price for this item"},"hours":{"type":"number","description":"The estimated hours for this item"},"quantity":{"type":"number","description":"The quantity of this item"},"pricePerUnit":{"type":"number","description":"The price per unit if quantity-based pricing"},"files":{"type":"array","description":"Files attached to this item","items":{"type":"object","properties":{"key":{"type":"string","description":"Unique identifier for the file"},"src":{"type":"string","description":"URL or path to the file"},"title":{"type":"string","description":"Title of the file"},"caption":{"type":"string","description":"Caption or description of the file"}}}},"source":{"type":"object","description":"External source information if item is from external system","properties":{"provider":{"type":"string","description":"The provider/system name"},"id":{"type":"string","description":"External system ID"},"value":{"type":"string","description":"External system value"},"label":{"type":"string","description":"External system label"}}},"section":{"type":"string","enum":["bid","options","archived","additional","pending"],"description":"The section this item belongs to"}}}}}}
```

## The QuoteSearchResult object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"QuoteSearchResult":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":false,"description":"A unique ID for the Quote."},"number":{"type":"number","description":"The Number of the Quote"},"status":{"type":"string","description":"The status of this quote"},"hourlyRate":{"type":"number","description":"The Hourly Rate of the Quote"},"contactId":{"type":"string","deprecated":true,"description":"This field is deprecated. Use contact.id instead"},"contact":{"$ref":"#/components/schemas/Contact"},"billingContact":{"$ref":"#/components/schemas/Contact"},"dates":{"type":"object","additionalProperties":false,"description":"important dates about this quote","properties":{"quote":{"type":"number","description":"The date the quote was create"},"sent":{"type":"number","description":"The date the quote was most recently sent"},"viewed":{"type":"number","description":"The date the quote was most recently viewed"},"accepted":{"type":"number","description":"The date the quote was accepted"},"declined":{"type":"number","description":"The date the quote was declined"}}},"jobAddress":{"type":"object","additionalProperties":false,"description":"The Job Address/Identifier of this quote","properties":{"identifier":{"type":"string","description":"The free-form job identifier of this quote"},"address":{"type":"string","description":"The address component of the job address"},"city":{"type":"string","description":"The city component of the job address"},"state":{"type":"string","description":"The state component of the job address"},"zip":{"type":"string","description":"The zip code component of the job address"}}},"childInvoiceId":{"type":"string","description":"The unique ID of the invoice created from this quote if available"},"quoteType":{"type":"object","additionalProperties":false,"description":"The Quote Type of this quote","properties":{"id":{"type":"string","description":"The unique ID of the Quote Type"},"value":{"type":"string","deprecated":true,"description":"This field is deprecated. Use quoteType.id instead"},"label":{"type":"string","description":"The text used to describe this Quote Type"}}},"quoteTypeId":{"type":"string","deprecated":true,"description":"This field is deprecated. Use quoteType.id instead"},"quoteTemplate":{"type":"object","additionalProperties":false,"description":"The Quote Template that was made to use this quote","properties":{"id":{"type":"string","description":"The unique ID of the Quote Template"},"value":{"type":"string","deprecated":true,"description":"This field is deprecated. Use quoteTemplate.id instead"},"label":{"type":"string","description":"The label of the Quote Template"}}},"quoteTemplateId":{"type":"string","deprecated":true,"description":"This field is deprecated. Use quoteTemplate.id instead"},"dealId":{"type":"string","description":"The unique ID of the deal associated with this quote"},"totalAdjustment":{"type":"object","additionalProperties":false,"description":"The manual total adjustment applied to the quote","properties":{"rate":{"type":"number","description":"The percentage of the adjustment. Omitted if the adjustment is not a percentage"},"total":{"type":"number","description":"The calculated amount of the adjustment of the sub-total"},"description":{"type":"string","description":"The description of the adjustment"}}},"discount":{"type":"object","additionalProperties":false,"description":"The discount applied to the quote","properties":{"rate":{"type":"number","description":"The percentage of the discount. Omitted if the discount is not a percentage"},"total":{"type":"number","description":"The calculated amount of the discount of the sub-total"},"description":{"type":"string","description":"The description of the discount"}}},"tax":{"type":"object","additionalProperties":false,"description":"The tax applied to the quote","properties":{"rate":{"type":"number","description":"The percentage rate of tax"},"total":{"type":"number","description":"The total amount of tax applied"},"description":{"type":"string","description":"The description of the tax"}}},"totals":{"type":"object","additionalProperties":false,"description":"The totals of the quote","properties":{"price":{"type":"number","description":"The sub-total price of the quote"},"laborPrice":{"type":"number","description":"The labor component of the sub-total"},"materialsPrice":{"type":"number","description":"The materials component of the sub-total"},"additionalWorkLaborPrice":{"type":"number","description":"The additional work labor component of the total"},"additionalWorkMaterialsPrice":{"type":"number","description":"The additional work materials component of the total"},"afterAdjustment":{"type":"number","description":"The price after sub-total adjustment of the quote"},"afterDiscount":{"type":"number","description":"The price after discount of the quote"},"afterTax":{"type":"number","description":"The after tax price of the quote"},"hours":{"type":"number","description":"The number of hours of the quote"}}},"source":{"$ref":"#/components/schemas/Source"},"owner":{"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"tags":{"type":"array","description":"Tags associated with this Quote","items":{"type":"string"}},"tagDetails":{"type":"array","description":"Detailed tag information associated with this Quote","items":{"$ref":"#/components/schemas/TagDetail"}}}},"Contact":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the Contact. Ignored when creating & updating contacts"},"firstName":{"type":"string","nullable":true,"description":"The First Name of the Contact."},"lastName":{"type":"string","nullable":true,"description":"The Last Name of the Contact"},"secondaryFirstName":{"type":"string","nullable":true,"description":"The secondary First Name of the Contact"},"secondaryLastName":{"type":"string","nullable":true,"description":"The secondary Last Name of the Contact"},"company":{"type":"string","nullable":true,"description":"The name of the Company this Contact is associated with"},"email":{"type":"string","nullable":true,"description":"The email address of this Contact"},"alternateEmail":{"type":"string","nullable":true,"description":"The alternate email address of this Contact"},"phoneNumber":{"type":"string","nullable":true,"description":"The phone number of this Contact"},"phoneNumberExt":{"type":"string","nullable":true,"description":"The phone number extension of this Contact"},"alternatePhoneNumber":{"type":"string","nullable":true,"description":"The alternate phone number of this Contact"},"alternatePhoneNumberExt":{"type":"string","nullable":true,"description":"The alternate phone number extension of this Contact"},"preferredContactMethod":{"type":"string","nullable":true,"description":"The preferred contact method for this Contact"},"address":{"type":"string","nullable":true,"description":"The address of this Contact"},"city":{"type":"string","nullable":true,"description":"The city of this Contact"},"state":{"type":"string","nullable":true,"description":"The state of this Contact"},"zip":{"type":"string","nullable":true,"description":"The zip or postal code of this Contact"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Contact"},"source":{"$ref":"#/components/schemas/Source"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"note":{"type":"string","nullable":true,"description":"A note about this Contact"},"tags":{"type":"array","description":"Tags associated with this Contact","items":{"type":"string"}}}},"Source":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":true,"description":"The ID of the entity on the other side"},"provider":{"type":"string","nullable":true,"description":"The name of the provider this entity came from"}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}},"TagDetail":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The id of the tag"},"label":{"type":"string","description":"The label of the tag"},"deleted":{"type":"boolean","description":"Whether the tag has been deleted"},"updated":{"type":"number","description":"The last updated timestamp of the tag"}}}}}}
```

## The Invoice object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Invoice":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":false,"description":"A unique ID for the Invoice. Ignored when creating & updating invoices."},"number":{"type":"number","description":"The Number of the Invoice"},"status":{"type":"string","nullable":true,"description":"The status of this invoice"},"hourlyRate":{"type":"number","description":"The Hourly Rate of the Invoice"},"contactId":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use contact.id instead"},"contact":{"$ref":"#/components/schemas/Contact"},"billingContact":{"$ref":"#/components/schemas/Contact"},"dates":{"type":"object","additionalProperties":false,"description":"important dates about this invoice","properties":{"quote":{"type":"number","description":"The date the invoice was created"},"sent":{"type":"number","description":"The date the invoice was most recently sent"},"viewed":{"type":"number","description":"The date the invoice was most recently viewed"},"accepted":{"type":"number","description":"The date the invoice was accepted"},"declined":{"type":"number","description":"The date the invoice was declined"}}},"jobAddress":{"type":"object","additionalProperties":false,"description":"The Job Address/Identifier of this invoice","properties":{"identifier":{"type":"string","nullable":true,"description":"The free-form job identifier of this invoice"},"address":{"type":"string","nullable":true,"description":"The address component of the job address"},"city":{"type":"string","nullable":true,"description":"The city component of the job address"},"state":{"type":"string","nullable":true,"description":"The state component of the job address"},"zip":{"type":"string","nullable":true,"description":"The zip code component of the job address"}}},"parentQuoteId":{"type":"string","nullable":true,"description":"The unique ID of the quote that this invoice was created from if available"},"parentQuoteNumber":{"type":"number","description":"The quote number of the quote that this invoice was created from if available"},"dealId":{"type":"string","nullable":true,"description":"The unique ID of the deal associated with this invoice"},"quoteTypeId":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteType.id instead"},"quoteType":{"type":"object","additionalProperties":false,"description":"The Invoice Type of this invoice","properties":{"id":{"type":"string","nullable":true,"description":"The unique ID of the Invoice Type"},"value":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteType.id instead"},"label":{"type":"string","nullable":true,"description":"The text used to describe this Invoice Type"}}},"quoteTemplateId":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteTemplate.id instead"},"quoteTemplate":{"type":"object","additionalProperties":false,"description":"The Invoice Template that was made to use this invoice","properties":{"id":{"type":"string","nullable":true,"description":"The unique ID of the Invoice Template"},"value":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteTemplate.id instead"},"label":{"type":"string","nullable":true,"description":"The label of the Invoice Template"}}},"items":{"type":"array","description":"The items that make up this invoice","items":{"$ref":"#/components/schemas/InvoiceItem"}},"payments":{"type":"array","description":"Payments applied to this invoice","items":{"$ref":"#/components/schemas/Payment"}},"totalAdjustment":{"type":"object","additionalProperties":false,"description":"The manual total adjustment applied to the invoice","properties":{"rate":{"type":"number","description":"The percentage of the adjustment. Omitted if the adjustment is not a percentage"},"total":{"type":"number","description":"The calculated amount of the adjustment of the sub-total"},"description":{"type":"string","nullable":true,"description":"The description of the adjustment"}}},"discount":{"type":"object","additionalProperties":false,"description":"The discount applied to the invoice","properties":{"rate":{"type":"number","description":"The percentage of the discount. Omitted if the discount is not a percentage"},"total":{"type":"number","description":"The calculated amount of the discount of the sub-total"},"description":{"type":"string","nullable":true,"description":"The description of the discount"}}},"tax":{"type":"object","additionalProperties":false,"description":"The tax applied to the invoice","properties":{"rate":{"type":"number","description":"The percentage rate of tax"},"total":{"type":"number","description":"The total amount of tax applied"},"description":{"type":"string","nullable":true,"description":"The description of the tax"},"details":{"type":"array","description":"The detailed tax breakdown by rate","items":{"type":"object","additionalProperties":false,"properties":{"rate":{"type":"number","description":"The percentage rate of tax"},"total":{"type":"number","description":"The total amount of tax applied at this rate"},"description":{"type":"string","nullable":true,"description":"The description of the tax at this rate"}}}}}},"terms":{"type":"string","nullable":true,"description":"The terms/contract associated with this invoice"},"estimatorNotes":{"type":"string","nullable":true,"description":"The estimator notes associated with this invoice"},"clientNote":{"type":"string","nullable":true,"description":"The client note associated with this invoice"},"crewNote":{"type":"string","nullable":true,"description":"The crew note associated with this invoice"},"totals":{"type":"object","additionalProperties":false,"description":"The totals of the invoice","properties":{"price":{"type":"number","description":"The sub-total price of the invoice"},"laborPrice":{"type":"number","description":"The labor component of the sub-total"},"materialsPrice":{"type":"number","description":"The materials component of the sub-total"},"additionalWorkLaborPrice":{"type":"number","description":"The additional work labor component of the total"},"additionalWorkMaterialsPrice":{"type":"number","description":"The additional work materials component of the total"},"afterAdjustment":{"type":"number","description":"The price after sub-total adjustment of the invoice"},"afterDiscount":{"type":"number","description":"The price after discount of the invoice"},"afterTax":{"type":"number","description":"The after tax price of the invoice"},"hours":{"type":"number","description":"The number of hours of the invoice"}}},"urls":{"type":"object","additionalProperties":false,"description":"Customer-View Links to this invoice and work order","properties":{"invoice":{"type":"string","description":"A link to this invoice"},"workOrder":{"type":"string","description":"A link to this work order"}}},"source":{"$ref":"#/components/schemas/Source"},"owner":{"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"tags":{"type":"array","description":"Tags associated with this Invoice","items":{"type":"string"}},"tagDetails":{"type":"array","description":"Detailed tag information associated with this Quote","items":{"$ref":"#/components/schemas/TagDetail"}}}},"Contact":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the Contact. Ignored when creating & updating contacts"},"firstName":{"type":"string","nullable":true,"description":"The First Name of the Contact."},"lastName":{"type":"string","nullable":true,"description":"The Last Name of the Contact"},"secondaryFirstName":{"type":"string","nullable":true,"description":"The secondary First Name of the Contact"},"secondaryLastName":{"type":"string","nullable":true,"description":"The secondary Last Name of the Contact"},"company":{"type":"string","nullable":true,"description":"The name of the Company this Contact is associated with"},"email":{"type":"string","nullable":true,"description":"The email address of this Contact"},"alternateEmail":{"type":"string","nullable":true,"description":"The alternate email address of this Contact"},"phoneNumber":{"type":"string","nullable":true,"description":"The phone number of this Contact"},"phoneNumberExt":{"type":"string","nullable":true,"description":"The phone number extension of this Contact"},"alternatePhoneNumber":{"type":"string","nullable":true,"description":"The alternate phone number of this Contact"},"alternatePhoneNumberExt":{"type":"string","nullable":true,"description":"The alternate phone number extension of this Contact"},"preferredContactMethod":{"type":"string","nullable":true,"description":"The preferred contact method for this Contact"},"address":{"type":"string","nullable":true,"description":"The address of this Contact"},"city":{"type":"string","nullable":true,"description":"The city of this Contact"},"state":{"type":"string","nullable":true,"description":"The state of this Contact"},"zip":{"type":"string","nullable":true,"description":"The zip or postal code of this Contact"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Contact"},"source":{"$ref":"#/components/schemas/Source"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"note":{"type":"string","nullable":true,"description":"A note about this Contact"},"tags":{"type":"array","description":"Tags associated with this Contact","items":{"type":"string"}}}},"Source":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":true,"description":"The ID of the entity on the other side"},"provider":{"type":"string","nullable":true,"description":"The name of the provider this entity came from"}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}},"InvoiceItem":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the invoice item"},"name":{"type":"string","description":"The title/name for this item"},"quoteType":{"type":"string","description":"The quote type this item applies to"},"description":{"type":"string","description":"The plain text description for this item"},"descriptionHtml":{"type":"string","description":"The HTML formatted description for this item"},"price":{"type":"number","description":"The total price for this item"},"hours":{"type":"number","description":"The estimated hours for this item"},"quantity":{"type":"number","description":"The quantity of this item"},"pricePerUnit":{"type":"number","description":"The price per unit if quantity-based pricing"},"crewNote":{"type":"string","description":"Notes for the crew working on this item"},"crewNoteHtml":{"type":"string","description":"HTML formatted notes for the crew"},"clientNote":{"type":"string","description":"Notes visible to the client"},"clientNoteHtml":{"type":"string","description":"HTML formatted notes visible to the client"},"files":{"type":"array","description":"Files attached to this item","items":{"type":"object","properties":{"key":{"type":"string","description":"Unique identifier for the file"},"src":{"type":"string","description":"URL or path to the file"},"title":{"type":"string","description":"Title of the file"},"caption":{"type":"string","description":"Caption or description of the file"}}}},"source":{"type":"object","description":"External source information if item is from external system","properties":{"provider":{"type":"string","description":"The provider/system name"},"id":{"type":"string","description":"External system ID"},"value":{"type":"string","description":"External system value"},"label":{"type":"string","description":"External system label"}}},"section":{"type":"string","enum":["bid","options","archived","additional","pending"],"description":"The section this item belongs to","default":"bid"}},"required":["name","price"]},"Payment":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","nullable":true,"description":"The type of payment method"},"amount":{"type":"number","description":"The amount paid on this payment"},"date":{"type":"number","description":"The date the payment was made"},"note":{"type":"string","nullable":true,"description":"The note associated with this payment"},"deposit":{"type":"boolean","description":"Whether this payment is a deposit or not"}}},"TagDetail":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The id of the tag"},"label":{"type":"string","description":"The label of the tag"},"deleted":{"type":"boolean","description":"Whether the tag has been deleted"},"updated":{"type":"number","description":"The last updated timestamp of the tag"}}}}}}
```

## The InvoiceUpdate object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"InvoiceUpdate":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":false,"description":"A unique ID for the Invoice. Ignored when creating & updating invoices."},"number":{"type":"number","description":"The Number of the Invoice"},"status":{"type":"string","nullable":true,"description":"The status of this invoice"},"hourlyRate":{"type":"number","description":"The Hourly Rate of the Invoice"},"contactId":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use contact.id instead"},"contact":{"$ref":"#/components/schemas/Contact"},"billingContact":{"$ref":"#/components/schemas/Contact"},"dates":{"type":"object","additionalProperties":false,"description":"important dates about this invoice","properties":{"quote":{"type":"number","description":"The date the invoice was created"},"sent":{"type":"number","description":"The date the invoice was most recently sent"},"viewed":{"type":"number","description":"The date the invoice was most recently viewed"},"accepted":{"type":"number","description":"The date the invoice was accepted"},"declined":{"type":"number","description":"The date the invoice was declined"}}},"jobAddress":{"type":"object","additionalProperties":false,"description":"The Job Address/Identifier of this invoice","properties":{"identifier":{"type":"string","nullable":true,"description":"The free-form job identifier of this invoice"},"address":{"type":"string","nullable":true,"description":"The address component of the job address"},"city":{"type":"string","nullable":true,"description":"The city component of the job address"},"state":{"type":"string","nullable":true,"description":"The state component of the job address"},"zip":{"type":"string","nullable":true,"description":"The zip code component of the job address"}}},"parentQuoteId":{"type":"string","nullable":true,"description":"The unique ID of the quote that this invoice was created from if available"},"parentQuoteNumber":{"type":"number","description":"The quote number of the quote that this invoice was created from if available"},"dealId":{"type":"string","nullable":true,"description":"The unique ID of the deal associated with this invoice"},"quoteTypeId":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteType.id instead"},"quoteType":{"type":"object","additionalProperties":false,"description":"The Invoice Type of this invoice","properties":{"id":{"type":"string","nullable":true,"description":"The unique ID of the Invoice Type"},"value":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteType.id instead"},"label":{"type":"string","nullable":true,"description":"The text used to describe this Invoice Type"}}},"quoteTemplateId":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteTemplate.id instead"},"quoteTemplate":{"type":"object","additionalProperties":false,"description":"The Invoice Template that was made to use this invoice","properties":{"id":{"type":"string","nullable":true,"description":"The unique ID of the Invoice Template"},"value":{"type":"string","nullable":true,"deprecated":true,"description":"This field is deprecated. Use quoteTemplate.id instead"},"label":{"type":"string","nullable":true,"description":"The label of the Invoice Template"}}},"items":{"type":"array","description":"The items that make up this invoice","items":{"$ref":"#/components/schemas/InvoiceItem"}},"totalAdjustment":{"type":"object","additionalProperties":false,"description":"The manual total adjustment applied to the invoice","properties":{"rate":{"type":"number","description":"The percentage of the adjustment. Omitted if the adjustment is not a percentage"},"total":{"type":"number","description":"The calculated amount of the adjustment of the sub-total"},"description":{"type":"string","nullable":true,"description":"The description of the adjustment"}}},"discount":{"type":"object","additionalProperties":false,"description":"The discount applied to the invoice","properties":{"rate":{"type":"number","description":"The percentage of the discount. Omitted if the discount is not a percentage"},"total":{"type":"number","description":"The calculated amount of the discount of the sub-total"},"description":{"type":"string","nullable":true,"description":"The description of the discount"}}},"tax":{"type":"object","additionalProperties":false,"description":"The tax applied to the invoice","properties":{"rate":{"type":"number","description":"The percentage rate of tax"},"total":{"type":"number","description":"The total amount of tax applied"},"description":{"type":"string","nullable":true,"description":"The description of the tax"},"details":{"type":"array","description":"The detailed tax breakdown by rate","items":{"type":"object","additionalProperties":false,"properties":{"rate":{"type":"number","description":"The percentage rate of tax"},"total":{"type":"number","description":"The total amount of tax applied at this rate"},"description":{"type":"string","nullable":true,"description":"The description of the tax at this rate"}}}}}},"terms":{"type":"string","nullable":true,"description":"The terms/contract associated with this invoice"},"estimatorNotes":{"type":"string","nullable":true,"description":"The estimator notes associated with this invoice"},"clientNote":{"type":"string","nullable":true,"description":"The client note associated with this invoice"},"crewNote":{"type":"string","nullable":true,"description":"The crew note associated with this invoice"},"totals":{"type":"object","additionalProperties":false,"description":"The totals of the invoice","properties":{"price":{"type":"number","description":"The sub-total price of the invoice"},"laborPrice":{"type":"number","description":"The labor component of the sub-total"},"materialsPrice":{"type":"number","description":"The materials component of the sub-total"},"additionalWorkLaborPrice":{"type":"number","description":"The additional work labor component of the total"},"additionalWorkMaterialsPrice":{"type":"number","description":"The additional work materials component of the total"},"afterAdjustment":{"type":"number","description":"The price after sub-total adjustment of the invoice"},"afterDiscount":{"type":"number","description":"The price after discount of the invoice"},"afterTax":{"type":"number","description":"The after tax price of the invoice"},"hours":{"type":"number","description":"The number of hours of the invoice"}}},"urls":{"type":"object","additionalProperties":false,"description":"Customer-View Links to this invoice and work order","properties":{"invoice":{"type":"string","description":"A link to this invoice"},"workOrder":{"type":"string","description":"A link to this work order"}}},"source":{"$ref":"#/components/schemas/Source"},"owner":{"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"tags":{"type":"array","description":"Tags associated with this Invoice","items":{"type":"string"}},"tagDetails":{"type":"array","description":"Detailed tag information associated with this Quote","items":{"$ref":"#/components/schemas/TagDetail"}}}},"Contact":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the Contact. Ignored when creating & updating contacts"},"firstName":{"type":"string","nullable":true,"description":"The First Name of the Contact."},"lastName":{"type":"string","nullable":true,"description":"The Last Name of the Contact"},"secondaryFirstName":{"type":"string","nullable":true,"description":"The secondary First Name of the Contact"},"secondaryLastName":{"type":"string","nullable":true,"description":"The secondary Last Name of the Contact"},"company":{"type":"string","nullable":true,"description":"The name of the Company this Contact is associated with"},"email":{"type":"string","nullable":true,"description":"The email address of this Contact"},"alternateEmail":{"type":"string","nullable":true,"description":"The alternate email address of this Contact"},"phoneNumber":{"type":"string","nullable":true,"description":"The phone number of this Contact"},"phoneNumberExt":{"type":"string","nullable":true,"description":"The phone number extension of this Contact"},"alternatePhoneNumber":{"type":"string","nullable":true,"description":"The alternate phone number of this Contact"},"alternatePhoneNumberExt":{"type":"string","nullable":true,"description":"The alternate phone number extension of this Contact"},"preferredContactMethod":{"type":"string","nullable":true,"description":"The preferred contact method for this Contact"},"address":{"type":"string","nullable":true,"description":"The address of this Contact"},"city":{"type":"string","nullable":true,"description":"The city of this Contact"},"state":{"type":"string","nullable":true,"description":"The state of this Contact"},"zip":{"type":"string","nullable":true,"description":"The zip or postal code of this Contact"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Contact"},"source":{"$ref":"#/components/schemas/Source"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"note":{"type":"string","nullable":true,"description":"A note about this Contact"},"tags":{"type":"array","description":"Tags associated with this Contact","items":{"type":"string"}}}},"Source":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":true,"description":"The ID of the entity on the other side"},"provider":{"type":"string","nullable":true,"description":"The name of the provider this entity came from"}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}},"InvoiceItem":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the invoice item"},"name":{"type":"string","description":"The title/name for this item"},"quoteType":{"type":"string","description":"The quote type this item applies to"},"description":{"type":"string","description":"The plain text description for this item"},"descriptionHtml":{"type":"string","description":"The HTML formatted description for this item"},"price":{"type":"number","description":"The total price for this item"},"hours":{"type":"number","description":"The estimated hours for this item"},"quantity":{"type":"number","description":"The quantity of this item"},"pricePerUnit":{"type":"number","description":"The price per unit if quantity-based pricing"},"crewNote":{"type":"string","description":"Notes for the crew working on this item"},"crewNoteHtml":{"type":"string","description":"HTML formatted notes for the crew"},"clientNote":{"type":"string","description":"Notes visible to the client"},"clientNoteHtml":{"type":"string","description":"HTML formatted notes visible to the client"},"files":{"type":"array","description":"Files attached to this item","items":{"type":"object","properties":{"key":{"type":"string","description":"Unique identifier for the file"},"src":{"type":"string","description":"URL or path to the file"},"title":{"type":"string","description":"Title of the file"},"caption":{"type":"string","description":"Caption or description of the file"}}}},"source":{"type":"object","description":"External source information if item is from external system","properties":{"provider":{"type":"string","description":"The provider/system name"},"id":{"type":"string","description":"External system ID"},"value":{"type":"string","description":"External system value"},"label":{"type":"string","description":"External system label"}}},"section":{"type":"string","enum":["bid","options","archived","additional","pending"],"description":"The section this item belongs to","default":"bid"}},"required":["name","price"]},"TagDetail":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The id of the tag"},"label":{"type":"string","description":"The label of the tag"},"deleted":{"type":"boolean","description":"Whether the tag has been deleted"},"updated":{"type":"number","description":"The last updated timestamp of the tag"}}}}}}
```

## The InvoiceItem object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"InvoiceItem":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the invoice item"},"name":{"type":"string","description":"The title/name for this item"},"quoteType":{"type":"string","description":"The quote type this item applies to"},"description":{"type":"string","description":"The plain text description for this item"},"descriptionHtml":{"type":"string","description":"The HTML formatted description for this item"},"price":{"type":"number","description":"The total price for this item"},"hours":{"type":"number","description":"The estimated hours for this item"},"quantity":{"type":"number","description":"The quantity of this item"},"pricePerUnit":{"type":"number","description":"The price per unit if quantity-based pricing"},"crewNote":{"type":"string","description":"Notes for the crew working on this item"},"crewNoteHtml":{"type":"string","description":"HTML formatted notes for the crew"},"clientNote":{"type":"string","description":"Notes visible to the client"},"clientNoteHtml":{"type":"string","description":"HTML formatted notes visible to the client"},"files":{"type":"array","description":"Files attached to this item","items":{"type":"object","properties":{"key":{"type":"string","description":"Unique identifier for the file"},"src":{"type":"string","description":"URL or path to the file"},"title":{"type":"string","description":"Title of the file"},"caption":{"type":"string","description":"Caption or description of the file"}}}},"source":{"type":"object","description":"External source information if item is from external system","properties":{"provider":{"type":"string","description":"The provider/system name"},"id":{"type":"string","description":"External system ID"},"value":{"type":"string","description":"External system value"},"label":{"type":"string","description":"External system label"}}},"section":{"type":"string","enum":["bid","options","archived","additional","pending"],"description":"The section this item belongs to","default":"bid"}},"required":["name","price"]}}}}
```

## The InvoiceItemCreate object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"InvoiceItemCreate":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The title/name for this item"},"quoteType":{"type":"string","description":"The quote type this item applies to"},"description":{"type":"string","description":"The plain text description for this item"},"descriptionHtml":{"type":"string","description":"The HTML formatted description for this item"},"price":{"type":"number","description":"The total price for this item"},"hours":{"type":"number","description":"The estimated hours for this item"},"quantity":{"type":"number","description":"The quantity of this item"},"pricePerUnit":{"type":"number","description":"The price per unit if quantity-based pricing"},"crewNote":{"type":"string","description":"Notes for the crew working on this item"},"crewNoteHtml":{"type":"string","description":"HTML formatted notes for the crew"},"clientNote":{"type":"string","description":"Notes visible to the client"},"clientNoteHtml":{"type":"string","description":"HTML formatted notes visible to the client"},"files":{"type":"array","description":"Files attached to this item","items":{"type":"object","properties":{"key":{"type":"string","description":"Unique identifier for the file"},"src":{"type":"string","description":"URL or path to the file"},"title":{"type":"string","description":"Title of the file"},"caption":{"type":"string","description":"Caption or description of the file"}}}},"source":{"type":"object","description":"External source information if item is from external system","properties":{"provider":{"type":"string","description":"The provider/system name"},"id":{"type":"string","description":"External system ID"},"value":{"type":"string","description":"External system value"},"label":{"type":"string","description":"External system label"}}},"section":{"type":"string","enum":["bid","options","archived","additional","pending"],"description":"The section this item belongs to","default":"bid"}},"required":["name","price"]}}}}
```

## The InvoiceItemUpdate object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"InvoiceItemUpdate":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The title/name for this item"},"quoteType":{"type":"string","description":"The quote type this item applies to"},"description":{"type":"string","description":"The plain text description for this item"},"descriptionHtml":{"type":"string","description":"The HTML formatted description for this item"},"price":{"type":"number","description":"The total price for this item"},"hours":{"type":"number","description":"The estimated hours for this item"},"quantity":{"type":"number","description":"The quantity of this item"},"pricePerUnit":{"type":"number","description":"The price per unit if quantity-based pricing"},"crewNote":{"type":"string","description":"Notes for the crew working on this item"},"crewNoteHtml":{"type":"string","description":"HTML formatted notes for the crew"},"clientNote":{"type":"string","description":"Notes visible to the client"},"clientNoteHtml":{"type":"string","description":"HTML formatted notes visible to the client"},"files":{"type":"array","description":"Files attached to this item","items":{"type":"object","properties":{"key":{"type":"string","description":"Unique identifier for the file"},"src":{"type":"string","description":"URL or path to the file"},"title":{"type":"string","description":"Title of the file"},"caption":{"type":"string","description":"Caption or description of the file"}}}},"source":{"type":"object","description":"External source information if item is from external system","properties":{"provider":{"type":"string","description":"The provider/system name"},"id":{"type":"string","description":"External system ID"},"value":{"type":"string","description":"External system value"},"label":{"type":"string","description":"External system label"}}},"section":{"type":"string","enum":["bid","options","archived","additional","pending"],"description":"The section this item belongs to"}}}}}}
```

## The InvoiceSearchResult object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"InvoiceSearchResult":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":false,"description":"A unique ID for the Invoice."},"number":{"type":"number","description":"The Number of the Invoice"},"status":{"type":"string","description":"The status of this invoice"},"hourlyRate":{"type":"number","description":"The Hourly Rate of the Invoice"},"contactId":{"type":"string","deprecated":true,"description":"This field is deprecated. Use contact.id instead"},"contact":{"$ref":"#/components/schemas/Contact"},"billingContact":{"$ref":"#/components/schemas/Contact"},"dates":{"type":"object","additionalProperties":false,"description":"important dates about this invoice","properties":{"quote":{"type":"number","description":"The date the invoice was create"},"sent":{"type":"number","description":"The date the invoice was most recently sent"},"viewed":{"type":"number","description":"The date the invoice was most recently viewed"},"accepted":{"type":"number","description":"The date the invoice was accepted"},"declined":{"type":"number","description":"The date the invoice was declined"}}},"jobAddress":{"type":"object","additionalProperties":false,"description":"The Job Address/Identifier of this invoice","properties":{"identifier":{"type":"string","description":"The free-form job identifier of this invoice"},"address":{"type":"string","description":"The address component of the job address"},"city":{"type":"string","description":"The city component of the job address"},"state":{"type":"string","description":"The state component of the job address"},"zip":{"type":"string","description":"The zip code component of the job address"}}},"parentQuoteId":{"type":"string","description":"The unique ID of the quote that this invoice was created from if available"},"parentQuoteNumber":{"type":"number","description":"The quote number of the quote that this invoice was created from if available"},"dealId":{"type":"string","description":"The unique ID of the deal associated with this invoice"},"quoteType":{"type":"object","additionalProperties":false,"description":"The Invoice Type of this invoice","properties":{"id":{"type":"string","description":"The unique ID of the Invoice Type"},"label":{"type":"string","description":"The text used to describe this Invoice Type"}}},"quoteTemplate":{"type":"object","additionalProperties":false,"description":"The Invoice Template that was made to use this invoice","properties":{"id":{"type":"string","description":"The unique ID of the Invoice Template"},"label":{"type":"string","description":"The label of the Invoice Template"}}},"totalAdjustment":{"type":"object","additionalProperties":false,"description":"The manual total adjustment applied to the invoice","properties":{"rate":{"type":"number","description":"The percentage of the adjustment. Omitted if the adjustment is not a percentage"},"total":{"type":"number","description":"The calculated amount of the adjustment of the sub-total"},"description":{"type":"string","description":"The description of the adjustment"}}},"discount":{"type":"object","additionalProperties":false,"description":"The discount applied to the invoice","properties":{"rate":{"type":"number","description":"The percentage of the discount. Omitted if the discount is not a percentage"},"total":{"type":"number","description":"The calculated amount of the discount of the sub-total"},"description":{"type":"string","description":"The description of the discount"}}},"tax":{"type":"object","additionalProperties":false,"description":"The tax applied to the invoice","properties":{"rate":{"type":"number","description":"The percentage rate of tax"},"total":{"type":"number","description":"The total amount of tax applied"},"description":{"type":"string","description":"The description of the tax"}}},"totals":{"type":"object","additionalProperties":false,"description":"The totals of the invoice","properties":{"price":{"type":"number","description":"The sub-total price of the invoice"},"laborPrice":{"type":"number","description":"The labor component of the sub-total"},"materialsPrice":{"type":"number","description":"The materials component of the sub-total"},"additionalWorkLaborPrice":{"type":"number","description":"The additional work labor component of the total"},"additionalWorkMaterialsPrice":{"type":"number","description":"The additional work materials component of the total"},"afterAdjustment":{"type":"number","description":"The price after sub-total adjustment of the invoice"},"afterDiscount":{"type":"number","description":"The price after discount of the invoice"},"afterTax":{"type":"number","description":"The after tax price of the invoice"},"hours":{"type":"number","description":"The number of hours of the invoice"}}},"source":{"$ref":"#/components/schemas/Source"},"owner":{"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"tags":{"type":"array","description":"Tags associated with this Invoice","items":{"type":"string"}}}},"Contact":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the Contact. Ignored when creating & updating contacts"},"firstName":{"type":"string","nullable":true,"description":"The First Name of the Contact."},"lastName":{"type":"string","nullable":true,"description":"The Last Name of the Contact"},"secondaryFirstName":{"type":"string","nullable":true,"description":"The secondary First Name of the Contact"},"secondaryLastName":{"type":"string","nullable":true,"description":"The secondary Last Name of the Contact"},"company":{"type":"string","nullable":true,"description":"The name of the Company this Contact is associated with"},"email":{"type":"string","nullable":true,"description":"The email address of this Contact"},"alternateEmail":{"type":"string","nullable":true,"description":"The alternate email address of this Contact"},"phoneNumber":{"type":"string","nullable":true,"description":"The phone number of this Contact"},"phoneNumberExt":{"type":"string","nullable":true,"description":"The phone number extension of this Contact"},"alternatePhoneNumber":{"type":"string","nullable":true,"description":"The alternate phone number of this Contact"},"alternatePhoneNumberExt":{"type":"string","nullable":true,"description":"The alternate phone number extension of this Contact"},"preferredContactMethod":{"type":"string","nullable":true,"description":"The preferred contact method for this Contact"},"address":{"type":"string","nullable":true,"description":"The address of this Contact"},"city":{"type":"string","nullable":true,"description":"The city of this Contact"},"state":{"type":"string","nullable":true,"description":"The state of this Contact"},"zip":{"type":"string","nullable":true,"description":"The zip or postal code of this Contact"},"leadSource":{"type":"string","nullable":true,"description":"The lead source of this Contact"},"source":{"$ref":"#/components/schemas/Source"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"},"note":{"type":"string","nullable":true,"description":"A note about this Contact"},"tags":{"type":"array","description":"Tags associated with this Contact","items":{"type":"string"}}}},"Source":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":true,"description":"The ID of the entity on the other side"},"provider":{"type":"string","nullable":true,"description":"The name of the provider this entity came from"}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}}}}}
```

## The User object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"User":{"type":"object","additionalProperties":false,"properties":{"userId":{"type":"string","description":"The unique user ID from Auth0"},"companyId":{"type":"string","description":"The company ID this user belongs to"},"email":{"type":"string","description":"The email address of the user"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"active":{"type":"boolean","description":"Whether the user account is active"},"timestamp":{"$ref":"#/components/schemas/UserTimestamp"}},"required":["userId","companyId","email","active"]},"UserTimestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"},"lastLogin":{"type":"number","description":"The timestamp when this user last logged in"}}}}}}
```

## The Owner object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}}}}}
```

## The QuoteType object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"QuoteType":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the quote type."},"label":{"type":"string","description":"The display label of the quote type."},"active":{"type":"boolean","description":"Whether this quote type is active & usable"},"defaultHourlyRate":{"type":"number","description":"The default hourly rate for this quote type"},"defaultTerms":{"type":"string","description":"The default terms template for this quote type"},"defaultAreaType":{"type":"string","description":"The default area type for this quote type"},"defaultPresentation":{"type":"string","description":"The default presentation template for this quote type"},"overrideCompanyOptions":{"type":"boolean","description":"Whether this quote type overrides global company options"},"companyOptions":{"type":"object","description":"Custom company options for this quote type","additionalProperties":true}},"required":["id","label"]}}}}
```

## The AreaLabel object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"AreaLabel":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the area label."},"label":{"type":"string","description":"The display name of the area label."},"active":{"type":"boolean","description":"Whether this area label is active & usable"},"quoteTypes":{"type":"array","items":{"type":"string"},"description":"The quote types this area label applies to"}},"required":["id","label"]}}}}
```

## The EventType object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"EventType":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the event type."},"name":{"type":"string","description":"The name of the event type."}},"required":["id","name"]}}}}
```

## The LeadSource object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"LeadSource":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the lead source."},"name":{"type":"string","description":"The name of the lead source."}},"required":["id","name"]}}}}
```

## The LineItem object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"LineItem":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the line item."},"active":{"type":"boolean","description":"Whether this line item is active & usable"},"label":{"type":"string","description":"The label of the line item"},"description":{"type":"string","description":"The description of the line item"},"crewNote":{"type":"string","description":"The crew note of the line item"},"clientNote":{"type":"string","description":"The client note of the line item"},"calculateBy":{"type":"string","enum":["none","hourlyRate","quantity"],"description":"The calculation type of this line item"},"quantity":{"type":"number","description":"The quantity use if this is a quantity calculated line item"},"hours":{"type":"number","description":"The hours of this line item"},"hourlyRate":{"type":"number","description":"The hourly rate used if using an hourly-rate based calculation"},"pricePerUnit":{"type":"number","description":"The price per unit if using a quantity-based calculation"},"price":{"type":"number","description":"The price of this line item"}},"required":["id"]}}}}
```

## The Pipeline object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Pipeline":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the pipeline."},"name":{"type":"string","description":"The name of the pipeline."}},"required":["id","name"]}}}}
```

## The QuoteTemplate object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"QuoteTemplate":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the quote template.","readOnly":true},"label":{"type":"string","description":"The display label of the quote template."},"active":{"type":"boolean","description":"Whether this quote template is active & usable"},"quoteTypes":{"type":"array","items":{"type":"string"},"description":"The quote types this template applies to"}},"required":["id","label"]}}}}
```

## The Product object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Product":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the product."},"label":{"type":"string","description":"The display label of the product."},"active":{"type":"boolean","description":"Whether this product is active & usable"},"coverageRate":{"type":"number","description":"Square feet coverage per gallon (sqft/gal)"},"lnftCoverage":{"type":"number","description":"Linear feet coverage"},"quantityCoverage":{"type":"number","description":"Quantity coverage"},"pricePerUnit":{"type":"number","description":"Unit price per gallon ($/gal)"},"unit":{"type":"string","description":"Measurement unit label"},"quoteTypes":{"type":"array","items":{"type":"string"},"description":"Quote types this product applies to"}},"required":["id","label","coverageRate","lnftCoverage","quantityCoverage"]}}}}
```

## The RateCategory object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"RateCategory":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the rate category."},"label":{"type":"string","description":"The display label of the rate category."},"active":{"type":"boolean","description":"Whether this rate category is active & usable"},"quoteTypes":{"type":"array","items":{"type":"string"},"description":"Quote types this rate category applies to"}},"required":["id","label"]}}}}
```

## The Rate object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Rate":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the rate."},"name":{"type":"string","description":"The unique name of the rate (same as id)."},"quoteType":{"type":"string","description":"The quote type this rate applies to"},"label":{"type":"string","description":"The display label of the rate."},"clientLabel":{"type":"string","description":"The label shown to clients"},"custom":{"type":"boolean","description":"Whether this is a custom rate"},"rateType":{"type":"string","description":"The type of rate calculation (e.g., sqftWalls, lnft, etc.)"},"calculationType":{"type":"string","description":"How the rate is calculated (e.g., amountPerHour)"},"rateSection":{"type":"string","description":"The rate category/section this rate belongs to"},"defaultApps":{"type":"number","description":"Default number of applications/coats"},"maxApps":{"type":"number","description":"Maximum possible applications/coats"},"reportText":{"type":"string","description":"Text shown in reports"},"areaReportText":{"type":"string","description":"Text shown in area reports"},"values":{"type":"array","items":{"type":"number"},"description":"Array of rate values for different applications"},"caption":{"type":"string","description":"Caption or description for the rate"},"useApps":{"type":"boolean","description":"Whether this rate uses coat/application calculations"},"active":{"type":"boolean","description":"Whether this rate is active & usable"},"coverage":{"type":"string","description":"Coverage information or notes"},"hourlyRate":{"type":"number","description":"Hourly rate if applicable"},"overrideHourlyRate":{"type":"boolean","description":"Whether this rate overrides the default hourly rate"}},"required":["id","name","label","rateType","calculationType","rateSection","values"]}}}}
```

## The TaxRate object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"TaxRate":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the tax rate."},"description":{"type":"string","description":"The description of the tax rate."},"rate":{"type":"number","description":"The tax rate percentage (e.g., 20 for 20%)."},"isDefault":{"type":"boolean","description":"Indicates if this is included on new quotes by default."}},"required":["id","rate"]}}}}
```

## The TaxRateCreate object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"TaxRateCreate":{"type":"object","additionalProperties":false,"properties":{"description":{"type":"string","description":"The description of the tax rate."},"rate":{"type":"number","description":"The tax rate percentage (e.g., 20 for 20%)."},"isDefault":{"type":"boolean","description":"Indicates if this is included on new quotes by default."}},"required":["rate"]}}}}
```

## The Stage object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Stage":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the pipeline stage."},"name":{"type":"string","description":"The name of the pipeline stage. (Pipeline - Stage)"}},"required":["id","name"]}}}}
```

## The Tag object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Tag":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the tag."},"label":{"type":"string","description":"The display label of the tag."},"color":{"type":"string","description":"The color of the tag (hex code)"}},"required":["id","label","color"]}}}}
```

## The Source object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Source":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":true,"description":"The ID of the entity on the other side"},"provider":{"type":"string","nullable":true,"description":"The name of the provider this entity came from"}}}}}}
```

## The Webhook object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Webhook":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"A unique ID for the Webhook. Ignored when creating & updating webhooks."},"url":{"type":"string","description":"The URL of the webhook, which will receive requests with data for any events fired that fall within the events of the Webhook."},"events":{"type":"array","additionalProperties":false,"description":"A list of events covering events the Webhook is subscripted to. Allowed values: company-created, company-tags-changed, contact-created, contact-tags-changed, deal-created, deal-tags-changed, deal-stage-changed, event-created, task-created, task-completed, quote-created, quote-sent, invoice-sent, send-work-order, quote-accepted, quote-additional-work-accepted, quote-declined, quote-status-changed, quote-owner-changed, quote-tags-changed, quote-viewed, invoice-viewed","items":{"type":"string","enum":["company-created","company-tags-changed","contact-created","contact-tags-changed","deal-created","deal-tags-changed","deal-stage-changed","event-created","task-created","task-completed","quote-created","quote-sent","invoice-sent","send-work-order","quote-accepted","quote-additional-work-accepted","quote-declined","quote-status-changed","quote-owner-changed","quote-tags-changed","quote-viewed","invoice-viewed"]}},"params":{"type":"object","nullable":true,"additionalProperties":false,"description":"An optional object of key-value pairs used to customize webhook trigger behavior.","properties":{"isInvoice":{"type":"boolean","description":"Whether or not the quote webhook is only to toggle for invoices. Only applicable for quote-related webhooks."},"quoteTypes":{"type":"array","description":"A list of quote types (by Id or Label) to filter quote-related webhooks. Only applicable for quote-related webhooks.","items":{"type":"string"}},"quoteStatus":{"type":"array","description":"A list of quote statuses to filter quote-related webhooks. Only applicable for quote or invoice related webhooks.","items":{"type":"string"}},"eventTypes":{"type":"array","description":"A list of event types (by Id or Label) to filter event-created webhooks. Only applicable for event-created webhooks.","items":{"type":"string"}},"stageIds":{"type":"array","description":"A list of Deal Stage Ids to filter deal-stage-changed webhooks.","items":{"type":"string"}},"tagsAdded":{"type":"array","description":"A list of tags, if any of these tags are added to the entity, the webhook will trigger.","items":{"type":"string"}},"tagsRemoved":{"type":"array","description":"A list of tags, if any of these tags are removed from the entity, the webhook will trigger.","items":{"type":"string"}}}},"token":{"type":"string","description":"A string used to hash the webhook body for verification."},"enabled":{"type":"boolean","description":"Whether or not the Webhook is enabled/active."},"timestamp":{"$ref":"#/components/schemas/Timestamp"}},"required":["url","events"]},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}}}}}
```

## The Task object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Task":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":false,"description":"The ID of the Task. Ignored when creating & updating tasks."},"title":{"type":"string","nullable":false,"description":"The title of the Task."},"dealId":{"type":"string","nullable":false,"description":"The deal ID this task is associated with"},"owner":{"type":"object","nullable":false,"$ref":"#/components/schemas/Owner"},"notes":{"type":"string","nullable":true,"description":"A note about this task"},"completed":{"type":"boolean","nullable":true,"description":"Whether the task has been completed"},"timestamp":{"type":"object","nullable":false,"$ref":"#/components/schemas/TaskTimestamp"}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"TaskTimestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"},"start":{"type":"number","description":"The timestamp when this task is scheduled to start"},"completed":{"type":"number","description":"The timestamp when this task was completed"}}}}}}
```

## The TaskSearchResult object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"TaskSearchResult":{"$ref":"#/components/schemas/Task"},"Task":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","nullable":false,"description":"The ID of the Task. Ignored when creating & updating tasks."},"title":{"type":"string","nullable":false,"description":"The title of the Task."},"dealId":{"type":"string","nullable":false,"description":"The deal ID this task is associated with"},"owner":{"type":"object","nullable":false,"$ref":"#/components/schemas/Owner"},"notes":{"type":"string","nullable":true,"description":"A note about this task"},"completed":{"type":"boolean","nullable":true,"description":"Whether the task has been completed"},"timestamp":{"type":"object","nullable":false,"$ref":"#/components/schemas/TaskTimestamp"}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"TaskTimestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"},"start":{"type":"number","description":"The timestamp when this task is scheduled to start"},"completed":{"type":"number","description":"The timestamp when this task was completed"}}}}}}
```

## The Timestamp object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}}}}}
```

## The UserTimestamp object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"UserTimestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"},"lastLogin":{"type":"number","description":"The timestamp when this user last logged in"}}}}}}
```

## The TaskTimestamp object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"TaskTimestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"},"start":{"type":"number","description":"The timestamp when this task is scheduled to start"},"completed":{"type":"number","description":"The timestamp when this task was completed"}}}}}}
```

## The Error object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Error":{"type":"object","additionalProperties":false,"properties":{"errors":{"type":"array","items":{"type":"string"},"description":"Array of error messages"}}}}}}
```

## The Payment object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Payment":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","nullable":true,"description":"The type of payment method"},"amount":{"type":"number","description":"The amount paid on this payment"},"date":{"type":"number","description":"The date the payment was made"},"note":{"type":"string","nullable":true,"description":"The note associated with this payment"},"deposit":{"type":"boolean","description":"Whether this payment is a deposit or not"}}}}}}
```

## The TagDetail object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"TagDetail":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The id of the tag"},"label":{"type":"string","description":"The label of the tag"},"deleted":{"type":"boolean","description":"Whether the tag has been deleted"},"updated":{"type":"number","description":"The last updated timestamp of the tag"}}}}}}
```

## The File object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"File":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the File"},"title":{"type":"string","nullable":true,"description":"The title of the File"},"src":{"type":"string","nullable":true,"description":"The URL of the File"},"type":{"type":"string","nullable":true,"description":"The MIME type of the File (e.g. image/jpeg, application/pdf)"},"format":{"type":"string","nullable":true,"description":"The file format/extension (e.g. jpg, pdf, png)"},"visibility":{"type":"string","nullable":true,"description":"The visibility of the File","enum":["visible","customer","crew","hidden"]},"timestamp":{"$ref":"#/components/schemas/Timestamp"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}}}}}
```

## The FileCreate object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"FileCreate":{"type":"object","additionalProperties":false,"required":["files"],"properties":{"files":{"type":"array","description":"Array of files to upload","items":{"type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","description":"The URL of the file to download and upload"},"title":{"type":"string","description":"Optional title for the file"},"visibility":{"type":"string","description":"The visibility of the file","enum":["visible","customer","crew","hidden"]}}}}}}}}}
```

## The Note object

```json
{"openapi":"3.0.0","info":{"title":"Core API","version":"v2"},"components":{"schemas":{"Note":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the Note. Ignored when creating notes"},"note":{"type":"string","nullable":true,"description":"The content of the Note"},"owner":{"type":"object","nullable":true,"$ref":"#/components/schemas/Owner"},"timestamp":{"$ref":"#/components/schemas/Timestamp"}}},"Owner":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique user ID"},"firstName":{"type":"string","description":"The first name of the user"},"lastName":{"type":"string","description":"The last name of the user"},"title":{"type":"string","description":"The job title of the user"},"email":{"type":"string","description":"The email address of the user"},"phoneNumber":{"type":"string","description":"The phone number of the user"},"phoneExtension":{"type":"string","description":"The phone extension of the user"}}},"Timestamp":{"type":"object","additionalProperties":false,"properties":{"created":{"type":"number","description":"The timestamp when this entity was created"},"updated":{"type":"number","description":"The timestamp when this entity was last updated"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.paintscout.com/developers/models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
