1 | |
2 | type SageIntacct = { |
3 | token: string |
4 | } |
5 | |
6 | * Update a payment |
7 | * Updates an existing payment by setting field values. Any fields not provided remain unchanged. |
8 | */ |
9 | export async function main( |
10 | auth: SageIntacct, |
11 | key: string, |
12 | body: { |
13 | key?: string |
14 | id?: string |
15 | href?: string |
16 | recordType?: |
17 | | 'apAdjustments' |
18 | | 'apBill' |
19 | | 'apDiscount' |
20 | | 'apAppliedAdvance' |
21 | | 'apPayment' |
22 | | 'apAdvance' |
23 | | 'arAdjustments' |
24 | | 'arDiscount' |
25 | | 'interEntityReceivable' |
26 | | 'arInvoice' |
27 | | 'arRealizedMultiCurrencyGainLoss' |
28 | | 'arAppliedAdvanceOverpayment' |
29 | | 'arReceipts' |
30 | | 'arAdvance' |
31 | | 'employeeExpenses' |
32 | | 'employeeReimbursements' |
33 | | 'expenseAdjustment' |
34 | | 'manualCheck' |
35 | | 'cmPrintedQuickCheck' |
36 | financialEntity?: { id?: string } |
37 | action?: 'draft' | 'submit' |
38 | systemGenerated?: 'true' | 'false' |
39 | state?: |
40 | | 'draft' |
41 | | 'partiallyApproved' |
42 | | 'submitted' |
43 | | 'voided' |
44 | | 'confirmed' |
45 | | 'approved' |
46 | | 'declined' |
47 | | 'delivered' |
48 | | 'printVoided' |
49 | | 'deleted' |
50 | | 'quickDelivery' |
51 | documentNumber?: string |
52 | description?: string |
53 | documentId?: string |
54 | txnDate?: string |
55 | txnPaidDate?: string |
56 | paymentDate?: string |
57 | baseCurrency?: { |
58 | currency?: string |
59 | amountToPay?: string |
60 | totalAmount?: string |
61 | totalSelected?: string |
62 | totalPaid?: string |
63 | totalDue?: string |
64 | } |
65 | txnCurrency?: { |
66 | currency?: string |
67 | amountToPay?: string |
68 | totalAmount?: string |
69 | totalSelected?: string |
70 | totalPaid?: string |
71 | totalDue?: string |
72 | } |
73 | cleared?: false | true |
74 | clearedDate?: string |
75 | isInclusiveTax?: false | true |
76 | paymentSummary?: { |
77 | key?: string |
78 | id?: string |
79 | name?: string |
80 | postingDate?: string |
81 | href?: string |
82 | } |
83 | exchangeRate?: { date?: string; rate?: string; typeId?: string } |
84 | paymentProvider?: { key?: string; id?: string; href?: string } |
85 | paymentMethod?: string |
86 | payTo?: { href?: string; key?: string; id?: string } |
87 | taxSolution?: { |
88 | key?: string |
89 | id?: string |
90 | taxCalculationMethod?: string |
91 | href?: string |
92 | } |
93 | vendor?: { |
94 | href?: string |
95 | entity?: string |
96 | key?: string |
97 | id?: string |
98 | name?: string |
99 | } |
100 | jointPayee?: { href?: string; key?: string; id?: string } |
101 | paymentRequestMethod?: |
102 | | 'useVendorPreference' |
103 | | 'generateOneRequestPerBill' |
104 | | 'mergeRequestsIntoOnePerVendor' |
105 | | 'mergeRequestIntoOnePerVendorPayToContact' |
106 | details?: { |
107 | key?: string |
108 | id?: string |
109 | href?: string |
110 | paymentDate?: string |
111 | baseCurrency?: { |
112 | paymentAmount?: string |
113 | inlineAmount?: string |
114 | discountAmount?: string |
115 | adjustmentAmount?: string |
116 | postedAdvanceAmount?: string |
117 | } |
118 | txnCurrency?: { |
119 | currency?: string |
120 | paymentAmount?: string |
121 | inlineAmount?: string |
122 | discountAmount?: string |
123 | adjustmentAmount?: string |
124 | postedAdvanceAmount?: string |
125 | } |
126 | discountDate?: string |
127 | state?: 'draft' | 'confirmed' |
128 | moduleKey?: string |
129 | apDebitAdjustment?: { href?: string; key?: string; id?: string } |
130 | apDebitAdjustmentLine?: { href?: string; key?: string; id?: string } |
131 | bill?: { href?: string; key?: string; id?: string } |
132 | billLine?: { href?: string; key?: string; id?: string } |
133 | apPayment?: { href?: string; key?: string; id?: string } |
134 | apPaymentLine?: { href?: string; key?: string; id?: string } |
135 | inlineBill?: { href?: string; key?: string; id?: string } |
136 | inlineBillLine?: { href?: string; key?: string; id?: string } |
137 | apCreditAdjustment?: { href?: string; key?: string; id?: string } |
138 | apCreditAdjustmentLine?: { href?: string; key?: string; id?: string } |
139 | apAdvance?: { key?: string; id?: string; href?: string } |
140 | apAdvanceLine?: { key?: string; id?: string; href?: string } |
141 | apPostedAdvance?: { key?: string; id?: string; href?: string } |
142 | apPostedAdvanceLine?: { key?: string; id?: string; href?: string } |
143 | jointPayee?: { |
144 | href?: string |
145 | key?: string |
146 | id?: string |
147 | printAs?: string |
148 | } |
149 | audit?: { |
150 | createdDateTime?: string |
151 | modifiedDateTime?: string |
152 | createdBy?: string |
153 | modifiedBy?: string |
154 | } |
155 | }[] |
156 | lines?: { |
157 | key?: string |
158 | id?: string |
159 | href?: string |
160 | description?: string |
161 | exchangeRate?: { date?: string; rate?: string; typeId?: string } |
162 | lineNumber?: number |
163 | baseCurrency?: { |
164 | currency?: string |
165 | amount?: string |
166 | totalPaid?: string |
167 | totalSelected?: string |
168 | } |
169 | txnCurrency?: { |
170 | currency?: string |
171 | amount?: string |
172 | totalPaid?: string |
173 | totalSelected?: string |
174 | } |
175 | paymentLineRecord?: string |
176 | baseLocation?: string |
177 | isTax?: false | true |
178 | taxDetail?: { key?: string; id?: string; href?: string } |
179 | glAccount?: { key?: string; id?: string; name?: string; href?: string } |
180 | dimensions?: { |
181 | location?: { key?: string; id?: string; name?: string; href?: string } |
182 | department?: { |
183 | key?: string |
184 | id?: string |
185 | name?: string |
186 | href?: string |
187 | } |
188 | employee?: { key?: string; id?: string; name?: string; href?: string } |
189 | project?: { key?: string; id?: string; name?: string; href?: string } |
190 | customer?: { key?: string; id?: string; name?: string; href?: string } |
191 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
192 | item?: { key?: string; id?: string; name?: string; href?: string } |
193 | warehouse?: { key?: string; id?: string; name?: string; href?: string } |
194 | class?: { key?: string; id?: string; name?: string; href?: string } |
195 | task?: { id?: string; key?: string; name?: string; href?: string } |
196 | costType?: { id?: string; key?: string; name?: string; href?: string } |
197 | asset?: { id?: string; key?: string; name?: string; href?: string } |
198 | contract?: { id?: string; key?: string; name?: string; href?: string } |
199 | affiliateEntity?: { |
200 | key?: string |
201 | id?: string |
202 | href?: string |
203 | name?: string |
204 | } |
205 | } & { |
206 | department?: { |
207 | key?: string |
208 | id?: string |
209 | name?: string |
210 | href?: string |
211 | } |
212 | location?: { key?: string; id?: string; name?: string; href?: string } |
213 | } |
214 | apPayment?: { key?: string; id?: string; href?: string } |
215 | audit?: { |
216 | createdDateTime?: string |
217 | modifiedDateTime?: string |
218 | createdBy?: string |
219 | modifiedBy?: string |
220 | } |
221 | }[] |
222 | entity?: { key?: string; id?: string; name?: string; href?: string } |
223 | audit?: { |
224 | createdDateTime?: string |
225 | modifiedDateTime?: string |
226 | createdBy?: string |
227 | modifiedBy?: string |
228 | } & { createdDateTime?: string } |
229 | } & { id?: {} } |
230 | ) { |
231 | const url = new URL(`https://api.intacct.com/ia/api/v1/objects/accounts-payable/payment/${key}`) |
232 |
|
233 | const response = await fetch(url, { |
234 | method: 'PATCH', |
235 | headers: { |
236 | 'Content-Type': 'application/json', |
237 | Authorization: 'Bearer ' + auth.token |
238 | }, |
239 | body: JSON.stringify(body) |
240 | }) |
241 | if (!response.ok) { |
242 | const text = await response.text() |
243 | throw new Error(`${response.status} ${text}`) |
244 | } |
245 | return await response.json() |
246 | } |
247 |
|