@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
@@ -1,2087 +1,2282 @@
1
1
  {
2
- "swagger": "2.0",
3
- "host": "127.0.0.1:3001",
4
- "basePath": "/",
5
- "schemes": [
6
- "http"
7
- ],
8
- "info": {
9
- "title": "Central Ledger API Documentation",
10
- "version": "1.0"
11
- },
12
- "tags": [],
13
- "paths": {
14
- "/enums": {
15
- "get": {
16
- "operationId": "getEnums",
17
- "tags": [
18
- "enums"
19
- ],
20
- "responses": {
21
- "default": {
22
- "schema": {
23
- "type": "string"
24
- },
25
- "description": "Successful"
26
- }
27
- }
28
- }
2
+ "openapi": "3.1.0",
3
+ "info": {
4
+ "title": "Central Ledger API Documentation",
5
+ "version": "1.0"
29
6
  },
30
- "/health": {
31
- "get": {
32
- "operationId": "getHealth",
33
- "tags": [
34
- "health"
35
- ],
36
- "responses": {
37
- "default": {
38
- "schema": {
39
- "type": "string"
7
+ "tags": [],
8
+ "paths": {
9
+ "/enums": {
10
+ "get": {
11
+ "operationId": "getEnums",
12
+ "tags": [
13
+ "enums"
14
+ ],
15
+ "responses": {
16
+ "default": {
17
+ "description": "Successful",
18
+ "content": {
19
+ "*/*": {
20
+ "schema": {
21
+ "type": "string"
22
+ }
23
+ }
24
+ }
25
+ }
26
+ }
27
+ }
28
+ },
29
+ "/health": {
30
+ "get": {
31
+ "operationId": "getHealth",
32
+ "tags": [
33
+ "health"
34
+ ],
35
+ "responses": {
36
+ "default": {
37
+ "description": "Successful",
38
+ "content": {
39
+ "*/*": {
40
+ "schema": {
41
+ "type": "string"
42
+ }
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
48
+ },
49
+ "/metrics": {
50
+ "get": {
51
+ "summary": "Prometheus metrics endpoint",
52
+ "operationId": "getMetrics",
53
+ "tags": [
54
+ "metrics"
55
+ ],
56
+ "responses": {
57
+ "default": {
58
+ "description": "Successful",
59
+ "content": {
60
+ "*/*": {
61
+ "schema": {
62
+ "type": "string"
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
69
+ },
70
+ "/participants": {
71
+ "get": {
72
+ "operationId": "getParticipants",
73
+ "tags": [
74
+ "participants"
75
+ ],
76
+ "parameters": [
77
+ {
78
+ "description": "Filter by if participant is a proxy",
79
+ "name": "isProxy",
80
+ "in": "query",
81
+ "required": false,
82
+ "schema": {
83
+ "enum": [
84
+ false,
85
+ "0",
86
+ "false",
87
+ "",
88
+ true,
89
+ "1",
90
+ "true",
91
+ null
92
+ ]
93
+ }
94
+ }
95
+ ],
96
+ "responses": {
97
+ "default": {
98
+ "description": "Successful",
99
+ "content": {
100
+ "*/*": {
101
+ "schema": {
102
+ "type": "string"
103
+ }
104
+ }
105
+ }
106
+ }
107
+ }
40
108
  },
41
- "description": "Successful"
42
- }
43
- }
44
- }
45
- },
46
- "/metrics": {
47
- "get": {
48
- "summary": "Prometheus metrics endpoint",
49
- "operationId": "getMetrics",
50
- "tags": [
51
- "metrics"
52
- ],
53
- "responses": {
54
- "default": {
55
- "schema": {
56
- "type": "string"
109
+ "post": {
110
+ "operationId": "postParticipants",
111
+ "requestBody": {
112
+ "content": {
113
+ "application/json": {
114
+ "schema": {
115
+ "$ref": "#/components/schemas/PostParticipantsRequest"
116
+ }
117
+ }
118
+ }
119
+ },
120
+ "tags": [
121
+ "participants"
122
+ ],
123
+ "responses": {
124
+ "default": {
125
+ "description": "Successful",
126
+ "content": {
127
+ "*/*": {
128
+ "schema": {
129
+ "type": "string"
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }
136
+ },
137
+ "/participants/limits": {
138
+ "get": {
139
+ "summary": "View limits for all participants",
140
+ "operationId": "getParticipantsLimits",
141
+ "parameters": [
142
+ {
143
+ "description": "Currency code",
144
+ "name": "currency",
145
+ "in": "query",
146
+ "schema": {
147
+ "type": "string",
148
+ "enum": [
149
+ "AED",
150
+ "AFA",
151
+ "AFN",
152
+ "ALL",
153
+ "AMD",
154
+ "ANG",
155
+ "AOA",
156
+ "AOR",
157
+ "ARS",
158
+ "AUD",
159
+ "AWG",
160
+ "AZN",
161
+ "BAM",
162
+ "BBD",
163
+ "BDT",
164
+ "BGN",
165
+ "BHD",
166
+ "BIF",
167
+ "BMD",
168
+ "BND",
169
+ "BOB",
170
+ "BRL",
171
+ "BSD",
172
+ "BTN",
173
+ "BWP",
174
+ "BYN",
175
+ "BZD",
176
+ "CAD",
177
+ "CDF",
178
+ "CHF",
179
+ "CLP",
180
+ "CNY",
181
+ "COP",
182
+ "CRC",
183
+ "CUC",
184
+ "CUP",
185
+ "CVE",
186
+ "CZK",
187
+ "DJF",
188
+ "DKK",
189
+ "DOP",
190
+ "DZD",
191
+ "EEK",
192
+ "EGP",
193
+ "ERN",
194
+ "ETB",
195
+ "EUR",
196
+ "FJD",
197
+ "FKP",
198
+ "GBP",
199
+ "GEL",
200
+ "GGP",
201
+ "GHS",
202
+ "GIP",
203
+ "GMD",
204
+ "GNF",
205
+ "GTQ",
206
+ "GYD",
207
+ "HKD",
208
+ "HNL",
209
+ "HRK",
210
+ "HTG",
211
+ "HUF",
212
+ "IDR",
213
+ "ILS",
214
+ "IMP",
215
+ "INR",
216
+ "IQD",
217
+ "IRR",
218
+ "ISK",
219
+ "JEP",
220
+ "JMD",
221
+ "JOD",
222
+ "JPY",
223
+ "KES",
224
+ "KGS",
225
+ "KHR",
226
+ "KMF",
227
+ "KPW",
228
+ "KRW",
229
+ "KWD",
230
+ "KYD",
231
+ "KZT",
232
+ "LAK",
233
+ "LBP",
234
+ "LKR",
235
+ "LRD",
236
+ "LSL",
237
+ "LTL",
238
+ "LVL",
239
+ "LYD",
240
+ "MAD",
241
+ "MDL",
242
+ "MGA",
243
+ "MKD",
244
+ "MMK",
245
+ "MNT",
246
+ "MOP",
247
+ "MRO",
248
+ "MUR",
249
+ "MVR",
250
+ "MWK",
251
+ "MXN",
252
+ "MYR",
253
+ "MZN",
254
+ "NAD",
255
+ "NGN",
256
+ "NIO",
257
+ "NOK",
258
+ "NPR",
259
+ "NZD",
260
+ "OMR",
261
+ "PAB",
262
+ "PEN",
263
+ "PGK",
264
+ "PHP",
265
+ "PKR",
266
+ "PLN",
267
+ "PYG",
268
+ "QAR",
269
+ "RON",
270
+ "RSD",
271
+ "RUB",
272
+ "RWF",
273
+ "SAR",
274
+ "SBD",
275
+ "SCR",
276
+ "SDG",
277
+ "SEK",
278
+ "SGD",
279
+ "SHP",
280
+ "SLL",
281
+ "SOS",
282
+ "SPL",
283
+ "SRD",
284
+ "STD",
285
+ "SVC",
286
+ "SYP",
287
+ "SZL",
288
+ "THB",
289
+ "TJS",
290
+ "TMT",
291
+ "TND",
292
+ "TOP",
293
+ "TRY",
294
+ "TTD",
295
+ "TVD",
296
+ "TWD",
297
+ "TZS",
298
+ "UAH",
299
+ "UGX",
300
+ "USD",
301
+ "UYU",
302
+ "UZS",
303
+ "VEF",
304
+ "VND",
305
+ "VUV",
306
+ "WST",
307
+ "XAF",
308
+ "XAG",
309
+ "XAU",
310
+ "XCD",
311
+ "XDR",
312
+ "XFO",
313
+ "XFU",
314
+ "XOF",
315
+ "XPD",
316
+ "XPF",
317
+ "XPT",
318
+ "YER",
319
+ "ZAR",
320
+ "ZMK",
321
+ "ZMW",
322
+ "ZWD",
323
+ "ZWL",
324
+ "ZWN",
325
+ "ZWR"
326
+ ]
327
+ }
328
+ },
329
+ {
330
+ "description": "Limit Type",
331
+ "name": "type",
332
+ "in": "query",
333
+ "required": false,
334
+ "schema": {
335
+ "type": "string"
336
+ }
337
+ }
338
+ ],
339
+ "tags": [
340
+ "participants"
341
+ ],
342
+ "responses": {
343
+ "default": {
344
+ "description": "Successful",
345
+ "content": {
346
+ "*/*": {
347
+ "schema": {
348
+ "type": "string"
349
+ }
350
+ }
351
+ }
352
+ }
353
+ }
354
+ }
355
+ },
356
+ "/participants/{name}": {
357
+ "get": {
358
+ "operationId": "getParticipantsName",
359
+ "parameters": [
360
+ {
361
+ "description": "Participant name",
362
+ "name": "name",
363
+ "in": "path",
364
+ "required": true,
365
+ "schema": {
366
+ "type": "string"
367
+ }
368
+ }
369
+ ],
370
+ "tags": [
371
+ "participants"
372
+ ],
373
+ "responses": {
374
+ "default": {
375
+ "description": "Successful",
376
+ "content": {
377
+ "*/*": {
378
+ "schema": {
379
+ "type": "string"
380
+ }
381
+ }
382
+ }
383
+ }
384
+ }
57
385
  },
58
- "description": "Successful"
59
- }
60
- }
61
- }
62
- },
63
- "/participants": {
64
- "get": {
65
- "operationId": "getParticipants",
66
- "tags": [
67
- "participants"
68
- ],
69
- "parameters": [
70
- {
71
- "type": ["string", "boolean", "integer", "null"],
72
- "enum": [
73
- false,
74
- "0",
75
- "false",
76
- "",
77
- true,
78
- "1",
79
- "true",
80
- null
81
- ],
82
- "description": "Filter by if participant is a proxy",
83
- "name": "isProxy",
84
- "in": "query",
85
- "required": false
86
- }
87
- ],
88
- "responses": {
89
- "default": {
90
- "schema": {
91
- "type": "string"
386
+ "put": {
387
+ "operationId": "putParticipantsName",
388
+ "parameters": [
389
+ {
390
+ "description": "Participant name",
391
+ "name": "name",
392
+ "in": "path",
393
+ "required": true,
394
+ "schema": {
395
+ "type": "string"
396
+ }
397
+ }
398
+ ],
399
+ "requestBody": {
400
+ "content": {
401
+ "application/json": {
402
+ "schema": {
403
+ "$ref": "#/components/schemas/ParticipantIsActive"
404
+ }
405
+ }
406
+ }
407
+ },
408
+ "tags": [
409
+ "participants"
410
+ ],
411
+ "responses": {
412
+ "default": {
413
+ "description": "Successful",
414
+ "content": {
415
+ "*/*": {
416
+ "schema": {
417
+ "type": "string"
418
+ }
419
+ }
420
+ }
421
+ }
422
+ }
423
+ }
424
+ },
425
+ "/participants/{name}/endpoints": {
426
+ "get": {
427
+ "summary": "View participant endpoints",
428
+ "operationId": "getParticipantsNameEndpoints",
429
+ "parameters": [
430
+ {
431
+ "description": "Name of the participant",
432
+ "name": "name",
433
+ "in": "path",
434
+ "required": true,
435
+ "schema": {
436
+ "type": "string",
437
+ "minLength": 2,
438
+ "maxLength": 30
439
+ }
440
+ }
441
+ ],
442
+ "tags": [
443
+ "participants"
444
+ ],
445
+ "responses": {
446
+ "default": {
447
+ "description": "Successful",
448
+ "content": {
449
+ "*/*": {
450
+ "schema": {
451
+ "type": "string"
452
+ }
453
+ }
454
+ }
455
+ }
456
+ }
92
457
  },
93
- "description": "Successful"
94
- }
95
- }
96
- },
97
- "post": {
98
- "operationId": "postParticipants",
99
- "parameters": [
100
- {
101
- "in": "body",
102
- "name": "body",
103
- "schema": {
104
- "$ref": "#/definitions/PostParticipantsRequest"
458
+ "post": {
459
+ "summary": "Add/Update participant endpoints",
460
+ "operationId": "postParticipantsNameEndpoints",
461
+ "parameters": [
462
+ {
463
+ "description": "Name of the participant",
464
+ "name": "name",
465
+ "in": "path",
466
+ "required": true,
467
+ "schema": {
468
+ "type": "string",
469
+ "minLength": 2,
470
+ "maxLength": 30
471
+ }
472
+ }
473
+ ],
474
+ "requestBody": {
475
+ "content": {
476
+ "application/json": {
477
+ "schema": {
478
+ "$ref": "#/components/schemas/PostParticipantsNameEndpointsRequest"
479
+ }
480
+ }
481
+ }
482
+ },
483
+ "tags": [
484
+ "participants"
485
+ ],
486
+ "responses": {
487
+ "default": {
488
+ "description": "Successful",
489
+ "content": {
490
+ "*/*": {
491
+ "schema": {
492
+ "type": "string"
493
+ }
494
+ }
495
+ }
496
+ }
497
+ }
105
498
  }
106
- }
107
- ],
108
- "tags": [
109
- "participants"
110
- ],
111
- "responses": {
112
- "default": {
113
- "schema": {
114
- "type": "string"
499
+ },
500
+ "/participants/{name}/limits": {
501
+ "get": {
502
+ "summary": "View participant limits",
503
+ "operationId": "getParticipantsNameLimits",
504
+ "parameters": [
505
+ {
506
+ "description": "Name of the participant",
507
+ "name": "name",
508
+ "in": "path",
509
+ "required": true,
510
+ "schema": {
511
+ "type": "string",
512
+ "minLength": 2,
513
+ "maxLength": 30
514
+ }
515
+ },
516
+ {
517
+ "description": "Currency code",
518
+ "name": "currency",
519
+ "in": "query",
520
+ "schema": {
521
+ "type": "string",
522
+ "enum": [
523
+ "AED",
524
+ "AFA",
525
+ "AFN",
526
+ "ALL",
527
+ "AMD",
528
+ "ANG",
529
+ "AOA",
530
+ "AOR",
531
+ "ARS",
532
+ "AUD",
533
+ "AWG",
534
+ "AZN",
535
+ "BAM",
536
+ "BBD",
537
+ "BDT",
538
+ "BGN",
539
+ "BHD",
540
+ "BIF",
541
+ "BMD",
542
+ "BND",
543
+ "BOB",
544
+ "BRL",
545
+ "BSD",
546
+ "BTN",
547
+ "BWP",
548
+ "BYN",
549
+ "BZD",
550
+ "CAD",
551
+ "CDF",
552
+ "CHF",
553
+ "CLP",
554
+ "CNY",
555
+ "COP",
556
+ "CRC",
557
+ "CUC",
558
+ "CUP",
559
+ "CVE",
560
+ "CZK",
561
+ "DJF",
562
+ "DKK",
563
+ "DOP",
564
+ "DZD",
565
+ "EEK",
566
+ "EGP",
567
+ "ERN",
568
+ "ETB",
569
+ "EUR",
570
+ "FJD",
571
+ "FKP",
572
+ "GBP",
573
+ "GEL",
574
+ "GGP",
575
+ "GHS",
576
+ "GIP",
577
+ "GMD",
578
+ "GNF",
579
+ "GTQ",
580
+ "GYD",
581
+ "HKD",
582
+ "HNL",
583
+ "HRK",
584
+ "HTG",
585
+ "HUF",
586
+ "IDR",
587
+ "ILS",
588
+ "IMP",
589
+ "INR",
590
+ "IQD",
591
+ "IRR",
592
+ "ISK",
593
+ "JEP",
594
+ "JMD",
595
+ "JOD",
596
+ "JPY",
597
+ "KES",
598
+ "KGS",
599
+ "KHR",
600
+ "KMF",
601
+ "KPW",
602
+ "KRW",
603
+ "KWD",
604
+ "KYD",
605
+ "KZT",
606
+ "LAK",
607
+ "LBP",
608
+ "LKR",
609
+ "LRD",
610
+ "LSL",
611
+ "LTL",
612
+ "LVL",
613
+ "LYD",
614
+ "MAD",
615
+ "MDL",
616
+ "MGA",
617
+ "MKD",
618
+ "MMK",
619
+ "MNT",
620
+ "MOP",
621
+ "MRO",
622
+ "MUR",
623
+ "MVR",
624
+ "MWK",
625
+ "MXN",
626
+ "MYR",
627
+ "MZN",
628
+ "NAD",
629
+ "NGN",
630
+ "NIO",
631
+ "NOK",
632
+ "NPR",
633
+ "NZD",
634
+ "OMR",
635
+ "PAB",
636
+ "PEN",
637
+ "PGK",
638
+ "PHP",
639
+ "PKR",
640
+ "PLN",
641
+ "PYG",
642
+ "QAR",
643
+ "RON",
644
+ "RSD",
645
+ "RUB",
646
+ "RWF",
647
+ "SAR",
648
+ "SBD",
649
+ "SCR",
650
+ "SDG",
651
+ "SEK",
652
+ "SGD",
653
+ "SHP",
654
+ "SLL",
655
+ "SOS",
656
+ "SPL",
657
+ "SRD",
658
+ "STD",
659
+ "SVC",
660
+ "SYP",
661
+ "SZL",
662
+ "THB",
663
+ "TJS",
664
+ "TMT",
665
+ "TND",
666
+ "TOP",
667
+ "TRY",
668
+ "TTD",
669
+ "TVD",
670
+ "TWD",
671
+ "TZS",
672
+ "UAH",
673
+ "UGX",
674
+ "USD",
675
+ "UYU",
676
+ "UZS",
677
+ "VEF",
678
+ "VND",
679
+ "VUV",
680
+ "WST",
681
+ "XAF",
682
+ "XAG",
683
+ "XAU",
684
+ "XCD",
685
+ "XDR",
686
+ "XFO",
687
+ "XFU",
688
+ "XOF",
689
+ "XPD",
690
+ "XPF",
691
+ "XPT",
692
+ "YER",
693
+ "ZAR",
694
+ "ZMK",
695
+ "ZMW",
696
+ "ZWD",
697
+ "ZWL",
698
+ "ZWN",
699
+ "ZWR"
700
+ ]
701
+ }
702
+ },
703
+ {
704
+ "description": "Limit Type",
705
+ "name": "type",
706
+ "in": "query",
707
+ "required": false,
708
+ "schema": {
709
+ "type": "string"
710
+ }
711
+ }
712
+ ],
713
+ "tags": [
714
+ "participants"
715
+ ],
716
+ "responses": {
717
+ "default": {
718
+ "description": "Successful",
719
+ "content": {
720
+ "*/*": {
721
+ "schema": {
722
+ "type": "string"
723
+ }
724
+ }
725
+ }
726
+ }
727
+ }
115
728
  },
116
- "description": "Successful"
117
- }
118
- }
119
- }
120
- },
121
- "/participants/limits": {
122
- "get": {
123
- "summary": "View limits for all participants",
124
- "operationId": "getParticipantsLimits",
125
- "parameters": [
126
- {
127
- "type": "string",
128
- "description": "Currency code",
129
- "enum": [
130
- "AED",
131
- "AFA",
132
- "AFN",
133
- "ALL",
134
- "AMD",
135
- "ANG",
136
- "AOA",
137
- "AOR",
138
- "ARS",
139
- "AUD",
140
- "AWG",
141
- "AZN",
142
- "BAM",
143
- "BBD",
144
- "BDT",
145
- "BGN",
146
- "BHD",
147
- "BIF",
148
- "BMD",
149
- "BND",
150
- "BOB",
151
- "BRL",
152
- "BSD",
153
- "BTN",
154
- "BWP",
155
- "BYN",
156
- "BZD",
157
- "CAD",
158
- "CDF",
159
- "CHF",
160
- "CLP",
161
- "CNY",
162
- "COP",
163
- "CRC",
164
- "CUC",
165
- "CUP",
166
- "CVE",
167
- "CZK",
168
- "DJF",
169
- "DKK",
170
- "DOP",
171
- "DZD",
172
- "EEK",
173
- "EGP",
174
- "ERN",
175
- "ETB",
176
- "EUR",
177
- "FJD",
178
- "FKP",
179
- "GBP",
180
- "GEL",
181
- "GGP",
182
- "GHS",
183
- "GIP",
184
- "GMD",
185
- "GNF",
186
- "GTQ",
187
- "GYD",
188
- "HKD",
189
- "HNL",
190
- "HRK",
191
- "HTG",
192
- "HUF",
193
- "IDR",
194
- "ILS",
195
- "IMP",
196
- "INR",
197
- "IQD",
198
- "IRR",
199
- "ISK",
200
- "JEP",
201
- "JMD",
202
- "JOD",
203
- "JPY",
204
- "KES",
205
- "KGS",
206
- "KHR",
207
- "KMF",
208
- "KPW",
209
- "KRW",
210
- "KWD",
211
- "KYD",
212
- "KZT",
213
- "LAK",
214
- "LBP",
215
- "LKR",
216
- "LRD",
217
- "LSL",
218
- "LTL",
219
- "LVL",
220
- "LYD",
221
- "MAD",
222
- "MDL",
223
- "MGA",
224
- "MKD",
225
- "MMK",
226
- "MNT",
227
- "MOP",
228
- "MRO",
229
- "MUR",
230
- "MVR",
231
- "MWK",
232
- "MXN",
233
- "MYR",
234
- "MZN",
235
- "NAD",
236
- "NGN",
237
- "NIO",
238
- "NOK",
239
- "NPR",
240
- "NZD",
241
- "OMR",
242
- "PAB",
243
- "PEN",
244
- "PGK",
245
- "PHP",
246
- "PKR",
247
- "PLN",
248
- "PYG",
249
- "QAR",
250
- "RON",
251
- "RSD",
252
- "RUB",
253
- "RWF",
254
- "SAR",
255
- "SBD",
256
- "SCR",
257
- "SDG",
258
- "SEK",
259
- "SGD",
260
- "SHP",
261
- "SLL",
262
- "SOS",
263
- "SPL",
264
- "SRD",
265
- "STD",
266
- "SVC",
267
- "SYP",
268
- "SZL",
269
- "THB",
270
- "TJS",
271
- "TMT",
272
- "TND",
273
- "TOP",
274
- "TRY",
275
- "TTD",
276
- "TVD",
277
- "TWD",
278
- "TZS",
279
- "UAH",
280
- "UGX",
281
- "USD",
282
- "UYU",
283
- "UZS",
284
- "VEF",
285
- "VND",
286
- "VUV",
287
- "WST",
288
- "XAF",
289
- "XAG",
290
- "XAU",
291
- "XCD",
292
- "XDR",
293
- "XFO",
294
- "XFU",
295
- "XOF",
296
- "XPD",
297
- "XPF",
298
- "XPT",
299
- "YER",
300
- "ZAR",
301
- "ZMK",
302
- "ZMW",
303
- "ZWD",
304
- "ZWL",
305
- "ZWN",
306
- "ZWR"
307
- ],
308
- "name": "currency",
309
- "in": "query"
310
- },
311
- {
312
- "type": "string",
313
- "description": "Limit Type",
314
- "name": "type",
315
- "in": "query",
316
- "required": false
317
- }
318
- ],
319
- "tags": [
320
- "participants"
321
- ],
322
- "responses": {
323
- "default": {
324
- "schema": {
325
- "type": "string"
729
+ "put": {
730
+ "summary": "Adjust participant limits",
731
+ "operationId": "putParticipantsNameLimits",
732
+ "parameters": [
733
+ {
734
+ "description": "Name of the participant",
735
+ "name": "name",
736
+ "in": "path",
737
+ "required": true,
738
+ "schema": {
739
+ "type": "string",
740
+ "minLength": 2,
741
+ "maxLength": 30
742
+ }
743
+ }
744
+ ],
745
+ "requestBody": {
746
+ "content": {
747
+ "application/json": {
748
+ "schema": {
749
+ "$ref": "#/components/schemas/PutParticipantsNameLimitsRequest"
750
+ }
751
+ }
752
+ }
753
+ },
754
+ "tags": [
755
+ "participants"
756
+ ],
757
+ "responses": {
758
+ "default": {
759
+ "description": "Successful",
760
+ "content": {
761
+ "*/*": {
762
+ "schema": {
763
+ "type": "string"
764
+ }
765
+ }
766
+ }
767
+ }
768
+ }
769
+ }
770
+ },
771
+ "/participants/{name}/positions": {
772
+ "get": {
773
+ "summary": "View participant positions",
774
+ "operationId": "getParticipantsNamePositions",
775
+ "parameters": [
776
+ {
777
+ "description": "Name of the participant",
778
+ "name": "name",
779
+ "in": "path",
780
+ "required": true,
781
+ "schema": {
782
+ "type": "string",
783
+ "minLength": 2,
784
+ "maxLength": 30
785
+ }
786
+ },
787
+ {
788
+ "description": "Currency code",
789
+ "name": "currency",
790
+ "in": "query",
791
+ "schema": {
792
+ "type": "string",
793
+ "enum": [
794
+ "AED",
795
+ "AFA",
796
+ "AFN",
797
+ "ALL",
798
+ "AMD",
799
+ "ANG",
800
+ "AOA",
801
+ "AOR",
802
+ "ARS",
803
+ "AUD",
804
+ "AWG",
805
+ "AZN",
806
+ "BAM",
807
+ "BBD",
808
+ "BDT",
809
+ "BGN",
810
+ "BHD",
811
+ "BIF",
812
+ "BMD",
813
+ "BND",
814
+ "BOB",
815
+ "BRL",
816
+ "BSD",
817
+ "BTN",
818
+ "BWP",
819
+ "BYN",
820
+ "BZD",
821
+ "CAD",
822
+ "CDF",
823
+ "CHF",
824
+ "CLP",
825
+ "CNY",
826
+ "COP",
827
+ "CRC",
828
+ "CUC",
829
+ "CUP",
830
+ "CVE",
831
+ "CZK",
832
+ "DJF",
833
+ "DKK",
834
+ "DOP",
835
+ "DZD",
836
+ "EEK",
837
+ "EGP",
838
+ "ERN",
839
+ "ETB",
840
+ "EUR",
841
+ "FJD",
842
+ "FKP",
843
+ "GBP",
844
+ "GEL",
845
+ "GGP",
846
+ "GHS",
847
+ "GIP",
848
+ "GMD",
849
+ "GNF",
850
+ "GTQ",
851
+ "GYD",
852
+ "HKD",
853
+ "HNL",
854
+ "HRK",
855
+ "HTG",
856
+ "HUF",
857
+ "IDR",
858
+ "ILS",
859
+ "IMP",
860
+ "INR",
861
+ "IQD",
862
+ "IRR",
863
+ "ISK",
864
+ "JEP",
865
+ "JMD",
866
+ "JOD",
867
+ "JPY",
868
+ "KES",
869
+ "KGS",
870
+ "KHR",
871
+ "KMF",
872
+ "KPW",
873
+ "KRW",
874
+ "KWD",
875
+ "KYD",
876
+ "KZT",
877
+ "LAK",
878
+ "LBP",
879
+ "LKR",
880
+ "LRD",
881
+ "LSL",
882
+ "LTL",
883
+ "LVL",
884
+ "LYD",
885
+ "MAD",
886
+ "MDL",
887
+ "MGA",
888
+ "MKD",
889
+ "MMK",
890
+ "MNT",
891
+ "MOP",
892
+ "MRO",
893
+ "MUR",
894
+ "MVR",
895
+ "MWK",
896
+ "MXN",
897
+ "MYR",
898
+ "MZN",
899
+ "NAD",
900
+ "NGN",
901
+ "NIO",
902
+ "NOK",
903
+ "NPR",
904
+ "NZD",
905
+ "OMR",
906
+ "PAB",
907
+ "PEN",
908
+ "PGK",
909
+ "PHP",
910
+ "PKR",
911
+ "PLN",
912
+ "PYG",
913
+ "QAR",
914
+ "RON",
915
+ "RSD",
916
+ "RUB",
917
+ "RWF",
918
+ "SAR",
919
+ "SBD",
920
+ "SCR",
921
+ "SDG",
922
+ "SEK",
923
+ "SGD",
924
+ "SHP",
925
+ "SLL",
926
+ "SOS",
927
+ "SPL",
928
+ "SRD",
929
+ "STD",
930
+ "SVC",
931
+ "SYP",
932
+ "SZL",
933
+ "THB",
934
+ "TJS",
935
+ "TMT",
936
+ "TND",
937
+ "TOP",
938
+ "TRY",
939
+ "TTD",
940
+ "TVD",
941
+ "TWD",
942
+ "TZS",
943
+ "UAH",
944
+ "UGX",
945
+ "USD",
946
+ "UYU",
947
+ "UZS",
948
+ "VEF",
949
+ "VND",
950
+ "VUV",
951
+ "WST",
952
+ "XAF",
953
+ "XAG",
954
+ "XAU",
955
+ "XCD",
956
+ "XDR",
957
+ "XFO",
958
+ "XFU",
959
+ "XOF",
960
+ "XPD",
961
+ "XPF",
962
+ "XPT",
963
+ "YER",
964
+ "ZAR",
965
+ "ZMK",
966
+ "ZMW",
967
+ "ZWD",
968
+ "ZWL",
969
+ "ZWN",
970
+ "ZWR"
971
+ ]
972
+ }
973
+ }
974
+ ],
975
+ "tags": [
976
+ "participants"
977
+ ],
978
+ "responses": {
979
+ "default": {
980
+ "description": "Successful",
981
+ "content": {
982
+ "*/*": {
983
+ "schema": {
984
+ "type": "string"
985
+ }
986
+ }
987
+ }
988
+ }
989
+ }
990
+ }
991
+ },
992
+ "/participants/{name}/accounts": {
993
+ "get": {
994
+ "summary": "View participant accounts and balances",
995
+ "operationId": "getParticipantsNameAccounts",
996
+ "parameters": [
997
+ {
998
+ "description": "Name of the participant",
999
+ "name": "name",
1000
+ "in": "path",
1001
+ "required": true,
1002
+ "schema": {
1003
+ "type": "string",
1004
+ "minLength": 2,
1005
+ "maxLength": 30
1006
+ }
1007
+ }
1008
+ ],
1009
+ "tags": [
1010
+ "participants"
1011
+ ],
1012
+ "responses": {
1013
+ "default": {
1014
+ "description": "Successful",
1015
+ "content": {
1016
+ "*/*": {
1017
+ "schema": {
1018
+ "type": "string"
1019
+ }
1020
+ }
1021
+ }
1022
+ }
1023
+ }
326
1024
  },
327
- "description": "Successful"
328
- }
329
- }
330
- }
331
- },
332
- "/participants/{name}": {
333
- "get": {
334
- "operationId": "getParticipantsName",
335
- "parameters": [
336
- {
337
- "type": "string",
338
- "description": "Participant name",
339
- "name": "name",
340
- "in": "path",
341
- "required": true
342
- }
343
- ],
344
- "tags": [
345
- "participants"
346
- ],
347
- "responses": {
348
- "default": {
349
- "schema": {
350
- "type": "string"
1025
+ "post": {
1026
+ "summary": "Create hub accounts",
1027
+ "operationId": "postParticipantsNameAccounts",
1028
+ "parameters": [
1029
+ {
1030
+ "description": "Participant name",
1031
+ "name": "name",
1032
+ "in": "path",
1033
+ "required": true,
1034
+ "schema": {
1035
+ "type": "string"
1036
+ }
1037
+ }
1038
+ ],
1039
+ "requestBody": {
1040
+ "content": {
1041
+ "application/json": {
1042
+ "schema": {
1043
+ "$ref": "#/components/schemas/PostParticipantsNameAccountsRequest"
1044
+ }
1045
+ }
1046
+ }
1047
+ },
1048
+ "tags": [
1049
+ "participants"
1050
+ ],
1051
+ "responses": {
1052
+ "default": {
1053
+ "description": "Successful",
1054
+ "content": {
1055
+ "*/*": {
1056
+ "schema": {
1057
+ "type": "string"
1058
+ }
1059
+ }
1060
+ }
1061
+ }
1062
+ }
1063
+ }
1064
+ },
1065
+ "/participants/{name}/initialPositionAndLimits": {
1066
+ "post": {
1067
+ "summary": "Add initial participant limits and position",
1068
+ "operationId": "postParticipantsNameInitialpositionandlimits",
1069
+ "parameters": [
1070
+ {
1071
+ "description": "Name of the participant",
1072
+ "name": "name",
1073
+ "in": "path",
1074
+ "required": true,
1075
+ "schema": {
1076
+ "type": "string",
1077
+ "minLength": 2,
1078
+ "maxLength": 30
1079
+ }
1080
+ }
1081
+ ],
1082
+ "requestBody": {
1083
+ "content": {
1084
+ "application/json": {
1085
+ "schema": {
1086
+ "$ref": "#/components/schemas/PostInitialPositionAndLimitsRequest"
1087
+ }
1088
+ }
1089
+ }
1090
+ },
1091
+ "tags": [
1092
+ "participants"
1093
+ ],
1094
+ "responses": {
1095
+ "default": {
1096
+ "description": "Successful",
1097
+ "content": {
1098
+ "*/*": {
1099
+ "schema": {
1100
+ "type": "string"
1101
+ }
1102
+ }
1103
+ }
1104
+ }
1105
+ }
1106
+ }
1107
+ },
1108
+ "/participants/{name}/accounts/{id}": {
1109
+ "post": {
1110
+ "summary": "Record Funds In or Out of participant account",
1111
+ "operationId": "postParticipantsNameAccountsId",
1112
+ "parameters": [
1113
+ {
1114
+ "description": "Name of the participant",
1115
+ "name": "name",
1116
+ "in": "path",
1117
+ "required": true,
1118
+ "schema": {
1119
+ "type": "string",
1120
+ "minLength": 2,
1121
+ "maxLength": 30
1122
+ }
1123
+ },
1124
+ {
1125
+ "x-constraint": {
1126
+ "positive": true
1127
+ },
1128
+ "name": "id",
1129
+ "in": "path",
1130
+ "required": true,
1131
+ "schema": {
1132
+ "type": "integer"
1133
+ }
1134
+ }
1135
+ ],
1136
+ "requestBody": {
1137
+ "content": {
1138
+ "application/json": {
1139
+ "schema": {
1140
+ "$ref": "#/components/schemas/Participants"
1141
+ }
1142
+ }
1143
+ }
1144
+ },
1145
+ "tags": [
1146
+ "participants"
1147
+ ],
1148
+ "responses": {
1149
+ "default": {
1150
+ "description": "Successful",
1151
+ "content": {
1152
+ "*/*": {
1153
+ "schema": {
1154
+ "type": "string"
1155
+ }
1156
+ }
1157
+ }
1158
+ }
1159
+ }
351
1160
  },
352
- "description": "Successful"
353
- }
354
- }
355
- },
356
- "put": {
357
- "operationId": "putParticipantsName",
358
- "parameters": [
359
- {
360
- "type": "string",
361
- "description": "Participant name",
362
- "name": "name",
363
- "in": "path",
364
- "required": true
365
- },
366
- {
367
- "in": "body",
368
- "name": "body",
369
- "schema": {
370
- "$ref": "#/definitions/ParticipantIsActive"
1161
+ "put": {
1162
+ "summary": "Update participant accounts",
1163
+ "operationId": "putParticipantsNameAccountsId",
1164
+ "parameters": [
1165
+ {
1166
+ "description": "Name of the participant",
1167
+ "name": "name",
1168
+ "in": "path",
1169
+ "required": true,
1170
+ "schema": {
1171
+ "type": "string",
1172
+ "minLength": 2,
1173
+ "maxLength": 30
1174
+ }
1175
+ },
1176
+ {
1177
+ "x-constraint": {
1178
+ "positive": true
1179
+ },
1180
+ "name": "id",
1181
+ "in": "path",
1182
+ "required": true,
1183
+ "schema": {
1184
+ "type": "integer"
1185
+ }
1186
+ }
1187
+ ],
1188
+ "requestBody": {
1189
+ "content": {
1190
+ "application/json": {
1191
+ "schema": {
1192
+ "$ref": "#/components/schemas/CurrencyIsActive"
1193
+ }
1194
+ }
1195
+ }
1196
+ },
1197
+ "tags": [
1198
+ "participants"
1199
+ ],
1200
+ "responses": {
1201
+ "default": {
1202
+ "description": "Successful",
1203
+ "content": {
1204
+ "*/*": {
1205
+ "schema": {
1206
+ "type": "string"
1207
+ }
1208
+ }
1209
+ }
1210
+ }
1211
+ }
371
1212
  }
372
- }
373
- ],
374
- "tags": [
375
- "participants"
376
- ],
377
- "responses": {
378
- "default": {
379
- "schema": {
380
- "type": "string"
1213
+ },
1214
+ "/participants/{name}/accounts/{id}/transfers/{transferId}": {
1215
+ "put": {
1216
+ "summary": "Record Funds In or Out of participant account",
1217
+ "operationId": "putParticipantsNameAccountsIdTransfersTransferid",
1218
+ "parameters": [
1219
+ {
1220
+ "description": "Name of the participant",
1221
+ "name": "name",
1222
+ "in": "path",
1223
+ "required": true,
1224
+ "schema": {
1225
+ "type": "string",
1226
+ "minLength": 2,
1227
+ "maxLength": 30
1228
+ }
1229
+ },
1230
+ {
1231
+ "x-constraint": {
1232
+ "positive": true
1233
+ },
1234
+ "name": "id",
1235
+ "in": "path",
1236
+ "required": true,
1237
+ "schema": {
1238
+ "type": "integer"
1239
+ }
1240
+ },
1241
+ {
1242
+ "x-format": {
1243
+ "guid": true
1244
+ },
1245
+ "name": "transferId",
1246
+ "in": "path",
1247
+ "required": true,
1248
+ "schema": {
1249
+ "type": "string"
1250
+ }
1251
+ }
1252
+ ],
1253
+ "requestBody": {
1254
+ "content": {
1255
+ "application/json": {
1256
+ "schema": {
1257
+ "$ref": "#/components/schemas/RecordFundsOut"
1258
+ }
1259
+ }
1260
+ }
1261
+ },
1262
+ "tags": [
1263
+ "participants"
1264
+ ],
1265
+ "responses": {
1266
+ "default": {
1267
+ "description": "Successful",
1268
+ "content": {
1269
+ "*/*": {
1270
+ "schema": {
1271
+ "type": "string"
1272
+ }
1273
+ }
1274
+ }
1275
+ }
1276
+ }
1277
+ }
1278
+ },
1279
+ "/ledgerAccountTypes": {
1280
+ "get": {
1281
+ "summary": "View all ledger account types",
1282
+ "tags": [
1283
+ "ledgerAccountTypes"
1284
+ ],
1285
+ "operationId": "getLedgerAccountTypes",
1286
+ "responses": {
1287
+ "default": {
1288
+ "description": "Successful",
1289
+ "content": {
1290
+ "*/*": {
1291
+ "schema": {
1292
+ "type": "array",
1293
+ "items": {
1294
+ "$ref": "#/components/schemas/LedgerAccountType"
1295
+ }
1296
+ }
1297
+ }
1298
+ }
1299
+ }
1300
+ }
381
1301
  },
382
- "description": "Successful"
383
- }
384
- }
385
- }
386
- },
387
- "/participants/{name}/endpoints": {
388
- "get": {
389
- "summary": "View participant endpoints",
390
- "operationId": "getParticipantsNameEndpoints",
391
- "parameters": [
392
- {
393
- "type": "string",
394
- "description": "Name of the participant",
395
- "minLength": 2,
396
- "maxLength": 30,
397
- "name": "name",
398
- "in": "path",
399
- "required": true
400
- }
401
- ],
402
- "tags": [
403
- "participants"
404
- ],
405
- "responses": {
406
- "default": {
407
- "schema": {
408
- "type": "string"
1302
+ "post": {
1303
+ "summary": "Create a ledgerAccount type",
1304
+ "tags": [
1305
+ "ledgerAccountType"
1306
+ ],
1307
+ "operationId": "postLedgerAccountType",
1308
+ "requestBody": {
1309
+ "content": {
1310
+ "application/json": {
1311
+ "schema": {
1312
+ "$ref": "#/components/schemas/LedgerAccountType"
1313
+ }
1314
+ }
1315
+ },
1316
+ "required": true
1317
+ },
1318
+ "responses": {
1319
+ "default": {
1320
+ "description": "Successful",
1321
+ "content": {
1322
+ "*/*": {
1323
+ "schema": {
1324
+ "type": "string"
1325
+ }
1326
+ }
1327
+ }
1328
+ }
1329
+ }
1330
+ }
1331
+ },
1332
+ "/settlementModels": {
1333
+ "get": {
1334
+ "summary": "View all settlement models",
1335
+ "tags": [
1336
+ "settlementModels"
1337
+ ],
1338
+ "operationId": "getSettlementmodels",
1339
+ "responses": {
1340
+ "default": {
1341
+ "description": "Successful",
1342
+ "content": {
1343
+ "*/*": {
1344
+ "schema": {
1345
+ "type": "string"
1346
+ }
1347
+ }
1348
+ }
1349
+ }
1350
+ }
409
1351
  },
410
- "description": "Successful"
411
- }
412
- }
413
- },
414
- "post": {
415
- "summary": "Add/Update participant endpoints",
416
- "operationId": "postParticipantsNameEndpoints",
417
- "parameters": [
418
- {
419
- "type": "string",
420
- "description": "Name of the participant",
421
- "minLength": 2,
422
- "maxLength": 30,
423
- "name": "name",
424
- "in": "path",
425
- "required": true
426
- },
427
- {
428
- "in": "body",
429
- "name": "body",
430
- "schema": {
431
- "$ref": "#/definitions/PostParticipantsNameEndpointsRequest"
1352
+ "post": {
1353
+ "summary": "Create a settlement model. This will create any associated ledgerAccountTypes for every participant that matches the settlementModel's currency",
1354
+ "tags": [
1355
+ "settlementModels"
1356
+ ],
1357
+ "operationId": "postSettlementmodels",
1358
+ "requestBody": {
1359
+ "content": {
1360
+ "application/json": {
1361
+ "schema": {
1362
+ "$ref": "#/components/schemas/SettlementModel"
1363
+ }
1364
+ }
1365
+ }
1366
+ },
1367
+ "responses": {
1368
+ "default": {
1369
+ "description": "Successful",
1370
+ "content": {
1371
+ "*/*": {
1372
+ "schema": {
1373
+ "type": "string"
1374
+ }
1375
+ }
1376
+ }
1377
+ }
1378
+ }
432
1379
  }
433
- }
434
- ],
435
- "tags": [
436
- "participants"
437
- ],
438
- "responses": {
439
- "default": {
440
- "schema": {
441
- "type": "string"
1380
+ },
1381
+ "/settlementModels/{name}": {
1382
+ "get": {
1383
+ "summary": "View settlement model by name",
1384
+ "tags": [
1385
+ "settlementModels"
1386
+ ],
1387
+ "operationId": "getSettlementmodelsName",
1388
+ "parameters": [
1389
+ {
1390
+ "name": "name",
1391
+ "in": "path",
1392
+ "description": "SettlementModel name",
1393
+ "required": true,
1394
+ "schema": {
1395
+ "type": "string"
1396
+ }
1397
+ }
1398
+ ],
1399
+ "responses": {
1400
+ "default": {
1401
+ "description": "Successful",
1402
+ "content": {
1403
+ "*/*": {
1404
+ "schema": {
1405
+ "type": "string"
1406
+ }
1407
+ }
1408
+ }
1409
+ }
1410
+ }
442
1411
  },
443
- "description": "Successful"
444
- }
1412
+ "put": {
1413
+ "summary": "Update a settlement model",
1414
+ "tags": [
1415
+ "settlementModels"
1416
+ ],
1417
+ "operationId": "putSettlementmodelsName",
1418
+ "parameters": [
1419
+ {
1420
+ "name": "name",
1421
+ "in": "path",
1422
+ "description": "settlementModel name",
1423
+ "required": true,
1424
+ "schema": {
1425
+ "type": "string"
1426
+ }
1427
+ }
1428
+ ],
1429
+ "requestBody": {
1430
+ "content": {
1431
+ "application/json": {
1432
+ "schema": {
1433
+ "$ref": "#/components/schemas/SettlementModelIsActive"
1434
+ }
1435
+ }
1436
+ }
1437
+ },
1438
+ "responses": {
1439
+ "default": {
1440
+ "description": "Successful",
1441
+ "content": {
1442
+ "*/*": {
1443
+ "schema": {
1444
+ "type": "string"
1445
+ }
1446
+ }
1447
+ }
1448
+ }
1449
+ }
1450
+ }
1451
+ },
1452
+ "/transactions/{id}": {
1453
+ "get": {
1454
+ "summary": "Retrieve transaction details by a transferId",
1455
+ "tags": [
1456
+ "transaction"
1457
+ ],
1458
+ "operationId": "getTransfer",
1459
+ "parameters": [
1460
+ {
1461
+ "name": "id",
1462
+ "in": "path",
1463
+ "description": "Transfer Id",
1464
+ "required": true,
1465
+ "schema": {
1466
+ "type": "string"
1467
+ }
1468
+ }
1469
+ ],
1470
+ "responses": {
1471
+ "default": {
1472
+ "description": "Successful",
1473
+ "content": {
1474
+ "*/*": {
1475
+ "schema": {
1476
+ "$ref": "#/components/schemas/GetTransactionResponse"
1477
+ }
1478
+ }
1479
+ }
1480
+ }
1481
+ }
1482
+ }
445
1483
  }
446
- }
447
1484
  },
448
- "/participants/{name}/limits": {
449
- "get": {
450
- "summary": "View participant limits",
451
- "operationId": "getParticipantsNameLimits",
452
- "parameters": [
453
- {
454
- "type": "string",
455
- "description": "Name of the participant",
456
- "minLength": 2,
457
- "maxLength": 30,
458
- "name": "name",
459
- "in": "path",
460
- "required": true
461
- },
462
- {
463
- "type": "string",
464
- "description": "Currency code",
465
- "enum": [
466
- "AED",
467
- "AFA",
468
- "AFN",
469
- "ALL",
470
- "AMD",
471
- "ANG",
472
- "AOA",
473
- "AOR",
474
- "ARS",
475
- "AUD",
476
- "AWG",
477
- "AZN",
478
- "BAM",
479
- "BBD",
480
- "BDT",
481
- "BGN",
482
- "BHD",
483
- "BIF",
484
- "BMD",
485
- "BND",
486
- "BOB",
487
- "BRL",
488
- "BSD",
489
- "BTN",
490
- "BWP",
491
- "BYN",
492
- "BZD",
493
- "CAD",
494
- "CDF",
495
- "CHF",
496
- "CLP",
497
- "CNY",
498
- "COP",
499
- "CRC",
500
- "CUC",
501
- "CUP",
502
- "CVE",
503
- "CZK",
504
- "DJF",
505
- "DKK",
506
- "DOP",
507
- "DZD",
508
- "EEK",
509
- "EGP",
510
- "ERN",
511
- "ETB",
512
- "EUR",
513
- "FJD",
514
- "FKP",
515
- "GBP",
516
- "GEL",
517
- "GGP",
518
- "GHS",
519
- "GIP",
520
- "GMD",
521
- "GNF",
522
- "GTQ",
523
- "GYD",
524
- "HKD",
525
- "HNL",
526
- "HRK",
527
- "HTG",
528
- "HUF",
529
- "IDR",
530
- "ILS",
531
- "IMP",
532
- "INR",
533
- "IQD",
534
- "IRR",
535
- "ISK",
536
- "JEP",
537
- "JMD",
538
- "JOD",
539
- "JPY",
540
- "KES",
541
- "KGS",
542
- "KHR",
543
- "KMF",
544
- "KPW",
545
- "KRW",
546
- "KWD",
547
- "KYD",
548
- "KZT",
549
- "LAK",
550
- "LBP",
551
- "LKR",
552
- "LRD",
553
- "LSL",
554
- "LTL",
555
- "LVL",
556
- "LYD",
557
- "MAD",
558
- "MDL",
559
- "MGA",
560
- "MKD",
561
- "MMK",
562
- "MNT",
563
- "MOP",
564
- "MRO",
565
- "MUR",
566
- "MVR",
567
- "MWK",
568
- "MXN",
569
- "MYR",
570
- "MZN",
571
- "NAD",
572
- "NGN",
573
- "NIO",
574
- "NOK",
575
- "NPR",
576
- "NZD",
577
- "OMR",
578
- "PAB",
579
- "PEN",
580
- "PGK",
581
- "PHP",
582
- "PKR",
583
- "PLN",
584
- "PYG",
585
- "QAR",
586
- "RON",
587
- "RSD",
588
- "RUB",
589
- "RWF",
590
- "SAR",
591
- "SBD",
592
- "SCR",
593
- "SDG",
594
- "SEK",
595
- "SGD",
596
- "SHP",
597
- "SLL",
598
- "SOS",
599
- "SPL",
600
- "SRD",
601
- "STD",
602
- "SVC",
603
- "SYP",
604
- "SZL",
605
- "THB",
606
- "TJS",
607
- "TMT",
608
- "TND",
609
- "TOP",
610
- "TRY",
611
- "TTD",
612
- "TVD",
613
- "TWD",
614
- "TZS",
615
- "UAH",
616
- "UGX",
617
- "USD",
618
- "UYU",
619
- "UZS",
620
- "VEF",
621
- "VND",
622
- "VUV",
623
- "WST",
624
- "XAF",
625
- "XAG",
626
- "XAU",
627
- "XCD",
628
- "XDR",
629
- "XFO",
630
- "XFU",
631
- "XOF",
632
- "XPD",
633
- "XPF",
634
- "XPT",
635
- "YER",
636
- "ZAR",
637
- "ZMK",
638
- "ZMW",
639
- "ZWD",
640
- "ZWL",
641
- "ZWN",
642
- "ZWR"
643
- ],
644
- "name": "currency",
645
- "in": "query"
646
- },
647
- {
648
- "type": "string",
649
- "description": "Limit Type",
650
- "name": "type",
651
- "in": "query",
652
- "required": false
653
- }
654
- ],
655
- "tags": [
656
- "participants"
657
- ],
658
- "responses": {
659
- "default": {
660
- "schema": {
661
- "type": "string"
662
- },
663
- "description": "Successful"
664
- }
1485
+ "servers": [
1486
+ {
1487
+ "url": "http://127.0.0.1:3001"
665
1488
  }
666
- },
667
- "put": {
668
- "summary": "Adjust participant limits",
669
- "operationId": "putParticipantsNameLimits",
670
- "parameters": [
671
- {
672
- "type": "string",
673
- "description": "Name of the participant",
674
- "minLength": 2,
675
- "maxLength": 30,
676
- "name": "name",
677
- "in": "path",
678
- "required": true
679
- },
680
- {
681
- "in": "body",
682
- "name": "body",
683
- "schema": {
684
- "$ref": "#/definitions/PutParticipantsNameLimitsRequest"
685
- }
686
- }
687
- ],
688
- "tags": [
689
- "participants"
690
- ],
691
- "responses": {
692
- "default": {
693
- "schema": {
694
- "type": "string"
1489
+ ],
1490
+ "components": {
1491
+ "schemas": {
1492
+ "PostParticipantsRequest": {
1493
+ "type": "object",
1494
+ "properties": {
1495
+ "name": {
1496
+ "type": "string",
1497
+ "description": "Name of the participant",
1498
+ "minLength": 2,
1499
+ "maxLength": 30,
1500
+ "x-format": {
1501
+ "alphanum": true
1502
+ }
1503
+ },
1504
+ "currency": {
1505
+ "$ref": "#/components/schemas/Currency"
1506
+ },
1507
+ "isProxy": {
1508
+ "type": "boolean",
1509
+ "description": "Is the participant a proxy"
1510
+ }
1511
+ },
1512
+ "required": [
1513
+ "name"
1514
+ ]
695
1515
  },
696
- "description": "Successful"
697
- }
698
- }
699
- }
700
- },
701
- "/participants/{name}/positions": {
702
- "get": {
703
- "summary": "View participant positions",
704
- "operationId": "getParticipantsNamePositions",
705
- "parameters": [
706
- {
707
- "type": "string",
708
- "description": "Name of the participant",
709
- "minLength": 2,
710
- "maxLength": 30,
711
- "name": "name",
712
- "in": "path",
713
- "required": true
714
- },
715
- {
716
- "type": "string",
717
- "description": "Currency code",
718
- "enum": [
719
- "AED",
720
- "AFA",
721
- "AFN",
722
- "ALL",
723
- "AMD",
724
- "ANG",
725
- "AOA",
726
- "AOR",
727
- "ARS",
728
- "AUD",
729
- "AWG",
730
- "AZN",
731
- "BAM",
732
- "BBD",
733
- "BDT",
734
- "BGN",
735
- "BHD",
736
- "BIF",
737
- "BMD",
738
- "BND",
739
- "BOB",
740
- "BRL",
741
- "BSD",
742
- "BTN",
743
- "BWP",
744
- "BYN",
745
- "BZD",
746
- "CAD",
747
- "CDF",
748
- "CHF",
749
- "CLP",
750
- "CNY",
751
- "COP",
752
- "CRC",
753
- "CUC",
754
- "CUP",
755
- "CVE",
756
- "CZK",
757
- "DJF",
758
- "DKK",
759
- "DOP",
760
- "DZD",
761
- "EEK",
762
- "EGP",
763
- "ERN",
764
- "ETB",
765
- "EUR",
766
- "FJD",
767
- "FKP",
768
- "GBP",
769
- "GEL",
770
- "GGP",
771
- "GHS",
772
- "GIP",
773
- "GMD",
774
- "GNF",
775
- "GTQ",
776
- "GYD",
777
- "HKD",
778
- "HNL",
779
- "HRK",
780
- "HTG",
781
- "HUF",
782
- "IDR",
783
- "ILS",
784
- "IMP",
785
- "INR",
786
- "IQD",
787
- "IRR",
788
- "ISK",
789
- "JEP",
790
- "JMD",
791
- "JOD",
792
- "JPY",
793
- "KES",
794
- "KGS",
795
- "KHR",
796
- "KMF",
797
- "KPW",
798
- "KRW",
799
- "KWD",
800
- "KYD",
801
- "KZT",
802
- "LAK",
803
- "LBP",
804
- "LKR",
805
- "LRD",
806
- "LSL",
807
- "LTL",
808
- "LVL",
809
- "LYD",
810
- "MAD",
811
- "MDL",
812
- "MGA",
813
- "MKD",
814
- "MMK",
815
- "MNT",
816
- "MOP",
817
- "MRO",
818
- "MUR",
819
- "MVR",
820
- "MWK",
821
- "MXN",
822
- "MYR",
823
- "MZN",
824
- "NAD",
825
- "NGN",
826
- "NIO",
827
- "NOK",
828
- "NPR",
829
- "NZD",
830
- "OMR",
831
- "PAB",
832
- "PEN",
833
- "PGK",
834
- "PHP",
835
- "PKR",
836
- "PLN",
837
- "PYG",
838
- "QAR",
839
- "RON",
840
- "RSD",
841
- "RUB",
842
- "RWF",
843
- "SAR",
844
- "SBD",
845
- "SCR",
846
- "SDG",
847
- "SEK",
848
- "SGD",
849
- "SHP",
850
- "SLL",
851
- "SOS",
852
- "SPL",
853
- "SRD",
854
- "STD",
855
- "SVC",
856
- "SYP",
857
- "SZL",
858
- "THB",
859
- "TJS",
860
- "TMT",
861
- "TND",
862
- "TOP",
863
- "TRY",
864
- "TTD",
865
- "TVD",
866
- "TWD",
867
- "TZS",
868
- "UAH",
869
- "UGX",
870
- "USD",
871
- "UYU",
872
- "UZS",
873
- "VEF",
874
- "VND",
875
- "VUV",
876
- "WST",
877
- "XAF",
878
- "XAG",
879
- "XAU",
880
- "XCD",
881
- "XDR",
882
- "XFO",
883
- "XFU",
884
- "XOF",
885
- "XPD",
886
- "XPF",
887
- "XPT",
888
- "YER",
889
- "ZAR",
890
- "ZMK",
891
- "ZMW",
892
- "ZWD",
893
- "ZWL",
894
- "ZWN",
895
- "ZWR"
896
- ],
897
- "name": "currency",
898
- "in": "query"
899
- }
900
- ],
901
- "tags": [
902
- "participants"
903
- ],
904
- "responses": {
905
- "default": {
906
- "schema": {
907
- "type": "string"
1516
+ "PostParticipantsNameEndpointsRequest": {
1517
+ "type": "object",
1518
+ "properties": {
1519
+ "type": {
1520
+ "type": "string",
1521
+ "description": "Endpoint Type"
1522
+ },
1523
+ "value": {
1524
+ "type": "string",
1525
+ "description": "Endpoint Value"
1526
+ }
1527
+ },
1528
+ "required": [
1529
+ "type",
1530
+ "value"
1531
+ ]
908
1532
  },
909
- "description": "Successful"
910
- }
911
- }
912
- }
913
- },
914
- "/participants/{name}/accounts": {
915
- "get": {
916
- "summary": "View participant accounts and balances",
917
- "operationId": "getParticipantsNameAccounts",
918
- "parameters": [
919
- {
920
- "type": "string",
921
- "description": "Name of the participant",
922
- "minLength": 2,
923
- "maxLength": 30,
924
- "name": "name",
925
- "in": "path",
926
- "required": true
927
- }
928
- ],
929
- "tags": [
930
- "participants"
931
- ],
932
- "responses": {
933
- "default": {
934
- "schema": {
935
- "type": "string"
1533
+ "Limit": {
1534
+ "type": "object",
1535
+ "description": "Participant Limit",
1536
+ "properties": {
1537
+ "type": {
1538
+ "type": "string",
1539
+ "description": "Limit Type"
1540
+ },
1541
+ "value": {
1542
+ "type": "number",
1543
+ "description": "Limit Value",
1544
+ "enum": [
1545
+ 0
1546
+ ],
1547
+ "x-constraint": {
1548
+ "positive": true
1549
+ }
1550
+ }
1551
+ },
1552
+ "required": [
1553
+ "type",
1554
+ "value"
1555
+ ]
936
1556
  },
937
- "description": "Successful"
938
- }
939
- }
940
- },
941
- "post": {
942
- "summary": "Create hub accounts",
943
- "operationId": "postParticipantsNameAccounts",
944
- "parameters": [
945
- {
946
- "type": "string",
947
- "description": "Participant name",
948
- "name": "name",
949
- "in": "path",
950
- "required": true
951
- },
952
- {
953
- "in": "body",
954
- "name": "body",
955
- "schema": {
956
- "$ref": "#/definitions/PostParticipantsNameAccountsRequest"
957
- }
958
- }
959
- ],
960
- "tags": [
961
- "participants"
962
- ],
963
- "responses": {
964
- "default": {
965
- "schema": {
966
- "type": "string"
1557
+ "PostInitialPositionAndLimitsRequest": {
1558
+ "type": "object",
1559
+ "properties": {
1560
+ "currency": {
1561
+ "$ref": "#/components/schemas/Currency"
1562
+ },
1563
+ "limit": {
1564
+ "$ref": "#/components/schemas/Limit"
1565
+ },
1566
+ "initialPosition": {
1567
+ "type": "number",
1568
+ "description": "Initial Position Value"
1569
+ }
1570
+ },
1571
+ "required": [
1572
+ "limit"
1573
+ ]
967
1574
  },
968
- "description": "Successful"
969
- }
970
- }
971
- }
972
- },
973
- "/participants/{name}/initialPositionAndLimits": {
974
- "post": {
975
- "summary": "Add initial participant limits and position",
976
- "operationId": "postParticipantsNameInitialpositionandlimits",
977
- "parameters": [
978
- {
979
- "type": "string",
980
- "description": "Name of the participant",
981
- "minLength": 2,
982
- "maxLength": 30,
983
- "name": "name",
984
- "in": "path",
985
- "required": true
986
- },
987
- {
988
- "in": "body",
989
- "name": "body",
990
- "schema": {
991
- "$ref": "#/definitions/PostInitialPositionAndLimitsRequest"
992
- }
993
- }
994
- ],
995
- "tags": [
996
- "participants"
997
- ],
998
- "responses": {
999
- "default": {
1000
- "schema": {
1001
- "type": "string"
1575
+ "PostParticipantsNameAccountsRequest": {
1576
+ "type": "object",
1577
+ "properties": {
1578
+ "currency": {
1579
+ "$ref": "#/components/schemas/Currency"
1580
+ },
1581
+ "type": {
1582
+ "type": "string",
1583
+ "description": "Account type"
1584
+ }
1585
+ },
1586
+ "required": [
1587
+ "type"
1588
+ ]
1002
1589
  },
1003
- "description": "Successful"
1004
- }
1005
- }
1006
- }
1007
- },
1008
- "/participants/{name}/accounts/{id}": {
1009
- "post": {
1010
- "summary": "Record Funds In or Out of participant account",
1011
- "operationId": "postParticipantsNameAccountsId",
1012
- "parameters": [
1013
- {
1014
- "type": "string",
1015
- "description": "Name of the participant",
1016
- "minLength": 2,
1017
- "maxLength": 30,
1018
- "name": "name",
1019
- "in": "path",
1020
- "required": true
1021
- },
1022
- {
1023
- "type": "integer",
1024
- "x-constraint": {
1025
- "positive": true
1590
+ "NoAmountProvided": {
1591
+ "type": "object",
1592
+ "properties": {
1593
+ "amount": {
1594
+ "type": "number",
1595
+ "x-constraint": {
1596
+ "precision": 4,
1597
+ "positive": true
1598
+ }
1599
+ },
1600
+ "currency": {
1601
+ "$ref": "#/components/schemas/Currency"
1602
+ }
1603
+ },
1604
+ "required": [
1605
+ "amount"
1606
+ ]
1026
1607
  },
1027
- "name": "id",
1028
- "in": "path",
1029
- "required": true
1030
- },
1031
- {
1032
- "in": "body",
1033
- "name": "body",
1034
- "schema": {
1035
- "$ref": "#/definitions/Participants"
1036
- }
1037
- }
1038
- ],
1039
- "tags": [
1040
- "participants"
1041
- ],
1042
- "responses": {
1043
- "default": {
1044
- "schema": {
1045
- "type": "string"
1608
+ "Participants": {
1609
+ "type": "object",
1610
+ "properties": {
1611
+ "transferId": {
1612
+ "type": "string",
1613
+ "x-format": {
1614
+ "guid": true
1615
+ }
1616
+ },
1617
+ "externalReference": {
1618
+ "type": "string"
1619
+ },
1620
+ "action": {
1621
+ "type": "string",
1622
+ "enum": [
1623
+ "recordFundsIn",
1624
+ "recordFundsOutPrepareReserve"
1625
+ ]
1626
+ },
1627
+ "reason": {
1628
+ "type": "string"
1629
+ },
1630
+ "amount": {
1631
+ "$ref": "#/components/schemas/NoAmountProvided"
1632
+ },
1633
+ "extensionList": {
1634
+ "$ref": "#/components/schemas/ExtensionList"
1635
+ }
1636
+ },
1637
+ "required": [
1638
+ "transferId",
1639
+ "externalReference",
1640
+ "action",
1641
+ "reason",
1642
+ "amount"
1643
+ ]
1046
1644
  },
1047
- "description": "Successful"
1048
- }
1049
- }
1050
- },
1051
- "put": {
1052
- "summary": "Update participant accounts",
1053
- "operationId": "putParticipantsNameAccountsId",
1054
- "parameters": [
1055
- {
1056
- "type": "string",
1057
- "description": "Name of the participant",
1058
- "minLength": 2,
1059
- "maxLength": 30,
1060
- "name": "name",
1061
- "in": "path",
1062
- "required": true
1063
- },
1064
- {
1065
- "type": "integer",
1066
- "x-constraint": {
1067
- "positive": true
1645
+ "ParticipantIsActive": {
1646
+ "type": "object",
1647
+ "properties": {
1648
+ "isActive": {
1649
+ "type": "boolean",
1650
+ "description": "Participant isActive boolean"
1651
+ }
1652
+ },
1653
+ "required": [
1654
+ "isActive"
1655
+ ]
1068
1656
  },
1069
- "name": "id",
1070
- "in": "path",
1071
- "required": true
1072
- },
1073
- {
1074
- "in": "body",
1075
- "name": "body",
1076
- "schema": {
1077
- "$ref": "#/definitions/CurrencyIsActive"
1078
- }
1079
- }
1080
- ],
1081
- "tags": [
1082
- "participants"
1083
- ],
1084
- "responses": {
1085
- "default": {
1086
- "schema": {
1087
- "type": "string"
1657
+ "ParticipantLimit": {
1658
+ "type": "object",
1659
+ "description": "Participant Limit",
1660
+ "properties": {
1661
+ "type": {
1662
+ "type": "string",
1663
+ "description": "Limit Type"
1664
+ },
1665
+ "value": {
1666
+ "type": "number",
1667
+ "description": "Limit Value"
1668
+ },
1669
+ "alarmPercentage": {
1670
+ "type": "number",
1671
+ "description": "limit threshold alarm percentage value"
1672
+ }
1673
+ },
1674
+ "required": [
1675
+ "type",
1676
+ "value",
1677
+ "alarmPercentage"
1678
+ ]
1088
1679
  },
1089
- "description": "Successful"
1090
- }
1091
- }
1092
- }
1093
- },
1094
- "/participants/{name}/accounts/{id}/transfers/{transferId}": {
1095
- "put": {
1096
- "summary": "Record Funds In or Out of participant account",
1097
- "operationId": "putParticipantsNameAccountsIdTransfersTransferid",
1098
- "parameters": [
1099
- {
1100
- "type": "string",
1101
- "description": "Name of the participant",
1102
- "minLength": 2,
1103
- "maxLength": 30,
1104
- "name": "name",
1105
- "in": "path",
1106
- "required": true
1107
- },
1108
- {
1109
- "type": "integer",
1110
- "x-constraint": {
1111
- "positive": true
1680
+ "PutParticipantsNameLimitsRequest": {
1681
+ "type": "object",
1682
+ "properties": {
1683
+ "currency": {
1684
+ "$ref": "#/components/schemas/Currency"
1685
+ },
1686
+ "limit": {
1687
+ "$ref": "#/components/schemas/ParticipantLimit"
1688
+ }
1689
+ },
1690
+ "required": [
1691
+ "limit"
1692
+ ]
1112
1693
  },
1113
- "name": "id",
1114
- "in": "path",
1115
- "required": true
1116
- },
1117
- {
1118
- "type": "string",
1119
- "x-format": {
1120
- "guid": true
1694
+ "CurrencyIsActive": {
1695
+ "type": "object",
1696
+ "properties": {
1697
+ "isActive": {
1698
+ "type": "boolean",
1699
+ "description": "Participant currency isActive boolean"
1700
+ }
1701
+ },
1702
+ "required": [
1703
+ "isActive"
1704
+ ]
1121
1705
  },
1122
- "name": "transferId",
1123
- "in": "path",
1124
- "required": true
1125
- },
1126
- {
1127
- "in": "body",
1128
- "name": "body",
1129
- "schema": {
1130
- "$ref": "#/definitions/RecordFundsOut"
1131
- }
1132
- }
1133
- ],
1134
- "tags": [
1135
- "participants"
1136
- ],
1137
- "responses": {
1138
- "default": {
1139
- "schema": {
1140
- "type": "string"
1706
+ "RecordFundsOut": {
1707
+ "type": "object",
1708
+ "properties": {
1709
+ "action": {
1710
+ "type": "string",
1711
+ "enum": [
1712
+ "recordFundsOutCommit",
1713
+ "recordFundsOutAbort"
1714
+ ]
1715
+ },
1716
+ "reason": {
1717
+ "type": "string"
1718
+ }
1719
+ },
1720
+ "required": [
1721
+ "reason"
1722
+ ]
1141
1723
  },
1142
- "description": "Successful"
1143
- }
1144
- }
1145
- }
1146
- },
1147
- "/ledgerAccountTypes" : {
1148
- "get" : {
1149
- "summary": "View all ledger account types",
1150
- "tags" : [ "ledgerAccountTypes" ],
1151
- "operationId" : "getLedgerAccountTypes",
1152
- "parameters" : [ ],
1153
- "responses" : {
1154
- "default" : {
1155
- "description" : "Successful",
1156
- "schema" : {
1157
- "type" : "array",
1158
- "items": {
1159
- "$ref" : "#/definitions/LedgerAccountType"
1160
- }
1161
- }
1162
- }
1163
- }
1164
- },
1165
- "post" : {
1166
- "summary": "Create a ledgerAccount type",
1167
- "tags" : [ "ledgerAccountType" ],
1168
- "operationId" : "postLedgerAccountType",
1169
- "parameters" : [ {
1170
- "in" : "body",
1171
- "name" : "body",
1172
- "required" : true,
1173
- "schema" : {
1174
- "$ref" : "#/definitions/LedgerAccountType"
1175
- }
1176
- } ],
1177
- "responses" : {
1178
- "default" : {
1179
- "description" : "Successful",
1180
- "schema" : {
1181
- "type" : "string"
1182
- }
1183
- }
1184
- }
1185
- }
1186
- },
1187
- "/settlementModels" : {
1188
- "get" : {
1189
- "summary": "View all settlement models",
1190
- "tags" : [ "settlementModels" ],
1191
- "operationId" : "getSettlementmodels",
1192
- "parameters" : [ ],
1193
- "responses" : {
1194
- "default" : {
1195
- "description" : "Successful",
1196
- "schema" : {
1197
- "type" : "string"
1198
- }
1199
- }
1200
- }
1201
- },
1202
- "post" : {
1203
- "summary": "Create a settlement model. This will create any associated ledgerAccountTypes for every participant that matches the settlementModel's currency",
1204
- "tags" : [ "settlementModels" ],
1205
- "operationId" : "postSettlementmodels",
1206
- "parameters" : [ {
1207
- "in" : "body",
1208
- "name" : "body",
1209
- "required" : false,
1210
- "schema" : {
1211
- "$ref" : "#/definitions/SettlementModel"
1212
- }
1213
- } ],
1214
- "responses" : {
1215
- "default" : {
1216
- "description" : "Successful",
1217
- "schema" : {
1218
- "type" : "string"
1219
- }
1220
- }
1221
- }
1222
- }
1223
- },
1224
- "/settlementModels/{name}" : {
1225
- "get" : {
1226
- "summary": "View settlement model by name",
1227
- "tags" : [ "settlementModels" ],
1228
- "operationId" : "getSettlementmodelsName",
1229
- "parameters" : [ {
1230
- "name" : "name",
1231
- "in" : "path",
1232
- "description" : "SettlementModel name",
1233
- "required" : true,
1234
- "type" : "string"
1235
- } ],
1236
- "responses" : {
1237
- "default" : {
1238
- "description" : "Successful",
1239
- "schema" : {
1240
- "type" : "string"
1241
- }
1242
- }
1243
- }
1244
- },
1245
- "put" : {
1246
- "summary": "Update a settlement model",
1247
- "tags" : [ "settlementModels" ],
1248
- "operationId" : "putSettlementmodelsName",
1249
- "parameters" : [ {
1250
- "name" : "name",
1251
- "in" : "path",
1252
- "description" : "settlementModel name",
1253
- "required" : true,
1254
- "type" : "string"
1255
- }, {
1256
- "in" : "body",
1257
- "name" : "body",
1258
- "required" : false,
1259
- "schema" : {
1260
- "$ref" : "#/definitions/SettlementModelIsActive"
1261
- }
1262
- } ],
1263
- "responses" : {
1264
- "default" : {
1265
- "description" : "Successful",
1266
- "schema" : {
1267
- "type" : "string"
1268
- }
1269
- }
1270
- }
1271
- }
1272
- },
1273
- "/transactions/{id}": {
1274
- "get": {
1275
- "summary": "Retrieve transaction details by a transferId",
1276
- "tags": [
1277
- "transaction"
1278
- ],
1279
- "operationId": "getTransfer",
1280
- "parameters": [
1281
- {
1282
- "name": "id",
1283
- "in": "path",
1284
- "description": "Transfer Id",
1285
- "required": true,
1286
- "type": "string"
1287
- }
1288
- ],
1289
- "responses": {
1290
- "default": {
1291
- "description": "Successful",
1292
- "schema": {
1293
- "$ref": "#/definitions/GetTransactionResponse"
1724
+ "LedgerAccountType": {
1725
+ "type": "object",
1726
+ "required": [
1727
+ "name",
1728
+ "description",
1729
+ "isActive",
1730
+ "isSettleable"
1731
+ ],
1732
+ "properties": {
1733
+ "name": {
1734
+ "type": "string",
1735
+ "description": "Name of the ledger account type",
1736
+ "minLength": 2,
1737
+ "maxLength": 30,
1738
+ "pattern": "^\\w+$"
1739
+ },
1740
+ "description": {
1741
+ "type": "string",
1742
+ "description": "Description of the ledger account type"
1743
+ },
1744
+ "isActive": {
1745
+ "type": "boolean",
1746
+ "description": "Determines whether the ledger account is active"
1747
+ },
1748
+ "isSettleable": {
1749
+ "type": "boolean",
1750
+ "description": "Determines whether the ledger account is settleable"
1751
+ }
1752
+ }
1753
+ },
1754
+ "SettlementModel": {
1755
+ "type": "object",
1756
+ "required": [
1757
+ "autoPositionReset",
1758
+ "ledgerAccountType",
1759
+ "settlementAccountType",
1760
+ "name",
1761
+ "requireLiquidityCheck",
1762
+ "settlementDelay",
1763
+ "settlementGranularity",
1764
+ "settlementInterchange",
1765
+ "currency"
1766
+ ],
1767
+ "properties": {
1768
+ "name": {
1769
+ "type": "string",
1770
+ "description": "Name of the settlement model",
1771
+ "minLength": 2,
1772
+ "maxLength": 30,
1773
+ "x-format": {
1774
+ "alphanum": true
1775
+ }
1776
+ },
1777
+ "settlementGranularity": {
1778
+ "type": "string",
1779
+ "description": "Granularity type for the settlement model GROSS or NET",
1780
+ "enum": [
1781
+ "GROSS",
1782
+ "NET"
1783
+ ]
1784
+ },
1785
+ "settlementInterchange": {
1786
+ "type": "string",
1787
+ "description": "Interchange type for the settlement model BILATERAL or MULTILATERAL",
1788
+ "enum": [
1789
+ "BILATERAL",
1790
+ "MULTILATERAL"
1791
+ ]
1792
+ },
1793
+ "settlementDelay": {
1794
+ "type": "string",
1795
+ "description": "Delay type for the settlement model IMMEDIATE or DEFERRED",
1796
+ "enum": [
1797
+ "DEFERRED",
1798
+ "IMMEDIATE"
1799
+ ]
1800
+ },
1801
+ "currency": {
1802
+ "$ref": "#/components/schemas/Currency"
1803
+ },
1804
+ "requireLiquidityCheck": {
1805
+ "type": "boolean",
1806
+ "description": "Liquidity Check boolean"
1807
+ },
1808
+ "ledgerAccountType": {
1809
+ "type": "string",
1810
+ "description": "Account type for the settlement model",
1811
+ "enum": [
1812
+ "INTERCHANGE_FEE",
1813
+ "POSITION"
1814
+ ]
1815
+ },
1816
+ "settlementAccountType": {
1817
+ "type": "string",
1818
+ "description": "Account type into which the settlement should be settled into : POSITION, SETTLEMENT or INTERCHANGE_FEE_SETTLEMENT"
1819
+ },
1820
+ "autoPositionReset": {
1821
+ "type": "boolean",
1822
+ "description": "Automatic position reset setting, which determines whether to execute the settlement transfer or not"
1823
+ }
1824
+ }
1825
+ },
1826
+ "SettlementModelIsActive": {
1827
+ "type": "object",
1828
+ "required": [
1829
+ "isActive"
1830
+ ],
1831
+ "properties": {
1832
+ "isActive": {
1833
+ "type": "boolean",
1834
+ "description": "settlementModel isActive boolean"
1835
+ }
1836
+ }
1837
+ },
1838
+ "GetTransactionResponse": {
1839
+ "title": "GetTransactionResponse",
1840
+ "type": "object",
1841
+ "description": "GET /transaction/{id} response object",
1842
+ "properties": {
1843
+ "quoteId": {
1844
+ "$ref": "#/components/schemas/QuoteId"
1845
+ },
1846
+ "transactionId": {
1847
+ "$ref": "#/components/schemas/TransactionId"
1848
+ },
1849
+ "transactionRequestId": {
1850
+ "type": "string",
1851
+ "description": "Identifies an optional previously-sent transaction request."
1852
+ },
1853
+ "payee": {
1854
+ "$ref": "#/components/schemas/Party"
1855
+ },
1856
+ "payer": {
1857
+ "$ref": "#/components/schemas/Party"
1858
+ },
1859
+ "amount": {
1860
+ "$ref": "#/components/schemas/Money"
1861
+ },
1862
+ "transactionType": {
1863
+ "$ref": "#/components/schemas/TransactionType"
1864
+ },
1865
+ "note": {
1866
+ "type": "string",
1867
+ "description": "A memo that will be attached to the transaction."
1868
+ },
1869
+ "extensionList": {
1870
+ "$ref": "#/components/schemas/ExtensionList"
1871
+ }
1872
+ }
1873
+ },
1874
+ "QuoteId": {
1875
+ "title": "QuoteId",
1876
+ "type": "string",
1877
+ "minLength": 1,
1878
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
1879
+ "description": "Quote Identifier. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to RFC 4122, that is restricted by a regular expression for interoperability reasons. An UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘). A minLength of 1 has been specified due to the regex not being validated on empty strings, this should be removed once the enjoi module has been fixed."
1880
+ },
1881
+ "TransactionId": {
1882
+ "title": "TransactionId",
1883
+ "type": "string",
1884
+ "minLength": 1,
1885
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
1886
+ "description": "Transaction Identifier. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to RFC 4122, that is restricted by a regular expression for interoperability reasons. An UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘). A minLength of 1 has been specified due to the regex not being validated on empty strings, this should be removed once the enjoi module has been fixed."
1887
+ },
1888
+ "Party": {
1889
+ "title": "Party",
1890
+ "type": "object",
1891
+ "description": "Data model for the complex type Party.",
1892
+ "properties": {
1893
+ "partyIdInfo": {
1894
+ "$ref": "#/components/schemas/PartyIdInfo"
1895
+ },
1896
+ "merchantClassificationCode": {
1897
+ "type": "string",
1898
+ "description": "Used in the context of Payee Information, where the Payee happens to be a merchant accepting merchant payments."
1899
+ },
1900
+ "name": {
1901
+ "type": "string",
1902
+ "description": "Display name of the Party, could be a real name or a nick name."
1903
+ },
1904
+ "personalInfo": {
1905
+ "$ref": "#/components/schemas/PartyPersonalInfo"
1906
+ }
1907
+ },
1908
+ "required": [
1909
+ "partyIdInfo"
1910
+ ]
1911
+ },
1912
+ "PartyIdInfo": {
1913
+ "title": "PartyIdInfo",
1914
+ "type": "object",
1915
+ "description": "Data model for the complex type PartyIdInfo.",
1916
+ "properties": {
1917
+ "partyIdType": {
1918
+ "$ref": "#/components/schemas/PartyIdType"
1919
+ },
1920
+ "partyIdentifier": {
1921
+ "$ref": "#/components/schemas/PartyIdentifier"
1922
+ },
1923
+ "partySubIdOrType": {
1924
+ "type": "string",
1925
+ "description": "A sub-identifier or sub-type for the Party."
1926
+ },
1927
+ "fspId": {
1928
+ "type": "string",
1929
+ "description": "FSP id (if known)"
1930
+ },
1931
+ "extensionList": {
1932
+ "$ref": "#/components/schemas/ExtensionList"
1933
+ }
1934
+ },
1935
+ "required": [
1936
+ "partyIdType",
1937
+ "partyIdentifier"
1938
+ ]
1939
+ },
1940
+ "PartyIdType": {
1941
+ "title": "PartyIdTypeEnum",
1942
+ "type": "string",
1943
+ "enum": [
1944
+ "MSISDN",
1945
+ "EMAIL",
1946
+ "PERSONAL_ID",
1947
+ "BUSINESS",
1948
+ "DEVICE",
1949
+ "ACCOUNT_ID",
1950
+ "IBAN",
1951
+ "ALIAS"
1952
+ ],
1953
+ "description": "Below are the allowed values for the enumeration - MSISDN An MSISDN (Mobile Station International Subscriber Directory Number, that is, the phone number) is used as reference to a participant. The MSISDN identifier should be in international format according to the ITU-T E.164 standard. Optionally, the MSISDN may be prefixed by a single plus sign, indicating the international prefix. - EMAIL An email is used as reference to a participant. The format of the email should be according to the informational RFC 3696. - PERSONAL_ID A personal identifier is used as reference to a participant. Examples of personal identification are passport number, birth certificate number, and national registration number. The identifier number is added in the PartyIdentifier element. The personal identifier type is added in the PartySubIdOrType element. - BUSINESS A specific Business (for example, an organization or a company) is used as reference to a participant. The BUSINESS identifier can be in any format. To make a transaction connected to a specific username or bill number in a Business, the PartySubIdOrType element should be used. - DEVICE A specific device (for example, a POS or ATM) id connected to a specific business or organization is used as reference to a Party. For referencing a specific device under a specific business or organization, use the PartySubIdOrType element. - ACCOUNT_ID A bank account number or FSP account id should be used as reference to a participant. The ACCOUNT_ID identifier can be in any format, as formats can greatly differ depending on country and FSP. - IBAN A bank account number or FSP account id is used as reference to a participant. The IBAN identifier can consist of up to 34 alphanumeric characters and should be entered without whitespace. - ALIAS An alias is used as reference to a participant. The alias should be created in the FSP as an alternative reference to an account owner. Another example of an alias is a username in the FSP system. The ALIAS identifier can be in any format. It is also possible to use the PartySubIdOrType element for identifying an account under an Alias defined by the PartyIdentifier."
1954
+ },
1955
+ "PartyIdentifier": {
1956
+ "title": "PartyIdentifier",
1957
+ "type": "string",
1958
+ "minLength": 1,
1959
+ "maxLength": 128,
1960
+ "description": "Identifier of the Party."
1961
+ },
1962
+ "ExtensionList": {
1963
+ "title": "ExtensionList",
1964
+ "type": "object",
1965
+ "description": "Data model for the complex type ExtensionList",
1966
+ "properties": {
1967
+ "extension": {
1968
+ "type": "array",
1969
+ "items": {
1970
+ "$ref": "#/components/schemas/Extension"
1971
+ },
1972
+ "minItems": 1,
1973
+ "maxItems": 16,
1974
+ "description": "Number of Extension elements"
1975
+ }
1976
+ },
1977
+ "required": [
1978
+ "extension"
1979
+ ]
1980
+ },
1981
+ "Extension": {
1982
+ "title": "Extension",
1983
+ "type": "object",
1984
+ "description": "Data model for the complex type Extension",
1985
+ "properties": {
1986
+ "key": {
1987
+ "type": "string",
1988
+ "description": "Extension key."
1989
+ },
1990
+ "value": {
1991
+ "type": "string",
1992
+ "description": "Extension value."
1993
+ }
1994
+ },
1995
+ "required": [
1996
+ "key",
1997
+ "value"
1998
+ ]
1999
+ },
2000
+ "PartyPersonalInfo": {
2001
+ "title": "PartyPersonalInfo",
2002
+ "type": "object",
2003
+ "description": "Data model for the complex type PartyPersonalInfo.",
2004
+ "properties": {
2005
+ "complexName": {
2006
+ "$ref": "#/components/schemas/PartyComplexName"
2007
+ },
2008
+ "dateOfBirth": {
2009
+ "type": "string",
2010
+ "description": "Date of birth for the Party."
2011
+ }
2012
+ }
2013
+ },
2014
+ "PartyComplexName": {
2015
+ "title": "PartyComplexName",
2016
+ "type": "object",
2017
+ "description": "Data model for the complex type PartyComplexName.",
2018
+ "properties": {
2019
+ "firstName": {
2020
+ "type": "string",
2021
+ "description": "Party’s first name."
2022
+ },
2023
+ "middleName": {
2024
+ "type": "string",
2025
+ "description": "Party’s middle name."
2026
+ },
2027
+ "lastName": {
2028
+ "type": "string",
2029
+ "description": "Party’s last name."
2030
+ }
2031
+ }
2032
+ },
2033
+ "TransactionType": {
2034
+ "title": "TransactionType",
2035
+ "type": "object",
2036
+ "description": "Data model for the complex type TransactionType.",
2037
+ "properties": {
2038
+ "scenario": {
2039
+ "type": "string",
2040
+ "description": "Deposit, withdrawal, refund, …"
2041
+ },
2042
+ "subScenario": {
2043
+ "type": "string",
2044
+ "description": "Possible sub-scenario, defined locally within the scheme."
2045
+ },
2046
+ "initiator": {
2047
+ "type": "string",
2048
+ "description": "Who is initiating the transaction - Payer or Payee"
2049
+ },
2050
+ "initiatorType": {
2051
+ "type": "string",
2052
+ "description": "Consumer, agent, business, …"
2053
+ },
2054
+ "refundInfo": {
2055
+ "$ref": "#/components/schemas/Refund"
2056
+ },
2057
+ "balanceOfPayments": {
2058
+ "type": "string",
2059
+ "description": "Balance of Payments code."
2060
+ }
2061
+ },
2062
+ "required": [
2063
+ "scenario",
2064
+ "initiator",
2065
+ "initiatorType"
2066
+ ]
2067
+ },
2068
+ "Refund": {
2069
+ "title": "Refund",
2070
+ "type": "object",
2071
+ "description": "Data model for the complex type Refund.",
2072
+ "properties": {
2073
+ "originalTransactionId": {
2074
+ "type": "string",
2075
+ "description": "Reference to the original transaction id that is requested to be refunded."
2076
+ },
2077
+ "refundReason": {
2078
+ "type": "string",
2079
+ "description": "Free text indicating the reason for the refund."
2080
+ }
2081
+ },
2082
+ "required": [
2083
+ "originalTransactionId"
2084
+ ]
2085
+ },
2086
+ "Money": {
2087
+ "title": "Money",
2088
+ "type": "object",
2089
+ "description": "Data model for the complex type Money.",
2090
+ "properties": {
2091
+ "currency": {
2092
+ "$ref": "#/components/schemas/Currency"
2093
+ },
2094
+ "amount": {
2095
+ "$ref": "#/components/schemas/Amount"
2096
+ }
2097
+ },
2098
+ "required": [
2099
+ "currency",
2100
+ "amount"
2101
+ ]
2102
+ },
2103
+ "Currency": {
2104
+ "title": "CurrencyEnum",
2105
+ "description": "The currency codes defined in ISO 4217 as three-letter alphabetic codes are used as the standard naming representation for currencies.",
2106
+ "type": "string",
2107
+ "minLength": 3,
2108
+ "maxLength": 3,
2109
+ "enum": [
2110
+ "AED",
2111
+ "AFN",
2112
+ "ALL",
2113
+ "AMD",
2114
+ "ANG",
2115
+ "AOA",
2116
+ "ARS",
2117
+ "AUD",
2118
+ "AWG",
2119
+ "AZN",
2120
+ "BAM",
2121
+ "BBD",
2122
+ "BDT",
2123
+ "BGN",
2124
+ "BHD",
2125
+ "BIF",
2126
+ "BMD",
2127
+ "BND",
2128
+ "BOB",
2129
+ "BRL",
2130
+ "BSD",
2131
+ "BTN",
2132
+ "BWP",
2133
+ "BYN",
2134
+ "BZD",
2135
+ "CAD",
2136
+ "CDF",
2137
+ "CHF",
2138
+ "CLP",
2139
+ "CNY",
2140
+ "COP",
2141
+ "CRC",
2142
+ "CUC",
2143
+ "CUP",
2144
+ "CVE",
2145
+ "CZK",
2146
+ "DJF",
2147
+ "DKK",
2148
+ "DOP",
2149
+ "DZD",
2150
+ "EGP",
2151
+ "ERN",
2152
+ "ETB",
2153
+ "EUR",
2154
+ "FJD",
2155
+ "FKP",
2156
+ "GBP",
2157
+ "GEL",
2158
+ "GGP",
2159
+ "GHS",
2160
+ "GIP",
2161
+ "GMD",
2162
+ "GNF",
2163
+ "GTQ",
2164
+ "GYD",
2165
+ "HKD",
2166
+ "HNL",
2167
+ "HRK",
2168
+ "HTG",
2169
+ "HUF",
2170
+ "IDR",
2171
+ "ILS",
2172
+ "IMP",
2173
+ "INR",
2174
+ "IQD",
2175
+ "IRR",
2176
+ "ISK",
2177
+ "JEP",
2178
+ "JMD",
2179
+ "JOD",
2180
+ "JPY",
2181
+ "KES",
2182
+ "KGS",
2183
+ "KHR",
2184
+ "KMF",
2185
+ "KPW",
2186
+ "KRW",
2187
+ "KWD",
2188
+ "KYD",
2189
+ "KZT",
2190
+ "LAK",
2191
+ "LBP",
2192
+ "LKR",
2193
+ "LRD",
2194
+ "LSL",
2195
+ "LYD",
2196
+ "MAD",
2197
+ "MDL",
2198
+ "MGA",
2199
+ "MKD",
2200
+ "MMK",
2201
+ "MNT",
2202
+ "MOP",
2203
+ "MRO",
2204
+ "MUR",
2205
+ "MVR",
2206
+ "MWK",
2207
+ "MXN",
2208
+ "MYR",
2209
+ "MZN",
2210
+ "NAD",
2211
+ "NGN",
2212
+ "NIO",
2213
+ "NOK",
2214
+ "NPR",
2215
+ "NZD",
2216
+ "OMR",
2217
+ "PAB",
2218
+ "PEN",
2219
+ "PGK",
2220
+ "PHP",
2221
+ "PKR",
2222
+ "PLN",
2223
+ "PYG",
2224
+ "QAR",
2225
+ "RON",
2226
+ "RSD",
2227
+ "RUB",
2228
+ "RWF",
2229
+ "SAR",
2230
+ "SBD",
2231
+ "SCR",
2232
+ "SDG",
2233
+ "SEK",
2234
+ "SGD",
2235
+ "SHP",
2236
+ "SLL",
2237
+ "SOS",
2238
+ "SPL",
2239
+ "SRD",
2240
+ "STD",
2241
+ "SVC",
2242
+ "SYP",
2243
+ "SZL",
2244
+ "THB",
2245
+ "TJS",
2246
+ "TMT",
2247
+ "TND",
2248
+ "TOP",
2249
+ "TRY",
2250
+ "TTD",
2251
+ "TVD",
2252
+ "TWD",
2253
+ "TZS",
2254
+ "UAH",
2255
+ "UGX",
2256
+ "USD",
2257
+ "UYU",
2258
+ "UZS",
2259
+ "VEF",
2260
+ "VND",
2261
+ "VUV",
2262
+ "WST",
2263
+ "XAF",
2264
+ "XCD",
2265
+ "XDR",
2266
+ "XOF",
2267
+ "XPF",
2268
+ "YER",
2269
+ "ZAR",
2270
+ "ZMW",
2271
+ "ZWD"
2272
+ ]
2273
+ },
2274
+ "Amount": {
2275
+ "title": "Amount",
2276
+ "type": "string",
2277
+ "pattern": "^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$",
2278
+ "description": "The API data type Amount is a JSON String in a canonical format that is restricted by a regular expression for interoperability reasons. This pattern does not allow any trailing zeroes at all, but allows an amount without a minor currency unit. It also only allows four digits in the minor currency unit; a negative value is not allowed. Using more than 18 digits in the major currency unit is not allowed."
1294
2279
  }
1295
- }
1296
2280
  }
1297
- }
1298
- }
1299
- },
1300
- "definitions": {
1301
- "PostParticipantsRequest": {
1302
- "type": "object",
1303
- "properties": {
1304
- "name": {
1305
- "type": "string",
1306
- "description": "Name of the participant",
1307
- "minLength": 2,
1308
- "maxLength": 30,
1309
- "x-format": {
1310
- "alphanum": true
1311
- }
1312
- },
1313
- "currency": {
1314
- "type": "string",
1315
- "description": "Currency code",
1316
- "$ref" : "#/definitions/Currency"
1317
-
1318
- },
1319
- "isProxy": {
1320
- "type": "boolean",
1321
- "description": "Is the participant a proxy"
1322
- }
1323
- },
1324
- "required": [
1325
- "name"
1326
- ]
1327
- },
1328
- "PostParticipantsNameEndpointsRequest": {
1329
- "type": "object",
1330
- "properties": {
1331
- "type": {
1332
- "type": "string",
1333
- "description": "Endpoint Type"
1334
- },
1335
- "value": {
1336
- "type": "string",
1337
- "description": "Endpoint Value"
1338
- }
1339
- },
1340
- "required": [
1341
- "type",
1342
- "value"
1343
- ]
1344
- },
1345
- "Limit": {
1346
- "type": "object",
1347
- "description": "Participant Limit",
1348
- "properties": {
1349
- "type": {
1350
- "type": "string",
1351
- "description": "Limit Type"
1352
- },
1353
- "value": {
1354
- "type": "number",
1355
- "description": "Limit Value",
1356
- "enum": [
1357
- 0
1358
- ],
1359
- "x-constraint": {
1360
- "positive": true
1361
- }
1362
- }
1363
- },
1364
- "required": [
1365
- "type",
1366
- "value"
1367
- ]
1368
- },
1369
- "PostInitialPositionAndLimitsRequest": {
1370
- "type": "object",
1371
- "properties": {
1372
- "currency": {
1373
- "type": "string",
1374
- "description": "Currency code",
1375
- "$ref": "#/definitions/Currency"
1376
- },
1377
- "limit": {
1378
- "$ref": "#/definitions/Limit"
1379
- },
1380
- "initialPosition": {
1381
- "type": "number",
1382
- "description": "Initial Position Value"
1383
- }
1384
- },
1385
- "required": [
1386
- "limit"
1387
- ]
1388
- },
1389
- "PostParticipantsNameAccountsRequest": {
1390
- "type": "object",
1391
- "properties": {
1392
- "currency": {
1393
- "$ref": "#/definitions/Currency"
1394
- },
1395
- "type": {
1396
- "type": "string",
1397
- "description": "Account type"
1398
- }
1399
- },
1400
- "required": [
1401
- "type"
1402
- ]
1403
- },
1404
- "NoAmountProvided": {
1405
- "type": "object",
1406
- "properties": {
1407
- "amount": {
1408
- "type": "number",
1409
- "x-constraint": {
1410
- "precision": 4,
1411
- "positive": true
1412
- }
1413
- },
1414
- "currency": {
1415
- "type": "string",
1416
- "description": "Currency code",
1417
- "$ref": "#/definitions/Currency"
1418
- }
1419
- },
1420
- "required": [
1421
- "amount"
1422
- ]
1423
- },
1424
- "Participants": {
1425
- "type": "object",
1426
- "properties": {
1427
- "transferId": {
1428
- "type": "string",
1429
- "x-format": {
1430
- "guid": true
1431
- }
1432
- },
1433
- "externalReference": {
1434
- "type": "string"
1435
- },
1436
- "action": {
1437
- "type": "string",
1438
- "enum": [
1439
- "recordFundsIn",
1440
- "recordFundsOutPrepareReserve"
1441
- ]
1442
- },
1443
- "reason": {
1444
- "type": "string"
1445
- },
1446
- "amount": {
1447
- "$ref": "#/definitions/NoAmountProvided"
1448
- },
1449
- "extensionList": {
1450
- "$ref": "#/definitions/ExtensionList"
1451
- }
1452
- },
1453
- "required": [
1454
- "transferId",
1455
- "externalReference",
1456
- "action",
1457
- "reason",
1458
- "amount"
1459
- ]
1460
- },
1461
- "ParticipantIsActive": {
1462
- "type": "object",
1463
- "properties": {
1464
- "isActive": {
1465
- "type": "boolean",
1466
- "description": "Participant isActive boolean"
1467
- }
1468
- },
1469
- "required": [
1470
- "isActive"
1471
- ]
1472
- },
1473
- "ParticipantLimit": {
1474
- "type": "object",
1475
- "description": "Participant Limit",
1476
- "properties": {
1477
- "type": {
1478
- "type": "string",
1479
- "description": "Limit Type"
1480
- },
1481
- "value": {
1482
- "type": "number",
1483
- "description": "Limit Value"
1484
- },
1485
- "alarmPercentage": {
1486
- "type": "number",
1487
- "description": "limit threshold alarm percentage value"
1488
- }
1489
- },
1490
- "required": [
1491
- "type",
1492
- "value",
1493
- "alarmPercentage"
1494
- ]
1495
- },
1496
- "PutParticipantsNameLimitsRequest": {
1497
- "type": "object",
1498
- "properties": {
1499
- "currency": {
1500
- "type": "string",
1501
- "description": "Currency code",
1502
- "$ref": "#/definitions/Currency"
1503
- },
1504
- "limit": {
1505
- "$ref": "#/definitions/ParticipantLimit"
1506
- }
1507
- },
1508
- "required": [
1509
- "limit"
1510
- ]
1511
- },
1512
- "CurrencyIsActive": {
1513
- "type": "object",
1514
- "properties": {
1515
- "isActive": {
1516
- "type": "boolean",
1517
- "description": "Participant currency isActive boolean"
1518
- }
1519
- },
1520
- "required": [
1521
- "isActive"
1522
- ]
1523
- },
1524
- "RecordFundsOut": {
1525
- "type": "object",
1526
- "properties": {
1527
- "action": {
1528
- "type": "string",
1529
- "enum": [
1530
- "recordFundsOutCommit",
1531
- "recordFundsOutAbort"
1532
- ]
1533
- },
1534
- "reason": {
1535
- "type": "string"
1536
- }
1537
- },
1538
- "required": [
1539
- "reason"
1540
- ]
1541
- },
1542
- "LedgerAccountType": {
1543
- "type" : "object",
1544
- "required" : [ "name", "description", "isActive", "isSettleable" ],
1545
- "properties" : {
1546
- "name" : {
1547
- "type" : "string",
1548
- "description" : "Name of the ledger account type",
1549
- "minLength" : 2,
1550
- "maxLength" : 30,
1551
- "pattern" : "^\\w+$"
1552
- },
1553
- "description" : {
1554
- "type" : "string",
1555
- "description" : "Description of the ledger account type"
1556
- },
1557
- "isActive" : {
1558
- "type" : "boolean",
1559
- "description" : "Determines whether the ledger account is active"
1560
- },
1561
- "isSettleable" : {
1562
- "type" : "boolean",
1563
- "description" : "Determines whether the ledger account is settleable"
1564
- }
1565
- }
1566
- },
1567
- "SettlementModel" : {
1568
- "type" : "object",
1569
- "required" : [ "autoPositionReset", "ledgerAccountType", "settlementAccountType", "name", "requireLiquidityCheck", "settlementDelay", "settlementGranularity", "settlementInterchange", "currency" ],
1570
- "properties" : {
1571
- "name" : {
1572
- "type" : "string",
1573
- "description" : "Name of the settlement model",
1574
- "minLength" : 2,
1575
- "maxLength" : 30,
1576
- "x-format" : {
1577
- "alphanum" : true
1578
- }
1579
- },
1580
- "settlementGranularity" : {
1581
- "type" : "string",
1582
- "description" : "Granularity type for the settlement model GROSS or NET",
1583
- "enum" : [ "GROSS", "NET" ]
1584
- },
1585
- "settlementInterchange" : {
1586
- "type" : "string",
1587
- "description" : "Interchange type for the settlement model BILATERAL or MULTILATERAL",
1588
- "enum" : [ "BILATERAL", "MULTILATERAL" ]
1589
- },
1590
- "settlementDelay" : {
1591
- "type" : "string",
1592
- "description" : "Delay type for the settlement model IMMEDIATE or DEFERRED",
1593
- "enum" : [ "DEFERRED", "IMMEDIATE" ]
1594
- },
1595
- "currency" : {
1596
- "$ref": "#/definitions/Currency",
1597
- "description" : "Currency code"
1598
- },
1599
- "requireLiquidityCheck" : {
1600
- "type" : "boolean",
1601
- "description" : "Liquidity Check boolean"
1602
- },
1603
- "ledgerAccountType" : {
1604
- "type" : "string",
1605
- "description" : "Account type for the settlement model",
1606
- "enum" : [ "INTERCHANGE_FEE", "POSITION" ]
1607
- },
1608
- "settlementAccountType" : {
1609
- "type" : "string",
1610
- "description" : "Account type into which the settlement should be settled into : POSITION, SETTLEMENT or INTERCHANGE_FEE_SETTLEMENT"
1611
- },
1612
- "autoPositionReset" : {
1613
- "type" : "boolean",
1614
- "description" : "Automatic position reset setting, which determines whether to execute the settlement transfer or not"
1615
- }
1616
- }
1617
- },
1618
- "SettlementModelIsActive" : {
1619
- "type" : "object",
1620
- "required" : [ "isActive" ],
1621
- "properties" : {
1622
- "isActive" : {
1623
- "type" : "boolean",
1624
- "description" : "settlementModel isActive boolean"
1625
- }
1626
- }
1627
- },
1628
- "GetTransactionResponse": {
1629
- "title": "GetTransactionResponse",
1630
- "type": "object",
1631
- "description": "GET /transaction/{id} response object",
1632
- "properties": {
1633
- "quoteId": {
1634
- "$ref": "#/definitions/QuoteId",
1635
- "description": "Common id between the FSPs for the quote object, decided by the Payer FSP. The id should be reused for resends of the same quote for a transaction. A new id should be generated for each new quote for a transaction."
1636
- },
1637
- "transactionId": {
1638
- "$ref": "#/definitions/TransactionId",
1639
- "description": "Common id (decided by the Payer FSP) between the FSPs for the future transaction object. The actual transaction will be created as part of a successful transfer process. The id should be reused for resends of the same quote for a transaction. A new id should be generated for each new quote for a transaction."
1640
- },
1641
- "transactionRequestId": {
1642
- "type": "string",
1643
- "description": "Identifies an optional previously-sent transaction request."
1644
- },
1645
- "payee": {
1646
- "$ref": "#/definitions/Party",
1647
- "description": "Information about the Payee in the proposed financial transaction."
1648
- },
1649
- "payer": {
1650
- "$ref": "#/definitions/Party",
1651
- "description": "Information about the Payer in the proposed financial transaction."
1652
- },
1653
- "amount": {
1654
- "$ref": "#/definitions/Money",
1655
- "description": "Depending on amountType. If SEND - The amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees. The amount is updated by each participating entity in the transaction. If RECEIVE - The amount the Payee should receive, that is, the amount that should be sent to the receiver exclusive any fees. The amount is not updated by any of the participating entities."
1656
- },
1657
- "transactionType": {
1658
- "$ref": "#/definitions/TransactionType",
1659
- "description": "Type of transaction for which the quote is requested."
1660
- },
1661
- "note": {
1662
- "type": "string",
1663
- "description": "A memo that will be attached to the transaction."
1664
- },
1665
- "extensionList": {
1666
- "$ref": "#/definitions/ExtensionList",
1667
- "description": "Optional extension, specific to deployment."
1668
- }
1669
- }
1670
- },
1671
- "QuoteId": {
1672
- "title": "QuoteId",
1673
- "type": "string",
1674
- "minLength": 1,
1675
- "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
1676
- "description": "Quote Identifier. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to RFC 4122, that is restricted by a regular expression for interoperability reasons. An UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘). A minLength of 1 has been specified due to the regex not being validated on empty strings, this should be removed once the enjoi module has been fixed."
1677
- },
1678
- "TransactionId": {
1679
- "title": "TransactionId",
1680
- "type": "string",
1681
- "minLength": 1,
1682
- "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
1683
- "description": "Transaction Identifier. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to RFC 4122, that is restricted by a regular expression for interoperability reasons. An UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘). A minLength of 1 has been specified due to the regex not being validated on empty strings, this should be removed once the enjoi module has been fixed."
1684
- },
1685
- "Party": {
1686
- "title": "Party",
1687
- "type": "object",
1688
- "description": "Data model for the complex type Party.",
1689
- "properties": {
1690
- "partyIdInfo": {
1691
- "$ref": "#/definitions/PartyIdInfo",
1692
- "description": "Party Id type, id, sub id or type, and FSP Id."
1693
- },
1694
- "merchantClassificationCode": {
1695
- "type": "string",
1696
- "description": "Used in the context of Payee Information, where the Payee happens to be a merchant accepting merchant payments."
1697
- },
1698
- "name": {
1699
- "type": "string",
1700
- "description": "Display name of the Party, could be a real name or a nick name."
1701
- },
1702
- "personalInfo": {
1703
- "$ref": "#/definitions/PartyPersonalInfo",
1704
- "description": "Personal information used to verify identity of Party such as first, middle, last name and date of birth."
1705
- }
1706
- },
1707
- "required": [
1708
- "partyIdInfo"
1709
- ]
1710
- },
1711
- "PartyIdInfo": {
1712
- "title": "PartyIdInfo",
1713
- "type": "object",
1714
- "description": "Data model for the complex type PartyIdInfo.",
1715
- "properties": {
1716
- "partyIdType": {
1717
- "$ref": "#/definitions/PartyIdType",
1718
- "description": "Type of the identifier."
1719
- },
1720
- "partyIdentifier": {
1721
- "$ref": "#/definitions/PartyIdentifier",
1722
- "description": "An identifier for the Party."
1723
- },
1724
- "partySubIdOrType": {
1725
- "type": "string",
1726
- "description": "A sub-identifier or sub-type for the Party."
1727
- },
1728
- "fspId": {
1729
- "type": "string",
1730
- "description": "FSP id (if known)"
1731
- },
1732
- "extensionList": {
1733
- "$ref": "#/definitions/ExtensionList",
1734
- "description": "Optional extension, specific to deployment."
1735
- }
1736
- },
1737
- "required": [
1738
- "partyIdType",
1739
- "partyIdentifier"
1740
- ]
1741
- },
1742
- "PartyIdType": {
1743
- "title": "PartyIdTypeEnum",
1744
- "type": "string",
1745
- "enum": [
1746
- "MSISDN",
1747
- "EMAIL",
1748
- "PERSONAL_ID",
1749
- "BUSINESS",
1750
- "DEVICE",
1751
- "ACCOUNT_ID",
1752
- "IBAN",
1753
- "ALIAS"
1754
- ],
1755
- "description": "Below are the allowed values for the enumeration - MSISDN An MSISDN (Mobile Station International Subscriber Directory Number, that is, the phone number) is used as reference to a participant. The MSISDN identifier should be in international format according to the ITU-T E.164 standard. Optionally, the MSISDN may be prefixed by a single plus sign, indicating the international prefix. - EMAIL An email is used as reference to a participant. The format of the email should be according to the informational RFC 3696. - PERSONAL_ID A personal identifier is used as reference to a participant. Examples of personal identification are passport number, birth certificate number, and national registration number. The identifier number is added in the PartyIdentifier element. The personal identifier type is added in the PartySubIdOrType element. - BUSINESS A specific Business (for example, an organization or a company) is used as reference to a participant. The BUSINESS identifier can be in any format. To make a transaction connected to a specific username or bill number in a Business, the PartySubIdOrType element should be used. - DEVICE A specific device (for example, a POS or ATM) id connected to a specific business or organization is used as reference to a Party. For referencing a specific device under a specific business or organization, use the PartySubIdOrType element. - ACCOUNT_ID A bank account number or FSP account id should be used as reference to a participant. The ACCOUNT_ID identifier can be in any format, as formats can greatly differ depending on country and FSP. - IBAN A bank account number or FSP account id is used as reference to a participant. The IBAN identifier can consist of up to 34 alphanumeric characters and should be entered without whitespace. - ALIAS An alias is used as reference to a participant. The alias should be created in the FSP as an alternative reference to an account owner. Another example of an alias is a username in the FSP system. The ALIAS identifier can be in any format. It is also possible to use the PartySubIdOrType element for identifying an account under an Alias defined by the PartyIdentifier."
1756
- },
1757
- "PartyIdentifier": {
1758
- "title": "PartyIdentifier",
1759
- "type": "string",
1760
- "minLength": 1,
1761
- "maxLength": 128,
1762
- "description": "Identifier of the Party."
1763
- },
1764
- "ExtensionList": {
1765
- "title": "ExtensionList",
1766
- "type": "object",
1767
- "description": "Data model for the complex type ExtensionList",
1768
- "properties": {
1769
- "extension": {
1770
- "type": "array",
1771
- "items": {
1772
- "$ref": "#/definitions/Extension"
1773
- },
1774
- "minItems": 1,
1775
- "maxItems": 16,
1776
- "description": "Number of Extension elements"
1777
- }
1778
- },
1779
- "required": [
1780
- "extension"
1781
- ]
1782
- },
1783
- "Extension": {
1784
- "title": "Extension",
1785
- "type": "object",
1786
- "description": "Data model for the complex type Extension",
1787
- "properties": {
1788
- "key": {
1789
- "type": "string",
1790
- "description": "Extension key."
1791
- },
1792
- "value": {
1793
- "type": "string",
1794
- "description": "Extension value."
1795
- }
1796
- },
1797
- "required": [
1798
- "key",
1799
- "value"
1800
- ]
1801
- },
1802
- "PartyPersonalInfo": {
1803
- "title": "PartyPersonalInfo",
1804
- "type": "object",
1805
- "description": "Data model for the complex type PartyPersonalInfo.",
1806
- "properties": {
1807
- "complexName": {
1808
- "$ref": "#/definitions/PartyComplexName",
1809
- "description": "First, middle and last name for the Party."
1810
- },
1811
- "dateOfBirth": {
1812
- "type": "string",
1813
- "description": "Date of birth for the Party."
1814
- }
1815
- }
1816
- },
1817
- "PartyComplexName": {
1818
- "title": "PartyComplexName",
1819
- "type": "object",
1820
- "description": "Data model for the complex type PartyComplexName.",
1821
- "properties": {
1822
- "firstName": {
1823
- "type": "string",
1824
- "description": "Party’s first name."
1825
- },
1826
- "middleName": {
1827
- "type": "string",
1828
- "description": "Party’s middle name."
1829
- },
1830
- "lastName": {
1831
- "type": "string",
1832
- "description": "Party’s last name."
1833
- }
1834
- }
1835
- },
1836
- "TransactionType": {
1837
- "title": "TransactionType",
1838
- "type": "object",
1839
- "description": "Data model for the complex type TransactionType.",
1840
- "properties": {
1841
- "scenario": {
1842
- "type": "string",
1843
- "description": "Deposit, withdrawal, refund, …"
1844
- },
1845
- "subScenario": {
1846
- "type": "string",
1847
- "description": "Possible sub-scenario, defined locally within the scheme."
1848
- },
1849
- "initiator": {
1850
- "type": "string",
1851
- "description": "Who is initiating the transaction - Payer or Payee"
1852
- },
1853
- "initiatorType": {
1854
- "type": "string",
1855
- "description": "Consumer, agent, business, …"
1856
- },
1857
- "refundInfo": {
1858
- "$ref": "#/definitions/Refund",
1859
- "description": "Extra information specific to a refund scenario. Should only be populated if scenario is REFUND"
1860
- },
1861
- "balanceOfPayments": {
1862
- "type": "string",
1863
- "description": "Balance of Payments code."
1864
- }
1865
- },
1866
- "required": [
1867
- "scenario",
1868
- "initiator",
1869
- "initiatorType"
1870
- ]
1871
- },
1872
- "Refund": {
1873
- "title": "Refund",
1874
- "type": "object",
1875
- "description": "Data model for the complex type Refund.",
1876
- "properties": {
1877
- "originalTransactionId": {
1878
- "type": "string",
1879
- "description": "Reference to the original transaction id that is requested to be refunded."
1880
- },
1881
- "refundReason": {
1882
- "type": "string",
1883
- "description": "Free text indicating the reason for the refund."
1884
- }
1885
- },
1886
- "required": [
1887
- "originalTransactionId"
1888
- ]
1889
- },
1890
- "Money": {
1891
- "title": "Money",
1892
- "type": "object",
1893
- "description": "Data model for the complex type Money.",
1894
- "properties": {
1895
- "currency": {
1896
- "$ref": "#/definitions/Currency",
1897
- "description": "Currency of the amount."
1898
- },
1899
- "amount": {
1900
- "$ref": "#/definitions/Amount",
1901
- "description": "Amount of Money."
1902
- }
1903
- },
1904
- "required": [
1905
- "currency",
1906
- "amount"
1907
- ]
1908
- },
1909
- "Currency": {
1910
- "title": "CurrencyEnum",
1911
- "description": "The currency codes defined in ISO 4217 as three-letter alphabetic codes are used as the standard naming representation for currencies.",
1912
- "type": "string",
1913
- "minLength": 3,
1914
- "maxLength": 3,
1915
- "enum": [
1916
- "AED",
1917
- "AFN",
1918
- "ALL",
1919
- "AMD",
1920
- "ANG",
1921
- "AOA",
1922
- "ARS",
1923
- "AUD",
1924
- "AWG",
1925
- "AZN",
1926
- "BAM",
1927
- "BBD",
1928
- "BDT",
1929
- "BGN",
1930
- "BHD",
1931
- "BIF",
1932
- "BMD",
1933
- "BND",
1934
- "BOB",
1935
- "BRL",
1936
- "BSD",
1937
- "BTN",
1938
- "BWP",
1939
- "BYN",
1940
- "BZD",
1941
- "CAD",
1942
- "CDF",
1943
- "CHF",
1944
- "CLP",
1945
- "CNY",
1946
- "COP",
1947
- "CRC",
1948
- "CUC",
1949
- "CUP",
1950
- "CVE",
1951
- "CZK",
1952
- "DJF",
1953
- "DKK",
1954
- "DOP",
1955
- "DZD",
1956
- "EGP",
1957
- "ERN",
1958
- "ETB",
1959
- "EUR",
1960
- "FJD",
1961
- "FKP",
1962
- "GBP",
1963
- "GEL",
1964
- "GGP",
1965
- "GHS",
1966
- "GIP",
1967
- "GMD",
1968
- "GNF",
1969
- "GTQ",
1970
- "GYD",
1971
- "HKD",
1972
- "HNL",
1973
- "HRK",
1974
- "HTG",
1975
- "HUF",
1976
- "IDR",
1977
- "ILS",
1978
- "IMP",
1979
- "INR",
1980
- "IQD",
1981
- "IRR",
1982
- "ISK",
1983
- "JEP",
1984
- "JMD",
1985
- "JOD",
1986
- "JPY",
1987
- "KES",
1988
- "KGS",
1989
- "KHR",
1990
- "KMF",
1991
- "KPW",
1992
- "KRW",
1993
- "KWD",
1994
- "KYD",
1995
- "KZT",
1996
- "LAK",
1997
- "LBP",
1998
- "LKR",
1999
- "LRD",
2000
- "LSL",
2001
- "LYD",
2002
- "MAD",
2003
- "MDL",
2004
- "MGA",
2005
- "MKD",
2006
- "MMK",
2007
- "MNT",
2008
- "MOP",
2009
- "MRO",
2010
- "MUR",
2011
- "MVR",
2012
- "MWK",
2013
- "MXN",
2014
- "MYR",
2015
- "MZN",
2016
- "NAD",
2017
- "NGN",
2018
- "NIO",
2019
- "NOK",
2020
- "NPR",
2021
- "NZD",
2022
- "OMR",
2023
- "PAB",
2024
- "PEN",
2025
- "PGK",
2026
- "PHP",
2027
- "PKR",
2028
- "PLN",
2029
- "PYG",
2030
- "QAR",
2031
- "RON",
2032
- "RSD",
2033
- "RUB",
2034
- "RWF",
2035
- "SAR",
2036
- "SBD",
2037
- "SCR",
2038
- "SDG",
2039
- "SEK",
2040
- "SGD",
2041
- "SHP",
2042
- "SLL",
2043
- "SOS",
2044
- "SPL",
2045
- "SRD",
2046
- "STD",
2047
- "SVC",
2048
- "SYP",
2049
- "SZL",
2050
- "THB",
2051
- "TJS",
2052
- "TMT",
2053
- "TND",
2054
- "TOP",
2055
- "TRY",
2056
- "TTD",
2057
- "TVD",
2058
- "TWD",
2059
- "TZS",
2060
- "UAH",
2061
- "UGX",
2062
- "USD",
2063
- "UYU",
2064
- "UZS",
2065
- "VEF",
2066
- "VND",
2067
- "VUV",
2068
- "WST",
2069
- "XAF",
2070
- "XCD",
2071
- "XDR",
2072
- "XOF",
2073
- "XPF",
2074
- "YER",
2075
- "ZAR",
2076
- "ZMW",
2077
- "ZWD"
2078
- ]
2079
- },
2080
- "Amount": {
2081
- "title": "Amount",
2082
- "type": "string",
2083
- "pattern": "^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$",
2084
- "description": "The API data type Amount is a JSON String in a canonical format that is restricted by a regular expression for interoperability reasons. This pattern does not allow any trailing zeroes at all, but allows an amount without a minor currency unit. It also only allows four digits in the minor currency unit; a negative value is not allowed. Using more than 18 digits in the major currency unit is not allowed."
2085
2281
  }
2086
- }
2087
2282
  }