0

Update an electronic receipt

by
Published Oct 17, 2025

Updates an existing electronic receipt by setting field values. Any fields not provided remain unchanged. Permissions and other requirements SubscriptionTime and Expense User typeBusiness, Employee PermissionsList, View, Edit, Delete, Upload, Manage staff electronic receipts

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 electronic receipt
7
 * Updates an existing electronic receipt by setting field values. Any fields not provided remain unchanged.
8

9

10
Permissions and other requirements
11

12
SubscriptionTime and Expense
13
User typeBusiness, Employee
14
PermissionsList, View, Edit, Delete, Upload, Manage staff electronic receipts
15

16

17

18

19
 */
20
export async function main(
21
	auth: SageIntacct,
22
	key: string,
23
	body: {
24
		key?: string
25
		id?: string
26
		href?: string
27
		createdDate?: string
28
		employee?: { key?: string; id?: string; href?: string }
29
		employeeContact?: {
30
			key?: string
31
			id?: string
32
			firstName?: string
33
			lastName?: string
34
			href?: string
35
		}
36
		state?: 'draft' | 'used' | 'review' | 'analyzing'
37
		receiptNumber?: string
38
		description?: string
39
		currency?: string
40
		totalAmount?: string
41
		baseCurrency?: string
42
		baseTotal?: string
43
		attachment?: { key?: string; id?: string; href?: string }
44
		audit?: {
45
			createdDateTime?: string
46
			modifiedDateTime?: string
47
			createdBy?: string
48
			modifiedBy?: string
49
		} & { createdDateTime?: string }
50
		lines?: {
51
			key?: string
52
			id?: string
53
			href?: string
54
			entryDate?: string
55
			currency?: string
56
			txnAmount?: string
57
			baseCurrency?: string
58
			baseAmount?: string
59
			quantity?: string
60
			unitRate?: string
61
			paidTo?: string
62
			paidFor?: string
63
			glAccount?: { key?: string; id?: string; name?: string; href?: string }
64
			expenseType?: { key?: string; id?: string; href?: string }
65
			lineNumber?: number
66
			state?: 'draft' | 'used' | 'review' | 'analyzing'
67
			audit?: {
68
				createdDateTime?: string
69
				modifiedDateTime?: string
70
				createdBy?: string
71
				modifiedBy?: string
72
			}
73
			dimensions?: {
74
				location?: { key?: string; id?: string; name?: string; href?: string }
75
				department?: {
76
					key?: string
77
					id?: string
78
					name?: string
79
					href?: string
80
				}
81
				employee?: { key?: string; id?: string; name?: string; href?: string }
82
				project?: { key?: string; id?: string; name?: string; href?: string }
83
				customer?: { key?: string; id?: string; name?: string; href?: string }
84
				vendor?: { key?: string; id?: string; name?: string; href?: string }
85
				item?: { key?: string; id?: string; name?: string; href?: string }
86
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
87
				class?: { key?: string; id?: string; name?: string; href?: string }
88
				task?: { id?: string; key?: string; name?: string; href?: string }
89
				costType?: { id?: string; key?: string; name?: string; href?: string }
90
				asset?: { id?: string; key?: string; name?: string; href?: string }
91
				contract?: { id?: string; key?: string; name?: string; href?: string }
92
				affiliateEntity?: {
93
					key?: string
94
					id?: string
95
					href?: string
96
					name?: string
97
				}
98
			} & {
99
				location?: { key?: string; id?: string; name?: string; href?: string }
100
				department?: {
101
					key?: string
102
					id?: string
103
					name?: string
104
					href?: string
105
				}
106
			}
107
			electronicReceipt?: { id?: string; key?: string; href?: string }
108
		}[]
109
	} & { createdDate?: {}; currency?: {}; employee?: {} }
110
) {
111
	const url = new URL(
112
		`https://api.intacct.com/ia/api/v1/objects/expenses/electronic-receipt/${key}`
113
	)
114

115
	const response = await fetch(url, {
116
		method: 'PATCH',
117
		headers: {
118
			'Content-Type': 'application/json',
119
			Authorization: 'Bearer ' + auth.token
120
		},
121
		body: JSON.stringify(body)
122
	})
123
	if (!response.ok) {
124
		const text = await response.text()
125
		throw new Error(`${response.status} ${text}`)
126
	}
127
	return await response.json()
128
}
129