home / skills / composiohq / awesome-claude-skills / quickbooks-automation

quickbooks-automation skill

/quickbooks-automation

This skill helps automate QuickBooks Online tasks like creating invoices and managing customers, improving bookkeeping accuracy and speed.

npx playbooks add skill composiohq/awesome-claude-skills --skill quickbooks-automation

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
5.5 KB
---
name: QuickBooks Automation
description: "QuickBooks Automation: manage invoices, customers, accounts, and payments in QuickBooks Online for streamlined bookkeeping"
requires:
  mcp: [rube]
---

# QuickBooks Automation

Automate QuickBooks Online operations including creating invoices, managing customers, querying accounts, and listing invoices for financial reporting.

**Toolkit docs:** [composio.dev/toolkits/quickbooks](https://composio.dev/toolkits/quickbooks)

---

## Setup

This skill requires the **Rube MCP server** connected at `https://rube.app/mcp`.

Before executing any tools, ensure an active connection exists for the `quickbooks` toolkit. If no connection is active, initiate one via `RUBE_MANAGE_CONNECTIONS`.

---

## Core Workflows

### 1. Create an Invoice

Create a new invoice for a customer with line items.

**Tool:** `QUICKBOOKS_CREATE_INVOICE`

**Key Parameters:**
- `customer_id` (required) -- ID of the customer (CustomerRef.value)
- `lines` (required) -- Array of line item objects. Each must include:
  - `DetailType` -- e.g., `"SalesItemLineDetail"`
  - `Amount` -- Line item total
  - `SalesItemLineDetail` -- Object with `ItemRef` containing `value` (item ID)
- `minorversion` -- Optional API version parameter

**Example:**
```
Tool: QUICKBOOKS_CREATE_INVOICE
Arguments:
  customer_id: "21"
  lines: [
    {
      "DetailType": "SalesItemLineDetail",
      "Amount": 150.00,
      "SalesItemLineDetail": {
        "ItemRef": {"value": "1", "name": "Services"}
      }
    }
  ]
```

**Prerequisites:** Resolve the customer ID using `QUICKBOOKS_READ_CUSTOMER` or create one with `QUICKBOOKS_CREATE_CUSTOMER`. Resolve item/account IDs using `QUICKBOOKS_QUERY_ACCOUNT`.

---

### 2. Manage Customers

Create and read customer records.

**Tools:**
- `QUICKBOOKS_CREATE_CUSTOMER` -- Create a new customer
- `QUICKBOOKS_READ_CUSTOMER` -- Read a customer by ID

**Key Parameters for `QUICKBOOKS_CREATE_CUSTOMER`:**
- `display_name` -- Display name (must be unique across customers, vendors, employees; max 500 chars)
- `given_name` -- First name (max 100 chars)
- `family_name` -- Last name (max 100 chars)
- `middle_name` -- Middle name (max 100 chars)
- `title` -- Title, e.g., `"Mr."`, `"Dr."` (max 16 chars)
- `suffix` -- Name suffix, e.g., `"Jr."` (max 16 chars)

> At least one of `display_name`, `title`, `given_name`, `middle_name`, `family_name`, or `suffix` is required.

**Key Parameters for `QUICKBOOKS_READ_CUSTOMER`:**
- `customer_id` (required) -- ID of the customer to read

**Example:**
```
Tool: QUICKBOOKS_CREATE_CUSTOMER
Arguments:
  display_name: "Acme Corporation"
  given_name: "John"
  family_name: "Doe"
```

---

### 3. Query and Read Accounts

Retrieve account information for use in invoice line items and financial reporting.

**Tools:**
- `QUICKBOOKS_QUERY_ACCOUNT` -- Execute a query against accounts
- `QUICKBOOKS_READ_ACCOUNT` -- Read a specific account by ID

**Key Parameters for `QUICKBOOKS_QUERY_ACCOUNT`:**
- `query` (required) -- SQL-like query string, e.g., `"SELECT * FROM Account WHERE AccountType = 'Income'"`

**Example:**
```
Tool: QUICKBOOKS_QUERY_ACCOUNT
Arguments:
  query: "SELECT * FROM Account WHERE AccountType = 'Income' MAXRESULTS 10"
```

---

### 4. List and Filter Invoices

Retrieve invoices with optional pagination and filtering.

**Tool:** `QUICKBOOKS_LIST_INVOICES`

**Steps:**
1. Call `QUICKBOOKS_LIST_INVOICES` with pagination parameters
2. Use `start_position` and `max_results` to page through results
3. Filter by specific criteria as needed

---

## Recommended Execution Plan

1. **Resolve the customer** using `QUICKBOOKS_READ_CUSTOMER` (if you have a customer ID) or create one with `QUICKBOOKS_CREATE_CUSTOMER`
2. **Resolve item/revenue accounts** using `QUICKBOOKS_QUERY_ACCOUNT` and `QUICKBOOKS_READ_ACCOUNT` to get account or item IDs for invoice line items
3. **Create the invoice** using `QUICKBOOKS_CREATE_INVOICE` with the resolved `customer_id` and well-formed line items
4. **Verify creation** using `QUICKBOOKS_LIST_INVOICES` to locate the new invoice by ID or DocNumber

---

## Known Pitfalls

| Pitfall | Detail |
|---------|--------|
| **Invalid references** | `QUICKBOOKS_CREATE_INVOICE` fails if `customer_id` or `ItemRef.value` point to non-existent or inactive records. Always resolve IDs first. |
| **Line item validation** | Incorrect `DetailType` or missing `SalesItemLineDetail` fields cause schema/validation errors during invoice creation. |
| **Pagination** | `QUICKBOOKS_LIST_INVOICES` uses `start_position` and `max_results`. Incomplete pagination settings can miss invoices in larger books. |
| **Sync tokens** | Any later edits require the latest `SyncToken` from a fresh invoice read. Stale sync tokens cause update rejections. |
| **Rate limits** | QuickBooks enforces per-minute and daily API caps. High-volume runs should include backoff to avoid throttling errors. |
| **DisplayName uniqueness** | Customer `display_name` must be unique across all Customer, Vendor, and Employee objects. Duplicates cause creation failures. |

---

## Quick Reference

| Tool Slug | Description |
|-----------|-------------|
| `QUICKBOOKS_CREATE_INVOICE` | Create a new invoice with line items |
| `QUICKBOOKS_READ_CUSTOMER` | Read a customer record by ID |
| `QUICKBOOKS_CREATE_CUSTOMER` | Create a new customer record |
| `QUICKBOOKS_QUERY_ACCOUNT` | Query accounts with SQL-like syntax |
| `QUICKBOOKS_READ_ACCOUNT` | Read a specific account by ID |
| `QUICKBOOKS_LIST_INVOICES` | List invoices with pagination |

---

*Powered by [Composio](https://composio.dev)*

Overview

This skill automates common QuickBooks Online tasks to streamline bookkeeping and invoicing. It provides tools to create invoices, manage customers, query accounts, and list invoices with pagination and filtering. Designed for use with an active Rube MCP server connection to the quickbooks toolkit.

How this skill works

The skill exposes toolkit calls that map to QuickBooks Online operations: create and read customers, query and read accounts, create invoices with validated line items, and list invoices with pagination. Before making changes it resolves required IDs (customer, item/account) and validates payloads to avoid schema and reference errors. Use the RUBE_MANAGE_CONNECTIONS flow to ensure an active quickbooks connection before invoking tools.

When to use it

  • Generate invoices automatically from orders or time entries
  • Onboard new customers into QuickBooks with structured data
  • Populate invoice line items using linked account/item IDs
  • Run account queries for financial reporting or to resolve revenue accounts
  • Page through and filter invoices for reconciliation or review

Best practices

  • Always resolve and verify customer and item/account IDs before creating invoices to avoid invalid references
  • Use QUICKBOOKS_QUERY_ACCOUNT and QUICKBOOKS_READ_ACCOUNT to fetch correct ItemRef/Account IDs for line items
  • Include DetailType and SalesItemLineDetail correctly for each invoice line to satisfy schema validation
  • Handle pagination via start_position and max_results when listing invoices to avoid missing records
  • Implement retry/backoff to respect QuickBooks API rate limits and avoid throttling

Example use cases

  • Create a customer record and immediately generate the first invoice with itemized lines
  • Query income accounts to map revenue items and build invoice line items programmatically
  • List invoices for a date range and page through results to feed a reconciliation workflow
  • Read a customer by ID to pre-fill invoice billing details before creating a new invoice
  • Bulk-create invoices for recurring charges after verifying item and account references

FAQ

What connection is required to use this skill?

An active Rube MCP server connection to the quickbooks toolkit (https://rube.app/mcp) is required; manage connections via RUBE_MANAGE_CONNECTIONS.

Why does invoice creation fail with validation errors?

Most failures stem from invalid references (customer or ItemRef) or missing SalesItemLineDetail/DetailType fields. Resolve IDs first and ensure each line item includes the required fields.