0

Update a purchasing document

by
Published Oct 17, 2025

Updates an existing purchasing document by setting field values. Any fields not provided remain unchanged. With Edit permissions to Purchasing transactions, most details for a transaction that has a state of Draft or Pending can be edited. Permissions and other requirements SubscriptionPurchasing User typeBusiness, Employee, Project Manager, Warehouse PermissionsList, View, Edit Purchasing documents

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 purchasing document
7
 * Updates an existing purchasing document by setting field values. Any fields not provided remain unchanged. With Edit permissions to Purchasing transactions, most details for a transaction that has a state of Draft or Pending can be edited.
8

9

10
Permissions and other requirements
11

12
SubscriptionPurchasing
13
User typeBusiness, Employee, Project Manager, Warehouse
14
PermissionsList, View, Edit Purchasing documents
15

16

17

18

19
 */
20
export async function main(
21
	auth: SageIntacct,
22
	documentName: string,
23
	key: string,
24
	body: {
25
		key?: string
26
		id?: string
27
		href?: string
28
		documentNumber?: string
29
		documentType?: string
30
		state?:
31
			| 'submitted'
32
			| 'approved'
33
			| 'partiallyApproved'
34
			| 'declined'
35
			| 'draft'
36
			| 'pending'
37
			| 'closed'
38
			| 'inProgress'
39
			| 'converted'
40
			| 'partiallyConverted'
41
			| 'exception'
42
			| 'analyzing'
43
		isPrinted?: false | true
44
		isBackordered?: false | true
45
		subtotal?: string
46
		subtotalInTxnCurrency?: string
47
		total?: string
48
		totalInTxnCurrency?: string
49
		baseCurrency?: string
50
		txnCurrency?: string
51
		exchangeRate?: {
52
			date?: string
53
			rate?: string
54
			typeId?: string
55
			typeName?: string
56
		}
57
		txnDate?: string
58
		dueDate?: string
59
		isSystemGeneratedDocument?: false | true
60
		postingDate?: string
61
		referenceNumber?: string
62
		vendorDocumentNumber?: string
63
		notes?: string
64
		memo?: string
65
		paymentStatus?: 'paid' | 'partiallyPaid' | 'selected' | 'open'
66
		cancelAfterDate?: string
67
		doNotShipBeforeDate?: string
68
		doNotShipAfterDate?: string
69
		requestedShippingDate?: string
70
		promisedDate?: string
71
		contractStartDate?: string
72
		contractEndDate?: string
73
		retainagePercent?: string
74
		contacts?: {
75
			primary?: { key?: string; id?: string }
76
			shipTo?: { key?: string; id?: string }
77
			billTo?: { key?: string; id?: string }
78
			deliverTo?: { key?: string; id?: string }
79
		}
80
		shippingMethod?: { key?: string; id?: string; href?: string }
81
		paymentTerm?: { href?: string; key?: string; id?: string }
82
		txnDefinition?: { key?: string; id?: string; href?: string }
83
		sourceDocument?: {
84
			key?: string
85
			id?: string
86
			documentType?: string
87
			href?: string
88
		}
89
		taxSolution?: {
90
			key?: string
91
			id?: string
92
			href?: string
93
			taxCalculationMethod?: 'noTax' | 'simpleTax' | 'advancedTax' | 'avaTax' | 'VAT'
94
			showMultilineTax?: false | true
95
		}
96
		vendor?: { key?: string; id?: string; name?: string; href?: string }
97
		audit?: {
98
			createdDateTime?: string
99
			modifiedDateTime?: string
100
			createdBy?: string
101
			modifiedBy?: string
102
		} & { createdDateTime?: string }
103
		entity?: { key?: string; id?: string; name?: string; href?: string }
104
		status?: 'active' | 'inactive'
105
		lines?: {
106
			key?: string
107
			id?: string
108
			href?: string
109
			documentType?: string
110
			lineNumber?: number
111
			item?: { key?: string; id?: string; href?: string }
112
			memo?: string
113
			unit?: string
114
			quantity?: string
115
			unitQuantity?: string
116
			unitPrice?: string
117
			price?: string
118
			quantityConverted?: string
119
			retailPrice?: string
120
			priceConverted?: string
121
			quantityToleranceVariance?: string
122
			priceToleranceVariance?: string
123
			audit?: {
124
				createdDateTime?: string
125
				modifiedDateTime?: string
126
				createdBy?: string
127
				modifiedBy?: string
128
			}
129
			status?: 'active' | 'inactive'
130
			costMethod?: 'standard' | 'average' | 'FIFO' | 'LIFO'
131
			sourceDocument?: {
132
				key?: string
133
				id?: string
134
				documentType?: string
135
				href?: string
136
			}
137
			sourceDocumentLine?: {
138
				key?: string
139
				id?: string
140
				documentType?: string
141
				href?: string
142
			}
143
			baseCurrency?: string
144
			txnCurrency?: string
145
			priceInTxnCurrency?: string
146
			isBillable?: false | true
147
			isBilled?: false | true
148
			taxRate?: string
149
			taxInBaseCurrency?: string
150
			taxInTxnCurrency?: string
151
			discount?: string
152
			enableTax?: false | true
153
			quantityRemaining?: string
154
			conversionType?: 'quantity' | 'price'
155
			dimensions?: {
156
				location?: { key?: string; id?: string; name?: string; href?: string }
157
				department?: {
158
					key?: string
159
					id?: string
160
					name?: string
161
					href?: string
162
				}
163
				employee?: { key?: string; id?: string; name?: string; href?: string }
164
				project?: { key?: string; id?: string; name?: string; href?: string }
165
				customer?: { key?: string; id?: string; name?: string; href?: string }
166
				vendor?: { key?: string; id?: string; name?: string; href?: string }
167
				item?: { key?: string; id?: string; name?: string; href?: string }
168
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
169
				class?: { key?: string; id?: string; name?: string; href?: string }
170
				task?: { id?: string; key?: string; name?: string; href?: string }
171
				costType?: { id?: string; key?: string; name?: string; href?: string }
172
				asset?: { id?: string; key?: string; name?: string; href?: string }
173
				contract?: { id?: string; key?: string; name?: string; href?: string }
174
				affiliateEntity?: {
175
					key?: string
176
					id?: string
177
					href?: string
178
					name?: string
179
				}
180
			} & {
181
				location?: { key?: string; id?: string; href?: string }
182
				department?: { key?: string; id?: string; href?: string }
183
				warehouse?: { key?: string; id?: string; href?: string }
184
				project?: { key?: string; id?: string; href?: string }
185
				task?: { id?: string; key?: string; href?: string }
186
			}
187
			requestedShippingDate?: string
188
			shipByDate?: string
189
			cancelAfterDate?: string
190
			doNotShipBeforeDate?: string
191
			doNotShipAfterDate?: string
192
			deliveryDueDate?: string
193
			orderConfirmationDate?: string
194
			allocation?: { key?: string; id?: string; href?: string }
195
			trackingDetail?: {
196
				key?: string
197
				id?: string
198
				href?: string
199
				quantity?: string
200
				serialNumber?: string
201
				lotNumber?: string
202
				expirationDate?: string
203
				aisle?: { href?: string; key?: string; id?: string }
204
				bin?: { href?: string; key?: string; id?: string }
205
				row?: { href?: string; key?: string; id?: string }
206
				item?: { key?: string; id?: string; href?: string }
207
				audit?: {
208
					createdDateTime?: string
209
					modifiedDateTime?: string
210
					createdBy?: string
211
					modifiedBy?: string
212
				}
213
				purchasingDocumentLine?: {
214
					key?: string
215
					id?: string
216
					documentType?: string
217
					href?: string
218
				}
219
			}[]
220
			documentHeader?: {
221
				key?: string
222
				id?: string
223
				documentType?: string
224
				href?: string
225
			}
226
			lineSubtotals?: {
227
				key?: string
228
				id?: string
229
				href?: string
230
				description?: string
231
				absoluteValue?: string
232
				percentValue?: string
233
				total?: string
234
				txnAbsoluteValue?: string
235
				txnTotal?: string
236
				enableOverrideTax?: false | true
237
				taxDetail?: { key?: string; id?: string; href?: string }
238
				systemTaxDetail?: { key?: string; id?: string; href?: string }
239
				dimensions?: {
240
					location?: {
241
						key?: string
242
						id?: string
243
						name?: string
244
						href?: string
245
					}
246
					department?: {
247
						key?: string
248
						id?: string
249
						name?: string
250
						href?: string
251
					}
252
					employee?: {
253
						key?: string
254
						id?: string
255
						name?: string
256
						href?: string
257
					}
258
					project?: { key?: string; id?: string; name?: string; href?: string }
259
					customer?: {
260
						key?: string
261
						id?: string
262
						name?: string
263
						href?: string
264
					}
265
					vendor?: { key?: string; id?: string; name?: string; href?: string }
266
					item?: { key?: string; id?: string; name?: string; href?: string }
267
					warehouse?: {
268
						key?: string
269
						id?: string
270
						name?: string
271
						href?: string
272
					}
273
					class?: { key?: string; id?: string; name?: string; href?: string }
274
					task?: { id?: string; key?: string; name?: string; href?: string }
275
					costType?: {
276
						id?: string
277
						key?: string
278
						name?: string
279
						href?: string
280
					}
281
					asset?: { id?: string; key?: string; name?: string; href?: string }
282
					contract?: {
283
						id?: string
284
						key?: string
285
						name?: string
286
						href?: string
287
					}
288
					affiliateEntity?: {
289
						key?: string
290
						id?: string
291
						href?: string
292
						name?: string
293
					}
294
				} & {
295
					location?: {
296
						key?: string
297
						id?: string
298
						name?: string
299
						href?: string
300
					}
301
					department?: {
302
						key?: string
303
						id?: string
304
						name?: string
305
						href?: string
306
					}
307
				}
308
				documentLine?: {
309
					key?: string
310
					id?: string
311
					documentType?: string
312
					href?: string
313
				}
314
				document?: {
315
					key?: string
316
					id?: string
317
					documentType?: string
318
					href?: string
319
				}
320
				status?: 'active' | 'inactive'
321
			}[]
322
		}[]
323
		subtotals?: {
324
			key?: string
325
			id?: string
326
			href?: string
327
			description?: string
328
			absoluteValue?: string
329
			percentValue?: string
330
			txnAbsoluteValue?: string
331
			total?: string
332
			txnTotal?: string
333
			documentLine?: {
334
				key?: string
335
				documentType?: string
336
				id?: string
337
				href?: string
338
			}
339
			dimensions?: {
340
				location?: { key?: string; id?: string; name?: string; href?: string }
341
				department?: {
342
					key?: string
343
					id?: string
344
					name?: string
345
					href?: string
346
				}
347
				employee?: { key?: string; id?: string; name?: string; href?: string }
348
				project?: { key?: string; id?: string; name?: string; href?: string }
349
				customer?: { key?: string; id?: string; name?: string; href?: string }
350
				vendor?: { key?: string; id?: string; name?: string; href?: string }
351
				item?: { key?: string; id?: string; name?: string; href?: string }
352
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
353
				class?: { key?: string; id?: string; name?: string; href?: string }
354
				task?: { id?: string; key?: string; name?: string; href?: string }
355
				costType?: { id?: string; key?: string; name?: string; href?: string }
356
				asset?: { id?: string; key?: string; name?: string; href?: string }
357
				contract?: { id?: string; key?: string; name?: string; href?: string }
358
				affiliateEntity?: {
359
					key?: string
360
					id?: string
361
					href?: string
362
					name?: string
363
				}
364
			} & {
365
				location?: { key?: string; id?: string; href?: string }
366
				department?: { key?: string; id?: string; href?: string }
367
			}
368
			documentHeader?: {
369
				key?: string
370
				id?: string
371
				documentType?: string
372
				href?: string
373
			}
374
			audit?: {
375
				createdDateTime?: string
376
				modifiedDateTime?: string
377
				createdBy?: string
378
				modifiedBy?: string
379
			}
380
		}[]
381
		history?: {
382
			key?: string
383
			id?: string
384
			href?: string
385
			convertedFrom?: {
386
				key?: string
387
				id?: string
388
				documentType?: string
389
				href?: string
390
			}
391
			convertedTo?: {
392
				key?: string
393
				id?: string
394
				documentType?: string
395
				href?: string
396
			}
397
			purchasingDocument?: {
398
				key?: string
399
				id?: string
400
				documentType?: string
401
				href?: string
402
			}
403
		}[]
404
	} & { id?: {} }
405
) {
406
	const url = new URL(
407
		`https://api.intacct.com/ia/api/v1/objects/purchasing/document::${documentName}/${key}`
408
	)
409

410
	const response = await fetch(url, {
411
		method: 'PATCH',
412
		headers: {
413
			'Content-Type': 'application/json',
414
			Authorization: 'Bearer ' + auth.token
415
		},
416
		body: JSON.stringify(body)
417
	})
418
	if (!response.ok) {
419
		const text = await response.text()
420
		throw new Error(`${response.status} ${text}`)
421
	}
422
	return await response.json()
423
}
424