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,202 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultiCurrencyService = void 0;
4
+ /**
5
+ * Multi-currency accounts, international payments, FX spot trading, and SEPA SCT UK.
6
+ */
7
+ class MultiCurrencyService {
8
+ constructor(http) {
9
+ this.http = http;
10
+ }
11
+ // ---------------------------------------------------------------------------
12
+ // Accounts
13
+ // ---------------------------------------------------------------------------
14
+ async listAccounts(currency, params, opts) {
15
+ const query = omitUndefined({
16
+ currency,
17
+ pageNumber: params?.pageNumber,
18
+ pageSize: params?.pageSize,
19
+ });
20
+ const res = await this.http.get('/mccy/v2/Accounts', query, opts);
21
+ return buildPage(res.data?.accounts, res.data?.totalCount, params);
22
+ }
23
+ async getAccount(accountId, opts) {
24
+ const res = await this.http.get(`/mccy/v2/Accounts/${accountId}`, undefined, opts);
25
+ return res.data;
26
+ }
27
+ async createAccount(params, opts) {
28
+ const body = omitUndefined({
29
+ accountName: params.accountName,
30
+ accountType: params.accountType,
31
+ currencyCode: params.currency,
32
+ owner: params.owner,
33
+ minimumBalance: params.minimumBalance,
34
+ });
35
+ const res = await this.http.post('/mccy/v2/Accounts', body, opts);
36
+ return res.data;
37
+ }
38
+ async updateAccount(accountId, params, opts) {
39
+ const body = omitUndefined({
40
+ accountName: params.accountName,
41
+ copEnabled: params.copEnabled,
42
+ });
43
+ await this.http.patch(`/mccy/v2/Accounts/${accountId}`, body, opts);
44
+ }
45
+ // ---------------------------------------------------------------------------
46
+ // Virtual Accounts
47
+ // ---------------------------------------------------------------------------
48
+ async listVirtualAccounts(accountId, params, opts) {
49
+ const query = omitUndefined({
50
+ pageNumber: params?.pageNumber,
51
+ pageSize: params?.pageSize,
52
+ });
53
+ const res = await this.http.get(`/mccy/v2/Accounts/${accountId}/Virtual`, query, opts);
54
+ return buildPage(res.data?.virtualAccounts, res.data?.totalCount, params);
55
+ }
56
+ async getVirtualAccount(accountId, virtualAccountId, opts) {
57
+ const res = await this.http.get(`/mccy/v2/Accounts/${accountId}/Virtual/${virtualAccountId}`, undefined, opts);
58
+ return res.data;
59
+ }
60
+ async createVirtualAccount(accountId, params, opts) {
61
+ const body = omitUndefined({ accountName: params.accountName, owner: params.owner });
62
+ const res = await this.http.post(`/mccy/v2/Accounts/${accountId}/Virtual`, body, opts);
63
+ return res.data;
64
+ }
65
+ async updateVirtualAccount(accountId, virtualAccountId, accountName, opts) {
66
+ await this.http.patch(`/mccy/v2/Accounts/${accountId}/Virtual/${virtualAccountId}`, { accountName }, opts);
67
+ }
68
+ // ---------------------------------------------------------------------------
69
+ // Transactions
70
+ // ---------------------------------------------------------------------------
71
+ async listTransactions(accountId, params, opts) {
72
+ const query = omitUndefined({
73
+ pageNumber: params?.pageNumber,
74
+ pageSize: params?.pageSize,
75
+ startDate: params?.startDate,
76
+ endDate: params?.endDate,
77
+ });
78
+ const res = await this.http.get(`/mccy/v2/Accounts/${accountId}/Transactions`, query, opts);
79
+ return buildPage(res.data?.transactions, res.data?.totalCount, params);
80
+ }
81
+ // ---------------------------------------------------------------------------
82
+ // International Payments
83
+ // ---------------------------------------------------------------------------
84
+ /**
85
+ * Sends a single high-value international payment.
86
+ * Confirmation arrives via the `MccyTransactionCreated` webhook.
87
+ */
88
+ async sendPayment(payment, opts) {
89
+ const body = { payments: [buildPaymentEntry(payment)] };
90
+ await this.http.post('/v1/mccy/payments', body, opts);
91
+ }
92
+ /** Sends multiple international payments in one batch request. */
93
+ async sendBulkPayments(payments, opts) {
94
+ const body = { payments: payments.map(buildPaymentEntry) };
95
+ await this.http.post('/v1/mccy/payments', body, opts);
96
+ }
97
+ /** Cancels all payments in a batch. */
98
+ async cancelBatch(batchId, opts) {
99
+ await this.http.delete(`/v1/mccy/payments/${batchId}`, opts);
100
+ }
101
+ /** Cancels a single payment within a batch by end-to-end ID. */
102
+ async cancelPayment(batchId, endToEndId, opts) {
103
+ await this.http.delete(`/v1/mccy/payments/${batchId}/${endToEndId}`, opts);
104
+ }
105
+ // ---------------------------------------------------------------------------
106
+ // FX Spot Trading
107
+ // ---------------------------------------------------------------------------
108
+ /**
109
+ * Executes an FX spot trade at the live market rate.
110
+ * Specify either `sellAmount` or `buyAmount` — not both.
111
+ */
112
+ async executeFXTrade(params, opts) {
113
+ const body = omitUndefined({
114
+ sellAccountId: params.sellAccountId,
115
+ buyAccountId: params.buyAccountId,
116
+ sellCurrency: params.sellCurrency,
117
+ buyCurrency: params.buyCurrency,
118
+ sellAmount: params.sellAmount,
119
+ buyAmount: params.buyAmount,
120
+ endToEndId: params.endToEndId,
121
+ });
122
+ const res = await this.http.post('/v1/fx/trades', body, opts);
123
+ return res.data;
124
+ }
125
+ /**
126
+ * Requests a firm FX quote (Request for Quote).
127
+ * The returned quote has an expiry — execute before it expires.
128
+ */
129
+ async requestFXQuote(params, opts) {
130
+ const body = omitUndefined({
131
+ sellAccountId: params.sellAccountId,
132
+ buyAccountId: params.buyAccountId,
133
+ sellCurrency: params.sellCurrency,
134
+ buyCurrency: params.buyCurrency,
135
+ sellAmount: params.sellAmount,
136
+ buyAmount: params.buyAmount,
137
+ });
138
+ const res = await this.http.post('/v1/fx/quotes', body, opts);
139
+ return attachIsExpired(res.data);
140
+ }
141
+ /** Executes a previously quoted FX trade before it expires. */
142
+ async executeFXQuote(quoteId, opts) {
143
+ const res = await this.http.post(`/v1/fx/quotes/${quoteId}/execute`, {}, opts);
144
+ return res.data;
145
+ }
146
+ /** Rejects (cancels) a firm quote without executing it. */
147
+ async rejectFXQuote(quoteId, opts) {
148
+ await this.http.delete(`/v1/fx/quotes/${quoteId}`, opts);
149
+ }
150
+ // ---------------------------------------------------------------------------
151
+ // Simulation only
152
+ // ---------------------------------------------------------------------------
153
+ /**
154
+ * Funds a multi-currency account with a simulated inbound payment.
155
+ * Only available in the Simulation environment.
156
+ */
157
+ async fundAccountSimulation(accountUniqueId, amount, currency, opts) {
158
+ await this.http.post(`/v1/mccy/inboundpayment/${accountUniqueId}`, { amount, currency }, opts);
159
+ }
160
+ }
161
+ exports.MultiCurrencyService = MultiCurrencyService;
162
+ // ---------------------------------------------------------------------------
163
+ // Helpers
164
+ // ---------------------------------------------------------------------------
165
+ function buildPaymentEntry(p) {
166
+ const creditor = {
167
+ name: p.creditorName,
168
+ iban: p.creditorIban,
169
+ bic: p.creditorBic,
170
+ };
171
+ if (p.creditorAddress) {
172
+ creditor['address'] = omitUndefined(p.creditorAddress);
173
+ }
174
+ return omitUndefined({
175
+ accountId: p.accountId,
176
+ amount: p.amount,
177
+ currencyCode: p.currency,
178
+ creditor,
179
+ remittanceInformation: p.remittanceInformation,
180
+ endToEndId: p.endToEndId,
181
+ });
182
+ }
183
+ function attachIsExpired(raw) {
184
+ return {
185
+ ...raw,
186
+ isExpired() {
187
+ return raw.expiresAt ? new Date() > new Date(raw.expiresAt) : false;
188
+ },
189
+ };
190
+ }
191
+ function buildPage(items, totalCount, params) {
192
+ return {
193
+ data: items ?? [],
194
+ totalCount: totalCount ?? items?.length ?? 0,
195
+ pageNumber: params?.pageNumber ?? 1,
196
+ pageSize: params?.pageSize ?? 50,
197
+ };
198
+ }
199
+ function omitUndefined(obj) {
200
+ return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined));
201
+ }
202
+ //# 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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# 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,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaymentsService = void 0;
4
+ var service_js_1 = require("./service.js");
5
+ Object.defineProperty(exports, "PaymentsService", { enumerable: true, get: function () { return service_js_1.PaymentsService; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domains/payments/index.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAAtC,6GAAA,eAAe,OAAA"}
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaymentsService = void 0;
4
+ /**
5
+ * GBP Payments service.
6
+ *
7
+ * Covers: FPS (single + bulk), Internal Transfers, CHAPS, Bacs returns,
8
+ * Cheque Deposits, Confirmation of Payee, Cross-Border (deprecated), SEPA SCT UK.
9
+ */
10
+ class PaymentsService {
11
+ constructor(http) {
12
+ this.http = http;
13
+ }
14
+ // ---------------------------------------------------------------------------
15
+ // Faster Payments (FPS)
16
+ // ---------------------------------------------------------------------------
17
+ /**
18
+ * Sends a single Faster Payment.
19
+ *
20
+ * @remarks
21
+ * Limit: £1,000,000 per payment. Confirmation via `TransactionSettled` webhook.
22
+ * Set `enforceSendToScheme: true` to always route via FPS scheme (subject to
23
+ * Pay.UK APP scam reimbursement liability).
24
+ */
25
+ async sendFPS(params, opts) {
26
+ const body = buildFpsBody(params.accountId, [params.payment]);
27
+ await this.http.post('/v3/Payments/FPS', body, opts);
28
+ }
29
+ /** Sends multiple Faster Payments in one request. */
30
+ async sendFPSBulk(params, opts) {
31
+ const body = buildFpsBody(params.accountId, params.payments);
32
+ await this.http.post('/v3/Payments/FPS', body, opts);
33
+ }
34
+ // ---------------------------------------------------------------------------
35
+ // Internal Transfers
36
+ // ---------------------------------------------------------------------------
37
+ /** Transfers funds between ClearBank-held accounts (same institution). */
38
+ async sendInternalTransfer(params, opts) {
39
+ const body = omitUndefined({
40
+ debtorAccountId: params.debtorAccountId,
41
+ creditorAccountId: params.creditorAccountId,
42
+ amount: params.amount,
43
+ currencyCode: params.currency ?? 'GBP',
44
+ reference: params.reference,
45
+ endToEndId: params.endToEndId,
46
+ debtorVirtualAccountId: params.debtorVirtualAccountId,
47
+ creditorVirtualAccountId: params.creditorVirtualAccountId,
48
+ });
49
+ await this.http.post('/v3/Payments/Transfer', body, opts);
50
+ }
51
+ /** Sends multiple internal transfers in one request. */
52
+ async sendBulkInternalTransfer(params, opts) {
53
+ const body = {
54
+ transfers: params.map((p) => omitUndefined({
55
+ debtorAccountId: p.debtorAccountId,
56
+ creditorAccountId: p.creditorAccountId,
57
+ amount: p.amount,
58
+ currencyCode: p.currency ?? 'GBP',
59
+ reference: p.reference,
60
+ endToEndId: p.endToEndId,
61
+ debtorVirtualAccountId: p.debtorVirtualAccountId,
62
+ creditorVirtualAccountId: p.creditorVirtualAccountId,
63
+ })),
64
+ };
65
+ await this.http.post('/v3/Payments/Transfer/Bulk', body, opts);
66
+ }
67
+ // ---------------------------------------------------------------------------
68
+ // CHAPS
69
+ // ---------------------------------------------------------------------------
70
+ /**
71
+ * Sends a CHAPS customer credit transfer (pacs.008).
72
+ *
73
+ * @remarks
74
+ * No upper limit. Same-day settlement during Bank of England RTGS hours.
75
+ * Requires structured ISO 20022 creditor address.
76
+ */
77
+ async sendCHAPS(params, opts) {
78
+ const body = buildChapsBody(params);
79
+ await this.http.post('/payments/chaps/v5/customer-payments', body, opts);
80
+ }
81
+ /** Returns a received CHAPS payment. */
82
+ async returnCHAPS(params, opts) {
83
+ const body = {
84
+ originalInstructionId: params.originalInstructionId,
85
+ debtorAccountId: params.debtorAccountId,
86
+ returnReasonCode: params.returnReasonCode,
87
+ instructedAmount: { amount: params.amount, currency: params.currency ?? 'GBP' },
88
+ };
89
+ await this.http.post('/payments/chaps/v5/return-payments', body, opts);
90
+ }
91
+ // ---------------------------------------------------------------------------
92
+ // Bacs
93
+ // ---------------------------------------------------------------------------
94
+ /** Returns a Bacs payment received on a real account. */
95
+ async returnBacs(accountId, params, opts) {
96
+ const body = { transactionId: params.transactionId, reasonCode: params.reasonCode };
97
+ await this.http.post(`/v1/Accounts/${accountId}/Transactions/Returns`, body, opts);
98
+ }
99
+ /** Returns a Bacs payment received on a virtual account. */
100
+ async returnVirtualBacs(accountId, virtualAccountId, params, opts) {
101
+ const body = { transactionId: params.transactionId, reasonCode: params.reasonCode };
102
+ await this.http.post(`/v1/Accounts/${accountId}/Virtual/${virtualAccountId}/Transactions/Returns`, body, opts);
103
+ }
104
+ // ---------------------------------------------------------------------------
105
+ // Cheques (ICS)
106
+ // ---------------------------------------------------------------------------
107
+ /** Submits a cheque image deposit via the Image Clearing System (ICS). */
108
+ async submitChequeDeposit(params, opts) {
109
+ const body = omitUndefined({
110
+ accountId: params.accountId,
111
+ amount: params.amount,
112
+ currency: params.currency ?? 'GBP',
113
+ chequeImageFront: params.chequeImageFront,
114
+ chequeImageBack: params.chequeImageBack,
115
+ micrLine: params.micrLine,
116
+ payeeName: params.payeeName,
117
+ chequeNumber: params.chequeNumber,
118
+ });
119
+ await this.http.post('/payments/cheques/v1/submit-deposit', body, opts);
120
+ }
121
+ // ---------------------------------------------------------------------------
122
+ // Confirmation of Payee (CoP)
123
+ // ---------------------------------------------------------------------------
124
+ /**
125
+ * Sends an outbound CoP name verification request.
126
+ *
127
+ * @remarks
128
+ * Match results: MATC (full match), CLOSE (close match), NOMATCH, INAM (wrong account type),
129
+ * PANM (partial name match).
130
+ */
131
+ async checkCoP(params, opts) {
132
+ const body = omitUndefined({
133
+ accountName: params.accountName,
134
+ sortCode: params.sortCode,
135
+ accountNumber: params.accountNumber,
136
+ accountType: params.accountType ?? 'Personal',
137
+ secondaryReference: params.secondaryReference,
138
+ });
139
+ const res = await this.http.post('/v1/Cop/outbound/name-verification', body, opts);
140
+ return res.data;
141
+ }
142
+ /** Opts a real account out of inbound CoP name checks. */
143
+ async optOutAccountCoP(accountId, opts) {
144
+ await this.http.put(`/v1/Cop/opt/accounts/${accountId}`, { optOut: true }, opts);
145
+ }
146
+ /** Opts a virtual account out of inbound CoP name checks. */
147
+ async optOutVirtualAccountCoP(accountId, virtualAccountId, opts) {
148
+ await this.http.put(`/v1/Cop/opt/accounts/${accountId}/virtual/${virtualAccountId}`, { optOut: true }, opts);
149
+ }
150
+ // ---------------------------------------------------------------------------
151
+ // GBP Cross-Border (deprecated)
152
+ // ---------------------------------------------------------------------------
153
+ /**
154
+ * Sends a GBP cross-border payment.
155
+ * @deprecated EOL 13 November 2026. Use `MultiCurrencyService.sendPayment()` instead.
156
+ */
157
+ async sendCrossBorder(params, opts) {
158
+ const body = omitUndefined({
159
+ accountId: params.accountId,
160
+ amount: params.amount,
161
+ currency: params.currency ?? 'GBP',
162
+ creditor: { name: params.creditorName, iban: params.creditorIban, bic: params.creditorBic },
163
+ remittanceInformation: params.remittanceInformation,
164
+ });
165
+ await this.http.post('/payments/cross-border-sterling/v3/payments', body, opts);
166
+ }
167
+ // ---------------------------------------------------------------------------
168
+ // SEPA Credit Transfer UK
169
+ // ---------------------------------------------------------------------------
170
+ /** Sends a SEPA Credit Transfer UK euro payment. */
171
+ async sendSEPA(params, opts) {
172
+ const body = omitUndefined({
173
+ debtorAccountId: params.debtorAccountId,
174
+ instructedAmount: { amount: params.amount, currency: 'EUR' },
175
+ creditor: { name: params.creditorName, iban: params.creditorIban, bic: params.creditorBic },
176
+ remittanceInformation: params.remittanceInformation,
177
+ endToEndId: params.endToEndId,
178
+ instructionId: params.instructionId,
179
+ });
180
+ await this.http.post('/payments/sepa-credit-transfer/v2/customer-payments', body, opts);
181
+ }
182
+ /** Returns a received SEPA Credit Transfer UK payment. */
183
+ async returnSEPA(params, opts) {
184
+ const body = {
185
+ originalInstructionId: params.originalInstructionId,
186
+ debtorAccountId: params.debtorAccountId,
187
+ returnReasonCode: params.returnReasonCode,
188
+ instructedAmount: { amount: params.amount, currency: 'EUR' },
189
+ };
190
+ await this.http.post('/payments/sepa-credit-transfer/v2/return-payments', body, opts);
191
+ }
192
+ }
193
+ exports.PaymentsService = PaymentsService;
194
+ // ---------------------------------------------------------------------------
195
+ // Helpers
196
+ // ---------------------------------------------------------------------------
197
+ function buildFpsBody(accountId, payments) {
198
+ return {
199
+ accountId,
200
+ payments: payments.map((p) => omitUndefined({
201
+ amount: p.amount,
202
+ currencyCode: p.currency ?? 'GBP',
203
+ destination: {
204
+ sortCode: p.destinationSortCode,
205
+ accountNumber: p.destinationAccountNumber,
206
+ name: p.destinationAccountName,
207
+ },
208
+ paymentType: p.paymentType ?? 'SIP',
209
+ enforceSendToScheme: p.enforceSendToScheme ?? false,
210
+ reference: p.reference,
211
+ endToEndId: p.endToEndId,
212
+ })),
213
+ };
214
+ }
215
+ function buildChapsBody(p) {
216
+ const body = {
217
+ debtorAccountId: p.debtorAccountId,
218
+ instructedAmount: { amount: p.amount, currency: p.currency ?? 'GBP' },
219
+ creditor: {
220
+ name: p.creditorName,
221
+ account: { sortCode: p.creditorSortCode, accountNumber: p.creditorAccountNumber },
222
+ address: buildAddress(p.creditorAddress),
223
+ },
224
+ remittanceInformation: p.remittanceInformation,
225
+ };
226
+ if (p.endToEndId)
227
+ body['endToEndId'] = p.endToEndId;
228
+ if (p.instructionId)
229
+ body['instructionId'] = p.instructionId;
230
+ if (p.debtorName !== undefined || p.debtorAddress !== undefined) {
231
+ body['debtor'] = omitUndefined({
232
+ name: p.debtorName,
233
+ address: p.debtorAddress ? buildAddress(p.debtorAddress) : undefined,
234
+ });
235
+ }
236
+ return body;
237
+ }
238
+ function buildAddress(addr) {
239
+ const result = {};
240
+ if (addr['streetName'])
241
+ result['streetName'] = addr['streetName'];
242
+ if (addr['buildingNumber'])
243
+ result['buildingNumber'] = addr['buildingNumber'];
244
+ if (addr['postCode'])
245
+ result['postCode'] = addr['postCode'];
246
+ if (addr['townName'])
247
+ result['townName'] = addr['townName'];
248
+ if (addr['country'])
249
+ result['country'] = addr['country'];
250
+ return result;
251
+ }
252
+ function omitUndefined(obj) {
253
+ return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined));
254
+ }
255
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../src/domains/payments/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/domains/payments/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildAckBody = exports.WebhooksService = void 0;
4
+ var service_js_1 = require("./service.js");
5
+ Object.defineProperty(exports, "WebhooksService", { enumerable: true, get: function () { return service_js_1.WebhooksService; } });
6
+ Object.defineProperty(exports, "buildAckBody", { enumerable: true, get: function () { return service_js_1.buildAckBody; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domains/webhooks/index.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAApD,6GAAA,eAAe,OAAA;AAAE,0GAAA,YAAY,OAAA"}