0

Create a journal entry template

by
Published Oct 17, 2025

Creates a new journal entry template.

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

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