0

Update an account allocation source

by
Published Oct 17, 2025

Updates an existing account allocation source 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 an account allocation source
7
 * Updates an existing account allocation source 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
		percentToAllocate?: string
16
		timePeriod?: { key?: string; id?: string; href?: string }
17
		reportingBook?: 'accrual' | 'cash'
18
		currency?: string
19
		useAmountsFrom?: 'mainReportingBookAndAlternateBooks' | 'alternateBooksOnly'
20
		glAccountAllocation?: { key?: string; id?: string; href?: string }
21
		glAccountGroup?: { key?: string; id?: string; href?: string }
22
		dimensions?: {
23
			location?: { key?: string; id?: string; name?: string; href?: string }
24
			department?: { key?: string; id?: string; name?: string; href?: string }
25
			employee?: { key?: string; id?: string; name?: string; href?: string }
26
			project?: { key?: string; id?: string; name?: string; href?: string }
27
			customer?: { key?: string; id?: string; name?: string; href?: string }
28
			vendor?: { key?: string; id?: string; name?: string; href?: string }
29
			item?: { key?: string; id?: string; name?: string; href?: string }
30
			warehouse?: { key?: string; id?: string; name?: string; href?: string }
31
			class?: { key?: string; id?: string; name?: string; href?: string }
32
			task?: { id?: string; key?: string; name?: string; href?: string }
33
			costType?: { id?: string; key?: string; name?: string; href?: string }
34
			asset?: { id?: string; key?: string; name?: string; href?: string }
35
			contract?: { id?: string; key?: string; name?: string; href?: string }
36
			affiliateEntity?: {
37
				key?: string
38
				id?: string
39
				href?: string
40
				name?: string
41
			}
42
		} & {
43
			location?: { key?: string; id?: string; name?: string; href?: string }
44
			department?: { key?: string; id?: string; name?: string; href?: string }
45
		}
46
		audit?: {
47
			createdDateTime?: string
48
			modifiedDateTime?: string
49
			createdBy?: string
50
			modifiedBy?: string
51
		}
52
		href?: string
53
	}
54
) {
55
	const url = new URL(
56
		`https://api.intacct.com/ia/api/v1/objects/general-ledger/account-allocation-source/${key}`
57
	)
58

59
	const response = await fetch(url, {
60
		method: 'PATCH',
61
		headers: {
62
			'Content-Type': 'application/json',
63
			Authorization: 'Bearer ' + auth.token
64
		},
65
		body: JSON.stringify(body)
66
	})
67
	if (!response.ok) {
68
		const text = await response.text()
69
		throw new Error(`${response.status} ${text}`)
70
	}
71
	return await response.json()
72
}
73