conductor-node 11.10.1 → 12.0.0-beta.1

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 (510) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/LICENSE +201 -21
  3. package/README.md +330 -63
  4. package/_shims/MultipartBody.d.ts +9 -0
  5. package/_shims/MultipartBody.d.ts.map +1 -0
  6. package/_shims/MultipartBody.js +16 -0
  7. package/_shims/MultipartBody.js.map +1 -0
  8. package/_shims/MultipartBody.mjs +12 -0
  9. package/_shims/MultipartBody.mjs.map +1 -0
  10. package/_shims/README.md +46 -0
  11. package/_shims/auto/runtime-bun.d.ts +5 -0
  12. package/_shims/auto/runtime-bun.d.ts.map +1 -0
  13. package/_shims/auto/runtime-bun.js +21 -0
  14. package/_shims/auto/runtime-bun.js.map +1 -0
  15. package/_shims/auto/runtime-bun.mjs +2 -0
  16. package/_shims/auto/runtime-bun.mjs.map +1 -0
  17. package/_shims/auto/runtime-node.d.ts +5 -0
  18. package/_shims/auto/runtime-node.d.ts.map +1 -0
  19. package/_shims/auto/runtime-node.js +21 -0
  20. package/_shims/auto/runtime-node.js.map +1 -0
  21. package/_shims/auto/runtime-node.mjs +2 -0
  22. package/_shims/auto/runtime-node.mjs.map +1 -0
  23. package/_shims/auto/runtime.d.ts +5 -0
  24. package/_shims/auto/runtime.d.ts.map +1 -0
  25. package/_shims/auto/runtime.js +21 -0
  26. package/_shims/auto/runtime.js.map +1 -0
  27. package/_shims/auto/runtime.mjs +2 -0
  28. package/_shims/auto/runtime.mjs.map +1 -0
  29. package/_shims/auto/types-node.d.ts +5 -0
  30. package/_shims/auto/types-node.d.ts.map +1 -0
  31. package/_shims/auto/types-node.js +21 -0
  32. package/_shims/auto/types-node.js.map +1 -0
  33. package/_shims/auto/types-node.mjs +2 -0
  34. package/_shims/auto/types-node.mjs.map +1 -0
  35. package/_shims/auto/types.d.ts +101 -0
  36. package/_shims/auto/types.js +3 -0
  37. package/_shims/auto/types.mjs +3 -0
  38. package/_shims/bun-runtime.d.ts +6 -0
  39. package/_shims/bun-runtime.d.ts.map +1 -0
  40. package/_shims/bun-runtime.js +14 -0
  41. package/_shims/bun-runtime.js.map +1 -0
  42. package/_shims/bun-runtime.mjs +10 -0
  43. package/_shims/bun-runtime.mjs.map +1 -0
  44. package/_shims/index.d.ts +81 -0
  45. package/_shims/index.js +13 -0
  46. package/_shims/index.mjs +7 -0
  47. package/_shims/manual-types.d.ts +12 -0
  48. package/_shims/manual-types.js +3 -0
  49. package/_shims/manual-types.mjs +3 -0
  50. package/_shims/node-runtime.d.ts +3 -0
  51. package/_shims/node-runtime.d.ts.map +1 -0
  52. package/_shims/node-runtime.js +89 -0
  53. package/_shims/node-runtime.js.map +1 -0
  54. package/_shims/node-runtime.mjs +56 -0
  55. package/_shims/node-runtime.mjs.map +1 -0
  56. package/_shims/node-types.d.ts +42 -0
  57. package/_shims/node-types.js +3 -0
  58. package/_shims/node-types.mjs +3 -0
  59. package/_shims/registry.d.ts +37 -0
  60. package/_shims/registry.d.ts.map +1 -0
  61. package/_shims/registry.js +41 -0
  62. package/_shims/registry.js.map +1 -0
  63. package/_shims/registry.mjs +37 -0
  64. package/_shims/registry.mjs.map +1 -0
  65. package/_shims/web-runtime.d.ts +5 -0
  66. package/_shims/web-runtime.d.ts.map +1 -0
  67. package/_shims/web-runtime.js +78 -0
  68. package/_shims/web-runtime.js.map +1 -0
  69. package/_shims/web-runtime.mjs +71 -0
  70. package/_shims/web-runtime.mjs.map +1 -0
  71. package/_shims/web-types.d.ts +83 -0
  72. package/_shims/web-types.js +3 -0
  73. package/_shims/web-types.mjs +3 -0
  74. package/core.d.ts +241 -0
  75. package/core.d.ts.map +1 -0
  76. package/core.js +914 -0
  77. package/core.js.map +1 -0
  78. package/core.mjs +882 -0
  79. package/core.mjs.map +1 -0
  80. package/error.d.ts +47 -0
  81. package/error.d.ts.map +1 -0
  82. package/error.js +113 -0
  83. package/error.js.map +1 -0
  84. package/error.mjs +97 -0
  85. package/error.mjs.map +1 -0
  86. package/index.d.mts +121 -0
  87. package/index.d.ts +121 -0
  88. package/index.d.ts.map +1 -0
  89. package/index.js +133 -0
  90. package/index.js.map +1 -0
  91. package/index.mjs +90 -0
  92. package/index.mjs.map +1 -0
  93. package/internal/qs/formats.d.ts +6 -0
  94. package/internal/qs/formats.d.ts.map +1 -0
  95. package/internal/qs/formats.js +11 -0
  96. package/internal/qs/formats.js.map +1 -0
  97. package/internal/qs/formats.mjs +8 -0
  98. package/internal/qs/formats.mjs.map +1 -0
  99. package/internal/qs/index.d.ts +10 -0
  100. package/internal/qs/index.d.ts.map +1 -0
  101. package/internal/qs/index.js +14 -0
  102. package/internal/qs/index.js.map +1 -0
  103. package/internal/qs/index.mjs +10 -0
  104. package/internal/qs/index.mjs.map +1 -0
  105. package/internal/qs/stringify.d.ts +3 -0
  106. package/internal/qs/stringify.d.ts.map +1 -0
  107. package/internal/qs/stringify.js +280 -0
  108. package/internal/qs/stringify.js.map +1 -0
  109. package/internal/qs/stringify.mjs +276 -0
  110. package/internal/qs/stringify.mjs.map +1 -0
  111. package/internal/qs/types.d.ts +57 -0
  112. package/internal/qs/types.d.ts.map +1 -0
  113. package/{dist/src/resources → internal/qs}/types.js +1 -0
  114. package/internal/qs/types.js.map +1 -0
  115. package/internal/qs/types.mjs +2 -0
  116. package/internal/qs/types.mjs.map +1 -0
  117. package/internal/qs/utils.d.ts +14 -0
  118. package/internal/qs/utils.d.ts.map +1 -0
  119. package/internal/qs/utils.js +229 -0
  120. package/internal/qs/utils.js.map +1 -0
  121. package/internal/qs/utils.mjs +217 -0
  122. package/internal/qs/utils.mjs.map +1 -0
  123. package/package.json +111 -35
  124. package/pagination.d.ts +18 -0
  125. package/pagination.d.ts.map +1 -0
  126. package/pagination.js +40 -0
  127. package/pagination.js.map +1 -0
  128. package/pagination.mjs +36 -0
  129. package/pagination.mjs.map +1 -0
  130. package/resource.d.ts +6 -0
  131. package/resource.d.ts.map +1 -0
  132. package/resource.js +11 -0
  133. package/resource.js.map +1 -0
  134. package/resource.mjs +7 -0
  135. package/resource.mjs.map +1 -0
  136. package/resources/auth-sessions.d.ts +79 -0
  137. package/resources/auth-sessions.d.ts.map +1 -0
  138. package/resources/auth-sessions.js +23 -0
  139. package/resources/auth-sessions.js.map +1 -0
  140. package/resources/auth-sessions.mjs +19 -0
  141. package/resources/auth-sessions.mjs.map +1 -0
  142. package/resources/end-users.d.ts +154 -0
  143. package/resources/end-users.d.ts.map +1 -0
  144. package/resources/end-users.js +48 -0
  145. package/resources/end-users.js.map +1 -0
  146. package/resources/end-users.mjs +44 -0
  147. package/resources/end-users.mjs.map +1 -0
  148. package/resources/index.d.ts +4 -0
  149. package/resources/index.d.ts.map +1 -0
  150. package/resources/index.js +11 -0
  151. package/resources/index.js.map +1 -0
  152. package/resources/index.mjs +5 -0
  153. package/resources/index.mjs.map +1 -0
  154. package/resources/qbd/accounts.d.ts +579 -0
  155. package/resources/qbd/accounts.d.ts.map +1 -0
  156. package/resources/qbd/accounts.js +54 -0
  157. package/resources/qbd/accounts.js.map +1 -0
  158. package/resources/qbd/accounts.mjs +50 -0
  159. package/resources/qbd/accounts.mjs.map +1 -0
  160. package/resources/qbd/bill-check-payments.d.ts +831 -0
  161. package/resources/qbd/bill-check-payments.d.ts.map +1 -0
  162. package/resources/qbd/bill-check-payments.js +70 -0
  163. package/resources/qbd/bill-check-payments.js.map +1 -0
  164. package/resources/qbd/bill-check-payments.mjs +65 -0
  165. package/resources/qbd/bill-check-payments.mjs.map +1 -0
  166. package/resources/qbd/bill-credit-card-payments.d.ts +641 -0
  167. package/resources/qbd/bill-credit-card-payments.d.ts.map +1 -0
  168. package/resources/qbd/bill-credit-card-payments.js +55 -0
  169. package/resources/qbd/bill-credit-card-payments.js.map +1 -0
  170. package/resources/qbd/bill-credit-card-payments.mjs +50 -0
  171. package/resources/qbd/bill-credit-card-payments.mjs.map +1 -0
  172. package/resources/qbd/bills.d.ts +2561 -0
  173. package/resources/qbd/bills.d.ts.map +1 -0
  174. package/resources/qbd/bills.js +69 -0
  175. package/resources/qbd/bills.js.map +1 -0
  176. package/resources/qbd/bills.mjs +64 -0
  177. package/resources/qbd/bills.mjs.map +1 -0
  178. package/resources/qbd/checks.d.ts +2528 -0
  179. package/resources/qbd/checks.d.ts.map +1 -0
  180. package/resources/qbd/checks.js +69 -0
  181. package/resources/qbd/checks.js.map +1 -0
  182. package/resources/qbd/checks.mjs +64 -0
  183. package/resources/qbd/checks.mjs.map +1 -0
  184. package/resources/qbd/classes.d.ts +289 -0
  185. package/resources/qbd/classes.d.ts.map +1 -0
  186. package/resources/qbd/classes.js +54 -0
  187. package/resources/qbd/classes.js.map +1 -0
  188. package/resources/qbd/classes.mjs +50 -0
  189. package/resources/qbd/classes.mjs.map +1 -0
  190. package/resources/qbd/credit-card-charges.d.ts +2236 -0
  191. package/resources/qbd/credit-card-charges.d.ts.map +1 -0
  192. package/resources/qbd/credit-card-charges.js +69 -0
  193. package/resources/qbd/credit-card-charges.js.map +1 -0
  194. package/resources/qbd/credit-card-charges.mjs +64 -0
  195. package/resources/qbd/credit-card-charges.mjs.map +1 -0
  196. package/resources/qbd/credit-card-credits.d.ts +2233 -0
  197. package/resources/qbd/credit-card-credits.d.ts.map +1 -0
  198. package/resources/qbd/credit-card-credits.js +69 -0
  199. package/resources/qbd/credit-card-credits.js.map +1 -0
  200. package/resources/qbd/credit-card-credits.mjs +64 -0
  201. package/resources/qbd/credit-card-credits.mjs.map +1 -0
  202. package/resources/qbd/credit-memos.d.ts +2649 -0
  203. package/resources/qbd/credit-memos.d.ts.map +1 -0
  204. package/resources/qbd/credit-memos.js +69 -0
  205. package/resources/qbd/credit-memos.js.map +1 -0
  206. package/resources/qbd/credit-memos.mjs +64 -0
  207. package/resources/qbd/credit-memos.mjs.map +1 -0
  208. package/resources/qbd/customers.d.ts +2106 -0
  209. package/resources/qbd/customers.d.ts.map +1 -0
  210. package/resources/qbd/customers.js +58 -0
  211. package/resources/qbd/customers.js.map +1 -0
  212. package/resources/qbd/customers.mjs +53 -0
  213. package/resources/qbd/customers.mjs.map +1 -0
  214. package/resources/qbd/date-driven-terms.d.ts +242 -0
  215. package/resources/qbd/date-driven-terms.d.ts.map +1 -0
  216. package/resources/qbd/date-driven-terms.js +43 -0
  217. package/resources/qbd/date-driven-terms.js.map +1 -0
  218. package/resources/qbd/date-driven-terms.mjs +39 -0
  219. package/resources/qbd/date-driven-terms.mjs.map +1 -0
  220. package/resources/qbd/discount-items.d.ts +576 -0
  221. package/resources/qbd/discount-items.d.ts.map +1 -0
  222. package/resources/qbd/discount-items.js +58 -0
  223. package/resources/qbd/discount-items.js.map +1 -0
  224. package/resources/qbd/discount-items.mjs +53 -0
  225. package/resources/qbd/discount-items.mjs.map +1 -0
  226. package/resources/qbd/employees.d.ts +1669 -0
  227. package/resources/qbd/employees.d.ts.map +1 -0
  228. package/resources/qbd/employees.js +58 -0
  229. package/resources/qbd/employees.js.map +1 -0
  230. package/resources/qbd/employees.mjs +53 -0
  231. package/resources/qbd/employees.mjs.map +1 -0
  232. package/resources/qbd/estimates.d.ts +2493 -0
  233. package/resources/qbd/estimates.d.ts.map +1 -0
  234. package/resources/qbd/estimates.js +69 -0
  235. package/resources/qbd/estimates.js.map +1 -0
  236. package/resources/qbd/estimates.mjs +64 -0
  237. package/resources/qbd/estimates.mjs.map +1 -0
  238. package/resources/qbd/index.d.ts +37 -0
  239. package/resources/qbd/index.d.ts.map +1 -0
  240. package/resources/qbd/index.js +105 -0
  241. package/resources/qbd/index.js.map +1 -0
  242. package/resources/qbd/index.mjs +38 -0
  243. package/resources/qbd/index.mjs.map +1 -0
  244. package/resources/qbd/inventory-adjustments.d.ts +814 -0
  245. package/resources/qbd/inventory-adjustments.d.ts.map +1 -0
  246. package/resources/qbd/inventory-adjustments.js +66 -0
  247. package/resources/qbd/inventory-adjustments.js.map +1 -0
  248. package/resources/qbd/inventory-adjustments.mjs +62 -0
  249. package/resources/qbd/inventory-adjustments.mjs.map +1 -0
  250. package/resources/qbd/inventory-assembly-items.d.ts +931 -0
  251. package/resources/qbd/inventory-assembly-items.d.ts.map +1 -0
  252. package/resources/qbd/inventory-assembly-items.js +54 -0
  253. package/resources/qbd/inventory-assembly-items.js.map +1 -0
  254. package/resources/qbd/inventory-assembly-items.mjs +49 -0
  255. package/resources/qbd/inventory-assembly-items.mjs.map +1 -0
  256. package/resources/qbd/inventory-items.d.ts +844 -0
  257. package/resources/qbd/inventory-items.d.ts.map +1 -0
  258. package/resources/qbd/inventory-items.js +58 -0
  259. package/resources/qbd/inventory-items.js.map +1 -0
  260. package/resources/qbd/inventory-items.mjs +53 -0
  261. package/resources/qbd/inventory-items.mjs.map +1 -0
  262. package/resources/qbd/inventory-sites.d.ts +477 -0
  263. package/resources/qbd/inventory-sites.d.ts.map +1 -0
  264. package/resources/qbd/inventory-sites.js +54 -0
  265. package/resources/qbd/inventory-sites.js.map +1 -0
  266. package/resources/qbd/inventory-sites.mjs +50 -0
  267. package/resources/qbd/inventory-sites.mjs.map +1 -0
  268. package/resources/qbd/invoices.d.ts +2873 -0
  269. package/resources/qbd/invoices.d.ts.map +1 -0
  270. package/resources/qbd/invoices.js +69 -0
  271. package/resources/qbd/invoices.js.map +1 -0
  272. package/resources/qbd/invoices.mjs +64 -0
  273. package/resources/qbd/invoices.mjs.map +1 -0
  274. package/resources/qbd/journal-entries.d.ts +856 -0
  275. package/resources/qbd/journal-entries.d.ts.map +1 -0
  276. package/resources/qbd/journal-entries.js +69 -0
  277. package/resources/qbd/journal-entries.js.map +1 -0
  278. package/resources/qbd/journal-entries.mjs +64 -0
  279. package/resources/qbd/journal-entries.mjs.map +1 -0
  280. package/resources/qbd/non-inventory-items.d.ts +950 -0
  281. package/resources/qbd/non-inventory-items.d.ts.map +1 -0
  282. package/resources/qbd/non-inventory-items.js +58 -0
  283. package/resources/qbd/non-inventory-items.js.map +1 -0
  284. package/resources/qbd/non-inventory-items.mjs +53 -0
  285. package/resources/qbd/non-inventory-items.mjs.map +1 -0
  286. package/resources/qbd/payroll-wage-items.d.ts +215 -0
  287. package/resources/qbd/payroll-wage-items.d.ts.map +1 -0
  288. package/resources/qbd/payroll-wage-items.js +47 -0
  289. package/resources/qbd/payroll-wage-items.js.map +1 -0
  290. package/resources/qbd/payroll-wage-items.mjs +42 -0
  291. package/resources/qbd/payroll-wage-items.mjs.map +1 -0
  292. package/resources/qbd/purchase-orders.d.ts +2554 -0
  293. package/resources/qbd/purchase-orders.d.ts.map +1 -0
  294. package/resources/qbd/purchase-orders.js +69 -0
  295. package/resources/qbd/purchase-orders.js.map +1 -0
  296. package/resources/qbd/purchase-orders.mjs +64 -0
  297. package/resources/qbd/purchase-orders.mjs.map +1 -0
  298. package/resources/qbd/qbd.d.ts +146 -0
  299. package/resources/qbd/qbd.d.ts.map +1 -0
  300. package/resources/qbd/qbd.js +202 -0
  301. package/resources/qbd/qbd.js.map +1 -0
  302. package/resources/qbd/qbd.mjs +175 -0
  303. package/resources/qbd/qbd.mjs.map +1 -0
  304. package/resources/qbd/receive-payments.d.ts +1282 -0
  305. package/resources/qbd/receive-payments.d.ts.map +1 -0
  306. package/resources/qbd/receive-payments.js +70 -0
  307. package/resources/qbd/receive-payments.js.map +1 -0
  308. package/resources/qbd/receive-payments.mjs +65 -0
  309. package/resources/qbd/receive-payments.mjs.map +1 -0
  310. package/resources/qbd/sales-orders.d.ts +2628 -0
  311. package/resources/qbd/sales-orders.d.ts.map +1 -0
  312. package/resources/qbd/sales-orders.js +69 -0
  313. package/resources/qbd/sales-orders.js.map +1 -0
  314. package/resources/qbd/sales-orders.mjs +64 -0
  315. package/resources/qbd/sales-orders.mjs.map +1 -0
  316. package/resources/qbd/sales-receipts.d.ts +3373 -0
  317. package/resources/qbd/sales-receipts.d.ts.map +1 -0
  318. package/resources/qbd/sales-receipts.js +69 -0
  319. package/resources/qbd/sales-receipts.js.map +1 -0
  320. package/resources/qbd/sales-receipts.mjs +64 -0
  321. package/resources/qbd/sales-receipts.mjs.map +1 -0
  322. package/resources/qbd/sales-representatives.d.ts +251 -0
  323. package/resources/qbd/sales-representatives.d.ts.map +1 -0
  324. package/resources/qbd/sales-representatives.js +54 -0
  325. package/resources/qbd/sales-representatives.js.map +1 -0
  326. package/resources/qbd/sales-representatives.mjs +50 -0
  327. package/resources/qbd/sales-representatives.mjs.map +1 -0
  328. package/resources/qbd/sales-tax-codes.d.ts +306 -0
  329. package/resources/qbd/sales-tax-codes.d.ts.map +1 -0
  330. package/resources/qbd/sales-tax-codes.js +54 -0
  331. package/resources/qbd/sales-tax-codes.js.map +1 -0
  332. package/resources/qbd/sales-tax-codes.mjs +50 -0
  333. package/resources/qbd/sales-tax-codes.mjs.map +1 -0
  334. package/resources/qbd/sales-tax-items.d.ts +458 -0
  335. package/resources/qbd/sales-tax-items.d.ts.map +1 -0
  336. package/resources/qbd/sales-tax-items.js +58 -0
  337. package/resources/qbd/sales-tax-items.js.map +1 -0
  338. package/resources/qbd/sales-tax-items.mjs +53 -0
  339. package/resources/qbd/sales-tax-items.mjs.map +1 -0
  340. package/resources/qbd/service-items.d.ts +923 -0
  341. package/resources/qbd/service-items.d.ts.map +1 -0
  342. package/resources/qbd/service-items.js +58 -0
  343. package/resources/qbd/service-items.js.map +1 -0
  344. package/resources/qbd/service-items.mjs +53 -0
  345. package/resources/qbd/service-items.mjs.map +1 -0
  346. package/resources/qbd/standard-terms.d.ts +225 -0
  347. package/resources/qbd/standard-terms.d.ts.map +1 -0
  348. package/resources/qbd/standard-terms.js +43 -0
  349. package/resources/qbd/standard-terms.js.map +1 -0
  350. package/resources/qbd/standard-terms.mjs +39 -0
  351. package/resources/qbd/standard-terms.mjs.map +1 -0
  352. package/resources/qbd/subtotal-items.d.ts +323 -0
  353. package/resources/qbd/subtotal-items.d.ts.map +1 -0
  354. package/resources/qbd/subtotal-items.js +58 -0
  355. package/resources/qbd/subtotal-items.js.map +1 -0
  356. package/resources/qbd/subtotal-items.mjs +53 -0
  357. package/resources/qbd/subtotal-items.mjs.map +1 -0
  358. package/resources/qbd/transfers.d.ts +269 -0
  359. package/resources/qbd/transfers.d.ts.map +1 -0
  360. package/resources/qbd/transfers.js +58 -0
  361. package/resources/qbd/transfers.js.map +1 -0
  362. package/resources/qbd/transfers.mjs +53 -0
  363. package/resources/qbd/transfers.mjs.map +1 -0
  364. package/resources/qbd/vendor-credits.d.ts +2298 -0
  365. package/resources/qbd/vendor-credits.d.ts.map +1 -0
  366. package/resources/qbd/vendor-credits.js +69 -0
  367. package/resources/qbd/vendor-credits.js.map +1 -0
  368. package/resources/qbd/vendor-credits.mjs +64 -0
  369. package/resources/qbd/vendor-credits.mjs.map +1 -0
  370. package/resources/qbd/vendors.d.ts +1677 -0
  371. package/resources/qbd/vendors.d.ts.map +1 -0
  372. package/resources/qbd/vendors.js +58 -0
  373. package/resources/qbd/vendors.js.map +1 -0
  374. package/resources/qbd/vendors.mjs +53 -0
  375. package/resources/qbd/vendors.mjs.map +1 -0
  376. package/shims/node.d.ts +30 -0
  377. package/shims/node.d.ts.map +1 -0
  378. package/shims/node.js +31 -0
  379. package/shims/node.js.map +1 -0
  380. package/shims/node.mjs +5 -0
  381. package/shims/node.mjs.map +1 -0
  382. package/shims/web.d.ts +26 -0
  383. package/shims/web.d.ts.map +1 -0
  384. package/shims/web.js +31 -0
  385. package/shims/web.js.map +1 -0
  386. package/shims/web.mjs +5 -0
  387. package/shims/web.mjs.map +1 -0
  388. package/src/_shims/MultipartBody.ts +9 -0
  389. package/src/_shims/README.md +46 -0
  390. package/src/_shims/auto/runtime-bun.ts +4 -0
  391. package/src/_shims/auto/runtime-node.ts +4 -0
  392. package/src/_shims/auto/runtime.ts +4 -0
  393. package/src/_shims/auto/types-node.ts +4 -0
  394. package/src/_shims/auto/types.d.ts +101 -0
  395. package/src/_shims/auto/types.js +3 -0
  396. package/src/_shims/auto/types.mjs +3 -0
  397. package/src/_shims/bun-runtime.ts +14 -0
  398. package/src/_shims/index.d.ts +81 -0
  399. package/src/_shims/index.js +13 -0
  400. package/src/_shims/index.mjs +7 -0
  401. package/src/_shims/manual-types.d.ts +12 -0
  402. package/src/_shims/manual-types.js +3 -0
  403. package/src/_shims/manual-types.mjs +3 -0
  404. package/src/_shims/node-runtime.ts +81 -0
  405. package/src/_shims/node-types.d.ts +42 -0
  406. package/src/_shims/node-types.js +3 -0
  407. package/src/_shims/node-types.mjs +3 -0
  408. package/src/_shims/registry.ts +67 -0
  409. package/src/_shims/web-runtime.ts +103 -0
  410. package/src/_shims/web-types.d.ts +83 -0
  411. package/src/_shims/web-types.js +3 -0
  412. package/src/_shims/web-types.mjs +3 -0
  413. package/src/core.ts +1208 -0
  414. package/src/error.ts +130 -0
  415. package/src/index.ts +227 -0
  416. package/src/internal/qs/LICENSE.md +13 -0
  417. package/src/internal/qs/README.md +3 -0
  418. package/src/internal/qs/formats.ts +9 -0
  419. package/src/internal/qs/index.ts +13 -0
  420. package/src/internal/qs/stringify.ts +388 -0
  421. package/src/internal/qs/types.ts +71 -0
  422. package/src/internal/qs/utils.ts +265 -0
  423. package/src/lib/.keep +4 -0
  424. package/src/pagination.ts +60 -0
  425. package/src/resource.ts +11 -0
  426. package/src/resources/auth-sessions.ts +99 -0
  427. package/src/resources/end-users.ts +216 -0
  428. package/src/resources/index.ts +14 -0
  429. package/src/resources/qbd/accounts.ts +797 -0
  430. package/src/resources/qbd/bill-check-payments.ts +1086 -0
  431. package/src/resources/qbd/bill-credit-card-payments.ts +851 -0
  432. package/src/resources/qbd/bills.ts +3039 -0
  433. package/src/resources/qbd/checks.ts +3003 -0
  434. package/src/resources/qbd/classes.ts +366 -0
  435. package/src/resources/qbd/credit-card-charges.ts +2646 -0
  436. package/src/resources/qbd/credit-card-credits.ts +2643 -0
  437. package/src/resources/qbd/credit-memos.ts +3157 -0
  438. package/src/resources/qbd/customers.ts +2518 -0
  439. package/src/resources/qbd/date-driven-terms.ts +314 -0
  440. package/src/resources/qbd/discount-items.ts +712 -0
  441. package/src/resources/qbd/employees.ts +2266 -0
  442. package/src/resources/qbd/estimates.ts +2975 -0
  443. package/src/resources/qbd/index.ts +346 -0
  444. package/src/resources/qbd/inventory-adjustments.ts +1008 -0
  445. package/src/resources/qbd/inventory-assembly-items.ts +1126 -0
  446. package/src/resources/qbd/inventory-items.ts +1026 -0
  447. package/src/resources/qbd/inventory-sites.ts +605 -0
  448. package/src/resources/qbd/invoices.ts +3398 -0
  449. package/src/resources/qbd/journal-entries.ts +1051 -0
  450. package/src/resources/qbd/non-inventory-items.ts +1138 -0
  451. package/src/resources/qbd/payroll-wage-items.ts +304 -0
  452. package/src/resources/qbd/purchase-orders.ts +3045 -0
  453. package/src/resources/qbd/qbd.ts +876 -0
  454. package/src/resources/qbd/receive-payments.ts +1609 -0
  455. package/src/resources/qbd/sales-orders.ts +3141 -0
  456. package/src/resources/qbd/sales-receipts.ts +3977 -0
  457. package/src/resources/qbd/sales-representatives.ts +340 -0
  458. package/src/resources/qbd/sales-tax-codes.ts +398 -0
  459. package/src/resources/qbd/sales-tax-items.ts +583 -0
  460. package/src/resources/qbd/service-items.ts +1105 -0
  461. package/src/resources/qbd/standard-terms.ts +295 -0
  462. package/src/resources/qbd/subtotal-items.ts +430 -0
  463. package/src/resources/qbd/transfers.ts +359 -0
  464. package/src/resources/qbd/vendor-credits.ts +2742 -0
  465. package/src/resources/qbd/vendors.ts +2017 -0
  466. package/src/shims/node.ts +50 -0
  467. package/src/shims/web.ts +50 -0
  468. package/src/tsconfig.json +11 -0
  469. package/src/uploads.ts +255 -0
  470. package/src/version.ts +1 -0
  471. package/uploads.d.ts +75 -0
  472. package/uploads.d.ts.map +1 -0
  473. package/uploads.js +171 -0
  474. package/uploads.js.map +1 -0
  475. package/uploads.mjs +158 -0
  476. package/uploads.mjs.map +1 -0
  477. package/version.d.ts +2 -0
  478. package/version.d.ts.map +1 -0
  479. package/version.js +5 -0
  480. package/version.js.map +1 -0
  481. package/version.mjs +2 -0
  482. package/version.mjs.map +1 -0
  483. package/dist/package.json +0 -48
  484. package/dist/src/Client.d.ts +0 -21
  485. package/dist/src/Client.js +0 -54
  486. package/dist/src/index.d.ts +0 -11
  487. package/dist/src/index.js +0 -59
  488. package/dist/src/integrations/BaseIntegration.d.ts +0 -9
  489. package/dist/src/integrations/BaseIntegration.js +0 -14
  490. package/dist/src/integrations/qbd/QbdIntegration.d.ts +0 -3120
  491. package/dist/src/integrations/qbd/QbdIntegration.js +0 -3147
  492. package/dist/src/integrations/qbd/qbdTypes.d.ts +0 -14076
  493. package/dist/src/integrations/qbd/qbdTypes.js +0 -2
  494. package/dist/src/interceptors/errorHandling.d.ts +0 -2
  495. package/dist/src/interceptors/errorHandling.js +0 -53
  496. package/dist/src/interceptors/logging.d.ts +0 -18
  497. package/dist/src/interceptors/logging.js +0 -70
  498. package/dist/src/resources/AuthSessionsResource.d.ts +0 -77
  499. package/dist/src/resources/AuthSessionsResource.js +0 -26
  500. package/dist/src/resources/BaseResource.d.ts +0 -6
  501. package/dist/src/resources/BaseResource.js +0 -9
  502. package/dist/src/resources/EndUsersResource.d.ts +0 -84
  503. package/dist/src/resources/EndUsersResource.js +0 -57
  504. package/dist/src/resources/types.d.ts +0 -40
  505. package/dist/src/utils/checkForUpdates.d.ts +0 -2
  506. package/dist/src/utils/checkForUpdates.js +0 -65
  507. package/dist/src/utils/env.d.ts +0 -1
  508. package/dist/src/utils/env.js +0 -15
  509. package/dist/src/utils/error.d.ts +0 -184
  510. package/dist/src/utils/error.js +0 -254
@@ -0,0 +1,2975 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../resource';
4
+ import * as Core from '../../core';
5
+ import { CursorPage, type CursorPageParams } from '../../pagination';
6
+
7
+ export class Estimates extends APIResource {
8
+ /**
9
+ * Creates a new estimate.
10
+ */
11
+ create(params: EstimateCreateParams, options?: Core.RequestOptions): Core.APIPromise<Estimate> {
12
+ const { conductorEndUserId, ...body } = params;
13
+ return this._client.post('/quickbooks-desktop/estimates', {
14
+ body,
15
+ ...options,
16
+ headers: { 'Conductor-End-User-Id': conductorEndUserId, ...options?.headers },
17
+ });
18
+ }
19
+
20
+ /**
21
+ * Retrieves an estimate by ID.
22
+ */
23
+ retrieve(
24
+ id: string,
25
+ params: EstimateRetrieveParams,
26
+ options?: Core.RequestOptions,
27
+ ): Core.APIPromise<Estimate> {
28
+ const { conductorEndUserId } = params;
29
+ return this._client.get(`/quickbooks-desktop/estimates/${id}`, {
30
+ ...options,
31
+ headers: { 'Conductor-End-User-Id': conductorEndUserId, ...options?.headers },
32
+ });
33
+ }
34
+
35
+ /**
36
+ * Updates an existing estimate.
37
+ */
38
+ update(id: string, params: EstimateUpdateParams, options?: Core.RequestOptions): Core.APIPromise<Estimate> {
39
+ const { conductorEndUserId, ...body } = params;
40
+ return this._client.post(`/quickbooks-desktop/estimates/${id}`, {
41
+ body,
42
+ ...options,
43
+ headers: { 'Conductor-End-User-Id': conductorEndUserId, ...options?.headers },
44
+ });
45
+ }
46
+
47
+ /**
48
+ * Returns a list of estimates. Use the `cursor` parameter to paginate through the
49
+ * results.
50
+ */
51
+ list(
52
+ params: EstimateListParams,
53
+ options?: Core.RequestOptions,
54
+ ): Core.PagePromise<EstimatesCursorPage, Estimate> {
55
+ const { conductorEndUserId, ...query } = params;
56
+ return this._client.getAPIList('/quickbooks-desktop/estimates', EstimatesCursorPage, {
57
+ query,
58
+ ...options,
59
+ headers: { 'Conductor-End-User-Id': conductorEndUserId, ...options?.headers },
60
+ });
61
+ }
62
+
63
+ /**
64
+ * Permanently deletes a an estimate. The deletion will fail if the estimate is
65
+ * currently in use or has any linked transactions that are in use.
66
+ */
67
+ delete(
68
+ id: string,
69
+ params: EstimateDeleteParams,
70
+ options?: Core.RequestOptions,
71
+ ): Core.APIPromise<EstimateDeleteResponse> {
72
+ const { conductorEndUserId } = params;
73
+ return this._client.delete(`/quickbooks-desktop/estimates/${id}`, {
74
+ ...options,
75
+ headers: { 'Conductor-End-User-Id': conductorEndUserId, ...options?.headers },
76
+ });
77
+ }
78
+ }
79
+
80
+ export class EstimatesCursorPage extends CursorPage<Estimate> {}
81
+
82
+ export interface Estimate {
83
+ /**
84
+ * The unique identifier assigned by QuickBooks to this estimate. This ID is unique
85
+ * across all transaction types.
86
+ */
87
+ id: string;
88
+
89
+ /**
90
+ * The estimate's billing address.
91
+ */
92
+ billingAddress: Estimate.BillingAddress | null;
93
+
94
+ /**
95
+ * The estimate's class. Classes can be used to categorize objects into meaningful
96
+ * segments, such as department, location, or type of work. In QuickBooks, class
97
+ * tracking is off by default. A class defined here is automatically used in this
98
+ * estimate's line items unless overridden at the line item level.
99
+ */
100
+ class: Estimate.Class | null;
101
+
102
+ /**
103
+ * The date and time when this estimate was created, in ISO 8601 format
104
+ * (YYYY-MM-DDThh:mm:ss±hh:mm). The time zone is the same as the user's time zone
105
+ * in QuickBooks.
106
+ */
107
+ createdAt: string;
108
+
109
+ /**
110
+ * The estimate's currency. For built-in currencies, the name and code are standard
111
+ * international values. For user-defined currencies, all values are editable.
112
+ */
113
+ currency: Estimate.Currency | null;
114
+
115
+ /**
116
+ * The customer or customer-job associated with this estimate.
117
+ */
118
+ customer: Estimate.Customer;
119
+
120
+ /**
121
+ * The message to display to the customer on the estimate.
122
+ */
123
+ customerMessage: Estimate.CustomerMessage | null;
124
+
125
+ /**
126
+ * The custom fields for the estimate object, added as user-defined data
127
+ * extensions, not included in the standard QuickBooks object.
128
+ */
129
+ customFields: Array<Estimate.CustomField>;
130
+
131
+ /**
132
+ * The predefined template in QuickBooks that determines the layout and formatting
133
+ * for this estimate when printed or displayed.
134
+ */
135
+ documentTemplate: Estimate.DocumentTemplate | null;
136
+
137
+ /**
138
+ * The date by which this estimate must be paid, in ISO 8601 format (YYYY-MM-DD).
139
+ */
140
+ dueDate: string | null;
141
+
142
+ /**
143
+ * The market exchange rate between this estimate's currency and the home currency
144
+ * in QuickBooks at the time of this transaction. Represented as a decimal value
145
+ * (e.g., 1.2345 for 1 EUR = 1.2345 USD if USD is the home currency).
146
+ */
147
+ exchangeRate: number | null;
148
+
149
+ /**
150
+ * A globally unique identifier (GUID) you, the developer, can provide for tracking
151
+ * this object in your external system. This field is immutable and can only be set
152
+ * during object creation.
153
+ */
154
+ externalId: string | null;
155
+
156
+ /**
157
+ * Indicates whether this estimate is active. Inactive objects are typically hidden
158
+ * from views and reports in QuickBooks. Defaults to `true`.
159
+ */
160
+ isActive: boolean;
161
+
162
+ /**
163
+ * Indicates whether this estimate is included in the queue of documents for
164
+ * QuickBooks to email to the customer.
165
+ */
166
+ isQueuedForEmail: boolean | null;
167
+
168
+ /**
169
+ * The estimate's line item groups, each representing a predefined set of related
170
+ * items.
171
+ */
172
+ lineGroups: Array<Estimate.LineGroup>;
173
+
174
+ /**
175
+ * The estimate's line items, each representing a single product or service quoted.
176
+ */
177
+ lines: Array<Estimate.Line>;
178
+
179
+ /**
180
+ * The estimate's linked transactions, such as payments applied, credits used, or
181
+ * associated purchase orders.
182
+ *
183
+ * **IMPORTANT**: You must specify the parameter `includeLinkedTransactions` when
184
+ * fetching a list of estimates to receive this field because it is not returned by
185
+ * default.
186
+ */
187
+ linkedTransactions: Array<Estimate.LinkedTransaction>;
188
+
189
+ /**
190
+ * A memo or note for this estimate that appears in reports, but not on the
191
+ * estimate. Use `customerMessage` to add a note to this estimate.
192
+ */
193
+ memo: string | null;
194
+
195
+ /**
196
+ * The type of object. This value is always `"qbd_estimate"`.
197
+ */
198
+ objectType: 'qbd_estimate';
199
+
200
+ /**
201
+ * A built-in custom field for additional information specific to this estimate.
202
+ * Unlike the user-defined fields in the `customFields` array, this is a standard
203
+ * QuickBooks field that exists for all estimates for convenience. Developers often
204
+ * use this field for tracking information that doesn't fit into other standard
205
+ * QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are
206
+ * line item fields, this exists at the transaction level. Hidden by default in the
207
+ * QuickBooks UI.
208
+ */
209
+ otherCustomField: string | null;
210
+
211
+ /**
212
+ * The customer's Purchase Order (PO) number associated with this estimate. This
213
+ * field is often used to cross-reference the estimate with the customer's
214
+ * purchasing system.
215
+ */
216
+ purchaseOrderNumber: string | null;
217
+
218
+ /**
219
+ * The case-sensitive user-defined reference number for this estimate, which can be
220
+ * used to identify the transaction in QuickBooks. This value is not required to be
221
+ * unique and can be arbitrarily changed by the QuickBooks user.
222
+ */
223
+ refNumber: string | null;
224
+
225
+ /**
226
+ * The current QuickBooks-assigned revision number of this estimate object, which
227
+ * changes each time the object is modified. When updating this object, you must
228
+ * provide the most recent `revisionNumber` to ensure you're working with the
229
+ * latest data; otherwise, the update will return an error.
230
+ */
231
+ revisionNumber: string;
232
+
233
+ /**
234
+ * The estimate's sales representative. Sales representatives can be employees,
235
+ * vendors, or other names in QuickBooks.
236
+ */
237
+ salesRepresentative: Estimate.SalesRepresentative | null;
238
+
239
+ /**
240
+ * The sales-tax code for this estimate, determining whether it is taxable or
241
+ * non-taxable. This can be overridden at the transaction-line level.
242
+ *
243
+ * Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes
244
+ * can also be created in QuickBooks. If QuickBooks is not set up to charge sales
245
+ * tax (via the "Do You Charge Sales Tax?" preference), it will assign the default
246
+ * non-taxable code to all sales.
247
+ */
248
+ salesTaxCode: Estimate.SalesTaxCode | null;
249
+
250
+ /**
251
+ * The sales-tax item used to calculate the actual tax amount for this estimate's
252
+ * transactions by applying a specific tax rate collected for a single tax agency.
253
+ * Unlike `salesTaxCode`, which only indicates general taxability, this field
254
+ * drives the actual tax calculation and reporting.
255
+ */
256
+ salesTaxItem: Estimate.SalesTaxItem | null;
257
+
258
+ /**
259
+ * The sales tax percentage applied to this estimate, represented as a decimal
260
+ * string.
261
+ */
262
+ salesTaxPercentage: string | null;
263
+
264
+ /**
265
+ * The total amount of sales tax charged for this estimate, represented as a
266
+ * decimal string.
267
+ */
268
+ salesTaxTotal: string;
269
+
270
+ /**
271
+ * The origin location from where the product associated with this estimate is
272
+ * shipped. This is the point at which ownership and liability for goods transfer
273
+ * from seller to buyer. Internally, QuickBooks uses the term "FOB" for this field,
274
+ * which stands for "freight on board". This field is informational and has no
275
+ * accounting implications.
276
+ */
277
+ shipmentOrigin: string | null;
278
+
279
+ /**
280
+ * The estimate's shipping address.
281
+ */
282
+ shippingAddress: Estimate.ShippingAddress | null;
283
+
284
+ /**
285
+ * The subtotal of this estimate, which is the sum of all estimate lines before
286
+ * taxes and payments are applied, represented as a decimal string.
287
+ */
288
+ subtotal: string;
289
+
290
+ /**
291
+ * The estimate's payment terms, defining when payment is due and any applicable
292
+ * discounts.
293
+ */
294
+ terms: Estimate.Terms | null;
295
+
296
+ /**
297
+ * The total monetary amount of this estimate, equivalent to the sum of the amounts
298
+ * in `lines` and `lineGroups`, represented as a decimal string.
299
+ */
300
+ totalAmount: string;
301
+
302
+ /**
303
+ * The total monetary amount of this estimate converted to the home currency of the
304
+ * QuickBooks company file. Represented as a decimal string.
305
+ */
306
+ totalAmountInHomeCurrency: string | null;
307
+
308
+ /**
309
+ * The date of this estimate, in ISO 8601 format (YYYY-MM-DD).
310
+ */
311
+ transactionDate: string;
312
+
313
+ /**
314
+ * The date and time when this estimate was last updated, in ISO 8601 format
315
+ * (YYYY-MM-DDThh:mm:ss±hh:mm). The time zone is the same as the user's time zone
316
+ * in QuickBooks.
317
+ */
318
+ updatedAt: string;
319
+ }
320
+
321
+ export namespace Estimate {
322
+ /**
323
+ * The estimate's billing address.
324
+ */
325
+ export interface BillingAddress {
326
+ /**
327
+ * The city, district, suburb, town, or village name of the address.
328
+ */
329
+ city: string | null;
330
+
331
+ /**
332
+ * The country name of the address.
333
+ */
334
+ country: string | null;
335
+
336
+ /**
337
+ * The first line of the address (e.g., street, PO Box, or company name).
338
+ */
339
+ line1: string | null;
340
+
341
+ /**
342
+ * The second line of the address, if needed (e.g., apartment, suite, unit, or
343
+ * building).
344
+ */
345
+ line2: string | null;
346
+
347
+ /**
348
+ * The third line of the address, if needed.
349
+ */
350
+ line3: string | null;
351
+
352
+ /**
353
+ * The fourth line of the address, if needed.
354
+ */
355
+ line4: string | null;
356
+
357
+ /**
358
+ * The fifth line of the address, if needed.
359
+ */
360
+ line5: string | null;
361
+
362
+ /**
363
+ * A note written at the bottom of the address in the form in which it appears,
364
+ * such as the invoice form.
365
+ */
366
+ note: string | null;
367
+
368
+ /**
369
+ * The postal code or ZIP code of the address.
370
+ */
371
+ postalCode: string | null;
372
+
373
+ /**
374
+ * The state, county, province, or region name of the address.
375
+ */
376
+ state: string | null;
377
+ }
378
+
379
+ /**
380
+ * The estimate's class. Classes can be used to categorize objects into meaningful
381
+ * segments, such as department, location, or type of work. In QuickBooks, class
382
+ * tracking is off by default. A class defined here is automatically used in this
383
+ * estimate's line items unless overridden at the line item level.
384
+ */
385
+ export interface Class {
386
+ /**
387
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
388
+ * across all objects of the same type, but not across different QuickBooks object
389
+ * types.
390
+ */
391
+ id: string | null;
392
+
393
+ /**
394
+ * The fully-qualified unique name for this object, formed by combining the names
395
+ * of its parent objects with its own `name`, separated by colons. Not
396
+ * case-sensitive.
397
+ */
398
+ fullName: string | null;
399
+ }
400
+
401
+ /**
402
+ * The estimate's currency. For built-in currencies, the name and code are standard
403
+ * international values. For user-defined currencies, all values are editable.
404
+ */
405
+ export interface Currency {
406
+ /**
407
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
408
+ * across all objects of the same type, but not across different QuickBooks object
409
+ * types.
410
+ */
411
+ id: string | null;
412
+
413
+ /**
414
+ * The fully-qualified unique name for this object, formed by combining the names
415
+ * of its parent objects with its own `name`, separated by colons. Not
416
+ * case-sensitive.
417
+ */
418
+ fullName: string | null;
419
+ }
420
+
421
+ /**
422
+ * The customer or customer-job associated with this estimate.
423
+ */
424
+ export interface Customer {
425
+ /**
426
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
427
+ * across all objects of the same type, but not across different QuickBooks object
428
+ * types.
429
+ */
430
+ id: string | null;
431
+
432
+ /**
433
+ * The fully-qualified unique name for this object, formed by combining the names
434
+ * of its parent objects with its own `name`, separated by colons. Not
435
+ * case-sensitive.
436
+ */
437
+ fullName: string | null;
438
+ }
439
+
440
+ /**
441
+ * The message to display to the customer on the estimate.
442
+ */
443
+ export interface CustomerMessage {
444
+ /**
445
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
446
+ * across all objects of the same type, but not across different QuickBooks object
447
+ * types.
448
+ */
449
+ id: string | null;
450
+
451
+ /**
452
+ * The fully-qualified unique name for this object, formed by combining the names
453
+ * of its parent objects with its own `name`, separated by colons. Not
454
+ * case-sensitive.
455
+ */
456
+ fullName: string | null;
457
+ }
458
+
459
+ export interface CustomField {
460
+ /**
461
+ * The name of the custom field, unique for the specified `ownerId`. For public
462
+ * custom fields, this name is visible as a label in the QuickBooks UI.
463
+ */
464
+ name: string;
465
+
466
+ /**
467
+ * The identifier of the owner of the custom field, which QuickBooks internally
468
+ * calls a "data extension". For public custom fields visible in the UI, such as
469
+ * those added by the QuickBooks user, this is always "0". For private custom
470
+ * fields that are only visible to the application that created them, this is a
471
+ * valid GUID identifying the owning application. Internally, Conductor always
472
+ * fetches all public custom fields (those with an `ownerId` of "0") for all
473
+ * objects.
474
+ */
475
+ ownerId: string;
476
+
477
+ /**
478
+ * The data type of this custom field.
479
+ */
480
+ type:
481
+ | 'amount_type'
482
+ | 'date_time_type'
483
+ | 'integer_type'
484
+ | 'percent_type'
485
+ | 'price_type'
486
+ | 'quantity_type'
487
+ | 'string_1024_type'
488
+ | 'string_255_type';
489
+
490
+ /**
491
+ * The value of this custom field. The maximum length depends on the field's data
492
+ * type.
493
+ */
494
+ value: string;
495
+ }
496
+
497
+ /**
498
+ * The predefined template in QuickBooks that determines the layout and formatting
499
+ * for this estimate when printed or displayed.
500
+ */
501
+ export interface DocumentTemplate {
502
+ /**
503
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
504
+ * across all objects of the same type, but not across different QuickBooks object
505
+ * types.
506
+ */
507
+ id: string | null;
508
+
509
+ /**
510
+ * The fully-qualified unique name for this object, formed by combining the names
511
+ * of its parent objects with its own `name`, separated by colons. Not
512
+ * case-sensitive.
513
+ */
514
+ fullName: string | null;
515
+ }
516
+
517
+ export interface LineGroup {
518
+ /**
519
+ * The unique identifier assigned by QuickBooks to this estimate line group. This
520
+ * ID is unique across all transaction line types.
521
+ */
522
+ id: string;
523
+
524
+ /**
525
+ * The custom fields for the estimate line group object, added as user-defined data
526
+ * extensions, not included in the standard QuickBooks object.
527
+ */
528
+ customFields: Array<LineGroup.CustomField>;
529
+
530
+ /**
531
+ * A description of this estimate line group.
532
+ */
533
+ description: string | null;
534
+
535
+ /**
536
+ * The estimate line group's item group, representing a predefined set of items
537
+ * bundled because they are commonly purchased together or grouped for faster
538
+ * entry.
539
+ */
540
+ itemGroup: LineGroup.ItemGroup;
541
+
542
+ /**
543
+ * The estimate line group's line items, each representing a single product or
544
+ * service quoted.
545
+ */
546
+ lines: Array<LineGroup.Line>;
547
+
548
+ /**
549
+ * The type of object. This value is always `"qbd_estimate_line_group"`.
550
+ */
551
+ objectType: 'qbd_estimate_line_group';
552
+
553
+ /**
554
+ * Specifies an alternative unit-of-measure set when updating this estimate line
555
+ * group's `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to
556
+ * select units from a different set than the item's default unit-of-measure set,
557
+ * which remains unchanged on the item itself. The override applies only to this
558
+ * specific line. For example, you can sell an item typically measured in volume
559
+ * units using weight units in a specific transaction by specifying a different
560
+ * unit-of-measure set with this field.
561
+ */
562
+ overrideUnitOfMeasureSet: LineGroup.OverrideUnitOfMeasureSet | null;
563
+
564
+ /**
565
+ * The quantity of the item group associated with this estimate line group. This
566
+ * field cannot be cleared.
567
+ *
568
+ * **NOTE**: Do not use this field if the associated item group is a discount item
569
+ * group.
570
+ */
571
+ quantity: number | null;
572
+
573
+ /**
574
+ * Indicates whether the individual items in this estimate line group and their
575
+ * separate amounts appear on printed forms.
576
+ */
577
+ shouldPrintItemsInGroup: boolean;
578
+
579
+ /**
580
+ * The total monetary amount of this estimate line group, equivalent to the sum of
581
+ * the amounts in `lines`, represented as a decimal string.
582
+ */
583
+ totalAmount: string;
584
+
585
+ /**
586
+ * The unit-of-measure used for the `quantity` in this estimate line group. Must be
587
+ * a valid unit within the item's available units of measure.
588
+ */
589
+ unitOfMeasure: string | null;
590
+ }
591
+
592
+ export namespace LineGroup {
593
+ export interface CustomField {
594
+ /**
595
+ * The name of the custom field, unique for the specified `ownerId`. For public
596
+ * custom fields, this name is visible as a label in the QuickBooks UI.
597
+ */
598
+ name: string;
599
+
600
+ /**
601
+ * The identifier of the owner of the custom field, which QuickBooks internally
602
+ * calls a "data extension". For public custom fields visible in the UI, such as
603
+ * those added by the QuickBooks user, this is always "0". For private custom
604
+ * fields that are only visible to the application that created them, this is a
605
+ * valid GUID identifying the owning application. Internally, Conductor always
606
+ * fetches all public custom fields (those with an `ownerId` of "0") for all
607
+ * objects.
608
+ */
609
+ ownerId: string;
610
+
611
+ /**
612
+ * The data type of this custom field.
613
+ */
614
+ type:
615
+ | 'amount_type'
616
+ | 'date_time_type'
617
+ | 'integer_type'
618
+ | 'percent_type'
619
+ | 'price_type'
620
+ | 'quantity_type'
621
+ | 'string_1024_type'
622
+ | 'string_255_type';
623
+
624
+ /**
625
+ * The value of this custom field. The maximum length depends on the field's data
626
+ * type.
627
+ */
628
+ value: string;
629
+ }
630
+
631
+ /**
632
+ * The estimate line group's item group, representing a predefined set of items
633
+ * bundled because they are commonly purchased together or grouped for faster
634
+ * entry.
635
+ */
636
+ export interface ItemGroup {
637
+ /**
638
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
639
+ * across all objects of the same type, but not across different QuickBooks object
640
+ * types.
641
+ */
642
+ id: string | null;
643
+
644
+ /**
645
+ * The fully-qualified unique name for this object, formed by combining the names
646
+ * of its parent objects with its own `name`, separated by colons. Not
647
+ * case-sensitive.
648
+ */
649
+ fullName: string | null;
650
+ }
651
+
652
+ export interface Line {
653
+ /**
654
+ * The unique identifier assigned by QuickBooks to this estimate line. This ID is
655
+ * unique across all transaction line types.
656
+ */
657
+ id: string;
658
+
659
+ /**
660
+ * The monetary amount of this estimate line, represented as a decimal string. If
661
+ * both `quantity` and `rate` are specified but not `amount`, QuickBooks will use
662
+ * them to calculate `amount`. If `amount`, `rate`, and `quantity` are all
663
+ * unspecified, then QuickBooks will calculate `amount` based on a `quantity` of
664
+ * `1` and the suggested `rate`. This field cannot be cleared.
665
+ */
666
+ amount: string | null;
667
+
668
+ /**
669
+ * The estimate line's class. Classes can be used to categorize objects into
670
+ * meaningful segments, such as department, location, or type of work. In
671
+ * QuickBooks, class tracking is off by default. If a class is specified for the
672
+ * entire parent transaction, it is automatically applied to all estimate lines
673
+ * unless overridden here, at the transaction line level.
674
+ */
675
+ class: Line.Class | null;
676
+
677
+ /**
678
+ * The custom fields for the estimate line object, added as user-defined data
679
+ * extensions, not included in the standard QuickBooks object.
680
+ */
681
+ customFields: Array<Line.CustomField>;
682
+
683
+ /**
684
+ * A description of this estimate line.
685
+ */
686
+ description: string | null;
687
+
688
+ /**
689
+ * The site location where inventory for the item associated with this estimate
690
+ * line is stored.
691
+ */
692
+ inventorySite: Line.InventorySite | null;
693
+
694
+ /**
695
+ * The specific location (e.g., bin or shelf) within the inventory site where the
696
+ * item associated with this estimate line is stored.
697
+ */
698
+ inventorySiteLocation: Line.InventorySiteLocation | null;
699
+
700
+ /**
701
+ * The item associated with this estimate line. This can refer to any good or
702
+ * service that the business buys or sells, including item types such as a service
703
+ * item, inventory item, or special calculation item like a discount item or
704
+ * sales-tax item.
705
+ */
706
+ item: Line.Item | null;
707
+
708
+ /**
709
+ * The markup that will be passed on to the customer for this item on this estimate
710
+ * line. `amount = (quantity * rate) * (1 + markupRate)`
711
+ */
712
+ markupRate: string | null;
713
+
714
+ /**
715
+ * The markup, expressed as a percentage, that will be passed on to the customer
716
+ * for this item on this estimate line.
717
+ * `amount = (quantity * rate) * (1 + markupRatePercent/100)`
718
+ */
719
+ markupRatePercent: string | null;
720
+
721
+ /**
722
+ * The type of object. This value is always `"qbd_estimate_line"`.
723
+ */
724
+ objectType: 'qbd_estimate_line';
725
+
726
+ /**
727
+ * A built-in custom field for additional information specific to this estimate
728
+ * line. Unlike the user-defined fields in the `customFields` array, this is a
729
+ * standard QuickBooks field that exists for all estimate lines for convenience.
730
+ * Developers often use this field for tracking information that doesn't fit into
731
+ * other standard QuickBooks fields. Hidden by default in the QuickBooks UI.
732
+ */
733
+ otherCustomField1: string | null;
734
+
735
+ /**
736
+ * A second built-in custom field for additional information specific to this
737
+ * estimate line. Unlike the user-defined fields in the `customFields` array, this
738
+ * is a standard QuickBooks field that exists for all estimate lines for
739
+ * convenience. Like `otherCustomField1`, developers often use this field for
740
+ * tracking information that doesn't fit into other standard QuickBooks fields.
741
+ * Hidden by default in the QuickBooks UI.
742
+ */
743
+ otherCustomField2: string | null;
744
+
745
+ /**
746
+ * Specifies an alternative unit-of-measure set when updating this estimate line's
747
+ * `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select
748
+ * units from a different set than the item's default unit-of-measure set, which
749
+ * remains unchanged on the item itself. The override applies only to this specific
750
+ * line. For example, you can sell an item typically measured in volume units using
751
+ * weight units in a specific transaction by specifying a different unit-of-measure
752
+ * set with this field.
753
+ */
754
+ overrideUnitOfMeasureSet: Line.OverrideUnitOfMeasureSet | null;
755
+
756
+ /**
757
+ * The quantity of the item associated with this estimate line. This field cannot
758
+ * be cleared.
759
+ *
760
+ * **NOTE**: Do not use this field if the associated item is a discount item.
761
+ */
762
+ quantity: number | null;
763
+
764
+ /**
765
+ * The price per unit for this estimate line. If both `rate` and `amount` are
766
+ * specified, `rate` will be ignored. If both `quantity` and `amount` are specified
767
+ * but not `rate`, QuickBooks will use them to calculate `rate`. Represented as a
768
+ * decimal string. This field cannot be cleared.
769
+ */
770
+ rate: string | null;
771
+
772
+ /**
773
+ * The price of this estimate line expressed as a percentage. Typically used for
774
+ * discount or markup items.
775
+ */
776
+ ratePercent: string | null;
777
+
778
+ /**
779
+ * The sales-tax code for this estimate line, determining whether it is taxable or
780
+ * non-taxable. If set, this overrides any sales-tax codes defined on the parent
781
+ * transaction or the associated item.
782
+ *
783
+ * Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes
784
+ * can also be created in QuickBooks. If QuickBooks is not set up to charge sales
785
+ * tax (via the "Do You Charge Sales Tax?" preference), it will assign the default
786
+ * non-taxable code to all sales.
787
+ */
788
+ salesTaxCode: Line.SalesTaxCode | null;
789
+
790
+ /**
791
+ * The unit-of-measure used for the `quantity` in this estimate line. Must be a
792
+ * valid unit within the item's available units of measure.
793
+ */
794
+ unitOfMeasure: string | null;
795
+ }
796
+
797
+ export namespace Line {
798
+ /**
799
+ * The estimate line's class. Classes can be used to categorize objects into
800
+ * meaningful segments, such as department, location, or type of work. In
801
+ * QuickBooks, class tracking is off by default. If a class is specified for the
802
+ * entire parent transaction, it is automatically applied to all estimate lines
803
+ * unless overridden here, at the transaction line level.
804
+ */
805
+ export interface Class {
806
+ /**
807
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
808
+ * across all objects of the same type, but not across different QuickBooks object
809
+ * types.
810
+ */
811
+ id: string | null;
812
+
813
+ /**
814
+ * The fully-qualified unique name for this object, formed by combining the names
815
+ * of its parent objects with its own `name`, separated by colons. Not
816
+ * case-sensitive.
817
+ */
818
+ fullName: string | null;
819
+ }
820
+
821
+ export interface CustomField {
822
+ /**
823
+ * The name of the custom field, unique for the specified `ownerId`. For public
824
+ * custom fields, this name is visible as a label in the QuickBooks UI.
825
+ */
826
+ name: string;
827
+
828
+ /**
829
+ * The identifier of the owner of the custom field, which QuickBooks internally
830
+ * calls a "data extension". For public custom fields visible in the UI, such as
831
+ * those added by the QuickBooks user, this is always "0". For private custom
832
+ * fields that are only visible to the application that created them, this is a
833
+ * valid GUID identifying the owning application. Internally, Conductor always
834
+ * fetches all public custom fields (those with an `ownerId` of "0") for all
835
+ * objects.
836
+ */
837
+ ownerId: string;
838
+
839
+ /**
840
+ * The data type of this custom field.
841
+ */
842
+ type:
843
+ | 'amount_type'
844
+ | 'date_time_type'
845
+ | 'integer_type'
846
+ | 'percent_type'
847
+ | 'price_type'
848
+ | 'quantity_type'
849
+ | 'string_1024_type'
850
+ | 'string_255_type';
851
+
852
+ /**
853
+ * The value of this custom field. The maximum length depends on the field's data
854
+ * type.
855
+ */
856
+ value: string;
857
+ }
858
+
859
+ /**
860
+ * The site location where inventory for the item associated with this estimate
861
+ * line is stored.
862
+ */
863
+ export interface InventorySite {
864
+ /**
865
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
866
+ * across all objects of the same type, but not across different QuickBooks object
867
+ * types.
868
+ */
869
+ id: string | null;
870
+
871
+ /**
872
+ * The fully-qualified unique name for this object, formed by combining the names
873
+ * of its parent objects with its own `name`, separated by colons. Not
874
+ * case-sensitive.
875
+ */
876
+ fullName: string | null;
877
+ }
878
+
879
+ /**
880
+ * The specific location (e.g., bin or shelf) within the inventory site where the
881
+ * item associated with this estimate line is stored.
882
+ */
883
+ export interface InventorySiteLocation {
884
+ /**
885
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
886
+ * across all objects of the same type, but not across different QuickBooks object
887
+ * types.
888
+ */
889
+ id: string | null;
890
+
891
+ /**
892
+ * The fully-qualified unique name for this object, formed by combining the names
893
+ * of its parent objects with its own `name`, separated by colons. Not
894
+ * case-sensitive.
895
+ */
896
+ fullName: string | null;
897
+ }
898
+
899
+ /**
900
+ * The item associated with this estimate line. This can refer to any good or
901
+ * service that the business buys or sells, including item types such as a service
902
+ * item, inventory item, or special calculation item like a discount item or
903
+ * sales-tax item.
904
+ */
905
+ export interface Item {
906
+ /**
907
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
908
+ * across all objects of the same type, but not across different QuickBooks object
909
+ * types.
910
+ */
911
+ id: string | null;
912
+
913
+ /**
914
+ * The fully-qualified unique name for this object, formed by combining the names
915
+ * of its parent objects with its own `name`, separated by colons. Not
916
+ * case-sensitive.
917
+ */
918
+ fullName: string | null;
919
+ }
920
+
921
+ /**
922
+ * Specifies an alternative unit-of-measure set when updating this estimate line's
923
+ * `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select
924
+ * units from a different set than the item's default unit-of-measure set, which
925
+ * remains unchanged on the item itself. The override applies only to this specific
926
+ * line. For example, you can sell an item typically measured in volume units using
927
+ * weight units in a specific transaction by specifying a different unit-of-measure
928
+ * set with this field.
929
+ */
930
+ export interface OverrideUnitOfMeasureSet {
931
+ /**
932
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
933
+ * across all objects of the same type, but not across different QuickBooks object
934
+ * types.
935
+ */
936
+ id: string | null;
937
+
938
+ /**
939
+ * The fully-qualified unique name for this object, formed by combining the names
940
+ * of its parent objects with its own `name`, separated by colons. Not
941
+ * case-sensitive.
942
+ */
943
+ fullName: string | null;
944
+ }
945
+
946
+ /**
947
+ * The sales-tax code for this estimate line, determining whether it is taxable or
948
+ * non-taxable. If set, this overrides any sales-tax codes defined on the parent
949
+ * transaction or the associated item.
950
+ *
951
+ * Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes
952
+ * can also be created in QuickBooks. If QuickBooks is not set up to charge sales
953
+ * tax (via the "Do You Charge Sales Tax?" preference), it will assign the default
954
+ * non-taxable code to all sales.
955
+ */
956
+ export interface SalesTaxCode {
957
+ /**
958
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
959
+ * across all objects of the same type, but not across different QuickBooks object
960
+ * types.
961
+ */
962
+ id: string | null;
963
+
964
+ /**
965
+ * The fully-qualified unique name for this object, formed by combining the names
966
+ * of its parent objects with its own `name`, separated by colons. Not
967
+ * case-sensitive.
968
+ */
969
+ fullName: string | null;
970
+ }
971
+ }
972
+
973
+ /**
974
+ * Specifies an alternative unit-of-measure set when updating this estimate line
975
+ * group's `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to
976
+ * select units from a different set than the item's default unit-of-measure set,
977
+ * which remains unchanged on the item itself. The override applies only to this
978
+ * specific line. For example, you can sell an item typically measured in volume
979
+ * units using weight units in a specific transaction by specifying a different
980
+ * unit-of-measure set with this field.
981
+ */
982
+ export interface OverrideUnitOfMeasureSet {
983
+ /**
984
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
985
+ * across all objects of the same type, but not across different QuickBooks object
986
+ * types.
987
+ */
988
+ id: string | null;
989
+
990
+ /**
991
+ * The fully-qualified unique name for this object, formed by combining the names
992
+ * of its parent objects with its own `name`, separated by colons. Not
993
+ * case-sensitive.
994
+ */
995
+ fullName: string | null;
996
+ }
997
+ }
998
+
999
+ export interface Line {
1000
+ /**
1001
+ * The unique identifier assigned by QuickBooks to this estimate line. This ID is
1002
+ * unique across all transaction line types.
1003
+ */
1004
+ id: string;
1005
+
1006
+ /**
1007
+ * The monetary amount of this estimate line, represented as a decimal string. If
1008
+ * both `quantity` and `rate` are specified but not `amount`, QuickBooks will use
1009
+ * them to calculate `amount`. If `amount`, `rate`, and `quantity` are all
1010
+ * unspecified, then QuickBooks will calculate `amount` based on a `quantity` of
1011
+ * `1` and the suggested `rate`. This field cannot be cleared.
1012
+ */
1013
+ amount: string | null;
1014
+
1015
+ /**
1016
+ * The estimate line's class. Classes can be used to categorize objects into
1017
+ * meaningful segments, such as department, location, or type of work. In
1018
+ * QuickBooks, class tracking is off by default. If a class is specified for the
1019
+ * entire parent transaction, it is automatically applied to all estimate lines
1020
+ * unless overridden here, at the transaction line level.
1021
+ */
1022
+ class: Line.Class | null;
1023
+
1024
+ /**
1025
+ * The custom fields for the estimate line object, added as user-defined data
1026
+ * extensions, not included in the standard QuickBooks object.
1027
+ */
1028
+ customFields: Array<Line.CustomField>;
1029
+
1030
+ /**
1031
+ * A description of this estimate line.
1032
+ */
1033
+ description: string | null;
1034
+
1035
+ /**
1036
+ * The site location where inventory for the item associated with this estimate
1037
+ * line is stored.
1038
+ */
1039
+ inventorySite: Line.InventorySite | null;
1040
+
1041
+ /**
1042
+ * The specific location (e.g., bin or shelf) within the inventory site where the
1043
+ * item associated with this estimate line is stored.
1044
+ */
1045
+ inventorySiteLocation: Line.InventorySiteLocation | null;
1046
+
1047
+ /**
1048
+ * The item associated with this estimate line. This can refer to any good or
1049
+ * service that the business buys or sells, including item types such as a service
1050
+ * item, inventory item, or special calculation item like a discount item or
1051
+ * sales-tax item.
1052
+ */
1053
+ item: Line.Item | null;
1054
+
1055
+ /**
1056
+ * The markup that will be passed on to the customer for this item on this estimate
1057
+ * line. `amount = (quantity * rate) * (1 + markupRate)`
1058
+ */
1059
+ markupRate: string | null;
1060
+
1061
+ /**
1062
+ * The markup, expressed as a percentage, that will be passed on to the customer
1063
+ * for this item on this estimate line.
1064
+ * `amount = (quantity * rate) * (1 + markupRatePercent/100)`
1065
+ */
1066
+ markupRatePercent: string | null;
1067
+
1068
+ /**
1069
+ * The type of object. This value is always `"qbd_estimate_line"`.
1070
+ */
1071
+ objectType: 'qbd_estimate_line';
1072
+
1073
+ /**
1074
+ * A built-in custom field for additional information specific to this estimate
1075
+ * line. Unlike the user-defined fields in the `customFields` array, this is a
1076
+ * standard QuickBooks field that exists for all estimate lines for convenience.
1077
+ * Developers often use this field for tracking information that doesn't fit into
1078
+ * other standard QuickBooks fields. Hidden by default in the QuickBooks UI.
1079
+ */
1080
+ otherCustomField1: string | null;
1081
+
1082
+ /**
1083
+ * A second built-in custom field for additional information specific to this
1084
+ * estimate line. Unlike the user-defined fields in the `customFields` array, this
1085
+ * is a standard QuickBooks field that exists for all estimate lines for
1086
+ * convenience. Like `otherCustomField1`, developers often use this field for
1087
+ * tracking information that doesn't fit into other standard QuickBooks fields.
1088
+ * Hidden by default in the QuickBooks UI.
1089
+ */
1090
+ otherCustomField2: string | null;
1091
+
1092
+ /**
1093
+ * Specifies an alternative unit-of-measure set when updating this estimate line's
1094
+ * `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select
1095
+ * units from a different set than the item's default unit-of-measure set, which
1096
+ * remains unchanged on the item itself. The override applies only to this specific
1097
+ * line. For example, you can sell an item typically measured in volume units using
1098
+ * weight units in a specific transaction by specifying a different unit-of-measure
1099
+ * set with this field.
1100
+ */
1101
+ overrideUnitOfMeasureSet: Line.OverrideUnitOfMeasureSet | null;
1102
+
1103
+ /**
1104
+ * The quantity of the item associated with this estimate line. This field cannot
1105
+ * be cleared.
1106
+ *
1107
+ * **NOTE**: Do not use this field if the associated item is a discount item.
1108
+ */
1109
+ quantity: number | null;
1110
+
1111
+ /**
1112
+ * The price per unit for this estimate line. If both `rate` and `amount` are
1113
+ * specified, `rate` will be ignored. If both `quantity` and `amount` are specified
1114
+ * but not `rate`, QuickBooks will use them to calculate `rate`. Represented as a
1115
+ * decimal string. This field cannot be cleared.
1116
+ */
1117
+ rate: string | null;
1118
+
1119
+ /**
1120
+ * The price of this estimate line expressed as a percentage. Typically used for
1121
+ * discount or markup items.
1122
+ */
1123
+ ratePercent: string | null;
1124
+
1125
+ /**
1126
+ * The sales-tax code for this estimate line, determining whether it is taxable or
1127
+ * non-taxable. If set, this overrides any sales-tax codes defined on the parent
1128
+ * transaction or the associated item.
1129
+ *
1130
+ * Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes
1131
+ * can also be created in QuickBooks. If QuickBooks is not set up to charge sales
1132
+ * tax (via the "Do You Charge Sales Tax?" preference), it will assign the default
1133
+ * non-taxable code to all sales.
1134
+ */
1135
+ salesTaxCode: Line.SalesTaxCode | null;
1136
+
1137
+ /**
1138
+ * The unit-of-measure used for the `quantity` in this estimate line. Must be a
1139
+ * valid unit within the item's available units of measure.
1140
+ */
1141
+ unitOfMeasure: string | null;
1142
+ }
1143
+
1144
+ export namespace Line {
1145
+ /**
1146
+ * The estimate line's class. Classes can be used to categorize objects into
1147
+ * meaningful segments, such as department, location, or type of work. In
1148
+ * QuickBooks, class tracking is off by default. If a class is specified for the
1149
+ * entire parent transaction, it is automatically applied to all estimate lines
1150
+ * unless overridden here, at the transaction line level.
1151
+ */
1152
+ export interface Class {
1153
+ /**
1154
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
1155
+ * across all objects of the same type, but not across different QuickBooks object
1156
+ * types.
1157
+ */
1158
+ id: string | null;
1159
+
1160
+ /**
1161
+ * The fully-qualified unique name for this object, formed by combining the names
1162
+ * of its parent objects with its own `name`, separated by colons. Not
1163
+ * case-sensitive.
1164
+ */
1165
+ fullName: string | null;
1166
+ }
1167
+
1168
+ export interface CustomField {
1169
+ /**
1170
+ * The name of the custom field, unique for the specified `ownerId`. For public
1171
+ * custom fields, this name is visible as a label in the QuickBooks UI.
1172
+ */
1173
+ name: string;
1174
+
1175
+ /**
1176
+ * The identifier of the owner of the custom field, which QuickBooks internally
1177
+ * calls a "data extension". For public custom fields visible in the UI, such as
1178
+ * those added by the QuickBooks user, this is always "0". For private custom
1179
+ * fields that are only visible to the application that created them, this is a
1180
+ * valid GUID identifying the owning application. Internally, Conductor always
1181
+ * fetches all public custom fields (those with an `ownerId` of "0") for all
1182
+ * objects.
1183
+ */
1184
+ ownerId: string;
1185
+
1186
+ /**
1187
+ * The data type of this custom field.
1188
+ */
1189
+ type:
1190
+ | 'amount_type'
1191
+ | 'date_time_type'
1192
+ | 'integer_type'
1193
+ | 'percent_type'
1194
+ | 'price_type'
1195
+ | 'quantity_type'
1196
+ | 'string_1024_type'
1197
+ | 'string_255_type';
1198
+
1199
+ /**
1200
+ * The value of this custom field. The maximum length depends on the field's data
1201
+ * type.
1202
+ */
1203
+ value: string;
1204
+ }
1205
+
1206
+ /**
1207
+ * The site location where inventory for the item associated with this estimate
1208
+ * line is stored.
1209
+ */
1210
+ export interface InventorySite {
1211
+ /**
1212
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
1213
+ * across all objects of the same type, but not across different QuickBooks object
1214
+ * types.
1215
+ */
1216
+ id: string | null;
1217
+
1218
+ /**
1219
+ * The fully-qualified unique name for this object, formed by combining the names
1220
+ * of its parent objects with its own `name`, separated by colons. Not
1221
+ * case-sensitive.
1222
+ */
1223
+ fullName: string | null;
1224
+ }
1225
+
1226
+ /**
1227
+ * The specific location (e.g., bin or shelf) within the inventory site where the
1228
+ * item associated with this estimate line is stored.
1229
+ */
1230
+ export interface InventorySiteLocation {
1231
+ /**
1232
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
1233
+ * across all objects of the same type, but not across different QuickBooks object
1234
+ * types.
1235
+ */
1236
+ id: string | null;
1237
+
1238
+ /**
1239
+ * The fully-qualified unique name for this object, formed by combining the names
1240
+ * of its parent objects with its own `name`, separated by colons. Not
1241
+ * case-sensitive.
1242
+ */
1243
+ fullName: string | null;
1244
+ }
1245
+
1246
+ /**
1247
+ * The item associated with this estimate line. This can refer to any good or
1248
+ * service that the business buys or sells, including item types such as a service
1249
+ * item, inventory item, or special calculation item like a discount item or
1250
+ * sales-tax item.
1251
+ */
1252
+ export interface Item {
1253
+ /**
1254
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
1255
+ * across all objects of the same type, but not across different QuickBooks object
1256
+ * types.
1257
+ */
1258
+ id: string | null;
1259
+
1260
+ /**
1261
+ * The fully-qualified unique name for this object, formed by combining the names
1262
+ * of its parent objects with its own `name`, separated by colons. Not
1263
+ * case-sensitive.
1264
+ */
1265
+ fullName: string | null;
1266
+ }
1267
+
1268
+ /**
1269
+ * Specifies an alternative unit-of-measure set when updating this estimate line's
1270
+ * `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select
1271
+ * units from a different set than the item's default unit-of-measure set, which
1272
+ * remains unchanged on the item itself. The override applies only to this specific
1273
+ * line. For example, you can sell an item typically measured in volume units using
1274
+ * weight units in a specific transaction by specifying a different unit-of-measure
1275
+ * set with this field.
1276
+ */
1277
+ export interface OverrideUnitOfMeasureSet {
1278
+ /**
1279
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
1280
+ * across all objects of the same type, but not across different QuickBooks object
1281
+ * types.
1282
+ */
1283
+ id: string | null;
1284
+
1285
+ /**
1286
+ * The fully-qualified unique name for this object, formed by combining the names
1287
+ * of its parent objects with its own `name`, separated by colons. Not
1288
+ * case-sensitive.
1289
+ */
1290
+ fullName: string | null;
1291
+ }
1292
+
1293
+ /**
1294
+ * The sales-tax code for this estimate line, determining whether it is taxable or
1295
+ * non-taxable. If set, this overrides any sales-tax codes defined on the parent
1296
+ * transaction or the associated item.
1297
+ *
1298
+ * Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes
1299
+ * can also be created in QuickBooks. If QuickBooks is not set up to charge sales
1300
+ * tax (via the "Do You Charge Sales Tax?" preference), it will assign the default
1301
+ * non-taxable code to all sales.
1302
+ */
1303
+ export interface SalesTaxCode {
1304
+ /**
1305
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
1306
+ * across all objects of the same type, but not across different QuickBooks object
1307
+ * types.
1308
+ */
1309
+ id: string | null;
1310
+
1311
+ /**
1312
+ * The fully-qualified unique name for this object, formed by combining the names
1313
+ * of its parent objects with its own `name`, separated by colons. Not
1314
+ * case-sensitive.
1315
+ */
1316
+ fullName: string | null;
1317
+ }
1318
+ }
1319
+
1320
+ export interface LinkedTransaction {
1321
+ /**
1322
+ * The unique identifier assigned by QuickBooks to this linked transaction. This ID
1323
+ * is unique across all transaction types.
1324
+ */
1325
+ id: string;
1326
+
1327
+ /**
1328
+ * The monetary amount of this linked transaction, represented as a decimal string.
1329
+ */
1330
+ amount: string | null;
1331
+
1332
+ /**
1333
+ * Indicates the nature of the link between the transactions: `amount` denotes an
1334
+ * amount-based link (e.g., an invoice linked to a payment), and `quantity` denotes
1335
+ * a quantity-based link (e.g., an invoice created from a sales order based on the
1336
+ * quantity of items received).
1337
+ */
1338
+ linkType: 'amount' | 'quantity' | null;
1339
+
1340
+ /**
1341
+ * The type of object. This value is always `"qbd_linked_transaction"`.
1342
+ */
1343
+ objectType: 'qbd_linked_transaction';
1344
+
1345
+ /**
1346
+ * The case-sensitive user-defined reference number for this linked transaction,
1347
+ * which can be used to identify the transaction in QuickBooks. This value is not
1348
+ * required to be unique and can be arbitrarily changed by the QuickBooks user.
1349
+ */
1350
+ refNumber: string | null;
1351
+
1352
+ /**
1353
+ * The date of this linked transaction, in ISO 8601 format (YYYY-MM-DD).
1354
+ */
1355
+ transactionDate: string;
1356
+
1357
+ /**
1358
+ * The type of transaction for this linked transaction.
1359
+ */
1360
+ transactionType:
1361
+ | 'ar_refund_credit_card'
1362
+ | 'bill'
1363
+ | 'bill_payment_check'
1364
+ | 'bill_payment_credit_card'
1365
+ | 'build_assembly'
1366
+ | 'charge'
1367
+ | 'check'
1368
+ | 'credit_card_charge'
1369
+ | 'credit_card_credit'
1370
+ | 'credit_memo'
1371
+ | 'deposit'
1372
+ | 'estimate'
1373
+ | 'inventory_adjustment'
1374
+ | 'invoice'
1375
+ | 'item_receipt'
1376
+ | 'journal_entry'
1377
+ | 'liability_adjustment'
1378
+ | 'paycheck'
1379
+ | 'payroll_liability_check'
1380
+ | 'purchase_order'
1381
+ | 'receive_payment'
1382
+ | 'sales_order'
1383
+ | 'sales_receipt'
1384
+ | 'sales_tax_payment_check'
1385
+ | 'transfer'
1386
+ | 'vendor_credit'
1387
+ | 'ytd_adjustment';
1388
+ }
1389
+
1390
+ /**
1391
+ * The estimate's sales representative. Sales representatives can be employees,
1392
+ * vendors, or other names in QuickBooks.
1393
+ */
1394
+ export interface SalesRepresentative {
1395
+ /**
1396
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
1397
+ * across all objects of the same type, but not across different QuickBooks object
1398
+ * types.
1399
+ */
1400
+ id: string | null;
1401
+
1402
+ /**
1403
+ * The fully-qualified unique name for this object, formed by combining the names
1404
+ * of its parent objects with its own `name`, separated by colons. Not
1405
+ * case-sensitive.
1406
+ */
1407
+ fullName: string | null;
1408
+ }
1409
+
1410
+ /**
1411
+ * The sales-tax code for this estimate, determining whether it is taxable or
1412
+ * non-taxable. This can be overridden at the transaction-line level.
1413
+ *
1414
+ * Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes
1415
+ * can also be created in QuickBooks. If QuickBooks is not set up to charge sales
1416
+ * tax (via the "Do You Charge Sales Tax?" preference), it will assign the default
1417
+ * non-taxable code to all sales.
1418
+ */
1419
+ export interface SalesTaxCode {
1420
+ /**
1421
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
1422
+ * across all objects of the same type, but not across different QuickBooks object
1423
+ * types.
1424
+ */
1425
+ id: string | null;
1426
+
1427
+ /**
1428
+ * The fully-qualified unique name for this object, formed by combining the names
1429
+ * of its parent objects with its own `name`, separated by colons. Not
1430
+ * case-sensitive.
1431
+ */
1432
+ fullName: string | null;
1433
+ }
1434
+
1435
+ /**
1436
+ * The sales-tax item used to calculate the actual tax amount for this estimate's
1437
+ * transactions by applying a specific tax rate collected for a single tax agency.
1438
+ * Unlike `salesTaxCode`, which only indicates general taxability, this field
1439
+ * drives the actual tax calculation and reporting.
1440
+ */
1441
+ export interface SalesTaxItem {
1442
+ /**
1443
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
1444
+ * across all objects of the same type, but not across different QuickBooks object
1445
+ * types.
1446
+ */
1447
+ id: string | null;
1448
+
1449
+ /**
1450
+ * The fully-qualified unique name for this object, formed by combining the names
1451
+ * of its parent objects with its own `name`, separated by colons. Not
1452
+ * case-sensitive.
1453
+ */
1454
+ fullName: string | null;
1455
+ }
1456
+
1457
+ /**
1458
+ * The estimate's shipping address.
1459
+ */
1460
+ export interface ShippingAddress {
1461
+ /**
1462
+ * The city, district, suburb, town, or village name of the address.
1463
+ */
1464
+ city: string | null;
1465
+
1466
+ /**
1467
+ * The country name of the address.
1468
+ */
1469
+ country: string | null;
1470
+
1471
+ /**
1472
+ * The first line of the address (e.g., street, PO Box, or company name).
1473
+ */
1474
+ line1: string | null;
1475
+
1476
+ /**
1477
+ * The second line of the address, if needed (e.g., apartment, suite, unit, or
1478
+ * building).
1479
+ */
1480
+ line2: string | null;
1481
+
1482
+ /**
1483
+ * The third line of the address, if needed.
1484
+ */
1485
+ line3: string | null;
1486
+
1487
+ /**
1488
+ * The fourth line of the address, if needed.
1489
+ */
1490
+ line4: string | null;
1491
+
1492
+ /**
1493
+ * The fifth line of the address, if needed.
1494
+ */
1495
+ line5: string | null;
1496
+
1497
+ /**
1498
+ * A note written at the bottom of the address in the form in which it appears,
1499
+ * such as the invoice form.
1500
+ */
1501
+ note: string | null;
1502
+
1503
+ /**
1504
+ * The postal code or ZIP code of the address.
1505
+ */
1506
+ postalCode: string | null;
1507
+
1508
+ /**
1509
+ * The state, county, province, or region name of the address.
1510
+ */
1511
+ state: string | null;
1512
+ }
1513
+
1514
+ /**
1515
+ * The estimate's payment terms, defining when payment is due and any applicable
1516
+ * discounts.
1517
+ */
1518
+ export interface Terms {
1519
+ /**
1520
+ * The unique identifier assigned by QuickBooks to this object. This ID is unique
1521
+ * across all objects of the same type, but not across different QuickBooks object
1522
+ * types.
1523
+ */
1524
+ id: string | null;
1525
+
1526
+ /**
1527
+ * The fully-qualified unique name for this object, formed by combining the names
1528
+ * of its parent objects with its own `name`, separated by colons. Not
1529
+ * case-sensitive.
1530
+ */
1531
+ fullName: string | null;
1532
+ }
1533
+ }
1534
+
1535
+ export interface EstimateDeleteResponse {
1536
+ /**
1537
+ * The QuickBooks-assigned unique identifier of the deleted estimate.
1538
+ */
1539
+ id: string;
1540
+
1541
+ /**
1542
+ * Indicates whether the estimate was deleted.
1543
+ */
1544
+ deleted: boolean;
1545
+
1546
+ /**
1547
+ * The type of object. This value is always `"qbd_estimate"`.
1548
+ */
1549
+ objectType: 'qbd_estimate';
1550
+
1551
+ /**
1552
+ * The case-sensitive user-defined reference number of the deleted estimate.
1553
+ */
1554
+ refNumber: string | null;
1555
+ }
1556
+
1557
+ export interface EstimateCreateParams {
1558
+ /**
1559
+ * Body param: The customer or customer-job associated with this estimate.
1560
+ */
1561
+ customerId: string;
1562
+
1563
+ /**
1564
+ * Body param: The date of this estimate, in ISO 8601 format (YYYY-MM-DD).
1565
+ */
1566
+ transactionDate: string;
1567
+
1568
+ /**
1569
+ * Header param: The ID of the EndUser to receive this request (e.g.,
1570
+ * `"Conductor-End-User-Id: {{END_USER_ID}}"`).
1571
+ */
1572
+ conductorEndUserId: string;
1573
+
1574
+ /**
1575
+ * Body param: The estimate's billing address.
1576
+ */
1577
+ billingAddress?: EstimateCreateParams.BillingAddress;
1578
+
1579
+ /**
1580
+ * Body param: The estimate's class. Classes can be used to categorize objects into
1581
+ * meaningful segments, such as department, location, or type of work. In
1582
+ * QuickBooks, class tracking is off by default. A class defined here is
1583
+ * automatically used in this estimate's line items unless overridden at the line
1584
+ * item level.
1585
+ */
1586
+ classId?: string;
1587
+
1588
+ /**
1589
+ * Body param: The message to display to the customer on the estimate.
1590
+ */
1591
+ customerMessageId?: string;
1592
+
1593
+ /**
1594
+ * Body param: The predefined template in QuickBooks that determines the layout and
1595
+ * formatting for this estimate when printed or displayed.
1596
+ */
1597
+ documentTemplateId?: string;
1598
+
1599
+ /**
1600
+ * Body param: The date by which this estimate must be paid, in ISO 8601 format
1601
+ * (YYYY-MM-DD).
1602
+ */
1603
+ dueDate?: string;
1604
+
1605
+ /**
1606
+ * Body param: The market exchange rate between this estimate's currency and the
1607
+ * home currency in QuickBooks at the time of this transaction. Represented as a
1608
+ * decimal value (e.g., 1.2345 for 1 EUR = 1.2345 USD if USD is the home currency).
1609
+ */
1610
+ exchangeRate?: number;
1611
+
1612
+ /**
1613
+ * Body param: A globally unique identifier (GUID) you, the developer, can provide
1614
+ * for tracking this object in your external system. This field is immutable and
1615
+ * can only be set during object creation.
1616
+ *
1617
+ * **IMPORTANT**: This field must be formatted as a valid GUID; otherwise,
1618
+ * QuickBooks will return an error.
1619
+ */
1620
+ externalId?: string;
1621
+
1622
+ /**
1623
+ * Body param: Indicates whether this estimate is active. Inactive objects are
1624
+ * typically hidden from views and reports in QuickBooks. Defaults to `true`.
1625
+ */
1626
+ isActive?: boolean;
1627
+
1628
+ /**
1629
+ * Body param: Indicates whether this estimate is included in the queue of
1630
+ * documents for QuickBooks to email to the customer.
1631
+ */
1632
+ isQueuedForEmail?: boolean;
1633
+
1634
+ /**
1635
+ * Body param: The estimate's line item groups, each representing a predefined set
1636
+ * of related items.
1637
+ *
1638
+ * **IMPORTANT**: You must specify `lines`, `lineGroups`, or both when creating an
1639
+ * estimate.
1640
+ */
1641
+ lineGroups?: Array<EstimateCreateParams.LineGroup>;
1642
+
1643
+ /**
1644
+ * Body param: The estimate's line items, each representing a single product or
1645
+ * service quoted.
1646
+ *
1647
+ * **IMPORTANT**: You must specify `lines`, `lineGroups`, or both when creating an
1648
+ * estimate.
1649
+ */
1650
+ lines?: Array<EstimateCreateParams.Line>;
1651
+
1652
+ /**
1653
+ * Body param: A memo or note for this estimate that appears in reports, but not on
1654
+ * the estimate. Use `customerMessage` to add a note to this estimate.
1655
+ */
1656
+ memo?: string;
1657
+
1658
+ /**
1659
+ * Body param: A built-in custom field for additional information specific to this
1660
+ * estimate. Unlike the user-defined fields in the `customFields` array, this is a
1661
+ * standard QuickBooks field that exists for all estimates for convenience.
1662
+ * Developers often use this field for tracking information that doesn't fit into
1663
+ * other standard QuickBooks fields. Unlike `otherCustomField1` and
1664
+ * `otherCustomField2`, which are line item fields, this exists at the transaction
1665
+ * level. Hidden by default in the QuickBooks UI.
1666
+ */
1667
+ otherCustomField?: string;
1668
+
1669
+ /**
1670
+ * Body param: The customer's Purchase Order (PO) number associated with this
1671
+ * estimate. This field is often used to cross-reference the estimate with the
1672
+ * customer's purchasing system.
1673
+ */
1674
+ purchaseOrderNumber?: string;
1675
+
1676
+ /**
1677
+ * Body param: The case-sensitive user-defined reference number for this estimate,
1678
+ * which can be used to identify the transaction in QuickBooks. This value is not
1679
+ * required to be unique and can be arbitrarily changed by the QuickBooks user.
1680
+ * When left blank in this create request, this field will be left blank in
1681
+ * QuickBooks (i.e., it does _not_ auto-increment).
1682
+ */
1683
+ refNumber?: string;
1684
+
1685
+ /**
1686
+ * Body param: The estimate's sales representative. Sales representatives can be
1687
+ * employees, vendors, or other names in QuickBooks.
1688
+ */
1689
+ salesRepresentativeId?: string;
1690
+
1691
+ /**
1692
+ * Body param: The sales-tax code for this estimate, determining whether it is
1693
+ * taxable or non-taxable. This can be overridden at the transaction-line level.
1694
+ *
1695
+ * Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes
1696
+ * can also be created in QuickBooks. If QuickBooks is not set up to charge sales
1697
+ * tax (via the "Do You Charge Sales Tax?" preference), it will assign the default
1698
+ * non-taxable code to all sales.
1699
+ */
1700
+ salesTaxCodeId?: string;
1701
+
1702
+ /**
1703
+ * Body param: The sales-tax item used to calculate the actual tax amount for this
1704
+ * estimate's transactions by applying a specific tax rate collected for a single
1705
+ * tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this
1706
+ * field drives the actual tax calculation and reporting.
1707
+ */
1708
+ salesTaxItemId?: string;
1709
+
1710
+ /**
1711
+ * Body param: The origin location from where the product associated with this
1712
+ * estimate is shipped. This is the point at which ownership and liability for
1713
+ * goods transfer from seller to buyer. Internally, QuickBooks uses the term "FOB"
1714
+ * for this field, which stands for "freight on board". This field is informational
1715
+ * and has no accounting implications.
1716
+ */
1717
+ shipmentOrigin?: string;
1718
+
1719
+ /**
1720
+ * Body param: The estimate's shipping address.
1721
+ */
1722
+ shippingAddress?: EstimateCreateParams.ShippingAddress;
1723
+
1724
+ /**
1725
+ * Body param: The estimate's payment terms, defining when payment is due and any
1726
+ * applicable discounts.
1727
+ */
1728
+ termsId?: string;
1729
+ }
1730
+
1731
+ export namespace EstimateCreateParams {
1732
+ /**
1733
+ * The estimate's billing address.
1734
+ */
1735
+ export interface BillingAddress {
1736
+ /**
1737
+ * The city, district, suburb, town, or village name of the address.
1738
+ *
1739
+ * Maximum length: 31 characters.
1740
+ */
1741
+ city?: string;
1742
+
1743
+ /**
1744
+ * The country name of the address.
1745
+ */
1746
+ country?: string;
1747
+
1748
+ /**
1749
+ * The first line of the address (e.g., street, PO Box, or company name).
1750
+ *
1751
+ * Maximum length: 41 characters.
1752
+ */
1753
+ line1?: string;
1754
+
1755
+ /**
1756
+ * The second line of the address, if needed (e.g., apartment, suite, unit, or
1757
+ * building).
1758
+ *
1759
+ * Maximum length: 41 characters.
1760
+ */
1761
+ line2?: string;
1762
+
1763
+ /**
1764
+ * The third line of the address, if needed.
1765
+ *
1766
+ * Maximum length: 41 characters.
1767
+ */
1768
+ line3?: string;
1769
+
1770
+ /**
1771
+ * The fourth line of the address, if needed.
1772
+ *
1773
+ * Maximum length: 41 characters.
1774
+ */
1775
+ line4?: string;
1776
+
1777
+ /**
1778
+ * The fifth line of the address, if needed.
1779
+ *
1780
+ * Maximum length: 41 characters.
1781
+ */
1782
+ line5?: string;
1783
+
1784
+ /**
1785
+ * A note written at the bottom of the address in the form in which it appears,
1786
+ * such as the invoice form.
1787
+ */
1788
+ note?: string;
1789
+
1790
+ /**
1791
+ * The postal code or ZIP code of the address.
1792
+ *
1793
+ * Maximum length: 13 characters.
1794
+ */
1795
+ postalCode?: string;
1796
+
1797
+ /**
1798
+ * The state, county, province, or region name of the address.
1799
+ *
1800
+ * Maximum length: 21 characters.
1801
+ */
1802
+ state?: string;
1803
+ }
1804
+
1805
+ export interface LineGroup {
1806
+ /**
1807
+ * The estimate line group's item group, representing a predefined set of items
1808
+ * bundled because they are commonly purchased together or grouped for faster
1809
+ * entry.
1810
+ */
1811
+ itemGroupId: string;
1812
+
1813
+ /**
1814
+ * The custom fields for the estimate line group object, added as user-defined data
1815
+ * extensions, not included in the standard QuickBooks object.
1816
+ */
1817
+ customFields?: Array<LineGroup.CustomField>;
1818
+
1819
+ /**
1820
+ * The site location where inventory for the item group associated with this
1821
+ * estimate line group is stored.
1822
+ */
1823
+ inventorySiteId?: string;
1824
+
1825
+ /**
1826
+ * The specific location (e.g., bin or shelf) within the inventory site where the
1827
+ * item group associated with this estimate line group is stored.
1828
+ */
1829
+ inventorySiteLocationId?: string;
1830
+
1831
+ /**
1832
+ * The quantity of the item group associated with this estimate line group. This
1833
+ * field cannot be cleared.
1834
+ *
1835
+ * **NOTE**: Do not use this field if the associated item group is a discount item
1836
+ * group.
1837
+ */
1838
+ quantity?: number;
1839
+
1840
+ /**
1841
+ * The unit-of-measure used for the `quantity` in this estimate line group. Must be
1842
+ * a valid unit within the item's available units of measure.
1843
+ */
1844
+ unitOfMeasure?: string;
1845
+ }
1846
+
1847
+ export namespace LineGroup {
1848
+ export interface CustomField {
1849
+ /**
1850
+ * The name of the custom field, unique for the specified `ownerId`. For public
1851
+ * custom fields, this name is visible as a label in the QuickBooks UI.
1852
+ */
1853
+ name: string;
1854
+
1855
+ /**
1856
+ * The identifier of the owner of the custom field, which QuickBooks internally
1857
+ * calls a "data extension". For public custom fields visible in the UI, such as
1858
+ * those added by the QuickBooks user, this is always "0". For private custom
1859
+ * fields that are only visible to the application that created them, this is a
1860
+ * valid GUID identifying the owning application. Internally, Conductor always
1861
+ * fetches all public custom fields (those with an `ownerId` of "0") for all
1862
+ * objects.
1863
+ */
1864
+ ownerId: string;
1865
+
1866
+ /**
1867
+ * The value of this custom field. The maximum length depends on the field's data
1868
+ * type.
1869
+ */
1870
+ value: string;
1871
+ }
1872
+ }
1873
+
1874
+ export interface Line {
1875
+ /**
1876
+ * The monetary amount of this estimate line, represented as a decimal string. If
1877
+ * both `quantity` and `rate` are specified but not `amount`, QuickBooks will use
1878
+ * them to calculate `amount`. If `amount`, `rate`, and `quantity` are all
1879
+ * unspecified, then QuickBooks will calculate `amount` based on a `quantity` of
1880
+ * `1` and the suggested `rate`. This field cannot be cleared.
1881
+ */
1882
+ amount?: string;
1883
+
1884
+ /**
1885
+ * The estimate line's class. Classes can be used to categorize objects into
1886
+ * meaningful segments, such as department, location, or type of work. In
1887
+ * QuickBooks, class tracking is off by default. If a class is specified for the
1888
+ * entire parent transaction, it is automatically applied to all estimate lines
1889
+ * unless overridden here, at the transaction line level.
1890
+ */
1891
+ classId?: string;
1892
+
1893
+ /**
1894
+ * The custom fields for the estimate line object, added as user-defined data
1895
+ * extensions, not included in the standard QuickBooks object.
1896
+ */
1897
+ customFields?: Array<Line.CustomField>;
1898
+
1899
+ /**
1900
+ * A description of this estimate line.
1901
+ */
1902
+ description?: string;
1903
+
1904
+ /**
1905
+ * The site location where inventory for the item associated with this estimate
1906
+ * line is stored.
1907
+ */
1908
+ inventorySiteId?: string;
1909
+
1910
+ /**
1911
+ * The specific location (e.g., bin or shelf) within the inventory site where the
1912
+ * item associated with this estimate line is stored.
1913
+ */
1914
+ inventorySiteLocationId?: string;
1915
+
1916
+ /**
1917
+ * The item associated with this estimate line. This can refer to any good or
1918
+ * service that the business buys or sells, including item types such as a service
1919
+ * item, inventory item, or special calculation item like a discount item or
1920
+ * sales-tax item.
1921
+ */
1922
+ itemId?: string;
1923
+
1924
+ /**
1925
+ * The markup that will be passed on to the customer for this item on this estimate
1926
+ * line. `amount = (quantity * rate) * (1 + markupRate)`
1927
+ */
1928
+ markupRate?: string;
1929
+
1930
+ /**
1931
+ * The markup, expressed as a percentage, that will be passed on to the customer
1932
+ * for this item on this estimate line.
1933
+ * `amount = (quantity * rate) * (1 + markupRatePercent/100)`
1934
+ */
1935
+ markupRatePercent?: string;
1936
+
1937
+ /**
1938
+ * A built-in custom field for additional information specific to this estimate
1939
+ * line. Unlike the user-defined fields in the `customFields` array, this is a
1940
+ * standard QuickBooks field that exists for all estimate lines for convenience.
1941
+ * Developers often use this field for tracking information that doesn't fit into
1942
+ * other standard QuickBooks fields. Hidden by default in the QuickBooks UI.
1943
+ */
1944
+ otherCustomField1?: string;
1945
+
1946
+ /**
1947
+ * A second built-in custom field for additional information specific to this
1948
+ * estimate line. Unlike the user-defined fields in the `customFields` array, this
1949
+ * is a standard QuickBooks field that exists for all estimate lines for
1950
+ * convenience. Like `otherCustomField1`, developers often use this field for
1951
+ * tracking information that doesn't fit into other standard QuickBooks fields.
1952
+ * Hidden by default in the QuickBooks UI.
1953
+ */
1954
+ otherCustomField2?: string;
1955
+
1956
+ /**
1957
+ * The account to use for this estimate line, overriding the default account
1958
+ * associated with the item.
1959
+ */
1960
+ overrideItemAccountId?: string;
1961
+
1962
+ /**
1963
+ * The price level applied to this estimate line. This overrides any price level
1964
+ * set on the corresponding customer. The resulting estimate line will not show
1965
+ * this price level, only the final `rate` calculated from it.
1966
+ */
1967
+ priceLevelId?: string;
1968
+
1969
+ /**
1970
+ * Specifies how to resolve price rule conflicts when adding or modifying this
1971
+ * estimate line.
1972
+ */
1973
+ priceRuleConflictStrategy?: 'base_price' | 'zero';
1974
+
1975
+ /**
1976
+ * The quantity of the item associated with this estimate line. This field cannot
1977
+ * be cleared.
1978
+ *
1979
+ * **NOTE**: Do not use this field if the associated item is a discount item.
1980
+ */
1981
+ quantity?: number;
1982
+
1983
+ /**
1984
+ * The price per unit for this estimate line. If both `rate` and `amount` are
1985
+ * specified, `rate` will be ignored. If both `quantity` and `amount` are specified
1986
+ * but not `rate`, QuickBooks will use them to calculate `rate`. Represented as a
1987
+ * decimal string. This field cannot be cleared.
1988
+ */
1989
+ rate?: string;
1990
+
1991
+ /**
1992
+ * The price of this estimate line expressed as a percentage. Typically used for
1993
+ * discount or markup items.
1994
+ */
1995
+ ratePercent?: string;
1996
+
1997
+ /**
1998
+ * The sales-tax code for this estimate line, determining whether it is taxable or
1999
+ * non-taxable. If set, this overrides any sales-tax codes defined on the parent
2000
+ * transaction or the associated item.
2001
+ *
2002
+ * Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes
2003
+ * can also be created in QuickBooks. If QuickBooks is not set up to charge sales
2004
+ * tax (via the "Do You Charge Sales Tax?" preference), it will assign the default
2005
+ * non-taxable code to all sales.
2006
+ */
2007
+ salesTaxCodeId?: string;
2008
+
2009
+ /**
2010
+ * The unit-of-measure used for the `quantity` in this estimate line. Must be a
2011
+ * valid unit within the item's available units of measure.
2012
+ */
2013
+ unitOfMeasure?: string;
2014
+ }
2015
+
2016
+ export namespace Line {
2017
+ export interface CustomField {
2018
+ /**
2019
+ * The name of the custom field, unique for the specified `ownerId`. For public
2020
+ * custom fields, this name is visible as a label in the QuickBooks UI.
2021
+ */
2022
+ name: string;
2023
+
2024
+ /**
2025
+ * The identifier of the owner of the custom field, which QuickBooks internally
2026
+ * calls a "data extension". For public custom fields visible in the UI, such as
2027
+ * those added by the QuickBooks user, this is always "0". For private custom
2028
+ * fields that are only visible to the application that created them, this is a
2029
+ * valid GUID identifying the owning application. Internally, Conductor always
2030
+ * fetches all public custom fields (those with an `ownerId` of "0") for all
2031
+ * objects.
2032
+ */
2033
+ ownerId: string;
2034
+
2035
+ /**
2036
+ * The value of this custom field. The maximum length depends on the field's data
2037
+ * type.
2038
+ */
2039
+ value: string;
2040
+ }
2041
+ }
2042
+
2043
+ /**
2044
+ * The estimate's shipping address.
2045
+ */
2046
+ export interface ShippingAddress {
2047
+ /**
2048
+ * The city, district, suburb, town, or village name of the address.
2049
+ *
2050
+ * Maximum length: 31 characters.
2051
+ */
2052
+ city?: string;
2053
+
2054
+ /**
2055
+ * The country name of the address.
2056
+ */
2057
+ country?: string;
2058
+
2059
+ /**
2060
+ * The first line of the address (e.g., street, PO Box, or company name).
2061
+ *
2062
+ * Maximum length: 41 characters.
2063
+ */
2064
+ line1?: string;
2065
+
2066
+ /**
2067
+ * The second line of the address, if needed (e.g., apartment, suite, unit, or
2068
+ * building).
2069
+ *
2070
+ * Maximum length: 41 characters.
2071
+ */
2072
+ line2?: string;
2073
+
2074
+ /**
2075
+ * The third line of the address, if needed.
2076
+ *
2077
+ * Maximum length: 41 characters.
2078
+ */
2079
+ line3?: string;
2080
+
2081
+ /**
2082
+ * The fourth line of the address, if needed.
2083
+ *
2084
+ * Maximum length: 41 characters.
2085
+ */
2086
+ line4?: string;
2087
+
2088
+ /**
2089
+ * The fifth line of the address, if needed.
2090
+ *
2091
+ * Maximum length: 41 characters.
2092
+ */
2093
+ line5?: string;
2094
+
2095
+ /**
2096
+ * A note written at the bottom of the address in the form in which it appears,
2097
+ * such as the invoice form.
2098
+ */
2099
+ note?: string;
2100
+
2101
+ /**
2102
+ * The postal code or ZIP code of the address.
2103
+ *
2104
+ * Maximum length: 13 characters.
2105
+ */
2106
+ postalCode?: string;
2107
+
2108
+ /**
2109
+ * The state, county, province, or region name of the address.
2110
+ *
2111
+ * Maximum length: 21 characters.
2112
+ */
2113
+ state?: string;
2114
+ }
2115
+ }
2116
+
2117
+ export interface EstimateRetrieveParams {
2118
+ /**
2119
+ * The ID of the EndUser to receive this request (e.g.,
2120
+ * `"Conductor-End-User-Id: {{END_USER_ID}}"`).
2121
+ */
2122
+ conductorEndUserId: string;
2123
+ }
2124
+
2125
+ export interface EstimateUpdateParams {
2126
+ /**
2127
+ * Body param: The current QuickBooks-assigned revision number of the estimate
2128
+ * object you are updating, which you can get by fetching the object first. Provide
2129
+ * the most recent `revisionNumber` to ensure you're working with the latest data;
2130
+ * otherwise, the update will return an error.
2131
+ */
2132
+ revisionNumber: string;
2133
+
2134
+ /**
2135
+ * Header param: The ID of the EndUser to receive this request (e.g.,
2136
+ * `"Conductor-End-User-Id: {{END_USER_ID}}"`).
2137
+ */
2138
+ conductorEndUserId: string;
2139
+
2140
+ /**
2141
+ * Body param: The estimate's billing address.
2142
+ */
2143
+ billingAddress?: EstimateUpdateParams.BillingAddress;
2144
+
2145
+ /**
2146
+ * Body param: The estimate's class. Classes can be used to categorize objects into
2147
+ * meaningful segments, such as department, location, or type of work. In
2148
+ * QuickBooks, class tracking is off by default. A class defined here is
2149
+ * automatically used in this estimate's line items unless overridden at the line
2150
+ * item level.
2151
+ */
2152
+ classId?: string;
2153
+
2154
+ /**
2155
+ * Body param: When `true`, creates a "change order" that appears in this
2156
+ * estimate's description field in QuickBooks's estimate form, specifying exactly
2157
+ * what changed in this update request, the dollar amount of each change, and the
2158
+ * net dollar change to this estimate.
2159
+ */
2160
+ createChangeOrder?: boolean;
2161
+
2162
+ /**
2163
+ * Body param: The customer or customer-job associated with this estimate.
2164
+ */
2165
+ customerId?: string;
2166
+
2167
+ /**
2168
+ * Body param: The message to display to the customer on the estimate.
2169
+ */
2170
+ customerMessageId?: string;
2171
+
2172
+ /**
2173
+ * Body param: The predefined template in QuickBooks that determines the layout and
2174
+ * formatting for this estimate when printed or displayed.
2175
+ */
2176
+ documentTemplateId?: string;
2177
+
2178
+ /**
2179
+ * Body param: The date by which this estimate must be paid, in ISO 8601 format
2180
+ * (YYYY-MM-DD).
2181
+ */
2182
+ dueDate?: string;
2183
+
2184
+ /**
2185
+ * Body param: The market exchange rate between this estimate's currency and the
2186
+ * home currency in QuickBooks at the time of this transaction. Represented as a
2187
+ * decimal value (e.g., 1.2345 for 1 EUR = 1.2345 USD if USD is the home currency).
2188
+ */
2189
+ exchangeRate?: number;
2190
+
2191
+ /**
2192
+ * Body param: Indicates whether this estimate is active. Inactive objects are
2193
+ * typically hidden from views and reports in QuickBooks. Defaults to `true`.
2194
+ */
2195
+ isActive?: boolean;
2196
+
2197
+ /**
2198
+ * Body param: Indicates whether this estimate is included in the queue of
2199
+ * documents for QuickBooks to email to the customer.
2200
+ */
2201
+ isQueuedForEmail?: boolean;
2202
+
2203
+ /**
2204
+ * Body param: The estimate's line item groups, each representing a predefined set
2205
+ * of related items.
2206
+ *
2207
+ * **IMPORTANT**:
2208
+ *
2209
+ * 1. Including this array in your update request will **REPLACE** all existing
2210
+ * line item groups for the estimate with this array. To keep any existing line
2211
+ * item groups, you must include them in this array even if they have not
2212
+ * changed. **Any line item groups not included will be removed.**
2213
+ *
2214
+ * 2. To add a new line item group, include it here with the `id` field set to
2215
+ * `-1`.
2216
+ *
2217
+ * 3. If you do not wish to modify any line item groups, omit this field entirely
2218
+ * to keep them unchanged.
2219
+ */
2220
+ lineGroups?: Array<EstimateUpdateParams.LineGroup>;
2221
+
2222
+ /**
2223
+ * Body param: The estimate's line items, each representing a single product or
2224
+ * service quoted.
2225
+ *
2226
+ * **IMPORTANT**:
2227
+ *
2228
+ * 1. Including this array in your update request will **REPLACE** all existing
2229
+ * line items for the estimate with this array. To keep any existing line items,
2230
+ * you must include them in this array even if they have not changed. **Any line
2231
+ * items not included will be removed.**
2232
+ *
2233
+ * 2. To add a new line item, include it here with the `id` field set to `-1`.
2234
+ *
2235
+ * 3. If you do not wish to modify any line items, omit this field entirely to keep
2236
+ * them unchanged.
2237
+ */
2238
+ lines?: Array<EstimateUpdateParams.Line>;
2239
+
2240
+ /**
2241
+ * Body param: A memo or note for this estimate that appears in reports, but not on
2242
+ * the estimate. Use `customerMessage` to add a note to this estimate.
2243
+ */
2244
+ memo?: string;
2245
+
2246
+ /**
2247
+ * Body param: A built-in custom field for additional information specific to this
2248
+ * estimate. Unlike the user-defined fields in the `customFields` array, this is a
2249
+ * standard QuickBooks field that exists for all estimates for convenience.
2250
+ * Developers often use this field for tracking information that doesn't fit into
2251
+ * other standard QuickBooks fields. Unlike `otherCustomField1` and
2252
+ * `otherCustomField2`, which are line item fields, this exists at the transaction
2253
+ * level. Hidden by default in the QuickBooks UI.
2254
+ */
2255
+ otherCustomField?: string;
2256
+
2257
+ /**
2258
+ * Body param: The customer's Purchase Order (PO) number associated with this
2259
+ * estimate. This field is often used to cross-reference the estimate with the
2260
+ * customer's purchasing system.
2261
+ */
2262
+ purchaseOrderNumber?: string;
2263
+
2264
+ /**
2265
+ * Body param: The case-sensitive user-defined reference number for this estimate,
2266
+ * which can be used to identify the transaction in QuickBooks. This value is not
2267
+ * required to be unique and can be arbitrarily changed by the QuickBooks user.
2268
+ */
2269
+ refNumber?: string;
2270
+
2271
+ /**
2272
+ * Body param: The estimate's sales representative. Sales representatives can be
2273
+ * employees, vendors, or other names in QuickBooks.
2274
+ */
2275
+ salesRepresentativeId?: string;
2276
+
2277
+ /**
2278
+ * Body param: The sales-tax code for this estimate, determining whether it is
2279
+ * taxable or non-taxable. This can be overridden at the transaction-line level.
2280
+ *
2281
+ * Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes
2282
+ * can also be created in QuickBooks. If QuickBooks is not set up to charge sales
2283
+ * tax (via the "Do You Charge Sales Tax?" preference), it will assign the default
2284
+ * non-taxable code to all sales.
2285
+ */
2286
+ salesTaxCodeId?: string;
2287
+
2288
+ /**
2289
+ * Body param: The sales-tax item used to calculate the actual tax amount for this
2290
+ * estimate's transactions by applying a specific tax rate collected for a single
2291
+ * tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this
2292
+ * field drives the actual tax calculation and reporting.
2293
+ */
2294
+ salesTaxItemId?: string;
2295
+
2296
+ /**
2297
+ * Body param: The origin location from where the product associated with this
2298
+ * estimate is shipped. This is the point at which ownership and liability for
2299
+ * goods transfer from seller to buyer. Internally, QuickBooks uses the term "FOB"
2300
+ * for this field, which stands for "freight on board". This field is informational
2301
+ * and has no accounting implications.
2302
+ */
2303
+ shipmentOrigin?: string;
2304
+
2305
+ /**
2306
+ * Body param: The estimate's shipping address.
2307
+ */
2308
+ shippingAddress?: EstimateUpdateParams.ShippingAddress;
2309
+
2310
+ /**
2311
+ * Body param: The estimate's payment terms, defining when payment is due and any
2312
+ * applicable discounts.
2313
+ */
2314
+ termsId?: string;
2315
+
2316
+ /**
2317
+ * Body param: The date of this estimate, in ISO 8601 format (YYYY-MM-DD).
2318
+ */
2319
+ transactionDate?: string;
2320
+ }
2321
+
2322
+ export namespace EstimateUpdateParams {
2323
+ /**
2324
+ * The estimate's billing address.
2325
+ */
2326
+ export interface BillingAddress {
2327
+ /**
2328
+ * The city, district, suburb, town, or village name of the address.
2329
+ *
2330
+ * Maximum length: 31 characters.
2331
+ */
2332
+ city?: string;
2333
+
2334
+ /**
2335
+ * The country name of the address.
2336
+ */
2337
+ country?: string;
2338
+
2339
+ /**
2340
+ * The first line of the address (e.g., street, PO Box, or company name).
2341
+ *
2342
+ * Maximum length: 41 characters.
2343
+ */
2344
+ line1?: string;
2345
+
2346
+ /**
2347
+ * The second line of the address, if needed (e.g., apartment, suite, unit, or
2348
+ * building).
2349
+ *
2350
+ * Maximum length: 41 characters.
2351
+ */
2352
+ line2?: string;
2353
+
2354
+ /**
2355
+ * The third line of the address, if needed.
2356
+ *
2357
+ * Maximum length: 41 characters.
2358
+ */
2359
+ line3?: string;
2360
+
2361
+ /**
2362
+ * The fourth line of the address, if needed.
2363
+ *
2364
+ * Maximum length: 41 characters.
2365
+ */
2366
+ line4?: string;
2367
+
2368
+ /**
2369
+ * The fifth line of the address, if needed.
2370
+ *
2371
+ * Maximum length: 41 characters.
2372
+ */
2373
+ line5?: string;
2374
+
2375
+ /**
2376
+ * A note written at the bottom of the address in the form in which it appears,
2377
+ * such as the invoice form.
2378
+ */
2379
+ note?: string;
2380
+
2381
+ /**
2382
+ * The postal code or ZIP code of the address.
2383
+ *
2384
+ * Maximum length: 13 characters.
2385
+ */
2386
+ postalCode?: string;
2387
+
2388
+ /**
2389
+ * The state, county, province, or region name of the address.
2390
+ *
2391
+ * Maximum length: 21 characters.
2392
+ */
2393
+ state?: string;
2394
+ }
2395
+
2396
+ export interface LineGroup {
2397
+ /**
2398
+ * The QuickBooks-assigned unique identifier of an existing estimate line group you
2399
+ * wish to retain or update.
2400
+ *
2401
+ * **IMPORTANT**: Set this field to `-1` for new estimate line groups you wish to
2402
+ * add.
2403
+ */
2404
+ id: string;
2405
+
2406
+ /**
2407
+ * The estimate line group's item group, representing a predefined set of items
2408
+ * bundled because they are commonly purchased together or grouped for faster
2409
+ * entry.
2410
+ */
2411
+ itemGroupId?: string;
2412
+
2413
+ /**
2414
+ * The estimate line group's line items, each representing a single product or
2415
+ * service quoted.
2416
+ *
2417
+ * **IMPORTANT**:
2418
+ *
2419
+ * 1. Including this array in your update request will **REPLACE** all existing
2420
+ * line items for the estimate line group with this array. To keep any existing
2421
+ * line items, you must include them in this array even if they have not
2422
+ * changed. **Any line items not included will be removed.**
2423
+ *
2424
+ * 2. To add a new line item, include it here with the `id` field set to `-1`.
2425
+ *
2426
+ * 3. If you do not wish to modify any line items, omit this field entirely to keep
2427
+ * them unchanged.
2428
+ */
2429
+ lines?: Array<LineGroup.Line>;
2430
+
2431
+ /**
2432
+ * Specifies an alternative unit-of-measure set when updating this estimate line
2433
+ * group's `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to
2434
+ * select units from a different set than the item's default unit-of-measure set,
2435
+ * which remains unchanged on the item itself. The override applies only to this
2436
+ * specific line. For example, you can sell an item typically measured in volume
2437
+ * units using weight units in a specific transaction by specifying a different
2438
+ * unit-of-measure set with this field.
2439
+ */
2440
+ overrideUnitOfMeasureSetId?: string;
2441
+
2442
+ /**
2443
+ * The quantity of the item group associated with this estimate line group. This
2444
+ * field cannot be cleared.
2445
+ *
2446
+ * **NOTE**: Do not use this field if the associated item group is a discount item
2447
+ * group.
2448
+ */
2449
+ quantity?: number;
2450
+
2451
+ /**
2452
+ * The unit-of-measure used for the `quantity` in this estimate line group. Must be
2453
+ * a valid unit within the item's available units of measure.
2454
+ */
2455
+ unitOfMeasure?: string;
2456
+ }
2457
+
2458
+ export namespace LineGroup {
2459
+ export interface Line {
2460
+ /**
2461
+ * The QuickBooks-assigned unique identifier of an existing estimate line you wish
2462
+ * to retain or update.
2463
+ *
2464
+ * **IMPORTANT**: Set this field to `-1` for new estimate lines you wish to add.
2465
+ */
2466
+ id: string;
2467
+
2468
+ /**
2469
+ * The monetary amount of this estimate line, represented as a decimal string. If
2470
+ * both `quantity` and `rate` are specified but not `amount`, QuickBooks will use
2471
+ * them to calculate `amount`. If `amount`, `rate`, and `quantity` are all
2472
+ * unspecified, then QuickBooks will calculate `amount` based on a `quantity` of
2473
+ * `1` and the suggested `rate`. This field cannot be cleared.
2474
+ */
2475
+ amount?: string;
2476
+
2477
+ /**
2478
+ * The estimate line's class. Classes can be used to categorize objects into
2479
+ * meaningful segments, such as department, location, or type of work. In
2480
+ * QuickBooks, class tracking is off by default. If a class is specified for the
2481
+ * entire parent transaction, it is automatically applied to all estimate lines
2482
+ * unless overridden here, at the transaction line level.
2483
+ */
2484
+ classId?: string;
2485
+
2486
+ /**
2487
+ * A description of this estimate line.
2488
+ */
2489
+ description?: string;
2490
+
2491
+ /**
2492
+ * The site location where inventory for the item associated with this estimate
2493
+ * line is stored.
2494
+ */
2495
+ inventorySiteId?: string;
2496
+
2497
+ /**
2498
+ * The specific location (e.g., bin or shelf) within the inventory site where the
2499
+ * item associated with this estimate line is stored.
2500
+ */
2501
+ inventorySiteLocationId?: string;
2502
+
2503
+ /**
2504
+ * The item associated with this estimate line. This can refer to any good or
2505
+ * service that the business buys or sells, including item types such as a service
2506
+ * item, inventory item, or special calculation item like a discount item or
2507
+ * sales-tax item.
2508
+ */
2509
+ itemId?: string;
2510
+
2511
+ /**
2512
+ * The markup that will be passed on to the customer for this item on this estimate
2513
+ * line. `amount = (quantity * rate) * (1 + markupRate)`
2514
+ */
2515
+ markupRate?: string;
2516
+
2517
+ /**
2518
+ * The markup, expressed as a percentage, that will be passed on to the customer
2519
+ * for this item on this estimate line.
2520
+ * `amount = (quantity * rate) * (1 + markupRatePercent/100)`
2521
+ */
2522
+ markupRatePercent?: string;
2523
+
2524
+ /**
2525
+ * A built-in custom field for additional information specific to this estimate
2526
+ * line. Unlike the user-defined fields in the `customFields` array, this is a
2527
+ * standard QuickBooks field that exists for all estimate lines for convenience.
2528
+ * Developers often use this field for tracking information that doesn't fit into
2529
+ * other standard QuickBooks fields. Hidden by default in the QuickBooks UI.
2530
+ */
2531
+ otherCustomField1?: string;
2532
+
2533
+ /**
2534
+ * A second built-in custom field for additional information specific to this
2535
+ * estimate line. Unlike the user-defined fields in the `customFields` array, this
2536
+ * is a standard QuickBooks field that exists for all estimate lines for
2537
+ * convenience. Like `otherCustomField1`, developers often use this field for
2538
+ * tracking information that doesn't fit into other standard QuickBooks fields.
2539
+ * Hidden by default in the QuickBooks UI.
2540
+ */
2541
+ otherCustomField2?: string;
2542
+
2543
+ /**
2544
+ * Specifies an alternative unit-of-measure set when updating this estimate line's
2545
+ * `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select
2546
+ * units from a different set than the item's default unit-of-measure set, which
2547
+ * remains unchanged on the item itself. The override applies only to this specific
2548
+ * line. For example, you can sell an item typically measured in volume units using
2549
+ * weight units in a specific transaction by specifying a different unit-of-measure
2550
+ * set with this field.
2551
+ */
2552
+ overrideUnitOfMeasureSetId?: string;
2553
+
2554
+ /**
2555
+ * The price level applied to this estimate line. This overrides any price level
2556
+ * set on the corresponding customer. The resulting estimate line will not show
2557
+ * this price level, only the final `rate` calculated from it.
2558
+ */
2559
+ priceLevelId?: string;
2560
+
2561
+ /**
2562
+ * Specifies how to resolve price rule conflicts when adding or modifying this
2563
+ * estimate line.
2564
+ */
2565
+ priceRuleConflictStrategy?: 'base_price' | 'zero';
2566
+
2567
+ /**
2568
+ * The quantity of the item associated with this estimate line. This field cannot
2569
+ * be cleared.
2570
+ *
2571
+ * **NOTE**: Do not use this field if the associated item is a discount item.
2572
+ */
2573
+ quantity?: number;
2574
+
2575
+ /**
2576
+ * The price per unit for this estimate line. If both `rate` and `amount` are
2577
+ * specified, `rate` will be ignored. If both `quantity` and `amount` are specified
2578
+ * but not `rate`, QuickBooks will use them to calculate `rate`. Represented as a
2579
+ * decimal string. This field cannot be cleared.
2580
+ */
2581
+ rate?: string;
2582
+
2583
+ /**
2584
+ * The price of this estimate line expressed as a percentage. Typically used for
2585
+ * discount or markup items.
2586
+ */
2587
+ ratePercent?: string;
2588
+
2589
+ /**
2590
+ * The sales-tax code for this estimate line, determining whether it is taxable or
2591
+ * non-taxable. If set, this overrides any sales-tax codes defined on the parent
2592
+ * transaction or the associated item.
2593
+ *
2594
+ * Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes
2595
+ * can also be created in QuickBooks. If QuickBooks is not set up to charge sales
2596
+ * tax (via the "Do You Charge Sales Tax?" preference), it will assign the default
2597
+ * non-taxable code to all sales.
2598
+ */
2599
+ salesTaxCodeId?: string;
2600
+
2601
+ /**
2602
+ * The unit-of-measure used for the `quantity` in this estimate line. Must be a
2603
+ * valid unit within the item's available units of measure.
2604
+ */
2605
+ unitOfMeasure?: string;
2606
+ }
2607
+ }
2608
+
2609
+ export interface Line {
2610
+ /**
2611
+ * The QuickBooks-assigned unique identifier of an existing estimate line you wish
2612
+ * to retain or update.
2613
+ *
2614
+ * **IMPORTANT**: Set this field to `-1` for new estimate lines you wish to add.
2615
+ */
2616
+ id: string;
2617
+
2618
+ /**
2619
+ * The monetary amount of this estimate line, represented as a decimal string. If
2620
+ * both `quantity` and `rate` are specified but not `amount`, QuickBooks will use
2621
+ * them to calculate `amount`. If `amount`, `rate`, and `quantity` are all
2622
+ * unspecified, then QuickBooks will calculate `amount` based on a `quantity` of
2623
+ * `1` and the suggested `rate`. This field cannot be cleared.
2624
+ */
2625
+ amount?: string;
2626
+
2627
+ /**
2628
+ * The estimate line's class. Classes can be used to categorize objects into
2629
+ * meaningful segments, such as department, location, or type of work. In
2630
+ * QuickBooks, class tracking is off by default. If a class is specified for the
2631
+ * entire parent transaction, it is automatically applied to all estimate lines
2632
+ * unless overridden here, at the transaction line level.
2633
+ */
2634
+ classId?: string;
2635
+
2636
+ /**
2637
+ * A description of this estimate line.
2638
+ */
2639
+ description?: string;
2640
+
2641
+ /**
2642
+ * The site location where inventory for the item associated with this estimate
2643
+ * line is stored.
2644
+ */
2645
+ inventorySiteId?: string;
2646
+
2647
+ /**
2648
+ * The specific location (e.g., bin or shelf) within the inventory site where the
2649
+ * item associated with this estimate line is stored.
2650
+ */
2651
+ inventorySiteLocationId?: string;
2652
+
2653
+ /**
2654
+ * The item associated with this estimate line. This can refer to any good or
2655
+ * service that the business buys or sells, including item types such as a service
2656
+ * item, inventory item, or special calculation item like a discount item or
2657
+ * sales-tax item.
2658
+ */
2659
+ itemId?: string;
2660
+
2661
+ /**
2662
+ * The markup that will be passed on to the customer for this item on this estimate
2663
+ * line. `amount = (quantity * rate) * (1 + markupRate)`
2664
+ */
2665
+ markupRate?: string;
2666
+
2667
+ /**
2668
+ * The markup, expressed as a percentage, that will be passed on to the customer
2669
+ * for this item on this estimate line.
2670
+ * `amount = (quantity * rate) * (1 + markupRatePercent/100)`
2671
+ */
2672
+ markupRatePercent?: string;
2673
+
2674
+ /**
2675
+ * A built-in custom field for additional information specific to this estimate
2676
+ * line. Unlike the user-defined fields in the `customFields` array, this is a
2677
+ * standard QuickBooks field that exists for all estimate lines for convenience.
2678
+ * Developers often use this field for tracking information that doesn't fit into
2679
+ * other standard QuickBooks fields. Hidden by default in the QuickBooks UI.
2680
+ */
2681
+ otherCustomField1?: string;
2682
+
2683
+ /**
2684
+ * A second built-in custom field for additional information specific to this
2685
+ * estimate line. Unlike the user-defined fields in the `customFields` array, this
2686
+ * is a standard QuickBooks field that exists for all estimate lines for
2687
+ * convenience. Like `otherCustomField1`, developers often use this field for
2688
+ * tracking information that doesn't fit into other standard QuickBooks fields.
2689
+ * Hidden by default in the QuickBooks UI.
2690
+ */
2691
+ otherCustomField2?: string;
2692
+
2693
+ /**
2694
+ * Specifies an alternative unit-of-measure set when updating this estimate line's
2695
+ * `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select
2696
+ * units from a different set than the item's default unit-of-measure set, which
2697
+ * remains unchanged on the item itself. The override applies only to this specific
2698
+ * line. For example, you can sell an item typically measured in volume units using
2699
+ * weight units in a specific transaction by specifying a different unit-of-measure
2700
+ * set with this field.
2701
+ */
2702
+ overrideUnitOfMeasureSetId?: string;
2703
+
2704
+ /**
2705
+ * The price level applied to this estimate line. This overrides any price level
2706
+ * set on the corresponding customer. The resulting estimate line will not show
2707
+ * this price level, only the final `rate` calculated from it.
2708
+ */
2709
+ priceLevelId?: string;
2710
+
2711
+ /**
2712
+ * Specifies how to resolve price rule conflicts when adding or modifying this
2713
+ * estimate line.
2714
+ */
2715
+ priceRuleConflictStrategy?: 'base_price' | 'zero';
2716
+
2717
+ /**
2718
+ * The quantity of the item associated with this estimate line. This field cannot
2719
+ * be cleared.
2720
+ *
2721
+ * **NOTE**: Do not use this field if the associated item is a discount item.
2722
+ */
2723
+ quantity?: number;
2724
+
2725
+ /**
2726
+ * The price per unit for this estimate line. If both `rate` and `amount` are
2727
+ * specified, `rate` will be ignored. If both `quantity` and `amount` are specified
2728
+ * but not `rate`, QuickBooks will use them to calculate `rate`. Represented as a
2729
+ * decimal string. This field cannot be cleared.
2730
+ */
2731
+ rate?: string;
2732
+
2733
+ /**
2734
+ * The price of this estimate line expressed as a percentage. Typically used for
2735
+ * discount or markup items.
2736
+ */
2737
+ ratePercent?: string;
2738
+
2739
+ /**
2740
+ * The sales-tax code for this estimate line, determining whether it is taxable or
2741
+ * non-taxable. If set, this overrides any sales-tax codes defined on the parent
2742
+ * transaction or the associated item.
2743
+ *
2744
+ * Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes
2745
+ * can also be created in QuickBooks. If QuickBooks is not set up to charge sales
2746
+ * tax (via the "Do You Charge Sales Tax?" preference), it will assign the default
2747
+ * non-taxable code to all sales.
2748
+ */
2749
+ salesTaxCodeId?: string;
2750
+
2751
+ /**
2752
+ * The unit-of-measure used for the `quantity` in this estimate line. Must be a
2753
+ * valid unit within the item's available units of measure.
2754
+ */
2755
+ unitOfMeasure?: string;
2756
+ }
2757
+
2758
+ /**
2759
+ * The estimate's shipping address.
2760
+ */
2761
+ export interface ShippingAddress {
2762
+ /**
2763
+ * The city, district, suburb, town, or village name of the address.
2764
+ *
2765
+ * Maximum length: 31 characters.
2766
+ */
2767
+ city?: string;
2768
+
2769
+ /**
2770
+ * The country name of the address.
2771
+ */
2772
+ country?: string;
2773
+
2774
+ /**
2775
+ * The first line of the address (e.g., street, PO Box, or company name).
2776
+ *
2777
+ * Maximum length: 41 characters.
2778
+ */
2779
+ line1?: string;
2780
+
2781
+ /**
2782
+ * The second line of the address, if needed (e.g., apartment, suite, unit, or
2783
+ * building).
2784
+ *
2785
+ * Maximum length: 41 characters.
2786
+ */
2787
+ line2?: string;
2788
+
2789
+ /**
2790
+ * The third line of the address, if needed.
2791
+ *
2792
+ * Maximum length: 41 characters.
2793
+ */
2794
+ line3?: string;
2795
+
2796
+ /**
2797
+ * The fourth line of the address, if needed.
2798
+ *
2799
+ * Maximum length: 41 characters.
2800
+ */
2801
+ line4?: string;
2802
+
2803
+ /**
2804
+ * The fifth line of the address, if needed.
2805
+ *
2806
+ * Maximum length: 41 characters.
2807
+ */
2808
+ line5?: string;
2809
+
2810
+ /**
2811
+ * A note written at the bottom of the address in the form in which it appears,
2812
+ * such as the invoice form.
2813
+ */
2814
+ note?: string;
2815
+
2816
+ /**
2817
+ * The postal code or ZIP code of the address.
2818
+ *
2819
+ * Maximum length: 13 characters.
2820
+ */
2821
+ postalCode?: string;
2822
+
2823
+ /**
2824
+ * The state, county, province, or region name of the address.
2825
+ *
2826
+ * Maximum length: 21 characters.
2827
+ */
2828
+ state?: string;
2829
+ }
2830
+ }
2831
+
2832
+ export interface EstimateListParams extends CursorPageParams {
2833
+ /**
2834
+ * Header param: The ID of the EndUser to receive this request (e.g.,
2835
+ * `"Conductor-End-User-Id: {{END_USER_ID}}"`).
2836
+ */
2837
+ conductorEndUserId: string;
2838
+
2839
+ /**
2840
+ * Query param: Filter for estimates associated with these accounts.
2841
+ */
2842
+ accountIds?: Array<string>;
2843
+
2844
+ /**
2845
+ * Query param: Filter for estimates in these currencies.
2846
+ */
2847
+ currencyIds?: Array<string>;
2848
+
2849
+ /**
2850
+ * Query param: Filter for estimates created for these customers.
2851
+ */
2852
+ customerIds?: Array<string>;
2853
+
2854
+ /**
2855
+ * Query param: Filter for specific estimates by their QuickBooks-assigned unique
2856
+ * identifier(s).
2857
+ *
2858
+ * **IMPORTANT**: If you include this parameter, QuickBooks will ignore all other
2859
+ * query parameters for this request.
2860
+ *
2861
+ * **NOTE**: If any of the values you specify in this parameter are not found, the
2862
+ * request will return an error.
2863
+ */
2864
+ ids?: Array<string>;
2865
+
2866
+ /**
2867
+ * Query param: Whether to include line items in the response. Defaults to `true`.
2868
+ */
2869
+ includeLineItems?: boolean;
2870
+
2871
+ /**
2872
+ * Query param: Whether to include linked transactions in the response. Defaults to
2873
+ * `false`. For example, a payment linked to the corresponding estimate.
2874
+ */
2875
+ includeLinkedTransactions?: boolean;
2876
+
2877
+ /**
2878
+ * Query param: Filter for estimates whose `refNumber` contains this substring.
2879
+ * NOTE: If you use this parameter, you cannot also use `refNumberStartsWith` or
2880
+ * `refNumberEndsWith`.
2881
+ */
2882
+ refNumberContains?: string;
2883
+
2884
+ /**
2885
+ * Query param: Filter for estimates whose `refNumber` ends with this substring.
2886
+ * NOTE: If you use this parameter, you cannot also use `refNumberContains` or
2887
+ * `refNumberStartsWith`.
2888
+ */
2889
+ refNumberEndsWith?: string;
2890
+
2891
+ /**
2892
+ * Query param: Filter for estimates whose `refNumber` is greater than or equal to
2893
+ * this value. If omitted, the range will begin with the first number of the list.
2894
+ * Uses a numerical comparison for values that contain only digits; otherwise, uses
2895
+ * a lexicographical comparison.
2896
+ */
2897
+ refNumberFrom?: string;
2898
+
2899
+ /**
2900
+ * Query param: Filter for specific estimates by their ref-number(s),
2901
+ * case-sensitive. In QuickBooks, ref-numbers are not required to be unique and can
2902
+ * be arbitrarily changed by the QuickBooks user.
2903
+ *
2904
+ * **IMPORTANT**: If you include this parameter, QuickBooks will ignore all other
2905
+ * query parameters for this request.
2906
+ *
2907
+ * **NOTE**: If any of the values you specify in this parameter are not found, the
2908
+ * request will return an error.
2909
+ */
2910
+ refNumbers?: Array<string>;
2911
+
2912
+ /**
2913
+ * Query param: Filter for estimates whose `refNumber` starts with this substring.
2914
+ * NOTE: If you use this parameter, you cannot also use `refNumberContains` or
2915
+ * `refNumberEndsWith`.
2916
+ */
2917
+ refNumberStartsWith?: string;
2918
+
2919
+ /**
2920
+ * Query param: Filter for estimates whose `refNumber` is less than or equal to
2921
+ * this value. If omitted, the range will end with the last number of the list.
2922
+ * Uses a numerical comparison for values that contain only digits; otherwise, uses
2923
+ * a lexicographical comparison.
2924
+ */
2925
+ refNumberTo?: string;
2926
+
2927
+ /**
2928
+ * Query param: Filter for estimates created on or after this date, in ISO 8601
2929
+ * format (YYYY-MM-DD).
2930
+ */
2931
+ transactionDateFrom?: string;
2932
+
2933
+ /**
2934
+ * Query param: Filter for estimates created on or before this date, in ISO 8601
2935
+ * format (YYYY-MM-DD).
2936
+ */
2937
+ transactionDateTo?: string;
2938
+
2939
+ /**
2940
+ * Query param: Filter for estimates updated on or after this date and time, in ISO
2941
+ * 8601 format (YYYY-MM-DDTHH:mm:ss). If you only provide a date (YYYY-MM-DD), the
2942
+ * time is assumed to be 00:00:00 of that day.
2943
+ */
2944
+ updatedAfter?: string;
2945
+
2946
+ /**
2947
+ * Query param: Filter for estimates updated on or before this date and time, in
2948
+ * ISO 8601 format (YYYY-MM-DDTHH:mm:ss). If you only provide a date (YYYY-MM-DD),
2949
+ * the time is assumed to be 23:59:59 of that day.
2950
+ */
2951
+ updatedBefore?: string;
2952
+ }
2953
+
2954
+ export interface EstimateDeleteParams {
2955
+ /**
2956
+ * The ID of the EndUser to receive this request (e.g.,
2957
+ * `"Conductor-End-User-Id: {{END_USER_ID}}"`).
2958
+ */
2959
+ conductorEndUserId: string;
2960
+ }
2961
+
2962
+ Estimates.EstimatesCursorPage = EstimatesCursorPage;
2963
+
2964
+ export declare namespace Estimates {
2965
+ export {
2966
+ type Estimate as Estimate,
2967
+ type EstimateDeleteResponse as EstimateDeleteResponse,
2968
+ EstimatesCursorPage as EstimatesCursorPage,
2969
+ type EstimateCreateParams as EstimateCreateParams,
2970
+ type EstimateRetrieveParams as EstimateRetrieveParams,
2971
+ type EstimateUpdateParams as EstimateUpdateParams,
2972
+ type EstimateListParams as EstimateListParams,
2973
+ type EstimateDeleteParams as EstimateDeleteParams,
2974
+ };
2975
+ }