clearbank-sdk 1.0.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 (142) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/LICENSE +21 -0
  3. package/README.md +295 -0
  4. package/dist/cjs/core/config.js +25 -0
  5. package/dist/cjs/core/config.js.map +1 -0
  6. package/dist/cjs/core/crypto.js +110 -0
  7. package/dist/cjs/core/crypto.js.map +1 -0
  8. package/dist/cjs/core/http.js +191 -0
  9. package/dist/cjs/core/http.js.map +1 -0
  10. package/dist/cjs/core/index.js +14 -0
  11. package/dist/cjs/core/index.js.map +1 -0
  12. package/dist/cjs/core/retry.js +42 -0
  13. package/dist/cjs/core/retry.js.map +1 -0
  14. package/dist/cjs/domains/accounts/index.js +6 -0
  15. package/dist/cjs/domains/accounts/index.js.map +1 -0
  16. package/dist/cjs/domains/accounts/service.js +216 -0
  17. package/dist/cjs/domains/accounts/service.js.map +1 -0
  18. package/dist/cjs/domains/accounts/types.js +3 -0
  19. package/dist/cjs/domains/accounts/types.js.map +1 -0
  20. package/dist/cjs/domains/embedded/index.js +6 -0
  21. package/dist/cjs/domains/embedded/index.js.map +1 -0
  22. package/dist/cjs/domains/embedded/service.js +215 -0
  23. package/dist/cjs/domains/embedded/service.js.map +1 -0
  24. package/dist/cjs/domains/embedded/types.js +3 -0
  25. package/dist/cjs/domains/embedded/types.js.map +1 -0
  26. package/dist/cjs/domains/multicurrency/index.js +6 -0
  27. package/dist/cjs/domains/multicurrency/index.js.map +1 -0
  28. package/dist/cjs/domains/multicurrency/service.js +202 -0
  29. package/dist/cjs/domains/multicurrency/service.js.map +1 -0
  30. package/dist/cjs/domains/multicurrency/types.js +3 -0
  31. package/dist/cjs/domains/multicurrency/types.js.map +1 -0
  32. package/dist/cjs/domains/payments/index.js +6 -0
  33. package/dist/cjs/domains/payments/index.js.map +1 -0
  34. package/dist/cjs/domains/payments/service.js +255 -0
  35. package/dist/cjs/domains/payments/service.js.map +1 -0
  36. package/dist/cjs/domains/payments/types.js +3 -0
  37. package/dist/cjs/domains/payments/types.js.map +1 -0
  38. package/dist/cjs/domains/webhooks/index.js +7 -0
  39. package/dist/cjs/domains/webhooks/index.js.map +1 -0
  40. package/dist/cjs/domains/webhooks/service.js +173 -0
  41. package/dist/cjs/domains/webhooks/service.js.map +1 -0
  42. package/dist/cjs/domains/webhooks/types.js +8 -0
  43. package/dist/cjs/domains/webhooks/types.js.map +1 -0
  44. package/dist/cjs/index.js +73 -0
  45. package/dist/cjs/index.js.map +1 -0
  46. package/dist/cjs/types/index.js +45 -0
  47. package/dist/cjs/types/index.js.map +1 -0
  48. package/dist/cjs/utils/index.js +46 -0
  49. package/dist/cjs/utils/index.js.map +1 -0
  50. package/dist/esm/core/config.js +22 -0
  51. package/dist/esm/core/config.js.map +1 -0
  52. package/dist/esm/core/crypto.js +105 -0
  53. package/dist/esm/core/crypto.js.map +1 -0
  54. package/dist/esm/core/http.js +187 -0
  55. package/dist/esm/core/http.js.map +1 -0
  56. package/dist/esm/core/index.js +5 -0
  57. package/dist/esm/core/index.js.map +1 -0
  58. package/dist/esm/core/retry.js +39 -0
  59. package/dist/esm/core/retry.js.map +1 -0
  60. package/dist/esm/domains/accounts/index.js +2 -0
  61. package/dist/esm/domains/accounts/index.js.map +1 -0
  62. package/dist/esm/domains/accounts/service.js +212 -0
  63. package/dist/esm/domains/accounts/service.js.map +1 -0
  64. package/dist/esm/domains/accounts/types.js +2 -0
  65. package/dist/esm/domains/accounts/types.js.map +1 -0
  66. package/dist/esm/domains/embedded/index.js +2 -0
  67. package/dist/esm/domains/embedded/index.js.map +1 -0
  68. package/dist/esm/domains/embedded/service.js +211 -0
  69. package/dist/esm/domains/embedded/service.js.map +1 -0
  70. package/dist/esm/domains/embedded/types.js +2 -0
  71. package/dist/esm/domains/embedded/types.js.map +1 -0
  72. package/dist/esm/domains/multicurrency/index.js +2 -0
  73. package/dist/esm/domains/multicurrency/index.js.map +1 -0
  74. package/dist/esm/domains/multicurrency/service.js +198 -0
  75. package/dist/esm/domains/multicurrency/service.js.map +1 -0
  76. package/dist/esm/domains/multicurrency/types.js +2 -0
  77. package/dist/esm/domains/multicurrency/types.js.map +1 -0
  78. package/dist/esm/domains/payments/index.js +2 -0
  79. package/dist/esm/domains/payments/index.js.map +1 -0
  80. package/dist/esm/domains/payments/service.js +251 -0
  81. package/dist/esm/domains/payments/service.js.map +1 -0
  82. package/dist/esm/domains/payments/types.js +2 -0
  83. package/dist/esm/domains/payments/types.js.map +1 -0
  84. package/dist/esm/domains/webhooks/index.js +2 -0
  85. package/dist/esm/domains/webhooks/index.js.map +1 -0
  86. package/dist/esm/domains/webhooks/service.js +168 -0
  87. package/dist/esm/domains/webhooks/service.js.map +1 -0
  88. package/dist/esm/domains/webhooks/types.js +5 -0
  89. package/dist/esm/domains/webhooks/types.js.map +1 -0
  90. package/dist/esm/index.js +56 -0
  91. package/dist/esm/index.js.map +1 -0
  92. package/dist/esm/types/index.js +41 -0
  93. package/dist/esm/types/index.js.map +1 -0
  94. package/dist/esm/utils/index.js +35 -0
  95. package/dist/esm/utils/index.js.map +1 -0
  96. package/dist/types/core/config.d.ts +34 -0
  97. package/dist/types/core/config.d.ts.map +1 -0
  98. package/dist/types/core/crypto.d.ts +20 -0
  99. package/dist/types/core/crypto.d.ts.map +1 -0
  100. package/dist/types/core/http.d.ts +34 -0
  101. package/dist/types/core/http.d.ts.map +1 -0
  102. package/dist/types/core/index.d.ts +7 -0
  103. package/dist/types/core/index.d.ts.map +1 -0
  104. package/dist/types/core/retry.d.ts +14 -0
  105. package/dist/types/core/retry.d.ts.map +1 -0
  106. package/dist/types/domains/accounts/index.d.ts +3 -0
  107. package/dist/types/domains/accounts/index.d.ts.map +1 -0
  108. package/dist/types/domains/accounts/service.d.ts +61 -0
  109. package/dist/types/domains/accounts/service.d.ts.map +1 -0
  110. package/dist/types/domains/accounts/types.d.ts +90 -0
  111. package/dist/types/domains/accounts/types.d.ts.map +1 -0
  112. package/dist/types/domains/embedded/index.d.ts +3 -0
  113. package/dist/types/domains/embedded/index.d.ts.map +1 -0
  114. package/dist/types/domains/embedded/service.d.ts +63 -0
  115. package/dist/types/domains/embedded/service.d.ts.map +1 -0
  116. package/dist/types/domains/embedded/types.d.ts +148 -0
  117. package/dist/types/domains/embedded/types.d.ts.map +1 -0
  118. package/dist/types/domains/multicurrency/index.d.ts +3 -0
  119. package/dist/types/domains/multicurrency/index.d.ts.map +1 -0
  120. package/dist/types/domains/multicurrency/service.d.ts +50 -0
  121. package/dist/types/domains/multicurrency/service.d.ts.map +1 -0
  122. package/dist/types/domains/multicurrency/types.d.ts +84 -0
  123. package/dist/types/domains/multicurrency/types.d.ts.map +1 -0
  124. package/dist/types/domains/payments/index.d.ts +3 -0
  125. package/dist/types/domains/payments/index.d.ts.map +1 -0
  126. package/dist/types/domains/payments/service.d.ts +65 -0
  127. package/dist/types/domains/payments/service.d.ts.map +1 -0
  128. package/dist/types/domains/payments/types.d.ts +107 -0
  129. package/dist/types/domains/payments/types.d.ts.map +1 -0
  130. package/dist/types/domains/webhooks/index.d.ts +3 -0
  131. package/dist/types/domains/webhooks/index.d.ts.map +1 -0
  132. package/dist/types/domains/webhooks/service.d.ts +66 -0
  133. package/dist/types/domains/webhooks/service.d.ts.map +1 -0
  134. package/dist/types/domains/webhooks/types.d.ts +215 -0
  135. package/dist/types/domains/webhooks/types.d.ts.map +1 -0
  136. package/dist/types/index.d.ts +54 -0
  137. package/dist/types/index.d.ts.map +1 -0
  138. package/dist/types/types/index.d.ts +77 -0
  139. package/dist/types/types/index.d.ts.map +1 -0
  140. package/dist/types/utils/index.d.ts +22 -0
  141. package/dist/types/utils/index.d.ts.map +1 -0
  142. package/package.json +96 -0
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Embedded Banking service — Banking-as-a-Service.
3
+ *
4
+ * Covers: retail/sole-trader/legal-entity customers, payment/savings/ISA/hub accounts,
5
+ * FPS from embedded accounts, ISA transfer-in, interest products, KYC.
6
+ */
7
+ export class EmbeddedBankingService {
8
+ constructor(http) {
9
+ this.http = http;
10
+ }
11
+ // ---------------------------------------------------------------------------
12
+ // Customers
13
+ // ---------------------------------------------------------------------------
14
+ /** Lists all embedded customers, optionally filtered by type. */
15
+ async listCustomers(customerType, params, opts) {
16
+ const query = omitUndefined({
17
+ customerType,
18
+ pageNumber: params?.pageNumber,
19
+ pageSize: params?.pageSize,
20
+ });
21
+ const res = await this.http.get('/v1/fin/customers', query, opts);
22
+ return buildPage(res.data?.customers, res.data?.totalCount, params);
23
+ }
24
+ /** Returns a customer by ID. */
25
+ async getCustomer(customerId, opts) {
26
+ const res = await this.http.get(`/v1/fin/customers/${customerId}`, undefined, opts);
27
+ return res.data;
28
+ }
29
+ /** Creates a retail (individual consumer) embedded customer. */
30
+ async createRetailCustomer(params, opts) {
31
+ const body = omitUndefined(params);
32
+ const res = await this.http.post('/v1/fin/customers/retail', body, opts);
33
+ return res.data;
34
+ }
35
+ /** Updates a customer record (email, phone, address). */
36
+ async updateCustomer(customerId, params, opts) {
37
+ const body = omitUndefined(params);
38
+ await this.http.patch(`/v1/fin/customers/${customerId}`, body, opts);
39
+ }
40
+ /** Creates a sole trader embedded customer. */
41
+ async createSoleTraderCustomer(params, opts) {
42
+ const body = omitUndefined(params);
43
+ const res = await this.http.post('/v2/fin/customers/sole-traders', body, opts);
44
+ return res.data;
45
+ }
46
+ /** Updates a sole trader customer. */
47
+ async updateSoleTraderCustomer(customerId, params, opts) {
48
+ const body = omitUndefined(params);
49
+ await this.http.patch(`/v2/fin/customers/sole-traders/${customerId}`, body, opts);
50
+ }
51
+ /** Creates a legal entity (company) embedded customer. */
52
+ async createLegalEntityCustomer(params, opts) {
53
+ const body = omitUndefined(params);
54
+ const res = await this.http.post('/v2/fin/customers/legal-entities', body, opts);
55
+ return res.data;
56
+ }
57
+ /** Updates a legal entity customer. */
58
+ async updateLegalEntityCustomer(customerId, params, opts) {
59
+ const body = omitUndefined(params);
60
+ await this.http.patch(`/v2/fin/customers/legal-entities/${customerId}`, body, opts);
61
+ }
62
+ // ---------------------------------------------------------------------------
63
+ // Accounts
64
+ // ---------------------------------------------------------------------------
65
+ /** Lists all accounts for a customer, optionally filtered by account type. */
66
+ async listCustomerAccounts(customerId, accountType, params, opts) {
67
+ const query = omitUndefined({
68
+ accountType,
69
+ pageNumber: params?.pageNumber,
70
+ pageSize: params?.pageSize,
71
+ });
72
+ const res = await this.http.get(`/v1/fin/customers/${customerId}/accounts`, query, opts);
73
+ return buildPage(res.data?.accounts, res.data?.totalCount, params);
74
+ }
75
+ /** Returns an embedded account by ID. */
76
+ async getAccount(accountId, opts) {
77
+ const res = await this.http.get(`/v1/fin/accounts/${accountId}`, undefined, opts);
78
+ return res.data;
79
+ }
80
+ /** Creates a hub (internal pooled) account. */
81
+ async createHubAccount(params, opts) {
82
+ const body = omitUndefined({
83
+ accountName: params.accountName,
84
+ currency: params.currency ?? 'GBP',
85
+ owner: params.owner,
86
+ });
87
+ const res = await this.http.post('/v1/fin/accounts/hub', body, opts);
88
+ return res.data;
89
+ }
90
+ /** Creates a payment account for a customer. */
91
+ async createPaymentAccount(params, opts) {
92
+ const body = omitUndefined({
93
+ customerId: params.customerId,
94
+ accountName: params.accountName,
95
+ currency: params.currency ?? 'GBP',
96
+ externalAccountId: params.externalAccountId,
97
+ });
98
+ const res = await this.http.post('/v1/fin/accounts/payment', body, opts);
99
+ return res.data;
100
+ }
101
+ /** Creates a savings account for a customer. */
102
+ async createSavingsAccount(params, opts) {
103
+ const body = omitUndefined({
104
+ customerId: params.customerId,
105
+ accountName: params.accountName,
106
+ currency: params.currency ?? 'GBP',
107
+ productId: params.productId,
108
+ externalAccountId: params.externalAccountId,
109
+ });
110
+ const res = await this.http.post('/v1/fin/accounts/savings', body, opts);
111
+ return res.data;
112
+ }
113
+ /** Updates an embedded account (rename or change status). */
114
+ async updateAccount(accountId, params, opts) {
115
+ const body = omitUndefined(params);
116
+ await this.http.patch(`/v1/fin/accounts/${accountId}`, body, opts);
117
+ }
118
+ /** Closes an embedded account. */
119
+ async closeAccount(accountId, opts) {
120
+ return this.updateAccount(accountId, { status: 'Closed' }, opts);
121
+ }
122
+ /** Lists transactions for an embedded account. */
123
+ async listAccountTransactions(accountId, params, opts) {
124
+ const query = omitUndefined({
125
+ pageNumber: params?.pageNumber,
126
+ pageSize: params?.pageSize,
127
+ startDate: params?.startDate,
128
+ endDate: params?.endDate,
129
+ });
130
+ const res = await this.http.get(`/v1/fin/accounts/${accountId}/transactions`, query, opts);
131
+ return buildPage(res.data?.transactions, res.data?.totalCount, params);
132
+ }
133
+ /** Sends a Faster Payment from an embedded customer payment account. */
134
+ async sendFPS(params, opts) {
135
+ const body = omitUndefined({
136
+ amount: params.amount,
137
+ currencyCode: params.currency ?? 'GBP',
138
+ destination: {
139
+ sortCode: params.destinationSortCode,
140
+ accountNumber: params.destinationAccountNumber,
141
+ name: params.destinationName,
142
+ },
143
+ reference: params.reference,
144
+ endToEndId: params.endToEndId,
145
+ });
146
+ await this.http.post(`/v1/fin/accounts/${params.accountId}/payments/fps`, body, opts);
147
+ }
148
+ // ---------------------------------------------------------------------------
149
+ // Flexible Cash ISA
150
+ // ---------------------------------------------------------------------------
151
+ /** Creates a Flexible Cash ISA for a retail customer. */
152
+ async createISA(params, opts) {
153
+ const body = { customerId: params.customerId, accountName: params.accountName };
154
+ const res = await this.http.post('/v1/fin/accounts/cash-isa', body, opts);
155
+ return res.data;
156
+ }
157
+ /**
158
+ * Submits an ISA transfer-in request from a previous provider.
159
+ * The funds are moved into the ISA once confirmed by the previous provider.
160
+ */
161
+ async isaTransferIn(accountId, params, opts) {
162
+ const body = {
163
+ previousProviderName: params.previousProviderName,
164
+ previousProviderReference: params.previousProviderReference,
165
+ transferAmount: params.transferAmount,
166
+ transferType: params.transferType,
167
+ previousTaxYear: params.previousTaxYear,
168
+ };
169
+ await this.http.put(`/v1/fin/accounts/cash-isa/${accountId}/transfer-in`, body, opts);
170
+ }
171
+ // ---------------------------------------------------------------------------
172
+ // Interest Products
173
+ // ---------------------------------------------------------------------------
174
+ /** Returns all available interest rate products. */
175
+ async listInterestProducts(opts) {
176
+ const res = await this.http.get('/v1/fin/interest/products', undefined, opts);
177
+ return res.data?.products ?? [];
178
+ }
179
+ /** Assigns an interest product to a savings account. */
180
+ async configureInterest(accountId, params, opts) {
181
+ await this.http.post(`/v1/fin/interest/accounts/${accountId}`, { productId: params.productId }, opts);
182
+ }
183
+ // ---------------------------------------------------------------------------
184
+ // KYC
185
+ // ---------------------------------------------------------------------------
186
+ /** Returns the current KYC status for a customer. */
187
+ async getKYCStatus(customerId, opts) {
188
+ const res = await this.http.get(`/v1/fin/customers/${customerId}/kyc`, undefined, opts);
189
+ return res.data;
190
+ }
191
+ /** Submits or updates KYC verification data for a customer. */
192
+ async submitKYC(customerId, params, opts) {
193
+ const body = omitUndefined(params);
194
+ await this.http.put(`/v1/fin/customers/${customerId}/kyc`, body, opts);
195
+ }
196
+ }
197
+ // ---------------------------------------------------------------------------
198
+ // Helpers
199
+ // ---------------------------------------------------------------------------
200
+ function buildPage(items, totalCount, params) {
201
+ return {
202
+ data: items ?? [],
203
+ totalCount: totalCount ?? items?.length ?? 0,
204
+ pageNumber: params?.pageNumber ?? 1,
205
+ pageSize: params?.pageSize ?? 50,
206
+ };
207
+ }
208
+ function omitUndefined(obj) {
209
+ return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined));
210
+ }
211
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../src/domains/embedded/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/domains/embedded/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { MultiCurrencyService } from './service.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domains/multicurrency/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Multi-currency accounts, international payments, FX spot trading, and SEPA SCT UK.
3
+ */
4
+ export class MultiCurrencyService {
5
+ constructor(http) {
6
+ this.http = http;
7
+ }
8
+ // ---------------------------------------------------------------------------
9
+ // Accounts
10
+ // ---------------------------------------------------------------------------
11
+ async listAccounts(currency, params, opts) {
12
+ const query = omitUndefined({
13
+ currency,
14
+ pageNumber: params?.pageNumber,
15
+ pageSize: params?.pageSize,
16
+ });
17
+ const res = await this.http.get('/mccy/v2/Accounts', query, opts);
18
+ return buildPage(res.data?.accounts, res.data?.totalCount, params);
19
+ }
20
+ async getAccount(accountId, opts) {
21
+ const res = await this.http.get(`/mccy/v2/Accounts/${accountId}`, undefined, opts);
22
+ return res.data;
23
+ }
24
+ async createAccount(params, opts) {
25
+ const body = omitUndefined({
26
+ accountName: params.accountName,
27
+ accountType: params.accountType,
28
+ currencyCode: params.currency,
29
+ owner: params.owner,
30
+ minimumBalance: params.minimumBalance,
31
+ });
32
+ const res = await this.http.post('/mccy/v2/Accounts', body, opts);
33
+ return res.data;
34
+ }
35
+ async updateAccount(accountId, params, opts) {
36
+ const body = omitUndefined({
37
+ accountName: params.accountName,
38
+ copEnabled: params.copEnabled,
39
+ });
40
+ await this.http.patch(`/mccy/v2/Accounts/${accountId}`, body, opts);
41
+ }
42
+ // ---------------------------------------------------------------------------
43
+ // Virtual Accounts
44
+ // ---------------------------------------------------------------------------
45
+ async listVirtualAccounts(accountId, params, opts) {
46
+ const query = omitUndefined({
47
+ pageNumber: params?.pageNumber,
48
+ pageSize: params?.pageSize,
49
+ });
50
+ const res = await this.http.get(`/mccy/v2/Accounts/${accountId}/Virtual`, query, opts);
51
+ return buildPage(res.data?.virtualAccounts, res.data?.totalCount, params);
52
+ }
53
+ async getVirtualAccount(accountId, virtualAccountId, opts) {
54
+ const res = await this.http.get(`/mccy/v2/Accounts/${accountId}/Virtual/${virtualAccountId}`, undefined, opts);
55
+ return res.data;
56
+ }
57
+ async createVirtualAccount(accountId, params, opts) {
58
+ const body = omitUndefined({ accountName: params.accountName, owner: params.owner });
59
+ const res = await this.http.post(`/mccy/v2/Accounts/${accountId}/Virtual`, body, opts);
60
+ return res.data;
61
+ }
62
+ async updateVirtualAccount(accountId, virtualAccountId, accountName, opts) {
63
+ await this.http.patch(`/mccy/v2/Accounts/${accountId}/Virtual/${virtualAccountId}`, { accountName }, opts);
64
+ }
65
+ // ---------------------------------------------------------------------------
66
+ // Transactions
67
+ // ---------------------------------------------------------------------------
68
+ async listTransactions(accountId, params, opts) {
69
+ const query = omitUndefined({
70
+ pageNumber: params?.pageNumber,
71
+ pageSize: params?.pageSize,
72
+ startDate: params?.startDate,
73
+ endDate: params?.endDate,
74
+ });
75
+ const res = await this.http.get(`/mccy/v2/Accounts/${accountId}/Transactions`, query, opts);
76
+ return buildPage(res.data?.transactions, res.data?.totalCount, params);
77
+ }
78
+ // ---------------------------------------------------------------------------
79
+ // International Payments
80
+ // ---------------------------------------------------------------------------
81
+ /**
82
+ * Sends a single high-value international payment.
83
+ * Confirmation arrives via the `MccyTransactionCreated` webhook.
84
+ */
85
+ async sendPayment(payment, opts) {
86
+ const body = { payments: [buildPaymentEntry(payment)] };
87
+ await this.http.post('/v1/mccy/payments', body, opts);
88
+ }
89
+ /** Sends multiple international payments in one batch request. */
90
+ async sendBulkPayments(payments, opts) {
91
+ const body = { payments: payments.map(buildPaymentEntry) };
92
+ await this.http.post('/v1/mccy/payments', body, opts);
93
+ }
94
+ /** Cancels all payments in a batch. */
95
+ async cancelBatch(batchId, opts) {
96
+ await this.http.delete(`/v1/mccy/payments/${batchId}`, opts);
97
+ }
98
+ /** Cancels a single payment within a batch by end-to-end ID. */
99
+ async cancelPayment(batchId, endToEndId, opts) {
100
+ await this.http.delete(`/v1/mccy/payments/${batchId}/${endToEndId}`, opts);
101
+ }
102
+ // ---------------------------------------------------------------------------
103
+ // FX Spot Trading
104
+ // ---------------------------------------------------------------------------
105
+ /**
106
+ * Executes an FX spot trade at the live market rate.
107
+ * Specify either `sellAmount` or `buyAmount` — not both.
108
+ */
109
+ async executeFXTrade(params, opts) {
110
+ const body = omitUndefined({
111
+ sellAccountId: params.sellAccountId,
112
+ buyAccountId: params.buyAccountId,
113
+ sellCurrency: params.sellCurrency,
114
+ buyCurrency: params.buyCurrency,
115
+ sellAmount: params.sellAmount,
116
+ buyAmount: params.buyAmount,
117
+ endToEndId: params.endToEndId,
118
+ });
119
+ const res = await this.http.post('/v1/fx/trades', body, opts);
120
+ return res.data;
121
+ }
122
+ /**
123
+ * Requests a firm FX quote (Request for Quote).
124
+ * The returned quote has an expiry — execute before it expires.
125
+ */
126
+ async requestFXQuote(params, opts) {
127
+ const body = omitUndefined({
128
+ sellAccountId: params.sellAccountId,
129
+ buyAccountId: params.buyAccountId,
130
+ sellCurrency: params.sellCurrency,
131
+ buyCurrency: params.buyCurrency,
132
+ sellAmount: params.sellAmount,
133
+ buyAmount: params.buyAmount,
134
+ });
135
+ const res = await this.http.post('/v1/fx/quotes', body, opts);
136
+ return attachIsExpired(res.data);
137
+ }
138
+ /** Executes a previously quoted FX trade before it expires. */
139
+ async executeFXQuote(quoteId, opts) {
140
+ const res = await this.http.post(`/v1/fx/quotes/${quoteId}/execute`, {}, opts);
141
+ return res.data;
142
+ }
143
+ /** Rejects (cancels) a firm quote without executing it. */
144
+ async rejectFXQuote(quoteId, opts) {
145
+ await this.http.delete(`/v1/fx/quotes/${quoteId}`, opts);
146
+ }
147
+ // ---------------------------------------------------------------------------
148
+ // Simulation only
149
+ // ---------------------------------------------------------------------------
150
+ /**
151
+ * Funds a multi-currency account with a simulated inbound payment.
152
+ * Only available in the Simulation environment.
153
+ */
154
+ async fundAccountSimulation(accountUniqueId, amount, currency, opts) {
155
+ await this.http.post(`/v1/mccy/inboundpayment/${accountUniqueId}`, { amount, currency }, opts);
156
+ }
157
+ }
158
+ // ---------------------------------------------------------------------------
159
+ // Helpers
160
+ // ---------------------------------------------------------------------------
161
+ function buildPaymentEntry(p) {
162
+ const creditor = {
163
+ name: p.creditorName,
164
+ iban: p.creditorIban,
165
+ bic: p.creditorBic,
166
+ };
167
+ if (p.creditorAddress) {
168
+ creditor['address'] = omitUndefined(p.creditorAddress);
169
+ }
170
+ return omitUndefined({
171
+ accountId: p.accountId,
172
+ amount: p.amount,
173
+ currencyCode: p.currency,
174
+ creditor,
175
+ remittanceInformation: p.remittanceInformation,
176
+ endToEndId: p.endToEndId,
177
+ });
178
+ }
179
+ function attachIsExpired(raw) {
180
+ return {
181
+ ...raw,
182
+ isExpired() {
183
+ return raw.expiresAt ? new Date() > new Date(raw.expiresAt) : false;
184
+ },
185
+ };
186
+ }
187
+ function buildPage(items, totalCount, params) {
188
+ return {
189
+ data: items ?? [],
190
+ totalCount: totalCount ?? items?.length ?? 0,
191
+ pageNumber: params?.pageNumber ?? 1,
192
+ pageSize: params?.pageSize ?? 50,
193
+ };
194
+ }
195
+ function omitUndefined(obj) {
196
+ return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined));
197
+ }
198
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../src/domains/multicurrency/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/domains/multicurrency/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { PaymentsService } from './service.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domains/payments/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}