@mojaloop/central-ledger 19.14.0 → 20.1.0

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.
Files changed (394) hide show
  1. package/.grype.yaml +3 -0
  2. package/.license-scanner.json +16 -0
  3. package/.ncurc.yaml +19 -13
  4. package/.nvmrc +1 -1
  5. package/.nycrc.yml +14 -2
  6. package/CHANGELOG.md +51 -0
  7. package/Dockerfile +13 -10
  8. package/README.md +39 -89
  9. package/audit-ci.jsonc +1 -1
  10. package/config/default.json +60 -3
  11. package/config/deprecated.default-settlement.json +160 -0
  12. package/docker/ml-api-adapter/default.json +28 -0
  13. package/docker-compose.yml +6 -0
  14. package/nodemon.json +6 -0
  15. package/package.json +128 -64
  16. package/{sbom-v19.13.2.csv → sbom-v20.0.0.csv} +886 -736
  17. package/scripts/_wait4_all.js +5 -5
  18. package/scripts/transferSettlementTemp/interchangeFeeCalculation.js +51 -0
  19. package/src/api/index.ts +30 -0
  20. package/src/api/interface/swagger.json +2249 -2054
  21. package/src/api/participants/routes.js +1 -1
  22. package/src/api/root/handler.int.ts +55 -0
  23. package/src/api/routes.js +7 -6
  24. package/src/api/server.ts +27 -0
  25. package/src/api/server.unit.ts +16 -0
  26. package/src/api/settlementModels/routes.js +4 -4
  27. package/src/domain/participant/index.d.ts +47 -0
  28. package/src/domain/participant/index.int.ts +724 -0
  29. package/src/domain/participant/index.js +4 -5
  30. package/src/domain/position/fx-prepare.js +1 -1
  31. package/src/domain/position/fx-timeout-reserved.js +6 -0
  32. package/src/domain/position/prepare.js +1 -1
  33. package/src/handlers/admin/handler.js +1 -1
  34. package/src/handlers/index.js +30 -0
  35. package/src/handlers/positions/handler.js +0 -2
  36. package/src/handlers/positions/handlerBatch.js +5 -5
  37. package/src/handlers/register.js +44 -29
  38. package/src/handlers/timeouts/handler.js +1 -4
  39. package/src/handlers/transfers/fx-abort.int.ts +209 -0
  40. package/src/handlers/transfers/fx-handlers.int.ts +275 -0
  41. package/src/handlers/transfers/fx-timeout.int.ts +284 -0
  42. package/src/handlers/transfers/handler.js +1 -3
  43. package/src/handlers/transfers/handlers.int.ts +538 -0
  44. package/src/handlers/transfers/prepare.int.ts +1283 -0
  45. package/src/handlers/transfers/prepare.js +2 -2
  46. package/src/knexfile.js +19 -0
  47. package/src/lib/cache.js +1 -1
  48. package/src/lib/config/index.ts +60 -0
  49. package/src/lib/config/resolver.ts +231 -0
  50. package/src/lib/config/resolver.unit.ts +72 -0
  51. package/src/lib/config/types.ts +372 -0
  52. package/src/lib/config/util.ts +523 -0
  53. package/src/lib/config/util.unit.ts +825 -0
  54. package/src/lib/migrator.js +3 -3
  55. package/src/lib/proxyCache.js +3 -3
  56. package/{migrations → src/migrations}/100100_event.js +1 -1
  57. package/{migrations → src/migrations}/110100_contactType.js +1 -1
  58. package/{migrations → src/migrations}/110200_currency.js +1 -1
  59. package/{migrations → src/migrations}/110201_currency-scale.js +1 -1
  60. package/{migrations → src/migrations}/110300_endpointType.js +1 -1
  61. package/{migrations → src/migrations}/110400_ledgerEntryType.js +1 -1
  62. package/{migrations → src/migrations}/110450_ledgerAccountType.js +1 -1
  63. package/{migrations → src/migrations}/110500_participantLimitType.js +1 -1
  64. package/{migrations → src/migrations}/110600_transferParticipantRoleType.js +1 -1
  65. package/{migrations → src/migrations}/110700_transferState.js +1 -1
  66. package/{migrations → src/migrations}/110900_settlementState.js +1 -1
  67. package/{migrations → src/migrations}/112000_bulkTransferState.js +1 -1
  68. package/{migrations → src/migrations}/112100_bulkProcessingState.js +1 -1
  69. package/{migrations → src/migrations}/200100_participant.js +1 -1
  70. package/{migrations → src/migrations}/200200_participantContact.js +1 -1
  71. package/{migrations → src/migrations}/200300_participantEndpoint.js +1 -1
  72. package/{migrations → src/migrations}/200400_participantParty.js +1 -1
  73. package/{migrations → src/migrations}/200600_token.js +1 -1
  74. package/{migrations → src/migrations}/200601_token-indexes.js +1 -1
  75. package/{migrations → src/migrations}/300100_transferDuplicateCheck.js +2 -2
  76. package/{migrations → src/migrations}/300150_bulkTransferDuplicateCheck.js +2 -2
  77. package/{migrations → src/migrations}/300200_transfer.js +2 -2
  78. package/{migrations → src/migrations}/300202_transfer-decimal184.js +1 -1
  79. package/{migrations → src/migrations}/300250_bulkTransfer.js +2 -3
  80. package/{migrations → src/migrations}/300275_bulkTransferAssociation.js +2 -3
  81. package/{migrations → src/migrations}/300300_ilpPacket.js +1 -1
  82. package/{migrations → src/migrations}/300400_transferStateChange.js +1 -1
  83. package/{migrations → src/migrations}/300450_bulkTransferStateChange.js +1 -1
  84. package/{migrations → src/migrations}/300500_segment.js +1 -1
  85. package/{migrations → src/migrations}/310100_participantCurrency.js +1 -1
  86. package/{migrations → src/migrations}/310200_transferParticipant.js +1 -1
  87. package/{migrations → src/migrations}/310202_transferParticipant-decimal184.js +1 -1
  88. package/{migrations → src/migrations}/310204_transferParticipant-participantId.js +2 -2
  89. package/{migrations → src/migrations}/310300_participantPosition.js +1 -1
  90. package/{migrations → src/migrations}/310302_participantPosition-decimal184.js +1 -1
  91. package/{migrations → src/migrations}/310400_participantPositionChange.js +1 -1
  92. package/{migrations → src/migrations}/310402_participantPositionChange-decimal184.js +1 -1
  93. package/{migrations → src/migrations}/310403_participantPositionChange-participantCurrencyId.js +2 -2
  94. package/{migrations → src/migrations}/310404_participantPositionChange-change.js +2 -2
  95. package/{migrations → src/migrations}/310500_participantLimit.js +1 -1
  96. package/{migrations → src/migrations}/310502_participantLimit-decimal184.js +1 -1
  97. package/{migrations → src/migrations}/400100_settlementWindow.js +1 -1
  98. package/{migrations → src/migrations}/400200_settlement.js +1 -1
  99. package/{migrations → src/migrations}/400300_settlementSettlementWindow.js +1 -1
  100. package/{migrations → src/migrations}/400301_settlementSettlementWindow-indexes.js +0 -1
  101. package/{migrations → src/migrations}/400400_settlementWindowStateChange.js +1 -1
  102. package/{migrations → src/migrations}/400500_settlementTransferParticipant.js +1 -1
  103. package/{migrations → src/migrations}/400502_settlementTransferParticipant-decimal184.js +1 -1
  104. package/{migrations → src/migrations}/400600_settlementParticipantCurrency.js +1 -1
  105. package/{migrations → src/migrations}/400602_settlementParticipantCurrency-decimal184.js +1 -1
  106. package/{migrations → src/migrations}/400700_settlementParticipantCurrencyStateChange.js +1 -1
  107. package/{migrations → src/migrations}/400800_settlementStateChange.js +1 -1
  108. package/{migrations → src/migrations}/400900_settlementWindowContent.js +1 -1
  109. package/{migrations → src/migrations}/401000_settlementWindowContentStateChange.js +1 -1
  110. package/{migrations → src/migrations}/401001_settlementWindowContentStateChange-indexes.js +6 -6
  111. package/{migrations → src/migrations}/401200_settlementContentAggregation.js +1 -1
  112. package/{migrations → src/migrations}/401300_settlementModel.js +1 -1
  113. package/{migrations → src/migrations}/410100_transferFulfilmentDuplicateCheck.js +1 -1
  114. package/{migrations → src/migrations}/410102_transferFulfilmentDuplicateCheck-dropForeignTransferId.js +1 -1
  115. package/{migrations → src/migrations}/410103_transferFulfilmentDuplicateCheck-hashNullable.js +1 -1
  116. package/{migrations → src/migrations}/410200_transferFulfilment.js +1 -1
  117. package/{migrations → src/migrations}/410202_transferFulfilment-ilpFulfilment.js +1 -1
  118. package/{migrations → src/migrations}/410203_transferFulfilment-foreignTransferFulfilmentId.js +1 -1
  119. package/{migrations → src/migrations}/410240_bulkTransferFulfilmentDuplicateCheck.js +1 -1
  120. package/{migrations → src/migrations}/410250_bulkTransferFulfilment.js +1 -1
  121. package/{migrations → src/migrations}/410300_transferExtension.js +1 -1
  122. package/{migrations → src/migrations}/410302_transferExtension-transferErrorId.js +1 -1
  123. package/{migrations → src/migrations}/410350_bulkTransferExtension.js +1 -1
  124. package/{migrations → src/migrations}/410400_transferTimeout.js +1 -1
  125. package/{migrations → src/migrations}/410450_transferErrorDuplicateCheck.js +1 -1
  126. package/{migrations → src/migrations}/410500_transferError.js +1 -1
  127. package/{migrations → src/migrations}/410502_transferError-foreignTransferErrorDuplicateCheckId.js +1 -1
  128. package/{migrations → src/migrations}/410550_bulkTransferError.js +1 -1
  129. package/{migrations → src/migrations}/410600_expiringTransfer.js +1 -1
  130. package/{migrations → src/migrations}/500401_quote-hotfix-2719.js +8 -8
  131. package/{migrations → src/migrations}/500501_feature-fixSubIdRef.js +12 -12
  132. package/{migrations → src/migrations}/500601_party-2480.js +3 -3
  133. package/{migrations → src/migrations}/501001_quoteExtension-quote-service-174.js +1 -2
  134. package/{migrations → src/migrations}/501002_quoteExtension-2522.js +3 -3
  135. package/{migrations → src/migrations}/600010_fxTransferType.js +1 -1
  136. package/{migrations → src/migrations}/600012_fxParticipantCurrencyType.js +1 -1
  137. package/{migrations → src/migrations}/600100_fxTransferDuplicateCheck.js +2 -2
  138. package/{migrations → src/migrations}/600110_fxTransferErrorDuplicateCheck.js.js +1 -1
  139. package/{migrations → src/migrations}/600200_fxTransfer.js +2 -2
  140. package/{migrations → src/migrations}/600400_fxTransferStateChange.js +1 -1
  141. package/{migrations → src/migrations}/600501_fxWatchList.js +2 -2
  142. package/{migrations → src/migrations}/600600_fxTransferFulfilmentDuplicateCheck.js +1 -1
  143. package/{migrations → src/migrations}/600700_fxTransferFulfilment.js +1 -1
  144. package/{migrations → src/migrations}/600800_fxTransferExtension.js +1 -1
  145. package/{migrations → src/migrations}/601400_fxTransferTimeout.js +1 -1
  146. package/{migrations → src/migrations}/601500_fxTransferError.js +1 -1
  147. package/{migrations → src/migrations}/610200_fxTransferParticipant.js +1 -1
  148. package/{migrations → src/migrations}/610202_fxTransferParticipant-participantId.js +2 -2
  149. package/{migrations → src/migrations}/610403_participantPositionChange-fxTransfer.js +1 -1
  150. package/{migrations → src/migrations}/800100_quotePartyView.js +1 -1
  151. package/{migrations → src/migrations}/800101_feature-fixSubIdRef.js +1 -1
  152. package/{migrations → src/migrations}/800200_quoteView.js +1 -1
  153. package/{migrations → src/migrations}/800300_quoteResponseView.js +1 -1
  154. package/{migrations → src/migrations}/900100_foreign-keys.js +18 -18
  155. package/{migrations → src/migrations}/900101_foreign-keys.js +6 -6
  156. package/{migrations → src/migrations}/910100_feature904DDL.js +7 -7
  157. package/{migrations → src/migrations}/910101_feature904DataMigration.js +1 -1
  158. package/{migrations → src/migrations}/910102_feature949DataMigration.js +1 -1
  159. package/{migrations → src/migrations}/910103_feature1093SettlementByCurrency.js +3 -3
  160. package/{migrations → src/migrations}/940101_quotePartyIdInfoExtension-2522.js +25 -25
  161. package/{migrations → src/migrations}/950101_transferParticipantStateChange.js +2 -2
  162. package/{migrations → src/migrations}/950102_settlementModel-adjustPosition.js +2 -2
  163. package/{migrations → src/migrations}/950103_dropTransferParticipantStateChange.js +3 -3
  164. package/{migrations → src/migrations}/950104_settlementModel-settlementAccountTypeId.js +3 -3
  165. package/src/migrations/950107_settlementWindowContent_foreign_settlementModel.js +63 -0
  166. package/{migrations → src/migrations}/950108_participantProxy.js +1 -2
  167. package/{migrations → src/migrations}/950120_fxQuoteConversionTerms_sourceAmount_nullable.js +1 -1
  168. package/{migrations → src/migrations}/960100_create_externalParticipant.js +2 -2
  169. package/{migrations → src/migrations}/960110_alter_transferParticipant__addFiled_externalParticipantId.js +2 -2
  170. package/{migrations → src/migrations}/961001_transferForwarded.js +1 -1
  171. package/{migrations → src/migrations}/961002_fxTransferForwarded.js +1 -1
  172. package/src/models/participant/externalParticipant.int.ts +85 -0
  173. package/src/models/participant/facade.js +4 -2
  174. package/src/models/participant/participantCurrencyCached.js +1 -1
  175. package/src/models/position/facade.js +8 -2
  176. package/src/models/transfer/facade.int.ts +139 -0
  177. package/src/models/transfer/facade.js +8 -3
  178. package/src/models/transfer/transferDuplicateCheck.js +2 -2
  179. package/src/models/transfer/transferError.int.ts +112 -0
  180. package/src/models/transfer/transferExtension.int.ts +137 -0
  181. package/src/models/transfer/transferStateChange.int.ts +117 -0
  182. package/{seeds → src/seeds}/participant.js +1 -1
  183. package/{seeds → src/seeds}/settlementInterchange.js +1 -0
  184. package/src/settlement/api/handlerRoutes.js +71 -0
  185. package/src/settlement/api/handlers/health.js +10 -0
  186. package/src/settlement/api/handlers/index.js +57 -0
  187. package/src/settlement/api/handlers/settlementWindows/{id}.js +103 -0
  188. package/src/settlement/api/handlers/settlementWindows.js +77 -0
  189. package/src/settlement/api/handlers/settlements/{id}.js +133 -0
  190. package/src/settlement/api/handlers/settlements/{sid}/participants/{pid}/accounts/{aid}.js +127 -0
  191. package/src/settlement/api/handlers/settlements/{sid}/participants/{pid}.js +127 -0
  192. package/src/settlement/api/handlers/settlements.js +114 -0
  193. package/src/settlement/api/openapiRouting.js +87 -0
  194. package/src/settlement/api/routes.js +176 -0
  195. package/src/settlement/domain/rules/index.js +46 -0
  196. package/src/settlement/domain/settlement/index.js +405 -0
  197. package/src/settlement/domain/settlementWindow/index.js +117 -0
  198. package/src/settlement/domain/transactions/index.js +83 -0
  199. package/src/settlement/domain/transferSettlement/index.js +57 -0
  200. package/src/settlement/handlers/deferredSettlement/handler.js +180 -0
  201. package/src/settlement/handlers/grossSettlement/handler.js +180 -0
  202. package/src/settlement/handlers/index.js +101 -0
  203. package/src/settlement/handlers/register.js +92 -0
  204. package/src/settlement/handlers/rules/handler.js +164 -0
  205. package/src/settlement/interface/swagger-handler.json +34 -0
  206. package/src/settlement/interface/swagger.json +1560 -0
  207. package/src/settlement/lib/db.js +32 -0
  208. package/src/settlement/lib/kafka/index.js +41 -0
  209. package/src/settlement/lib/kafka/producer.js +142 -0
  210. package/src/settlement/lib/scriptEngine.js +99 -0
  211. package/src/settlement/lib/scriptsLoader.js +175 -0
  212. package/src/settlement/lib/utility.js +243 -0
  213. package/src/settlement/models/ilpPackets/ilpPacket.js +42 -0
  214. package/src/settlement/models/lib/enums.js +192 -0
  215. package/src/settlement/models/misc/migrationLock.js +53 -0
  216. package/src/settlement/models/settlement/facade.js +1652 -0
  217. package/src/settlement/models/settlement/index.js +55 -0
  218. package/src/settlement/models/settlement/participantCurrency.js +48 -0
  219. package/src/settlement/models/settlement/settlement.js +49 -0
  220. package/src/settlement/models/settlement/settlementModel.js +44 -0
  221. package/src/settlement/models/settlement/settlementParticipantCurrency.js +61 -0
  222. package/src/settlement/models/settlement/settlementStateChange.js +44 -0
  223. package/src/settlement/models/settlement/settlementTransferParticipant.js +46 -0
  224. package/src/settlement/models/settlementWindow/facade.js +345 -0
  225. package/src/settlement/models/settlementWindow/index.js +47 -0
  226. package/src/settlement/models/settlementWindow/settlementWindowStateChange.js +55 -0
  227. package/src/settlement/models/settlementWindowContent/facade.js +79 -0
  228. package/src/settlement/models/settlementWindowContent/index.js +40 -0
  229. package/src/settlement/models/settlementWindowContent/settlementWindowContentStateChange.js +53 -0
  230. package/src/settlement/models/transferSettlement/facade.js +363 -0
  231. package/src/settlement/models/transferSettlement/index.js +42 -0
  232. package/src/settlement/shared/logger/index.js +7 -0
  233. package/src/settlement/shared/plugins.js +88 -0
  234. package/src/settlement/shared/setup.js +224 -0
  235. package/src/settlement/utils/truthyProperty.js +37 -0
  236. package/src/shared/legacyUtilShim.js +20 -0
  237. package/src/shared/plugins.js +3 -3
  238. package/src/shared/results.ts +22 -0
  239. package/src/shared/results.unit.ts +38 -0
  240. package/src/shared/setup.js +14 -1
  241. package/src/testing/api-helpers.ts +1222 -0
  242. package/src/testing/exec-async.ts +67 -0
  243. package/src/testing/harness.snapshot.sql +3895 -0
  244. package/src/testing/harness.test.ts +15 -0
  245. package/src/testing/harness.ts +1160 -0
  246. package/src/testing/kafka.ts +221 -0
  247. package/src/testing/prng.ts +82 -0
  248. package/src/testing/rdkafka.test.ts +263 -0
  249. package/src/testing/run.ts +559 -0
  250. package/src/testing/snapshot.test.ts +92 -0
  251. package/src/testing/snapshot.ts +549 -0
  252. package/src/testing/tap-stream.ts +164 -0
  253. package/src/testing/types.ts +95 -0
  254. package/src/testing/util.ts +333 -0
  255. package/src/types/central-services-error-handling.d.ts +72 -0
  256. package/src/types/central-services-stream.d.ts +148 -0
  257. package/test-integration.Dockerfile +0 -2
  258. package/test.Dockerfile +0 -2
  259. package/tsconfig.json +40 -0
  260. package/config/knexfile.js +0 -19
  261. package/migrations/950107_settlementWindowContent_foreign_settlementModel.js +0 -63
  262. package/src/api/index.js +0 -16
  263. package/src/lib/config.js +0 -81
  264. /package/{migrations → src/migrations}/110101_contactType-indexes.js +0 -0
  265. /package/{migrations → src/migrations}/110301_endpointType-indexes.js +0 -0
  266. /package/{migrations → src/migrations}/110401_ledgerEntryType-indexes.js +0 -0
  267. /package/{migrations → src/migrations}/110451_ledgerAccountType-indexes.js +0 -0
  268. /package/{migrations → src/migrations}/110501_participantLimitType-indexes.js +0 -0
  269. /package/{migrations → src/migrations}/110601_transferParticipantRoleType-indexes.js +0 -0
  270. /package/{migrations → src/migrations}/110800_settlementWindowState.js +0 -0
  271. /package/{migrations → src/migrations}/111000_amountType.js +0 -0
  272. /package/{migrations → src/migrations}/111001_amountType-indexes.js +0 -0
  273. /package/{migrations → src/migrations}/111100_balanceOfPayments.js +0 -0
  274. /package/{migrations → src/migrations}/111101_balanceOfPayments-indexes.js +0 -0
  275. /package/{migrations → src/migrations}/111200_partyIdentifierType.js +0 -0
  276. /package/{migrations → src/migrations}/111201_partyIdentifierType-indexes.js +0 -0
  277. /package/{migrations → src/migrations}/111300_partyType.js +0 -0
  278. /package/{migrations → src/migrations}/111301_partyType-indexes.js +0 -0
  279. /package/{migrations → src/migrations}/111400_quoteDuplicateCheck.js +0 -0
  280. /package/{migrations → src/migrations}/111500_transactionInitiator.js +0 -0
  281. /package/{migrations → src/migrations}/111501_transactionInitiator-indexes.js +0 -0
  282. /package/{migrations → src/migrations}/111600_transactionInitiatorType.js +0 -0
  283. /package/{migrations → src/migrations}/111601_transactionInitiatorType-indexes.js +0 -0
  284. /package/{migrations → src/migrations}/111700_settlementDelay.js +0 -0
  285. /package/{migrations → src/migrations}/111701_settlementDelay-indexes.js +0 -0
  286. /package/{migrations → src/migrations}/111800_settlementInterchange.js +0 -0
  287. /package/{migrations → src/migrations}/111801_settlementInterchange-indexes.js +0 -0
  288. /package/{migrations → src/migrations}/111900_settlementGranularity.js +0 -0
  289. /package/{migrations → src/migrations}/111901_settlementGranularity-indexes.js +0 -0
  290. /package/{migrations → src/migrations}/112101_bulkProcessingState-indexes.js +0 -0
  291. /package/{migrations → src/migrations}/200101_participant-indexes.js +0 -0
  292. /package/{migrations → src/migrations}/200201_participantContact-indexes.js +0 -0
  293. /package/{migrations → src/migrations}/200301_participantEndpoint-indexes.js +0 -0
  294. /package/{migrations → src/migrations}/200401_participantParty-indexes.js +0 -0
  295. /package/{migrations → src/migrations}/300201_transfer-indexes.js +0 -0
  296. /package/{migrations → src/migrations}/300251_bulkTransfer-indexes.js +0 -0
  297. /package/{migrations → src/migrations}/300276_bulkTransferAssociation-indexes.js +0 -0
  298. /package/{migrations → src/migrations}/300401_transferStateChange-indexes.js +0 -0
  299. /package/{migrations → src/migrations}/300451_bulkTransferStateChange-indexes.js +0 -0
  300. /package/{migrations → src/migrations}/300501_segment-indexes.js +0 -0
  301. /package/{migrations → src/migrations}/310101_participantCurrency-indexes.js +0 -0
  302. /package/{migrations → src/migrations}/310201_transferParticipant-indexes.js +0 -0
  303. /package/{migrations → src/migrations}/310203_transferParticipant-indexes.js +0 -0
  304. /package/{migrations → src/migrations}/310301_participantPosition-indexes.js +0 -0
  305. /package/{migrations → src/migrations}/310401_participantPositionChange-indexes.js +0 -0
  306. /package/{migrations → src/migrations}/310405_participantPositionChange-positionChange.js +0 -0
  307. /package/{migrations → src/migrations}/310406_participantPositionChange-positionChange-revert.js +0 -0
  308. /package/{migrations → src/migrations}/310501_participantLimit-indexes.js +0 -0
  309. /package/{migrations → src/migrations}/310503_participantLimit-indexes-composite.js +0 -0
  310. /package/{migrations → src/migrations}/400401_settlmentWindowStateChange-indexes.js +0 -0
  311. /package/{migrations → src/migrations}/400501_settlementTransferParticipant-indexes.js +0 -0
  312. /package/{migrations → src/migrations}/400601_settlementParticipantCurrency-indexes.js +0 -0
  313. /package/{migrations → src/migrations}/400701_settlementParticipantCurrencyStateChange-indexes.js +0 -0
  314. /package/{migrations → src/migrations}/400801_settlementStateChange-indexes.js +0 -0
  315. /package/{migrations → src/migrations}/401002_settlementWindowContent-indexes.js +0 -0
  316. /package/{migrations → src/migrations}/401201_settlementContentAggregation-indexes.js +0 -0
  317. /package/{migrations → src/migrations}/401301_settlementModel-indexes.js +0 -0
  318. /package/{migrations → src/migrations}/410101_transferFulfilmentDuplicateCheck-indexes.js +0 -0
  319. /package/{migrations → src/migrations}/410201_transferFulfilment-indexes.js +0 -0
  320. /package/{migrations → src/migrations}/410301_transferExtension-indexes.js +0 -0
  321. /package/{migrations → src/migrations}/410351_bulkTransferExtension-indexes.js +0 -0
  322. /package/{migrations → src/migrations}/410401_transferTimeout-indexes.js +0 -0
  323. /package/{migrations → src/migrations}/410501_transferError-indexes.js +0 -0
  324. /package/{migrations → src/migrations}/410551_bulkTransferError-indexes.js +0 -0
  325. /package/{migrations → src/migrations}/410601_expiringTransfer-indexes.js +0 -0
  326. /package/{migrations → src/migrations}/500100_transactionReference.js +0 -0
  327. /package/{migrations → src/migrations}/500101_transactionReference-indexes.js +0 -0
  328. /package/{migrations → src/migrations}/500200_transactionScenario.js +0 -0
  329. /package/{migrations → src/migrations}/500201_transactionScenario-indexes.js +0 -0
  330. /package/{migrations → src/migrations}/500300_transactionSubScenario.js +0 -0
  331. /package/{migrations → src/migrations}/500400_quote.js +0 -0
  332. /package/{migrations → src/migrations}/500500_quoteParty.js +0 -0
  333. /package/{migrations → src/migrations}/500600_party.js +0 -0
  334. /package/{migrations → src/migrations}/500700_quoteResponse.js +0 -0
  335. /package/{migrations → src/migrations}/500800_quoteResponseIlpPacket.js +0 -0
  336. /package/{migrations → src/migrations}/500900_geoCode.js +0 -0
  337. /package/{migrations → src/migrations}/501000_quoteExtension.js +0 -0
  338. /package/{migrations → src/migrations}/501100_quoteResponseDuplicateCheck.js +0 -0
  339. /package/{migrations → src/migrations}/501200_quoteError.js +0 -0
  340. /package/{migrations → src/migrations}/501300_transferRules.js +0 -0
  341. /package/{migrations → src/migrations}/600011_fxTransferType-indexes.js +0 -0
  342. /package/{migrations → src/migrations}/600013_fxParticipantCurrencyType-indexes.js +0 -0
  343. /package/{migrations → src/migrations}/600201_fxTransfer-indexes.js +0 -0
  344. /package/{migrations → src/migrations}/600401_fxTransferStateChange-indexes.js +0 -0
  345. /package/{migrations → src/migrations}/600502_fxWatchList-indexes.js +0 -0
  346. /package/{migrations → src/migrations}/600601_fxTransferFulfilmentDuplicateCheck-indexes.js +0 -0
  347. /package/{migrations → src/migrations}/600701_fxTransferFulfilment-indexes.js +0 -0
  348. /package/{migrations → src/migrations}/601401_fxTransferTimeout-indexes.js +0 -0
  349. /package/{migrations → src/migrations}/601501_fxTransferError-indexes.js +0 -0
  350. /package/{migrations → src/migrations}/610201_fxTransferParticipant-indexes.js +0 -0
  351. /package/{migrations → src/migrations}/910102_hotfix954.js +0 -0
  352. /package/{migrations → src/migrations}/940100_quotePartyIdInfoExtension.js +0 -0
  353. /package/{migrations → src/migrations}/950100_settlementContentAggregation-decimal184.js +0 -0
  354. /package/{migrations → src/migrations}/950106_unique_settlement_model_ledger_account_currency.js +0 -0
  355. /package/{migrations → src/migrations}/950109_fxQuote.js +0 -0
  356. /package/{migrations → src/migrations}/950110_fxQuoteResponse.js +0 -0
  357. /package/{migrations → src/migrations}/950111_fxQuoteError.js +0 -0
  358. /package/{migrations → src/migrations}/950113_fxQuoteDuplicateCheck.js +0 -0
  359. /package/{migrations → src/migrations}/950114_fxQuoteResponseDuplicateCheck.js +0 -0
  360. /package/{migrations → src/migrations}/950115_fxQuoteConversionTerms.js +0 -0
  361. /package/{migrations → src/migrations}/950116_fxQuoteConversionTermsExtension.js +0 -0
  362. /package/{migrations → src/migrations}/950117_fxQuoteResponseConversionTerms.js +0 -0
  363. /package/{migrations → src/migrations}/950118_fxQuoteResponseConversionTermsExtension.js +0 -0
  364. /package/{migrations → src/migrations}/950119_fxCharge.js +0 -0
  365. /package/{migrations → src/migrations}/960111_alter_fxTransferParticipant__addFiled_externalParticipantId.js +0 -0
  366. /package/{migrations → src/migrations}/960112_fxTransfer-indexes2.js +0 -0
  367. /package/{migrations → src/migrations}/960113_fxTransferExtension-indexes.js +0 -0
  368. /package/{migrations → src/migrations}/960114_fxTransferTimeout-indexes2.js +0 -0
  369. /package/{migrations → src/migrations}/961000_participantEndpoint_unique.js +0 -0
  370. /package/{migrations → src/migrations}/migration.template +0 -0
  371. /package/{seeds → src/seeds}/amountType.js +0 -0
  372. /package/{seeds → src/seeds}/balanceOfPayments.js +0 -0
  373. /package/{seeds → src/seeds}/bulkProcessingState.js +0 -0
  374. /package/{seeds → src/seeds}/bulkTransferState.js +0 -0
  375. /package/{seeds → src/seeds}/currency.js +0 -0
  376. /package/{seeds → src/seeds}/endpointType.js +0 -0
  377. /package/{seeds → src/seeds}/fxParticipantCurrencyType.js +0 -0
  378. /package/{seeds → src/seeds}/fxTransferType.js +0 -0
  379. /package/{seeds → src/seeds}/ledgerAccountType.js +0 -0
  380. /package/{seeds → src/seeds}/ledgerEntryType.js +0 -0
  381. /package/{seeds → src/seeds}/participantLimitType.js +0 -0
  382. /package/{seeds → src/seeds}/partyIdentifierType.js +0 -0
  383. /package/{seeds → src/seeds}/partyType.js +0 -0
  384. /package/{seeds → src/seeds}/settlementDelay.js +0 -0
  385. /package/{seeds → src/seeds}/settlementGranularity.js +0 -0
  386. /package/{seeds → src/seeds}/settlementState.js +0 -0
  387. /package/{seeds → src/seeds}/settlementWindow1State.js +0 -0
  388. /package/{seeds → src/seeds}/settlementWindow2Open.js +0 -0
  389. /package/{seeds → src/seeds}/transactionInitiator.js +0 -0
  390. /package/{seeds → src/seeds}/transactionInitiatorType.js +0 -0
  391. /package/{seeds → src/seeds}/transactionScenario.js +0 -0
  392. /package/{seeds → src/seeds}/transferParticipantRoleType.js +0 -0
  393. /package/{seeds → src/seeds}/transferState.js +0 -0
  394. /package/{seeds → src/seeds}/z1000_settlementModel-deprecated.js- +0 -0
@@ -0,0 +1,1560 @@
1
+ {
2
+ "openapi": "3.1.0",
3
+ "info": {
4
+ "version": "2.0",
5
+ "title": "MOJALOOP Central Settlements",
6
+ "description": "Mojaloop API for Settlements."
7
+ },
8
+ "paths": {
9
+ "/health": {
10
+ "get": {
11
+ "deprecated": false,
12
+ "description": "Gets the health of the service and sub-services (i.e. database).",
13
+ "summary": "getHealth",
14
+ "operationId": "getHealth",
15
+ "tags": [
16
+ "getHealth"
17
+ ],
18
+ "responses": {
19
+ "200": {
20
+ "description": "A valid and health service."
21
+ },
22
+ "502": {
23
+ "description": "API is live, but error connecting to required sub-service."
24
+ }
25
+ }
26
+ }
27
+ },
28
+ "/settlementWindows/{id}": {
29
+ "get": {
30
+ "deprecated": false,
31
+ "description": "Returns a Settlement Window by id.",
32
+ "summary": "getSettlementWindowById",
33
+ "operationId": "getSettlementWindowById",
34
+ "parameters": [
35
+ {
36
+ "in": "path",
37
+ "name": "id",
38
+ "required": true,
39
+ "description": "A valid settlement window id to be supplied in the query.\n",
40
+ "schema": {
41
+ "type": "integer"
42
+ }
43
+ }
44
+ ],
45
+ "tags": [
46
+ "getSettlementWindowById",
47
+ "sampled"
48
+ ],
49
+ "responses": {
50
+ "200": {
51
+ "description": "A settlement window's data returned.",
52
+ "content": {
53
+ "application/json": {
54
+ "schema": {
55
+ "$ref": "#/components/schemas/SettlementWindow"
56
+ }
57
+ }
58
+ }
59
+ },
60
+ "400": {
61
+ "description": "Bad request.",
62
+ "content": {
63
+ "application/json": {
64
+ "schema": {
65
+ "$ref": "#/components/schemas/Error"
66
+ }
67
+ }
68
+ }
69
+ },
70
+ "401": {
71
+ "description": "Authorisation information is missing or invalid.",
72
+ "content": {
73
+ "application/json": {
74
+ "schema": {
75
+ "$ref": "#/components/schemas/Error"
76
+ }
77
+ }
78
+ }
79
+ },
80
+ "404": {
81
+ "description": "No data found.",
82
+ "content": {
83
+ "application/json": {
84
+ "schema": {
85
+ "$ref": "#/components/schemas/Error"
86
+ }
87
+ }
88
+ }
89
+ },
90
+ "415": {
91
+ "description": "Unsupported Media Type",
92
+ "content": {
93
+ "application/json": {
94
+ "schema": {
95
+ "$ref": "#/components/schemas/Error"
96
+ }
97
+ }
98
+ }
99
+ },
100
+ "default": {
101
+ "description": "Unexpected error",
102
+ "content": {
103
+ "application/json": {
104
+ "schema": {
105
+ "$ref": "#/components/schemas/Error"
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+ },
112
+ "post": {
113
+ "deprecated": false,
114
+ "description": "Closes requested window and opens a new one.",
115
+ "summary": "closeSettlementWindow",
116
+ "operationId": "closeSettlementWindow",
117
+ "parameters": [
118
+ {
119
+ "in": "path",
120
+ "name": "id",
121
+ "required": true,
122
+ "schema": {
123
+ "type": "integer"
124
+ }
125
+ }
126
+ ],
127
+ "requestBody": {
128
+ "content": {
129
+ "application/json": {
130
+ "schema": {
131
+ "$ref": "#/components/schemas/SettlementWindowClosurePayload"
132
+ }
133
+ }
134
+ },
135
+ "description": "A JSON object containing settlement window closure info.",
136
+ "required": true
137
+ },
138
+ "tags": [
139
+ "sampled",
140
+ "closeSettlementWindow"
141
+ ],
142
+ "responses": {
143
+ "200": {
144
+ "description": "Settlement window closed and new window opened.",
145
+ "content": {
146
+ "application/json": {
147
+ "schema": {
148
+ "$ref": "#/components/schemas/SettlementWindow"
149
+ }
150
+ }
151
+ }
152
+ },
153
+ "400": {
154
+ "description": "Bad request.",
155
+ "content": {
156
+ "application/json": {
157
+ "schema": {
158
+ "$ref": "#/components/schemas/Error"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "401": {
164
+ "description": "Authorisation information is missing or invalid.",
165
+ "content": {
166
+ "application/json": {
167
+ "schema": {
168
+ "$ref": "#/components/schemas/Error"
169
+ }
170
+ }
171
+ }
172
+ },
173
+ "404": {
174
+ "description": "No data found.",
175
+ "content": {
176
+ "application/json": {
177
+ "schema": {
178
+ "$ref": "#/components/schemas/Error"
179
+ }
180
+ }
181
+ }
182
+ },
183
+ "415": {
184
+ "description": "Unsupported Media Type.",
185
+ "content": {
186
+ "application/json": {
187
+ "schema": {
188
+ "$ref": "#/components/schemas/Error"
189
+ }
190
+ }
191
+ }
192
+ },
193
+ "default": {
194
+ "description": "Unexpected error",
195
+ "content": {
196
+ "application/json": {
197
+ "schema": {
198
+ "$ref": "#/components/schemas/Error"
199
+ }
200
+ }
201
+ }
202
+ }
203
+ }
204
+ }
205
+ },
206
+ "/settlementWindows": {
207
+ "get": {
208
+ "deprecated": false,
209
+ "description": "Returns Settlement Windows as per parameter(s).",
210
+ "summary": "getSettlementWindowsByParams",
211
+ "operationId": "getSettlementWindowsByParams",
212
+ "parameters": [
213
+ {
214
+ "in": "query",
215
+ "name": "participantId",
216
+ "description": "A valid participant Id to filter on.\n",
217
+ "required": false,
218
+ "schema": {
219
+ "type": "integer"
220
+ }
221
+ },
222
+ {
223
+ "in": "query",
224
+ "name": "state",
225
+ "description": "A settlement window state to filter on.\n",
226
+ "required": false,
227
+ "schema": {
228
+ "type": "string",
229
+ "enum": [
230
+ "OPEN",
231
+ "CLOSED",
232
+ "PENDING_SETTLEMENT",
233
+ "SETTLED",
234
+ "ABORTED"
235
+ ]
236
+ }
237
+ },
238
+ {
239
+ "in": "query",
240
+ "name": "fromDateTime",
241
+ "description": "The start date for query (relates to central-ledger.settlementWindow.createdDate). Can be used together with `toDateTime'. eg 2017-07-20T17:32:28Z\n",
242
+ "required": false,
243
+ "schema": {
244
+ "type": "string",
245
+ "format": "date-time"
246
+ }
247
+ },
248
+ {
249
+ "in": "query",
250
+ "name": "toDateTime",
251
+ "description": "The end date for query (relates to central-ledger.settlementWindow.createdDate). Can be used together with `fromDateTime'. eg 2017-07-21T17:32:28Z\n",
252
+ "required": false,
253
+ "schema": {
254
+ "type": "string",
255
+ "format": "date-time"
256
+ }
257
+ },
258
+ {
259
+ "in": "query",
260
+ "name": "currency",
261
+ "description": "A valid currency to filter on.\n",
262
+ "required": false,
263
+ "schema": {
264
+ "type": "string"
265
+ }
266
+ }
267
+ ],
268
+ "tags": [
269
+ "sampled",
270
+ "getSettlementWindowsByParams"
271
+ ],
272
+ "responses": {
273
+ "200": {
274
+ "description": "Settlement window(s) returned by the filtering parameters.",
275
+ "content": {
276
+ "application/json": {
277
+ "schema": {
278
+ "$ref": "#/components/schemas/SettlementWindows"
279
+ }
280
+ }
281
+ }
282
+ },
283
+ "400": {
284
+ "description": "Bad request.",
285
+ "content": {
286
+ "application/json": {
287
+ "schema": {
288
+ "$ref": "#/components/schemas/Error"
289
+ }
290
+ }
291
+ }
292
+ },
293
+ "401": {
294
+ "description": "Authorisation information is missing or invalid.",
295
+ "content": {
296
+ "application/json": {
297
+ "schema": {
298
+ "$ref": "#/components/schemas/Error"
299
+ }
300
+ }
301
+ }
302
+ },
303
+ "404": {
304
+ "description": "No data found.",
305
+ "content": {
306
+ "application/json": {
307
+ "schema": {
308
+ "$ref": "#/components/schemas/Error"
309
+ }
310
+ }
311
+ }
312
+ },
313
+ "415": {
314
+ "description": "Unsupported Media Type.",
315
+ "content": {
316
+ "application/json": {
317
+ "schema": {
318
+ "$ref": "#/components/schemas/Error"
319
+ }
320
+ }
321
+ }
322
+ },
323
+ "default": {
324
+ "description": "Unexpected error",
325
+ "content": {
326
+ "application/json": {
327
+ "schema": {
328
+ "$ref": "#/components/schemas/Error"
329
+ }
330
+ }
331
+ }
332
+ }
333
+ }
334
+ }
335
+ },
336
+ "/settlements": {
337
+ "get": {
338
+ "deprecated": false,
339
+ "description": "Returns Settlements as per parameter(s).",
340
+ "summary": "getSettlementsByParams",
341
+ "operationId": "getSettlementsByParams",
342
+ "parameters": [
343
+ {
344
+ "in": "query",
345
+ "name": "currency",
346
+ "description": "A valid currency to filter on.\n",
347
+ "required": false,
348
+ "schema": {
349
+ "type": "string"
350
+ }
351
+ },
352
+ {
353
+ "in": "query",
354
+ "name": "participantId",
355
+ "description": "A valid participant Id to filter on.\n",
356
+ "required": false,
357
+ "schema": {
358
+ "type": "integer"
359
+ }
360
+ },
361
+ {
362
+ "in": "query",
363
+ "name": "settlementWindowId",
364
+ "description": "A valid Settlement Window Id to filter on.\n",
365
+ "required": false,
366
+ "schema": {
367
+ "type": "number"
368
+ }
369
+ },
370
+ {
371
+ "in": "query",
372
+ "name": "accountId",
373
+ "description": "A valid Account Id to filter on.\n",
374
+ "required": false,
375
+ "schema": {
376
+ "type": "number"
377
+ }
378
+ },
379
+ {
380
+ "in": "query",
381
+ "name": "state",
382
+ "description": "A settlement state to filter on. \n",
383
+ "required": false,
384
+ "schema": {
385
+ "type": "string",
386
+ "enum": [
387
+ "PENDING_SETTLEMENT",
388
+ "PS_TRANSFERS_RECORDED",
389
+ "PS_TRANSFERS_RESERVED",
390
+ "PS_TRANSFERS_COMMITTED",
391
+ "SETTLING",
392
+ "SETTLED",
393
+ "ABORTED"
394
+ ]
395
+ }
396
+ },
397
+ {
398
+ "in": "query",
399
+ "name": "fromDateTime",
400
+ "description": "The start date for query (relates to central-ledger.settlement.createdDate). Can be used together with `toDateTime'. eg 2017-07-20T17:32:28Z\n",
401
+ "required": false,
402
+ "schema": {
403
+ "type": "string",
404
+ "format": "date-time"
405
+ }
406
+ },
407
+ {
408
+ "in": "query",
409
+ "name": "toDateTime",
410
+ "description": "The end date for query (relates to central-ledger.settlement.createdDate). Can be used together with `fromDateTime'. eg 2017-07-21T17:32:28Z\n",
411
+ "required": false,
412
+ "schema": {
413
+ "type": "string",
414
+ "format": "date-time"
415
+ }
416
+ },
417
+ {
418
+ "in": "query",
419
+ "name": "fromSettlementWindowDateTime",
420
+ "description": "The start date for query (relates to central-ledger.settlementWindow.createdDate). Can be used together with `toDateTime'. eg 2017-07-20T17:32:28Z\n",
421
+ "required": false,
422
+ "schema": {
423
+ "type": "string",
424
+ "format": "date-time"
425
+ }
426
+ },
427
+ {
428
+ "in": "query",
429
+ "name": "toSettlementWindowDateTime",
430
+ "description": "The end date for query (relates to central-ledger.settlementWindow.createdDate). Can be used together with `fromDateTime'. eg 2017-07-21T17:32:28Z\n",
431
+ "required": false,
432
+ "schema": {
433
+ "type": "string",
434
+ "format": "date-time"
435
+ }
436
+ }
437
+ ],
438
+ "tags": [
439
+ "sampled",
440
+ "getSettlementsByParams"
441
+ ],
442
+ "responses": {
443
+ "200": {
444
+ "description": "Settlement window(s) returned by the filtering parameters.",
445
+ "content": {
446
+ "application/json": {
447
+ "schema": {
448
+ "$ref": "#/components/schemas/Settlements"
449
+ }
450
+ }
451
+ }
452
+ },
453
+ "400": {
454
+ "description": "Bad request.",
455
+ "content": {
456
+ "application/json": {
457
+ "schema": {
458
+ "$ref": "#/components/schemas/Error"
459
+ }
460
+ }
461
+ }
462
+ },
463
+ "401": {
464
+ "description": "Authorisation information is missing or invalid.",
465
+ "content": {
466
+ "application/json": {
467
+ "schema": {
468
+ "$ref": "#/components/schemas/Error"
469
+ }
470
+ }
471
+ }
472
+ },
473
+ "404": {
474
+ "description": "No data found.",
475
+ "content": {
476
+ "application/json": {
477
+ "schema": {
478
+ "$ref": "#/components/schemas/Error"
479
+ }
480
+ }
481
+ }
482
+ },
483
+ "415": {
484
+ "description": "Unsupported Media Type.",
485
+ "content": {
486
+ "application/json": {
487
+ "schema": {
488
+ "$ref": "#/components/schemas/Error"
489
+ }
490
+ }
491
+ }
492
+ },
493
+ "default": {
494
+ "description": "Unexpected error",
495
+ "content": {
496
+ "application/json": {
497
+ "schema": {
498
+ "$ref": "#/components/schemas/Error"
499
+ }
500
+ }
501
+ }
502
+ }
503
+ }
504
+ },
505
+ "post": {
506
+ "deprecated": false,
507
+ "description": "Triggers settlement creation. Returns settlement report.",
508
+ "summary": "createSettlement",
509
+ "operationId": "createSettlement",
510
+ "requestBody": {
511
+ "content": {
512
+ "application/json": {
513
+ "schema": {
514
+ "$ref": "#/components/schemas/SettlementEventPayload"
515
+ }
516
+ }
517
+ },
518
+ "description": "A JSON object containing settlement windows to be included.",
519
+ "required": true
520
+ },
521
+ "tags": [
522
+ "sampled",
523
+ "createSettlement"
524
+ ],
525
+ "responses": {
526
+ "200": {
527
+ "description": "Created settlement with all windows and accounts.",
528
+ "content": {
529
+ "application/json": {
530
+ "schema": {
531
+ "$ref": "#/components/schemas/Settlement"
532
+ }
533
+ }
534
+ }
535
+ },
536
+ "400": {
537
+ "description": "Bad request.",
538
+ "content": {
539
+ "application/json": {
540
+ "schema": {
541
+ "$ref": "#/components/schemas/Error"
542
+ }
543
+ }
544
+ }
545
+ },
546
+ "401": {
547
+ "description": "Authorisation information is missing or invalid.",
548
+ "content": {
549
+ "application/json": {
550
+ "schema": {
551
+ "$ref": "#/components/schemas/Error"
552
+ }
553
+ }
554
+ }
555
+ },
556
+ "404": {
557
+ "description": "No data found.",
558
+ "content": {
559
+ "application/json": {
560
+ "schema": {
561
+ "$ref": "#/components/schemas/Error"
562
+ }
563
+ }
564
+ }
565
+ },
566
+ "415": {
567
+ "description": "Unsupported Media Type.",
568
+ "content": {
569
+ "application/json": {
570
+ "schema": {
571
+ "$ref": "#/components/schemas/Error"
572
+ }
573
+ }
574
+ }
575
+ },
576
+ "default": {
577
+ "description": "Unexpected error",
578
+ "content": {
579
+ "application/json": {
580
+ "schema": {
581
+ "$ref": "#/components/schemas/Error"
582
+ }
583
+ }
584
+ }
585
+ }
586
+ }
587
+ }
588
+ },
589
+ "/settlements/{id}": {
590
+ "get": {
591
+ "deprecated": false,
592
+ "description": "Returns Settlement(s) as per parameters/filter criteria.",
593
+ "summary": "getSettlementById",
594
+ "operationId": "getSettlementById",
595
+ "parameters": [
596
+ {
597
+ "in": "path",
598
+ "name": "id",
599
+ "required": true,
600
+ "description": "A valid Settlement Id.\n",
601
+ "schema": {
602
+ "type": "integer"
603
+ }
604
+ }
605
+ ],
606
+ "tags": [
607
+ "sampled",
608
+ "getSettlementById"
609
+ ],
610
+ "responses": {
611
+ "200": {
612
+ "description": "Settlement successfully returned by the filtering/Query parameters.",
613
+ "content": {
614
+ "application/json": {
615
+ "schema": {
616
+ "$ref": "#/components/schemas/Settlement"
617
+ }
618
+ }
619
+ }
620
+ },
621
+ "400": {
622
+ "description": "Bad request.",
623
+ "content": {
624
+ "application/json": {
625
+ "schema": {
626
+ "$ref": "#/components/schemas/Error"
627
+ }
628
+ }
629
+ }
630
+ },
631
+ "401": {
632
+ "description": "Authorisation information is missing or invalid.",
633
+ "content": {
634
+ "application/json": {
635
+ "schema": {
636
+ "$ref": "#/components/schemas/Error"
637
+ }
638
+ }
639
+ }
640
+ },
641
+ "404": {
642
+ "description": "No data found.",
643
+ "content": {
644
+ "application/json": {
645
+ "schema": {
646
+ "$ref": "#/components/schemas/Error"
647
+ }
648
+ }
649
+ }
650
+ },
651
+ "415": {
652
+ "description": "Unsupported Media Type.",
653
+ "content": {
654
+ "application/json": {
655
+ "schema": {
656
+ "$ref": "#/components/schemas/Error"
657
+ }
658
+ }
659
+ }
660
+ },
661
+ "default": {
662
+ "description": "Unexpected error",
663
+ "content": {
664
+ "application/json": {
665
+ "schema": {
666
+ "$ref": "#/components/schemas/Error"
667
+ }
668
+ }
669
+ }
670
+ }
671
+ }
672
+ },
673
+ "put": {
674
+ "deprecated": false,
675
+ "description": "Acknowledgement of settlement by updating with Settlement Id.",
676
+ "summary": "updateSettlementById",
677
+ "operationId": "updateSettlementById",
678
+ "parameters": [
679
+ {
680
+ "in": "path",
681
+ "name": "id",
682
+ "description": "A valid Settlement Id.",
683
+ "required": true,
684
+ "schema": {
685
+ "type": "integer"
686
+ }
687
+ }
688
+ ],
689
+ "requestBody": {
690
+ "content": {
691
+ "application/json": {
692
+ "schema": {
693
+ "$ref": "#/components/schemas/SettlementUpdateBySettlementIdPayload"
694
+ }
695
+ }
696
+ },
697
+ "description": "A JSON object containing settlement update info.",
698
+ "required": true
699
+ },
700
+ "tags": [
701
+ "sampled",
702
+ "updateSettlementById"
703
+ ],
704
+ "responses": {
705
+ "200": {
706
+ "description": "Settlements updated.",
707
+ "content": {
708
+ "application/json": {
709
+ "schema": {
710
+ "$ref": "#/components/schemas/Settlement"
711
+ }
712
+ }
713
+ }
714
+ },
715
+ "400": {
716
+ "description": "Bad request.",
717
+ "content": {
718
+ "application/json": {
719
+ "schema": {
720
+ "$ref": "#/components/schemas/Error"
721
+ }
722
+ }
723
+ }
724
+ },
725
+ "401": {
726
+ "description": "Authorisation information is missing or invalid.",
727
+ "content": {
728
+ "application/json": {
729
+ "schema": {
730
+ "$ref": "#/components/schemas/Error"
731
+ }
732
+ }
733
+ }
734
+ },
735
+ "404": {
736
+ "description": "No data found.",
737
+ "content": {
738
+ "application/json": {
739
+ "schema": {
740
+ "$ref": "#/components/schemas/Error"
741
+ }
742
+ }
743
+ }
744
+ },
745
+ "415": {
746
+ "description": "Unsupported Media Type.",
747
+ "content": {
748
+ "application/json": {
749
+ "schema": {
750
+ "$ref": "#/components/schemas/Error"
751
+ }
752
+ }
753
+ }
754
+ },
755
+ "default": {
756
+ "description": "Unexpected error",
757
+ "content": {
758
+ "application/json": {
759
+ "schema": {
760
+ "$ref": "#/components/schemas/Error"
761
+ }
762
+ }
763
+ }
764
+ }
765
+ }
766
+ }
767
+ },
768
+ "/settlements/{sid}/participants/{pid}": {
769
+ "get": {
770
+ "deprecated": false,
771
+ "description": "Returns Settlement(s) as per filter criteria.",
772
+ "summary": "getSettlementBySettlementParticipant",
773
+ "operationId": "getSettlementBySettlementParticipant",
774
+ "parameters": [
775
+ {
776
+ "in": "path",
777
+ "name": "sid",
778
+ "required": true,
779
+ "description": "A valid Settlement Id.\n",
780
+ "schema": {
781
+ "type": "integer"
782
+ }
783
+ },
784
+ {
785
+ "in": "path",
786
+ "name": "pid",
787
+ "required": true,
788
+ "description": "A valid Participant Id.\n",
789
+ "schema": {
790
+ "type": "integer"
791
+ }
792
+ }
793
+ ],
794
+ "tags": [
795
+ "sampled",
796
+ "getSettlementBySettlementParticipant"
797
+ ],
798
+ "responses": {
799
+ "200": {
800
+ "description": "Settlement, settlement windows and settlement accounts returned by the filtering parameters.",
801
+ "content": {
802
+ "application/json": {
803
+ "schema": {
804
+ "$ref": "#/components/schemas/Settlement"
805
+ }
806
+ }
807
+ }
808
+ },
809
+ "400": {
810
+ "description": "Bad request.",
811
+ "content": {
812
+ "application/json": {
813
+ "schema": {
814
+ "$ref": "#/components/schemas/Error"
815
+ }
816
+ }
817
+ }
818
+ },
819
+ "401": {
820
+ "description": "Authorisation information is missing or invalid.",
821
+ "content": {
822
+ "application/json": {
823
+ "schema": {
824
+ "$ref": "#/components/schemas/Error"
825
+ }
826
+ }
827
+ }
828
+ },
829
+ "404": {
830
+ "description": "No data found.",
831
+ "content": {
832
+ "application/json": {
833
+ "schema": {
834
+ "$ref": "#/components/schemas/Error"
835
+ }
836
+ }
837
+ }
838
+ },
839
+ "415": {
840
+ "description": "Unsupported Media Type.",
841
+ "content": {
842
+ "application/json": {
843
+ "schema": {
844
+ "$ref": "#/components/schemas/Error"
845
+ }
846
+ }
847
+ }
848
+ },
849
+ "default": {
850
+ "description": "Unexpected error",
851
+ "content": {
852
+ "application/json": {
853
+ "schema": {
854
+ "$ref": "#/components/schemas/Error"
855
+ }
856
+ }
857
+ }
858
+ }
859
+ }
860
+ },
861
+ "put": {
862
+ "deprecated": false,
863
+ "description": "Acknowledgement of settlement by updating the reason and state by SP.",
864
+ "summary": "updateSettlementBySettlementParticipant",
865
+ "operationId": "updateSettlementBySettlementParticipant",
866
+ "parameters": [
867
+ {
868
+ "in": "path",
869
+ "name": "sid",
870
+ "description": "A valid Settlement Id.",
871
+ "required": true,
872
+ "schema": {
873
+ "type": "integer"
874
+ }
875
+ },
876
+ {
877
+ "in": "path",
878
+ "name": "pid",
879
+ "description": "A valid Participant Id.",
880
+ "required": true,
881
+ "schema": {
882
+ "type": "integer"
883
+ }
884
+ }
885
+ ],
886
+ "requestBody": {
887
+ "content": {
888
+ "application/json": {
889
+ "schema": {
890
+ "$ref": "#/components/schemas/SettlementUpdateBySettlementParticipantPayload"
891
+ }
892
+ }
893
+ },
894
+ "description": "A JSON object containing settlement update info.",
895
+ "required": true
896
+ },
897
+ "tags": [
898
+ "sampled",
899
+ "updateSettlementBySettlementParticipant"
900
+ ],
901
+ "responses": {
902
+ "200": {
903
+ "description": "Settlements updated.",
904
+ "content": {
905
+ "application/json": {
906
+ "schema": {
907
+ "$ref": "#/components/schemas/Settlement"
908
+ }
909
+ }
910
+ }
911
+ },
912
+ "400": {
913
+ "description": "Bad request.",
914
+ "content": {
915
+ "application/json": {
916
+ "schema": {
917
+ "$ref": "#/components/schemas/Error"
918
+ }
919
+ }
920
+ }
921
+ },
922
+ "401": {
923
+ "description": "Authorisation information is missing or invalid.",
924
+ "content": {
925
+ "application/json": {
926
+ "schema": {
927
+ "$ref": "#/components/schemas/Error"
928
+ }
929
+ }
930
+ }
931
+ },
932
+ "404": {
933
+ "description": "No data found.",
934
+ "content": {
935
+ "application/json": {
936
+ "schema": {
937
+ "$ref": "#/components/schemas/Error"
938
+ }
939
+ }
940
+ }
941
+ },
942
+ "415": {
943
+ "description": "Unsupported Media Type.",
944
+ "content": {
945
+ "application/json": {
946
+ "schema": {
947
+ "$ref": "#/components/schemas/Error"
948
+ }
949
+ }
950
+ }
951
+ },
952
+ "default": {
953
+ "description": "Unexpected error",
954
+ "content": {
955
+ "application/json": {
956
+ "schema": {
957
+ "$ref": "#/components/schemas/Error"
958
+ }
959
+ }
960
+ }
961
+ }
962
+ }
963
+ }
964
+ },
965
+ "/settlements/{sid}/participants/{pid}/accounts/{aid}": {
966
+ "get": {
967
+ "deprecated": false,
968
+ "description": "Returns Settlement(s) as per filter criteria.",
969
+ "summary": "getSettlementBySettlementParticipantAccount",
970
+ "operationId": "getSettlementBySettlementParticipantAccount",
971
+ "parameters": [
972
+ {
973
+ "in": "path",
974
+ "name": "sid",
975
+ "required": true,
976
+ "description": "A valid Settlement Id.\n",
977
+ "schema": {
978
+ "type": "integer"
979
+ }
980
+ },
981
+ {
982
+ "in": "path",
983
+ "name": "pid",
984
+ "required": true,
985
+ "description": "A valid Participant Id.\n",
986
+ "schema": {
987
+ "type": "integer"
988
+ }
989
+ },
990
+ {
991
+ "in": "path",
992
+ "name": "aid",
993
+ "required": true,
994
+ "description": "A valid Account Id.\n",
995
+ "schema": {
996
+ "type": "integer"
997
+ }
998
+ }
999
+ ],
1000
+ "tags": [
1001
+ "sampled",
1002
+ "getSettlementBySettlementParticipantAccount"
1003
+ ],
1004
+ "responses": {
1005
+ "200": {
1006
+ "description": "Settlement, settlement windows and settlement accounts returned by the filtering parameters.",
1007
+ "content": {
1008
+ "application/json": {
1009
+ "schema": {
1010
+ "$ref": "#/components/schemas/Settlement"
1011
+ }
1012
+ }
1013
+ }
1014
+ },
1015
+ "400": {
1016
+ "description": "Bad request.",
1017
+ "content": {
1018
+ "application/json": {
1019
+ "schema": {
1020
+ "$ref": "#/components/schemas/Error"
1021
+ }
1022
+ }
1023
+ }
1024
+ },
1025
+ "401": {
1026
+ "description": "Authorisation information is missing or invalid.",
1027
+ "content": {
1028
+ "application/json": {
1029
+ "schema": {
1030
+ "$ref": "#/components/schemas/Error"
1031
+ }
1032
+ }
1033
+ }
1034
+ },
1035
+ "404": {
1036
+ "description": "No data found.",
1037
+ "content": {
1038
+ "application/json": {
1039
+ "schema": {
1040
+ "$ref": "#/components/schemas/Error"
1041
+ }
1042
+ }
1043
+ }
1044
+ },
1045
+ "415": {
1046
+ "description": "Unsupported Media Type.",
1047
+ "content": {
1048
+ "application/json": {
1049
+ "schema": {
1050
+ "$ref": "#/components/schemas/Error"
1051
+ }
1052
+ }
1053
+ }
1054
+ },
1055
+ "default": {
1056
+ "description": "Unexpected error",
1057
+ "content": {
1058
+ "application/json": {
1059
+ "schema": {
1060
+ "$ref": "#/components/schemas/Error"
1061
+ }
1062
+ }
1063
+ }
1064
+ }
1065
+ }
1066
+ },
1067
+ "put": {
1068
+ "deprecated": false,
1069
+ "description": "Acknowledgement of settlement by updating the reason and state by SPA.",
1070
+ "summary": "updateSettlementBySettlementParticipantAccount",
1071
+ "operationId": "updateSettlementBySettlementParticipantAccount",
1072
+ "parameters": [
1073
+ {
1074
+ "in": "path",
1075
+ "name": "sid",
1076
+ "description": "A valid Settlement Id.",
1077
+ "required": true,
1078
+ "schema": {
1079
+ "type": "integer"
1080
+ }
1081
+ },
1082
+ {
1083
+ "in": "path",
1084
+ "name": "pid",
1085
+ "description": "A valid Participant Id.",
1086
+ "required": true,
1087
+ "schema": {
1088
+ "type": "integer"
1089
+ }
1090
+ },
1091
+ {
1092
+ "in": "path",
1093
+ "name": "aid",
1094
+ "description": "A valid Account Id.",
1095
+ "required": true,
1096
+ "schema": {
1097
+ "type": "integer"
1098
+ }
1099
+ }
1100
+ ],
1101
+ "requestBody": {
1102
+ "content": {
1103
+ "application/json": {
1104
+ "schema": {
1105
+ "$ref": "#/components/schemas/SettlementUpdateBySettlementParticipantAccount"
1106
+ }
1107
+ }
1108
+ },
1109
+ "description": "A JSON object containing settlement update info.",
1110
+ "required": true
1111
+ },
1112
+ "tags": [
1113
+ "sampled",
1114
+ "updateSettlementBySettlementParticipantAccount"
1115
+ ],
1116
+ "responses": {
1117
+ "200": {
1118
+ "description": "Settlements updated.",
1119
+ "content": {
1120
+ "application/json": {
1121
+ "schema": {
1122
+ "$ref": "#/components/schemas/Settlement"
1123
+ }
1124
+ }
1125
+ }
1126
+ },
1127
+ "400": {
1128
+ "description": "Bad request.",
1129
+ "content": {
1130
+ "application/json": {
1131
+ "schema": {
1132
+ "$ref": "#/components/schemas/Error"
1133
+ }
1134
+ }
1135
+ }
1136
+ },
1137
+ "401": {
1138
+ "description": "Authorisation information is missing or invalid.",
1139
+ "content": {
1140
+ "application/json": {
1141
+ "schema": {
1142
+ "$ref": "#/components/schemas/Error"
1143
+ }
1144
+ }
1145
+ }
1146
+ },
1147
+ "404": {
1148
+ "description": "No data found.",
1149
+ "content": {
1150
+ "application/json": {
1151
+ "schema": {
1152
+ "$ref": "#/components/schemas/Error"
1153
+ }
1154
+ }
1155
+ }
1156
+ },
1157
+ "415": {
1158
+ "description": "Unsupported Media Type.",
1159
+ "content": {
1160
+ "application/json": {
1161
+ "schema": {
1162
+ "$ref": "#/components/schemas/Error"
1163
+ }
1164
+ }
1165
+ }
1166
+ },
1167
+ "default": {
1168
+ "description": "Unexpected error",
1169
+ "content": {
1170
+ "application/json": {
1171
+ "schema": {
1172
+ "$ref": "#/components/schemas/Error"
1173
+ }
1174
+ }
1175
+ }
1176
+ }
1177
+ }
1178
+ }
1179
+ }
1180
+ },
1181
+ "servers": [
1182
+ {
1183
+ "url": "/v2"
1184
+ }
1185
+ ],
1186
+ "components": {
1187
+ "schemas": {
1188
+ "Account": {
1189
+ "type": "object",
1190
+ "properties": {
1191
+ "id": {
1192
+ "type": "string",
1193
+ "description": "Account Id"
1194
+ },
1195
+ "reason": {
1196
+ "description": "TBD",
1197
+ "type": "string"
1198
+ },
1199
+ "state": {
1200
+ "type": "string",
1201
+ "example": "PENDING_SETTLEMENT"
1202
+ },
1203
+ "netSettlementAmount": {
1204
+ "$ref": "#/components/schemas/netSettlementAmount"
1205
+ }
1206
+ }
1207
+ },
1208
+ "SettlementUpdateBySettlementIdPayload": {
1209
+ "type": "object",
1210
+ "properties": {
1211
+ "state": {
1212
+ "type": "string",
1213
+ "enum": [
1214
+ "ABORTED",
1215
+ "INVALID"
1216
+ ]
1217
+ },
1218
+ "reason": {
1219
+ "type": "string"
1220
+ },
1221
+ "externalReference": {
1222
+ "type": "string"
1223
+ },
1224
+ "participants": {
1225
+ "type": "array",
1226
+ "items": {
1227
+ "$ref": "#/components/schemas/SettlementUpdateBySettlementIDOuterPayload"
1228
+ }
1229
+ }
1230
+ }
1231
+ },
1232
+ "SettlementUpdateBySettlementIDOuterPayload": {
1233
+ "type": "object",
1234
+ "properties": {
1235
+ "id": {
1236
+ "type": "integer",
1237
+ "description": "Participant Id"
1238
+ },
1239
+ "accounts": {
1240
+ "type": "array",
1241
+ "items": {
1242
+ "$ref": "#/components/schemas/SettlementUpdateBySettlementIdInnerPayload"
1243
+ }
1244
+ }
1245
+ }
1246
+ },
1247
+ "SettlementUpdateBySettlementIdInnerPayload": {
1248
+ "type": "object",
1249
+ "properties": {
1250
+ "id": {
1251
+ "type": "integer",
1252
+ "description": "Participant Currency Id"
1253
+ },
1254
+ "reason": {
1255
+ "type": "string",
1256
+ "example": "reason"
1257
+ },
1258
+ "state": {
1259
+ "type": "string",
1260
+ "enum": [
1261
+ "PENDING_SETTLEMENT",
1262
+ "PS_TRANSFERS_RECORDED",
1263
+ "PS_TRANSFERS_RESERVED",
1264
+ "PS_TRANSFERS_COMMITTED",
1265
+ "SETTLED"
1266
+ ],
1267
+ "example": "SETTLED"
1268
+ },
1269
+ "externalReference": {
1270
+ "type": "string",
1271
+ "example": "external-reference-abc123"
1272
+ }
1273
+ }
1274
+ },
1275
+ "SettlementUpdateBySettlementParticipantPayload": {
1276
+ "type": "object",
1277
+ "properties": {
1278
+ "accounts": {
1279
+ "type": "array",
1280
+ "items": {
1281
+ "$ref": "#/components/schemas/SettlementUpdateBySettlementIdInnerPayload"
1282
+ }
1283
+ }
1284
+ }
1285
+ },
1286
+ "Accounts": {
1287
+ "type": "object",
1288
+ "properties": {
1289
+ "id": {
1290
+ "description": "Participant Currency Id",
1291
+ "type": "integer"
1292
+ },
1293
+ "reason": {
1294
+ "description": "TBD",
1295
+ "type": "string"
1296
+ },
1297
+ "state": {
1298
+ "type": "string",
1299
+ "example": "PENDING_SETTLEMENT"
1300
+ },
1301
+ "netSettlementAmount": {
1302
+ "$ref": "#/components/schemas/netSettlementAmount"
1303
+ }
1304
+ }
1305
+ },
1306
+ "SettlementWindowClosurePayload": {
1307
+ "type": "object",
1308
+ "properties": {
1309
+ "state": {
1310
+ "type": "string",
1311
+ "example": "CLOSED",
1312
+ "enum": [
1313
+ "CLOSED"
1314
+ ]
1315
+ },
1316
+ "reason": {
1317
+ "type": "string",
1318
+ "example": "string"
1319
+ }
1320
+ },
1321
+ "required": [
1322
+ "state",
1323
+ "reason"
1324
+ ]
1325
+ },
1326
+ "SettlementUpdateBySettlementParticipantAccount": {
1327
+ "type": "object",
1328
+ "properties": {
1329
+ "state": {
1330
+ "type": "string",
1331
+ "enum": [
1332
+ "PENDING_SETTLEMENT",
1333
+ "PS_TRANSFERS_RECORDED",
1334
+ "PS_TRANSFERS_RESERVED",
1335
+ "PS_TRANSFERS_COMMITTED",
1336
+ "SETTLED"
1337
+ ],
1338
+ "example": "SETTLED"
1339
+ },
1340
+ "reason": {
1341
+ "type": "string",
1342
+ "example": "string"
1343
+ },
1344
+ "externalReference": {
1345
+ "type": "string",
1346
+ "example": "external-reference-abc123"
1347
+ }
1348
+ },
1349
+ "required": [
1350
+ "state",
1351
+ "reason"
1352
+ ]
1353
+ },
1354
+ "SettlementEventPayload": {
1355
+ "type": "object",
1356
+ "properties": {
1357
+ "settlementModel": {
1358
+ "type": "string"
1359
+ },
1360
+ "reason": {
1361
+ "type": "string"
1362
+ },
1363
+ "settlementWindows": {
1364
+ "type": "array",
1365
+ "minItems": 1,
1366
+ "uniqueItems": true,
1367
+ "items": {
1368
+ "$ref": "#/components/schemas/SettlementWindowId"
1369
+ }
1370
+ }
1371
+ },
1372
+ "required": [
1373
+ "settlementModel",
1374
+ "reason",
1375
+ "settlementWindows"
1376
+ ]
1377
+ },
1378
+ "SettlementWindowId": {
1379
+ "type": "object",
1380
+ "properties": {
1381
+ "id": {
1382
+ "type": "integer"
1383
+ }
1384
+ },
1385
+ "required": [
1386
+ "id"
1387
+ ]
1388
+ },
1389
+ "SettlementWindow": {
1390
+ "type": "object",
1391
+ "properties": {
1392
+ "id": {
1393
+ "type": "integer"
1394
+ },
1395
+ "reason": {
1396
+ "type": "string"
1397
+ },
1398
+ "state": {
1399
+ "type": "string"
1400
+ },
1401
+ "createdDate": {
1402
+ "type": "string"
1403
+ },
1404
+ "changedDate": {
1405
+ "type": "string"
1406
+ },
1407
+ "content": {
1408
+ "type": "array",
1409
+ "items": {
1410
+ "$ref": "#/components/schemas/SettlementWindowContent"
1411
+ }
1412
+ }
1413
+ },
1414
+ "required": [
1415
+ "id",
1416
+ "state",
1417
+ "createdDate"
1418
+ ]
1419
+ },
1420
+ "SettlementWindowContent": {
1421
+ "type": "object",
1422
+ "properties": {
1423
+ "id": {
1424
+ "type": "integer"
1425
+ },
1426
+ "state": {
1427
+ "type": "string"
1428
+ },
1429
+ "ledgerAccountType": {
1430
+ "type": "string"
1431
+ },
1432
+ "currencyId": {
1433
+ "type": "string"
1434
+ },
1435
+ "createdDate": {
1436
+ "type": "string"
1437
+ },
1438
+ "changedDate": {
1439
+ "type": "string"
1440
+ },
1441
+ "settlementId": {
1442
+ "type": "integer"
1443
+ }
1444
+ },
1445
+ "required": [
1446
+ "id",
1447
+ "state",
1448
+ "ledgerAccountType",
1449
+ "currencyId",
1450
+ "createdDate"
1451
+ ]
1452
+ },
1453
+ "SettlementWindows": {
1454
+ "type": "array",
1455
+ "items": {
1456
+ "$ref": "#/components/schemas/SettlementWindow"
1457
+ }
1458
+ },
1459
+ "netSettlementAmount": {
1460
+ "type": "object",
1461
+ "properties": {
1462
+ "amount": {
1463
+ "type": "number"
1464
+ },
1465
+ "currency": {
1466
+ "type": "string"
1467
+ }
1468
+ }
1469
+ },
1470
+ "Participant": {
1471
+ "type": "object",
1472
+ "properties": {
1473
+ "id": {
1474
+ "type": "integer"
1475
+ },
1476
+ "accounts": {
1477
+ "type": "array",
1478
+ "items": {
1479
+ "$ref": "#/components/schemas/Accounts"
1480
+ }
1481
+ }
1482
+ }
1483
+ },
1484
+ "Settlements": {
1485
+ "type": "array",
1486
+ "items": {
1487
+ "$ref": "#/components/schemas/Settlement"
1488
+ }
1489
+ },
1490
+ "Settlement": {
1491
+ "type": "object",
1492
+ "properties": {
1493
+ "id": {
1494
+ "type": "integer"
1495
+ },
1496
+ "state": {
1497
+ "type": "string"
1498
+ },
1499
+ "settlementWindows": {
1500
+ "type": "array",
1501
+ "items": {
1502
+ "$ref": "#/components/schemas/SettlementWindows"
1503
+ }
1504
+ },
1505
+ "participants": {
1506
+ "type": "array",
1507
+ "items": {
1508
+ "$ref": "#/components/schemas/Participant"
1509
+ }
1510
+ }
1511
+ }
1512
+ },
1513
+ "Error": {
1514
+ "type": "object",
1515
+ "required": [
1516
+ "errorInformation"
1517
+ ],
1518
+ "properties": {
1519
+ "errorInformation": {
1520
+ "type": "object",
1521
+ "properties": {
1522
+ "errorCode": {
1523
+ "type": "integer"
1524
+ },
1525
+ "errorDescription": {
1526
+ "type": "string"
1527
+ },
1528
+ "extensionList": {
1529
+ "type": "object",
1530
+ "properties": {
1531
+ "extension": {
1532
+ "type": "array",
1533
+ "items": {
1534
+ "$ref": "#/components/schemas/Extension"
1535
+ }
1536
+ }
1537
+ }
1538
+ }
1539
+ }
1540
+ }
1541
+ }
1542
+ },
1543
+ "Extension": {
1544
+ "type": "object",
1545
+ "required": [
1546
+ "key",
1547
+ "value"
1548
+ ],
1549
+ "properties": {
1550
+ "key": {
1551
+ "type": "string"
1552
+ },
1553
+ "value": {
1554
+ "type": "string"
1555
+ }
1556
+ }
1557
+ }
1558
+ }
1559
+ }
1560
+ }