conductor-node 9.1.3 → 9.2.1

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