0

Update an inventory document

by
Published Oct 17, 2025

Updates an existing Inventory Control document by setting field values.

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 an inventory document
7
 * Updates an existing Inventory Control document by setting field values.
8
 */
9
export async function main(
10
	auth: SageIntacct,
11
	key: string,
12
	documentName: string,
13
	body: {
14
		key?: string
15
		id?: string
16
		documentNumber?: string
17
		documentType?: string
18
		isPrinted?: false | true
19
		subTotal?: string
20
		total?: string
21
		subtotalInTxnCurrency?: string
22
		totalInTxnCurrency?: string
23
		state?:
24
			| 'draft'
25
			| 'pending'
26
			| 'closed'
27
			| 'inProgress'
28
			| 'converted'
29
			| 'partiallyConverted'
30
			| 'convertedByLine'
31
			| 'partiallyConvertedByLine'
32
			| 'exception'
33
		referenceNumber?: string
34
		memo?: string
35
		exchangeRate?: {
36
			date?: string
37
			rate?: string
38
			typeId?: string
39
			typeName?: string
40
		}
41
		transactionDate?: string
42
		lastPrintedDate?: string
43
		isAdjustmentDocument?: false | true
44
		baseCurrency?: string
45
		txnCurrency?: string
46
		txnDefinition?: {
47
			href?: string
48
			key?: string
49
			id?: string
50
			documentType?: string
51
			txnDefinitionTemplateClass?: string
52
			updatesInventory?: 'no' | 'quantity' | 'value' | 'quantityAndValue'
53
			increaseOrDecreaseInventory?: 'increase' | 'decrease'
54
		}
55
		sourceDocument?: { key?: string; id?: string; href?: string }
56
		attachment?: { key?: string; id?: string; href?: string }
57
		printedBy?: { href?: string; key?: string; id?: string }
58
		warehouse?: {
59
			key?: string
60
			id?: string
61
			defaultWarehouse?: string
62
			href?: string
63
		}
64
		href?: string
65
		entity?: { key?: string; id?: string; name?: string; href?: string }
66
		audit?: {
67
			createdDateTime?: string
68
			modifiedDateTime?: string
69
			createdBy?: string
70
			modifiedBy?: string
71
		} & { createdDateTime?: string }
72
		lines?: {
73
			key?: string
74
			id?: string
75
			href?: string
76
			documentType?: string
77
			memo?: string
78
			lineDescription?: string
79
			unitOfMeasure?: { key?: string; id?: string; href?: string }
80
			unitQuantity?: string
81
			quantity?: string
82
			quantityConverted?: string
83
			quantityRemaining?: string
84
			cost?: string
85
			unitCost?: string
86
			extendedCost?: string
87
			totalCost?: string
88
			lineNumber?: number
89
			costMethod?: 'average' | 'standard' | 'FIFO' | 'LIFO'
90
			txnCurrency?: string
91
			baseCurrency?: string
92
			conversionType?: 'quantity' | 'price'
93
			convertedPrice?: string
94
			trackingDetail?: {
95
				key?: string
96
				id?: string
97
				href?: string
98
				quantity?: string
99
				serialNumber?: string
100
				lotNumber?: string
101
				expirationDate?: string
102
				aisle?: { href?: string; key?: string; id?: string }
103
				bin?: { href?: string; key?: string; id?: string }
104
				row?: { href?: string; key?: string; id?: string }
105
				item?: { key?: string; id?: string; href?: string }
106
				componentItem?: { key?: string; id?: string; href?: string }
107
				audit?: {
108
					createdDateTime?: string
109
					modifiedDateTime?: string
110
					createdBy?: string
111
					modifiedBy?: string
112
				}
113
				inventoryDocumentLine?: {
114
					key?: string
115
					id?: string
116
					documentType?: string
117
					href?: string
118
				}
119
			}[]
120
			documentHeader?: {
121
				href?: string
122
				key?: string
123
				id?: string
124
				documentNumber?: string
125
				documentType?: string
126
			}
127
			dimensions?: {
128
				location?: { key?: string; id?: string; name?: string; href?: string }
129
				department?: {
130
					key?: string
131
					id?: string
132
					name?: string
133
					href?: string
134
				}
135
				employee?: { key?: string; id?: string; name?: string; href?: string }
136
				project?: { key?: string; id?: string; name?: string; href?: string }
137
				customer?: { key?: string; id?: string; name?: string; href?: string }
138
				vendor?: { key?: string; id?: string; name?: string; href?: string }
139
				item?: { key?: string; id?: string; name?: string; href?: string }
140
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
141
				class?: { key?: string; id?: string; name?: string; href?: string }
142
				task?: { id?: string; key?: string; name?: string; href?: string }
143
				costType?: { id?: string; key?: string; name?: string; href?: string }
144
				asset?: { id?: string; key?: string; name?: string; href?: string }
145
				contract?: { id?: string; key?: string; name?: string; href?: string }
146
				affiliateEntity?: {
147
					key?: string
148
					id?: string
149
					href?: string
150
					name?: string
151
				}
152
			} & {
153
				location?: { key?: string; id?: string; href?: string }
154
				department?: { key?: string; id?: string; href?: string }
155
				warehouse?: { key?: string; id?: string; href?: string }
156
				project?: { key?: string; id?: string; href?: string }
157
				task?: { id?: string; key?: string; href?: string }
158
			}
159
			sourceDocument?: {
160
				href?: string
161
				id?: string
162
				documentType?: string
163
				key?: string
164
			}
165
			sourceDocumentLine?: {
166
				href?: string
167
				id?: string
168
				key?: string
169
				documentType?: string
170
			}
171
			audit?: {
172
				createdDateTime?: string
173
				modifiedDateTime?: string
174
				createdBy?: string
175
				modifiedBy?: string
176
			} & { createdDateTime?: string }
177
			status?: 'active' | 'inactive'
178
		}[]
179
		history?: {
180
			key?: string
181
			id?: string
182
			href?: string
183
			convertedFrom?: {
184
				key?: string
185
				id?: string
186
				documentType?: string
187
				href?: string
188
			}
189
			convertedTo?: {
190
				key?: string
191
				id?: string
192
				documentType?: string
193
				href?: string
194
			}
195
			inventoryDocument?: {
196
				key?: string
197
				id?: string
198
				documentType?: string
199
				href?: string
200
			}
201
		}[]
202
		subtotals?: {
203
			key?: string
204
			id?: string
205
			href?: string
206
			description?: string
207
			percentValue?: string
208
			absoluteValue?: string
209
			txnAbsoluteValue?: string
210
			isValueEditable?: false | true
211
			isPercentEditable?: false | true
212
			total?: string
213
			txnTotal?: string
214
			documentLine?: {
215
				href?: string
216
				key?: string
217
				id?: string
218
				documentType?: string
219
			}
220
			dimensions?: {
221
				location?: { key?: string; id?: string; name?: string; href?: string }
222
				department?: {
223
					key?: string
224
					id?: string
225
					name?: string
226
					href?: string
227
				}
228
				employee?: { key?: string; id?: string; name?: string; href?: string }
229
				project?: { key?: string; id?: string; name?: string; href?: string }
230
				customer?: { key?: string; id?: string; name?: string; href?: string }
231
				vendor?: { key?: string; id?: string; name?: string; href?: string }
232
				item?: { key?: string; id?: string; name?: string; href?: string }
233
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
234
				class?: { key?: string; id?: string; name?: string; href?: string }
235
				task?: { id?: string; key?: string; name?: string; href?: string }
236
				costType?: { id?: string; key?: string; name?: string; href?: string }
237
				asset?: { id?: string; key?: string; name?: string; href?: string }
238
				contract?: { id?: string; key?: string; name?: string; href?: string }
239
				affiliateEntity?: {
240
					key?: string
241
					id?: string
242
					href?: string
243
					name?: string
244
				}
245
			} & {
246
				location?: { key?: string; id?: string; href?: string }
247
				department?: { key?: string; id?: string; href?: string }
248
			}
249
			documentHeader?: {
250
				href?: string
251
				key?: string
252
				documentType?: string
253
				id?: string
254
			}
255
			audit?: {
256
				createdDateTime?: string
257
				modifiedDateTime?: string
258
				createdBy?: string
259
				modifiedBy?: string
260
			}
261
		}[]
262
		postingSummary?: { key?: string; id?: string; href?: string }
263
		journalEntry?: { key?: string; id?: string; href?: string }
264
		status?: 'active' | 'inactive'
265
	} & { id?: {} }
266
) {
267
	const url = new URL(
268
		`https://api.intacct.com/ia/api/v1/objects/inventory-control/document::${documentName}/${key}`
269
	)
270

271
	const response = await fetch(url, {
272
		method: 'PATCH',
273
		headers: {
274
			'Content-Type': 'application/json',
275
			Authorization: 'Bearer ' + auth.token
276
		},
277
		body: JSON.stringify(body)
278
	})
279
	if (!response.ok) {
280
		const text = await response.text()
281
		throw new Error(`${response.status} ${text}`)
282
	}
283
	return await response.json()
284
}
285