conductor-node 9.1.3 → 9.2.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.
@@ -601,6 +601,132 @@ class QbdIntegration extends BaseIntegration_1.default {
601
601
  */
602
602
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { InvoiceQueryRq: params }, "InvoiceQueryRs", "InvoiceRet"),
603
603
  };
604
+ itemDiscount = {
605
+ /**
606
+ * Adds a discount item. A discount item is a percentage or a fixed amount
607
+ * that will be subtracted from a total or subtotal. Items should be
608
+ * subtotaled (using an `ItemSubtotal` item) before a discount item is
609
+ * applied to them, because a discount only acts on the line that is
610
+ * directly above it. A discount item is different from a discount for early
611
+ * payment, which is represented as part of a `StandardTerms` object or
612
+ * DateDrivenTerms object. Note: When you specify an `ItemDiscount` item in
613
+ * any transaction (by using an `ItemRef`), do not specify a `Quantity` in
614
+ * the transaction. If you do, you will receive an error.
615
+ *
616
+ * Be Sharp WhenUsing Flat Discounts: Flat rate discounts are treated VERY
617
+ * differently vs. percentage discounts. A percentage discount only applies
618
+ * to the line right above it, so all of the tax implications for discounts
619
+ * apply ONLY to that line (Note that the story gets more complicated here
620
+ * for group items, subtotal lines, etc). A flat rate discount applies to
621
+ * EVERY line that is recorded above the discount. Thus, the $10.00 off you
622
+ * see is applied equally to the $100.00 Nontaxable target and the $100.00
623
+ * Taxable target. Thus, the sales tax for the 10.00 discount totals up to
624
+ * -$5.00. Therefore, for the desired behavior, the user must fill out the
625
+ * invoice like this: Item $100.00 Non Item $100.00 Tax Discount $20.00 Tax
626
+ * In this scenario, the $20.00 discount is properly distributed to be half
627
+ * taxed and half not taxed, so the taxable amount for the discount line is
628
+ * only -$10.00. The moral of the story: Non-Taxable Discounts are VERY
629
+ * dangerous. You should almost never use them unless discounts in your
630
+ * state are never applied to sales tax.
631
+ *
632
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemDiscountAdd
633
+ */
634
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemDiscountAddRq: { ItemDiscountAdd: params } }, "ItemDiscountAddRs", "ItemDiscountRet"),
635
+ /**
636
+ * Modifies a discount item. Starting with qbXML spec 7.0, you can modify
637
+ * the account ref, using the AccountRef aggregate and the
638
+ * `ApplyAccountRefToExistingTxns` boolean. You need to use the
639
+ * `ApplyAccountRefToExistingTxns` boolean because the QuickBooks UI
640
+ * displays a prompt asking whether the change should apply to existing
641
+ * transactions or not. Specifying True for the boolean basically dismisses
642
+ * this with a “Yes” answer, allowing your changes to be made and changes
643
+ * any existing transactions that use the item with that `AccountRef`.
644
+ * Specifying “False” means that the mod will not take affect if there are
645
+ * existing transactions. Setting this to “True” should be used with caution
646
+ * and normally only after some user has indicated that they want those
647
+ * changes made to all those existing transactions! If any affected
648
+ * transactions are protected by a closing date and password, the
649
+ * `AccountRef` changes will not be made and so the Mod request will return
650
+ * an error without making the requested Mod.
651
+ *
652
+ * Be Sharp When Using Flat Discounts: Flat rate discounts are treated VERY
653
+ * differently vs. percentage discounts. A percentage discount only applies
654
+ * to the line right above it, so all of the tax implications for discounts
655
+ * apply ONLY to that line (Note that the story gets more complicated here
656
+ * for group items, subtotal lines, etc). A flat rate discount applies to
657
+ * EVERY line that is recorded above the discount. Thus, the $10.00 off you
658
+ * see is applied equally to the $100.00 Nontaxable target and the $100.00
659
+ * Taxable target. Thus, the sales tax for the 10.00 discount totals up to
660
+ * -$5.00. Therefore, for the desired behavior, the user must fill out the
661
+ * invoice like this: Item $100.00 Non Item $100.00 Tax Discount $20.00 Tax
662
+ * In this scenario, the $20.00 discount is properly distributed to be half
663
+ * taxed and half not taxed, so the taxable amount for the discount line is
664
+ * only -$10.00. The moral of the story: Non-Taxable Discounts are VERY
665
+ * dangerous. You should almost never use them unless discounts in your
666
+ * state are never applied to sales tax.
667
+ *
668
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemDiscountMod
669
+ */
670
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemDiscountModRq: { ItemDiscountMod: params } }, "ItemDiscountModRs", "ItemDiscountRet"),
671
+ /**
672
+ * Queries for the specified discount item or set of items.
673
+ *
674
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemDiscountQuery
675
+ */
676
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemDiscountQueryRq: params }, "ItemDiscountQueryRs", "ItemDiscountRet"),
677
+ };
678
+ itemFixedAsset = {
679
+ /**
680
+ * Adds a fixed-asset item. Fixed-asset items represent assets that will
681
+ * benefit a business for longer than one year. The purchase price of these
682
+ * fixed assets is typically expensed over a period of years, rather than in
683
+ * the year the purchase was made.
684
+ *
685
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemFixedAssetAdd
686
+ */
687
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemFixedAssetAddRq: { ItemFixedAssetAdd: params } }, "ItemFixedAssetAddRs", "ItemFixedAssetRet"),
688
+ /**
689
+ * Modifies a fixed asset item. Fixed-asset items represent assets that will
690
+ * benefit a business for longer than one year. The purchase price of these
691
+ * fixed assets is typically expensed over a period of years, rather than in
692
+ * the year the purchase was made.
693
+ *
694
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemFixedAssetMod
695
+ */
696
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemFixedAssetModRq: { ItemFixedAssetMod: params } }, "ItemFixedAssetModRs", "ItemFixedAssetRet"),
697
+ /**
698
+ * Queries for the specified fixed-asset item or set of fixed asset items.
699
+ *
700
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemFixedAssetQuery
701
+ */
702
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemFixedAssetQueryRq: params }, "ItemFixedAssetQueryRs", "ItemFixedAssetRet"),
703
+ };
704
+ itemGroup = {
705
+ /**
706
+ * Adds an item group. `ItemGroup` objects represent items that are grouped
707
+ * together for fast entry, and an `ItemGroupRef` aggregate refers to one of
708
+ * these item groups. In a request, if an `ItemGroupRef` aggregate includes
709
+ * both `FullName` and `ListID`, `FullName` will be ignored. You can use an
710
+ * `ItemGroupQuery` request to get information about all the item groups
711
+ * that are set up in the QuickBooks file.
712
+ *
713
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemGroupAdd
714
+ */
715
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemGroupAddRq: { ItemGroupAdd: params } }, "ItemGroupAddRs", "ItemGroupRet"),
716
+ /**
717
+ * Modifies an item group.
718
+ *
719
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemGroupMod
720
+ */
721
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemGroupModRq: { ItemGroupMod: params } }, "ItemGroupModRs", "ItemGroupRet"),
722
+ /**
723
+ * An `ItemGroupQuery` request will return information about all the item
724
+ * groups that are set up in the QuickBooks file.
725
+ *
726
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/itemgroupquery
727
+ */
728
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemGroupQueryRq: params }, "ItemGroupQueryRs", "ItemGroupRet"),
729
+ };
604
730
  itemInventory = {
605
731
  /**
606
732
  * Adds an inventory item. An inventory item is any merchandise or part that
@@ -648,6 +774,46 @@ class QbdIntegration extends BaseIntegration_1.default {
648
774
  */
649
775
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemInventoryQueryRq: params }, "ItemInventoryQueryRs", "ItemInventoryRet"),
650
776
  };
777
+ itemInventoryAssembly = {
778
+ /**
779
+ * Adds an inventory assembly item, which is an item that is assembled or
780
+ * manufactured from other inventory items. The items and/or assemblies that
781
+ * make up the assembly are called components.
782
+ *
783
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemInventoryAssemblyAdd
784
+ */
785
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemInventoryAssemblyAddRq: { ItemInventoryAssemblyAdd: params } }, "ItemInventoryAssemblyAddRs", "ItemInventoryAssemblyRet"),
786
+ /**
787
+ * Modifies an inventory assembly item. If you are adding components to the
788
+ * assembly, remember that the component items and/or assemblies that make
789
+ * up the assembly are limited in number.
790
+ *
791
+ * You can modify the income account ref, using the `IncomeAccountRef`
792
+ * aggregate and the `ApplyIncomeAccountRefToExistingTxns` boolean. You need
793
+ * to use the `ApplyIncomeAccountRefToExistingTxns` boolean because the
794
+ * QuickBooks UI displays a prompt asking whether the change should apply to
795
+ * existing transactions or not. Specifying `True` for the boolean basically
796
+ * dismisses this with a “Yes” answer, allowing your changes to be made and
797
+ * changes any existing transactions that use the item with that AccountRef.
798
+ * Specifying “False” means that the mod will not take affect if there are
799
+ * existing transactions. Setting this to “True” should be used with caution
800
+ * and normally only after some user has indicated that they want those
801
+ * changes made to all those existing transactions! If any affected
802
+ * transactions are protected by a closing date and password, the
803
+ * `IncomeAccountRef` changes will not be made and so the Mod request will
804
+ * return an error without making the requested Mod.
805
+ *
806
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemInventoryAssemblyMod
807
+ */
808
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemInventoryAssemblyModRq: { ItemInventoryAssemblyMod: params } }, "ItemInventoryAssemblyModRs", "ItemInventoryAssemblyRet"),
809
+ /**
810
+ * Queries for the specified inventory assembly item or set of assembly
811
+ * items.
812
+ *
813
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemInventoryAssemblyQuery
814
+ */
815
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemInventoryAssemblyQueryRq: params }, "ItemInventoryAssemblyQueryRs", "ItemInventoryAssemblyRet"),
816
+ };
651
817
  itemNonInventory = {
652
818
  /**
653
819
  * Adds a non-inventory item, which is any material or part that a business
@@ -698,6 +864,216 @@ class QbdIntegration extends BaseIntegration_1.default {
698
864
  */
699
865
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemNonInventoryQueryRq: params }, "ItemNonInventoryQueryRs", "ItemNonInventoryRet"),
700
866
  };
867
+ itemOtherCharge = {
868
+ /**
869
+ * Adds an other charge item, which are miscellaneous charges that do not
870
+ * fall into the categories of service, labor, materials, or parts. Examples
871
+ * include delivery charges, setup fees, and service charges.
872
+ *
873
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemOtherChargeAdd
874
+ */
875
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemOtherChargeAddRq: { ItemOtherChargeAdd: params } }, "ItemOtherChargeAddRs", "ItemOtherChargeRet"),
876
+ /**
877
+ * Modifies an other charge item.
878
+ *
879
+ * About `SalesOrPurchaseMod` versus `SalesAndPurchaseMod` in an
880
+ * `ItemOtherChargeMod` request: You cannot change the reimbursable status
881
+ * of an other-charge item through the SDK. For example, if an other-charge
882
+ * item is marked as non-reimbursable in QuickBooks, you cannot send a
883
+ * modify request that includes a `SalesAndPurchaseMod` aggregate.
884
+ * Similarly, if you send an `ItemOtherChargeAdd` request that includes a
885
+ * SalesOrPurchase aggregate, you cannot later modify that item using a
886
+ * `SalesAndPurchaseMod` aggregate.
887
+ *
888
+ * You can modify the various account references using the appropriate
889
+ * account reference aggregate and the matching Apply Account
890
+ * `RefToExistingTxns` boolean. You need to use the boolean when you change
891
+ * an account ref because the QuickBooks UI displays a prompt asking whether
892
+ * the change should apply to existing transactions or not. Specifying
893
+ * `True` for the boolean basically dismisses this with a “Yes” answer,
894
+ * allowing your changes to be made and changes any existing transactions
895
+ * that use the item with that AccountRef. Specifying “False” means that the
896
+ * mod will not take affect if there are existing transactions. Setting this
897
+ * to “True” should be used with caution and normally only after some user
898
+ * has indicated that they want those changes made to all those existing
899
+ * transactions! If any affected transactions are protected by a closing
900
+ * date and password, the AccountRef changes will not be made and so the Mod
901
+ * request will return an error without making the requested Mod.
902
+ *
903
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemOtherChargeMod
904
+ */
905
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemOtherChargeModRq: { ItemOtherChargeMod: params } }, "ItemOtherChargeModRs", "ItemOtherChargeRet"),
906
+ /**
907
+ * Queries for the specified other charge item or set of items.
908
+ *
909
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemOtherChargeQuery
910
+ */
911
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemOtherChargeQueryRq: params }, "ItemOtherChargeQueryRs", "ItemOtherChargeRet"),
912
+ };
913
+ itemPayment = {
914
+ /**
915
+ * Adds an item payment or set of payments. You can use this request to
916
+ * create a payment for a customer or vendor.
917
+ *
918
+ * For an `ItemPaymentAdd` request, you can “set” the “Group with
919
+ * undeposited funds” radio button in QuickBooks either by not specifying
920
+ * `DepositToAccountRef` at all, or by specifying the special
921
+ * UndepositedFunds account for the `DepositToAccountRef`.
922
+ *
923
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemPaymentAdd
924
+ */
925
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemPaymentAddRq: { ItemPaymentAdd: params } }, "ItemPaymentAddRs", "ItemPaymentRet"),
926
+ /**
927
+ * Modifies an item payment.
928
+ *
929
+ * For an `ItemPaymentMod` request, you can “set” the “Group with
930
+ * undeposited funds” radio button in QuickBooks by either attempting to
931
+ * clear the DepositToAccountRef, or by specifying the account whose
932
+ * `SpecialAccountType` is `UndepositedFunds` for the `DepositToAccountRef`.
933
+ *
934
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemPaymentMod
935
+ */
936
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemPaymentModRq: { ItemPaymentMod: params } }, "ItemPaymentModRs", "ItemPaymentRet"),
937
+ /**
938
+ * Queries for the specified item payment or set of payments.
939
+ *
940
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemPaymentQuery
941
+ */
942
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemPaymentQueryRq: params }, "ItemPaymentQueryRs", "ItemPaymentRet"),
943
+ };
944
+ itemReceipt = {
945
+ /**
946
+ * Adds an item receipt transaction, which is a transaction entered in
947
+ * QuickBooks when a shipment is received from a vendor. If you use
948
+ * `PurchaseOrders` to order from the vendor, you can link the item receipt
949
+ * to purchase order to receive the items against the purchase orders to
950
+ * automatically update (and eventually close) the purchase orders. This
951
+ * linking also saves you having to re-create line items as they are pulled
952
+ * in automatically from the purchase order. You can do this linking only in
953
+ * the item receipt add, not in the mod.
954
+ *
955
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemReceiptAdd
956
+ */
957
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemReceiptAddRq: { ItemReceiptAdd: params } }, "ItemReceiptAddRs", "ItemReceiptRet"),
958
+ /**
959
+ * Modifies an existing item receipt.
960
+ *
961
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemReceiptMod
962
+ */
963
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemReceiptModRq: { ItemReceiptMod: params } }, "ItemReceiptModRs", "ItemReceiptRet"),
964
+ /**
965
+ * An item receipt transaction is entered in QuickBooks when a shipment is
966
+ * received from a vendor.
967
+ *
968
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemReceiptQuery
969
+ */
970
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemReceiptQueryRq: params }, "ItemReceiptQueryRs", "ItemReceiptRet"),
971
+ };
972
+ itemSalesTax = {
973
+ /**
974
+ * Adds a sales-tax item, which is an item used to calculate a single sales
975
+ * tax that is collected at a specified rate and paid to a single agency.
976
+ * (Compare with the `ItemSalesTaxGroupAdd` message.)
977
+ *
978
+ * An `ItemSalesTaxRef` aggregate refers to an item on this list. In a
979
+ * request, if an `ItemSalesTaxRef` aggregate includes both `FullName` and
980
+ * `ListID`, `FullName` will be ignored. Taxes can be reflected in
981
+ * transaction line items.
982
+ *
983
+ * The following information refers to invoices specifically, but it also
984
+ * applies to sales receipts. Generally it's best to assign a tax item or
985
+ * tax group item to an invoice and allow QuickBooks to apply the same tax
986
+ * to all taxable items on the invoice. However in some situations multiple
987
+ * tax combinations are required, so this method doesn’t work. In this case
988
+ * one must use techniques to apply the taxes in the invoice itself as line
989
+ * items. Using lines to apply taxes isn’t always straight forward. When
990
+ * applying taxes as line items, only single tax items can be used, tax
991
+ * groups can only be used for the entire invoice. If you have multiple
992
+ * taxes which apply to all taxable items, and one or more other taxes that
993
+ * only apply to some of the items on an invoice its better to use a tax
994
+ * group which applies to the entire invoice for the taxes which applies to
995
+ * all taxable items and then apply the other taxes in the invoice itself.
996
+ * One applies a tax or tax group to an entire invoice by using the
997
+ * `ItemSalesTaxRef` aggregate. One can use subtotals to apply a single tax
998
+ * line to multiple items in an invoice, but the tax is only applied
999
+ * automatically for the first tax line after the subtotal line. Any other
1000
+ * tax lines which need to be applied to the subtotal line must supply their
1001
+ * own amount. If you don’t supply an amount the amount comes out as zero
1002
+ * and the tax line is useless. When one does supply an amount, the amount
1003
+ * of tax on the subtotal also shows up in the rate column for that tax
1004
+ * line. There isn’t any way for the rate to show up as anything other than
1005
+ * the amount of the tax. If you have a complicated tax situation where no
1006
+ * single tax applies to all taxable items on the invoice, you must choose a
1007
+ * zero percent tax to apply for the entire invoice. It is recommended to
1008
+ * name such a tax item “Tax Calculated On Invoice” so that it’s clear that
1009
+ * the tax is not being applied by QuickBooks on the entire invoice.
1010
+ *
1011
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemSalesTaxAdd
1012
+ */
1013
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemSalesTaxAddRq: { ItemSalesTaxAdd: params } }, "ItemSalesTaxAddRs", "ItemSalesTaxRet"),
1014
+ /**
1015
+ * Modifies an existing sales-tax item.
1016
+ *
1017
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemSalesTaxMod
1018
+ */
1019
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemSalesTaxModRq: { ItemSalesTaxMod: params } }, "ItemSalesTaxModRs", "ItemSalesTaxRet"),
1020
+ /**
1021
+ * Queries for the specified sales-tax item or set of items.
1022
+ */
1023
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemSalesTaxQueryRq: params }, "ItemSalesTaxQueryRs", "ItemSalesTaxRet"),
1024
+ };
1025
+ itemSalesTaxGroup = {
1026
+ /**
1027
+ * Adds a sales-tax group item, which is an item used for calculating two or
1028
+ * more sales taxes grouped together and applied to the same sale. For
1029
+ * example, local and state taxes could be tracked separately but applied to
1030
+ * a sale as one tax. (Compare with the `ItemSalesTaxAdd` message.)
1031
+ *
1032
+ * Taxes can be reflected in transaction line items The following
1033
+ * information refers to invoices specifically, but it also applies to sales
1034
+ * receipts. Generally its best to assign a tax item or tax group item to an
1035
+ * invoice and allow QuickBooks to apply the same tax to all taxable items
1036
+ * on the invoice. However in some situations multiple tax combinations are
1037
+ * required, so this method doesn’t work. In this case one must use
1038
+ * techniques to apply the taxes in the invoice itself as line items. Using
1039
+ * lines to apply taxes isn’t always straight forward. When applying taxes
1040
+ * as line items, only single tax items can be used, tax groups can only be
1041
+ * used for the entire invoice. If you have multiple taxes which apply to
1042
+ * all taxable items, and one or more other taxes that only apply to some of
1043
+ * the items on an invoice its better to use a tax group which applies to
1044
+ * the entire invoice for the taxes which applies to all taxable items and
1045
+ * then apply the other taxes in the invoice itself. One applies a tax or
1046
+ * tax group to an entire invoice by using the `ItemSalesTaxRef` aggregate.
1047
+ * One can use subtotals to apply a single tax line to multiple items in an
1048
+ * invoice, but the tax is only applied automatically for the first tax line
1049
+ * after the subtotal line. Any other tax lines which need to be applied to
1050
+ * the subtotal line must supply their own amount. If you don’t supply an
1051
+ * amount the amount comes out as zero and the tax line is useless. When one
1052
+ * does supply an amount, the amount of tax on the subtotal also shows up in
1053
+ * the rate column for that tax line. There isn’t any way for the rate to
1054
+ * show up as anything other than the amount of the tax. If you have a
1055
+ * complicated tax situation where no single tax applies to all taxable
1056
+ * items on the invoice, you must choose a zero percent tax to apply for the
1057
+ * entire invoice. It is recommended to name such a tax item “Tax Calculated
1058
+ * On Invoice” so that it’s clear that the tax is not being applied by
1059
+ * QuickBooks on the entire invoice.
1060
+ *
1061
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemSalesTaxGroupAdd
1062
+ */
1063
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemSalesTaxGroupAddRq: { ItemSalesTaxGroupAdd: params } }, "ItemSalesTaxGroupAddRs", "ItemSalesTaxGroupRet"),
1064
+ /**
1065
+ * Modifies an existing sales-tax group item.
1066
+ *
1067
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemSalesTaxGroupMod
1068
+ */
1069
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemSalesTaxGroupModRq: { ItemSalesTaxGroupMod: params } }, "ItemSalesTaxGroupModRs", "ItemSalesTaxGroupRet"),
1070
+ /**
1071
+ * Queries for the specified sales-tax group item or set of group items.
1072
+ *
1073
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemSalesTaxGroupQuery
1074
+ */
1075
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemSalesTaxGroupQueryRq: params }, "ItemSalesTaxGroupQueryRs", "ItemSalesTaxGroupRet"),
1076
+ };
701
1077
  itemService = {
702
1078
  /**
703
1079
  * Adds a service item, which is an item that refers to services that a
@@ -753,6 +1129,48 @@ class QbdIntegration extends BaseIntegration_1.default {
753
1129
  */
754
1130
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemServiceQueryRq: params }, "ItemServiceQueryRs", "ItemServiceRet"),
755
1131
  };
1132
+ itemSubtotal = {
1133
+ /**
1134
+ * Adds a subtotal item. On a sales form, a subtotal item will add up the
1135
+ * amounts of the item lines above it, up to the previous subtotal. Items
1136
+ * must be subtotaled before a discount is applied (using `ItemDiscount`),
1137
+ * because a discount applies only to the line that is directly above it.
1138
+ *
1139
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemSubtotalAdd
1140
+ */
1141
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemSubtotalAddRq: { ItemSubtotalAdd: params } }, "ItemSubtotalAddRs", "ItemSubtotalRet"),
1142
+ /**
1143
+ * Modifies an existing subtotal item.
1144
+ *
1145
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemSubtotalMod
1146
+ */
1147
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemSubtotalModRq: { ItemSubtotalMod: params } }, "ItemSubtotalModRs", "ItemSubtotalRet"),
1148
+ /**
1149
+ * Queries for the specified subtotal item or set of items.
1150
+ *
1151
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/ItemSubtotalQuery
1152
+ */
1153
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { ItemSubtotalQueryRq: params }, "ItemSubtotalQueryRs", "ItemSubtotalRet"),
1154
+ };
1155
+ jobType = {
1156
+ /**
1157
+ * Adds a job type. A job type can be used to separate jobs into any
1158
+ * categories that are meaningful to the business.
1159
+ *
1160
+ * A `JobTypeRef` aggregate refers to a job type on the `JobType` list. In a
1161
+ * request, if a `JobTypeRef` aggregate includes both `FullName` and
1162
+ * `ListID`, `FullName` will be ignored.
1163
+ *
1164
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/JobTypeAdd
1165
+ */
1166
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { JobTypeAddRq: { JobTypeAdd: params } }, "JobTypeAddRs", "JobTypeRet"),
1167
+ /**
1168
+ * Queries for the specified job type or set of job types.
1169
+ *
1170
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/JobTypeQuery
1171
+ */
1172
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { JobTypeQueryRq: params }, "JobTypeQueryRs", "JobTypeRet"),
1173
+ };
756
1174
  journalEntry = {
757
1175
  /**
758
1176
  * The debit and credit lines can be intermingled. A credit line can legally
@@ -822,56 +1240,39 @@ class QbdIntegration extends BaseIntegration_1.default {
822
1240
  */
823
1241
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { JournalEntryQueryRq: params }, "JournalEntryQueryRs", "JournalEntryRet"),
824
1242
  };
825
- timeTracking = {
1243
+ priceLevel = {
826
1244
  /**
827
- * The time-tracking transactions that are returned in this query include
828
- * time tracking information that was entered into QuickBooks manually or
829
- * gathered using the QuickBooks “Timer” or “Stopwatch.” Note that the
830
- * QuickBooks Timer application can run on its own without QuickBooks, but
831
- * the QuickBooks SDK cannot access the Timer data directly. The Timer data
832
- * must be imported into QuickBooks before it is accessible via the SDK.)
833
- *
834
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/TimeTrackingQuery
1245
+ * Adds a price level. You can use price levels to specify custom pricing
1246
+ * for specific customers.
1247
+ *
1248
+ * Once you create a price level for a customer, QuickBooks will
1249
+ * automatically use the custom price in new invoices, sales receipts, sales
1250
+ * orders or credit memos for that customer. You can override this automatic
1251
+ * feature, however, when you create the invoices, sales receipts, etc.) The
1252
+ * user can now specify a price level on line items in the following
1253
+ * supported sales transactions: invoices, sales receipts, credit memos, and
1254
+ * sales orders. Notice that the response data for the affected sales
1255
+ * transaction does not list the price level that was used. The response
1256
+ * simply lists the Rate for the item, which was set using the price level.
1257
+ * The `CurrencyRef` should only be used with “per item” price levels.
1258
+ *
1259
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/PriceLevelAdd
835
1260
  */
836
- add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { TimeTrackingAddRq: { TimeTrackingAdd: params } }, "TimeTrackingAddRs", "TimeTrackingRet"),
1261
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { PriceLevelAddRq: { PriceLevelAdd: params } }, "PriceLevelAddRs", "PriceLevelRet"),
837
1262
  /**
838
- * Modifies a time tracking transaction.
1263
+ * Modifies a price level.
839
1264
  *
840
- * This allows you to modify time entry and mark time entered as billed.
841
- * Applications using qbXML spec levels less than 6.0 aren’t able to Modify
842
- * a time tracking transaction. However, those applications can achieve the
843
- * results of a modify operation by deleting the time tracking transaction
844
- * (using `TxnDelRq`) and then re-adding it with the desired values. You can
845
- * do this only if no other downstream transactions have used that
846
- * particular time tracking transaction. (Otherwise, the `TxnDel` request
847
- * will fail.) This differs slightly from the UI, which allows these
848
- * transactions to be edited directly. However, even in the UI, modifying a
849
- * time tracking transaction does not result in changes to any downstream
850
- * transactions that use it. There is no link between an invoice and the
851
- * time entries. However when you do the invoicing from QuickBooks,
852
- * QuickBooks does mark the time entries as “billed.” If you don’t record
853
- * the time entries as billed properly, then you get into a user workflow
854
- * issue where every time the user creates an invoice for a customer, QB
855
- * pops up a dialog asking if they want to bill the un-billed time (which
856
- * you already billed from your app). That’s why beginning with QB2007 and
857
- * qbXML spec 6.0 we added support for the “BillableStatus” field *and* add
858
- * `TimeTrackingMod` so that you can mark the time as billed when you create
859
- * an invoice for it.
1265
+ * The `CurrencyRef` should only be used with “per item” price levels.
860
1266
  *
861
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/TimeTrackingMod
1267
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/PriceLevelMod
862
1268
  */
863
- mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { TimeTrackingModRq: { TimeTrackingMod: params } }, "TimeTrackingModRs", "TimeTrackingRet"),
1269
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { PriceLevelModRq: { PriceLevelMod: params } }, "PriceLevelModRs", "PriceLevelRet"),
864
1270
  /**
865
- * The time-tracking transactions that are returned in this query include
866
- * time tracking information that was entered into QuickBooks manually or
867
- * gathered using the QuickBooks “Timer” or “Stopwatch.” Note that the
868
- * QuickBooks Timer application can run on its own without QuickBooks, but
869
- * the QuickBooks SDK cannot access the Timer data directly. The Timer data
870
- * must be imported into QuickBooks before it is accessible via the SDK.)
1271
+ * Queries for the specified price level or set of price levels.
871
1272
  *
872
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/TimeTrackingQuery
1273
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/PriceLevelQuery
873
1274
  */
874
- query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { TimeTrackingQueryRq: params }, "TimeTrackingQueryRs", "TimeTrackingRet"),
1275
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { PriceLevelQueryRq: params }, "PriceLevelQueryRs", "PriceLevelRet"),
875
1276
  };
876
1277
  purchaseOrder = {
877
1278
  /**
@@ -914,6 +1315,57 @@ class QbdIntegration extends BaseIntegration_1.default {
914
1315
  */
915
1316
  query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { PurchaseOrderQueryRq: params }, "PurchaseOrderQueryRs", "PurchaseOrderRet"),
916
1317
  };
1318
+ timeTracking = {
1319
+ /**
1320
+ * The time-tracking transactions that are returned in this query include
1321
+ * time tracking information that was entered into QuickBooks manually or
1322
+ * gathered using the QuickBooks “Timer” or “Stopwatch.” Note that the
1323
+ * QuickBooks Timer application can run on its own without QuickBooks, but
1324
+ * the QuickBooks SDK cannot access the Timer data directly. The Timer data
1325
+ * must be imported into QuickBooks before it is accessible via the SDK.)
1326
+ *
1327
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/TimeTrackingQuery
1328
+ */
1329
+ add: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { TimeTrackingAddRq: { TimeTrackingAdd: params } }, "TimeTrackingAddRs", "TimeTrackingRet"),
1330
+ /**
1331
+ * Modifies a time tracking transaction.
1332
+ *
1333
+ * This allows you to modify time entry and mark time entered as billed.
1334
+ * Applications using qbXML spec levels less than 6.0 aren’t able to Modify
1335
+ * a time tracking transaction. However, those applications can achieve the
1336
+ * results of a modify operation by deleting the time tracking transaction
1337
+ * (using `TxnDelRq`) and then re-adding it with the desired values. You can
1338
+ * do this only if no other downstream transactions have used that
1339
+ * particular time tracking transaction. (Otherwise, the `TxnDel` request
1340
+ * will fail.) This differs slightly from the UI, which allows these
1341
+ * transactions to be edited directly. However, even in the UI, modifying a
1342
+ * time tracking transaction does not result in changes to any downstream
1343
+ * transactions that use it. There is no link between an invoice and the
1344
+ * time entries. However when you do the invoicing from QuickBooks,
1345
+ * QuickBooks does mark the time entries as “billed.” If you don’t record
1346
+ * the time entries as billed properly, then you get into a user workflow
1347
+ * issue where every time the user creates an invoice for a customer, QB
1348
+ * pops up a dialog asking if they want to bill the un-billed time (which
1349
+ * you already billed from your app). That’s why beginning with QB2007 and
1350
+ * qbXML spec 6.0 we added support for the “BillableStatus” field *and* add
1351
+ * `TimeTrackingMod` so that you can mark the time as billed when you create
1352
+ * an invoice for it.
1353
+ *
1354
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/TimeTrackingMod
1355
+ */
1356
+ mod: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { TimeTrackingModRq: { TimeTrackingMod: params } }, "TimeTrackingModRs", "TimeTrackingRet"),
1357
+ /**
1358
+ * The time-tracking transactions that are returned in this query include
1359
+ * time tracking information that was entered into QuickBooks manually or
1360
+ * gathered using the QuickBooks “Timer” or “Stopwatch.” Note that the
1361
+ * QuickBooks Timer application can run on its own without QuickBooks, but
1362
+ * the QuickBooks SDK cannot access the Timer data directly. The Timer data
1363
+ * must be imported into QuickBooks before it is accessible via the SDK.)
1364
+ *
1365
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/TimeTrackingQuery
1366
+ */
1367
+ query: async (integrationConnectionId, params) => this.sendRequestWrapper(integrationConnectionId, { TimeTrackingQueryRq: params }, "TimeTrackingQueryRs", "TimeTrackingRet"),
1368
+ };
917
1369
  vendor = {
918
1370
  /**
919
1371
  * Adds a vendor.