0

Update a change request

by
Published Oct 17, 2025

Updates an existing change request by setting field values. Any fields not provided remain unchanged. Permissions and other requirements SubscriptionConstruction, Project Costing and Billing User typeBusiness, Project Manager PermissionsList, View, Edit Change requests

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

9

10
Permissions and other requirements
11

12
SubscriptionConstruction, Project Costing and Billing
13
User typeBusiness, Project Manager
14
PermissionsList, View, Edit Change requests
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
		project?: { key?: string; id?: string; name?: string; href?: string }
28
		projectCustomer?: {
29
			key?: string
30
			id?: string
31
			name?: string
32
			href?: string
33
		}
34
		changeRequestDate?: string
35
		description?: string
36
		changeRequestStatus?: {
37
			key?: string
38
			id?: string
39
			workflowType?:
40
				| 'none'
41
				| 'original'
42
				| 'revision'
43
				| 'forecast'
44
				| 'approvedChange'
45
				| 'pendingChange'
46
				| 'other'
47
			href?: string
48
		}
49
		changeRequestType?: { key?: string; id?: string; href?: string }
50
		changeRequestState?: 'draft' | 'posted'
51
		costEffectiveDate?: string
52
		priceEffectiveDate?: string
53
		totalCost?: string
54
		totalPrice?: string
55
		projectChangeOrder?: { key?: string; id?: string; href?: string }
56
		projectContractLineSource?:
57
			| 'none'
58
			| 'projectChangeOrder'
59
			| 'changeRequest'
60
			| 'changeRequestLine'
61
		projectContract?: {
62
			key?: string
63
			id?: string
64
			name?: string
65
			href?: string
66
		}
67
		projectContractLine?: {
68
			key?: string
69
			id?: string
70
			name?: string
71
			href?: string
72
		}
73
		scope?: string
74
		inclusions?: string
75
		exclusions?: string
76
		terms?: string
77
		schedule?: {
78
			scheduledStartDate?: string
79
			actualStartDate?: string
80
			scheduledCompletionDate?: string
81
			revisedCompletionDate?: string
82
			substantialCompletionDate?: string
83
			actualCompletionDate?: string
84
			noticeToProceedDate?: string
85
			responseDueDate?: string
86
			executedOnDate?: string
87
			scheduleImpact?: string
88
		}
89
		internalReference?: {
90
			referenceNumber?: string
91
			initiatedBy?: { key?: string; id?: string; name?: string; href?: string }
92
			verbalApprovalBy?: {
93
				key?: string
94
				id?: string
95
				name?: string
96
				href?: string
97
			}
98
			issuedBy?: { key?: string; id?: string; name?: string; href?: string }
99
			issuedOnDate?: string
100
			approvedBy?: { key?: string; id?: string; name?: string; href?: string }
101
			approvedOnDate?: string
102
			signedBy?: { key?: string; id?: string; name?: string; href?: string }
103
			signedOnDate?: string
104
			source?: string
105
			sourceReferenceNumber?: string
106
		}
107
		externalReference?: {
108
			referenceNumber?: string
109
			verbalApprovalBy?: { key?: string; id?: string; href?: string }
110
			approvedBy?: { key?: string; id?: string; href?: string }
111
			approvedOnDate?: string
112
			signedBy?: { key?: string; id?: string; href?: string }
113
			signedOnDate?: string
114
		}
115
		location?: { key?: string; id?: string; name?: string; href?: string }
116
		changeRequestLines?: {
117
			key?: string
118
			id?: string
119
			href?: string
120
			changeRequest?: { key?: string; id?: string; href?: string }
121
			workflowType?:
122
				| 'none'
123
				| 'original'
124
				| 'revision'
125
				| 'forecast'
126
				| 'approvedChange'
127
				| 'pendingChange'
128
				| 'other'
129
			dimensions?: {
130
				location?: { key?: string; id?: string; name?: string; href?: string }
131
				department?: {
132
					key?: string
133
					id?: string
134
					name?: string
135
					href?: string
136
				}
137
				employee?: { key?: string; id?: string; name?: string; href?: string }
138
				project?: { key?: string; id?: string; name?: string; href?: string }
139
				customer?: { key?: string; id?: string; name?: string; href?: string }
140
				vendor?: { key?: string; id?: string; name?: string; href?: string }
141
				item?: { key?: string; id?: string; name?: string; href?: string }
142
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
143
				class?: { key?: string; id?: string; name?: string; href?: string }
144
				task?: { id?: string; key?: string; name?: string; href?: string }
145
				costType?: { id?: string; key?: string; name?: string; href?: string }
146
				asset?: { id?: string; key?: string; name?: string; href?: string }
147
				contract?: { id?: string; key?: string; name?: string; href?: string }
148
				affiliateEntity?: {
149
					key?: string
150
					id?: string
151
					href?: string
152
					name?: string
153
				}
154
			} & {
155
				location?: { key?: string; id?: string; name?: string; href?: string }
156
				department?: {
157
					key?: string
158
					id?: string
159
					name?: string
160
					href?: string
161
				}
162
			}
163
			numberOfProductionUnits?: string
164
			productionUnitDescription?: string
165
			quantity?: string
166
			externalUOM?: string
167
			unitCost?: string
168
			cost?: string
169
			unitPrice?: string
170
			price?: string
171
			priceMarkupPercent?: string
172
			priceMarkupAmount?: string
173
			linePrice?: string
174
			projectChangeOrder?: { key?: string; id?: string; href?: string }
175
			memo?: string
176
			projectEstimate?: { key?: string; id?: string; href?: string }
177
			glAccount?: { key?: string; id?: string; name?: string; href?: string }
178
			projectContract?: {
179
				key?: string
180
				id?: string
181
				name?: string
182
				href?: string
183
			}
184
			projectContractLine?: {
185
				key?: string
186
				id?: string
187
				name?: string
188
				href?: string
189
			}
190
			audit?: {
191
				createdDateTime?: string
192
				modifiedDateTime?: string
193
				createdBy?: string
194
				modifiedBy?: string
195
			}
196
		}[]
197
		attachment?: { key?: string; id?: string; href?: string }
198
		audit?: {
199
			createdDateTime?: string
200
			modifiedDateTime?: string
201
			createdBy?: string
202
			modifiedBy?: string
203
		}
204
		entity?: { key?: string; id?: string; name?: string; href?: string }
205
	} & { id?: {} }
206
) {
207
	const url = new URL(
208
		`https://api.intacct.com/ia/api/v1/objects/construction/change-request/${key}`
209
	)
210

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