0

Update a journal entry template

by
Published Oct 17, 2025

Updates an existing journal entry template 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 a journal entry template
7
 * Updates an existing journal entry template 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
		href?: string
16
		name?: string
17
		description?: string
18
		postingState?: 'draft' | 'posted'
19
		glJournal?: { key?: string; id?: string; href?: string }
20
		lines?: {
21
			key?: string
22
			id?: string
23
			href?: string
24
			documentId?: string
25
			memo?: string
26
			numberOfUnits?: number
27
			exchangeRate?: { date?: string; rate?: number; typeId?: string }
28
			txnType?: 'debit' | 'credit'
29
			isBillable?: false | true
30
			allocation?: { id?: string; key?: string; href?: string }
31
			glAccount?: { key?: string; id?: string; name?: string; href?: string }
32
			dimensions?: {
33
				location?: { key?: string; id?: string; name?: string; href?: string }
34
				department?: {
35
					key?: string
36
					id?: string
37
					name?: string
38
					href?: string
39
				}
40
				employee?: { key?: string; id?: string; name?: string; href?: string }
41
				project?: { key?: string; id?: string; name?: string; href?: string }
42
				customer?: { key?: string; id?: string; name?: string; href?: string }
43
				vendor?: { key?: string; id?: string; name?: string; href?: string }
44
				item?: { key?: string; id?: string; name?: string; href?: string }
45
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
46
				class?: { key?: string; id?: string; name?: string; href?: string }
47
				task?: { id?: string; key?: string; name?: string; href?: string }
48
				costType?: { id?: string; key?: string; name?: string; href?: string }
49
				asset?: { id?: string; key?: string; name?: string; href?: string }
50
				contract?: { id?: string; key?: string; name?: string; href?: string }
51
				affiliateEntity?: {
52
					key?: string
53
					id?: string
54
					href?: string
55
					name?: string
56
				}
57
			}
58
			journalEntryTemplate?: { id?: string; key?: string; href?: string }
59
		}[]
60
		audit?: {
61
			createdDateTime?: string
62
			modifiedDateTime?: string
63
			createdBy?: string
64
			modifiedBy?: string
65
		}
66
		status?: 'active' | 'inactive'
67
		entity?: { key?: string; id?: string; name?: string; href?: string }
68
		numberOfRulesUsingTemplate?: number
69
		taxImplication?: 'none' | 'inbound' | 'outbound'
70
		taxSolution?: { key?: string; id?: string; href?: string }
71
		purchasingTaxSchedule?: {
72
			key?: string
73
			id?: string
74
			name?: string
75
			href?: string
76
		}
77
		salesTaxSchedule?: {
78
			key?: string
79
			id?: string
80
			name?: string
81
			href?: string
82
		}
83
		customer?: { key?: string; id?: string; name?: string; href?: string }
84
		vendor?: { key?: string; id?: string; name?: string; href?: string }
85
	} & { id?: {} }
86
) {
87
	const url = new URL(
88
		`https://api.intacct.com/ia/api/v1/objects/cash-management/journal-entry-template/${key}`
89
	)
90

91
	const response = await fetch(url, {
92
		method: 'PATCH',
93
		headers: {
94
			'Content-Type': 'application/json',
95
			Authorization: 'Bearer ' + auth.token
96
		},
97
		body: JSON.stringify(body)
98
	})
99
	if (!response.ok) {
100
		const text = await response.text()
101
		throw new Error(`${response.status} ${text}`)
102
	}
103
	return await response.json()
104
}
105