Bulk Operations via API

How to manage Fynapse configurations via API

Overview

Bulk operations allow you to manage Fynapse configuration. With these endpoints you can upload and download an entire Fynapse configuration in the form of Configuration Data JSON structure, or wipe the system.

To learn about the structure of the Configuration Data JSON refer to Configuration Data.

Managing Fynapse Configuration Using REST API

Process Diagram

The diagram below illustrates the flow of API calls during bulk operations:

BulkOperationsAPI.drawio

Example

This example refers to numbered steps on the diagram above.

Downloading Fynapse Configuration

You can download the configuration of your Fynapse (1) instance by using the Get the Fynapse configuration endpoint. You will receive the configuration in the form of Configuration Data in JSON structure:

Response
1{
2 "configuration": {
3 "accountLookups": [
4 {
5 "accountLookupPatterns": [
6 {
7 "account": "111"
8 }
9 ],
10 "postingCode": "test posting code CR"
11 },
12 {
13 "accountLookupPatterns": [
14 {
15 "account": "222"
16 }
17 ],
18 "postingCode": "test posting code DR"
19 }
20 ],
21 "accountingConfigurations": [
22 {
23 "businessCalendarName": "Test Business Calendar",
24 "description": "IFRS description",
25 "dimensionSetName": "Test Dimension Set",
26 "fiscalCalendarName": "Test Fiscal Calendar",
27 "name": "IFRS"
28 }
29 ],
30 "businessCalendars": [
31 {
32 "effectiveFrom": "1900-01-01",
33 "effectiveTo": "2099-12-31",
34 "name": "Test Business Calendar",
35 "status": "ACTIVE"
36 }
37 ],
38 "businessDateSettings": {
39 "businessDateShift": 0
40 },
41 "businessEventDefinition": {
42 "active": true,
43 "attributes": [
44 {
45 "label": "Event Type Label",
46 "name": "eventTypeName",
47 "role": "event_type",
48 "source": "input",
49 "type": "text"
50 },
51 {
52 "label": "Effective Date Label",
53 "name": "effectiveDateName",
54 "role": "effective_date",
55 "source": "input",
56 "type": "date"
57 },
58 {
59 "label": "Amount Type Label",
60 "name": "transactionAmountName",
61 "role": "attribute",
62 "source": "input",
63 "type": "decimal"
64 },
65 {
66 "label": "Currency Label",
67 "name": "transactionCurrencyName",
68 "role": "attribute",
69 "source": "input",
70 "type": "text"
71 },
72 {
73 "label": "Custom Subledger Node Label",
74 "name": "customSubledgerNodeName",
75 "role": "node",
76 "source": "input",
77 "type": "text"
78 }
79 ],
80 "effectiveFrom": "2023-04-05"
81 },
82 "businessEventTypes": [
83 {
84 "description": "IRSTRADE description",
85 "name": "IRSTRADE"
86 },
87 {
88 "description": "IRSTRADE_REV description",
89 "name": "IRSTRADE_REV"
90 }
91 ],
92 "dimensionSets": [
93 {
94 "attributes": [
95 "customAccountingConfig",
96 "customAccount",
97 "customTransactionCurrency",
98 "customSubledgerNodeName"
99 ],
100 "description": "Test Dimension Set description",
101 "name": "Test Dimension Set"
102 }
103 ],
104 "entities": [
105 {
106 "attributes": [
107 {
108 "label": "Event Type Label",
109 "mandatory": true,
110 "name": "EventTypeName",
111 "source": "input",
112 "type": {
113 "typeName": "ListType"
114 }
115 },
116 {
117 "label": "Effective Date Label",
118 "mandatory": true,
119 "name": "effectiveDateName",
120 "source": "input",
121 "type": {
122 "typeName": "ListType"
123 }
124 },
125 {
126 "label": "Amount Type Label",
127 "mandatory": true,
128 "name": "transactionAmountName",
129 "source": "input",
130 "type": {
131 "typeName": "ListType"
132 }
133 },
134 {
135 "label": "Currency Label",
136 "mandatory": true,
137 "name": "transactionCurrencyName",
138 "source": "input",
139 "type": {
140 "typeName": "ListType"
141 }
142 },
143 {
144 "label": "Custom Subledger Node Label",
145 "mandatory": true,
146 "name": "customSubledgerNodeName",
147 "source": "input",
148 "type": {
149 "typeName": "ListType"
150 }
151 }
152 ],
153 "description": "Transaction Entity For Flow",
154 "name": "TransactionEntityForFlow",
155 "namespace": "fynapse",
156 "temporalityType": "Transaction",
157 "type": "DefinedEntity"
158 }
159 ],
160 "featureFlags": {
161 "posting-date-override": false,
162 "flow-assistant": true,
163 "extracts-in-bulk": false,
164 "flow": true
165 },
166 "fiscalCalendars": [
167 {
168 "type": "gregorian",
169 "active": true,
170 "effectiveFrom": "2024-12-23",
171 "endOfFirstYear": "2019-12-31",
172 "name": "Test Fiscal Calendar",
173 "startYear": 2019
174 }
175 ],
176 "flows": [
177 {
178 "graph": {
179 "edges": {
180 "6ace1605-e6dc-46e9-a237-32a334ce09d9": [
181 "1b2670bc-b718-4f4d-873c-92d535a479fd"
182 ],
183 "8e7789cc-03ef-4aa3-9c2d-6b5143b4727b": [
184 "6ace1605-e6dc-46e9-a237-32a334ce09d9"
185 ],
186 "8f62cb96-a738-4a2b-a427-83043837019a": [
187 "8e7789cc-03ef-4aa3-9c2d-6b5143b4727b"
188 ]
189 },
190 "nodes": {
191 "8e7789cc-03ef-4aa3-9c2d-6b5143b4727b": {
192 "x": 300,
193 "y": 120,
194 "step": {
195 "type": "Script",
196 "name": "Script",
197 "script": "from decimal import Decimal\r\ninput.transactionAmountName += Decimal('20.000')\r\ncurrencyLabel = \"PLN\"\r\npublish(\"CurrencyLabel\", currencyLabel)",
198 "outputDefinition": [
199 {
200 "name": "CurrencyLabel",
201 "type": {
202 "type": "Primitive",
203 "primitive": "TEXT"
204 }
205 }
206 ]
207 }
208 },
209 "8f62cb96-a738-4a2b-a427-83043837019a": {
210 "x": 0,
211 "y": 120,
212 "step": {
213 "type": "Input",
214 "name": "Input",
215 "source": {
216 "namespace": "fynapse",
217 "name": "TransactionEntityForFlow"
218 }
219 }
220 },
221 "1b2670bc-b718-4f4d-873c-92d535a479fd": {
222 "x": 915,
223 "y": 120,
224 "step": {
225 "type": "JournalProcessor",
226 "name": "JournalProcessor"
227 }
228 },
229 "6ace1605-e6dc-46e9-a237-32a334ce09d9": {
230 "x": 615,
231 "y": 120,
232 "step": {
233 "type": "AccountingEngine",
234 "name": "AccountingEngine",
235 "mapping": [
236 {
237 "source": {
238 "group": "INPUT",
239 "path": []
240 },
241 "target": {
242 "path": []
243 },
244 "contextMapping": true
245 },
246 {
247 "source": {
248 "group": "INPUT",
249 "path": [
250 "EventTypeName"
251 ]
252 },
253 "target": {
254 "path": [
255 "eventTypeName"
256 ]
257 },
258 "contextMapping": false
259 },
260 {
261 "source": {
262 "group": "INPUT",
263 "path": [
264 "effectiveDateName"
265 ]
266 },
267 "target": {
268 "path": [
269 "effectiveDateName"
270 ]
271 },
272 "contextMapping": false
273 },
274 {
275 "source": {
276 "group": "INPUT",
277 "path": [
278 "transactionAmountName"
279 ]
280 },
281 "target": {
282 "path": [
283 "transactionAmountName"
284 ]
285 },
286 "contextMapping": false
287 },
288 {
289 "source": {
290 "group": "SCRIPT",
291 "path": [
292 "CurrencyLabel"
293 ]
294 },
295 "target": {
296 "path": [
297 "transactionCurrencyName"
298 ]
299 },
300 "contextMapping": false
301 },
302 {
303 "source": {
304 "group": "INPUT",
305 "path": [
306 "customSubledgerNodeName"
307 ]
308 },
309 "target": {
310 "path": [
311 "customSubledgerNodeName"
312 ]
313 },
314 "contextMapping": false
315 }
316 ]
317 }
318 }
319 }
320 },
321 "name": "Flow",
322 "versionStatus": "Published"
323 }
324 ],
325 "journalDefinition": {
326 "active": true,
327 "effectiveFrom": "2023-04-05",
328 "fields": [
329 {
330 "label": "Custom Core Date Label",
331 "name": "customCoreDate",
332 "role": "coreDate",
333 "source": "input",
334 "type": "date"
335 },
336 {
337 "label": "Custom Journal Type Label",
338 "name": "customJournalType",
339 "role": "journalType",
340 "source": "input",
341 "type": "text"
342 },
343 {
344 "label": "Custom Accounting Config Label",
345 "name": "customAccountingConfig",
346 "role": "accountingConfig",
347 "source": "input",
348 "type": "text"
349 },
350 {
351 "label": "Custom Account Label",
352 "name": "customAccount",
353 "role": "account",
354 "source": "input",
355 "type": "text"
356 },
357 {
358 "label": "Custom Transaction Amount Label",
359 "name": "customTransactionAmount",
360 "role": "transactionAmount",
361 "source": "input",
362 "type": "amount"
363 },
364 {
365 "label": "Custom Transaction Currency Label",
366 "name": "customTransactionCurrency",
367 "role": "transactionCurrency",
368 "source": "input",
369 "type": "text"
370 },
371 {
372 "label": "Custom Journal Id Label",
373 "name": "customJournalId",
374 "role": "journalId",
375 "source": "input",
376 "type": "uuid"
377 },
378 {
379 "label": "Custom Journal Line Id Label",
380 "name": "customJournalLineId",
381 "role": "lineId",
382 "source": "input",
383 "type": "uuid"
384 },
385 {
386 "label": "Custom Reverses Label",
387 "name": "customReverses",
388 "role": "reverses",
389 "source": "input",
390 "type": "uuid"
391 },
392 {
393 "label": "Custom Reversed by Label",
394 "name": "customReversedBy",
395 "role": "reversedBy",
396 "source": "input",
397 "type": "uuid"
398 },
399 {
400 "label": "Custom Journal Line No",
401 "name": "customJournalLineNo",
402 "role": "journalLineNo",
403 "source": "input",
404 "type": "integer"
405 },
406 {
407 "label": "Custom Ingestion Id Label",
408 "name": "customIngestionId",
409 "role": "ingestionId",
410 "source": "input",
411 "type": "text"
412 },
413 {
414 "label": "Custom Origin Journal Id",
415 "name": "customOriginJournalId",
416 "role": "originJournalId",
417 "source": "input",
418 "type": "text"
419 },
420 {
421 "label": "Custom Origin Journal Line Id",
422 "name": "customOriginJournalLineId",
423 "role": "originJournalLineId",
424 "source": "input",
425 "type": "text"
426 },
427 {
428 "label": "Custom Subledger Node Label",
429 "name": "customSubledgerNodeName",
430 "role": "node",
431 "source": "input",
432 "type": "text"
433 }
434 ],
435 "primaryKeys": [
436 "customJournalId",
437 "customJournalLineId"
438 ]
439 },
440 "journalTypes": [
441 {
442 "behavior": "PERMANENT",
443 "code": "Test Permanent Journal Type",
444 "description": "Test Permanent Journal Type description"
445 },
446 {
447 "behavior": "REVERSING",
448 "code": "Test Reversal Journal Type",
449 "description": "Reversing Next day description",
450 "reversingDate": "NEXT_DAY"
451 }
452 ],
453 "nodeValues": [
454 {
455 "fieldName": "customSubledgerNodeName",
456 "values": [
457 "Custom Subledger Node Label element 1",
458 "Custom Subledger Node Label element 2"
459 ]
460 }
461 ],
462 "nodes": [
463 {
464 "fields": {
465 "customSubledgerNodeName": "Custom Subledger Node Label element 1"
466 },
467 "nodeConfigs": [
468 {
469 "accountingConfigName": "IFRS",
470 "graceDays": 0,
471 "graceHours": 0,
472 "overridePostingDate": "none"
473 }
474 ],
475 "timeZone": "Europe/Warsaw"
476 }
477 ],
478 "postingComponentIdentifications": [
479 {
480 "businessEventTypeName": "IRSTRADE",
481 "postingComponents": [
482 {
483 "postingComponentCode": "PLFEES"
484 }
485 ]
486 },
487 {
488 "businessEventTypeName": "IRSTRADE_REV",
489 "postingComponents": [
490 {
491 "postingComponentCode": "Reversing posting component name"
492 }
493 ]
494 }
495 ],
496 "postingComponents": [
497 {
498 "accountingConfigName": "IFRS",
499 "code": "PLFEES",
500 "description": "PLFEES description",
501 "journalType": "Test Permanent Journal Type",
502 "postingPatterns": [
503 {
504 "amountField": "transactionAmountName",
505 "amountSignage": "AUTO",
506 "currencyField": "transactionCurrencyName",
507 "debitCredit": "CR",
508 "postingCode": "test posting code CR",
509 "postingDateField": "effectiveDateName"
510 },
511 {
512 "amountField": "transactionAmountName",
513 "amountSignage": "AUTO",
514 "currencyField": "transactionCurrencyName",
515 "debitCredit": "DR",
516 "postingCode": "test posting code DR",
517 "postingDateField": "effectiveDateName"
518 }
519 ]
520 },
521 {
522 "accountingConfigName": "IFRS",
523 "code": "Reversing posting component name",
524 "description": "Reversing posting component description",
525 "journalType": "Test Reversal Journal Type",
526 "postingPatterns": [
527 {
528 "amountField": "transactionAmountName",
529 "amountSignage": "AUTO",
530 "currencyField": "transactionCurrencyName",
531 "debitCredit": "CR",
532 "postingCode": "test posting code CR",
533 "postingDateField": "effectiveDateName"
534 },
535 {
536 "amountField": "transactionAmountName",
537 "amountSignage": "AUTO",
538 "currencyField": "transactionCurrencyName",
539 "debitCredit": "DR",
540 "postingCode": "test posting code DR",
541 "postingDateField": "effectiveDateName"
542 }
543 ]
544 }
545 ]
546 },
547 "downloadTime": {
548 "nanos": 1,
549 "seconds": 1
550 },
551 "downloadedBy": "john.doe@aptitudesoftware.com",
552 "version": "v20230211"
553}

Uploading Fynapse Configuration

You can upload a Fynapse configuration (2) using the Upload a new Fynapse configuration endpoint. The payload has to be defined in the structure of the Configuration Data JSON file.

PUT
/api/v1/configuration/bulk
1import requests
2
3url = "https://api.fynapse.com/api/v1/configuration/bulk"
4
5payload = {
6 "configuration": {
7 "accountLookups": [
8 {
9 "accountLookupPatterns": [{ "account": "111" }],
10 "postingCode": "test posting code CR"
11 },
12 {
13 "accountLookupPatterns": [{ "account": "222" }],
14 "postingCode": "test posting code DR"
15 }
16 ],
17 "accountingConfigurations": [
18 {
19 "businessCalendarName": "Test Business Calendar",
20 "description": "IFRS description",
21 "dimensionSetName": "Test Dimension Set",
22 "fiscalCalendarName": "Test Fiscal Calendar",
23 "name": "IFRS"
24 }
25 ],
26 "businessCalendars": [
27 {
28 "effectiveFrom": "1900-01-01",
29 "effectiveTo": "2099-12-31",
30 "name": "Test Business Calendar",
31 "status": "ACTIVE"
32 }
33 ],
34 "businessDateSettings": { "businessDateShift": 0 },
35 "businessEventDefinition": {
36 "active": True,
37 "attributes": [
38 {
39 "label": "Event Type Label",
40 "name": "eventTypeName",
41 "role": "event_type",
42 "source": "input",
43 "type": "text"
44 },
45 {
46 "label": "Effective Date Label",
47 "name": "effectiveDateName",
48 "role": "effective_date",
49 "source": "input",
50 "type": "date"
51 },
52 {
53 "label": "Amount Type Label",
54 "name": "transactionAmountName",
55 "role": "attribute",
56 "source": "input",
57 "type": "decimal"
58 },
59 {
60 "label": "Currency Label",
61 "name": "transactionCurrencyName",
62 "role": "attribute",
63 "source": "input",
64 "type": "text"
65 },
66 {
67 "label": "Custom Subledger Node Label",
68 "name": "customSubledgerNodeName",
69 "role": "node",
70 "source": "input",
71 "type": "text"
72 }
73 ],
74 "effectiveFrom": "2023-04-05"
75 },
76 "businessEventTypes": [
77 {
78 "description": "IRSTRADE description",
79 "name": "IRSTRADE"
80 },
81 {
82 "description": "IRSTRADE_REV description",
83 "name": "IRSTRADE_REV"
84 }
85 ],
86 "dimensionSets": [
87 {
88 "attributes": ["customAccountingConfig", "customAccount", "customTransactionCurrency", "customSubledgerNodeName"],
89 "description": "Test Dimension Set description",
90 "name": "Test Dimension Set"
91 }
92 ],
93 "entities": [
94 {
95 "attributes": [
96 {
97 "label": "Event Type Label",
98 "mandatory": True,
99 "name": "EventTypeName",
100 "source": "input",
101 "type": { "typeName": "ListType" }
102 },
103 {
104 "label": "Effective Date Label",
105 "mandatory": True,
106 "name": "effectiveDateName",
107 "source": "input",
108 "type": { "typeName": "ListType" }
109 },
110 {
111 "label": "Amount Type Label",
112 "mandatory": True,
113 "name": "transactionAmountName",
114 "source": "input",
115 "type": { "typeName": "ListType" }
116 },
117 {
118 "label": "Currency Label",
119 "mandatory": True,
120 "name": "transactionCurrencyName",
121 "source": "input",
122 "type": { "typeName": "ListType" }
123 },
124 {
125 "label": "Custom Subledger Node Label",
126 "mandatory": True,
127 "name": "customSubledgerNodeName",
128 "source": "input",
129 "type": { "typeName": "ListType" }
130 }
131 ],
132 "description": "Transaction Entity For Flow",
133 "name": "TransactionEntityForFlow",
134 "namespace": "fynapse",
135 "temporalityType": "Transaction",
136 "type": "DefinedEntity"
137 }
138 ],
139 "featureFlags": {
140 "posting-date-override": False,
141 "flow-assistant": True,
142 "extracts-in-bulk": False,
143 "flow": True
144 },
145 "fiscalCalendars": [
146 {
147 "type": "gregorian",
148 "active": True,
149 "effectiveFrom": "2024-12-23",
150 "endOfFirstYear": "2019-12-31",
151 "name": "Test Fiscal Calendar",
152 "startYear": 2019
153 }
154 ],
155 "flows": [
156 {
157 "graph": {
158 "edges": {
159 "6ace1605-e6dc-46e9-a237-32a334ce09d9": ["1b2670bc-b718-4f4d-873c-92d535a479fd"],
160 "8e7789cc-03ef-4aa3-9c2d-6b5143b4727b": ["6ace1605-e6dc-46e9-a237-32a334ce09d9"],
161 "8f62cb96-a738-4a2b-a427-83043837019a": ["8e7789cc-03ef-4aa3-9c2d-6b5143b4727b"]
162 },
163 "nodes": {
164 "8e7789cc-03ef-4aa3-9c2d-6b5143b4727b": {
165 "x": 300,
166 "y": 120,
167 "step": {
168 "type": "Script",
169 "name": "Script",
170 "script": "from decimal import Decimal
171input.transactionAmountName += Decimal('20.000')
172currencyLabel = \"PLN\"
173publish(\"CurrencyLabel\", currencyLabel)",
174 "outputDefinition": [
175 {
176 "name": "CurrencyLabel",
177 "type": {
178 "type": "Primitive",
179 "primitive": "TEXT"
180 }
181 }
182 ]
183 }
184 },
185 "8f62cb96-a738-4a2b-a427-83043837019a": {
186 "x": 0,
187 "y": 120,
188 "step": {
189 "type": "Input",
190 "name": "Input",
191 "source": {
192 "namespace": "fynapse",
193 "name": "TransactionEntityForFlow"
194 }
195 }
196 },
197 "1b2670bc-b718-4f4d-873c-92d535a479fd": {
198 "x": 915,
199 "y": 120,
200 "step": {
201 "type": "JournalProcessor",
202 "name": "JournalProcessor"
203 }
204 },
205 "6ace1605-e6dc-46e9-a237-32a334ce09d9": {
206 "x": 615,
207 "y": 120,
208 "step": {
209 "type": "AccountingEngine",
210 "name": "AccountingEngine",
211 "mapping": [
212 {
213 "source": {
214 "group": "INPUT",
215 "path": []
216 },
217 "target": { "path": [] },
218 "contextMapping": True
219 },
220 {
221 "source": {
222 "group": "INPUT",
223 "path": ["EventTypeName"]
224 },
225 "target": { "path": ["eventTypeName"] },
226 "contextMapping": False
227 },
228 {
229 "source": {
230 "group": "INPUT",
231 "path": ["effectiveDateName"]
232 },
233 "target": { "path": ["effectiveDateName"] },
234 "contextMapping": False
235 },
236 {
237 "source": {
238 "group": "INPUT",
239 "path": ["transactionAmountName"]
240 },
241 "target": { "path": ["transactionAmountName"] },
242 "contextMapping": False
243 },
244 {
245 "source": {
246 "group": "SCRIPT",
247 "path": ["CurrencyLabel"]
248 },
249 "target": { "path": ["transactionCurrencyName"] },
250 "contextMapping": False
251 },
252 {
253 "source": {
254 "group": "INPUT",
255 "path": ["customSubledgerNodeName"]
256 },
257 "target": { "path": ["customSubledgerNodeName"] },
258 "contextMapping": False
259 }
260 ]
261 }
262 }
263 }
264 },
265 "name": "Flow",
266 "versionStatus": "Published"
267 }
268 ],
269 "journalDefinition": {
270 "active": True,
271 "effectiveFrom": "2023-04-05",
272 "fields": [
273 {
274 "label": "Custom Core Date Label",
275 "name": "customCoreDate",
276 "role": "coreDate",
277 "source": "input",
278 "type": "date"
279 },
280 {
281 "label": "Custom Journal Type Label",
282 "name": "customJournalType",
283 "role": "journalType",
284 "source": "input",
285 "type": "text"
286 },
287 {
288 "label": "Custom Accounting Config Label",
289 "name": "customAccountingConfig",
290 "role": "accountingConfig",
291 "source": "input",
292 "type": "text"
293 },
294 {
295 "label": "Custom Account Label",
296 "name": "customAccount",
297 "role": "account",
298 "source": "input",
299 "type": "text"
300 },
301 {
302 "label": "Custom Transaction Amount Label",
303 "name": "customTransactionAmount",
304 "role": "transactionAmount",
305 "source": "input",
306 "type": "amount"
307 },
308 {
309 "label": "Custom Transaction Currency Label",
310 "name": "customTransactionCurrency",
311 "role": "transactionCurrency",
312 "source": "input",
313 "type": "text"
314 },
315 {
316 "label": "Custom Journal Id Label",
317 "name": "customJournalId",
318 "role": "journalId",
319 "source": "input",
320 "type": "uuid"
321 },
322 {
323 "label": "Custom Journal Line Id Label",
324 "name": "customJournalLineId",
325 "role": "lineId",
326 "source": "input",
327 "type": "uuid"
328 },
329 {
330 "label": "Custom Reverses Label",
331 "name": "customReverses",
332 "role": "reverses",
333 "source": "input",
334 "type": "uuid"
335 },
336 {
337 "label": "Custom Reversed by Label",
338 "name": "customReversedBy",
339 "role": "reversedBy",
340 "source": "input",
341 "type": "uuid"
342 },
343 {
344 "label": "Custom Journal Line No",
345 "name": "customJournalLineNo",
346 "role": "journalLineNo",
347 "source": "input",
348 "type": "integer"
349 },
350 {
351 "label": "Custom Ingestion Id Label",
352 "name": "customIngestionId",
353 "role": "ingestionId",
354 "source": "input",
355 "type": "text"
356 },
357 {
358 "label": "Custom Origin Journal Id",
359 "name": "customOriginJournalId",
360 "role": "originJournalId",
361 "source": "input",
362 "type": "text"
363 },
364 {
365 "label": "Custom Origin Journal Line Id",
366 "name": "customOriginJournalLineId",
367 "role": "originJournalLineId",
368 "source": "input",
369 "type": "text"
370 },
371 {
372 "label": "Custom Subledger Node Label",
373 "name": "customSubledgerNodeName",
374 "role": "node",
375 "source": "input",
376 "type": "text"
377 }
378 ],
379 "primaryKeys": ["customJournalId", "customJournalLineId"]
380 },
381 "journalTypes": [
382 {
383 "behavior": "PERMANENT",
384 "code": "Test Permanent Journal Type",
385 "description": "Test Permanent Journal Type description"
386 },
387 {
388 "behavior": "REVERSING",
389 "code": "Test Reversal Journal Type",
390 "description": "Reversing Next day description",
391 "reversingDate": "NEXT_DAY"
392 }
393 ],
394 "nodeValues": [
395 {
396 "fieldName": "customSubledgerNodeName",
397 "values": ["Custom Subledger Node Label element 1", "Custom Subledger Node Label element 2"]
398 }
399 ],
400 "nodes": [
401 {
402 "fields": { "customSubledgerNodeName": "Custom Subledger Node Label element 1" },
403 "nodeConfigs": [
404 {
405 "accountingConfigName": "IFRS",
406 "graceDays": 0,
407 "graceHours": 0,
408 "overridePostingDate": "none"
409 }
410 ],
411 "timeZone": "Europe/Warsaw"
412 }
413 ],
414 "postingComponentIdentifications": [
415 {
416 "businessEventTypeName": "IRSTRADE",
417 "postingComponents": [{ "postingComponentCode": "PLFEES" }]
418 },
419 {
420 "businessEventTypeName": "IRSTRADE_REV",
421 "postingComponents": [{ "postingComponentCode": "Reversing posting component name" }]
422 }
423 ],
424 "postingComponents": [
425 {
426 "accountingConfigName": "IFRS",
427 "code": "PLFEES",
428 "description": "PLFEES description",
429 "journalType": "Test Permanent Journal Type",
430 "postingPatterns": [
431 {
432 "amountField": "transactionAmountName",
433 "amountSignage": "AUTO",
434 "currencyField": "transactionCurrencyName",
435 "debitCredit": "CR",
436 "postingCode": "test posting code CR",
437 "postingDateField": "effectiveDateName"
438 },
439 {
440 "amountField": "transactionAmountName",
441 "amountSignage": "AUTO",
442 "currencyField": "transactionCurrencyName",
443 "debitCredit": "DR",
444 "postingCode": "test posting code DR",
445 "postingDateField": "effectiveDateName"
446 }
447 ]
448 },
449 {
450 "accountingConfigName": "IFRS",
451 "code": "Reversing posting component name",
452 "description": "Reversing posting component description",
453 "journalType": "Test Reversal Journal Type",
454 "postingPatterns": [
455 {
456 "amountField": "transactionAmountName",
457 "amountSignage": "AUTO",
458 "currencyField": "transactionCurrencyName",
459 "debitCredit": "CR",
460 "postingCode": "test posting code CR",
461 "postingDateField": "effectiveDateName"
462 },
463 {
464 "amountField": "transactionAmountName",
465 "amountSignage": "AUTO",
466 "currencyField": "transactionCurrencyName",
467 "debitCredit": "DR",
468 "postingCode": "test posting code DR",
469 "postingDateField": "effectiveDateName"
470 }
471 ]
472 }
473 ]
474 },
475 "downloadTime": {
476 "nanos": 1,
477 "seconds": 1
478 },
479 "downloadedBy": "john.doe@aptitudesoftware.com",
480 "version": "v20230211"
481}
482headers = {
483 "Authorization": "Bearer <token>",
484 "Content-Type": "application/json"
485}
486
487response = requests.put(url, json=payload, headers=headers)
488
489print(response.json())

Deleting Fynapse Configuration

You can delete your Fynapse configuration (3) using the Delete Fynapse configuration endpoint.

DELETE
/api/v1/configuration/bulk
1import requests
2
3url = "https://api.fynapse.com/api/v1/configuration/bulk"
4
5headers = {"Authorization": "Bearer <token>"}
6
7response = requests.delete(url, headers=headers)
8
9print(response.json())

Remember, this endpoint will delete the entire configuration and wipe the processing data.