conductor-node 9.3.0 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "conductor-node",
3
- "version": "9.3.0",
3
+ "version": "9.4.0",
4
4
  "description": "Easily integrate with the entire QuickBooks Desktop API with fully-typed async TypeScript",
5
5
  "author": "Danny Nemer <hi@DannyNemer.com>",
6
6
  "license": "MIT",
@@ -112,9 +112,6 @@ export default class QbdIntegration extends BaseIntegration {
112
112
  * - `BillableStatus`
113
113
  * - `OverrideItemAccountRef`
114
114
  *
115
- * (For more details about what it means for a field to be clearable or not
116
- * clearable, see the QB SDK Programmer’s Guide.)
117
- *
118
115
  * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/BillMod
119
116
  */
120
117
  mod: (integrationConnectionId: string, params: QbdTypes.BillModRq["BillMod"]) => Promise<NonNullable<QbdTypes.BillModRs["BillRet"]>>;
@@ -283,6 +280,35 @@ export default class QbdIntegration extends BaseIntegration {
283
280
  */
284
281
  query: (integrationConnectionId: string, params: QbdTypes.BillPaymentCheckQueryRq) => Promise<NonNullable<QbdTypes.BillPaymentCheckQueryRs["BillPaymentCheckRet"]>>;
285
282
  };
283
+ billingRate: {
284
+ /**
285
+ * Adds a billing rate to the billing rate level list.
286
+ *
287
+ * After a billing rate is created, it can be assigned to an employee or
288
+ * vendor (`VendorAdd`/`VendorMod`, `EmployeeAdd`/`EmployeeMod`) via the
289
+ * `BillingRateRef` element in the appropriate request. Then, once the
290
+ * billing rate is assigned to an employee or vendor, if you use that
291
+ * employee or vendor in a time transaction (`TimeTrackingAdd`), then the
292
+ * billing rate will override the rate specified by the service item used in
293
+ * the time transaction.
294
+ *
295
+ * Use `FixedBillingRate` to override all service items with a fixed rate.
296
+ * Use `BillingRatePerItem` to override a specific service item. If you want
297
+ * to specify more than one service item, you’ll need to use one
298
+ * `BillingRatePerItem` aggregate for each service item.
299
+ *
300
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/BillingRateAdd
301
+ */
302
+ add: (integrationConnectionId: string, params: QbdTypes.BillingRateAddRq["BillingRateAdd"]) => Promise<NonNullable<QbdTypes.BillingRateAddRs["BillingRateRet"]>>;
303
+ /**
304
+ * Returns all billing rates, or billing rates filtered by modified date, or
305
+ * filtered by billing rate name, or filtered by the service item referenced
306
+ * in the billing rate.
307
+ *
308
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/BillingRateQuery
309
+ */
310
+ query: (integrationConnectionId: string, params: QbdTypes.BillingRateQueryRq) => Promise<NonNullable<QbdTypes.BillingRateQueryRs["BillingRateRet"]>>;
311
+ };
286
312
  charge: {
287
313
  /**
288
314
  * Adds a customer charge. A `Charge` contains information about a statement
@@ -400,6 +426,101 @@ export default class QbdIntegration extends BaseIntegration {
400
426
  */
401
427
  query: (integrationConnectionId: string, params: QbdTypes.CompanyQueryRq) => Promise<NonNullable<QbdTypes.CompanyQueryRs["CompanyRet"]>>;
402
428
  };
429
+ creditCardCharge: {
430
+ /**
431
+ * A credit card charge is a general charge incurred when a QuickBooks user
432
+ * makes a purchase using a credit card. Credit card charges for purchases
433
+ * can be tracked as expenses (in expense accounts) or as items.
434
+ *
435
+ * The current balance on the credit card becomes part of the accounts
436
+ * payable balance. If a balance is carried on the credit card across time,
437
+ * finance or interest charges can be tracked in QuickBooks.
438
+ *
439
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditCardChargeAdd
440
+ */
441
+ add: (integrationConnectionId: string, params: QbdTypes.CreditCardChargeAddRq["CreditCardChargeAdd"]) => Promise<NonNullable<QbdTypes.CreditCardChargeAddRs["CreditCardChargeRet"]>>;
442
+ /**
443
+ * The Credit Card charge mod request allows you to modify an existing
444
+ * credit card charge transaction using the SDK. You can modify most of the
445
+ * fields that can be modified in the QuickBooks UI. That is, this request
446
+ * can be used to modify Purchased from, date, credit card and modify lines
447
+ * from the item table and the expense table.
448
+ *
449
+ * The following list describes what you can and cannot due with this
450
+ * request:
451
+ * - You can modify or clear the following fields: Ref Num and Memo
452
+ * - You can modify (not clear) transaction date
453
+ * - You can change the credit card account to support the scenario where
454
+ * the credit card transaction was created and posted to the wrong credit
455
+ * card account (impacts your accounting).
456
+ * - You can modify the Purchase from field (Payee Name) to change the Payee
457
+ * Name on the credit card transaction to a different name (employee, job,
458
+ * customer, vendor, other name). This field cannot be cleared since it is
459
+ * required by QB business logic
460
+ * - You cannot modify the amount due directly! (However the amount due will
461
+ * change when you modify the transaction lines.)
462
+ * - You cannot change a Charge to a Credit.
463
+ * - You cannot Void the charge. Use TxnVoid instead.
464
+ * - You can clear the entire expense table or the entire item table, but
465
+ * you cannot clear both tables at the same time.
466
+ *
467
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditCardChargeMod
468
+ */
469
+ mod: (integrationConnectionId: string, params: QbdTypes.CreditCardChargeModRq["CreditCardChargeMod"]) => Promise<NonNullable<QbdTypes.CreditCardChargeModRs["CreditCardChargeRet"]>>;
470
+ /**
471
+ * Queries for the specified credit card charge or charges.
472
+ *
473
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditCardChargeQuery
474
+ */
475
+ query: (integrationConnectionId: string, params: QbdTypes.CreditCardChargeQueryRq) => Promise<NonNullable<QbdTypes.CreditCardChargeQueryRs["CreditCardChargeRet"]>>;
476
+ };
477
+ creditCardCredit: {
478
+ /**
479
+ * If a QuickBooks user returns merchandise and receives credit, the credit
480
+ * is entered in QuickBooks and assigned to the appropriate expense account.
481
+ * Typically, the assigned expense account reflects the same account,
482
+ * customer, and class that were assigned when the merchandise was first
483
+ * purchased. (The original purchase would be described by a
484
+ * `CreditCardCharge` message.)
485
+ *
486
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditCardCreditAdd
487
+ */
488
+ add: (integrationConnectionId: string, params: QbdTypes.CreditCardCreditAddRq["CreditCardCreditAdd"]) => Promise<NonNullable<QbdTypes.CreditCardCreditAddRs["CreditCardCreditRet"]>>;
489
+ /**
490
+ * The Credit Card credit mod request allows you to modify an existing
491
+ * credit card credit transaction using the SDK. You can modify most of the
492
+ * fields that can be modified in the QuickBooks UI. That is, this request
493
+ * can be used to modify Purchased from, date, credit card and modify lines
494
+ * from the item table and the expense table.
495
+ *
496
+ * The following list describes what you can and cannot due with this
497
+ * request:
498
+ * - You can modify or clear the following fields: Ref Num and Memo
499
+ * - You can modify (not clear) transaction date
500
+ * - You can change the credit card account to support the scenario where
501
+ * the credit card transaction was created and posted to the wrong credit
502
+ * card account (impacts your accounting).
503
+ * - You can modify the Purchase from field (Payee Name) to change the Payee
504
+ * Name on the credit card transaction to a different name (employee, job,
505
+ * customer, vendor, other name). This field cannot be cleared since it is
506
+ * required by QB business logic
507
+ * - You cannot modify the amount due directly! (However the amount due will
508
+ * change when you modify the transaction lines.)
509
+ * - You cannot change a Credit to a Charge.
510
+ * - You cannot Void the credit. Use TxnVoid instead.
511
+ * - You can clear the entire expense table or the entire item table, but
512
+ * you cannot clear both tables at the same time.
513
+ *
514
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditCardCreditMod
515
+ */
516
+ mod: (integrationConnectionId: string, params: QbdTypes.CreditCardCreditModRq["CreditCardCreditMod"]) => Promise<NonNullable<QbdTypes.CreditCardCreditModRs["CreditCardCreditRet"]>>;
517
+ /**
518
+ * Queries for the specified credit or set of credits.
519
+ *
520
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditCardCreditQuery
521
+ */
522
+ query: (integrationConnectionId: string, params: QbdTypes.CreditCardCreditQueryRq) => Promise<NonNullable<QbdTypes.CreditCardCreditQueryRs["CreditCardCreditRet"]>>;
523
+ };
403
524
  customer: {
404
525
  /**
405
526
  * The customer list includes information about the QuickBooks user’s
@@ -444,6 +565,27 @@ export default class QbdIntegration extends BaseIntegration {
444
565
  */
445
566
  query: (integrationConnectionId: string, params: QbdTypes.CustomerQueryRq) => Promise<NonNullable<QbdTypes.CustomerQueryRs["CustomerRet"]>>;
446
567
  };
568
+ customerType: {
569
+ /**
570
+ * Customer types allow business owners to categorize customers in ways that
571
+ * are meaningful for their businesses. For example, a customer type might
572
+ * indicate which industry a customer represents, or which part of the
573
+ * country a customer is in.
574
+ *
575
+ * A `CustomerTypeRef` aggregate refers to one of the types on the
576
+ * CustomerType list. In a request, if a `CustomerTypeRef` aggregate
577
+ * includes both `FullName` and `ListID`, `FullName` will be ignored.
578
+ *
579
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CustomerTypeAdd
580
+ */
581
+ add: (integrationConnectionId: string, params: QbdTypes.CustomerTypeAddRq["CustomerTypeAdd"]) => Promise<NonNullable<QbdTypes.CustomerTypeAddRs["CustomerTypeRet"]>>;
582
+ /**
583
+ * Queries for the specified customer type or set of types.
584
+ *
585
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CustomerTypeQuery
586
+ */
587
+ query: (integrationConnectionId: string, params: QbdTypes.CustomerTypeQueryRq) => Promise<NonNullable<QbdTypes.CustomerTypeQueryRs["CustomerTypeRet"]>>;
588
+ };
447
589
  deposit: {
448
590
  /**
449
591
  * After you receive payments from customers (see `ReceivePayment`), you can
@@ -534,6 +676,60 @@ export default class QbdIntegration extends BaseIntegration {
534
676
  */
535
677
  query: (integrationConnectionId: string, params: QbdTypes.EstimateQueryRq) => Promise<NonNullable<QbdTypes.EstimateQueryRs["EstimateRet"]>>;
536
678
  };
679
+ inventoryAdjustment: {
680
+ /**
681
+ * Adds an inventory adjustment.
682
+ *
683
+ * If the following conditions aren’t met, you will receive an error if you
684
+ * try to add an inventory adjustment through the SDK:
685
+ * - The QuickBooks company file must be open in single-user mode, unless
686
+ * you are using QuickBooks Enterprise edition, which allows multi-user
687
+ * mode for this request. (This is also true in the user interface: you
688
+ * cannot adjust the inventory while the company file is open in
689
+ * multi-user mode, again except for Enterprise.)
690
+ * - The inventory adjustment form must be closed in the QuickBooks user
691
+ * interface.
692
+ *
693
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/InventoryAdjustmentAdd
694
+ */
695
+ add: (integrationConnectionId: string, params: QbdTypes.InventoryAdjustmentAddRq["InventoryAdjustmentAdd"]) => Promise<NonNullable<QbdTypes.InventoryAdjustmentAddRs["InventoryAdjustmentRet"]>>;
696
+ /**
697
+ * Modifies an inventory adjustment.
698
+ *
699
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/InventoryAdjustmentMod
700
+ */
701
+ mod: (integrationConnectionId: string, params: QbdTypes.InventoryAdjustmentModRq["InventoryAdjustmentMod"]) => Promise<NonNullable<QbdTypes.InventoryAdjustmentModRs["InventoryAdjustmentRet"]>>;
702
+ /**
703
+ * Queries for the specified inventory adjustment or set of inventory
704
+ * adjustments.
705
+ *
706
+ * You cannot query an inventory adjustment while the inventory adjustment
707
+ * form is open in the QuickBooks user interface.
708
+ *
709
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/InventoryAdjustmentQuery
710
+ */
711
+ query: (integrationConnectionId: string, params: QbdTypes.InventoryAdjustmentQueryRq) => Promise<NonNullable<QbdTypes.InventoryAdjustmentQueryRs["InventoryAdjustmentRet"]>>;
712
+ };
713
+ inventorySite: {
714
+ /**
715
+ * Adds an inventory site.
716
+ *
717
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/InventorySiteAdd
718
+ */
719
+ add: (integrationConnectionId: string, params: QbdTypes.InventorySiteAddRq["InventorySiteAdd"]) => Promise<NonNullable<QbdTypes.InventorySiteAddRs["InventorySiteRet"]>>;
720
+ /**
721
+ * Modifies an inventory site.
722
+ *
723
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/InventorySiteMod
724
+ */
725
+ mod: (integrationConnectionId: string, params: QbdTypes.InventorySiteModRq["InventorySiteMod"]) => Promise<NonNullable<QbdTypes.InventorySiteModRs["InventorySiteRet"]>>;
726
+ /**
727
+ * Queries for the specified inventory site or set of inventory sites.
728
+ *
729
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/InventorySiteQuery
730
+ */
731
+ query: (integrationConnectionId: string, params: QbdTypes.InventorySiteQueryRq) => Promise<NonNullable<QbdTypes.InventorySiteQueryRs["InventorySiteRet"]>>;
732
+ };
537
733
  invoice: {
538
734
  /**
539
735
  * Adds an invoice.
@@ -628,8 +824,9 @@ export default class QbdIntegration extends BaseIntegration {
628
824
  */
629
825
  add: (integrationConnectionId: string, params: QbdTypes.ItemDiscountAddRq["ItemDiscountAdd"]) => Promise<NonNullable<QbdTypes.ItemDiscountAddRs["ItemDiscountRet"]>>;
630
826
  /**
631
- * Modifies a discount item. Starting with qbXML spec 7.0, you can modify
632
- * the account ref, using the AccountRef aggregate and the
827
+ * Modifies a discount item.
828
+ *
829
+ * You can modify the account ref, using the `AccountRef` aggregate and the
633
830
  * `ApplyAccountRefToExistingTxns` boolean. You need to use the
634
831
  * `ApplyAccountRefToExistingTxns` boolean because the QuickBooks UI
635
832
  * displays a prompt asking whether the change should apply to existing
@@ -1310,6 +1507,76 @@ export default class QbdIntegration extends BaseIntegration {
1310
1507
  */
1311
1508
  query: (integrationConnectionId: string, params: QbdTypes.PurchaseOrderQueryRq) => Promise<NonNullable<QbdTypes.PurchaseOrderQueryRs["PurchaseOrderRet"]>>;
1312
1509
  };
1510
+ salesReceipt: {
1511
+ /**
1512
+ * Adds a sales receipt to QuickBooks.
1513
+ *
1514
+ * Notice that access to sensitive data permissions are not required to use
1515
+ * this request. However, if the application does not have access to
1516
+ * sensitive data permission, then the response returned will not contain
1517
+ * certain sensitive data. For example, even if credit card data is supplied
1518
+ * in the `SalesReceiptAdd` request via the `CreditCardTxnInfo` aggregate,
1519
+ * the response will not contain the corresponding aggregate.
1520
+ *
1521
+ * Sales receipts are used to record point-of-sale payments. Sales receipts
1522
+ * include payments by cash, check, or credit card. Note: If full payment is
1523
+ * not received at the time of the sale, do not use a sales receipt.
1524
+ * Instead, use an invoice transaction and record the partial payment using
1525
+ * a payment item.
1526
+ *
1527
+ * IMPORTANT: In a `SalesReceiptAdd` or `ReceivePaymentAdd` request that
1528
+ * contains credit card transaction data supplied from QBMS transaction
1529
+ * responses, you must specify the payment method (using the
1530
+ * `PaymentMethodRef` aggregate).
1531
+ *
1532
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesReceiptAdd
1533
+ */
1534
+ add: (integrationConnectionId: string, params: QbdTypes.SalesReceiptAddRq["SalesReceiptAdd"]) => Promise<NonNullable<QbdTypes.SalesReceiptAddRs["SalesReceiptRet"]>>;
1535
+ /**
1536
+ * Modifies an existing Sales receipt.
1537
+ *
1538
+ * IMPORTANT: In a `SalesReceiptMod` request that contains credit card
1539
+ * transaction data supplied from QBMS transaction responses, you cannot
1540
+ * change the total amount recorded in the sale.
1541
+ *
1542
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesReceiptMod
1543
+ */
1544
+ mod: (integrationConnectionId: string, params: QbdTypes.SalesReceiptModRq["SalesReceiptMod"]) => Promise<NonNullable<QbdTypes.SalesReceiptModRs["SalesReceiptRet"]>>;
1545
+ /**
1546
+ * Queries for the specified sales receipt or set of receipts.
1547
+ *
1548
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesReceiptQuery
1549
+ */
1550
+ query: (integrationConnectionId: string, params: QbdTypes.SalesReceiptQueryRq) => Promise<NonNullable<QbdTypes.SalesReceiptQueryRs["SalesReceiptRet"]>>;
1551
+ };
1552
+ salesRep: {
1553
+ /**
1554
+ * Adds a sales rep.
1555
+ *
1556
+ * The sales representative must be on the Employee, Vendor, or Other Names
1557
+ * list within QuickBooks. Sales representative’s names and initials appear
1558
+ * on the Rep drop-down list on QuickBooks sales forms.
1559
+ *
1560
+ * A `SalesRepRef` refers to a person on the `SalesRep` list. In a request,
1561
+ * if a `SalesRepRef` aggregate includes both `FullName` and `ListID`,
1562
+ * `FullName` will be ignored.
1563
+ *
1564
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesRepAdd
1565
+ */
1566
+ add: (integrationConnectionId: string, params: QbdTypes.SalesRepAddRq["SalesRepAdd"]) => Promise<NonNullable<QbdTypes.SalesRepAddRs["SalesRepRet"]>>;
1567
+ /**
1568
+ * Modifies a sales rep record.
1569
+ *
1570
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesRepMod
1571
+ */
1572
+ mod: (integrationConnectionId: string, params: QbdTypes.SalesRepModRq["SalesRepMod"]) => Promise<NonNullable<QbdTypes.SalesRepModRs["SalesRepRet"]>>;
1573
+ /**
1574
+ * Queries for the specified sales rep or set of reps.
1575
+ *
1576
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesRepQuery
1577
+ */
1578
+ query: (integrationConnectionId: string, params: QbdTypes.SalesRepQueryRq) => Promise<NonNullable<QbdTypes.SalesRepQueryRs["SalesRepRet"]>>;
1579
+ };
1313
1580
  timeTracking: {
1314
1581
  /**
1315
1582
  * The time-tracking transactions that are returned in this query include
@@ -117,9 +117,6 @@ class QbdIntegration extends BaseIntegration_1.default {
117
117
  * - `BillableStatus`
118
118
  * - `OverrideItemAccountRef`
119
119
  *
120
- * (For more details about what it means for a field to be clearable or not
121
- * clearable, see the QB SDK Programmer’s Guide.)
122
- *
123
120
  * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/BillMod
124
121
  */
125
122
  mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { BillModRq: { BillMod: params } }, "BillModRs", "BillRet"),
@@ -288,6 +285,35 @@ class QbdIntegration extends BaseIntegration_1.default {
288
285
  */
289
286
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { BillPaymentCheckQueryRq: params }, "BillPaymentCheckQueryRs", "BillPaymentCheckRet"),
290
287
  };
288
+ billingRate = {
289
+ /**
290
+ * Adds a billing rate to the billing rate level list.
291
+ *
292
+ * After a billing rate is created, it can be assigned to an employee or
293
+ * vendor (`VendorAdd`/`VendorMod`, `EmployeeAdd`/`EmployeeMod`) via the
294
+ * `BillingRateRef` element in the appropriate request. Then, once the
295
+ * billing rate is assigned to an employee or vendor, if you use that
296
+ * employee or vendor in a time transaction (`TimeTrackingAdd`), then the
297
+ * billing rate will override the rate specified by the service item used in
298
+ * the time transaction.
299
+ *
300
+ * Use `FixedBillingRate` to override all service items with a fixed rate.
301
+ * Use `BillingRatePerItem` to override a specific service item. If you want
302
+ * to specify more than one service item, you’ll need to use one
303
+ * `BillingRatePerItem` aggregate for each service item.
304
+ *
305
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/BillingRateAdd
306
+ */
307
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { BillingRateAddRq: { BillingRateAdd: params } }, "BillingRateAddRs", "BillingRateRet"),
308
+ /**
309
+ * Returns all billing rates, or billing rates filtered by modified date, or
310
+ * filtered by billing rate name, or filtered by the service item referenced
311
+ * in the billing rate.
312
+ *
313
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/BillingRateQuery
314
+ */
315
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { BillingRateQueryRq: params }, "BillingRateQueryRs", "BillingRateRet"),
316
+ };
291
317
  charge = {
292
318
  /**
293
319
  * Adds a customer charge. A `Charge` contains information about a statement
@@ -405,6 +431,101 @@ class QbdIntegration extends BaseIntegration_1.default {
405
431
  */
406
432
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CompanyQueryRq: params }, "CompanyQueryRs", "CompanyRet"),
407
433
  };
434
+ creditCardCharge = {
435
+ /**
436
+ * A credit card charge is a general charge incurred when a QuickBooks user
437
+ * makes a purchase using a credit card. Credit card charges for purchases
438
+ * can be tracked as expenses (in expense accounts) or as items.
439
+ *
440
+ * The current balance on the credit card becomes part of the accounts
441
+ * payable balance. If a balance is carried on the credit card across time,
442
+ * finance or interest charges can be tracked in QuickBooks.
443
+ *
444
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditCardChargeAdd
445
+ */
446
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CreditCardChargeAddRq: { CreditCardChargeAdd: params } }, "CreditCardChargeAddRs", "CreditCardChargeRet"),
447
+ /**
448
+ * The Credit Card charge mod request allows you to modify an existing
449
+ * credit card charge transaction using the SDK. You can modify most of the
450
+ * fields that can be modified in the QuickBooks UI. That is, this request
451
+ * can be used to modify Purchased from, date, credit card and modify lines
452
+ * from the item table and the expense table.
453
+ *
454
+ * The following list describes what you can and cannot due with this
455
+ * request:
456
+ * - You can modify or clear the following fields: Ref Num and Memo
457
+ * - You can modify (not clear) transaction date
458
+ * - You can change the credit card account to support the scenario where
459
+ * the credit card transaction was created and posted to the wrong credit
460
+ * card account (impacts your accounting).
461
+ * - You can modify the Purchase from field (Payee Name) to change the Payee
462
+ * Name on the credit card transaction to a different name (employee, job,
463
+ * customer, vendor, other name). This field cannot be cleared since it is
464
+ * required by QB business logic
465
+ * - You cannot modify the amount due directly! (However the amount due will
466
+ * change when you modify the transaction lines.)
467
+ * - You cannot change a Charge to a Credit.
468
+ * - You cannot Void the charge. Use TxnVoid instead.
469
+ * - You can clear the entire expense table or the entire item table, but
470
+ * you cannot clear both tables at the same time.
471
+ *
472
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditCardChargeMod
473
+ */
474
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CreditCardChargeModRq: { CreditCardChargeMod: params } }, "CreditCardChargeModRs", "CreditCardChargeRet"),
475
+ /**
476
+ * Queries for the specified credit card charge or charges.
477
+ *
478
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditCardChargeQuery
479
+ */
480
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CreditCardChargeQueryRq: params }, "CreditCardChargeQueryRs", "CreditCardChargeRet"),
481
+ };
482
+ creditCardCredit = {
483
+ /**
484
+ * If a QuickBooks user returns merchandise and receives credit, the credit
485
+ * is entered in QuickBooks and assigned to the appropriate expense account.
486
+ * Typically, the assigned expense account reflects the same account,
487
+ * customer, and class that were assigned when the merchandise was first
488
+ * purchased. (The original purchase would be described by a
489
+ * `CreditCardCharge` message.)
490
+ *
491
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditCardCreditAdd
492
+ */
493
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CreditCardCreditAddRq: { CreditCardCreditAdd: params } }, "CreditCardCreditAddRs", "CreditCardCreditRet"),
494
+ /**
495
+ * The Credit Card credit mod request allows you to modify an existing
496
+ * credit card credit transaction using the SDK. You can modify most of the
497
+ * fields that can be modified in the QuickBooks UI. That is, this request
498
+ * can be used to modify Purchased from, date, credit card and modify lines
499
+ * from the item table and the expense table.
500
+ *
501
+ * The following list describes what you can and cannot due with this
502
+ * request:
503
+ * - You can modify or clear the following fields: Ref Num and Memo
504
+ * - You can modify (not clear) transaction date
505
+ * - You can change the credit card account to support the scenario where
506
+ * the credit card transaction was created and posted to the wrong credit
507
+ * card account (impacts your accounting).
508
+ * - You can modify the Purchase from field (Payee Name) to change the Payee
509
+ * Name on the credit card transaction to a different name (employee, job,
510
+ * customer, vendor, other name). This field cannot be cleared since it is
511
+ * required by QB business logic
512
+ * - You cannot modify the amount due directly! (However the amount due will
513
+ * change when you modify the transaction lines.)
514
+ * - You cannot change a Credit to a Charge.
515
+ * - You cannot Void the credit. Use TxnVoid instead.
516
+ * - You can clear the entire expense table or the entire item table, but
517
+ * you cannot clear both tables at the same time.
518
+ *
519
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditCardCreditMod
520
+ */
521
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CreditCardCreditModRq: { CreditCardCreditMod: params } }, "CreditCardCreditModRs", "CreditCardCreditRet"),
522
+ /**
523
+ * Queries for the specified credit or set of credits.
524
+ *
525
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditCardCreditQuery
526
+ */
527
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CreditCardCreditQueryRq: params }, "CreditCardCreditQueryRs", "CreditCardCreditRet"),
528
+ };
408
529
  customer = {
409
530
  /**
410
531
  * The customer list includes information about the QuickBooks user’s
@@ -449,6 +570,27 @@ class QbdIntegration extends BaseIntegration_1.default {
449
570
  */
450
571
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CustomerQueryRq: params }, "CustomerQueryRs", "CustomerRet"),
451
572
  };
573
+ customerType = {
574
+ /**
575
+ * Customer types allow business owners to categorize customers in ways that
576
+ * are meaningful for their businesses. For example, a customer type might
577
+ * indicate which industry a customer represents, or which part of the
578
+ * country a customer is in.
579
+ *
580
+ * A `CustomerTypeRef` aggregate refers to one of the types on the
581
+ * CustomerType list. In a request, if a `CustomerTypeRef` aggregate
582
+ * includes both `FullName` and `ListID`, `FullName` will be ignored.
583
+ *
584
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CustomerTypeAdd
585
+ */
586
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CustomerTypeAddRq: { CustomerTypeAdd: params } }, "CustomerTypeAddRs", "CustomerTypeRet"),
587
+ /**
588
+ * Queries for the specified customer type or set of types.
589
+ *
590
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CustomerTypeQuery
591
+ */
592
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CustomerTypeQueryRq: params }, "CustomerTypeQueryRs", "CustomerTypeRet"),
593
+ };
452
594
  deposit = {
453
595
  /**
454
596
  * After you receive payments from customers (see `ReceivePayment`), you can
@@ -539,6 +681,60 @@ class QbdIntegration extends BaseIntegration_1.default {
539
681
  */
540
682
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { EstimateQueryRq: params }, "EstimateQueryRs", "EstimateRet"),
541
683
  };
684
+ inventoryAdjustment = {
685
+ /**
686
+ * Adds an inventory adjustment.
687
+ *
688
+ * If the following conditions aren’t met, you will receive an error if you
689
+ * try to add an inventory adjustment through the SDK:
690
+ * - The QuickBooks company file must be open in single-user mode, unless
691
+ * you are using QuickBooks Enterprise edition, which allows multi-user
692
+ * mode for this request. (This is also true in the user interface: you
693
+ * cannot adjust the inventory while the company file is open in
694
+ * multi-user mode, again except for Enterprise.)
695
+ * - The inventory adjustment form must be closed in the QuickBooks user
696
+ * interface.
697
+ *
698
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/InventoryAdjustmentAdd
699
+ */
700
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { InventoryAdjustmentAddRq: { InventoryAdjustmentAdd: params } }, "InventoryAdjustmentAddRs", "InventoryAdjustmentRet"),
701
+ /**
702
+ * Modifies an inventory adjustment.
703
+ *
704
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/InventoryAdjustmentMod
705
+ */
706
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { InventoryAdjustmentModRq: { InventoryAdjustmentMod: params } }, "InventoryAdjustmentModRs", "InventoryAdjustmentRet"),
707
+ /**
708
+ * Queries for the specified inventory adjustment or set of inventory
709
+ * adjustments.
710
+ *
711
+ * You cannot query an inventory adjustment while the inventory adjustment
712
+ * form is open in the QuickBooks user interface.
713
+ *
714
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/InventoryAdjustmentQuery
715
+ */
716
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { InventoryAdjustmentQueryRq: params }, "InventoryAdjustmentQueryRs", "InventoryAdjustmentRet"),
717
+ };
718
+ inventorySite = {
719
+ /**
720
+ * Adds an inventory site.
721
+ *
722
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/InventorySiteAdd
723
+ */
724
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { InventorySiteAddRq: { InventorySiteAdd: params } }, "InventorySiteAddRs", "InventorySiteRet"),
725
+ /**
726
+ * Modifies an inventory site.
727
+ *
728
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/InventorySiteMod
729
+ */
730
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { InventorySiteModRq: { InventorySiteMod: params } }, "InventorySiteModRs", "InventorySiteRet"),
731
+ /**
732
+ * Queries for the specified inventory site or set of inventory sites.
733
+ *
734
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/InventorySiteQuery
735
+ */
736
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { InventorySiteQueryRq: params }, "InventorySiteQueryRs", "InventorySiteRet"),
737
+ };
542
738
  invoice = {
543
739
  /**
544
740
  * Adds an invoice.
@@ -633,8 +829,9 @@ class QbdIntegration extends BaseIntegration_1.default {
633
829
  */
634
830
  add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemDiscountAddRq: { ItemDiscountAdd: params } }, "ItemDiscountAddRs", "ItemDiscountRet"),
635
831
  /**
636
- * Modifies a discount item. Starting with qbXML spec 7.0, you can modify
637
- * the account ref, using the AccountRef aggregate and the
832
+ * Modifies a discount item.
833
+ *
834
+ * You can modify the account ref, using the `AccountRef` aggregate and the
638
835
  * `ApplyAccountRefToExistingTxns` boolean. You need to use the
639
836
  * `ApplyAccountRefToExistingTxns` boolean because the QuickBooks UI
640
837
  * displays a prompt asking whether the change should apply to existing
@@ -1315,6 +1512,76 @@ class QbdIntegration extends BaseIntegration_1.default {
1315
1512
  */
1316
1513
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { PurchaseOrderQueryRq: params }, "PurchaseOrderQueryRs", "PurchaseOrderRet"),
1317
1514
  };
1515
+ salesReceipt = {
1516
+ /**
1517
+ * Adds a sales receipt to QuickBooks.
1518
+ *
1519
+ * Notice that access to sensitive data permissions are not required to use
1520
+ * this request. However, if the application does not have access to
1521
+ * sensitive data permission, then the response returned will not contain
1522
+ * certain sensitive data. For example, even if credit card data is supplied
1523
+ * in the `SalesReceiptAdd` request via the `CreditCardTxnInfo` aggregate,
1524
+ * the response will not contain the corresponding aggregate.
1525
+ *
1526
+ * Sales receipts are used to record point-of-sale payments. Sales receipts
1527
+ * include payments by cash, check, or credit card. Note: If full payment is
1528
+ * not received at the time of the sale, do not use a sales receipt.
1529
+ * Instead, use an invoice transaction and record the partial payment using
1530
+ * a payment item.
1531
+ *
1532
+ * IMPORTANT: In a `SalesReceiptAdd` or `ReceivePaymentAdd` request that
1533
+ * contains credit card transaction data supplied from QBMS transaction
1534
+ * responses, you must specify the payment method (using the
1535
+ * `PaymentMethodRef` aggregate).
1536
+ *
1537
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesReceiptAdd
1538
+ */
1539
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesReceiptAddRq: { SalesReceiptAdd: params } }, "SalesReceiptAddRs", "SalesReceiptRet"),
1540
+ /**
1541
+ * Modifies an existing Sales receipt.
1542
+ *
1543
+ * IMPORTANT: In a `SalesReceiptMod` request that contains credit card
1544
+ * transaction data supplied from QBMS transaction responses, you cannot
1545
+ * change the total amount recorded in the sale.
1546
+ *
1547
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesReceiptMod
1548
+ */
1549
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesReceiptModRq: { SalesReceiptMod: params } }, "SalesReceiptModRs", "SalesReceiptRet"),
1550
+ /**
1551
+ * Queries for the specified sales receipt or set of receipts.
1552
+ *
1553
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesReceiptQuery
1554
+ */
1555
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesReceiptQueryRq: params }, "SalesReceiptQueryRs", "SalesReceiptRet"),
1556
+ };
1557
+ salesRep = {
1558
+ /**
1559
+ * Adds a sales rep.
1560
+ *
1561
+ * The sales representative must be on the Employee, Vendor, or Other Names
1562
+ * list within QuickBooks. Sales representative’s names and initials appear
1563
+ * on the Rep drop-down list on QuickBooks sales forms.
1564
+ *
1565
+ * A `SalesRepRef` refers to a person on the `SalesRep` list. In a request,
1566
+ * if a `SalesRepRef` aggregate includes both `FullName` and `ListID`,
1567
+ * `FullName` will be ignored.
1568
+ *
1569
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesRepAdd
1570
+ */
1571
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesRepAddRq: { SalesRepAdd: params } }, "SalesRepAddRs", "SalesRepRet"),
1572
+ /**
1573
+ * Modifies a sales rep record.
1574
+ *
1575
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesRepMod
1576
+ */
1577
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesRepModRq: { SalesRepMod: params } }, "SalesRepModRs", "SalesRepRet"),
1578
+ /**
1579
+ * Queries for the specified sales rep or set of reps.
1580
+ *
1581
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesRepQuery
1582
+ */
1583
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesRepQueryRq: params }, "SalesRepQueryRs", "SalesRepRet"),
1584
+ };
1318
1585
  timeTracking = {
1319
1586
  /**
1320
1587
  * The time-tracking transactions that are returned in this query include