conductor-node-mcp 12.31.1 → 12.33.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 (88) 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/credit-card-refunds/create-qbd-credit-card-refunds.ts +297 -0
  8. package/src/tools/qbd/credit-card-refunds/delete-qbd-credit-card-refunds.ts +54 -0
  9. package/src/tools/qbd/credit-card-refunds/list-qbd-credit-card-refunds.ts +140 -0
  10. package/src/tools/qbd/credit-card-refunds/retrieve-qbd-credit-card-refunds.ts +44 -0
  11. package/src/tools/qbd/credit-memos/create-qbd-credit-memos.ts +1 -1
  12. package/src/tools/qbd/credit-memos/update-qbd-credit-memos.ts +1 -1
  13. package/src/tools/qbd/employees/create-qbd-employees.ts +1 -1
  14. package/src/tools/qbd/employees/update-qbd-employees.ts +1 -1
  15. package/src/tools/qbd/invoices/create-qbd-invoices.ts +1 -1
  16. package/src/tools/qbd/invoices/update-qbd-invoices.ts +1 -1
  17. package/src/tools/qbd/receive-payments/create-qbd-receive-payments.ts +1 -1
  18. package/src/tools/qbd/receive-payments/update-qbd-receive-payments.ts +1 -1
  19. package/tools/index.d.mts.map +1 -1
  20. package/tools/index.d.ts.map +1 -1
  21. package/tools/index.js +8 -0
  22. package/tools/index.js.map +1 -1
  23. package/tools/index.mjs +8 -0
  24. package/tools/index.mjs.map +1 -1
  25. package/tools/qbd/credit-card-refunds/create-qbd-credit-card-refunds.d.mts +45 -0
  26. package/tools/qbd/credit-card-refunds/create-qbd-credit-card-refunds.d.mts.map +1 -0
  27. package/tools/qbd/credit-card-refunds/create-qbd-credit-card-refunds.d.ts +45 -0
  28. package/tools/qbd/credit-card-refunds/create-qbd-credit-card-refunds.d.ts.map +1 -0
  29. package/tools/qbd/credit-card-refunds/create-qbd-credit-card-refunds.js +260 -0
  30. package/tools/qbd/credit-card-refunds/create-qbd-credit-card-refunds.js.map +1 -0
  31. package/tools/qbd/credit-card-refunds/create-qbd-credit-card-refunds.mjs +256 -0
  32. package/tools/qbd/credit-card-refunds/create-qbd-credit-card-refunds.mjs.map +1 -0
  33. package/tools/qbd/credit-card-refunds/delete-qbd-credit-card-refunds.d.mts +45 -0
  34. package/tools/qbd/credit-card-refunds/delete-qbd-credit-card-refunds.d.mts.map +1 -0
  35. package/tools/qbd/credit-card-refunds/delete-qbd-credit-card-refunds.d.ts +45 -0
  36. package/tools/qbd/credit-card-refunds/delete-qbd-credit-card-refunds.d.ts.map +1 -0
  37. package/tools/qbd/credit-card-refunds/delete-qbd-credit-card-refunds.js +46 -0
  38. package/tools/qbd/credit-card-refunds/delete-qbd-credit-card-refunds.js.map +1 -0
  39. package/tools/qbd/credit-card-refunds/delete-qbd-credit-card-refunds.mjs +42 -0
  40. package/tools/qbd/credit-card-refunds/delete-qbd-credit-card-refunds.mjs.map +1 -0
  41. package/tools/qbd/credit-card-refunds/list-qbd-credit-card-refunds.d.mts +45 -0
  42. package/tools/qbd/credit-card-refunds/list-qbd-credit-card-refunds.d.mts.map +1 -0
  43. package/tools/qbd/credit-card-refunds/list-qbd-credit-card-refunds.d.ts +45 -0
  44. package/tools/qbd/credit-card-refunds/list-qbd-credit-card-refunds.d.ts.map +1 -0
  45. package/tools/qbd/credit-card-refunds/list-qbd-credit-card-refunds.js +122 -0
  46. package/tools/qbd/credit-card-refunds/list-qbd-credit-card-refunds.js.map +1 -0
  47. package/tools/qbd/credit-card-refunds/list-qbd-credit-card-refunds.mjs +118 -0
  48. package/tools/qbd/credit-card-refunds/list-qbd-credit-card-refunds.mjs.map +1 -0
  49. package/tools/qbd/credit-card-refunds/retrieve-qbd-credit-card-refunds.d.mts +45 -0
  50. package/tools/qbd/credit-card-refunds/retrieve-qbd-credit-card-refunds.d.mts.map +1 -0
  51. package/tools/qbd/credit-card-refunds/retrieve-qbd-credit-card-refunds.d.ts +45 -0
  52. package/tools/qbd/credit-card-refunds/retrieve-qbd-credit-card-refunds.d.ts.map +1 -0
  53. package/tools/qbd/credit-card-refunds/retrieve-qbd-credit-card-refunds.js +40 -0
  54. package/tools/qbd/credit-card-refunds/retrieve-qbd-credit-card-refunds.js.map +1 -0
  55. package/tools/qbd/credit-card-refunds/retrieve-qbd-credit-card-refunds.mjs +36 -0
  56. package/tools/qbd/credit-card-refunds/retrieve-qbd-credit-card-refunds.mjs.map +1 -0
  57. package/tools/qbd/credit-memos/create-qbd-credit-memos.js +1 -1
  58. package/tools/qbd/credit-memos/create-qbd-credit-memos.js.map +1 -1
  59. package/tools/qbd/credit-memos/create-qbd-credit-memos.mjs +1 -1
  60. package/tools/qbd/credit-memos/create-qbd-credit-memos.mjs.map +1 -1
  61. package/tools/qbd/credit-memos/update-qbd-credit-memos.js +1 -1
  62. package/tools/qbd/credit-memos/update-qbd-credit-memos.js.map +1 -1
  63. package/tools/qbd/credit-memos/update-qbd-credit-memos.mjs +1 -1
  64. package/tools/qbd/credit-memos/update-qbd-credit-memos.mjs.map +1 -1
  65. package/tools/qbd/employees/create-qbd-employees.js +1 -1
  66. package/tools/qbd/employees/create-qbd-employees.js.map +1 -1
  67. package/tools/qbd/employees/create-qbd-employees.mjs +1 -1
  68. package/tools/qbd/employees/create-qbd-employees.mjs.map +1 -1
  69. package/tools/qbd/employees/update-qbd-employees.js +1 -1
  70. package/tools/qbd/employees/update-qbd-employees.js.map +1 -1
  71. package/tools/qbd/employees/update-qbd-employees.mjs +1 -1
  72. package/tools/qbd/employees/update-qbd-employees.mjs.map +1 -1
  73. package/tools/qbd/invoices/create-qbd-invoices.js +1 -1
  74. package/tools/qbd/invoices/create-qbd-invoices.js.map +1 -1
  75. package/tools/qbd/invoices/create-qbd-invoices.mjs +1 -1
  76. package/tools/qbd/invoices/create-qbd-invoices.mjs.map +1 -1
  77. package/tools/qbd/invoices/update-qbd-invoices.js +1 -1
  78. package/tools/qbd/invoices/update-qbd-invoices.js.map +1 -1
  79. package/tools/qbd/invoices/update-qbd-invoices.mjs +1 -1
  80. package/tools/qbd/invoices/update-qbd-invoices.mjs.map +1 -1
  81. package/tools/qbd/receive-payments/create-qbd-receive-payments.js +1 -1
  82. package/tools/qbd/receive-payments/create-qbd-receive-payments.js.map +1 -1
  83. package/tools/qbd/receive-payments/create-qbd-receive-payments.mjs +1 -1
  84. package/tools/qbd/receive-payments/create-qbd-receive-payments.mjs.map +1 -1
  85. package/tools/qbd/receive-payments/update-qbd-receive-payments.js +1 -1
  86. package/tools/qbd/receive-payments/update-qbd-receive-payments.js.map +1 -1
  87. package/tools/qbd/receive-payments/update-qbd-receive-payments.mjs +1 -1
  88. package/tools/qbd/receive-payments/update-qbd-receive-payments.mjs.map +1 -1
package/README.md CHANGED
@@ -301,6 +301,13 @@ The following tools are available in this MCP server.
301
301
  - `list_qbd_credit_card_credits` (`read`): Returns a list of credit card credits. Use the `cursor` parameter to paginate through the results.
302
302
  - `delete_qbd_credit_card_credits` (`write`): Permanently deletes a a credit card credit. The deletion will fail if the credit card credit is currently in use or has any linked transactions that are in use.
303
303
 
304
+ ### Resource `qbd.credit_card_refunds`:
305
+
306
+ - `create_qbd_credit_card_refunds` (`write`): Creates a credit card refund linked to one or more existing credit transactions, such as credit memos or overpayments. You must supply at least one entry in `refundAppliedToTransactions`, and the refund amount cannot exceed the available balance on the linked credits.
307
+ - `retrieve_qbd_credit_card_refunds` (`read`): Retrieves a credit card refund by ID.
308
+ - `list_qbd_credit_card_refunds` (`read`): Returns a list of credit card refunds. Use the `cursor` parameter to paginate through the results.
309
+ - `delete_qbd_credit_card_refunds` (`write`): Permanently deletes a a credit card refund. The deletion will fail if the credit card refund is currently in use or has any linked transactions that are in use.
310
+
304
311
  ### Resource `qbd.credit_memos`:
305
312
 
306
313
  - `create_qbd_credit_memos` (`write`): Creates a new credit memo.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "conductor-node-mcp",
3
- "version": "12.31.1",
3
+ "version": "12.33.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",
@@ -27,7 +27,7 @@
27
27
  "fix": "eslint --fix --ext ts,js ."
28
28
  },
29
29
  "dependencies": {
30
- "conductor-node": "^12.31.1",
30
+ "conductor-node": "^12.33.0",
31
31
  "@cloudflare/cabidela": "^0.2.4",
32
32
  "@modelcontextprotocol/sdk": "^1.11.5",
33
33
  "@valtown/deno-http-worker": "^0.0.21",
package/server.js CHANGED
@@ -21,7 +21,7 @@ var tools_2 = require("./tools.js");
21
21
  Object.defineProperty(exports, "endpoints", { enumerable: true, get: function () { return tools_2.endpoints; } });
22
22
  const newMcpServer = () => new mcp_js_1.McpServer({
23
23
  name: 'conductor_node_api',
24
- version: '12.31.1',
24
+ version: '12.33.0',
25
25
  }, { capabilities: { tools: {}, logging: {} } });
26
26
  exports.newMcpServer = newMcpServer;
27
27
  // Create server instance
package/server.mjs CHANGED
@@ -10,7 +10,7 @@ export { ClientType } from "./compat.mjs";
10
10
  export { endpoints } from "./tools.mjs";
11
11
  export const newMcpServer = () => new McpServer({
12
12
  name: 'conductor_node_api',
13
- version: '12.31.1',
13
+ version: '12.33.0',
14
14
  }, { capabilities: { tools: {}, logging: {} } });
15
15
  // Create server instance
16
16
  export const server = newMcpServer();
package/src/server.ts CHANGED
@@ -32,7 +32,7 @@ export const newMcpServer = () =>
32
32
  new McpServer(
33
33
  {
34
34
  name: 'conductor_node_api',
35
- version: '12.31.1',
35
+ version: '12.33.0',
36
36
  },
37
37
  { capabilities: { tools: {}, logging: {} } },
38
38
  );
@@ -55,6 +55,10 @@ import retrieve_qbd_credit_card_credits from './qbd/credit-card-credits/retrieve
55
55
  import update_qbd_credit_card_credits from './qbd/credit-card-credits/update-qbd-credit-card-credits';
56
56
  import list_qbd_credit_card_credits from './qbd/credit-card-credits/list-qbd-credit-card-credits';
57
57
  import delete_qbd_credit_card_credits from './qbd/credit-card-credits/delete-qbd-credit-card-credits';
58
+ import create_qbd_credit_card_refunds from './qbd/credit-card-refunds/create-qbd-credit-card-refunds';
59
+ import retrieve_qbd_credit_card_refunds from './qbd/credit-card-refunds/retrieve-qbd-credit-card-refunds';
60
+ import list_qbd_credit_card_refunds from './qbd/credit-card-refunds/list-qbd-credit-card-refunds';
61
+ import delete_qbd_credit_card_refunds from './qbd/credit-card-refunds/delete-qbd-credit-card-refunds';
58
62
  import create_qbd_credit_memos from './qbd/credit-memos/create-qbd-credit-memos';
59
63
  import retrieve_qbd_credit_memos from './qbd/credit-memos/retrieve-qbd-credit-memos';
60
64
  import update_qbd_credit_memos from './qbd/credit-memos/update-qbd-credit-memos';
@@ -272,6 +276,10 @@ addEndpoint(retrieve_qbd_credit_card_credits);
272
276
  addEndpoint(update_qbd_credit_card_credits);
273
277
  addEndpoint(list_qbd_credit_card_credits);
274
278
  addEndpoint(delete_qbd_credit_card_credits);
279
+ addEndpoint(create_qbd_credit_card_refunds);
280
+ addEndpoint(retrieve_qbd_credit_card_refunds);
281
+ addEndpoint(list_qbd_credit_card_refunds);
282
+ addEndpoint(delete_qbd_credit_card_refunds);
275
283
  addEndpoint(create_qbd_credit_memos);
276
284
  addEndpoint(retrieve_qbd_credit_memos);
277
285
  addEndpoint(update_qbd_credit_memos);
@@ -0,0 +1,297 @@
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.credit_card_refunds',
10
+ operation: 'write',
11
+ tags: [],
12
+ httpMethod: 'post',
13
+ httpPath: '/quickbooks-desktop/credit-card-refunds',
14
+ };
15
+
16
+ export const tool: Tool = {
17
+ name: 'create_qbd_credit_card_refunds',
18
+ description:
19
+ 'Creates a credit card refund linked to one or more existing credit transactions, such as credit memos or overpayments. You must supply at least one entry in `refundAppliedToTransactions`, and the refund amount cannot exceed the available balance on the linked credits.',
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ customerId: {
24
+ type: 'string',
25
+ description: 'The customer or customer-job associated with this credit card refund.',
26
+ },
27
+ refundAppliedToTransactions: {
28
+ type: 'array',
29
+ description:
30
+ "The credit transactions to refund in this credit card refund. Each entry links this credit card refund to an existing credit (for example, a credit memo or unused receive-payment credit).\n\n**IMPORTANT**: The `refundAmount` for each linked credit cannot exceed that credit's remaining balance, and the combined `refundAmount` across all links cannot exceed this credit card refund's `totalAmount`.",
31
+ items: {
32
+ type: 'object',
33
+ properties: {
34
+ refundAmount: {
35
+ type: 'string',
36
+ description:
37
+ 'The monetary amount to refund from the linked credit transaction within this credit transaction, represented as a decimal string.',
38
+ },
39
+ transactionId: {
40
+ type: 'string',
41
+ description: 'The ID of the credit transaction being refunded by this credit card refund.',
42
+ },
43
+ },
44
+ required: ['refundAmount', 'transactionId'],
45
+ },
46
+ },
47
+ transactionDate: {
48
+ type: 'string',
49
+ description: 'The date of this credit card refund, in ISO 8601 format (YYYY-MM-DD).',
50
+ format: 'date',
51
+ },
52
+ conductorEndUserId: {
53
+ type: 'string',
54
+ description:
55
+ 'The ID of the EndUser to receive this request (e.g., `"Conductor-End-User-Id: {{END_USER_ID}}"`).',
56
+ },
57
+ address: {
58
+ type: 'object',
59
+ description: 'The address that is printed on the credit card refund.',
60
+ properties: {
61
+ city: {
62
+ type: 'string',
63
+ description:
64
+ 'The city, district, suburb, town, or village name of the address.\n\nMaximum length: 31 characters.',
65
+ },
66
+ country: {
67
+ type: 'string',
68
+ description: 'The country name of the address.',
69
+ },
70
+ line1: {
71
+ type: 'string',
72
+ description:
73
+ 'The first line of the address (e.g., street, PO Box, or company name).\n\nMaximum length: 41 characters.',
74
+ },
75
+ line2: {
76
+ type: 'string',
77
+ description:
78
+ 'The second line of the address, if needed (e.g., apartment, suite, unit, or building).\n\nMaximum length: 41 characters.',
79
+ },
80
+ line3: {
81
+ type: 'string',
82
+ description: 'The third line of the address, if needed.\n\nMaximum length: 41 characters.',
83
+ },
84
+ line4: {
85
+ type: 'string',
86
+ description: 'The fourth line of the address, if needed.\n\nMaximum length: 41 characters.',
87
+ },
88
+ line5: {
89
+ type: 'string',
90
+ description: 'The fifth line of the address, if needed.\n\nMaximum length: 41 characters.',
91
+ },
92
+ note: {
93
+ type: 'string',
94
+ description:
95
+ 'A note written at the bottom of the address in the form in which it appears, such as the invoice form.',
96
+ },
97
+ postalCode: {
98
+ type: 'string',
99
+ description: 'The postal code or ZIP code of the address.\n\nMaximum length: 13 characters.',
100
+ },
101
+ state: {
102
+ type: 'string',
103
+ description:
104
+ 'The state, county, province, or region name of the address.\n\nMaximum length: 21 characters.',
105
+ },
106
+ },
107
+ },
108
+ creditCardTransaction: {
109
+ type: 'object',
110
+ description:
111
+ "The credit card transaction data for this credit card refund's payment when using QuickBooks Merchant Services (QBMS). If specifying this field, you must also specify the `paymentMethod` field.",
112
+ properties: {
113
+ request: {
114
+ type: 'object',
115
+ description:
116
+ 'The transaction request data originally supplied for this credit card transaction when using QuickBooks Merchant Services (QBMS).',
117
+ properties: {
118
+ expirationMonth: {
119
+ type: 'number',
120
+ description: 'The month when the credit card expires.',
121
+ },
122
+ expirationYear: {
123
+ type: 'number',
124
+ description: 'The year when the credit card expires.',
125
+ },
126
+ name: {
127
+ type: 'string',
128
+ description: "The cardholder's name on the card.",
129
+ },
130
+ number: {
131
+ type: 'string',
132
+ description: 'The credit card number. Must be masked with lower case "x" and no dashes.',
133
+ },
134
+ address: {
135
+ type: 'string',
136
+ description: "The card's billing address.",
137
+ },
138
+ commercialCardCode: {
139
+ type: 'string',
140
+ description:
141
+ 'The commercial card code identifies the type of business credit card being used (purchase, corporate, or business) for Visa and Mastercard transactions only. When provided, this code may qualify the transaction for lower processing fees compared to the standard rates that apply when no code is specified.',
142
+ },
143
+ postalCode: {
144
+ type: 'string',
145
+ description: "The card's billing address ZIP or postal code.",
146
+ },
147
+ transactionMode: {
148
+ type: 'string',
149
+ description:
150
+ 'Indicates whether this credit card transaction came from a card swipe (`card_present`) or not (`card_not_present`).',
151
+ enum: ['card_not_present', 'card_present'],
152
+ },
153
+ transactionType: {
154
+ type: 'string',
155
+ description: 'The QBMS transaction type from which the current transaction data originated.',
156
+ enum: ['authorization', 'capture', 'charge', 'refund', 'voice_authorization'],
157
+ },
158
+ },
159
+ required: ['expirationMonth', 'expirationYear', 'name', 'number'],
160
+ },
161
+ response: {
162
+ type: 'object',
163
+ description:
164
+ 'The transaction response data for this credit card transaction when using QuickBooks Merchant Services (QBMS).',
165
+ properties: {
166
+ creditCardTransactionId: {
167
+ type: 'string',
168
+ description:
169
+ 'The ID returned from the credit card processor for this credit card transaction.',
170
+ },
171
+ merchantAccountNumber: {
172
+ type: 'string',
173
+ description:
174
+ "The QBMS account number of the merchant who is running this transaction using the customer's credit card.",
175
+ },
176
+ paymentStatus: {
177
+ type: 'string',
178
+ description:
179
+ 'Indicates whether this credit card transaction is known to have been successfully processed by the card issuer.',
180
+ enum: ['completed', 'unknown'],
181
+ },
182
+ statusCode: {
183
+ type: 'number',
184
+ description:
185
+ 'The status code returned in the original QBMS transaction response for this credit card transaction.',
186
+ },
187
+ statusMessage: {
188
+ type: 'string',
189
+ description:
190
+ 'The status message returned in the original QBMS transaction response for this credit card transaction.',
191
+ },
192
+ transactionAuthorizedAt: {
193
+ type: 'string',
194
+ description:
195
+ 'The date and time when the credit card processor authorized this credit card transaction.',
196
+ },
197
+ authorizationCode: {
198
+ type: 'string',
199
+ description:
200
+ 'The authorization code returned from the credit card processor to indicate that this charge will be paid by the card issuer.',
201
+ },
202
+ avsStreetStatus: {
203
+ type: 'string',
204
+ description:
205
+ "Indicates whether the street address supplied in the transaction request matches the customer's address on file at the card issuer.",
206
+ enum: ['fail', 'not_available', 'pass'],
207
+ },
208
+ avsZipStatus: {
209
+ type: 'string',
210
+ description:
211
+ "Indicates whether the customer postal ZIP code supplied in the transaction request matches the customer's postal code recognized at the card issuer.",
212
+ enum: ['fail', 'not_available', 'pass'],
213
+ },
214
+ cardSecurityCodeMatch: {
215
+ type: 'string',
216
+ description:
217
+ 'Indicates whether the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer.',
218
+ enum: ['fail', 'not_available', 'pass'],
219
+ },
220
+ clientTransactionId: {
221
+ type: 'string',
222
+ description:
223
+ 'A value returned from QBMS transactions for future use by the QuickBooks Reconciliation feature.',
224
+ },
225
+ paymentGroupingCode: {
226
+ type: 'number',
227
+ description:
228
+ 'An internal code returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature.',
229
+ },
230
+ reconBatchId: {
231
+ type: 'string',
232
+ description:
233
+ 'An internal ID returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature.',
234
+ },
235
+ transactionAuthorizationStamp: {
236
+ type: 'number',
237
+ description:
238
+ 'An internal value for this credit card transaction, needed for the QuickBooks reconciliation feature.',
239
+ },
240
+ },
241
+ required: [
242
+ 'creditCardTransactionId',
243
+ 'merchantAccountNumber',
244
+ 'paymentStatus',
245
+ 'statusCode',
246
+ 'statusMessage',
247
+ 'transactionAuthorizedAt',
248
+ ],
249
+ },
250
+ },
251
+ },
252
+ exchangeRate: {
253
+ type: 'number',
254
+ description:
255
+ "The market exchange rate between this credit card refund's currency and the home currency in QuickBooks at the time of this transaction. Represented as a decimal value (e.g., 1.2345 for 1 EUR = 1.2345 USD if USD is the home currency).",
256
+ },
257
+ externalId: {
258
+ type: 'string',
259
+ description:
260
+ '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.',
261
+ },
262
+ memo: {
263
+ type: 'string',
264
+ description: 'A memo or note for this credit card refund.',
265
+ },
266
+ paymentMethodId: {
267
+ type: 'string',
268
+ description:
269
+ 'The credit card refund\'s payment method (e.g., cash, check, credit card).\n\n**NOTE**: If this credit card refund contains credit card transaction data supplied from QuickBooks Merchant Services (QBMS) transaction responses, you must specify a credit card payment method (e.g., "Visa", "MasterCard", etc.).',
270
+ },
271
+ receivablesAccountId: {
272
+ type: 'string',
273
+ description:
274
+ 'The Accounts-Receivable (A/R) account to which this credit card refund is assigned, used to track the amount owed. If not specified, QuickBooks Desktop will use its default A/R account.\n\n**IMPORTANT**: If this credit card refund is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. For example, when refunding a credit card payment, the A/R account must match the one used in each linked credit transaction being refunded.',
275
+ },
276
+ refNumber: {
277
+ type: 'string',
278
+ description:
279
+ 'The case-sensitive user-defined reference number for this credit card refund, which can be used to identify the transaction in QuickBooks. This value is not required to be unique and can be arbitrarily changed by the QuickBooks user. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment).',
280
+ },
281
+ refundFromAccountId: {
282
+ type: 'string',
283
+ description:
284
+ 'The account providing funds for this credit card refund. This is typically the Undeposited Funds account used to hold customer payments. If omitted, QuickBooks Desktop will use the default Undeposited Funds account.',
285
+ },
286
+ },
287
+ required: ['customerId', 'refundAppliedToTransactions', 'transactionDate', 'conductorEndUserId'],
288
+ },
289
+ annotations: {},
290
+ };
291
+
292
+ export const handler = async (conductor: Conductor, args: Record<string, unknown> | undefined) => {
293
+ const body = args as any;
294
+ return asTextContentResult(await conductor.qbd.creditCardRefunds.create(body));
295
+ };
296
+
297
+ export default { metadata, tool, handler };
@@ -0,0 +1,54 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from 'conductor-node-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from 'conductor-node-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import Conductor from 'conductor-node';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'qbd.credit_card_refunds',
11
+ operation: 'write',
12
+ tags: [],
13
+ httpMethod: 'delete',
14
+ httpPath: '/quickbooks-desktop/credit-card-refunds/{id}',
15
+ };
16
+
17
+ export const tool: Tool = {
18
+ name: 'delete_qbd_credit_card_refunds',
19
+ description:
20
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nPermanently deletes a a credit card refund. The deletion will fail if the credit card refund is currently in use or has any linked transactions that are in use.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'The QuickBooks-assigned unique identifier of the deleted credit card refund.'\n },\n deleted: {\n type: 'boolean',\n description: 'Indicates whether the credit card refund was deleted.'\n },\n objectType: {\n type: 'string',\n description: 'The type of object. This value is always `\"qbd_credit_card_refund\"`.',\n enum: [ 'qbd_credit_card_refund'\n ]\n },\n refNumber: {\n type: 'string',\n description: 'The case-sensitive user-defined reference number of the deleted credit card refund.'\n }\n },\n required: [ 'id',\n 'deleted',\n 'objectType',\n 'refNumber'\n ]\n}\n```",
21
+ inputSchema: {
22
+ type: 'object',
23
+ properties: {
24
+ id: {
25
+ type: 'string',
26
+ description: 'The QuickBooks-assigned unique identifier of the credit card refund to delete.',
27
+ },
28
+ conductorEndUserId: {
29
+ type: 'string',
30
+ description:
31
+ 'The ID of the EndUser to receive this request (e.g., `"Conductor-End-User-Id: {{END_USER_ID}}"`).',
32
+ },
33
+ jq_filter: {
34
+ type: 'string',
35
+ title: 'jq Filter',
36
+ description:
37
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
38
+ },
39
+ },
40
+ required: ['id', 'conductorEndUserId'],
41
+ },
42
+ annotations: {
43
+ idempotentHint: true,
44
+ },
45
+ };
46
+
47
+ export const handler = async (conductor: Conductor, args: Record<string, unknown> | undefined) => {
48
+ const { id, jq_filter, ...body } = args as any;
49
+ return asTextContentResult(
50
+ await maybeFilter(jq_filter, await conductor.qbd.creditCardRefunds.delete(id, body)),
51
+ );
52
+ };
53
+
54
+ export default { metadata, tool, handler };
@@ -0,0 +1,140 @@
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.credit_card_refunds',
10
+ operation: 'read',
11
+ tags: [],
12
+ httpMethod: 'get',
13
+ httpPath: '/quickbooks-desktop/credit-card-refunds',
14
+ };
15
+
16
+ export const tool: Tool = {
17
+ name: 'list_qbd_credit_card_refunds',
18
+ description:
19
+ 'Returns a list of credit card refunds. 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
+ accountIds: {
29
+ type: 'array',
30
+ description: 'Filter for credit card refunds associated with these accounts.',
31
+ items: {
32
+ type: 'string',
33
+ },
34
+ },
35
+ currencyIds: {
36
+ type: 'array',
37
+ description: 'Filter for credit card refunds in these currencies.',
38
+ items: {
39
+ type: 'string',
40
+ },
41
+ },
42
+ cursor: {
43
+ type: 'string',
44
+ description:
45
+ '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.',
46
+ },
47
+ customerIds: {
48
+ type: 'array',
49
+ description: 'Filter for credit card refunds refunded to these customers.',
50
+ items: {
51
+ type: 'string',
52
+ },
53
+ },
54
+ ids: {
55
+ type: 'array',
56
+ description:
57
+ 'Filter for specific credit card refunds 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.',
58
+ items: {
59
+ type: 'string',
60
+ },
61
+ },
62
+ includeLineItems: {
63
+ type: 'boolean',
64
+ description: 'Whether to include line items in the response. Defaults to `true`.',
65
+ },
66
+ limit: {
67
+ type: 'integer',
68
+ description:
69
+ '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.',
70
+ },
71
+ refNumberContains: {
72
+ type: 'string',
73
+ description:
74
+ 'Filter for credit card refunds whose `refNumber` contains this substring.\n\n**NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`.',
75
+ },
76
+ refNumberEndsWith: {
77
+ type: 'string',
78
+ description:
79
+ 'Filter for credit card refunds whose `refNumber` ends with this substring.\n\n**NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`.',
80
+ },
81
+ refNumberFrom: {
82
+ type: 'string',
83
+ description:
84
+ 'Filter for credit card refunds whose `refNumber` is greater than or equal to this value. If omitted, the range will begin with the first number of the list. Uses a numerical comparison for values that contain only digits; otherwise, uses a lexicographical comparison.',
85
+ },
86
+ refNumbers: {
87
+ type: 'array',
88
+ description:
89
+ 'Filter for specific credit card refunds by their ref-number(s), case-sensitive. In QuickBooks, ref-numbers are not required to be unique and can be arbitrarily changed by the QuickBooks user.\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.',
90
+ items: {
91
+ type: 'string',
92
+ },
93
+ },
94
+ refNumberStartsWith: {
95
+ type: 'string',
96
+ description:
97
+ 'Filter for credit card refunds whose `refNumber` starts with this substring.\n\n**NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`.',
98
+ },
99
+ refNumberTo: {
100
+ type: 'string',
101
+ description:
102
+ 'Filter for credit card refunds whose `refNumber` is less than or equal to this value. If omitted, the range will end with the last number of the list. Uses a numerical comparison for values that contain only digits; otherwise, uses a lexicographical comparison.',
103
+ },
104
+ transactionDateFrom: {
105
+ type: 'string',
106
+ description:
107
+ "Filter for credit card refunds whose `date` field is on or after this date, in ISO 8601 format (YYYY-MM-DD).\n\n**NOTE:** QuickBooks Desktop interprets this date as the **start of the specified day** in the local timezone of the end-user's computer (e.g., `2025-01-01` → `2025-01-01T00:00:00`).",
108
+ format: 'date',
109
+ },
110
+ transactionDateTo: {
111
+ type: 'string',
112
+ description:
113
+ "Filter for credit card refunds whose `date` field is on or before this date, in ISO 8601 format (YYYY-MM-DD).\n\n**NOTE:** QuickBooks Desktop interprets this date as the **end of the specified day** in the local timezone of the end-user's computer (e.g., `2025-01-01` → `2025-01-01T23:59:59`).",
114
+ format: 'date',
115
+ },
116
+ updatedAfter: {
117
+ type: 'string',
118
+ description:
119
+ "Filter for credit card refunds updated on or after this date/time. Accepts the following ISO 8601 formats:\n- **date-only** (YYYY-MM-DD) - QuickBooks Desktop interprets the date as the **start of the specified day** in the local timezone of the end-user's computer (e.g., `2025-01-01` → `2025-01-01T00:00:00`).\n- **datetime without timezone** (YYYY-MM-DDTHH:mm:ss) - QuickBooks Desktop interprets the timestamp in the local timezone of the end-user's computer.\n- **datetime with timezone** (YYYY-MM-DDTHH:mm:ss±HH:mm) - QuickBooks Desktop interprets the timestamp using the specified timezone.",
120
+ },
121
+ updatedBefore: {
122
+ type: 'string',
123
+ description:
124
+ "Filter for credit card refunds updated on or before this date/time. Accepts the following ISO 8601 formats:\n- **date-only** (YYYY-MM-DD) - QuickBooks Desktop interprets the date as the **end of the specified day** in the local timezone of the end-user's computer (e.g., `2025-01-01` → `2025-01-01T23:59:59`).\n- **datetime without timezone** (YYYY-MM-DDTHH:mm:ss) - QuickBooks Desktop interprets the timestamp in the local timezone of the end-user's computer.\n- **datetime with timezone** (YYYY-MM-DDTHH:mm:ss±HH:mm) - QuickBooks Desktop interprets the timestamp using the specified timezone.",
125
+ },
126
+ },
127
+ required: ['conductorEndUserId'],
128
+ },
129
+ annotations: {
130
+ readOnlyHint: true,
131
+ },
132
+ };
133
+
134
+ export const handler = async (conductor: Conductor, args: Record<string, unknown> | undefined) => {
135
+ const body = args as any;
136
+ const response = await conductor.qbd.creditCardRefunds.list(body).asResponse();
137
+ return asTextContentResult(await response.json());
138
+ };
139
+
140
+ 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.credit_card_refunds',
10
+ operation: 'read',
11
+ tags: [],
12
+ httpMethod: 'get',
13
+ httpPath: '/quickbooks-desktop/credit-card-refunds/{id}',
14
+ };
15
+
16
+ export const tool: Tool = {
17
+ name: 'retrieve_qbd_credit_card_refunds',
18
+ description: 'Retrieves a credit card refund by ID.',
19
+ inputSchema: {
20
+ type: 'object',
21
+ properties: {
22
+ id: {
23
+ type: 'string',
24
+ description: 'The QuickBooks-assigned unique identifier of the credit card refund 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.creditCardRefunds.retrieve(id, body));
42
+ };
43
+
44
+ export default { metadata, tool, handler };
@@ -333,7 +333,7 @@ export const tool: Tool = {
333
333
  receivablesAccountId: {
334
334
  type: 'string',
335
335
  description:
336
- 'The Accounts-Receivable (A/R) account to which this credit memo is assigned, used to track the amount owed. If not specified, QuickBooks Desktop will use its default A/R account.\n\n**IMPORTANT**: If this credit memo is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. For example, when refunding a credit card payment, the A/R account must match the one used in the original credit transactions being refunded.',
336
+ 'The Accounts-Receivable (A/R) account to which this credit memo is assigned, used to track the amount owed. If not specified, QuickBooks Desktop will use its default A/R account.\n\n**IMPORTANT**: If this credit memo is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions.',
337
337
  },
338
338
  refNumber: {
339
339
  type: 'string',
@@ -402,7 +402,7 @@ export const tool: Tool = {
402
402
  receivablesAccountId: {
403
403
  type: 'string',
404
404
  description:
405
- 'The Accounts-Receivable (A/R) account to which this credit memo is assigned, used to track the amount owed. If not specified, QuickBooks Desktop will use its default A/R account.\n\n**IMPORTANT**: If this credit memo is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. For example, when refunding a credit card payment, the A/R account must match the one used in the original credit transactions being refunded.',
405
+ 'The Accounts-Receivable (A/R) account to which this credit memo is assigned, used to track the amount owed. If not specified, QuickBooks Desktop will use its default A/R account.\n\n**IMPORTANT**: If this credit memo is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions.',
406
406
  },
407
407
  refNumber: {
408
408
  type: 'string',
@@ -85,7 +85,7 @@ export const tool: Tool = {
85
85
  state: {
86
86
  type: 'string',
87
87
  description:
88
- 'The U.S. state of the employee address. QuickBooks requires this field to be a U.S. state abbreviation (e.g., "CA" for California). See enum for all possible values.\n\n**NOTE:** This `state` field is an enum when creating or updating an employee, but a plain string when returning an employee. On input, QuickBooks Desktop rejects any non-standard state values for employee addresses; hence, we must use an enum for the input. However, when returning an employee address, we have seen QuickBooks return non-standard state values (like \'ON\') that do not conform to the enum; hence, we use a plain string on return to support unexpected values.',
88
+ 'The U.S. state of the employee address. QuickBooks requires this field to be a U.S. state abbreviation (e.g., "CA" for California). See enum for all possible values.',
89
89
  enum: [
90
90
  'none',
91
91
  'armed_forces_americas',