Create and manage invoices in RepairShopr
I manage invoices in RepairShopr, which are bills for services rendered or products sold. I can list, create, retrieve, update, and delete invoices. I also support sending invoices via email and print queueing.
Use this when:
Required API base URL:
VITE_REPAIRSHOPR_SUBDOMAINVITE_REPAIRSHOPR_API_KEYPermissions:
List Invoices (GET /invoices) Optional:
paid (boolean) - Filter by paid statusunpaid (boolean) - Filter by unpaid statusticket_id (integer) - Filter by associated ticketsince_updated_at (string) - Invoices updated since datepage (integer) - Page number (25 results per page)Create Invoice (POST /invoices) Required:
customer_id (integer) - Customer IDnumber (string) - Invoice numberdate (string) - Invoice date (ISO 8601)Optional:
due_date (string) - Payment due datesubtotal, total, tax (strings/numbers) - Amountsverified_paid, tech_marked_paid, is_paid (boolean) - Payment statusticket_id (integer) - Associated ticketlocation_id (integer) - Locationcontact_id (integer) - Contact personpo_number (string) - Customer PO numbernote (string) - Customer noteshardwarecost (number) - Hardware costline_items (array) - Array of line item objectsGet Invoice (GET /invoices/{id})
id (integer) - Invoice ID or numberUpdate Invoice (PUT /invoices/{id})
id (integer) - Invoice ID
Optional body with invoice fields (customer_id, number, date, due_date, etc.)Delete Invoice (DELETE /invoices/{id})
id (integer) - Invoice ID
Returns 200 even if delete fails (soft delete/manual removal needed)Email & Print:
POST /invoices/{id}/email - Send invoice to customer emailPOST /invoices/{id}/print - Queue print jobGet Associated Ticket (GET /invoices/{id}/ticket)
id (integer) - Invoice ID
Returns the ticket linked to this invoiceExample call:
// Create invoice with line items
const invoice = await skill({ name: "repairshopr-invoice" }, {
customer_id: 123,
number: "2024-001",
date: "2024-01-15",
due_date: "2024-02-15",
line_items: [
{ item: "Repair Service", name: "Diagnostic and Repair", price: 150, quantity: 1, taxable: true },
{ item: "Part", name: "Replacement Component", price: 75, quantity: 2, taxable: true }
],
note: "Thank you for your business!"
})
// Send invoice email
await skill({ name: "repairshopr-invoice" }, {}, { id: invoice.invoice.id, method: 'POST', pathParams: {}, endpoint: '/email' })
Response includes:
id, number, date, due_date, subtotal, total, tax, is_paid, line_items, customer, etc.customer_id, number, date are required for creationrepairshopr-invoiceline-item endpoints for line item-specific updates (PUT/DELETE)repairshopr-estimate - Convert to invoicerepairshopr-invoiceline-item - Manage line items on invoicesrepairshopr-payment - Record payments against invoicesrepairshopr-ticket - Link invoices to tickets