@vqnguyen1/piece-fis-horizon 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +12 -7
- package/project.json +22 -0
- package/src/index.ts +534 -0
- package/src/lib/actions/account-aggregation.ts +360 -0
- package/src/lib/actions/account-restrictions.ts +2427 -0
- package/src/lib/actions/bank-controls.ts +2328 -0
- package/src/lib/actions/card.ts +488 -0
- package/src/lib/actions/collateral.ts +696 -0
- package/src/lib/actions/customer.ts +1691 -0
- package/src/lib/actions/demand-deposit-savings.ts +731 -0
- package/src/lib/actions/get-authorization-token.ts +73 -0
- package/src/lib/actions/loans.ts +902 -0
- package/src/lib/actions/mortgage-loan.ts +1426 -0
- package/src/lib/actions/ready-reserve.ts +818 -0
- package/src/lib/actions/safe-deposit.ts +1506 -0
- package/src/lib/actions/search-customer-relationship-summary.ts +140 -0
- package/src/lib/actions/time-deposit.ts +2922 -0
- package/src/lib/actions/transactions.ts +1310 -0
- package/src/lib/actions/transfers.ts +1581 -0
- package/src/lib/actions/user-security.ts +1032 -0
- package/tsconfig.json +19 -0
- package/tsconfig.lib.json +10 -0
- package/src/index.d.ts +0 -12
- package/src/index.js +0 -62
- package/src/index.js.map +0 -1
- package/src/lib/actions/get-authorization-token.d.ts +0 -10
- package/src/lib/actions/get-authorization-token.js +0 -68
- package/src/lib/actions/get-authorization-token.js.map +0 -1
- package/src/lib/actions/search-customer-relationship-summary.d.ts +0 -15
- package/src/lib/actions/search-customer-relationship-summary.js +0 -122
- package/src/lib/actions/search-customer-relationship-summary.js.map +0 -1
|
@@ -0,0 +1,1310 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createAction,
|
|
3
|
+
Property,
|
|
4
|
+
} from '@activepieces/pieces-framework';
|
|
5
|
+
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
|
|
6
|
+
import { fisHorizonAuth } from '../..';
|
|
7
|
+
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// POST /transactions - Add a transaction between two given internal accounts
|
|
10
|
+
// ============================================================================
|
|
11
|
+
export const transactions_add = createAction({
|
|
12
|
+
name: 'transactions_add',
|
|
13
|
+
auth: fisHorizonAuth,
|
|
14
|
+
displayName: 'Transactions - Add',
|
|
15
|
+
description: 'Add a transaction between two given internal accounts. The Transfer Transaction Process allows money to be transferred from one internal account to another and memo post if requested.',
|
|
16
|
+
props: {
|
|
17
|
+
horizonAuthorization: Property.ShortText({
|
|
18
|
+
displayName: 'Horizon Authorization Token',
|
|
19
|
+
description: 'The authorization token obtained from the Authorization - Get Token action.',
|
|
20
|
+
required: true,
|
|
21
|
+
}),
|
|
22
|
+
sourceId: Property.ShortText({
|
|
23
|
+
displayName: 'Source ID',
|
|
24
|
+
description: 'Optional: 6 character ID provided by FIS',
|
|
25
|
+
required: false,
|
|
26
|
+
}),
|
|
27
|
+
effectiveDate: Property.Number({
|
|
28
|
+
displayName: 'Effective Date',
|
|
29
|
+
description: 'Effective date in YYYYMMDD format (e.g., 20200101). If zeros are sent, the effective date is automatically set to the current processing date.',
|
|
30
|
+
required: true,
|
|
31
|
+
}),
|
|
32
|
+
amount: Property.Number({
|
|
33
|
+
displayName: 'Amount',
|
|
34
|
+
description: 'Transaction amount. Format: 13 numeric digits with two decimal places (e.g., 12345678901.23).',
|
|
35
|
+
required: true,
|
|
36
|
+
}),
|
|
37
|
+
elementSource: Property.ShortText({
|
|
38
|
+
displayName: 'Element Source',
|
|
39
|
+
description: 'Element Source (max 3 characters). ALK = ALLink. If blank, defaults to ALK.',
|
|
40
|
+
required: false,
|
|
41
|
+
}),
|
|
42
|
+
batchNumber: Property.Number({
|
|
43
|
+
displayName: 'Batch Number',
|
|
44
|
+
description: 'Batch number (0-999999). Not used for GL Transactions.',
|
|
45
|
+
required: false,
|
|
46
|
+
}),
|
|
47
|
+
elementSubSource: Property.ShortText({
|
|
48
|
+
displayName: 'Element Sub Source',
|
|
49
|
+
description: 'User defined value that identifies transmitting vendor (max 5 characters). For Fidelity Online Banking, this value must be "OLB".',
|
|
50
|
+
required: false,
|
|
51
|
+
}),
|
|
52
|
+
userId: Property.ShortText({
|
|
53
|
+
displayName: 'User ID',
|
|
54
|
+
description: 'User ID (max 10 characters).',
|
|
55
|
+
required: false,
|
|
56
|
+
}),
|
|
57
|
+
memoPostFlag: Property.StaticDropdown({
|
|
58
|
+
displayName: 'Memo Post Flag',
|
|
59
|
+
description: 'Whether to memo post the transactions. Only DD and SV transactions are memo posted.',
|
|
60
|
+
required: false,
|
|
61
|
+
options: {
|
|
62
|
+
options: [
|
|
63
|
+
{ label: 'Y - Memo post the transactions', value: 'Y' },
|
|
64
|
+
{ label: 'N - Do not memo post the transactions', value: 'N' },
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
}),
|
|
68
|
+
overrideAvailableBalance: Property.StaticDropdown({
|
|
69
|
+
displayName: 'Override Available Balance',
|
|
70
|
+
description: 'Override available balance check.',
|
|
71
|
+
required: false,
|
|
72
|
+
options: {
|
|
73
|
+
options: [
|
|
74
|
+
{ label: 'Y - Yes, Override', value: 'Y' },
|
|
75
|
+
{ label: 'N - No', value: 'N' },
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
}),
|
|
79
|
+
nextBusinessDay: Property.StaticDropdown({
|
|
80
|
+
displayName: 'Next Business Day',
|
|
81
|
+
description: 'Post to next business day or current processing day.',
|
|
82
|
+
required: false,
|
|
83
|
+
options: {
|
|
84
|
+
options: [
|
|
85
|
+
{ label: 'Y - Post the next business day', value: 'Y' },
|
|
86
|
+
{ label: 'N - Post current processing day', value: 'N' },
|
|
87
|
+
{ label: '(blank) - Use field SITNBD in file SI24x7BK', value: '' },
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
}),
|
|
91
|
+
addCreditHoldFlag: Property.StaticDropdown({
|
|
92
|
+
displayName: 'Add Credit Hold Flag',
|
|
93
|
+
description: 'When credit side of transfer is DD or SV, add a hold.',
|
|
94
|
+
required: false,
|
|
95
|
+
options: {
|
|
96
|
+
options: [
|
|
97
|
+
{ label: 'Y - Add a Hold to the Credit side', value: 'Y' },
|
|
98
|
+
{ label: 'N - Do not Add a Hold', value: 'N' },
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
}),
|
|
102
|
+
holdTypeOverride: Property.ShortText({
|
|
103
|
+
displayName: 'Hold Type Override',
|
|
104
|
+
description: 'Hold type override (max 2 characters). When blank, Hold Type is pulled from TP Middleware Control screen.',
|
|
105
|
+
required: false,
|
|
106
|
+
}),
|
|
107
|
+
holdExpirationDate: Property.Number({
|
|
108
|
+
displayName: 'Hold Expiration Date',
|
|
109
|
+
description: 'Hold expiration date in CCYYMMDD format (e.g., 20200101).',
|
|
110
|
+
required: false,
|
|
111
|
+
}),
|
|
112
|
+
holdPayeeDescription: Property.ShortText({
|
|
113
|
+
displayName: 'Hold Payee Description',
|
|
114
|
+
description: 'Hold payee description (max 25 characters). Required when Add Credit Hold Flag is "Y".',
|
|
115
|
+
required: false,
|
|
116
|
+
}),
|
|
117
|
+
// Debit Transfer Details
|
|
118
|
+
debitTransactionApplicationCode: Property.StaticDropdown({
|
|
119
|
+
displayName: 'Debit - Application Code',
|
|
120
|
+
description: 'Application code for the debit side.',
|
|
121
|
+
required: false,
|
|
122
|
+
options: {
|
|
123
|
+
options: [
|
|
124
|
+
{ label: 'BX - Safe Deposit Box Account', value: 'BX' },
|
|
125
|
+
{ label: 'DD - Demand Deposit Account', value: 'DD' },
|
|
126
|
+
{ label: 'SV - Savings', value: 'SV' },
|
|
127
|
+
{ label: 'RR - Ready Reserve', value: 'RR' },
|
|
128
|
+
{ label: 'LN - Loan (Installment, Commercial, Real Estate)', value: 'LN' },
|
|
129
|
+
{ label: 'ML - Mortgage Loan', value: 'ML' },
|
|
130
|
+
{ label: 'GL - General Ledger', value: 'GL' },
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
}),
|
|
134
|
+
debitBranch: Property.Number({
|
|
135
|
+
displayName: 'Debit - Branch',
|
|
136
|
+
description: 'Branch number for debit side (0-9999). Valid for GL application only.',
|
|
137
|
+
required: false,
|
|
138
|
+
}),
|
|
139
|
+
debitCostCenter: Property.Number({
|
|
140
|
+
displayName: 'Debit - Cost Center',
|
|
141
|
+
description: 'Cost center number for debit side (0-9999). Valid for GL application only.',
|
|
142
|
+
required: false,
|
|
143
|
+
}),
|
|
144
|
+
debitAccountNumber: Property.ShortText({
|
|
145
|
+
displayName: 'Debit - Account Number',
|
|
146
|
+
description: 'Account number for debit side (max 20 characters).',
|
|
147
|
+
required: false,
|
|
148
|
+
}),
|
|
149
|
+
debitTransactionCode: Property.Number({
|
|
150
|
+
displayName: 'Debit - Transaction Code',
|
|
151
|
+
description: 'Transaction code for debit side (0-9999).',
|
|
152
|
+
required: false,
|
|
153
|
+
}),
|
|
154
|
+
debitTransactionDescription1: Property.ShortText({
|
|
155
|
+
displayName: 'Debit - Description 1',
|
|
156
|
+
description: 'Transaction description 1 for debit side (max 40 characters).',
|
|
157
|
+
required: false,
|
|
158
|
+
}),
|
|
159
|
+
debitTransactionDescription2: Property.ShortText({
|
|
160
|
+
displayName: 'Debit - Description 2',
|
|
161
|
+
description: 'Transaction description 2 for debit side (max 40 characters).',
|
|
162
|
+
required: false,
|
|
163
|
+
}),
|
|
164
|
+
debitTransactionDescription3: Property.ShortText({
|
|
165
|
+
displayName: 'Debit - Description 3',
|
|
166
|
+
description: 'Transaction description 3 for debit side (max 40 characters).',
|
|
167
|
+
required: false,
|
|
168
|
+
}),
|
|
169
|
+
debitTransactionDescription4: Property.ShortText({
|
|
170
|
+
displayName: 'Debit - Description 4',
|
|
171
|
+
description: 'Transaction description 4 for debit side (max 40 characters).',
|
|
172
|
+
required: false,
|
|
173
|
+
}),
|
|
174
|
+
debitTransactionDescription5: Property.ShortText({
|
|
175
|
+
displayName: 'Debit - Description 5',
|
|
176
|
+
description: 'Transaction description 5 for debit side (max 40 characters).',
|
|
177
|
+
required: false,
|
|
178
|
+
}),
|
|
179
|
+
debitTransactionDescription6: Property.ShortText({
|
|
180
|
+
displayName: 'Debit - Description 6',
|
|
181
|
+
description: 'Transaction description 6 for debit side (max 40 characters).',
|
|
182
|
+
required: false,
|
|
183
|
+
}),
|
|
184
|
+
debitTransactionDescription7: Property.ShortText({
|
|
185
|
+
displayName: 'Debit - Description 7',
|
|
186
|
+
description: 'Transaction description 7 for debit side (max 40 characters).',
|
|
187
|
+
required: false,
|
|
188
|
+
}),
|
|
189
|
+
debitSerialNumber: Property.Number({
|
|
190
|
+
displayName: 'Debit - Serial Number',
|
|
191
|
+
description: 'Serial number for debit side (0-999999999999999).',
|
|
192
|
+
required: false,
|
|
193
|
+
}),
|
|
194
|
+
debitSequenceNumber: Property.ShortText({
|
|
195
|
+
displayName: 'Debit - Sequence Number',
|
|
196
|
+
description: 'Sequence number / trace number for debit side (max 30 characters). Right justified, zero filled.',
|
|
197
|
+
required: false,
|
|
198
|
+
}),
|
|
199
|
+
// Credit Transfer Details
|
|
200
|
+
creditTransactionApplicationCode: Property.StaticDropdown({
|
|
201
|
+
displayName: 'Credit - Application Code',
|
|
202
|
+
description: 'Application code for the credit side.',
|
|
203
|
+
required: false,
|
|
204
|
+
options: {
|
|
205
|
+
options: [
|
|
206
|
+
{ label: 'BX - Safe Deposit Box Account', value: 'BX' },
|
|
207
|
+
{ label: 'DD - Demand Deposit Account', value: 'DD' },
|
|
208
|
+
{ label: 'SV - Savings', value: 'SV' },
|
|
209
|
+
{ label: 'RR - Ready Reserve', value: 'RR' },
|
|
210
|
+
{ label: 'LN - Loan (Installment, Commercial, Real Estate)', value: 'LN' },
|
|
211
|
+
{ label: 'ML - Mortgage Loan', value: 'ML' },
|
|
212
|
+
{ label: 'GL - General Ledger', value: 'GL' },
|
|
213
|
+
],
|
|
214
|
+
},
|
|
215
|
+
}),
|
|
216
|
+
creditBranch: Property.Number({
|
|
217
|
+
displayName: 'Credit - Branch',
|
|
218
|
+
description: 'Branch number for credit side (0-9999). Valid for GL application only.',
|
|
219
|
+
required: false,
|
|
220
|
+
}),
|
|
221
|
+
creditCostCenter: Property.Number({
|
|
222
|
+
displayName: 'Credit - Cost Center',
|
|
223
|
+
description: 'Cost center number for credit side (0-9999). Valid for GL application only.',
|
|
224
|
+
required: false,
|
|
225
|
+
}),
|
|
226
|
+
creditAccountNumber: Property.ShortText({
|
|
227
|
+
displayName: 'Credit - Account Number',
|
|
228
|
+
description: 'Account number for credit side (max 20 characters).',
|
|
229
|
+
required: false,
|
|
230
|
+
}),
|
|
231
|
+
creditTransactionCode: Property.Number({
|
|
232
|
+
displayName: 'Credit - Transaction Code',
|
|
233
|
+
description: 'Transaction code for credit side (0-9999).',
|
|
234
|
+
required: false,
|
|
235
|
+
}),
|
|
236
|
+
creditTransactionDescription1: Property.ShortText({
|
|
237
|
+
displayName: 'Credit - Description 1',
|
|
238
|
+
description: 'Transaction description 1 for credit side (max 40 characters).',
|
|
239
|
+
required: false,
|
|
240
|
+
}),
|
|
241
|
+
creditTransactionDescription2: Property.ShortText({
|
|
242
|
+
displayName: 'Credit - Description 2',
|
|
243
|
+
description: 'Transaction description 2 for credit side (max 40 characters).',
|
|
244
|
+
required: false,
|
|
245
|
+
}),
|
|
246
|
+
creditTransactionDescription3: Property.ShortText({
|
|
247
|
+
displayName: 'Credit - Description 3',
|
|
248
|
+
description: 'Transaction description 3 for credit side (max 40 characters).',
|
|
249
|
+
required: false,
|
|
250
|
+
}),
|
|
251
|
+
creditTransactionDescription4: Property.ShortText({
|
|
252
|
+
displayName: 'Credit - Description 4',
|
|
253
|
+
description: 'Transaction description 4 for credit side (max 40 characters).',
|
|
254
|
+
required: false,
|
|
255
|
+
}),
|
|
256
|
+
creditTransactionDescription5: Property.ShortText({
|
|
257
|
+
displayName: 'Credit - Description 5',
|
|
258
|
+
description: 'Transaction description 5 for credit side (max 40 characters).',
|
|
259
|
+
required: false,
|
|
260
|
+
}),
|
|
261
|
+
creditTransactionDescription6: Property.ShortText({
|
|
262
|
+
displayName: 'Credit - Description 6',
|
|
263
|
+
description: 'Transaction description 6 for credit side (max 40 characters).',
|
|
264
|
+
required: false,
|
|
265
|
+
}),
|
|
266
|
+
creditTransactionDescription7: Property.ShortText({
|
|
267
|
+
displayName: 'Credit - Description 7',
|
|
268
|
+
description: 'Transaction description 7 for credit side (max 40 characters).',
|
|
269
|
+
required: false,
|
|
270
|
+
}),
|
|
271
|
+
creditSerialNumber: Property.Number({
|
|
272
|
+
displayName: 'Credit - Serial Number',
|
|
273
|
+
description: 'Serial number for credit side (0-999999999999999).',
|
|
274
|
+
required: false,
|
|
275
|
+
}),
|
|
276
|
+
creditSequenceNumber: Property.ShortText({
|
|
277
|
+
displayName: 'Credit - Sequence Number',
|
|
278
|
+
description: 'Sequence number / trace number for credit side (max 30 characters). Right justified, zero filled.',
|
|
279
|
+
required: false,
|
|
280
|
+
}),
|
|
281
|
+
},
|
|
282
|
+
async run(context) {
|
|
283
|
+
const auth = context.auth as any;
|
|
284
|
+
const baseUrl = auth['baseUrl'];
|
|
285
|
+
const organizationId = auth['organizationId'];
|
|
286
|
+
const {
|
|
287
|
+
horizonAuthorization,
|
|
288
|
+
sourceId,
|
|
289
|
+
effectiveDate,
|
|
290
|
+
amount,
|
|
291
|
+
elementSource,
|
|
292
|
+
batchNumber,
|
|
293
|
+
elementSubSource,
|
|
294
|
+
userId,
|
|
295
|
+
memoPostFlag,
|
|
296
|
+
overrideAvailableBalance,
|
|
297
|
+
nextBusinessDay,
|
|
298
|
+
addCreditHoldFlag,
|
|
299
|
+
holdTypeOverride,
|
|
300
|
+
holdExpirationDate,
|
|
301
|
+
holdPayeeDescription,
|
|
302
|
+
debitTransactionApplicationCode,
|
|
303
|
+
debitBranch,
|
|
304
|
+
debitCostCenter,
|
|
305
|
+
debitAccountNumber,
|
|
306
|
+
debitTransactionCode,
|
|
307
|
+
debitTransactionDescription1,
|
|
308
|
+
debitTransactionDescription2,
|
|
309
|
+
debitTransactionDescription3,
|
|
310
|
+
debitTransactionDescription4,
|
|
311
|
+
debitTransactionDescription5,
|
|
312
|
+
debitTransactionDescription6,
|
|
313
|
+
debitTransactionDescription7,
|
|
314
|
+
debitSerialNumber,
|
|
315
|
+
debitSequenceNumber,
|
|
316
|
+
creditTransactionApplicationCode,
|
|
317
|
+
creditBranch,
|
|
318
|
+
creditCostCenter,
|
|
319
|
+
creditAccountNumber,
|
|
320
|
+
creditTransactionCode,
|
|
321
|
+
creditTransactionDescription1,
|
|
322
|
+
creditTransactionDescription2,
|
|
323
|
+
creditTransactionDescription3,
|
|
324
|
+
creditTransactionDescription4,
|
|
325
|
+
creditTransactionDescription5,
|
|
326
|
+
creditTransactionDescription6,
|
|
327
|
+
creditTransactionDescription7,
|
|
328
|
+
creditSerialNumber,
|
|
329
|
+
creditSequenceNumber,
|
|
330
|
+
} = context.propsValue;
|
|
331
|
+
|
|
332
|
+
const uuid = crypto.randomUUID();
|
|
333
|
+
|
|
334
|
+
const headers: Record<string, string> = {
|
|
335
|
+
'accept': 'application/json',
|
|
336
|
+
'Content-Type': 'application/json',
|
|
337
|
+
'organization-id': organizationId,
|
|
338
|
+
'uuid': uuid,
|
|
339
|
+
'horizon-authorization': horizonAuthorization,
|
|
340
|
+
};
|
|
341
|
+
|
|
342
|
+
if (sourceId) {
|
|
343
|
+
headers['source-id'] = sourceId;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
const body: Record<string, unknown> = {
|
|
347
|
+
effectiveDate,
|
|
348
|
+
amount,
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
if (elementSource !== undefined && elementSource !== null && elementSource !== '') {
|
|
352
|
+
body['elementSource'] = elementSource;
|
|
353
|
+
}
|
|
354
|
+
if (batchNumber !== undefined && batchNumber !== null) {
|
|
355
|
+
body['batchNumber'] = batchNumber;
|
|
356
|
+
}
|
|
357
|
+
if (elementSubSource !== undefined && elementSubSource !== null && elementSubSource !== '') {
|
|
358
|
+
body['elementSubSource'] = elementSubSource;
|
|
359
|
+
}
|
|
360
|
+
if (userId !== undefined && userId !== null && userId !== '') {
|
|
361
|
+
body['userId'] = userId;
|
|
362
|
+
}
|
|
363
|
+
if (memoPostFlag !== undefined && memoPostFlag !== null && memoPostFlag !== '') {
|
|
364
|
+
body['memoPostFlag'] = memoPostFlag;
|
|
365
|
+
}
|
|
366
|
+
if (overrideAvailableBalance !== undefined && overrideAvailableBalance !== null && overrideAvailableBalance !== '') {
|
|
367
|
+
body['overrideAvailableBalance'] = overrideAvailableBalance;
|
|
368
|
+
}
|
|
369
|
+
if (nextBusinessDay !== undefined && nextBusinessDay !== null) {
|
|
370
|
+
body['nextBusinessDay'] = nextBusinessDay;
|
|
371
|
+
}
|
|
372
|
+
if (addCreditHoldFlag !== undefined && addCreditHoldFlag !== null && addCreditHoldFlag !== '') {
|
|
373
|
+
body['addCreditHoldFlag'] = addCreditHoldFlag;
|
|
374
|
+
}
|
|
375
|
+
if (holdTypeOverride !== undefined && holdTypeOverride !== null && holdTypeOverride !== '') {
|
|
376
|
+
body['holdTypeOverride'] = holdTypeOverride;
|
|
377
|
+
}
|
|
378
|
+
if (holdExpirationDate !== undefined && holdExpirationDate !== null) {
|
|
379
|
+
body['holdExpirationDate'] = holdExpirationDate;
|
|
380
|
+
}
|
|
381
|
+
if (holdPayeeDescription !== undefined && holdPayeeDescription !== null && holdPayeeDescription !== '') {
|
|
382
|
+
body['holdPayeeDescription'] = holdPayeeDescription;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
// Build debit object if any debit fields are provided
|
|
386
|
+
const debit: Record<string, unknown> = {};
|
|
387
|
+
if (debitTransactionApplicationCode !== undefined && debitTransactionApplicationCode !== null && debitTransactionApplicationCode !== '') {
|
|
388
|
+
debit['transactionApplicationCode'] = debitTransactionApplicationCode;
|
|
389
|
+
}
|
|
390
|
+
if (debitBranch !== undefined && debitBranch !== null) {
|
|
391
|
+
debit['branch'] = debitBranch;
|
|
392
|
+
}
|
|
393
|
+
if (debitCostCenter !== undefined && debitCostCenter !== null) {
|
|
394
|
+
debit['costCenter'] = debitCostCenter;
|
|
395
|
+
}
|
|
396
|
+
if (debitAccountNumber !== undefined && debitAccountNumber !== null && debitAccountNumber !== '') {
|
|
397
|
+
debit['accountNumber'] = debitAccountNumber;
|
|
398
|
+
}
|
|
399
|
+
if (debitTransactionCode !== undefined && debitTransactionCode !== null) {
|
|
400
|
+
debit['transactionCode'] = debitTransactionCode;
|
|
401
|
+
}
|
|
402
|
+
if (debitTransactionDescription1 !== undefined && debitTransactionDescription1 !== null && debitTransactionDescription1 !== '') {
|
|
403
|
+
debit['transactionDescription1'] = debitTransactionDescription1;
|
|
404
|
+
}
|
|
405
|
+
if (debitTransactionDescription2 !== undefined && debitTransactionDescription2 !== null && debitTransactionDescription2 !== '') {
|
|
406
|
+
debit['transactionDescription2'] = debitTransactionDescription2;
|
|
407
|
+
}
|
|
408
|
+
if (debitTransactionDescription3 !== undefined && debitTransactionDescription3 !== null && debitTransactionDescription3 !== '') {
|
|
409
|
+
debit['transactionDescription3'] = debitTransactionDescription3;
|
|
410
|
+
}
|
|
411
|
+
if (debitTransactionDescription4 !== undefined && debitTransactionDescription4 !== null && debitTransactionDescription4 !== '') {
|
|
412
|
+
debit['transactionDescription4'] = debitTransactionDescription4;
|
|
413
|
+
}
|
|
414
|
+
if (debitTransactionDescription5 !== undefined && debitTransactionDescription5 !== null && debitTransactionDescription5 !== '') {
|
|
415
|
+
debit['transactionDescription5'] = debitTransactionDescription5;
|
|
416
|
+
}
|
|
417
|
+
if (debitTransactionDescription6 !== undefined && debitTransactionDescription6 !== null && debitTransactionDescription6 !== '') {
|
|
418
|
+
debit['transactionDescription6'] = debitTransactionDescription6;
|
|
419
|
+
}
|
|
420
|
+
if (debitTransactionDescription7 !== undefined && debitTransactionDescription7 !== null && debitTransactionDescription7 !== '') {
|
|
421
|
+
debit['transactionDescription7'] = debitTransactionDescription7;
|
|
422
|
+
}
|
|
423
|
+
if (debitSerialNumber !== undefined && debitSerialNumber !== null) {
|
|
424
|
+
debit['serialNumber'] = debitSerialNumber;
|
|
425
|
+
}
|
|
426
|
+
if (debitSequenceNumber !== undefined && debitSequenceNumber !== null && debitSequenceNumber !== '') {
|
|
427
|
+
debit['sequenceNumber'] = debitSequenceNumber;
|
|
428
|
+
}
|
|
429
|
+
if (Object.keys(debit).length > 0) {
|
|
430
|
+
body['debit'] = debit;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
// Build credit object if any credit fields are provided
|
|
434
|
+
const credit: Record<string, unknown> = {};
|
|
435
|
+
if (creditTransactionApplicationCode !== undefined && creditTransactionApplicationCode !== null && creditTransactionApplicationCode !== '') {
|
|
436
|
+
credit['transactionApplicationCode'] = creditTransactionApplicationCode;
|
|
437
|
+
}
|
|
438
|
+
if (creditBranch !== undefined && creditBranch !== null) {
|
|
439
|
+
credit['branch'] = creditBranch;
|
|
440
|
+
}
|
|
441
|
+
if (creditCostCenter !== undefined && creditCostCenter !== null) {
|
|
442
|
+
credit['costCenter'] = creditCostCenter;
|
|
443
|
+
}
|
|
444
|
+
if (creditAccountNumber !== undefined && creditAccountNumber !== null && creditAccountNumber !== '') {
|
|
445
|
+
credit['accountNumber'] = creditAccountNumber;
|
|
446
|
+
}
|
|
447
|
+
if (creditTransactionCode !== undefined && creditTransactionCode !== null) {
|
|
448
|
+
credit['transactionCode'] = creditTransactionCode;
|
|
449
|
+
}
|
|
450
|
+
if (creditTransactionDescription1 !== undefined && creditTransactionDescription1 !== null && creditTransactionDescription1 !== '') {
|
|
451
|
+
credit['transactionDescription1'] = creditTransactionDescription1;
|
|
452
|
+
}
|
|
453
|
+
if (creditTransactionDescription2 !== undefined && creditTransactionDescription2 !== null && creditTransactionDescription2 !== '') {
|
|
454
|
+
credit['transactionDescription2'] = creditTransactionDescription2;
|
|
455
|
+
}
|
|
456
|
+
if (creditTransactionDescription3 !== undefined && creditTransactionDescription3 !== null && creditTransactionDescription3 !== '') {
|
|
457
|
+
credit['transactionDescription3'] = creditTransactionDescription3;
|
|
458
|
+
}
|
|
459
|
+
if (creditTransactionDescription4 !== undefined && creditTransactionDescription4 !== null && creditTransactionDescription4 !== '') {
|
|
460
|
+
credit['transactionDescription4'] = creditTransactionDescription4;
|
|
461
|
+
}
|
|
462
|
+
if (creditTransactionDescription5 !== undefined && creditTransactionDescription5 !== null && creditTransactionDescription5 !== '') {
|
|
463
|
+
credit['transactionDescription5'] = creditTransactionDescription5;
|
|
464
|
+
}
|
|
465
|
+
if (creditTransactionDescription6 !== undefined && creditTransactionDescription6 !== null && creditTransactionDescription6 !== '') {
|
|
466
|
+
credit['transactionDescription6'] = creditTransactionDescription6;
|
|
467
|
+
}
|
|
468
|
+
if (creditTransactionDescription7 !== undefined && creditTransactionDescription7 !== null && creditTransactionDescription7 !== '') {
|
|
469
|
+
credit['transactionDescription7'] = creditTransactionDescription7;
|
|
470
|
+
}
|
|
471
|
+
if (creditSerialNumber !== undefined && creditSerialNumber !== null) {
|
|
472
|
+
credit['serialNumber'] = creditSerialNumber;
|
|
473
|
+
}
|
|
474
|
+
if (creditSequenceNumber !== undefined && creditSequenceNumber !== null && creditSequenceNumber !== '') {
|
|
475
|
+
credit['sequenceNumber'] = creditSequenceNumber;
|
|
476
|
+
}
|
|
477
|
+
if (Object.keys(credit).length > 0) {
|
|
478
|
+
body['credit'] = credit;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
const response = await httpClient.sendRequest({
|
|
482
|
+
method: HttpMethod.POST,
|
|
483
|
+
url: `${baseUrl}/transactions/v1/transactions`,
|
|
484
|
+
headers,
|
|
485
|
+
body,
|
|
486
|
+
});
|
|
487
|
+
|
|
488
|
+
return response.body;
|
|
489
|
+
},
|
|
490
|
+
});
|
|
491
|
+
|
|
492
|
+
// ============================================================================
|
|
493
|
+
// POST /batch-transactions - Add a batch of transactions for given internal accounts
|
|
494
|
+
// ============================================================================
|
|
495
|
+
export const transactions_add_batch = createAction({
|
|
496
|
+
name: 'transactions_add_batch',
|
|
497
|
+
auth: fisHorizonAuth,
|
|
498
|
+
displayName: 'Transactions - Add Batch',
|
|
499
|
+
description: 'Add a batch of transactions for given internal accounts. This transaction is used to import a batch of transactions for internal accounts.',
|
|
500
|
+
props: {
|
|
501
|
+
horizonAuthorization: Property.ShortText({
|
|
502
|
+
displayName: 'Horizon Authorization Token',
|
|
503
|
+
description: 'The authorization token obtained from the Authorization - Get Token action.',
|
|
504
|
+
required: true,
|
|
505
|
+
}),
|
|
506
|
+
sourceId: Property.ShortText({
|
|
507
|
+
displayName: 'Source ID',
|
|
508
|
+
description: 'Optional: 6 character ID provided by FIS',
|
|
509
|
+
required: false,
|
|
510
|
+
}),
|
|
511
|
+
subSource: Property.ShortText({
|
|
512
|
+
displayName: 'Sub Source',
|
|
513
|
+
description: 'User defined value that identifies transmitting vendor (max 5 characters). For Fidelity Online Banking, this value must be "OLB".',
|
|
514
|
+
required: false,
|
|
515
|
+
}),
|
|
516
|
+
controlAmount: Property.Number({
|
|
517
|
+
displayName: 'Control Amount',
|
|
518
|
+
description: 'Total amount of debits or credits (the higher amount). Format: 13 numeric digits including two decimal places.',
|
|
519
|
+
required: true,
|
|
520
|
+
}),
|
|
521
|
+
totalTransactions: Property.Number({
|
|
522
|
+
displayName: 'Total Transactions',
|
|
523
|
+
description: 'Total number of transactions defined as part of the entire batch (0-999999999).',
|
|
524
|
+
required: true,
|
|
525
|
+
}),
|
|
526
|
+
totalNumberOfRecords: Property.Number({
|
|
527
|
+
displayName: 'Total Number of Records',
|
|
528
|
+
description: 'Total number of records in this input string (0-999).',
|
|
529
|
+
required: true,
|
|
530
|
+
}),
|
|
531
|
+
userId: Property.ShortText({
|
|
532
|
+
displayName: 'User ID',
|
|
533
|
+
description: 'User ID (max 10 characters).',
|
|
534
|
+
required: false,
|
|
535
|
+
}),
|
|
536
|
+
overrideNsfBalances: Property.StaticDropdown({
|
|
537
|
+
displayName: 'Override NSF Balances',
|
|
538
|
+
description: 'Override non-sufficient funds.',
|
|
539
|
+
required: true,
|
|
540
|
+
options: {
|
|
541
|
+
options: [
|
|
542
|
+
{ label: 'Y - Yes, Override', value: 'Y' },
|
|
543
|
+
{ label: 'N - No', value: 'N' },
|
|
544
|
+
],
|
|
545
|
+
},
|
|
546
|
+
}),
|
|
547
|
+
nextBusinessDayTransaction: Property.StaticDropdown({
|
|
548
|
+
displayName: 'Next Business Day Transaction',
|
|
549
|
+
description: 'Post to next business day or current processing day.',
|
|
550
|
+
required: true,
|
|
551
|
+
options: {
|
|
552
|
+
options: [
|
|
553
|
+
{ label: 'Y - Post the next business day', value: 'Y' },
|
|
554
|
+
{ label: 'N - Post current processing day', value: 'N' },
|
|
555
|
+
{ label: '(blank) - Use field SITNBD in file SI24x7BK', value: '' },
|
|
556
|
+
],
|
|
557
|
+
},
|
|
558
|
+
}),
|
|
559
|
+
moreFlag: Property.StaticDropdown({
|
|
560
|
+
displayName: 'More Flag',
|
|
561
|
+
description: 'Indicates if there are more records.',
|
|
562
|
+
required: true,
|
|
563
|
+
options: {
|
|
564
|
+
options: [
|
|
565
|
+
{ label: 'Y - There are more records', value: 'Y' },
|
|
566
|
+
{ label: 'N - There are no more records', value: 'N' },
|
|
567
|
+
],
|
|
568
|
+
},
|
|
569
|
+
}),
|
|
570
|
+
firstNext: Property.StaticDropdown({
|
|
571
|
+
displayName: 'First/Next',
|
|
572
|
+
description: 'First request or next request for additional transactions.',
|
|
573
|
+
required: true,
|
|
574
|
+
options: {
|
|
575
|
+
options: [
|
|
576
|
+
{ label: 'F - First request', value: 'F' },
|
|
577
|
+
{ label: 'N - Next request for additional transactions', value: 'N' },
|
|
578
|
+
],
|
|
579
|
+
},
|
|
580
|
+
}),
|
|
581
|
+
transactionSequence: Property.Json({
|
|
582
|
+
displayName: 'Transaction Sequence',
|
|
583
|
+
description: 'Array of transaction objects. Each object should contain: amount, applicationCode (CD/DD/GL/RR/SV/BX/IR/LN/ML), effectiveDate (YYYYMMDD), account, transactionCode. Optional: branch, centerNumber, transactionDescription1-7, serialNumber, traceNumber, maintenanceDate, maintenanceTime.',
|
|
584
|
+
required: false,
|
|
585
|
+
}),
|
|
586
|
+
},
|
|
587
|
+
async run(context) {
|
|
588
|
+
const auth = context.auth as any;
|
|
589
|
+
const baseUrl = auth['baseUrl'];
|
|
590
|
+
const organizationId = auth['organizationId'];
|
|
591
|
+
const {
|
|
592
|
+
horizonAuthorization,
|
|
593
|
+
sourceId,
|
|
594
|
+
subSource,
|
|
595
|
+
controlAmount,
|
|
596
|
+
totalTransactions,
|
|
597
|
+
totalNumberOfRecords,
|
|
598
|
+
userId,
|
|
599
|
+
overrideNsfBalances,
|
|
600
|
+
nextBusinessDayTransaction,
|
|
601
|
+
moreFlag,
|
|
602
|
+
firstNext,
|
|
603
|
+
transactionSequence,
|
|
604
|
+
} = context.propsValue;
|
|
605
|
+
|
|
606
|
+
const uuid = crypto.randomUUID();
|
|
607
|
+
|
|
608
|
+
const headers: Record<string, string> = {
|
|
609
|
+
'accept': 'application/json',
|
|
610
|
+
'Content-Type': 'application/json',
|
|
611
|
+
'organization-id': organizationId,
|
|
612
|
+
'uuid': uuid,
|
|
613
|
+
'horizon-authorization': horizonAuthorization,
|
|
614
|
+
};
|
|
615
|
+
|
|
616
|
+
if (sourceId) {
|
|
617
|
+
headers['source-id'] = sourceId;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
const body: Record<string, unknown> = {
|
|
621
|
+
controlAmount,
|
|
622
|
+
totalTransactions,
|
|
623
|
+
totalNumberOfRecords,
|
|
624
|
+
overrideNsfBalances,
|
|
625
|
+
nextBusinessDayTransaction,
|
|
626
|
+
moreFlag,
|
|
627
|
+
firstNext,
|
|
628
|
+
};
|
|
629
|
+
|
|
630
|
+
if (subSource !== undefined && subSource !== null && subSource !== '') {
|
|
631
|
+
body['subSource'] = subSource;
|
|
632
|
+
}
|
|
633
|
+
if (userId !== undefined && userId !== null && userId !== '') {
|
|
634
|
+
body['userId'] = userId;
|
|
635
|
+
}
|
|
636
|
+
if (transactionSequence !== undefined && transactionSequence !== null) {
|
|
637
|
+
body['transactionSequence'] = transactionSequence;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
const response = await httpClient.sendRequest({
|
|
641
|
+
method: HttpMethod.POST,
|
|
642
|
+
url: `${baseUrl}/transactions/v1/batch-transactions`,
|
|
643
|
+
headers,
|
|
644
|
+
body,
|
|
645
|
+
});
|
|
646
|
+
|
|
647
|
+
return response.body;
|
|
648
|
+
},
|
|
649
|
+
});
|
|
650
|
+
|
|
651
|
+
// ============================================================================
|
|
652
|
+
// POST /memo-transactions - Add a memo post to a given account
|
|
653
|
+
// ============================================================================
|
|
654
|
+
export const transactions_add_memo = createAction({
|
|
655
|
+
name: 'transactions_add_memo',
|
|
656
|
+
auth: fisHorizonAuth,
|
|
657
|
+
displayName: 'Transactions - Add Memo',
|
|
658
|
+
description: 'Add a memo post to a given account. This transaction is designed to add a memo post to a given account.',
|
|
659
|
+
props: {
|
|
660
|
+
horizonAuthorization: Property.ShortText({
|
|
661
|
+
displayName: 'Horizon Authorization Token',
|
|
662
|
+
description: 'The authorization token obtained from the Authorization - Get Token action.',
|
|
663
|
+
required: true,
|
|
664
|
+
}),
|
|
665
|
+
sourceId: Property.ShortText({
|
|
666
|
+
displayName: 'Source ID',
|
|
667
|
+
description: 'Optional: 6 character ID provided by FIS',
|
|
668
|
+
required: false,
|
|
669
|
+
}),
|
|
670
|
+
applicationCode: Property.StaticDropdown({
|
|
671
|
+
displayName: 'Application Code',
|
|
672
|
+
description: 'Application code. All applications write to TELTHS file, only DD/SV/LN/CD/IR update balances.',
|
|
673
|
+
required: true,
|
|
674
|
+
options: {
|
|
675
|
+
options: [
|
|
676
|
+
{ label: 'DD - Demand Deposits', value: 'DD' },
|
|
677
|
+
{ label: 'SV - Savings', value: 'SV' },
|
|
678
|
+
{ label: 'LN - Loans', value: 'LN' },
|
|
679
|
+
{ label: 'CD - Certificate', value: 'CD' },
|
|
680
|
+
{ label: 'IR - Retirement', value: 'IR' },
|
|
681
|
+
],
|
|
682
|
+
},
|
|
683
|
+
}),
|
|
684
|
+
accountNumber: Property.ShortText({
|
|
685
|
+
displayName: 'Account Number',
|
|
686
|
+
description: 'Account number (max 20 characters).',
|
|
687
|
+
required: true,
|
|
688
|
+
}),
|
|
689
|
+
transactionAmount: Property.Number({
|
|
690
|
+
displayName: 'Transaction Amount',
|
|
691
|
+
description: 'Transaction amount. This amount should always be positive.',
|
|
692
|
+
required: true,
|
|
693
|
+
}),
|
|
694
|
+
transactionPostDate: Property.ShortText({
|
|
695
|
+
displayName: 'Transaction Post Date',
|
|
696
|
+
description: 'Transaction post date in YYYYMMDD format (e.g., 20210630).',
|
|
697
|
+
required: false,
|
|
698
|
+
}),
|
|
699
|
+
transactionCode: Property.ShortText({
|
|
700
|
+
displayName: 'Transaction Code',
|
|
701
|
+
description: 'Transaction code (max 4 characters). If zeros is sent, 0020 is used when Debit or Credit equals "C" and 0090 when "D".',
|
|
702
|
+
required: false,
|
|
703
|
+
}),
|
|
704
|
+
debitCreditFlag: Property.StaticDropdown({
|
|
705
|
+
displayName: 'Debit/Credit Flag',
|
|
706
|
+
description: 'Transaction type - Debit or Credit. Only one of Transaction Code or Debit/Credit Flag is required.',
|
|
707
|
+
required: false,
|
|
708
|
+
options: {
|
|
709
|
+
options: [
|
|
710
|
+
{ label: 'D - Debit', value: 'D' },
|
|
711
|
+
{ label: 'C - Credit', value: 'C' },
|
|
712
|
+
],
|
|
713
|
+
},
|
|
714
|
+
}),
|
|
715
|
+
transactionCheckNumber: Property.Number({
|
|
716
|
+
displayName: 'Transaction Check Number',
|
|
717
|
+
description: 'Check number of the transaction, if applicable (0-999999999999999).',
|
|
718
|
+
required: false,
|
|
719
|
+
}),
|
|
720
|
+
transactionDescription1: Property.ShortText({
|
|
721
|
+
displayName: 'Transaction Description 1',
|
|
722
|
+
description: 'Description line 1 of the transaction (max 40 characters).',
|
|
723
|
+
required: false,
|
|
724
|
+
}),
|
|
725
|
+
transactionDescription2: Property.ShortText({
|
|
726
|
+
displayName: 'Transaction Description 2',
|
|
727
|
+
description: 'Description line 2 of the transaction (max 40 characters).',
|
|
728
|
+
required: false,
|
|
729
|
+
}),
|
|
730
|
+
updateBalanceFile: Property.StaticDropdown({
|
|
731
|
+
displayName: 'Update Balance File',
|
|
732
|
+
description: 'Updates available balance. When "Y" or blank: DD/SV updates Memo Debit/Credits today fields, CD/IR updates Available balance and Memo Debit/Credits today fields.',
|
|
733
|
+
required: false,
|
|
734
|
+
options: {
|
|
735
|
+
options: [
|
|
736
|
+
{ label: 'Y - Update Balance Files', value: 'Y' },
|
|
737
|
+
{ label: 'N - Do not update Balance Files', value: 'N' },
|
|
738
|
+
{ label: '(blank) - Update Balance Files', value: '' },
|
|
739
|
+
],
|
|
740
|
+
},
|
|
741
|
+
}),
|
|
742
|
+
updateTellerActivityFile: Property.StaticDropdown({
|
|
743
|
+
displayName: 'Update Teller Activity File',
|
|
744
|
+
description: 'All applications will write to/update TELTHS file.',
|
|
745
|
+
required: false,
|
|
746
|
+
options: {
|
|
747
|
+
options: [
|
|
748
|
+
{ label: 'Y - Update TELTHS', value: 'Y' },
|
|
749
|
+
{ label: 'N - Do not update TELTHS', value: 'N' },
|
|
750
|
+
{ label: '(blank) - Update TELTHS', value: '' },
|
|
751
|
+
],
|
|
752
|
+
},
|
|
753
|
+
}),
|
|
754
|
+
updateCTFABalance: Property.StaticDropdown({
|
|
755
|
+
displayName: 'Update CTFA Balance',
|
|
756
|
+
description: 'Updates available balance. CTFABAL is the Available Balance file on the core. Applies to DD/SV and LN accounts only.',
|
|
757
|
+
required: false,
|
|
758
|
+
options: {
|
|
759
|
+
options: [
|
|
760
|
+
{ label: 'Y - Update CTFABAL', value: 'Y' },
|
|
761
|
+
{ label: 'N - Do not update CTFABAL', value: 'N' },
|
|
762
|
+
{ label: '(blank) - Update CTFABAL', value: '' },
|
|
763
|
+
],
|
|
764
|
+
},
|
|
765
|
+
}),
|
|
766
|
+
nextDayMode: Property.StaticDropdown({
|
|
767
|
+
displayName: 'Next Day Mode',
|
|
768
|
+
description: 'When Next Day Mode is used (Y or X), the API will set the transaction date to be the Next Processing Date from the HORIZON Calendar.',
|
|
769
|
+
required: false,
|
|
770
|
+
options: {
|
|
771
|
+
options: [
|
|
772
|
+
{ label: 'Y - Next Day Mode and write to DDNBDM file', value: 'Y' },
|
|
773
|
+
{ label: 'X - Next Day Mode, but do not write to DDNBDM file', value: 'X' },
|
|
774
|
+
{ label: '(blank) - Current Day Mode', value: '' },
|
|
775
|
+
],
|
|
776
|
+
},
|
|
777
|
+
}),
|
|
778
|
+
ignoreDynamicTransferRelationship: Property.StaticDropdown({
|
|
779
|
+
displayName: 'Ignore Dynamic Transfer Relationship',
|
|
780
|
+
description: 'If ignoring Dynamic Transfer Relationships, then Dynamic Transfer will not be generated.',
|
|
781
|
+
required: false,
|
|
782
|
+
options: {
|
|
783
|
+
options: [
|
|
784
|
+
{ label: 'I - Ignore Dynamic Transfer Relationships', value: 'I' },
|
|
785
|
+
{ label: '(blank) - Do not Ignore', value: '' },
|
|
786
|
+
],
|
|
787
|
+
},
|
|
788
|
+
}),
|
|
789
|
+
availableBalanceCalculationOverride: Property.StaticDropdown({
|
|
790
|
+
displayName: 'Available Balance Calculation Override',
|
|
791
|
+
description: 'Override for available balance calculation. Only use if the Account availability was retrieved by calling the Available Balance API with one of these values.',
|
|
792
|
+
required: false,
|
|
793
|
+
options: {
|
|
794
|
+
options: [
|
|
795
|
+
{ label: 'A - Current Balance - Holds', value: 'A' },
|
|
796
|
+
{ label: 'B - Current Balance - Holds - Bank Float', value: 'B' },
|
|
797
|
+
{ label: 'C - Current Balance - Bank Float', value: 'C' },
|
|
798
|
+
{ label: 'D - Current Balance - Holds - Customer Float', value: 'D' },
|
|
799
|
+
{ label: 'E - Current Balance - Customer Float', value: 'E' },
|
|
800
|
+
{ label: 'F - Current Balance', value: 'F' },
|
|
801
|
+
{ label: '(blank) - Use Avail Calc Cd from bank control records', value: '' },
|
|
802
|
+
],
|
|
803
|
+
},
|
|
804
|
+
}),
|
|
805
|
+
includeRROverride: Property.StaticDropdown({
|
|
806
|
+
displayName: 'Include RR Override',
|
|
807
|
+
description: 'Indicates whether the Ready Reserve should be included in Available Balance.',
|
|
808
|
+
required: false,
|
|
809
|
+
options: {
|
|
810
|
+
options: [
|
|
811
|
+
{ label: 'Y - Include DD\'s RR Avail in Available Balance', value: 'Y' },
|
|
812
|
+
{ label: 'N - Do not include DD\'s RR Avail', value: 'N' },
|
|
813
|
+
{ label: '(blank) - Include DD\'s RR Avail in Available Balance', value: '' },
|
|
814
|
+
],
|
|
815
|
+
},
|
|
816
|
+
}),
|
|
817
|
+
includeODOverride: Property.StaticDropdown({
|
|
818
|
+
displayName: 'Include OD Override',
|
|
819
|
+
description: 'Indicates whether the OD Amount should be included in the Available Balance. Applies to DD & SV only.',
|
|
820
|
+
required: false,
|
|
821
|
+
options: {
|
|
822
|
+
options: [
|
|
823
|
+
{ label: 'Y - Include OD Amount in Available Balance', value: 'Y' },
|
|
824
|
+
{ label: 'N - Do not include OD Amount', value: 'N' },
|
|
825
|
+
{ label: '(blank) - Use Account Type Default', value: '' },
|
|
826
|
+
],
|
|
827
|
+
},
|
|
828
|
+
}),
|
|
829
|
+
subSource: Property.ShortText({
|
|
830
|
+
displayName: 'Sub Source',
|
|
831
|
+
description: 'Transaction sub source (max 5 characters). For HORIZON channels, the Sub-Source of the Memo Post transaction must be the same as the Source of the real transaction.',
|
|
832
|
+
required: false,
|
|
833
|
+
}),
|
|
834
|
+
batchId: Property.ShortText({
|
|
835
|
+
displayName: 'Batch ID',
|
|
836
|
+
description: 'Transaction batch ID (max 6 characters).',
|
|
837
|
+
required: false,
|
|
838
|
+
}),
|
|
839
|
+
traceNumber: Property.ShortText({
|
|
840
|
+
displayName: 'Trace Number',
|
|
841
|
+
description: 'Transaction trace number to facilitate uniqueness of an incoming transaction (max 30 characters).',
|
|
842
|
+
required: false,
|
|
843
|
+
}),
|
|
844
|
+
amountToAvailableBalance: Property.Number({
|
|
845
|
+
displayName: 'Amount to Available Balance',
|
|
846
|
+
description: 'Amount used to update DD/SV/CD/IR Available Balance, Memo Debits, and Credits today fields. Positive increases, negative decreases.',
|
|
847
|
+
required: false,
|
|
848
|
+
}),
|
|
849
|
+
amountToCurrentBalance: Property.Number({
|
|
850
|
+
displayName: 'Amount to Current Balance',
|
|
851
|
+
description: 'Amount used to write to TELTHS and in the calculation of the Running Current Balance. Positive increases, negative decreases.',
|
|
852
|
+
required: false,
|
|
853
|
+
}),
|
|
854
|
+
},
|
|
855
|
+
async run(context) {
|
|
856
|
+
const auth = context.auth as any;
|
|
857
|
+
const baseUrl = auth['baseUrl'];
|
|
858
|
+
const organizationId = auth['organizationId'];
|
|
859
|
+
const {
|
|
860
|
+
horizonAuthorization,
|
|
861
|
+
sourceId,
|
|
862
|
+
applicationCode,
|
|
863
|
+
accountNumber,
|
|
864
|
+
transactionAmount,
|
|
865
|
+
transactionPostDate,
|
|
866
|
+
transactionCode,
|
|
867
|
+
debitCreditFlag,
|
|
868
|
+
transactionCheckNumber,
|
|
869
|
+
transactionDescription1,
|
|
870
|
+
transactionDescription2,
|
|
871
|
+
updateBalanceFile,
|
|
872
|
+
updateTellerActivityFile,
|
|
873
|
+
updateCTFABalance,
|
|
874
|
+
nextDayMode,
|
|
875
|
+
ignoreDynamicTransferRelationship,
|
|
876
|
+
availableBalanceCalculationOverride,
|
|
877
|
+
includeRROverride,
|
|
878
|
+
includeODOverride,
|
|
879
|
+
subSource,
|
|
880
|
+
batchId,
|
|
881
|
+
traceNumber,
|
|
882
|
+
amountToAvailableBalance,
|
|
883
|
+
amountToCurrentBalance,
|
|
884
|
+
} = context.propsValue;
|
|
885
|
+
|
|
886
|
+
const uuid = crypto.randomUUID();
|
|
887
|
+
|
|
888
|
+
const headers: Record<string, string> = {
|
|
889
|
+
'accept': 'application/json',
|
|
890
|
+
'Content-Type': 'application/json',
|
|
891
|
+
'organization-id': organizationId,
|
|
892
|
+
'uuid': uuid,
|
|
893
|
+
'horizon-authorization': horizonAuthorization,
|
|
894
|
+
};
|
|
895
|
+
|
|
896
|
+
if (sourceId) {
|
|
897
|
+
headers['source-id'] = sourceId;
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
const body: Record<string, unknown> = {
|
|
901
|
+
applicationCode,
|
|
902
|
+
accountNumber,
|
|
903
|
+
transactionAmount,
|
|
904
|
+
};
|
|
905
|
+
|
|
906
|
+
if (transactionPostDate !== undefined && transactionPostDate !== null && transactionPostDate !== '') {
|
|
907
|
+
body['transactionPostDate'] = transactionPostDate;
|
|
908
|
+
}
|
|
909
|
+
if (transactionCode !== undefined && transactionCode !== null && transactionCode !== '') {
|
|
910
|
+
body['transactionCode'] = transactionCode;
|
|
911
|
+
}
|
|
912
|
+
if (debitCreditFlag !== undefined && debitCreditFlag !== null && debitCreditFlag !== '') {
|
|
913
|
+
body['debitCreditFlag'] = debitCreditFlag;
|
|
914
|
+
}
|
|
915
|
+
if (transactionCheckNumber !== undefined && transactionCheckNumber !== null) {
|
|
916
|
+
body['transactionCheckNumber'] = transactionCheckNumber;
|
|
917
|
+
}
|
|
918
|
+
if (transactionDescription1 !== undefined && transactionDescription1 !== null && transactionDescription1 !== '') {
|
|
919
|
+
body['transactionDescription1'] = transactionDescription1;
|
|
920
|
+
}
|
|
921
|
+
if (transactionDescription2 !== undefined && transactionDescription2 !== null && transactionDescription2 !== '') {
|
|
922
|
+
body['transactionDescription2'] = transactionDescription2;
|
|
923
|
+
}
|
|
924
|
+
if (updateBalanceFile !== undefined && updateBalanceFile !== null) {
|
|
925
|
+
body['updateBalanceFile'] = updateBalanceFile;
|
|
926
|
+
}
|
|
927
|
+
if (updateTellerActivityFile !== undefined && updateTellerActivityFile !== null) {
|
|
928
|
+
body['updateTellerActivityFile'] = updateTellerActivityFile;
|
|
929
|
+
}
|
|
930
|
+
if (updateCTFABalance !== undefined && updateCTFABalance !== null) {
|
|
931
|
+
body['updateCTFABalance'] = updateCTFABalance;
|
|
932
|
+
}
|
|
933
|
+
if (nextDayMode !== undefined && nextDayMode !== null) {
|
|
934
|
+
body['nextDayMode'] = nextDayMode;
|
|
935
|
+
}
|
|
936
|
+
if (ignoreDynamicTransferRelationship !== undefined && ignoreDynamicTransferRelationship !== null) {
|
|
937
|
+
body['ignoreDynamicTransferRelationship'] = ignoreDynamicTransferRelationship;
|
|
938
|
+
}
|
|
939
|
+
if (availableBalanceCalculationOverride !== undefined && availableBalanceCalculationOverride !== null) {
|
|
940
|
+
body['availableBalanceCalculationOverride'] = availableBalanceCalculationOverride;
|
|
941
|
+
}
|
|
942
|
+
if (includeRROverride !== undefined && includeRROverride !== null) {
|
|
943
|
+
body['includeRROverride'] = includeRROverride;
|
|
944
|
+
}
|
|
945
|
+
if (includeODOverride !== undefined && includeODOverride !== null) {
|
|
946
|
+
body['includeODOverride'] = includeODOverride;
|
|
947
|
+
}
|
|
948
|
+
if (subSource !== undefined && subSource !== null && subSource !== '') {
|
|
949
|
+
body['subSource'] = subSource;
|
|
950
|
+
}
|
|
951
|
+
if (batchId !== undefined && batchId !== null && batchId !== '') {
|
|
952
|
+
body['batchId'] = batchId;
|
|
953
|
+
}
|
|
954
|
+
if (traceNumber !== undefined && traceNumber !== null && traceNumber !== '') {
|
|
955
|
+
body['traceNumber'] = traceNumber;
|
|
956
|
+
}
|
|
957
|
+
if (amountToAvailableBalance !== undefined && amountToAvailableBalance !== null) {
|
|
958
|
+
body['amountToAvailableBalance'] = amountToAvailableBalance;
|
|
959
|
+
}
|
|
960
|
+
if (amountToCurrentBalance !== undefined && amountToCurrentBalance !== null) {
|
|
961
|
+
body['amountToCurrentBalance'] = amountToCurrentBalance;
|
|
962
|
+
}
|
|
963
|
+
|
|
964
|
+
const response = await httpClient.sendRequest({
|
|
965
|
+
method: HttpMethod.POST,
|
|
966
|
+
url: `${baseUrl}/transactions/v1/memo-transactions`,
|
|
967
|
+
headers,
|
|
968
|
+
body,
|
|
969
|
+
});
|
|
970
|
+
|
|
971
|
+
return response.body;
|
|
972
|
+
},
|
|
973
|
+
});
|
|
974
|
+
|
|
975
|
+
// ============================================================================
|
|
976
|
+
// POST /memo-transactions-delete - Remove a memo post from a given account
|
|
977
|
+
// ============================================================================
|
|
978
|
+
export const transactions_delete_memo = createAction({
|
|
979
|
+
name: 'transactions_delete_memo',
|
|
980
|
+
auth: fisHorizonAuth,
|
|
981
|
+
displayName: 'Transactions - Delete Memo',
|
|
982
|
+
description: 'Remove a memo post from a given account. This transaction is designed to remove a memo post from a given account.',
|
|
983
|
+
props: {
|
|
984
|
+
horizonAuthorization: Property.ShortText({
|
|
985
|
+
displayName: 'Horizon Authorization Token',
|
|
986
|
+
description: 'The authorization token obtained from the Authorization - Get Token action.',
|
|
987
|
+
required: true,
|
|
988
|
+
}),
|
|
989
|
+
sourceId: Property.ShortText({
|
|
990
|
+
displayName: 'Source ID',
|
|
991
|
+
description: 'Optional: 6 character ID provided by FIS',
|
|
992
|
+
required: false,
|
|
993
|
+
}),
|
|
994
|
+
applicationCode: Property.StaticDropdown({
|
|
995
|
+
displayName: 'Application Code',
|
|
996
|
+
description: 'Application code. All applications write to TELTHS file, only DD/SV/LN/CD/IR update balances.',
|
|
997
|
+
required: true,
|
|
998
|
+
options: {
|
|
999
|
+
options: [
|
|
1000
|
+
{ label: 'DD - Demand Deposits', value: 'DD' },
|
|
1001
|
+
{ label: 'SV - Savings', value: 'SV' },
|
|
1002
|
+
{ label: 'LN - Loans', value: 'LN' },
|
|
1003
|
+
{ label: 'CD - Certificate', value: 'CD' },
|
|
1004
|
+
{ label: 'IR - Retirement', value: 'IR' },
|
|
1005
|
+
],
|
|
1006
|
+
},
|
|
1007
|
+
}),
|
|
1008
|
+
accountNumber: Property.ShortText({
|
|
1009
|
+
displayName: 'Account Number',
|
|
1010
|
+
description: 'Account number (max 20 characters).',
|
|
1011
|
+
required: true,
|
|
1012
|
+
}),
|
|
1013
|
+
transactionAmount: Property.Number({
|
|
1014
|
+
displayName: 'Transaction Amount',
|
|
1015
|
+
description: 'Transaction amount. This amount should always be positive.',
|
|
1016
|
+
required: true,
|
|
1017
|
+
}),
|
|
1018
|
+
deleteMode: Property.StaticDropdown({
|
|
1019
|
+
displayName: 'Delete Mode',
|
|
1020
|
+
description: 'Delete mode. Error Correct mode requires all input parameters match the original transaction EXACTLY.',
|
|
1021
|
+
required: true,
|
|
1022
|
+
options: {
|
|
1023
|
+
options: [
|
|
1024
|
+
{ label: 'E - Error Correct Mode', value: 'E' },
|
|
1025
|
+
{ label: 'D - EFT PreAuth Delete Mode', value: 'D' },
|
|
1026
|
+
],
|
|
1027
|
+
},
|
|
1028
|
+
}),
|
|
1029
|
+
transactionPostDate: Property.ShortText({
|
|
1030
|
+
displayName: 'Transaction Post Date',
|
|
1031
|
+
description: 'Transaction post date in YYYYMMDD format (e.g., 20210630).',
|
|
1032
|
+
required: false,
|
|
1033
|
+
}),
|
|
1034
|
+
transactionCode: Property.ShortText({
|
|
1035
|
+
displayName: 'Transaction Code',
|
|
1036
|
+
description: 'Transaction code (max 4 characters).',
|
|
1037
|
+
required: false,
|
|
1038
|
+
}),
|
|
1039
|
+
debitCreditFlag: Property.StaticDropdown({
|
|
1040
|
+
displayName: 'Debit/Credit Flag',
|
|
1041
|
+
description: 'Transaction type - Debit or Credit.',
|
|
1042
|
+
required: false,
|
|
1043
|
+
options: {
|
|
1044
|
+
options: [
|
|
1045
|
+
{ label: 'D - Debit', value: 'D' },
|
|
1046
|
+
{ label: 'C - Credit', value: 'C' },
|
|
1047
|
+
],
|
|
1048
|
+
},
|
|
1049
|
+
}),
|
|
1050
|
+
transactionCheckNumber: Property.Number({
|
|
1051
|
+
displayName: 'Transaction Check Number',
|
|
1052
|
+
description: 'Check number of the transaction, if applicable (0-999999999999999).',
|
|
1053
|
+
required: false,
|
|
1054
|
+
}),
|
|
1055
|
+
transactionDescription1: Property.ShortText({
|
|
1056
|
+
displayName: 'Transaction Description 1',
|
|
1057
|
+
description: 'Description line 1 of the transaction (max 40 characters).',
|
|
1058
|
+
required: false,
|
|
1059
|
+
}),
|
|
1060
|
+
transactionDescription2: Property.ShortText({
|
|
1061
|
+
displayName: 'Transaction Description 2',
|
|
1062
|
+
description: 'Description line 2 of the transaction (max 40 characters).',
|
|
1063
|
+
required: false,
|
|
1064
|
+
}),
|
|
1065
|
+
updateBalanceFile: Property.StaticDropdown({
|
|
1066
|
+
displayName: 'Update Balance File',
|
|
1067
|
+
description: 'Updates available balance.',
|
|
1068
|
+
required: false,
|
|
1069
|
+
options: {
|
|
1070
|
+
options: [
|
|
1071
|
+
{ label: 'Y - Update Balance Files', value: 'Y' },
|
|
1072
|
+
{ label: 'N - Do not update Balance Files', value: 'N' },
|
|
1073
|
+
{ label: '(blank) - Update Balance Files', value: '' },
|
|
1074
|
+
],
|
|
1075
|
+
},
|
|
1076
|
+
}),
|
|
1077
|
+
updateTellerActivityFile: Property.StaticDropdown({
|
|
1078
|
+
displayName: 'Update Teller Activity File',
|
|
1079
|
+
description: 'All applications will write to/update TELTHS file.',
|
|
1080
|
+
required: false,
|
|
1081
|
+
options: {
|
|
1082
|
+
options: [
|
|
1083
|
+
{ label: 'Y - Update TELTHS', value: 'Y' },
|
|
1084
|
+
{ label: 'N - Do not update TELTHS', value: 'N' },
|
|
1085
|
+
{ label: '(blank) - Update TELTHS', value: '' },
|
|
1086
|
+
],
|
|
1087
|
+
},
|
|
1088
|
+
}),
|
|
1089
|
+
updateCTFABalance: Property.StaticDropdown({
|
|
1090
|
+
displayName: 'Update CTFA Balance',
|
|
1091
|
+
description: 'Updates available balance. CTFABAL is the Available Balance file on the core. Applies to DD/SV and LN accounts only.',
|
|
1092
|
+
required: false,
|
|
1093
|
+
options: {
|
|
1094
|
+
options: [
|
|
1095
|
+
{ label: 'Y - Update CTFABAL', value: 'Y' },
|
|
1096
|
+
{ label: 'N - Do not update CTFABAL', value: 'N' },
|
|
1097
|
+
{ label: '(blank) - Update CTFABAL', value: '' },
|
|
1098
|
+
],
|
|
1099
|
+
},
|
|
1100
|
+
}),
|
|
1101
|
+
nextDayMode: Property.StaticDropdown({
|
|
1102
|
+
displayName: 'Next Day Mode',
|
|
1103
|
+
description: 'When Next Day Mode is used (Y or X), the API will set the transaction date to be the Next Processing Date from the HORIZON Calendar.',
|
|
1104
|
+
required: false,
|
|
1105
|
+
options: {
|
|
1106
|
+
options: [
|
|
1107
|
+
{ label: 'Y - Next Day Mode and write to DDNBDM file', value: 'Y' },
|
|
1108
|
+
{ label: 'X - Next Day Mode, but do not write to DDNBDM file', value: 'X' },
|
|
1109
|
+
{ label: '(blank) - Current Day Mode', value: '' },
|
|
1110
|
+
],
|
|
1111
|
+
},
|
|
1112
|
+
}),
|
|
1113
|
+
ignoreDynamicTransferRelationship: Property.StaticDropdown({
|
|
1114
|
+
displayName: 'Ignore Dynamic Transfer Relationship',
|
|
1115
|
+
description: 'If ignoring Dynamic Transfer Relationships, then Dynamic Transfer will not be generated.',
|
|
1116
|
+
required: false,
|
|
1117
|
+
options: {
|
|
1118
|
+
options: [
|
|
1119
|
+
{ label: 'I - Ignore Dynamic Transfer Relationships', value: 'I' },
|
|
1120
|
+
{ label: '(blank) - Do not Ignore', value: '' },
|
|
1121
|
+
],
|
|
1122
|
+
},
|
|
1123
|
+
}),
|
|
1124
|
+
availableBalanceCalculationOverride: Property.StaticDropdown({
|
|
1125
|
+
displayName: 'Available Balance Calculation Override',
|
|
1126
|
+
description: 'Override for available balance calculation.',
|
|
1127
|
+
required: false,
|
|
1128
|
+
options: {
|
|
1129
|
+
options: [
|
|
1130
|
+
{ label: 'A - Current Balance - Holds', value: 'A' },
|
|
1131
|
+
{ label: 'B - Current Balance - Holds - Bank Float', value: 'B' },
|
|
1132
|
+
{ label: 'C - Current Balance - Bank Float', value: 'C' },
|
|
1133
|
+
{ label: 'D - Current Balance - Holds - Customer Float', value: 'D' },
|
|
1134
|
+
{ label: 'E - Current Balance - Customer Float', value: 'E' },
|
|
1135
|
+
{ label: 'F - Current Balance', value: 'F' },
|
|
1136
|
+
{ label: '(blank) - Use Avail Calc Cd from bank control records', value: '' },
|
|
1137
|
+
],
|
|
1138
|
+
},
|
|
1139
|
+
}),
|
|
1140
|
+
includeRROverride: Property.StaticDropdown({
|
|
1141
|
+
displayName: 'Include RR Override',
|
|
1142
|
+
description: 'Indicates whether the Ready Reserve should be included in Available Balance.',
|
|
1143
|
+
required: false,
|
|
1144
|
+
options: {
|
|
1145
|
+
options: [
|
|
1146
|
+
{ label: 'Y - Include DD\'s RR Avail in Available Balance', value: 'Y' },
|
|
1147
|
+
{ label: 'N - Do not include DD\'s RR Avail', value: 'N' },
|
|
1148
|
+
{ label: '(blank) - Include DD\'s RR Avail in Available Balance', value: '' },
|
|
1149
|
+
],
|
|
1150
|
+
},
|
|
1151
|
+
}),
|
|
1152
|
+
includeODOverride: Property.StaticDropdown({
|
|
1153
|
+
displayName: 'Include OD Override',
|
|
1154
|
+
description: 'Indicates whether the OD Amount should be included in the Available Balance. Applies to DD & SV only.',
|
|
1155
|
+
required: false,
|
|
1156
|
+
options: {
|
|
1157
|
+
options: [
|
|
1158
|
+
{ label: 'Y - Include OD Amount in Available Balance', value: 'Y' },
|
|
1159
|
+
{ label: 'N - Do not include OD Amount', value: 'N' },
|
|
1160
|
+
{ label: '(blank) - Use Account Type Default', value: '' },
|
|
1161
|
+
],
|
|
1162
|
+
},
|
|
1163
|
+
}),
|
|
1164
|
+
subSource: Property.ShortText({
|
|
1165
|
+
displayName: 'Sub Source',
|
|
1166
|
+
description: 'Transaction sub source (max 5 characters).',
|
|
1167
|
+
required: false,
|
|
1168
|
+
}),
|
|
1169
|
+
batchId: Property.ShortText({
|
|
1170
|
+
displayName: 'Batch ID',
|
|
1171
|
+
description: 'Transaction batch ID (max 6 characters).',
|
|
1172
|
+
required: false,
|
|
1173
|
+
}),
|
|
1174
|
+
traceNumber: Property.ShortText({
|
|
1175
|
+
displayName: 'Trace Number',
|
|
1176
|
+
description: 'Transaction trace number to facilitate uniqueness (max 30 characters).',
|
|
1177
|
+
required: false,
|
|
1178
|
+
}),
|
|
1179
|
+
amountToAvailableBalance: Property.Number({
|
|
1180
|
+
displayName: 'Amount to Available Balance',
|
|
1181
|
+
description: 'Amount used to update DD/SV/CD/IR Available Balance, Memo Debits, and Credits today fields.',
|
|
1182
|
+
required: false,
|
|
1183
|
+
}),
|
|
1184
|
+
amountToCurrentBalance: Property.Number({
|
|
1185
|
+
displayName: 'Amount to Current Balance',
|
|
1186
|
+
description: 'Amount used to write to TELTHS and in the calculation of the Running Current Balance.',
|
|
1187
|
+
required: false,
|
|
1188
|
+
}),
|
|
1189
|
+
},
|
|
1190
|
+
async run(context) {
|
|
1191
|
+
const auth = context.auth as any;
|
|
1192
|
+
const baseUrl = auth['baseUrl'];
|
|
1193
|
+
const organizationId = auth['organizationId'];
|
|
1194
|
+
const {
|
|
1195
|
+
horizonAuthorization,
|
|
1196
|
+
sourceId,
|
|
1197
|
+
applicationCode,
|
|
1198
|
+
accountNumber,
|
|
1199
|
+
transactionAmount,
|
|
1200
|
+
deleteMode,
|
|
1201
|
+
transactionPostDate,
|
|
1202
|
+
transactionCode,
|
|
1203
|
+
debitCreditFlag,
|
|
1204
|
+
transactionCheckNumber,
|
|
1205
|
+
transactionDescription1,
|
|
1206
|
+
transactionDescription2,
|
|
1207
|
+
updateBalanceFile,
|
|
1208
|
+
updateTellerActivityFile,
|
|
1209
|
+
updateCTFABalance,
|
|
1210
|
+
nextDayMode,
|
|
1211
|
+
ignoreDynamicTransferRelationship,
|
|
1212
|
+
availableBalanceCalculationOverride,
|
|
1213
|
+
includeRROverride,
|
|
1214
|
+
includeODOverride,
|
|
1215
|
+
subSource,
|
|
1216
|
+
batchId,
|
|
1217
|
+
traceNumber,
|
|
1218
|
+
amountToAvailableBalance,
|
|
1219
|
+
amountToCurrentBalance,
|
|
1220
|
+
} = context.propsValue;
|
|
1221
|
+
|
|
1222
|
+
const uuid = crypto.randomUUID();
|
|
1223
|
+
|
|
1224
|
+
const headers: Record<string, string> = {
|
|
1225
|
+
'accept': 'application/json',
|
|
1226
|
+
'Content-Type': 'application/json',
|
|
1227
|
+
'organization-id': organizationId,
|
|
1228
|
+
'uuid': uuid,
|
|
1229
|
+
'horizon-authorization': horizonAuthorization,
|
|
1230
|
+
};
|
|
1231
|
+
|
|
1232
|
+
if (sourceId) {
|
|
1233
|
+
headers['source-id'] = sourceId;
|
|
1234
|
+
}
|
|
1235
|
+
|
|
1236
|
+
const body: Record<string, unknown> = {
|
|
1237
|
+
applicationCode,
|
|
1238
|
+
accountNumber,
|
|
1239
|
+
transactionAmount,
|
|
1240
|
+
deleteMode,
|
|
1241
|
+
};
|
|
1242
|
+
|
|
1243
|
+
if (transactionPostDate !== undefined && transactionPostDate !== null && transactionPostDate !== '') {
|
|
1244
|
+
body['transactionPostDate'] = transactionPostDate;
|
|
1245
|
+
}
|
|
1246
|
+
if (transactionCode !== undefined && transactionCode !== null && transactionCode !== '') {
|
|
1247
|
+
body['transactionCode'] = transactionCode;
|
|
1248
|
+
}
|
|
1249
|
+
if (debitCreditFlag !== undefined && debitCreditFlag !== null && debitCreditFlag !== '') {
|
|
1250
|
+
body['debitCreditFlag'] = debitCreditFlag;
|
|
1251
|
+
}
|
|
1252
|
+
if (transactionCheckNumber !== undefined && transactionCheckNumber !== null) {
|
|
1253
|
+
body['transactionCheckNumber'] = transactionCheckNumber;
|
|
1254
|
+
}
|
|
1255
|
+
if (transactionDescription1 !== undefined && transactionDescription1 !== null && transactionDescription1 !== '') {
|
|
1256
|
+
body['transactionDescription1'] = transactionDescription1;
|
|
1257
|
+
}
|
|
1258
|
+
if (transactionDescription2 !== undefined && transactionDescription2 !== null && transactionDescription2 !== '') {
|
|
1259
|
+
body['transactionDescription2'] = transactionDescription2;
|
|
1260
|
+
}
|
|
1261
|
+
if (updateBalanceFile !== undefined && updateBalanceFile !== null) {
|
|
1262
|
+
body['updateBalanceFile'] = updateBalanceFile;
|
|
1263
|
+
}
|
|
1264
|
+
if (updateTellerActivityFile !== undefined && updateTellerActivityFile !== null) {
|
|
1265
|
+
body['updateTellerActivityFile'] = updateTellerActivityFile;
|
|
1266
|
+
}
|
|
1267
|
+
if (updateCTFABalance !== undefined && updateCTFABalance !== null) {
|
|
1268
|
+
body['updateCTFABalance'] = updateCTFABalance;
|
|
1269
|
+
}
|
|
1270
|
+
if (nextDayMode !== undefined && nextDayMode !== null) {
|
|
1271
|
+
body['nextDayMode'] = nextDayMode;
|
|
1272
|
+
}
|
|
1273
|
+
if (ignoreDynamicTransferRelationship !== undefined && ignoreDynamicTransferRelationship !== null) {
|
|
1274
|
+
body['ignoreDynamicTransferRelationship'] = ignoreDynamicTransferRelationship;
|
|
1275
|
+
}
|
|
1276
|
+
if (availableBalanceCalculationOverride !== undefined && availableBalanceCalculationOverride !== null) {
|
|
1277
|
+
body['availableBalanceCalculationOverride'] = availableBalanceCalculationOverride;
|
|
1278
|
+
}
|
|
1279
|
+
if (includeRROverride !== undefined && includeRROverride !== null) {
|
|
1280
|
+
body['includeRROverride'] = includeRROverride;
|
|
1281
|
+
}
|
|
1282
|
+
if (includeODOverride !== undefined && includeODOverride !== null) {
|
|
1283
|
+
body['includeODOverride'] = includeODOverride;
|
|
1284
|
+
}
|
|
1285
|
+
if (subSource !== undefined && subSource !== null && subSource !== '') {
|
|
1286
|
+
body['subSource'] = subSource;
|
|
1287
|
+
}
|
|
1288
|
+
if (batchId !== undefined && batchId !== null && batchId !== '') {
|
|
1289
|
+
body['batchId'] = batchId;
|
|
1290
|
+
}
|
|
1291
|
+
if (traceNumber !== undefined && traceNumber !== null && traceNumber !== '') {
|
|
1292
|
+
body['traceNumber'] = traceNumber;
|
|
1293
|
+
}
|
|
1294
|
+
if (amountToAvailableBalance !== undefined && amountToAvailableBalance !== null) {
|
|
1295
|
+
body['amountToAvailableBalance'] = amountToAvailableBalance;
|
|
1296
|
+
}
|
|
1297
|
+
if (amountToCurrentBalance !== undefined && amountToCurrentBalance !== null) {
|
|
1298
|
+
body['amountToCurrentBalance'] = amountToCurrentBalance;
|
|
1299
|
+
}
|
|
1300
|
+
|
|
1301
|
+
const response = await httpClient.sendRequest({
|
|
1302
|
+
method: HttpMethod.POST,
|
|
1303
|
+
url: `${baseUrl}/transactions/v1/memo-transactions-delete`,
|
|
1304
|
+
headers,
|
|
1305
|
+
body,
|
|
1306
|
+
});
|
|
1307
|
+
|
|
1308
|
+
return response.body;
|
|
1309
|
+
},
|
|
1310
|
+
});
|