0

Update a rate table

by
Published Oct 17, 2025

Updates an existing rate table by setting field values. Any fields not provided remain unchanged.

Script sage_intacct Verified

The script

Submitted by hugo697 Bun
Verified 235 days ago
1
//native
2
type SageIntacct = {
3
	token: string
4
}
5
/**
6
 * Update a rate table
7
 * Updates an existing rate table by setting field values. Any fields not provided remain unchanged.
8
 */
9
export async function main(
10
	auth: SageIntacct,
11
	key: string,
12
	body: {
13
		key?: string
14
		id?: string
15
		name?: string
16
		description?: string
17
		location?: { key?: string; id?: string; name?: string; href?: string }
18
		audit?: {
19
			createdDateTime?: string
20
			modifiedDateTime?: string
21
			createdBy?: string
22
			modifiedBy?: string
23
		}
24
		status?: 'active' | 'inactive'
25
		entity?: { key?: string; id?: string; name?: string; href?: string }
26
		timesheetLines?: {
27
			key?: string
28
			id?: string
29
			rateTable?: { key?: string; id?: string; name?: string; href?: string }
30
			href?: string
31
			lineNumber?: number
32
			description?: string
33
			startDate?: string
34
			markupPercent?: string
35
			laborRate?: string
36
			accumulationType?: { key?: string; id?: string; href?: string }
37
			standardCostType?: {
38
				key?: string
39
				id?: string
40
				name?: string
41
				href?: string
42
			}
43
			standardTask?: {
44
				key?: string
45
				id?: string
46
				name?: string
47
				href?: string
48
			}
49
			employeePosition?: {
50
				key?: string
51
				id?: string
52
				name?: string
53
				href?: string
54
			}
55
			laborClass?: { key?: string; id?: string; name?: string; href?: string }
56
			laborShift?: { key?: string; id?: string; name?: string; href?: string }
57
			laborUnion?: { key?: string; id?: string; name?: string; href?: string }
58
			timeType?: { key?: string; id?: string; name?: string; href?: string }
59
			dimensions?: {
60
				location?: { key?: string; id?: string; name?: string; href?: string }
61
				department?: {
62
					key?: string
63
					id?: string
64
					name?: string
65
					href?: string
66
				}
67
				employee?: { key?: string; id?: string; name?: string; href?: string }
68
				project?: { key?: string; id?: string; name?: string; href?: string }
69
				customer?: { key?: string; id?: string; name?: string; href?: string }
70
				vendor?: { key?: string; id?: string; name?: string; href?: string }
71
				item?: { key?: string; id?: string; name?: string; href?: string }
72
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
73
				class?: { key?: string; id?: string; name?: string; href?: string }
74
				task?: { id?: string; key?: string; name?: string; href?: string }
75
				costType?: { id?: string; key?: string; name?: string; href?: string }
76
				asset?: { id?: string; key?: string; name?: string; href?: string }
77
				contract?: { id?: string; key?: string; name?: string; href?: string }
78
				affiliateEntity?: {
79
					key?: string
80
					id?: string
81
					href?: string
82
					name?: string
83
				}
84
			}
85
			audit?: {
86
				createdDateTime?: string
87
				modifiedDateTime?: string
88
				createdBy?: string
89
				modifiedBy?: string
90
			}
91
		}[]
92
		purchasingLines?: {
93
			key?: string
94
			id?: string
95
			rateTable?: { key?: string; id?: string; name?: string; href?: string }
96
			href?: string
97
			lineNumber?: number
98
			description?: string
99
			startDate?: string
100
			markupPercent?: string
101
			unitPrice?: string
102
			accumulationType?: { key?: string; id?: string; href?: string }
103
			standardCostType?: {
104
				key?: string
105
				id?: string
106
				name?: string
107
				href?: string
108
			}
109
			standardTask?: {
110
				key?: string
111
				id?: string
112
				name?: string
113
				href?: string
114
			}
115
			dimensions?: {
116
				location?: { key?: string; id?: string; name?: string; href?: string }
117
				department?: {
118
					key?: string
119
					id?: string
120
					name?: string
121
					href?: string
122
				}
123
				employee?: { key?: string; id?: string; name?: string; href?: string }
124
				project?: { key?: string; id?: string; name?: string; href?: string }
125
				customer?: { key?: string; id?: string; name?: string; href?: string }
126
				vendor?: { key?: string; id?: string; name?: string; href?: string }
127
				item?: { key?: string; id?: string; name?: string; href?: string }
128
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
129
				class?: { key?: string; id?: string; name?: string; href?: string }
130
				task?: { id?: string; key?: string; name?: string; href?: string }
131
				costType?: { id?: string; key?: string; name?: string; href?: string }
132
				asset?: { id?: string; key?: string; name?: string; href?: string }
133
				contract?: { id?: string; key?: string; name?: string; href?: string }
134
				affiliateEntity?: {
135
					key?: string
136
					id?: string
137
					href?: string
138
					name?: string
139
				}
140
			}
141
			audit?: {
142
				createdDateTime?: string
143
				modifiedDateTime?: string
144
				createdBy?: string
145
				modifiedBy?: string
146
			}
147
		}[]
148
		accountsPayableLines?: {
149
			key?: string
150
			id?: string
151
			rateTable?: { key?: string; id?: string; name?: string; href?: string }
152
			href?: string
153
			lineNumber?: number
154
			description?: string
155
			startDate?: string
156
			markupPercent?: string
157
			accumulationType?: { key?: string; id?: string; href?: string }
158
			standardCostType?: {
159
				key?: string
160
				id?: string
161
				name?: string
162
				href?: string
163
			}
164
			standardTask?: {
165
				key?: string
166
				id?: string
167
				name?: string
168
				href?: string
169
			}
170
			dimensions?: {
171
				location?: { key?: string; id?: string; name?: string; href?: string }
172
				department?: {
173
					key?: string
174
					id?: string
175
					name?: string
176
					href?: string
177
				}
178
				employee?: { key?: string; id?: string; name?: string; href?: string }
179
				project?: { key?: string; id?: string; name?: string; href?: string }
180
				customer?: { key?: string; id?: string; name?: string; href?: string }
181
				vendor?: { key?: string; id?: string; name?: string; href?: string }
182
				item?: { key?: string; id?: string; name?: string; href?: string }
183
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
184
				class?: { key?: string; id?: string; name?: string; href?: string }
185
				task?: { id?: string; key?: string; name?: string; href?: string }
186
				costType?: { id?: string; key?: string; name?: string; href?: string }
187
				asset?: { id?: string; key?: string; name?: string; href?: string }
188
				contract?: { id?: string; key?: string; name?: string; href?: string }
189
				affiliateEntity?: {
190
					key?: string
191
					id?: string
192
					href?: string
193
					name?: string
194
				}
195
			}
196
			audit?: {
197
				createdDateTime?: string
198
				modifiedDateTime?: string
199
				createdBy?: string
200
				modifiedBy?: string
201
			}
202
		}[]
203
		journalLines?: {
204
			key?: string
205
			id?: string
206
			rateTable?: { key?: string; id?: string; name?: string; href?: string }
207
			href?: string
208
			lineNumber?: number
209
			description?: string
210
			startDate?: string
211
			markupPercent?: string
212
			accumulationType?: { key?: string; id?: string; href?: string }
213
			standardCostType?: {
214
				key?: string
215
				id?: string
216
				name?: string
217
				href?: string
218
			}
219
			standardTask?: {
220
				key?: string
221
				id?: string
222
				name?: string
223
				href?: string
224
			}
225
			dimensions?: {
226
				location?: { key?: string; id?: string; name?: string; href?: string }
227
				department?: {
228
					key?: string
229
					id?: string
230
					name?: string
231
					href?: string
232
				}
233
				employee?: { key?: string; id?: string; name?: string; href?: string }
234
				project?: { key?: string; id?: string; name?: string; href?: string }
235
				customer?: { key?: string; id?: string; name?: string; href?: string }
236
				vendor?: { key?: string; id?: string; name?: string; href?: string }
237
				item?: { key?: string; id?: string; name?: string; href?: string }
238
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
239
				class?: { key?: string; id?: string; name?: string; href?: string }
240
				task?: { id?: string; key?: string; name?: string; href?: string }
241
				costType?: { id?: string; key?: string; name?: string; href?: string }
242
				asset?: { id?: string; key?: string; name?: string; href?: string }
243
				contract?: { id?: string; key?: string; name?: string; href?: string }
244
				affiliateEntity?: {
245
					key?: string
246
					id?: string
247
					href?: string
248
					name?: string
249
				}
250
			}
251
			audit?: {
252
				createdDateTime?: string
253
				modifiedDateTime?: string
254
				createdBy?: string
255
				modifiedBy?: string
256
			}
257
		}[]
258
		creditCardLines?: {
259
			key?: string
260
			id?: string
261
			rateTable?: { key?: string; id?: string; name?: string; href?: string }
262
			href?: string
263
			lineNumber?: number
264
			description?: string
265
			startDate?: string
266
			markupPercent?: string
267
			accumulationType?: { key?: string; id?: string; href?: string }
268
			standardCostType?: {
269
				key?: string
270
				id?: string
271
				name?: string
272
				href?: string
273
			}
274
			standardTask?: {
275
				key?: string
276
				id?: string
277
				name?: string
278
				href?: string
279
			}
280
			dimensions?: {
281
				location?: { key?: string; id?: string; name?: string; href?: string }
282
				department?: {
283
					key?: string
284
					id?: string
285
					name?: string
286
					href?: string
287
				}
288
				employee?: { key?: string; id?: string; name?: string; href?: string }
289
				project?: { key?: string; id?: string; name?: string; href?: string }
290
				customer?: { key?: string; id?: string; name?: string; href?: string }
291
				vendor?: { key?: string; id?: string; name?: string; href?: string }
292
				item?: { key?: string; id?: string; name?: string; href?: string }
293
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
294
				class?: { key?: string; id?: string; name?: string; href?: string }
295
				task?: { id?: string; key?: string; name?: string; href?: string }
296
				costType?: { id?: string; key?: string; name?: string; href?: string }
297
				asset?: { id?: string; key?: string; name?: string; href?: string }
298
				contract?: { id?: string; key?: string; name?: string; href?: string }
299
				affiliateEntity?: {
300
					key?: string
301
					id?: string
302
					href?: string
303
					name?: string
304
				}
305
			}
306
			audit?: {
307
				createdDateTime?: string
308
				modifiedDateTime?: string
309
				createdBy?: string
310
				modifiedBy?: string
311
			}
312
		}[]
313
		employeeExpenseLines?: {
314
			key?: string
315
			id?: string
316
			rateTable?: { key?: string; id?: string; name?: string; href?: string }
317
			href?: string
318
			lineNumber?: number
319
			description?: string
320
			startDate?: string
321
			markupPercent?: string
322
			accumulationType?: { key?: string; id?: string; href?: string }
323
			standardCostType?: {
324
				key?: string
325
				id?: string
326
				name?: string
327
				href?: string
328
			}
329
			standardTask?: {
330
				key?: string
331
				id?: string
332
				name?: string
333
				href?: string
334
			}
335
			dimensions?: {
336
				location?: { key?: string; id?: string; name?: string; href?: string }
337
				department?: {
338
					key?: string
339
					id?: string
340
					name?: string
341
					href?: string
342
				}
343
				employee?: { key?: string; id?: string; name?: string; href?: string }
344
				project?: { key?: string; id?: string; name?: string; href?: string }
345
				customer?: { key?: string; id?: string; name?: string; href?: string }
346
				vendor?: { key?: string; id?: string; name?: string; href?: string }
347
				item?: { key?: string; id?: string; name?: string; href?: string }
348
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
349
				class?: { key?: string; id?: string; name?: string; href?: string }
350
				task?: { id?: string; key?: string; name?: string; href?: string }
351
				costType?: { id?: string; key?: string; name?: string; href?: string }
352
				asset?: { id?: string; key?: string; name?: string; href?: string }
353
				contract?: { id?: string; key?: string; name?: string; href?: string }
354
				affiliateEntity?: {
355
					key?: string
356
					id?: string
357
					href?: string
358
					name?: string
359
				}
360
			}
361
			audit?: {
362
				createdDateTime?: string
363
				modifiedDateTime?: string
364
				createdBy?: string
365
				modifiedBy?: string
366
			}
367
		}[]
368
	} & { id?: {} }
369
) {
370
	const url = new URL(`https://api.intacct.com/ia/api/v1/objects/construction/rate-table/${key}`)
371

372
	const response = await fetch(url, {
373
		method: 'PATCH',
374
		headers: {
375
			'Content-Type': 'application/json',
376
			Authorization: 'Bearer ' + auth.token
377
		},
378
		body: JSON.stringify(body)
379
	})
380
	if (!response.ok) {
381
		const text = await response.text()
382
		throw new Error(`${response.status} ${text}`)
383
	}
384
	return await response.json()
385
}
386