conductor-node-mcp 12.18.2 → 12.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +7 -0
  2. package/package.json +2 -2
  3. package/server.js +1 -1
  4. package/server.mjs +1 -1
  5. package/src/server.ts +1 -1
  6. package/src/tools/index.ts +8 -0
  7. package/src/tools/qbd/other-charge-items/create-qbd-other-charge-items.ts +158 -0
  8. package/src/tools/qbd/other-charge-items/list-qbd-other-charge-items.ts +116 -0
  9. package/src/tools/qbd/other-charge-items/retrieve-qbd-other-charge-items.ts +44 -0
  10. package/src/tools/qbd/other-charge-items/update-qbd-other-charge-items.ts +175 -0
  11. package/tools/index.d.mts.map +1 -1
  12. package/tools/index.d.ts.map +1 -1
  13. package/tools/index.js +8 -0
  14. package/tools/index.js.map +1 -1
  15. package/tools/index.mjs +8 -0
  16. package/tools/index.mjs.map +1 -1
  17. package/tools/qbd/other-charge-items/create-qbd-other-charge-items.d.mts +45 -0
  18. package/tools/qbd/other-charge-items/create-qbd-other-charge-items.d.mts.map +1 -0
  19. package/tools/qbd/other-charge-items/create-qbd-other-charge-items.d.ts +45 -0
  20. package/tools/qbd/other-charge-items/create-qbd-other-charge-items.d.ts.map +1 -0
  21. package/tools/qbd/other-charge-items/create-qbd-other-charge-items.js +138 -0
  22. package/tools/qbd/other-charge-items/create-qbd-other-charge-items.js.map +1 -0
  23. package/tools/qbd/other-charge-items/create-qbd-other-charge-items.mjs +134 -0
  24. package/tools/qbd/other-charge-items/create-qbd-other-charge-items.mjs.map +1 -0
  25. package/tools/qbd/other-charge-items/list-qbd-other-charge-items.d.mts +45 -0
  26. package/tools/qbd/other-charge-items/list-qbd-other-charge-items.d.mts.map +1 -0
  27. package/tools/qbd/other-charge-items/list-qbd-other-charge-items.d.ts +45 -0
  28. package/tools/qbd/other-charge-items/list-qbd-other-charge-items.d.ts.map +1 -0
  29. package/tools/qbd/other-charge-items/list-qbd-other-charge-items.js +99 -0
  30. package/tools/qbd/other-charge-items/list-qbd-other-charge-items.js.map +1 -0
  31. package/tools/qbd/other-charge-items/list-qbd-other-charge-items.mjs +95 -0
  32. package/tools/qbd/other-charge-items/list-qbd-other-charge-items.mjs.map +1 -0
  33. package/tools/qbd/other-charge-items/retrieve-qbd-other-charge-items.d.mts +45 -0
  34. package/tools/qbd/other-charge-items/retrieve-qbd-other-charge-items.d.mts.map +1 -0
  35. package/tools/qbd/other-charge-items/retrieve-qbd-other-charge-items.d.ts +45 -0
  36. package/tools/qbd/other-charge-items/retrieve-qbd-other-charge-items.d.ts.map +1 -0
  37. package/tools/qbd/other-charge-items/retrieve-qbd-other-charge-items.js +40 -0
  38. package/tools/qbd/other-charge-items/retrieve-qbd-other-charge-items.js.map +1 -0
  39. package/tools/qbd/other-charge-items/retrieve-qbd-other-charge-items.mjs +36 -0
  40. package/tools/qbd/other-charge-items/retrieve-qbd-other-charge-items.mjs.map +1 -0
  41. package/tools/qbd/other-charge-items/update-qbd-other-charge-items.d.mts +45 -0
  42. package/tools/qbd/other-charge-items/update-qbd-other-charge-items.d.mts.map +1 -0
  43. package/tools/qbd/other-charge-items/update-qbd-other-charge-items.d.ts +45 -0
  44. package/tools/qbd/other-charge-items/update-qbd-other-charge-items.d.ts.map +1 -0
  45. package/tools/qbd/other-charge-items/update-qbd-other-charge-items.js +152 -0
  46. package/tools/qbd/other-charge-items/update-qbd-other-charge-items.js.map +1 -0
  47. package/tools/qbd/other-charge-items/update-qbd-other-charge-items.mjs +148 -0
  48. package/tools/qbd/other-charge-items/update-qbd-other-charge-items.mjs.map +1 -0
package/README.md CHANGED
@@ -389,6 +389,13 @@ The following tools are available in this MCP server.
389
389
  - `update_qbd_non_inventory_items` (`write`): Updates an existing non-inventory item.
390
390
  - `list_qbd_non_inventory_items` (`read`): Returns a list of non-inventory items. Use the `cursor` parameter to paginate through the results.
391
391
 
392
+ ### Resource `qbd.other_charge_items`:
393
+
394
+ - `create_qbd_other_charge_items` (`write`): Creates a new other charge item.
395
+ - `retrieve_qbd_other_charge_items` (`read`): Retrieves an other charge item by ID.
396
+ - `update_qbd_other_charge_items` (`write`): Updates an existing other charge item.
397
+ - `list_qbd_other_charge_items` (`read`): Returns a list of other charge items. Use the `cursor` parameter to paginate through the results.
398
+
392
399
  ### Resource `qbd.other_names`:
393
400
 
394
401
  - `create_qbd_other_names` (`write`): Creates a new other-name.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "conductor-node-mcp",
3
- "version": "12.18.2",
3
+ "version": "12.19.0",
4
4
  "description": "The official MCP Server for the Conductor API",
5
5
  "author": "Conductor <support@conductor.is>",
6
6
  "types": "./index.d.ts",
@@ -24,7 +24,7 @@
24
24
  "fix": "eslint --fix --ext ts,js ."
25
25
  },
26
26
  "dependencies": {
27
- "conductor-node": "^12.18.2",
27
+ "conductor-node": "^12.19.0",
28
28
  "@modelcontextprotocol/sdk": "^1.11.5",
29
29
  "jq-web": "https://github.com/stainless-api/jq-web/releases/download/v0.8.2/jq-web.tar.gz",
30
30
  "yargs": "^17.7.2",
package/server.js CHANGED
@@ -20,7 +20,7 @@ Object.defineProperty(exports, "endpoints", { enumerable: true, get: function ()
20
20
  // Create server instance
21
21
  exports.server = new mcp_js_1.McpServer({
22
22
  name: 'conductor_node_api',
23
- version: '12.18.2',
23
+ version: '12.19.0',
24
24
  }, { capabilities: { tools: {} } });
25
25
  /**
26
26
  * Initializes the provided MCP Server with the given tools and handlers.
package/server.mjs CHANGED
@@ -9,7 +9,7 @@ export { endpoints } from "./tools.mjs";
9
9
  // Create server instance
10
10
  export const server = new McpServer({
11
11
  name: 'conductor_node_api',
12
- version: '12.18.2',
12
+ version: '12.19.0',
13
13
  }, { capabilities: { tools: {} } });
14
14
  /**
15
15
  * Initializes the provided MCP Server with the given tools and handlers.
package/src/server.ts CHANGED
@@ -26,7 +26,7 @@ export { endpoints } from './tools';
26
26
  export const server = new McpServer(
27
27
  {
28
28
  name: 'conductor_node_api',
29
- version: '12.18.2',
29
+ version: '12.19.0',
30
30
  },
31
31
  { capabilities: { tools: {} } },
32
32
  );
@@ -122,6 +122,10 @@ import create_qbd_non_inventory_items from './qbd/non-inventory-items/create-qbd
122
122
  import retrieve_qbd_non_inventory_items from './qbd/non-inventory-items/retrieve-qbd-non-inventory-items';
123
123
  import update_qbd_non_inventory_items from './qbd/non-inventory-items/update-qbd-non-inventory-items';
124
124
  import list_qbd_non_inventory_items from './qbd/non-inventory-items/list-qbd-non-inventory-items';
125
+ import create_qbd_other_charge_items from './qbd/other-charge-items/create-qbd-other-charge-items';
126
+ import retrieve_qbd_other_charge_items from './qbd/other-charge-items/retrieve-qbd-other-charge-items';
127
+ import update_qbd_other_charge_items from './qbd/other-charge-items/update-qbd-other-charge-items';
128
+ import list_qbd_other_charge_items from './qbd/other-charge-items/list-qbd-other-charge-items';
125
129
  import create_qbd_other_names from './qbd/other-names/create-qbd-other-names';
126
130
  import retrieve_qbd_other_names from './qbd/other-names/retrieve-qbd-other-names';
127
131
  import update_qbd_other_names from './qbd/other-names/update-qbd-other-names';
@@ -325,6 +329,10 @@ addEndpoint(create_qbd_non_inventory_items);
325
329
  addEndpoint(retrieve_qbd_non_inventory_items);
326
330
  addEndpoint(update_qbd_non_inventory_items);
327
331
  addEndpoint(list_qbd_non_inventory_items);
332
+ addEndpoint(create_qbd_other_charge_items);
333
+ addEndpoint(retrieve_qbd_other_charge_items);
334
+ addEndpoint(update_qbd_other_charge_items);
335
+ addEndpoint(list_qbd_other_charge_items);
328
336
  addEndpoint(create_qbd_other_names);
329
337
  addEndpoint(retrieve_qbd_other_names);
330
338
  addEndpoint(update_qbd_other_names);
@@ -0,0 +1,158 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { Metadata, asTextContentResult } from 'conductor-node-mcp/tools/types';
4
+
5
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
6
+ import Conductor from 'conductor-node';
7
+
8
+ export const metadata: Metadata = {
9
+ resource: 'qbd.other_charge_items',
10
+ operation: 'write',
11
+ tags: [],
12
+ httpMethod: 'post',
13
+ httpPath: '/quickbooks-desktop/other-charge-items',
14
+ };
15
+
16
+ export const tool: Tool = {
17
+ name: 'create_qbd_other_charge_items',
18
+ description: 'Creates a new other charge item.',
19
+ inputSchema: {
20
+ type: 'object',
21
+ properties: {
22
+ name: {
23
+ type: 'string',
24
+ description:
25
+ 'The case-insensitive name of this other charge item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two other charge items could both have the `name` "Overnight Delivery", but they could have unique `fullName` values, such as "Shipping Charges:Overnight Delivery" and "Misc Fees:Overnight Delivery".\n\nMaximum length: 31 characters.',
26
+ },
27
+ conductorEndUserId: {
28
+ type: 'string',
29
+ description:
30
+ 'The ID of the EndUser to receive this request (e.g., `"Conductor-End-User-Id: {{END_USER_ID}}"`).',
31
+ },
32
+ barcode: {
33
+ type: 'object',
34
+ description: "The other charge item's barcode.",
35
+ properties: {
36
+ allowOverride: {
37
+ type: 'boolean',
38
+ description: 'Indicates whether to allow the barcode to be overridden.',
39
+ },
40
+ assignEvenIfUsed: {
41
+ type: 'boolean',
42
+ description: 'Indicates whether to assign the barcode even if it is already used.',
43
+ },
44
+ value: {
45
+ type: 'string',
46
+ description: "The item's barcode value.",
47
+ },
48
+ },
49
+ },
50
+ classId: {
51
+ type: 'string',
52
+ description:
53
+ "The other charge item's class. Classes can be used to categorize objects into meaningful segments, such as department, location, or type of work. In QuickBooks, class tracking is off by default.",
54
+ },
55
+ externalId: {
56
+ type: 'string',
57
+ description:
58
+ 'A globally unique identifier (GUID) you, the developer, can provide for tracking this object in your external system. This field is immutable and can only be set during object creation.\n\n**IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error.',
59
+ },
60
+ isActive: {
61
+ type: 'boolean',
62
+ description:
63
+ 'Indicates whether this other charge item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`.',
64
+ },
65
+ parentId: {
66
+ type: 'string',
67
+ description:
68
+ 'The parent other charge item one level above this one in the hierarchy. For example, if this other charge item has a `fullName` of "Shipping Charges:Overnight Delivery", its parent has a `fullName` of "Shipping Charges". If this other charge item is at the top level, this field will be `null`.',
69
+ },
70
+ salesAndPurchaseDetails: {
71
+ type: 'object',
72
+ description:
73
+ 'Details for other charge items that are both purchased and sold, such as reimbursable expenses or inventory items that are bought from vendors and sold to customers.\n\n**IMPORTANT**: You must specify either `salesAndPurchaseDetails` or `salesOrPurchaseDetails` when creating an other charge item, but never both because an item cannot have both configurations.',
74
+ properties: {
75
+ expenseAccountId: {
76
+ type: 'string',
77
+ description: 'The expense account used to track costs from purchases of this item.',
78
+ },
79
+ incomeAccountId: {
80
+ type: 'string',
81
+ description: 'The income account used to track revenue from sales of this item.',
82
+ },
83
+ preferredVendorId: {
84
+ type: 'string',
85
+ description: 'The preferred vendor from whom this item is typically purchased.',
86
+ },
87
+ purchaseCost: {
88
+ type: 'string',
89
+ description:
90
+ 'The cost at which this item is purchased from vendors, represented as a decimal string.',
91
+ },
92
+ purchaseDescription: {
93
+ type: 'string',
94
+ description:
95
+ 'The description of this item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors.',
96
+ },
97
+ purchaseTaxCodeId: {
98
+ type: 'string',
99
+ description:
100
+ 'The tax code applied to purchases of this item. Applicable in regions where purchase taxes are used, such as Canada or the UK.',
101
+ },
102
+ salesDescription: {
103
+ type: 'string',
104
+ description:
105
+ 'The description of this item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers.',
106
+ },
107
+ salesPrice: {
108
+ type: 'string',
109
+ description:
110
+ 'The price at which this item is sold to customers, represented as a decimal string.',
111
+ },
112
+ },
113
+ required: ['expenseAccountId', 'incomeAccountId'],
114
+ },
115
+ salesOrPurchaseDetails: {
116
+ type: 'object',
117
+ description:
118
+ "Details for other charge items that are exclusively sold or exclusively purchased, but not both. This typically applies to non-inventory items (like a purchased office supply that isn't resold) or service items (like consulting services that are sold but not purchased).\n\n**IMPORTANT**: You must specify either `salesOrPurchaseDetails` or `salesAndPurchaseDetails` when creating an other charge item, but never both because an item cannot have both configurations.",
119
+ properties: {
120
+ postingAccountId: {
121
+ type: 'string',
122
+ description:
123
+ 'The posting account to which transactions involving this item are posted. This could be an income account when selling or an expense account when purchasing.',
124
+ },
125
+ description: {
126
+ type: 'string',
127
+ description: 'A description of this item.',
128
+ },
129
+ price: {
130
+ type: 'string',
131
+ description:
132
+ 'The price at which this item is purchased or sold, represented as a decimal string.',
133
+ },
134
+ pricePercentage: {
135
+ type: 'string',
136
+ description:
137
+ "The price of this item expressed as a percentage, used instead of `price` when the item's cost is calculated as a percentage of another amount. For example, a service item that costs a percentage of another item's price.",
138
+ },
139
+ },
140
+ required: ['postingAccountId'],
141
+ },
142
+ salesTaxCodeId: {
143
+ type: 'string',
144
+ description:
145
+ 'The default sales-tax code for this other charge item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level.\n\nDefault codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks. If QuickBooks is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it will assign the default non-taxable code to all sales.',
146
+ },
147
+ },
148
+ required: ['name', 'conductorEndUserId'],
149
+ },
150
+ annotations: {},
151
+ };
152
+
153
+ export const handler = async (conductor: Conductor, args: Record<string, unknown> | undefined) => {
154
+ const body = args as any;
155
+ return asTextContentResult(await conductor.qbd.otherChargeItems.create(body));
156
+ };
157
+
158
+ export default { metadata, tool, handler };
@@ -0,0 +1,116 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { Metadata, asTextContentResult } from 'conductor-node-mcp/tools/types';
4
+
5
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
6
+ import Conductor from 'conductor-node';
7
+
8
+ export const metadata: Metadata = {
9
+ resource: 'qbd.other_charge_items',
10
+ operation: 'read',
11
+ tags: [],
12
+ httpMethod: 'get',
13
+ httpPath: '/quickbooks-desktop/other-charge-items',
14
+ };
15
+
16
+ export const tool: Tool = {
17
+ name: 'list_qbd_other_charge_items',
18
+ description:
19
+ 'Returns a list of other charge items. Use the `cursor` parameter to paginate through the results.',
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ conductorEndUserId: {
24
+ type: 'string',
25
+ description:
26
+ 'The ID of the EndUser to receive this request (e.g., `"Conductor-End-User-Id: {{END_USER_ID}}"`).',
27
+ },
28
+ classIds: {
29
+ type: 'array',
30
+ description:
31
+ 'Filter for other charge items of these classes. A class is a way end-users can categorize other charge items in QuickBooks.',
32
+ items: {
33
+ type: 'string',
34
+ },
35
+ },
36
+ cursor: {
37
+ type: 'string',
38
+ description:
39
+ 'The pagination token to fetch the next set of results when paginating with the `limit` parameter. Do not include this parameter on the first call. Use the `nextCursor` value returned in the previous response to request subsequent results.',
40
+ },
41
+ fullNames: {
42
+ type: 'array',
43
+ description:
44
+ 'Filter for specific other charge items by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for an other charge item, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if an other charge item is under "Shipping Charges" and has the `name` "Overnight Delivery", its `fullName` would be "Shipping Charges:Overnight Delivery".\n\n**IMPORTANT**: If you include this parameter, QuickBooks will ignore all other query parameters for this request.\n\n**NOTE**: If any of the values you specify in this parameter are not found, the request will return an error.',
45
+ items: {
46
+ type: 'string',
47
+ },
48
+ },
49
+ ids: {
50
+ type: 'array',
51
+ description:
52
+ 'Filter for specific other charge items by their QuickBooks-assigned unique identifier(s).\n\n**IMPORTANT**: If you include this parameter, QuickBooks will ignore all other query parameters for this request.\n\n**NOTE**: If any of the values you specify in this parameter are not found, the request will return an error.',
53
+ items: {
54
+ type: 'string',
55
+ },
56
+ },
57
+ limit: {
58
+ type: 'integer',
59
+ description:
60
+ 'The maximum number of objects to return. Accepts values ranging from 1 to 150, defaults to 150. When used with cursor-based pagination, this parameter controls how many results are returned per page. To paginate through results, combine this with the `cursor` parameter. Each response will include a `nextCursor` value that can be passed to subsequent requests to retrieve the next page of results.',
61
+ },
62
+ nameContains: {
63
+ type: 'string',
64
+ description:
65
+ 'Filter for other charge items whose `name` contains this substring, case-insensitive.\n\n**NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`.',
66
+ },
67
+ nameEndsWith: {
68
+ type: 'string',
69
+ description:
70
+ 'Filter for other charge items whose `name` ends with this substring, case-insensitive.\n\n**NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`.',
71
+ },
72
+ nameFrom: {
73
+ type: 'string',
74
+ description:
75
+ 'Filter for other charge items whose `name` is alphabetically greater than or equal to this value.',
76
+ },
77
+ nameStartsWith: {
78
+ type: 'string',
79
+ description:
80
+ 'Filter for other charge items whose `name` starts with this substring, case-insensitive.\n\n**NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`.',
81
+ },
82
+ nameTo: {
83
+ type: 'string',
84
+ description:
85
+ 'Filter for other charge items whose `name` is alphabetically less than or equal to this value.',
86
+ },
87
+ status: {
88
+ type: 'string',
89
+ description: 'Filter for other charge items that are active, inactive, or both.',
90
+ enum: ['active', 'all', 'inactive'],
91
+ },
92
+ updatedAfter: {
93
+ type: 'string',
94
+ description:
95
+ 'Filter for other charge items updated on or after this date and time, in ISO 8601 format (YYYY-MM-DDTHH:mm:ss). If you only provide a date (YYYY-MM-DD), the time is assumed to be 00:00:00 of that day.',
96
+ },
97
+ updatedBefore: {
98
+ type: 'string',
99
+ description:
100
+ 'Filter for other charge items updated on or before this date and time, in ISO 8601 format (YYYY-MM-DDTHH:mm:ss). If you only provide a date (YYYY-MM-DD), the time is assumed to be 23:59:59 of that day.',
101
+ },
102
+ },
103
+ required: ['conductorEndUserId'],
104
+ },
105
+ annotations: {
106
+ readOnlyHint: true,
107
+ },
108
+ };
109
+
110
+ export const handler = async (conductor: Conductor, args: Record<string, unknown> | undefined) => {
111
+ const body = args as any;
112
+ const response = await conductor.qbd.otherChargeItems.list(body).asResponse();
113
+ return asTextContentResult(await response.json());
114
+ };
115
+
116
+ export default { metadata, tool, handler };
@@ -0,0 +1,44 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { Metadata, asTextContentResult } from 'conductor-node-mcp/tools/types';
4
+
5
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
6
+ import Conductor from 'conductor-node';
7
+
8
+ export const metadata: Metadata = {
9
+ resource: 'qbd.other_charge_items',
10
+ operation: 'read',
11
+ tags: [],
12
+ httpMethod: 'get',
13
+ httpPath: '/quickbooks-desktop/other-charge-items/{id}',
14
+ };
15
+
16
+ export const tool: Tool = {
17
+ name: 'retrieve_qbd_other_charge_items',
18
+ description: 'Retrieves an other charge item by ID.',
19
+ inputSchema: {
20
+ type: 'object',
21
+ properties: {
22
+ id: {
23
+ type: 'string',
24
+ description: 'The QuickBooks-assigned unique identifier of the other charge item to retrieve.',
25
+ },
26
+ conductorEndUserId: {
27
+ type: 'string',
28
+ description:
29
+ 'The ID of the EndUser to receive this request (e.g., `"Conductor-End-User-Id: {{END_USER_ID}}"`).',
30
+ },
31
+ },
32
+ required: ['id', 'conductorEndUserId'],
33
+ },
34
+ annotations: {
35
+ readOnlyHint: true,
36
+ },
37
+ };
38
+
39
+ export const handler = async (conductor: Conductor, args: Record<string, unknown> | undefined) => {
40
+ const { id, ...body } = args as any;
41
+ return asTextContentResult(await conductor.qbd.otherChargeItems.retrieve(id, body));
42
+ };
43
+
44
+ export default { metadata, tool, handler };
@@ -0,0 +1,175 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { Metadata, asTextContentResult } from 'conductor-node-mcp/tools/types';
4
+
5
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
6
+ import Conductor from 'conductor-node';
7
+
8
+ export const metadata: Metadata = {
9
+ resource: 'qbd.other_charge_items',
10
+ operation: 'write',
11
+ tags: [],
12
+ httpMethod: 'post',
13
+ httpPath: '/quickbooks-desktop/other-charge-items/{id}',
14
+ };
15
+
16
+ export const tool: Tool = {
17
+ name: 'update_qbd_other_charge_items',
18
+ description: 'Updates an existing other charge item.',
19
+ inputSchema: {
20
+ type: 'object',
21
+ properties: {
22
+ id: {
23
+ type: 'string',
24
+ description: 'The QuickBooks-assigned unique identifier of the other charge item to update.',
25
+ },
26
+ revisionNumber: {
27
+ type: 'string',
28
+ description:
29
+ "The current QuickBooks-assigned revision number of the other charge item object you are updating, which you can get by fetching the object first. Provide the most recent `revisionNumber` to ensure you're working with the latest data; otherwise, the update will return an error.",
30
+ },
31
+ conductorEndUserId: {
32
+ type: 'string',
33
+ description:
34
+ 'The ID of the EndUser to receive this request (e.g., `"Conductor-End-User-Id: {{END_USER_ID}}"`).',
35
+ },
36
+ barcode: {
37
+ type: 'object',
38
+ description: "The other charge item's barcode.",
39
+ properties: {
40
+ allowOverride: {
41
+ type: 'boolean',
42
+ description: 'Indicates whether to allow the barcode to be overridden.',
43
+ },
44
+ assignEvenIfUsed: {
45
+ type: 'boolean',
46
+ description: 'Indicates whether to assign the barcode even if it is already used.',
47
+ },
48
+ value: {
49
+ type: 'string',
50
+ description: "The item's barcode value.",
51
+ },
52
+ },
53
+ },
54
+ classId: {
55
+ type: 'string',
56
+ description:
57
+ "The other charge item's class. Classes can be used to categorize objects into meaningful segments, such as department, location, or type of work. In QuickBooks, class tracking is off by default.",
58
+ },
59
+ isActive: {
60
+ type: 'boolean',
61
+ description:
62
+ 'Indicates whether this other charge item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`.',
63
+ },
64
+ name: {
65
+ type: 'string',
66
+ description:
67
+ 'The case-insensitive name of this other charge item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two other charge items could both have the `name` "Overnight Delivery", but they could have unique `fullName` values, such as "Shipping Charges:Overnight Delivery" and "Misc Fees:Overnight Delivery".\n\nMaximum length: 31 characters.',
68
+ },
69
+ parentId: {
70
+ type: 'string',
71
+ description:
72
+ 'The parent other charge item one level above this one in the hierarchy. For example, if this other charge item has a `fullName` of "Shipping Charges:Overnight Delivery", its parent has a `fullName` of "Shipping Charges". If this other charge item is at the top level, this field will be `null`.',
73
+ },
74
+ salesAndPurchaseDetails: {
75
+ type: 'object',
76
+ description:
77
+ 'Details for other charge items that are both purchased and sold, such as reimbursable expenses or inventory items that are bought from vendors and sold to customers.\n\n**IMPORTANT**: You cannot specify both `salesAndPurchaseDetails` and `salesOrPurchaseDetails` when modifying an other charge item because an item cannot have both configurations.',
78
+ properties: {
79
+ expenseAccountId: {
80
+ type: 'string',
81
+ description: 'The expense account used to track costs from purchases of this item.',
82
+ },
83
+ incomeAccountId: {
84
+ type: 'string',
85
+ description: 'The income account used to track revenue from sales of this item.',
86
+ },
87
+ preferredVendorId: {
88
+ type: 'string',
89
+ description: 'The preferred vendor from whom this item is typically purchased.',
90
+ },
91
+ purchaseCost: {
92
+ type: 'string',
93
+ description:
94
+ 'The cost at which this item is purchased from vendors, represented as a decimal string.',
95
+ },
96
+ purchaseDescription: {
97
+ type: 'string',
98
+ description:
99
+ 'The description of this item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors.',
100
+ },
101
+ purchaseTaxCodeId: {
102
+ type: 'string',
103
+ description:
104
+ 'The tax code applied to purchases of this item. Applicable in regions where purchase taxes are used, such as Canada or the UK.',
105
+ },
106
+ salesDescription: {
107
+ type: 'string',
108
+ description:
109
+ 'The description of this item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers.',
110
+ },
111
+ salesPrice: {
112
+ type: 'string',
113
+ description:
114
+ 'The price at which this item is sold to customers, represented as a decimal string.',
115
+ },
116
+ updateExistingTransactionsExpenseAccount: {
117
+ type: 'boolean',
118
+ description:
119
+ 'When `true`, applies the new expense account (specified by the `expenseAccountId` field) to all existing transactions that use this item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes.',
120
+ },
121
+ updateExistingTransactionsIncomeAccount: {
122
+ type: 'boolean',
123
+ description:
124
+ 'When `true`, applies the new income account (specified by the `incomeAccountId` field) to all existing transactions that use this item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes.',
125
+ },
126
+ },
127
+ },
128
+ salesOrPurchaseDetails: {
129
+ type: 'object',
130
+ description:
131
+ "Details for other charge items that are exclusively sold or exclusively purchased, but not both. This typically applies to non-inventory items (like a purchased office supply that isn't resold) or service items (like consulting services that are sold but not purchased).\n\n**IMPORTANT**: You cannot specify both `salesOrPurchaseDetails` and `salesAndPurchaseDetails` when modifying an other charge item because an item cannot have both configurations.",
132
+ properties: {
133
+ description: {
134
+ type: 'string',
135
+ description: 'A description of this item.',
136
+ },
137
+ postingAccountId: {
138
+ type: 'string',
139
+ description:
140
+ 'The posting account to which transactions involving this item are posted. This could be an income account when selling or an expense account when purchasing.',
141
+ },
142
+ price: {
143
+ type: 'string',
144
+ description:
145
+ 'The price at which this item is purchased or sold, represented as a decimal string.',
146
+ },
147
+ pricePercentage: {
148
+ type: 'string',
149
+ description:
150
+ "The price of this item expressed as a percentage, used instead of `price` when the item's cost is calculated as a percentage of another amount. For example, a service item that costs a percentage of another item's price.",
151
+ },
152
+ updateExistingTransactionsAccount: {
153
+ type: 'boolean',
154
+ description:
155
+ 'When `true`, applies the new account (specified by the `accountId` field) to all existing transactions associated with this item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes.',
156
+ },
157
+ },
158
+ },
159
+ salesTaxCodeId: {
160
+ type: 'string',
161
+ description:
162
+ 'The default sales-tax code for this other charge item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level.\n\nDefault codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks. If QuickBooks is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it will assign the default non-taxable code to all sales.',
163
+ },
164
+ },
165
+ required: ['id', 'revisionNumber', 'conductorEndUserId'],
166
+ },
167
+ annotations: {},
168
+ };
169
+
170
+ export const handler = async (conductor: Conductor, args: Record<string, unknown> | undefined) => {
171
+ const { id, ...body } = args as any;
172
+ return asTextContentResult(await conductor.qbd.otherChargeItems.update(id, body));
173
+ };
174
+
175
+ export default { metadata, tool, handler };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AAuM/C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAAO,CAAC;AA2MxC,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;IAChD,EAAE,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CA4B1E"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AA2M/C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAAO,CAAC;AA+MxC,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;IAChD,EAAE,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CA4B1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AAuM/C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAAO,CAAC;AA2MxC,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;IAChD,EAAE,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CA4B1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AA2M/C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAAO,CAAC;AA+MxC,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;IAChD,EAAE,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CA4B1E"}
package/tools/index.js CHANGED
@@ -124,6 +124,10 @@ const create_qbd_non_inventory_items_1 = __importDefault(require("./qbd/non-inve
124
124
  const retrieve_qbd_non_inventory_items_1 = __importDefault(require("./qbd/non-inventory-items/retrieve-qbd-non-inventory-items.js"));
125
125
  const update_qbd_non_inventory_items_1 = __importDefault(require("./qbd/non-inventory-items/update-qbd-non-inventory-items.js"));
126
126
  const list_qbd_non_inventory_items_1 = __importDefault(require("./qbd/non-inventory-items/list-qbd-non-inventory-items.js"));
127
+ const create_qbd_other_charge_items_1 = __importDefault(require("./qbd/other-charge-items/create-qbd-other-charge-items.js"));
128
+ const retrieve_qbd_other_charge_items_1 = __importDefault(require("./qbd/other-charge-items/retrieve-qbd-other-charge-items.js"));
129
+ const update_qbd_other_charge_items_1 = __importDefault(require("./qbd/other-charge-items/update-qbd-other-charge-items.js"));
130
+ const list_qbd_other_charge_items_1 = __importDefault(require("./qbd/other-charge-items/list-qbd-other-charge-items.js"));
127
131
  const create_qbd_other_names_1 = __importDefault(require("./qbd/other-names/create-qbd-other-names.js"));
128
132
  const retrieve_qbd_other_names_1 = __importDefault(require("./qbd/other-names/retrieve-qbd-other-names.js"));
129
133
  const update_qbd_other_names_1 = __importDefault(require("./qbd/other-names/update-qbd-other-names.js"));
@@ -324,6 +328,10 @@ addEndpoint(create_qbd_non_inventory_items_1.default);
324
328
  addEndpoint(retrieve_qbd_non_inventory_items_1.default);
325
329
  addEndpoint(update_qbd_non_inventory_items_1.default);
326
330
  addEndpoint(list_qbd_non_inventory_items_1.default);
331
+ addEndpoint(create_qbd_other_charge_items_1.default);
332
+ addEndpoint(retrieve_qbd_other_charge_items_1.default);
333
+ addEndpoint(update_qbd_other_charge_items_1.default);
334
+ addEndpoint(list_qbd_other_charge_items_1.default);
327
335
  addEndpoint(create_qbd_other_names_1.default);
328
336
  addEndpoint(retrieve_qbd_other_names_1.default);
329
337
  addEndpoint(update_qbd_other_names_1.default);