Create and manage estimates in RepairShopr
I manage repair estimates, which are cost proposals for work. I can list, create, retrieve, update, delete estimates, convert them to invoices, and manage line items (parts/labor) within estimates.
Use this when:
Required API base URL:
VITE_REPAIRSHOPR_SUBDOMAINVITE_REPAIRSHOPR_API_KEYPermissions:
List Estimates (GET /estimates) Optional:
mine (boolean) - Only my estimatesstatus (string) - Filter by status: "approved", "declined"page (integer) - Page number (50 per page)Create Estimate (POST /estimates) Required:
date (string) - Estimate date (ISO 8601)customer_id (integer) - CustomerOptional:
name (string) - Estimate name/titlenumber (string) - Custom estimate numberstatus (string) - "Fresh", "Draft", "Approved", "Declined" (default Fresh)note (string) - Customer-facing notesticket_id (integer) - Associated ticketlocation_id (integer) - Locationline_items (array) - Array of line item objects with item, name, cost, price, quantity, taxableGet Estimate (GET /estimates/{id})
id (integer) - Estimate ID or numberUpdate Estimate (PUT /estimates/{id})
id (integer) - Estimate ID
Optional body similar to create (but typically doesn't include line_items fully; use line item endpoints)Delete Estimate (DELETE /estimates/{id})
id (integer) - Estimate IDAdd Line Item (POST /estimates/{id}/line_items)
id (integer) - Estimate ID
Body includes line item fields (item, name, cost, price, quantity, taxable)Update Line Item (PUT /estimates/{id}/line_items/{line_item_id})
id, line_item_id - IDs
Body includes updatable line item fieldsDelete Line Item (DELETE /estimates/{id}/line_items/{line_item_id})
id, line_item_id - IDsConvert to Invoice (POST /estimates/{id}/convert_to_invoice)
id (integer) - Estimate ID
Requires "Estimates - View Details" and "Invoices - Create"Print/Email:
POST /estimates/{id}/print - Queue print jobPOST /estimates/{id}/email - Email to customerExample call:
// Create estimate with line items
const estimate = await skill({ name: "repairshopr-estimate" }, {
customer_id: 123,
date: "2024-01-15",
name: "Screen Replacement Estimate",
status: "Draft",
line_items: [
{ item: "LCD Display", name: "13\" Retina Display", cost: 150, price: 299, quantity: 1, taxable: true },
{ item: "Labor", name: "Screen Replacement Service", cost: 0, price: 89, quantity: 1, taxable: false }
]
})
// Add additional line item later
await skill({ name: "repairshopr-estimate" }, {
line_items: [
{ item: "Battery", name: "Replacement Battery", price: 79, quantity: 1 }
]
}, { id: estimate.estimate.id, method: 'POST', pathParams: { line_item_id: undefined } })
Response includes:
subtotal, total, tax, line_items array, status, etc.invoice objectdate and customer_id are required for creationitem and price at minimum; cost is optionalvalid item error occurs when item is blankrepairshopr-invoice - After estimate conversionrepairshopr-line-item - For line item managementrepairshopr-ticket-create - To link estimate to ticket