0

Update a document line

by
Published Oct 17, 2025

Updates an existing purchasing document line by setting field values. Any fields not provided remain unchanged. 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 document line
7
 * Updates an existing purchasing document line by setting field values. Any fields not provided remain unchanged.
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
		documentType?: string
29
		lineNumber?: number
30
		item?: { key?: string; id?: string; href?: string }
31
		memo?: string
32
		unit?: string
33
		quantity?: string
34
		unitQuantity?: string
35
		unitPrice?: string
36
		price?: string
37
		quantityConverted?: string
38
		retailPrice?: string
39
		priceConverted?: string
40
		quantityToleranceVariance?: string
41
		priceToleranceVariance?: string
42
		audit?: {
43
			createdDateTime?: string
44
			modifiedDateTime?: string
45
			createdBy?: string
46
			modifiedBy?: string
47
		}
48
		status?: 'active' | 'inactive'
49
		costMethod?: 'standard' | 'average' | 'FIFO' | 'LIFO'
50
		sourceDocument?: {
51
			key?: string
52
			id?: string
53
			documentType?: string
54
			href?: string
55
		}
56
		sourceDocumentLine?: {
57
			key?: string
58
			id?: string
59
			documentType?: string
60
			href?: string
61
		}
62
		baseCurrency?: string
63
		txnCurrency?: string
64
		priceInTxnCurrency?: string
65
		isBillable?: false | true
66
		isBilled?: false | true
67
		taxRate?: string
68
		taxInBaseCurrency?: string
69
		taxInTxnCurrency?: string
70
		discount?: string
71
		enableTax?: false | true
72
		quantityRemaining?: string
73
		conversionType?: 'quantity' | 'price'
74
		dimensions?: {
75
			location?: { key?: string; id?: string; name?: string; href?: string }
76
			department?: { key?: string; id?: string; name?: string; href?: string }
77
			employee?: { key?: string; id?: string; name?: string; href?: string }
78
			project?: { key?: string; id?: string; name?: string; href?: string }
79
			customer?: { key?: string; id?: string; name?: string; href?: string }
80
			vendor?: { key?: string; id?: string; name?: string; href?: string }
81
			item?: { key?: string; id?: string; name?: string; href?: string }
82
			warehouse?: { key?: string; id?: string; name?: string; href?: string }
83
			class?: { key?: string; id?: string; name?: string; href?: string }
84
			task?: { id?: string; key?: string; name?: string; href?: string }
85
			costType?: { id?: string; key?: string; name?: string; href?: string }
86
			asset?: { id?: string; key?: string; name?: string; href?: string }
87
			contract?: { id?: string; key?: string; name?: string; href?: string }
88
			affiliateEntity?: {
89
				key?: string
90
				id?: string
91
				href?: string
92
				name?: string
93
			}
94
		} & {
95
			location?: { key?: string; id?: string; href?: string }
96
			department?: { key?: string; id?: string; href?: string }
97
			warehouse?: { key?: string; id?: string; href?: string }
98
			project?: { key?: string; id?: string; href?: string }
99
			task?: { id?: string; key?: string; href?: string }
100
		}
101
		requestedShippingDate?: string
102
		shipByDate?: string
103
		cancelAfterDate?: string
104
		doNotShipBeforeDate?: string
105
		doNotShipAfterDate?: string
106
		deliveryDueDate?: string
107
		orderConfirmationDate?: string
108
		allocation?: { key?: string; id?: string; href?: string }
109
		trackingDetail?: {
110
			key?: string
111
			id?: string
112
			href?: string
113
			quantity?: string
114
			serialNumber?: string
115
			lotNumber?: string
116
			expirationDate?: string
117
			aisle?: { href?: string; key?: string; id?: string }
118
			bin?: { href?: string; key?: string; id?: string }
119
			row?: { href?: string; key?: string; id?: string }
120
			item?: { key?: string; id?: string; href?: string }
121
			audit?: {
122
				createdDateTime?: string
123
				modifiedDateTime?: string
124
				createdBy?: string
125
				modifiedBy?: string
126
			}
127
			purchasingDocumentLine?: {
128
				key?: string
129
				id?: string
130
				documentType?: string
131
				href?: string
132
			}
133
		}[]
134
		documentHeader?: {
135
			key?: string
136
			id?: string
137
			documentType?: string
138
			href?: string
139
		}
140
		lineSubtotals?: {
141
			key?: string
142
			id?: string
143
			href?: string
144
			description?: string
145
			absoluteValue?: string
146
			percentValue?: string
147
			total?: string
148
			txnAbsoluteValue?: string
149
			txnTotal?: string
150
			enableOverrideTax?: false | true
151
			taxDetail?: { key?: string; id?: string; href?: string }
152
			systemTaxDetail?: { key?: string; id?: string; href?: string }
153
			dimensions?: {
154
				location?: { key?: string; id?: string; name?: string; href?: string }
155
				department?: {
156
					key?: string
157
					id?: string
158
					name?: string
159
					href?: string
160
				}
161
				employee?: { key?: string; id?: string; name?: string; href?: string }
162
				project?: { key?: string; id?: string; name?: string; href?: string }
163
				customer?: { key?: string; id?: string; name?: string; href?: string }
164
				vendor?: { key?: string; id?: string; name?: string; href?: string }
165
				item?: { key?: string; id?: string; name?: string; href?: string }
166
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
167
				class?: { key?: string; id?: string; name?: string; href?: string }
168
				task?: { id?: string; key?: string; name?: string; href?: string }
169
				costType?: { id?: string; key?: string; name?: string; href?: string }
170
				asset?: { id?: string; key?: string; name?: string; href?: string }
171
				contract?: { id?: string; key?: string; name?: string; href?: string }
172
				affiliateEntity?: {
173
					key?: string
174
					id?: string
175
					href?: string
176
					name?: string
177
				}
178
			} & {
179
				location?: { key?: string; id?: string; name?: string; href?: string }
180
				department?: {
181
					key?: string
182
					id?: string
183
					name?: string
184
					href?: string
185
				}
186
			}
187
			documentLine?: {
188
				key?: string
189
				id?: string
190
				documentType?: string
191
				href?: string
192
			}
193
			document?: {
194
				key?: string
195
				id?: string
196
				documentType?: string
197
				href?: string
198
			}
199
			status?: 'active' | 'inactive'
200
		}[]
201
	} & { id?: {} }
202
) {
203
	const url = new URL(
204
		`https://api.intacct.com/ia/api/v1/objects/purchasing/document-line::${documentName}/${key}`
205
	)
206

207
	const response = await fetch(url, {
208
		method: 'PATCH',
209
		headers: {
210
			'Content-Type': 'application/json',
211
			Authorization: 'Bearer ' + auth.token
212
		},
213
		body: JSON.stringify(body)
214
	})
215
	if (!response.ok) {
216
		const text = await response.text()
217
		throw new Error(`${response.status} ${text}`)
218
	}
219
	return await response.json()
220
}
221