0

Update a credit card transaction

by
Published Oct 17, 2025

Updates an existing credit card transaction by setting field values.

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 credit card transaction
7
 * Updates an existing credit card transaction by setting field values.
8
 */
9
export async function main(
10
	auth: SageIntacct,
11
	key: string,
12
	body: {
13
		key?: string
14
		id?: string
15
		href?: string
16
		txnDate?: string
17
		creditCardAccount?: { key?: string; id?: string; href?: string }
18
		referenceNumber?: string
19
		payee?: string
20
		description?: string
21
		attachment?: { key?: string; id?: string; href?: string }
22
		currency?: {
23
			baseCurrency?: string
24
			txnCurrency?: string
25
			exchangeRate?: { date?: string; rate?: number; typeId?: string }
26
		}
27
		totalEntered?: string
28
		txnTotalEntered?: string
29
		totalPaid?: string
30
		txnTotalPaid?: string
31
		whenPaid?: string
32
		state?: 'reversed' | 'reversal' | 'posted' | 'paid' | 'partiallyPaid' | 'selected'
33
		reconciliationState?: 'cleared' | 'uncleared' | 'matched'
34
		totalDue?: string
35
		txnTotalDue?: string
36
		totalSelected?: string
37
		txnTotalSelected?: string
38
		isInclusiveTax?: false | true
39
		transactionSource?: 'bank'
40
		reversedBy?: {
41
			key?: string
42
			id?: string
43
			reversalDate?: string
44
			href?: string
45
		}
46
		reversalOf?: { key?: string; id?: string; txnDate?: string; href?: string }
47
		taxSolution?: { key?: string; id?: string; href?: string }
48
		lines?: {
49
			id?: string
50
			key?: string
51
			href?: string
52
			amount?: string
53
			totalTxnAmount?: string
54
			txnAmount?: string
55
			currency?: {
56
				baseCurrency?: string
57
				txnCurrency?: string
58
				exchangeRate?: { date?: string; rate?: number }
59
			}
60
			description?: string
61
			lineNumber?: number
62
			totalPaid?: string
63
			txnTotalPaid?: string
64
			isBillable?: false | true
65
			isBilled?: false | true
66
			accountLabel?: { key?: string; id?: string; href?: string }
67
			glAccount?: { key?: string; id?: string; name?: string; href?: string }
68
			taxDetail?: {
69
				key?: string
70
				id?: string
71
				taxRate?: number
72
				href?: string
73
			}
74
			dimensions?: {
75
				location?: { key?: string; id?: string; name?: string; href?: string }
76
				department?: {
77
					key?: string
78
					id?: string
79
					name?: string
80
					href?: string
81
				}
82
				employee?: { key?: string; id?: string; name?: string; href?: string }
83
				project?: { key?: string; id?: string; name?: string; href?: string }
84
				customer?: { key?: string; id?: string; name?: string; href?: string }
85
				vendor?: { key?: string; id?: string; name?: string; href?: string }
86
				item?: { key?: string; id?: string; name?: string; href?: string }
87
				warehouse?: { key?: string; id?: string; name?: string; href?: string }
88
				class?: { key?: string; id?: string; name?: string; href?: string }
89
				task?: { id?: string; key?: string; name?: string; href?: string }
90
				costType?: { id?: string; key?: string; name?: string; href?: string }
91
				asset?: { id?: string; key?: string; name?: string; href?: string }
92
				contract?: { id?: string; key?: string; name?: string; href?: string }
93
				affiliateEntity?: {
94
					key?: string
95
					id?: string
96
					href?: string
97
					name?: string
98
				}
99
			} & {
100
				location?: { key?: string; id?: string; name?: string; href?: string }
101
				department?: {
102
					key?: string
103
					id?: string
104
					name?: string
105
					href?: string
106
				}
107
			}
108
			baseLocation?: {
109
				key?: string
110
				id?: string
111
				name?: string
112
				href?: string
113
			} & { key?: string }
114
			creditCardTxn?: { key?: string; id?: string; href?: string }
115
			audit?: {
116
				createdDateTime?: string
117
				modifiedDateTime?: string
118
				createdBy?: string
119
				modifiedBy?: string
120
			}
121
			taxEntries?: {
122
				key?: string
123
				id?: string
124
				baseTaxAmount?: string
125
				txnTaxAmount?: string
126
				taxRate?: number
127
			} & {
128
				purchasingTaxDetail?: { key?: string; id?: string; href?: string }
129
				creditCardTxnLine?: { id?: string; key?: string; href?: string }
130
			}[]
131
		}[]
132
		audit?: {
133
			createdDateTime?: string
134
			modifiedDateTime?: string
135
			createdBy?: string
136
			modifiedBy?: string
137
		}
138
		entity?: { key?: string; id?: string; name?: string; href?: string }
139
	}
140
) {
141
	const url = new URL(
142
		`https://api.intacct.com/ia/api/v1/objects/cash-management/credit-card-txn/${key}`
143
	)
144

145
	const response = await fetch(url, {
146
		method: 'PATCH',
147
		headers: {
148
			'Content-Type': 'application/json',
149
			Authorization: 'Bearer ' + auth.token
150
		},
151
		body: JSON.stringify(body)
152
	})
153
	if (!response.ok) {
154
		const text = await response.text()
155
		throw new Error(`${response.status} ${text}`)
156
	}
157
	return await response.json()
158
}
159