Skip to main content
Glama
items.md10.4 kB
# Item API Reference Items represent products or services that can be added to invoices. They store default pricing, descriptions, and tax information for quick invoice creation. ## item_list List items from FreshBooks with optional filtering and pagination. ### Description Retrieve a paginated list of items (products and services) with filtering by name, type, or SKU. **When to use:** - User asks to see their item/product catalog - User needs to find items for invoice creation - User wants to browse available products or services - Finding item IDs and pricing information ### Input Schema | Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | accountId | string | Yes | - | FreshBooks account identifier | | page | number | No | 1 | Page number (1-indexed) | | perPage | number | No | 30 | Results per page (max 100) | | name | string | No | - | Filter by item name (partial match) | | type | string | No | - | Filter by type (product, service, discount) | | sku | string | No | - | Filter by SKU (exact match) | ### Input Example ```json { "accountId": "ABC123", "page": 1, "perPage": 25, "type": "service", "name": "consulting" } ``` ### Output Schema | Field | Type | Description | |-------|------|-------------| | items | Item[] | Array of item objects | | pagination | Pagination | Pagination metadata | #### Item Object | Field | Type | Nullable | Description | |-------|------|----------|-------------| | id | number | No | Unique item identifier | | name | string | No | Item name/description | | description | string | Yes | Detailed item description | | type | string | No | Type of item (product, service, discount) | | rate | Money | Yes | Unit price/rate | | quantity | number | Yes | Default quantity | | taxable | boolean | No | Whether item is taxable | | tax1 | string | Yes | Primary tax name | | tax2 | string | Yes | Secondary tax name | | inventory | number | Yes | Inventory quantity available | | sku | string | Yes | Stock keeping unit (SKU) | | accountingSystemId | string | Yes | Reference to accounting system | | visState | number | Yes | Visibility state (0=active, 1=deleted, 2=archived) | | createdAt | string | No | Creation timestamp (ISO 8601) | | updatedAt | string | No | Last update timestamp (ISO 8601) | ### Output Example ```json { "items": [ { "id": 1001, "name": "Consulting Services", "description": "Hourly consulting rate for software development", "type": "service", "rate": { "amount": "150.00", "code": "USD" }, "quantity": 1, "taxable": true, "tax1": "Sales Tax", "tax2": null, "inventory": null, "sku": "SVC-001", "visState": 0, "createdAt": "2024-01-15T10:00:00Z", "updatedAt": "2024-12-01T14:30:00Z" }, { "id": 1002, "name": "Web Hosting", "description": "Annual web hosting package", "type": "product", "rate": { "amount": "500.00", "code": "USD" }, "quantity": 1, "taxable": false, "inventory": 50, "sku": "HOST-ANNUAL", "visState": 0, "createdAt": "2024-02-01T09:00:00Z", "updatedAt": "2024-11-15T11:20:00Z" } ], "pagination": { "page": 1, "pages": 2, "total": 42, "perPage": 30 } } ``` ### Errors | Code | Condition | Recoverable | Recovery | |------|-----------|-------------|----------| | -32602 | Invalid accountId format | No | Check account ID is valid | | -32602 | Invalid type value | No | Use 'product', 'service', or 'discount' | | -32001 | Not authenticated | Yes | Call auth_get_url to authenticate | | -32004 | Rate limit exceeded | Yes | Wait and retry after delay | ### Related Tools - [item_single](#item_single) - Get single item by ID - [item_create](#item_create) - Create new item - [invoice_create](./invoices.md#invoice_create) - Use items on invoices --- ## item_single Get a single item by ID. ### Description Retrieve detailed information about a specific item. **When to use:** - User asks for details about a specific item - Need to verify item data before update/delete - Retrieve pricing and description for invoice - Get current inventory levels ### Input Schema | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | accountId | string | Yes | FreshBooks account identifier | | itemId | number | Yes | Item ID to retrieve | ### Input Example ```json { "accountId": "ABC123", "itemId": 1001 } ``` ### Output Schema Returns a single Item object (see [item_list](#item-object) for schema). ### Errors | Code | Condition | Recoverable | Recovery | |------|-----------|-------------|----------| | -32602 | Invalid itemId | No | Check ID is a positive integer | | -32005 | Item not found | No | Verify ID exists in FreshBooks | | -32001 | Not authenticated | Yes | Call auth_get_url to authenticate | ### Related Tools - [item_list](#item_list) - Find item IDs - [item_update](#item_update) - Update this item - [invoice_create](./invoices.md#invoice_create) - Add item to invoice --- ## item_create Create a new item. ### Description Create a new product or service item with pricing and description. Items make invoice creation faster by storing reusable information. **When to use:** - User wants to add a new product or service to catalog - Creating reusable items for invoicing - Setting up pricing for services - Adding products to inventory ### Input Schema | Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | accountId | string | Yes | - | FreshBooks account identifier | | name | string | Yes | - | Item name/description | | description | string | No | - | Detailed item description | | type | string | No | service | Type of item (product, service, discount) | | rate | Money | No | - | Unit price/rate | | quantity | number | No | - | Default quantity | | taxable | boolean | No | true | Whether item is taxable | | tax1 | string | No | - | Primary tax name | | tax2 | string | No | - | Secondary tax name | | inventory | number | No | - | Inventory quantity available | | sku | string | No | - | Stock keeping unit (SKU) | ### Input Example ```json { "accountId": "ABC123", "name": "Premium Support Package", "description": "24/7 premium support with 2-hour response time", "type": "service", "rate": { "amount": "299.00", "code": "USD" }, "quantity": 1, "taxable": false, "sku": "SUPPORT-PREM" } ``` ### Output Schema Returns the created Item object (see [item_list](#item-object) for schema). ### Errors | Code | Condition | Recoverable | Recovery | |------|-----------|-------------|----------| | -32602 | Missing name | No | Provide item name | | -32602 | Invalid type | No | Use 'product', 'service', or 'discount' | | -32602 | Invalid inventory value | No | Use non-negative number | | -32001 | Not authenticated | Yes | Call auth_get_url to authenticate | ### Related Tools - [item_list](#item_list) - View created items - [item_update](#item_update) - Update item after creation - [invoice_create](./invoices.md#invoice_create) - Use item on invoice --- ## item_update Update an existing item. ### Description Modify fields of an existing item. All fields except accountId and itemId are optional - only provided fields will be updated. **When to use:** - User wants to change item pricing - Update item description or details - Adjust inventory quantities - Change tax settings - Update SKU or visibility ### Input Schema | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | accountId | string | Yes | FreshBooks account identifier | | itemId | number | Yes | Item ID to update | | name | string | No | Item name/description | | description | string | No | Detailed item description | | type | string | No | Type of item (product, service, discount) | | rate | Money | No | Unit price/rate | | quantity | number | No | Default quantity | | taxable | boolean | No | Whether item is taxable | | tax1 | string | No | Primary tax name | | tax2 | string | No | Secondary tax name | | inventory | number | No | Inventory quantity available | | sku | string | No | Stock keeping unit (SKU) | ### Input Example ```json { "accountId": "ABC123", "itemId": 1001, "rate": { "amount": "175.00", "code": "USD" }, "description": "Updated hourly rate - effective 2025" } ``` ### Output Schema Returns the updated Item object (see [item_list](#item-object) for schema). ### Errors | Code | Condition | Recoverable | Recovery | |------|-----------|-------------|----------| | -32602 | Invalid itemId | No | Check ID is a positive integer | | -32602 | Invalid type | No | Use 'product', 'service', or 'discount' | | -32005 | Item not found | No | Verify ID exists in FreshBooks | | -32001 | Not authenticated | Yes | Call auth_get_url to authenticate | ### Related Tools - [item_single](#item_single) - Get current values before update - [item_list](#item_list) - View all items --- ## Notes ### Item Types | Type | Description | Use Case | |------|-------------|----------| | service | Service/labor | Hourly rates, consulting, subscriptions | | product | Physical/digital product | Products for sale, inventory items | | discount | Discount/adjustment | Promotional discounts, adjustments | ### Inventory Tracking - Set `inventory` for products to track stock levels - Inventory is null for services (not applicable) - FreshBooks can decrement inventory when items are invoiced ### Tax Configuration - `taxable: true` - Item is subject to tax - `taxable: false` - Item is tax-exempt - `tax1` and `tax2` - Names of taxes to apply (e.g., "Sales Tax", "VAT") ### SKU (Stock Keeping Unit) - Unique identifier for inventory management - Useful for product tracking and barcode systems - Can be alphanumeric (e.g., "PROD-001", "SVC-CONSULT") ### Default Values When adding item to invoice: - `rate` is used as the default unit price - `quantity` is used as the default quantity - `description` is pre-filled - All values can be overridden on the invoice ### Pricing Item rates use Money object: ```json { "amount": "150.00", // Decimal as string "code": "USD" // Currency code } ``` Always use strings for amounts to avoid floating-point precision issues.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Good-Samaritan-Software-LLC/freshbooks-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server