0

Update a contact

by
Published Oct 17, 2025

Updates an existing contact by setting field values. Any fields not provided remain unchanged. Permissions and other requirements SubscriptionCompany User typeBusiness user with admin privileges PermissionsEdit Contacts

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

9

10
Permissions and other requirements
11

12
SubscriptionCompany
13
User typeBusiness user with admin privileges
14
PermissionsEdit Contacts
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
		lastName?: string
28
		firstName?: string
29
		middleName?: string
30
		prefix?: string
31
		email1?: string
32
		email2?: string
33
		phone1?: string
34
		phone2?: string
35
		mobile?: string
36
		pager?: string
37
		fax?: string
38
		URL1?: string
39
		URL2?: string
40
		companyName?: string
41
		printAs?: string
42
		showInContactList?: false | true
43
		discount?: string
44
		status?: 'active' | 'inactive'
45
		entity?: { key?: string; id?: string; name?: string; href?: string }
46
		mailingAddress?: {
47
			addressLine1?: string
48
			addressLine2?: string
49
			addressLine3?: string
50
			city?: string
51
			state?: string
52
			postCode?: string
53
			country?: string
54
			isoCountryCode?: string
55
		}
56
		priceList?: { key?: string; id?: string; href?: string }
57
		priceSchedule?: { key?: string; id?: string; href?: string }
58
		tax?: {
59
			isTaxable?: false | true
60
			taxId?: string
61
			group?: { key?: string; id?: string; href?: string }
62
		}
63
	} & { id?: {} }
64
) {
65
	const url = new URL(`https://api.intacct.com/ia/api/v1/objects/company-config/contact/${key}`)
66

67
	const response = await fetch(url, {
68
		method: 'PATCH',
69
		headers: {
70
			'Content-Type': 'application/json',
71
			Authorization: 'Bearer ' + auth.token
72
		},
73
		body: JSON.stringify(body)
74
	})
75
	if (!response.ok) {
76
		const text = await response.text()
77
		throw new Error(`${response.status} ${text}`)
78
	}
79
	return await response.json()
80
}
81