conductor-node 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -25,8 +25,8 @@ To send a request to a specific QuickBooks Desktop user, you must also supply th
25
25
  import Conductor from "conductor-node";
26
26
  const conductor = new Conductor({ apiKey: "sk_test_..." });
27
27
 
28
- conductor.qbd
29
- .accountAdd("mock_qbwc_username", {
28
+ conductor.qbd.account
29
+ .add("mock_qbwc_username", {
30
30
  Name: "Test Account",
31
31
  AccountType: "Bank",
32
32
  OpenBalance: "100",
@@ -4,167 +4,197 @@ export interface QBXMLObj {
4
4
  [apiName: string]: object;
5
5
  }
6
6
  export default class ClientQBD extends BaseClient {
7
+ account: {
8
+ /**
9
+ * Perform the same activities as a user does in the QB New Account form,
10
+ * which can be accessed in QB by selecting "Lists" → "Chart of Accounts" →
11
+ * "Accounts" → "New".
12
+ *
13
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/AccountAdd
14
+ */
15
+ add: (qbwcUsername: string, params: qbd.AccountAddRq["AccountAdd"]) => Promise<qbd.AccountAddRs["AccountRet"]>;
16
+ /**
17
+ * Modifies an account.
18
+ *
19
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/AccountMod
20
+ */
21
+ mod: (qbwcUsername: string, params: qbd.AccountModRq["AccountMod"]) => Promise<qbd.AccountModRs["AccountRet"]>;
22
+ /**
23
+ * `AccountQuery` is a list query that returns data for all accounts that
24
+ * match the provided filter criteria. Notice that it returns only data
25
+ * internal to the account itself. It does not return any data about
26
+ * transactions involving the account. It does, however, return the parent
27
+ * account, if there is one. You can search across all accounts or you can
28
+ * specify an account type and search only those.
29
+ *
30
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/AccountQuery
31
+ */
32
+ query: (qbwcUsername: string, params: qbd.AccountQueryRq) => Promise<qbd.AccountQueryRs["AccountRet"]>;
33
+ };
34
+ customer: {
35
+ /**
36
+ * The customer list includes information about the QuickBooks user’s
37
+ * customers and the individual jobs that are being performed for them. A
38
+ * `CustomerRef` aggregate refers to one of the customers (or customer jobs)
39
+ * on the list. In a request, if a `CustomerRef` aggregate includes both
40
+ * `FullName` and `ListID`, `FullName` will be ignored. Special cases to note:
41
+ *
42
+ * - In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to
43
+ * the customer or customer job to which the payment is credited.
44
+ *
45
+ * - In a `TimeTracking` request, CustomerRef refers to the customer or
46
+ * customer job to which this time could be billed. If `IsBillable` is set
47
+ * to true, `CustomerRef` is required in `TimeTrackingAdd`.
48
+ *
49
+ * - In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account,
50
+ * `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef`
51
+ * refers to any other type of account, the `CustomerRef` must refer to a
52
+ * customer.
53
+ *
54
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CustomerAdd
55
+ */
56
+ add: (qbwcUsername: string, params: qbd.CustomerAddRq["CustomerAdd"]) => Promise<qbd.CustomerAddRs["CustomerRet"]>;
57
+ /**
58
+ * Modifies the customer record.
59
+ *
60
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CustomerMod
61
+ */
62
+ mod: (qbwcUsername: string, params: qbd.CustomerModRq["CustomerMod"]) => Promise<qbd.CustomerModRs["CustomerRet"]>;
63
+ /**
64
+ * Returns data for the specified customers.
65
+ *
66
+ * Important: We highly recommend that you use the `IncludeRetElement` tag in
67
+ * your `CustomerQuery` to include any data you want but do NOT include the
68
+ * `ShipAddress` data in the `Response`, unless you need to get the shipping
69
+ * address for a particular customer. Excluding the shipping address data will
70
+ * significantly improve the performance of the `CustomerQuery`.
71
+ *
72
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CustomerQuery
73
+ */
74
+ query: (qbwcUsername: string, params: qbd.CustomerQueryRq) => Promise<qbd.CustomerQueryRs["CustomerRet"]>;
75
+ };
76
+ employee: {
77
+ /**
78
+ * Adds an employee with personal data about the employee as well as certain
79
+ * payroll-related data.
80
+ *
81
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/EmployeeAdd
82
+ */
83
+ add: (qbwcUsername: string, params: qbd.EmployeeAddRq["EmployeeAdd"]) => Promise<qbd.EmployeeAddRs["EmployeeRet"]>;
84
+ /**
85
+ * Modifies an existing employee.
86
+ *
87
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/EmployeeMod
88
+ */
89
+ mod: (qbwcUsername: string, params: qbd.EmployeeModRq["EmployeeMod"]) => Promise<qbd.EmployeeModRs["EmployeeRet"]>;
90
+ /**
91
+ * Returns employee data.
92
+ *
93
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/EmployeeQuery
94
+ */
95
+ query: (qbwcUsername: string, params: qbd.EmployeeQueryRq) => Promise<qbd.EmployeeQueryRs["EmployeeRet"]>;
96
+ };
97
+ journalEntry: {
98
+ /**
99
+ * The debit and credit lines can be intermingled. A credit line can legally
100
+ * come first in the journal entry add.
101
+ *
102
+ * In traditional accounting, transactions are entered into the general
103
+ * journal and categorized exclusively by account. In QuickBooks, most
104
+ * transactions can be categorized either by account or by type (invoice,
105
+ * check, and so on). For a few activities in QuickBooks, you must use the
106
+ * general journal directly, for example for recording depreciation. Notice
107
+ * that you must supply the credit line and a corresponding debit line in the
108
+ * same request. It will not work to supply them in two distinct requests. You
109
+ * can supply as many credit lines and debit lines in one single request as
110
+ * you want so long as the total monetary amount from the credits equals the
111
+ * total monetary amount from the debits in that request.
112
+ *
113
+ * Finally, DO NOT supply negative sign for the monetary amounts. QuickBooks
114
+ * does that for you. If you do supply the negative sign, amounts will add
115
+ * instead of cancel and you’ll get a runtime error.
116
+ *
117
+ * Querying for Condensed Transactions: If you need the query to return
118
+ * condensed transactions, you can do this by using either an `Entity` or
119
+ * `Account` filter in the journal query request. Alternatively, you could use
120
+ * the The generic `TransactionQuery`, which can return condensed
121
+ * transactions.
122
+ *
123
+ * If the transaction is a home currency adjustment, QuickBooks will ignore
124
+ * the `IsAmountsEnteredInHomeCurrency`, `CurrencyRef`, and `ExchangeRate`
125
+ * elements.
126
+ *
127
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/JournalEntryAdd
128
+ */
129
+ add: (qbwcUsername: string, params: qbd.JournalEntryAddRq) => Promise<qbd.JournalEntryAddRs["JournalEntryRet"]>;
130
+ /**
131
+ * Modifies a journal entry.
132
+ *
133
+ * If the transaction is a home currency adjustment, QuickBooks will ignore
134
+ * the `IsAmountsEnteredInHomeCurrency`, `CurrencyRef`, and `ExchangeRate`
135
+ * elements.
136
+ *
137
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/JournalEntryMod
138
+ */
139
+ mod: (qbwcUsername: string, params: qbd.JournalEntryModRq["JournalEntryMod"]) => Promise<qbd.JournalEntryModRs["JournalEntryRet"]>;
140
+ /**
141
+ * In traditional accounting, transactions are entered into the general
142
+ * journal and categorized exclusively by account. In QuickBooks, most
143
+ * transactions can be categorized either by account or by type (invoice,
144
+ * check, and so on). For a few activities in QuickBooks, you must use the
145
+ * general journal directly, for example for recording depreciation. Notice
146
+ * that you must supply the credit line and a corresponding debit line in the
147
+ * same request. It will not work to supply them in two distinct requests. You
148
+ * can supply as many credit lines and debit lines in one single request as
149
+ * you want so long as the total monetary amount from the credits equals the
150
+ * total monetary amount from the debits in that request.
151
+ *
152
+ * Finally, DO NOT supply negative sign for the monetary amounts. QuickBooks
153
+ * does that for you. If you do supply the negative sign, amounts will add
154
+ * instead of cancel and you’ll get a runtime error.
155
+ *
156
+ * Querying for Condensed Transactions: If you need the query to return
157
+ * condensed transactions, you can do this by using either an `Entity` or
158
+ * `Account` filter in the journal query request. Alternatively, you could use
159
+ * the The generic `TransactionQuery`, which can return condensed
160
+ * transactions.
161
+ *
162
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/JournalEntryQuery
163
+ */
164
+ query: (qbwcUsername: string, params: qbd.JournalEntryQueryRq) => Promise<qbd.JournalEntryQueryRs["JournalEntryRet"]>;
165
+ };
166
+ vendor: {
167
+ /**
168
+ * Adds a vendor.
169
+ *
170
+ * A vendor is any person or company from whom a small business owner buys
171
+ * goods and services. (Banks and tax agencies usually are included on the
172
+ * vendor list.) A company’s vendor list contains information such as account
173
+ * balance and contact information about each vendor. A `VendorRef` aggregate
174
+ * refers to one of the vendors on the list. In a request, if a `VendorRef`
175
+ * aggregate includes both `FullName` and `ListID`, `FullName` will be
176
+ * ignored.
177
+ *
178
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VendorAdd
179
+ */
180
+ add: (qbwcUsername: string, params: qbd.VendorAddRq["VendorAdd"]) => Promise<qbd.VendorAddRs["VendorRet"]>;
181
+ /**
182
+ * Modifies a vendor.
183
+ *
184
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VendorMod
185
+ */
186
+ mod: (qbwcUsername: string, params: qbd.VendorModRq["VendorMod"]) => Promise<qbd.VendorModRs["VendorRet"]>;
187
+ /**
188
+ * Queries for the specified vendor or set of vendors.
189
+ *
190
+ * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VendorQuery
191
+ */
192
+ query: (qbwcUsername: string, params: qbd.VendorQueryRq) => Promise<qbd.VendorQueryRs["VendorRet"]>;
193
+ };
7
194
  /**
8
195
  * Send any QBXML request to QuickBooks Desktop.
9
196
  *
10
197
  * Available APIs: https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop
11
198
  */
12
199
  sendRequest(qbwcUsername: string, requestObj: QBXMLObj): Promise<QBXMLObj>;
13
- /**
14
- * Perform the same activities as a user does in the QB New Account form,
15
- * which can be accessed in QB by selecting "Lists" → "Chart of Accounts" →
16
- * "Accounts" → "New".
17
- *
18
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/AccountAdd
19
- */
20
- accountAdd(qbwcUsername: string, params: qbd.AccountAddRq["AccountAdd"]): Promise<qbd.AccountAddRs["AccountRet"]>;
21
- /**
22
- * Modifies an account.
23
- *
24
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/AccountMod
25
- */
26
- accountMod(qbwcUsername: string, params: qbd.AccountModRq["AccountMod"]): Promise<qbd.AccountModRs["AccountRet"]>;
27
- /**
28
- * `AccountQuery` is a list query that returns data for all accounts that
29
- * match the provided filter criteria. Notice that it returns only data
30
- * internal to the account itself. It does not return any data about
31
- * transactions involving the account. It does, however, return the parent
32
- * account, if there is one. You can search across all accounts or you can
33
- * specify an account type and search only those.
34
- *
35
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/AccountQuery
36
- */
37
- accountQuery(qbwcUsername: string, params: qbd.AccountQueryRq): Promise<qbd.AccountQueryRs["AccountRet"]>;
38
- /**
39
- * The customer list includes information about the QuickBooks user’s
40
- * customers and the individual jobs that are being performed for them. A
41
- * `CustomerRef` aggregate refers to one of the customers (or customer jobs)
42
- * on the list. In a request, if a `CustomerRef` aggregate includes both
43
- * `FullName` and `ListID`, `FullName` will be ignored. Special cases to note:
44
- *
45
- * - In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to
46
- * the customer or customer job to which the payment is credited.
47
- *
48
- * - In a `TimeTracking` request, CustomerRef refers to the customer or
49
- * customer job to which this time could be billed. If `IsBillable` is set
50
- * to true, `CustomerRef` is required in `TimeTrackingAdd`.
51
- *
52
- * - In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account,
53
- * `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef`
54
- * refers to any other type of account, the `CustomerRef` must refer to a
55
- * customer.
56
- *
57
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CustomerAdd
58
- */
59
- customerAdd(qbwcUsername: string, params: qbd.CustomerAddRq["CustomerAdd"]): Promise<qbd.CustomerAddRs["CustomerRet"]>;
60
- /**
61
- * Modifies the customer record.
62
- *
63
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CustomerMod
64
- */
65
- customerMod(qbwcUsername: string, params: qbd.CustomerModRq["CustomerMod"]): Promise<qbd.CustomerModRs["CustomerRet"]>;
66
- /**
67
- * Returns data for the specified customers.
68
- *
69
- * Important: We highly recommend that you use the `IncludeRetElement` tag in
70
- * your `CustomerQuery` to include any data you want but do NOT include the
71
- * `ShipAddress` data in the `Response`, unless you need to get the shipping
72
- * address for a particular customer. Excluding the shipping address data will
73
- * significantly improve the performance of the `CustomerQuery`.
74
- *
75
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/CustomerQuery
76
- */
77
- customerQuery(qbwcUsername: string, params: qbd.CustomerQueryRq): Promise<qbd.CustomerQueryRs["CustomerRet"]>;
78
- /**
79
- * Adds an employee with personal data about the employee as well as certain
80
- * payroll-related data.
81
- *
82
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/EmployeeAdd
83
- */
84
- employeeAdd(qbwcUsername: string, params: qbd.EmployeeAddRq["EmployeeAdd"]): Promise<qbd.EmployeeAddRs["EmployeeRet"]>;
85
- /**
86
- * Modifies an existing employee.
87
- *
88
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/EmployeeMod
89
- */
90
- employeeMod(qbwcUsername: string, params: qbd.EmployeeModRq["EmployeeMod"]): Promise<qbd.EmployeeModRs["EmployeeRet"]>;
91
- /**
92
- * Returns employee data.
93
- *
94
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/EmployeeQuery
95
- */
96
- employeeQuery(qbwcUsername: string, params: qbd.EmployeeQueryRq): Promise<qbd.EmployeeQueryRs["EmployeeRet"]>;
97
- /**
98
- * The debit and credit lines can be intermingled. A credit line can legally
99
- * come first in the journal entry add.
100
- *
101
- * In traditional accounting, transactions are entered into the general
102
- * journal and categorized exclusively by account. In QuickBooks, most
103
- * transactions can be categorized either by account or by type (invoice,
104
- * check, and so on). For a few activities in QuickBooks, you must use the
105
- * general journal directly, for example for recording depreciation. Notice
106
- * that you must supply the credit line and a corresponding debit line in the
107
- * same request. It will not work to supply them in two distinct requests. You
108
- * can supply as many credit lines and debit lines in one single request as
109
- * you want so long as the total monetary amount from the credits equals the
110
- * total monetary amount from the debits in that request.
111
- *
112
- * Finally, DO NOT supply negative sign for the monetary amounts. QuickBooks
113
- * does that for you. If you do supply the negative sign, amounts will add
114
- * instead of cancel and you’ll get a runtime error.
115
- *
116
- * Querying for Condensed Transactions: If you need the query to return
117
- * condensed transactions, you can do this by using either an `Entity` or
118
- * `Account` filter in the journal query request. Alternatively, you could use
119
- * the The generic `TransactionQuery`, which can return condensed
120
- * transactions.
121
- *
122
- * If the transaction is a home currency adjustment, QuickBooks will ignore
123
- * the `IsAmountsEnteredInHomeCurrency`, `CurrencyRef`, and `ExchangeRate`
124
- * elements.
125
- *
126
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/JournalEntryAdd
127
- */
128
- journalEntryAdd(qbwcUsername: string, params: qbd.JournalEntryAddRq): Promise<qbd.JournalEntryAddRs["JournalEntryRet"]>;
129
- /**
130
- * Modifies a journal entry.
131
- *
132
- * If the transaction is a home currency adjustment, QuickBooks will ignore
133
- * the `IsAmountsEnteredInHomeCurrency`, `CurrencyRef`, and `ExchangeRate`
134
- * elements.
135
- *
136
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/JournalEntryMod
137
- */
138
- journalEntryMod(qbwcUsername: string, params: qbd.JournalEntryModRq["JournalEntryMod"]): Promise<qbd.JournalEntryModRs["JournalEntryRet"]>;
139
- /**
140
- * In traditional accounting, transactions are entered into the general
141
- * journal and categorized exclusively by account. In QuickBooks, most
142
- * transactions can be categorized either by account or by type (invoice,
143
- * check, and so on). For a few activities in QuickBooks, you must use the
144
- * general journal directly, for example for recording depreciation. Notice
145
- * that you must supply the credit line and a corresponding debit line in the
146
- * same request. It will not work to supply them in two distinct requests. You
147
- * can supply as many credit lines and debit lines in one single request as
148
- * you want so long as the total monetary amount from the credits equals the
149
- * total monetary amount from the debits in that request.
150
- *
151
- * Finally, DO NOT supply negative sign for the monetary amounts. QuickBooks
152
- * does that for you. If you do supply the negative sign, amounts will add
153
- * instead of cancel and you’ll get a runtime error.
154
- *
155
- * Querying for Condensed Transactions: If you need the query to return
156
- * condensed transactions, you can do this by using either an `Entity` or
157
- * `Account` filter in the journal query request. Alternatively, you could use
158
- * the The generic `TransactionQuery`, which can return condensed
159
- * transactions.
160
- *
161
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/JournalEntryQuery
162
- */
163
- journalEntryQuery(qbwcUsername: string, params: qbd.JournalEntryQueryRq): Promise<qbd.JournalEntryQueryRs["JournalEntryRet"]>;
164
- /**
165
- * Queries for the specified vendor or set of vendors.
166
- *
167
- * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/VendorQuery
168
- */
169
- vendorQuery(qbwcUsername: string, params: qbd.VendorQueryRq): Promise<qbd.VendorQueryRs["VendorRet"]>;
170
200
  }