0

Create a document line

by
Published Oct 17, 2025

Creates a new purchasing document line. Permissions and other requirements SubscriptionPurchasing User typeBusiness, Employee, Project Manager, Warehouse PermissionsList, View, Add 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
 * Create a document line
7
 * Creates a new purchasing document line.
8

9

10
Permissions and other requirements
11

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

16

17

18

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

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