conductor-node 9.6.1 → 9.8.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.6.1",
3
+ "version": "9.8.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",
@@ -551,6 +551,91 @@ export default class QbdIntegration extends BaseIntegration {
551
551
  */
552
552
  query: (integrationConnectionId: string, params: QbdTypes.CreditCardCreditQueryRq) => Promise<NonNullable<QbdTypes.CreditCardCreditQueryRs["CreditCardCreditRet"]>>;
553
553
  };
554
+ creditMemo: {
555
+ /**
556
+ * Adds a credit memo. A credit memo specifies an amount that you owe your
557
+ * customer for some reason, such as overpayment against an invoice,
558
+ * returned merchandise, or for some pre-payment. It reduces a customer’s
559
+ * outstanding balance. The `CreditMemo` doesn’t actually get applied until
560
+ * is referenced in a `ReceivePayment` transaction inside the `SetCredit`
561
+ * aggregate.
562
+ *
563
+ * The `CreditMemo` should not be confused with a `VendorCredit`, which
564
+ * specifies an amount that a vendor owes you.
565
+ *
566
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditMemoAdd
567
+ */
568
+ add: (integrationConnectionId: string, params: QbdTypes.CreditMemoAddRq["CreditMemoAdd"]) => Promise<NonNullable<QbdTypes.CreditMemoAddRs["CreditMemoRet"]>>;
569
+ /**
570
+ * Modifies an existing credit memo.
571
+ *
572
+ * Some fields in a CreditMemoMod request cannot be cleared. If any of the
573
+ * following fields is included in a credit-memo modify request, it must
574
+ * contain a value:
575
+ * - `CustomerRef`
576
+ * - `ARAccountRef`
577
+ * - `TemplateRef`
578
+ * - `TxnDate`
579
+ * - `IsPending`
580
+ * - `DueDate`
581
+ * - `ShipDate`
582
+ * - `ItemSalesTaxRef`
583
+ * - `IsToBePrinted`
584
+ *
585
+ * Within `CreditMemoLineMod` or `CreditMemoLineGroupMod`:
586
+ * - `ItemRef`
587
+ * - `Quantity`
588
+ * - `Rate`
589
+ * - `Amount`
590
+ * - `SalesTaxCodeRef`
591
+ * - `OverrideItemAccountRef`
592
+ *
593
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditMemoMod
594
+ */
595
+ mod: (integrationConnectionId: string, params: QbdTypes.CreditMemoModRq["CreditMemoMod"]) => Promise<NonNullable<QbdTypes.CreditMemoModRs["CreditMemoRet"]>>;
596
+ /**
597
+ * Queries for the specified credit memo or set of credit memos.
598
+ *
599
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditMemoQuery
600
+ */
601
+ query: (integrationConnectionId: string, params: QbdTypes.CreditMemoQueryRq) => Promise<NonNullable<QbdTypes.CreditMemoQueryRs["CreditMemoRet"]>>;
602
+ };
603
+ currency: {
604
+ /**
605
+ * Adds a user-defined currency with the specified name and currency
606
+ * code.
607
+ *
608
+ * Currencies created by users are distinguished from the built-in QB
609
+ * currencies in the `CurrencyRet` object: they are identified as
610
+ * user-defined. User-defined currencies do not get their exchange rates
611
+ * updated automatically by QuickBooks. You’ll always need to manually
612
+ * update the exchange rates. However, other than this, these type of
613
+ * currencies function within QB in the same way as the built-in currencies.
614
+ * If you have not used a user-defined currency in a transaction, you can
615
+ * delete it using `ListDel`. You cannot delete the built-in QB currencies.
616
+ *
617
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CurrencyAdd
618
+ */
619
+ add: (integrationConnectionId: string, params: QbdTypes.CurrencyAddRq["CurrencyAdd"]) => Promise<NonNullable<QbdTypes.CurrencyAddRs["CurrencyRet"]>>;
620
+ /**
621
+ * Modifies an existing currency.
622
+ *
623
+ * This request is used primarily for changing the `IsActive` status of the
624
+ * built-in QuickBooks currencies. However, it can also be used to modify
625
+ * anything in user-defined currencies. When used on a built-in currency,
626
+ * this request cannot modify name or currency code, neither of which can be
627
+ * modified in the UI either.
628
+ *
629
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CurrencyMod
630
+ */
631
+ mod: (integrationConnectionId: string, params: QbdTypes.CurrencyModRq["CurrencyMod"]) => Promise<NonNullable<QbdTypes.CurrencyModRs["CurrencyRet"]>>;
632
+ /**
633
+ * Queries for built-in and user-defined currencies.
634
+ *
635
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CurrencyQuery
636
+ */
637
+ query: (integrationConnectionId: string, params: QbdTypes.CurrencyQueryRq) => Promise<NonNullable<QbdTypes.CurrencyQueryRs["CurrencyRet"]>>;
638
+ };
554
639
  customer: {
555
640
  /**
556
641
  * The customer list includes information about the QuickBooks user’s
@@ -1464,6 +1549,47 @@ export default class QbdIntegration extends BaseIntegration {
1464
1549
  */
1465
1550
  query: (integrationConnectionId: string, params: QbdTypes.JournalEntryQueryRq) => Promise<NonNullable<QbdTypes.JournalEntryQueryRs["JournalEntryRet"]>>;
1466
1551
  };
1552
+ lead: {
1553
+ /**
1554
+ * Adds a lead.
1555
+ *
1556
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/LeadAdd
1557
+ */
1558
+ add: (integrationConnectionId: string, params: QbdTypes.LeadAddRq["LeadAdd"]) => Promise<NonNullable<QbdTypes.LeadAddRs["LeadRet"]>>;
1559
+ /**
1560
+ * Modifies an existing lead.
1561
+ *
1562
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/LeadMod
1563
+ */
1564
+ mod: (integrationConnectionId: string, params: QbdTypes.LeadModRq["LeadMod"]) => Promise<NonNullable<QbdTypes.LeadModRs["LeadRet"]>>;
1565
+ /**
1566
+ * Queries for the specified lead or set of leads.
1567
+ *
1568
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/LeadQuery
1569
+ */
1570
+ query: (integrationConnectionId: string, params: QbdTypes.LeadQueryRq) => Promise<NonNullable<QbdTypes.LeadQueryRs["LeadRet"]>>;
1571
+ };
1572
+ otherName: {
1573
+ /**
1574
+ * Adds an other name. In QuickBooks, the “other names” list contains any
1575
+ * names that do not appear on customer, vendor, or employee lists.
1576
+ *
1577
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/OtherNameAdd
1578
+ */
1579
+ add: (integrationConnectionId: string, params: QbdTypes.OtherNameAddRq["OtherNameAdd"]) => Promise<NonNullable<QbdTypes.OtherNameAddRs["OtherNameRet"]>>;
1580
+ /**
1581
+ * Modifies an existing other name.
1582
+ *
1583
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/OtherNameMod
1584
+ */
1585
+ mod: (integrationConnectionId: string, params: QbdTypes.OtherNameModRq["OtherNameMod"]) => Promise<NonNullable<QbdTypes.OtherNameModRs["OtherNameRet"]>>;
1586
+ /**
1587
+ * Queries for the specified other name or set of other names.
1588
+ *
1589
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/OtherNameQuery
1590
+ */
1591
+ query: (integrationConnectionId: string, params: QbdTypes.OtherNameQueryRq) => Promise<NonNullable<QbdTypes.OtherNameQueryRs["OtherNameRet"]>>;
1592
+ };
1467
1593
  priceLevel: {
1468
1594
  /**
1469
1595
  * Adds a price level. You can use price levels to specify custom pricing
@@ -1832,6 +1958,51 @@ export default class QbdIntegration extends BaseIntegration {
1832
1958
  */
1833
1959
  time: (integrationConnectionId: string, params: QbdTypes.TimeReportQueryRq) => Promise<NonNullable<QbdTypes.TimeReportQueryRs["ReportRet"]>>;
1834
1960
  };
1961
+ salesOrder: {
1962
+ /**
1963
+ * Adds a sales order.
1964
+ *
1965
+ * A sales order tracks inventory that is on back order for a customer. In
1966
+ * QuickBooks, sales orders and invoices use similar fields, and a sales
1967
+ * order can be “converted” into an invoice (by linking the invoice to the
1968
+ * sales order) once the inventory is in stock.
1969
+ *
1970
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesOrderAdd
1971
+ */
1972
+ add: (integrationConnectionId: string, params: QbdTypes.SalesOrderAddRq["SalesOrderAdd"]) => Promise<NonNullable<QbdTypes.SalesOrderAddRs["SalesOrderRet"]>>;
1973
+ /**
1974
+ * Modifies a sales order.
1975
+ *
1976
+ * Some fields in a `SalesOrderMod` request cannot be cleared. If any of the
1977
+ * following fields is included in a sales-order modify request, it must
1978
+ * contain a value:
1979
+ * - `CustomerRef`
1980
+ * - `TemplateRef`
1981
+ * - `TxnDate`
1982
+ * - `DueDate`
1983
+ * - `ShipDate`
1984
+ * - `ItemSalesTaxRef`
1985
+ * - `IsManuallyClosed`
1986
+ * - `IsToBePrinted`
1987
+ *
1988
+ * Within `SalesOrderLineMod` or `SalesOrderLineGroupMod`:
1989
+ * - `ItemRef`
1990
+ * - `Quantity`
1991
+ * - `Rate`
1992
+ * - `Amount`
1993
+ * - `SalesTaxCodeRef`
1994
+ * - `IsManuallyClosed`
1995
+ *
1996
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesOrderMod
1997
+ */
1998
+ mod: (integrationConnectionId: string, params: QbdTypes.SalesOrderModRq["SalesOrderMod"]) => Promise<NonNullable<QbdTypes.SalesOrderModRs["SalesOrderRet"]>>;
1999
+ /**
2000
+ * Queries for the specified sales order or set of sales orders.
2001
+ *
2002
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesOrderQuery
2003
+ */
2004
+ query: (integrationConnectionId: string, params: QbdTypes.SalesOrderQueryRq) => Promise<NonNullable<QbdTypes.SalesOrderQueryRs["SalesOrderRet"]>>;
2005
+ };
1835
2006
  salesReceipt: {
1836
2007
  /**
1837
2008
  * Adds a sales receipt to QuickBooks.
@@ -1902,6 +2073,70 @@ export default class QbdIntegration extends BaseIntegration {
1902
2073
  */
1903
2074
  query: (integrationConnectionId: string, params: QbdTypes.SalesRepQueryRq) => Promise<NonNullable<QbdTypes.SalesRepQueryRs["SalesRepRet"]>>;
1904
2075
  };
2076
+ salesTaxCode: {
2077
+ /**
2078
+ * Adds a sales tax code.
2079
+ *
2080
+ * Each item on a sales form is assigned a sales-tax code that indicates
2081
+ * whether the item is taxable or non-taxable, and why. Two general codes,
2082
+ * which can be modified but not deleted, appear on the sales-tax code list
2083
+ * by default:
2084
+ * - Non-taxable `(Name = NON; Desc = Non-Taxable; IsTaxable = false)`
2085
+ * - Taxable `(Name = TAX; Desc = Taxable; IsTaxable = true)`
2086
+ *
2087
+ * A sales-tax code can be deleted only if it is no longer associated with
2088
+ * any customer, item, or transaction. If the “Do You Charge Sales Tax?”
2089
+ * preference within QuickBooks is set to No, QuickBooks will assign the
2090
+ * default non-taxable sales-tax code to all sales.
2091
+ *
2092
+ * A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a
2093
+ * request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and
2094
+ * `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef`
2095
+ * refers to the sales-tax code that will be used for items related to this
2096
+ * customer. In an ItemInventory message, `SalesTaxCodeRef` refers to the type
2097
+ * of sales tax that will be charged for this item, if it is a taxable item
2098
+ * and if sales tax is set up within QuickBooks.
2099
+ *
2100
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesTaxCodeAdd
2101
+ */
2102
+ add: (integrationConnectionId: string, params: QbdTypes.SalesTaxCodeAddRq["SalesTaxCodeAdd"]) => Promise<NonNullable<QbdTypes.SalesTaxCodeAddRs["SalesTaxCodeRet"]>>;
2103
+ /**
2104
+ * Modifies the specified sales tax code, subject to a few limitations. You
2105
+ * cannot use it to change a tax code’s `IsTaxable` property after the code
2106
+ * has been used in any transaction. For the default QuickBooks taxable
2107
+ * (Tax) and exempt (Non) tax codes, you can’t use this request to change
2108
+ * the `IsTaxable` property at all, even before any transactions.
2109
+ *
2110
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesTaxCodeMod
2111
+ */
2112
+ mod: (integrationConnectionId: string, params: QbdTypes.SalesTaxCodeModRq["SalesTaxCodeMod"]) => Promise<NonNullable<QbdTypes.SalesTaxCodeModRs["SalesTaxCodeRet"]>>;
2113
+ /**
2114
+ * Queries for the specified sales tax code or set of codes.
2115
+ *
2116
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesTaxCodeQuery
2117
+ */
2118
+ query: (integrationConnectionId: string, params: QbdTypes.SalesTaxCodeQueryRq) => Promise<NonNullable<QbdTypes.SalesTaxCodeQueryRs["SalesTaxCodeRet"]>>;
2119
+ };
2120
+ salesTaxPaymentCheck: {
2121
+ /**
2122
+ * Adds a payment made for sales tax owed (for example, to a state sales tax authority).
2123
+ *
2124
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesTaxPaymentCheckAdd
2125
+ */
2126
+ add: (integrationConnectionId: string, params: QbdTypes.SalesTaxPaymentCheckAddRq["SalesTaxPaymentCheckAdd"]) => Promise<NonNullable<QbdTypes.SalesTaxPaymentCheckAddRs["SalesTaxPaymentCheckRet"]>>;
2127
+ /**
2128
+ * Modifies an existing sales tax payment check.
2129
+ *
2130
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesTaxPaymentCheckMod
2131
+ */
2132
+ mod: (integrationConnectionId: string, params: QbdTypes.SalesTaxPaymentCheckModRq["SalesTaxPaymentCheckMod"]) => Promise<NonNullable<QbdTypes.SalesTaxPaymentCheckModRs["SalesTaxPaymentCheckRet"]>>;
2133
+ /**
2134
+ * Queries for payments that have been made for sales tax owed (for example, to a state sales tax authority).
2135
+ *
2136
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesTaxPaymentCheckQuery
2137
+ */
2138
+ query: (integrationConnectionId: string, params: QbdTypes.SalesTaxPaymentCheckQueryRq) => Promise<NonNullable<QbdTypes.SalesTaxPaymentCheckQueryRs["SalesTaxPaymentCheckRet"]>>;
2139
+ };
1905
2140
  timeTracking: {
1906
2141
  /**
1907
2142
  * The time-tracking transactions that are returned in this query include
@@ -1994,6 +2229,45 @@ export default class QbdIntegration extends BaseIntegration {
1994
2229
  */
1995
2230
  query: (integrationConnectionId: string, params: QbdTypes.TransferInventoryQueryRq) => Promise<NonNullable<QbdTypes.TransferInventoryQueryRs["TransferInventoryRet"]>>;
1996
2231
  };
2232
+ vehicle: {
2233
+ /**
2234
+ * Adds a vehicle to the vehicle list for use in `VehicleMileage` transactions. Each vehicle name must be unique.
2235
+ *
2236
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VehicleAdd
2237
+ */
2238
+ add: (integrationConnectionId: string, params: QbdTypes.VehicleAddRq["VehicleAdd"]) => Promise<NonNullable<QbdTypes.VehicleAddRs["VehicleRet"]>>;
2239
+ /**
2240
+ * Modifies a vehicle already in the vehicle list. Any modification,
2241
+ * including changing the name, will cause corresponding changes in existing
2242
+ * `VehicleMileage` transactions and in reports.
2243
+ *
2244
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VehicleMod
2245
+ */
2246
+ mod: (integrationConnectionId: string, params: QbdTypes.VehicleModRq["VehicleMod"]) => Promise<NonNullable<QbdTypes.VehicleModRs["VehicleRet"]>>;
2247
+ /**
2248
+ * Queries for the specified vehicle or set of vehicles.
2249
+ *
2250
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VehicleQuery
2251
+ */
2252
+ query: (integrationConnectionId: string, params: QbdTypes.VehicleQueryRq) => Promise<NonNullable<QbdTypes.VehicleQueryRs["VehicleRet"]>>;
2253
+ };
2254
+ vehicleMileage: {
2255
+ /**
2256
+ * Adds a vehicle mileage transaction. involving the specified vehicle for
2257
+ * the specified total miles or optionally for the QuickBooks calculated
2258
+ * total miles if you supply the odometer start and end.
2259
+ *
2260
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VehicleMileageAdd
2261
+ */
2262
+ add: (integrationConnectionId: string, params: QbdTypes.VehicleMileageAddRq["VehicleMileageAdd"]) => Promise<NonNullable<QbdTypes.VehicleMileageAddRs["VehicleMileageRet"]>>;
2263
+ /**
2264
+ * Queries for the specified vehicle mileage transaction or set of vehicle
2265
+ * mileage transactions.
2266
+ *
2267
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VehicleMileageQuery
2268
+ */
2269
+ query: (integrationConnectionId: string, params: QbdTypes.VehicleMileageQueryRq) => Promise<NonNullable<QbdTypes.VehicleMileageQueryRs["VehicleMileageRet"]>>;
2270
+ };
1997
2271
  vendor: {
1998
2272
  /**
1999
2273
  * Adds a vendor.
@@ -2124,12 +2398,5 @@ export default class QbdIntegration extends BaseIntegration {
2124
2398
  */
2125
2399
  query: (integrationConnectionId: string, params: QbdTypes.WorkersCompCodeQueryRq) => Promise<NonNullable<QbdTypes.WorkersCompCodeQueryRs["WorkersCompCodeRet"]>>;
2126
2400
  };
2127
- /**
2128
- * Send any QBXML request to QuickBooks Desktop.
2129
- *
2130
- * Available APIs:
2131
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop
2132
- */
2133
- sendRequest(integrationConnectionId: string, requestObject: object): Promise<object>;
2134
2401
  private sendRequestWrapper;
2135
2402
  }
@@ -556,6 +556,91 @@ class QbdIntegration extends BaseIntegration_1.default {
556
556
  */
557
557
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CreditCardCreditQueryRq: params }, "CreditCardCreditQueryRs", "CreditCardCreditRet"),
558
558
  };
559
+ creditMemo = {
560
+ /**
561
+ * Adds a credit memo. A credit memo specifies an amount that you owe your
562
+ * customer for some reason, such as overpayment against an invoice,
563
+ * returned merchandise, or for some pre-payment. It reduces a customer’s
564
+ * outstanding balance. The `CreditMemo` doesn’t actually get applied until
565
+ * is referenced in a `ReceivePayment` transaction inside the `SetCredit`
566
+ * aggregate.
567
+ *
568
+ * The `CreditMemo` should not be confused with a `VendorCredit`, which
569
+ * specifies an amount that a vendor owes you.
570
+ *
571
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditMemoAdd
572
+ */
573
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CreditMemoAddRq: { CreditMemoAdd: params } }, "CreditMemoAddRs", "CreditMemoRet"),
574
+ /**
575
+ * Modifies an existing credit memo.
576
+ *
577
+ * Some fields in a CreditMemoMod request cannot be cleared. If any of the
578
+ * following fields is included in a credit-memo modify request, it must
579
+ * contain a value:
580
+ * - `CustomerRef`
581
+ * - `ARAccountRef`
582
+ * - `TemplateRef`
583
+ * - `TxnDate`
584
+ * - `IsPending`
585
+ * - `DueDate`
586
+ * - `ShipDate`
587
+ * - `ItemSalesTaxRef`
588
+ * - `IsToBePrinted`
589
+ *
590
+ * Within `CreditMemoLineMod` or `CreditMemoLineGroupMod`:
591
+ * - `ItemRef`
592
+ * - `Quantity`
593
+ * - `Rate`
594
+ * - `Amount`
595
+ * - `SalesTaxCodeRef`
596
+ * - `OverrideItemAccountRef`
597
+ *
598
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditMemoMod
599
+ */
600
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CreditMemoModRq: { CreditMemoMod: params } }, "CreditMemoModRs", "CreditMemoRet"),
601
+ /**
602
+ * Queries for the specified credit memo or set of credit memos.
603
+ *
604
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CreditMemoQuery
605
+ */
606
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CreditMemoQueryRq: params }, "CreditMemoQueryRs", "CreditMemoRet"),
607
+ };
608
+ currency = {
609
+ /**
610
+ * Adds a user-defined currency with the specified name and currency
611
+ * code.
612
+ *
613
+ * Currencies created by users are distinguished from the built-in QB
614
+ * currencies in the `CurrencyRet` object: they are identified as
615
+ * user-defined. User-defined currencies do not get their exchange rates
616
+ * updated automatically by QuickBooks. You’ll always need to manually
617
+ * update the exchange rates. However, other than this, these type of
618
+ * currencies function within QB in the same way as the built-in currencies.
619
+ * If you have not used a user-defined currency in a transaction, you can
620
+ * delete it using `ListDel`. You cannot delete the built-in QB currencies.
621
+ *
622
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CurrencyAdd
623
+ */
624
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CurrencyAddRq: { CurrencyAdd: params } }, "CurrencyAddRs", "CurrencyRet"),
625
+ /**
626
+ * Modifies an existing currency.
627
+ *
628
+ * This request is used primarily for changing the `IsActive` status of the
629
+ * built-in QuickBooks currencies. However, it can also be used to modify
630
+ * anything in user-defined currencies. When used on a built-in currency,
631
+ * this request cannot modify name or currency code, neither of which can be
632
+ * modified in the UI either.
633
+ *
634
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CurrencyMod
635
+ */
636
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CurrencyModRq: { CurrencyMod: params } }, "CurrencyModRs", "CurrencyRet"),
637
+ /**
638
+ * Queries for built-in and user-defined currencies.
639
+ *
640
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CurrencyQuery
641
+ */
642
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { CurrencyQueryRq: params }, "CurrencyQueryRs", "CurrencyRet"),
643
+ };
559
644
  customer = {
560
645
  /**
561
646
  * The customer list includes information about the QuickBooks user’s
@@ -1469,6 +1554,47 @@ class QbdIntegration extends BaseIntegration_1.default {
1469
1554
  */
1470
1555
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { JournalEntryQueryRq: params }, "JournalEntryQueryRs", "JournalEntryRet"),
1471
1556
  };
1557
+ lead = {
1558
+ /**
1559
+ * Adds a lead.
1560
+ *
1561
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/LeadAdd
1562
+ */
1563
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { LeadAddRq: { LeadAdd: params } }, "LeadAddRs", "LeadRet"),
1564
+ /**
1565
+ * Modifies an existing lead.
1566
+ *
1567
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/LeadMod
1568
+ */
1569
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { LeadModRq: { LeadMod: params } }, "LeadModRs", "LeadRet"),
1570
+ /**
1571
+ * Queries for the specified lead or set of leads.
1572
+ *
1573
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/LeadQuery
1574
+ */
1575
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { LeadQueryRq: params }, "LeadQueryRs", "LeadRet"),
1576
+ };
1577
+ otherName = {
1578
+ /**
1579
+ * Adds an other name. In QuickBooks, the “other names” list contains any
1580
+ * names that do not appear on customer, vendor, or employee lists.
1581
+ *
1582
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/OtherNameAdd
1583
+ */
1584
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { OtherNameAddRq: { OtherNameAdd: params } }, "OtherNameAddRs", "OtherNameRet"),
1585
+ /**
1586
+ * Modifies an existing other name.
1587
+ *
1588
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/OtherNameMod
1589
+ */
1590
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { OtherNameModRq: { OtherNameMod: params } }, "OtherNameModRs", "OtherNameRet"),
1591
+ /**
1592
+ * Queries for the specified other name or set of other names.
1593
+ *
1594
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/OtherNameQuery
1595
+ */
1596
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { OtherNameQueryRq: params }, "OtherNameQueryRs", "OtherNameRet"),
1597
+ };
1472
1598
  priceLevel = {
1473
1599
  /**
1474
1600
  * Adds a price level. You can use price levels to specify custom pricing
@@ -1837,6 +1963,51 @@ class QbdIntegration extends BaseIntegration_1.default {
1837
1963
  */
1838
1964
  time: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { TimeReportQueryRq: params }, "TimeReportQueryRs", "ReportRet"),
1839
1965
  };
1966
+ salesOrder = {
1967
+ /**
1968
+ * Adds a sales order.
1969
+ *
1970
+ * A sales order tracks inventory that is on back order for a customer. In
1971
+ * QuickBooks, sales orders and invoices use similar fields, and a sales
1972
+ * order can be “converted” into an invoice (by linking the invoice to the
1973
+ * sales order) once the inventory is in stock.
1974
+ *
1975
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesOrderAdd
1976
+ */
1977
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesOrderAddRq: { SalesOrderAdd: params } }, "SalesOrderAddRs", "SalesOrderRet"),
1978
+ /**
1979
+ * Modifies a sales order.
1980
+ *
1981
+ * Some fields in a `SalesOrderMod` request cannot be cleared. If any of the
1982
+ * following fields is included in a sales-order modify request, it must
1983
+ * contain a value:
1984
+ * - `CustomerRef`
1985
+ * - `TemplateRef`
1986
+ * - `TxnDate`
1987
+ * - `DueDate`
1988
+ * - `ShipDate`
1989
+ * - `ItemSalesTaxRef`
1990
+ * - `IsManuallyClosed`
1991
+ * - `IsToBePrinted`
1992
+ *
1993
+ * Within `SalesOrderLineMod` or `SalesOrderLineGroupMod`:
1994
+ * - `ItemRef`
1995
+ * - `Quantity`
1996
+ * - `Rate`
1997
+ * - `Amount`
1998
+ * - `SalesTaxCodeRef`
1999
+ * - `IsManuallyClosed`
2000
+ *
2001
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesOrderMod
2002
+ */
2003
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesOrderModRq: { SalesOrderMod: params } }, "SalesOrderModRs", "SalesOrderRet"),
2004
+ /**
2005
+ * Queries for the specified sales order or set of sales orders.
2006
+ *
2007
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesOrderQuery
2008
+ */
2009
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesOrderQueryRq: params }, "SalesOrderQueryRs", "SalesOrderRet"),
2010
+ };
1840
2011
  salesReceipt = {
1841
2012
  /**
1842
2013
  * Adds a sales receipt to QuickBooks.
@@ -1907,6 +2078,70 @@ class QbdIntegration extends BaseIntegration_1.default {
1907
2078
  */
1908
2079
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesRepQueryRq: params }, "SalesRepQueryRs", "SalesRepRet"),
1909
2080
  };
2081
+ salesTaxCode = {
2082
+ /**
2083
+ * Adds a sales tax code.
2084
+ *
2085
+ * Each item on a sales form is assigned a sales-tax code that indicates
2086
+ * whether the item is taxable or non-taxable, and why. Two general codes,
2087
+ * which can be modified but not deleted, appear on the sales-tax code list
2088
+ * by default:
2089
+ * - Non-taxable `(Name = NON; Desc = Non-Taxable; IsTaxable = false)`
2090
+ * - Taxable `(Name = TAX; Desc = Taxable; IsTaxable = true)`
2091
+ *
2092
+ * A sales-tax code can be deleted only if it is no longer associated with
2093
+ * any customer, item, or transaction. If the “Do You Charge Sales Tax?”
2094
+ * preference within QuickBooks is set to No, QuickBooks will assign the
2095
+ * default non-taxable sales-tax code to all sales.
2096
+ *
2097
+ * A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a
2098
+ * request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and
2099
+ * `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef`
2100
+ * refers to the sales-tax code that will be used for items related to this
2101
+ * customer. In an ItemInventory message, `SalesTaxCodeRef` refers to the type
2102
+ * of sales tax that will be charged for this item, if it is a taxable item
2103
+ * and if sales tax is set up within QuickBooks.
2104
+ *
2105
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesTaxCodeAdd
2106
+ */
2107
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesTaxCodeAddRq: { SalesTaxCodeAdd: params } }, "SalesTaxCodeAddRs", "SalesTaxCodeRet"),
2108
+ /**
2109
+ * Modifies the specified sales tax code, subject to a few limitations. You
2110
+ * cannot use it to change a tax code’s `IsTaxable` property after the code
2111
+ * has been used in any transaction. For the default QuickBooks taxable
2112
+ * (Tax) and exempt (Non) tax codes, you can’t use this request to change
2113
+ * the `IsTaxable` property at all, even before any transactions.
2114
+ *
2115
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesTaxCodeMod
2116
+ */
2117
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesTaxCodeModRq: { SalesTaxCodeMod: params } }, "SalesTaxCodeModRs", "SalesTaxCodeRet"),
2118
+ /**
2119
+ * Queries for the specified sales tax code or set of codes.
2120
+ *
2121
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesTaxCodeQuery
2122
+ */
2123
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesTaxCodeQueryRq: params }, "SalesTaxCodeQueryRs", "SalesTaxCodeRet"),
2124
+ };
2125
+ salesTaxPaymentCheck = {
2126
+ /**
2127
+ * Adds a payment made for sales tax owed (for example, to a state sales tax authority).
2128
+ *
2129
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesTaxPaymentCheckAdd
2130
+ */
2131
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesTaxPaymentCheckAddRq: { SalesTaxPaymentCheckAdd: params } }, "SalesTaxPaymentCheckAddRs", "SalesTaxPaymentCheckRet"),
2132
+ /**
2133
+ * Modifies an existing sales tax payment check.
2134
+ *
2135
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesTaxPaymentCheckMod
2136
+ */
2137
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesTaxPaymentCheckModRq: { SalesTaxPaymentCheckMod: params } }, "SalesTaxPaymentCheckModRs", "SalesTaxPaymentCheckRet"),
2138
+ /**
2139
+ * Queries for payments that have been made for sales tax owed (for example, to a state sales tax authority).
2140
+ *
2141
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/SalesTaxPaymentCheckQuery
2142
+ */
2143
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { SalesTaxPaymentCheckQueryRq: params }, "SalesTaxPaymentCheckQueryRs", "SalesTaxPaymentCheckRet"),
2144
+ };
1910
2145
  timeTracking = {
1911
2146
  /**
1912
2147
  * The time-tracking transactions that are returned in this query include
@@ -1999,6 +2234,45 @@ class QbdIntegration extends BaseIntegration_1.default {
1999
2234
  */
2000
2235
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { TransferInventoryQueryRq: params }, "TransferInventoryQueryRs", "TransferInventoryRet"),
2001
2236
  };
2237
+ vehicle = {
2238
+ /**
2239
+ * Adds a vehicle to the vehicle list for use in `VehicleMileage` transactions. Each vehicle name must be unique.
2240
+ *
2241
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VehicleAdd
2242
+ */
2243
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { VehicleAddRq: { VehicleAdd: params } }, "VehicleAddRs", "VehicleRet"),
2244
+ /**
2245
+ * Modifies a vehicle already in the vehicle list. Any modification,
2246
+ * including changing the name, will cause corresponding changes in existing
2247
+ * `VehicleMileage` transactions and in reports.
2248
+ *
2249
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VehicleMod
2250
+ */
2251
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { VehicleModRq: { VehicleMod: params } }, "VehicleModRs", "VehicleRet"),
2252
+ /**
2253
+ * Queries for the specified vehicle or set of vehicles.
2254
+ *
2255
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VehicleQuery
2256
+ */
2257
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { VehicleQueryRq: params }, "VehicleQueryRs", "VehicleRet"),
2258
+ };
2259
+ vehicleMileage = {
2260
+ /**
2261
+ * Adds a vehicle mileage transaction. involving the specified vehicle for
2262
+ * the specified total miles or optionally for the QuickBooks calculated
2263
+ * total miles if you supply the odometer start and end.
2264
+ *
2265
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VehicleMileageAdd
2266
+ */
2267
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { VehicleMileageAddRq: { VehicleMileageAdd: params } }, "VehicleMileageAddRs", "VehicleMileageRet"),
2268
+ /**
2269
+ * Queries for the specified vehicle mileage transaction or set of vehicle
2270
+ * mileage transactions.
2271
+ *
2272
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VehicleMileageQuery
2273
+ */
2274
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { VehicleMileageQueryRq: params }, "VehicleMileageQueryRs", "VehicleMileageRet"),
2275
+ };
2002
2276
  vendor = {
2003
2277
  /**
2004
2278
  * Adds a vendor.
@@ -2129,20 +2403,11 @@ class QbdIntegration extends BaseIntegration_1.default {
2129
2403
  */
2130
2404
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { WorkersCompCodeQueryRq: params }, "WorkersCompCodeQueryRs", "WorkersCompCodeRet"),
2131
2405
  };
2132
- /**
2133
- * Send any QBXML request to QuickBooks Desktop.
2134
- *
2135
- * Available APIs:
2136
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop
2137
- */
2138
- async sendRequest(integrationConnectionId, requestObject) {
2139
- return this.sendIntegrationRequest({
2140
- integrationConnectionId,
2141
- requestObject,
2142
- });
2143
- }
2144
2406
  async sendRequestWrapper(integrationConnectionId, params, responseWrapperKey, responseBodyKey) {
2145
- const response = (await this.sendRequest(integrationConnectionId, params));
2407
+ const response = (await this.sendIntegrationRequest({
2408
+ integrationConnectionId,
2409
+ requestObject: params,
2410
+ }));
2146
2411
  const responseBody = response[responseWrapperKey]?.[responseBodyKey];
2147
2412
  if (responseBody === undefined) {
2148
2413
  throw new error_1.ConductorIntegrationError({