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,84 @@
1
+ import type { Amount, CurrencyCode, IBAN, ISODateTime, UUID } from '../../types/index.js';
2
+ export type MCCYAccountType = 'YourFunds' | 'SafeguardedPooled' | 'SafeguardedDesignated' | 'ClientMoneyPooled' | 'ClientMoneyDesignated' | 'SegregatedPooled' | 'SegregatedDesignated';
3
+ export interface MCCYAccount {
4
+ readonly id: UUID;
5
+ readonly name: string;
6
+ readonly type: MCCYAccountType | null;
7
+ readonly currency: CurrencyCode;
8
+ readonly iban: IBAN | null;
9
+ readonly status: string | null;
10
+ readonly balance: Amount | null;
11
+ readonly createdAt: ISODateTime | null;
12
+ }
13
+ export interface MCCYVirtualAccount {
14
+ readonly id: UUID;
15
+ readonly name: string;
16
+ readonly iban: IBAN | null;
17
+ readonly status: string | null;
18
+ readonly owner: string | null;
19
+ readonly createdAt: ISODateTime | null;
20
+ }
21
+ export interface CreateMCCYAccountParams {
22
+ readonly accountName: string;
23
+ readonly accountType: MCCYAccountType;
24
+ readonly currency: CurrencyCode;
25
+ readonly owner?: string;
26
+ readonly minimumBalance?: string;
27
+ }
28
+ export interface UpdateMCCYAccountParams {
29
+ readonly accountName?: string;
30
+ readonly copEnabled?: boolean;
31
+ }
32
+ export interface CreateMCCYVirtualAccountParams {
33
+ readonly accountName: string;
34
+ readonly owner?: string;
35
+ }
36
+ export interface CreditorAddress {
37
+ readonly streetName?: string;
38
+ readonly townName?: string;
39
+ readonly postCode?: string;
40
+ readonly country?: string;
41
+ }
42
+ export interface InternationalPayment {
43
+ readonly accountId: UUID;
44
+ readonly amount: Amount;
45
+ readonly currency: CurrencyCode;
46
+ readonly creditorName: string;
47
+ readonly creditorIban?: IBAN;
48
+ readonly creditorBic?: string;
49
+ readonly creditorAddress?: CreditorAddress;
50
+ readonly remittanceInformation?: string;
51
+ readonly endToEndId?: string;
52
+ }
53
+ export interface FXTradeParams {
54
+ readonly sellAccountId: UUID;
55
+ readonly buyAccountId: UUID;
56
+ readonly sellCurrency: CurrencyCode;
57
+ readonly buyCurrency: CurrencyCode;
58
+ readonly sellAmount?: Amount;
59
+ readonly buyAmount?: Amount;
60
+ readonly endToEndId?: string;
61
+ }
62
+ export interface FXTradeResult {
63
+ readonly tradeId: string;
64
+ readonly rate: string;
65
+ readonly sellAmount: Amount;
66
+ readonly buyAmount: Amount;
67
+ }
68
+ export interface FXQuoteParams {
69
+ readonly sellAccountId: UUID;
70
+ readonly buyAccountId: UUID;
71
+ readonly sellCurrency: CurrencyCode;
72
+ readonly buyCurrency: CurrencyCode;
73
+ readonly sellAmount?: Amount;
74
+ readonly buyAmount?: Amount;
75
+ }
76
+ export interface FXQuote {
77
+ readonly quoteId: string;
78
+ readonly rate: string;
79
+ readonly sellAmount: Amount;
80
+ readonly buyAmount: Amount;
81
+ readonly expiresAt: ISODateTime;
82
+ isExpired(): boolean;
83
+ }
84
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domains/multicurrency/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { PaymentsService } from './service.js';
2
+ export type { FpsPayment, FpsPaymentType, SendFpsParams, SendFpsBulkParams, InternalTransferParams, SendChapsParams, ReturnChapsParams, ReturnBacsPaymentParams, SubmitChequeDepositParams, CheckCoPParams, CoPResponse, CoPMatchResult, SendCrossBorderParams, SendSepaParams, ReturnSepaParams, } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domains/payments/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,65 @@
1
+ import type { HttpClient, RequestOptions } from '../../core/http.js';
2
+ import type { SendFpsParams, SendFpsBulkParams, InternalTransferParams, SendChapsParams, ReturnChapsParams, ReturnBacsPaymentParams, SubmitChequeDepositParams, CheckCoPParams, CoPResponse, SendCrossBorderParams, SendSepaParams, ReturnSepaParams } from './types.js';
3
+ /**
4
+ * GBP Payments service.
5
+ *
6
+ * Covers: FPS (single + bulk), Internal Transfers, CHAPS, Bacs returns,
7
+ * Cheque Deposits, Confirmation of Payee, Cross-Border (deprecated), SEPA SCT UK.
8
+ */
9
+ export declare class PaymentsService {
10
+ private readonly http;
11
+ constructor(http: HttpClient);
12
+ /**
13
+ * Sends a single Faster Payment.
14
+ *
15
+ * @remarks
16
+ * Limit: £1,000,000 per payment. Confirmation via `TransactionSettled` webhook.
17
+ * Set `enforceSendToScheme: true` to always route via FPS scheme (subject to
18
+ * Pay.UK APP scam reimbursement liability).
19
+ */
20
+ sendFPS(params: SendFpsParams, opts?: RequestOptions): Promise<void>;
21
+ /** Sends multiple Faster Payments in one request. */
22
+ sendFPSBulk(params: SendFpsBulkParams, opts?: RequestOptions): Promise<void>;
23
+ /** Transfers funds between ClearBank-held accounts (same institution). */
24
+ sendInternalTransfer(params: InternalTransferParams, opts?: RequestOptions): Promise<void>;
25
+ /** Sends multiple internal transfers in one request. */
26
+ sendBulkInternalTransfer(params: InternalTransferParams[], opts?: RequestOptions): Promise<void>;
27
+ /**
28
+ * Sends a CHAPS customer credit transfer (pacs.008).
29
+ *
30
+ * @remarks
31
+ * No upper limit. Same-day settlement during Bank of England RTGS hours.
32
+ * Requires structured ISO 20022 creditor address.
33
+ */
34
+ sendCHAPS(params: SendChapsParams, opts?: RequestOptions): Promise<void>;
35
+ /** Returns a received CHAPS payment. */
36
+ returnCHAPS(params: ReturnChapsParams, opts?: RequestOptions): Promise<void>;
37
+ /** Returns a Bacs payment received on a real account. */
38
+ returnBacs(accountId: string, params: ReturnBacsPaymentParams, opts?: RequestOptions): Promise<void>;
39
+ /** Returns a Bacs payment received on a virtual account. */
40
+ returnVirtualBacs(accountId: string, virtualAccountId: string, params: ReturnBacsPaymentParams, opts?: RequestOptions): Promise<void>;
41
+ /** Submits a cheque image deposit via the Image Clearing System (ICS). */
42
+ submitChequeDeposit(params: SubmitChequeDepositParams, opts?: RequestOptions): Promise<void>;
43
+ /**
44
+ * Sends an outbound CoP name verification request.
45
+ *
46
+ * @remarks
47
+ * Match results: MATC (full match), CLOSE (close match), NOMATCH, INAM (wrong account type),
48
+ * PANM (partial name match).
49
+ */
50
+ checkCoP(params: CheckCoPParams, opts?: RequestOptions): Promise<CoPResponse>;
51
+ /** Opts a real account out of inbound CoP name checks. */
52
+ optOutAccountCoP(accountId: string, opts?: RequestOptions): Promise<void>;
53
+ /** Opts a virtual account out of inbound CoP name checks. */
54
+ optOutVirtualAccountCoP(accountId: string, virtualAccountId: string, opts?: RequestOptions): Promise<void>;
55
+ /**
56
+ * Sends a GBP cross-border payment.
57
+ * @deprecated EOL 13 November 2026. Use `MultiCurrencyService.sendPayment()` instead.
58
+ */
59
+ sendCrossBorder(params: SendCrossBorderParams, opts?: RequestOptions): Promise<void>;
60
+ /** Sends a SEPA Credit Transfer UK euro payment. */
61
+ sendSEPA(params: SendSepaParams, opts?: RequestOptions): Promise<void>;
62
+ /** Returns a received SEPA Credit Transfer UK payment. */
63
+ returnSEPA(params: ReturnSepaParams, opts?: RequestOptions): Promise<void>;
64
+ }
65
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/domains/payments/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EAEjB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAM7C;;;;;;;OAOG;IACG,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1E,qDAAqD;IAC/C,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASlF,0EAA0E;IACpE,oBAAoB,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAchG,wDAAwD;IAClD,wBAAwB,CAC5B,MAAM,EAAE,sBAAsB,EAAE,EAChC,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,IAAI,CAAC;IAsBhB;;;;;;OAMG;IACG,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9E,wCAAwC;IAClC,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAclF,yDAAyD;IACnD,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,uBAAuB,EAC/B,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,IAAI,CAAC;IAKhB,4DAA4D;IACtD,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,uBAAuB,EAC/B,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,IAAI,CAAC;IAahB,0EAA0E;IACpE,mBAAmB,CACvB,MAAM,EAAE,yBAAyB,EACjC,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,IAAI,CAAC;IAkBhB;;;;;;OAMG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAYnF,0DAA0D;IACpD,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/E,6DAA6D;IACvD,uBAAuB,CAC3B,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,IAAI,CAAC;IAYhB;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1F,oDAAoD;IAC9C,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5E,0DAA0D;IACpD,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CASjF"}
@@ -0,0 +1,107 @@
1
+ import type { Amount, CurrencyCode, UUID, StructuredAddress } from '../../types/index.js';
2
+ export type FpsPaymentType = 'SIP' | 'SOP' | 'FDP';
3
+ export interface FpsPayment {
4
+ readonly amount: Amount;
5
+ readonly currency?: CurrencyCode;
6
+ readonly destinationSortCode: string;
7
+ readonly destinationAccountNumber: string;
8
+ readonly destinationAccountName: string;
9
+ readonly reference?: string;
10
+ readonly paymentType?: FpsPaymentType;
11
+ readonly enforceSendToScheme?: boolean;
12
+ readonly endToEndId?: string;
13
+ }
14
+ export interface SendFpsParams {
15
+ readonly accountId: UUID;
16
+ readonly payment: FpsPayment;
17
+ readonly payments?: never;
18
+ }
19
+ export interface SendFpsBulkParams {
20
+ readonly accountId: UUID;
21
+ readonly payments: FpsPayment[];
22
+ readonly payment?: never;
23
+ }
24
+ export interface InternalTransferParams {
25
+ readonly debtorAccountId: UUID;
26
+ readonly creditorAccountId: UUID;
27
+ readonly amount: Amount;
28
+ readonly currency?: CurrencyCode;
29
+ readonly reference?: string;
30
+ readonly endToEndId?: string;
31
+ readonly debtorVirtualAccountId?: UUID;
32
+ readonly creditorVirtualAccountId?: UUID;
33
+ }
34
+ export interface SendChapsParams {
35
+ readonly debtorAccountId: UUID;
36
+ readonly amount: Amount;
37
+ readonly currency?: CurrencyCode;
38
+ readonly creditorName: string;
39
+ readonly creditorSortCode: string;
40
+ readonly creditorAccountNumber: string;
41
+ readonly creditorAddress: StructuredAddress;
42
+ readonly remittanceInformation: string;
43
+ readonly endToEndId?: string;
44
+ readonly instructionId?: string;
45
+ readonly debtorName?: string;
46
+ readonly debtorAddress?: StructuredAddress;
47
+ }
48
+ export interface ReturnChapsParams {
49
+ readonly originalInstructionId: string;
50
+ readonly debtorAccountId: UUID;
51
+ readonly returnReasonCode: string;
52
+ readonly amount: Amount;
53
+ readonly currency?: CurrencyCode;
54
+ }
55
+ export interface ReturnBacsPaymentParams {
56
+ readonly transactionId: UUID;
57
+ readonly reasonCode: string;
58
+ }
59
+ export interface SubmitChequeDepositParams {
60
+ readonly accountId: UUID;
61
+ readonly amount: Amount;
62
+ readonly currency?: CurrencyCode;
63
+ readonly chequeImageFront: string;
64
+ readonly chequeImageBack: string;
65
+ readonly micrLine: string;
66
+ readonly payeeName?: string;
67
+ readonly chequeNumber?: string;
68
+ }
69
+ export type CoPMatchResult = 'MATC' | 'CLOSE' | 'NOMATCH' | 'INAM' | 'PANM';
70
+ export interface CheckCoPParams {
71
+ readonly accountName: string;
72
+ readonly sortCode: string;
73
+ readonly accountNumber: string;
74
+ readonly accountType?: 'Personal' | 'Business';
75
+ readonly secondaryReference?: string;
76
+ }
77
+ export interface CoPResponse {
78
+ readonly matchResult: CoPMatchResult;
79
+ readonly accountName?: string;
80
+ }
81
+ /** @deprecated EOL 13 November 2026. Use multicurrency payments instead. */
82
+ export interface SendCrossBorderParams {
83
+ readonly accountId: UUID;
84
+ readonly amount: Amount;
85
+ readonly currency?: CurrencyCode;
86
+ readonly creditorName: string;
87
+ readonly creditorIban: string;
88
+ readonly creditorBic: string;
89
+ readonly remittanceInformation?: string;
90
+ }
91
+ export interface SendSepaParams {
92
+ readonly debtorAccountId: UUID;
93
+ readonly amount: Amount;
94
+ readonly creditorName: string;
95
+ readonly creditorIban: string;
96
+ readonly creditorBic: string;
97
+ readonly remittanceInformation?: string;
98
+ readonly endToEndId?: string;
99
+ readonly instructionId?: string;
100
+ }
101
+ export interface ReturnSepaParams {
102
+ readonly originalInstructionId: string;
103
+ readonly debtorAccountId: UUID;
104
+ readonly returnReasonCode: string;
105
+ readonly amount: Amount;
106
+ }
107
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domains/payments/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { WebhooksService, buildAckBody } from './service.js';
2
+ export type { WebhookEnvelope, WebhookEventType, WebhookEventMap, PartialWebhookHandlers, WebhookHandlerFn, FITestEvent, TransactionSettled, PaymentMessageAssessmentFailed, PaymentMessageValidationFailed, TransactionRejected, FpsPaymentReturnCreated, BacsPaymentCreated, BacsMandateCreated, BacsMandateCancelled, BacsMandateMigrated, ChapsPaymentCreated, ChapsReturnCreated, CopOutboundResponse, CoPMatchResult, MccyTransactionCreated, FxTradeCreated, FxTradeSettled, CustomerKycStatusChanged, EmbeddedAccountCreated, EmbeddedTransactionSettled, } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domains/webhooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,8BAA8B,EAC9B,8BAA8B,EAC9B,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,YAAY,CAAC"}
@@ -0,0 +1,66 @@
1
+ import type { WebhookEnvelope, WebhookEventMap, PartialWebhookHandlers } from './types.js';
2
+ export { buildAckBody } from './types.js';
3
+ /**
4
+ * Webhook signature verification and typed event dispatch.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * const webhooks = client.webhooks;
9
+ *
10
+ * app.post('/webhooks', async (req, res) => {
11
+ * const body = JSON.stringify(req.body);
12
+ * const isValid = await webhooks.verifySignature(body, req.headers['digitalsignature'], publicKeyPem);
13
+ * if (!isValid) return res.status(401).send('Invalid signature');
14
+ *
15
+ * await webhooks.dispatch(req.body, {
16
+ * TransactionSettled: async (event) => {
17
+ * await processPayment(event);
18
+ * },
19
+ * onUnknown: (envelope) => console.log('Unknown event:', envelope.Type),
20
+ * });
21
+ *
22
+ * res.json(webhooks.buildAck(req.body));
23
+ * });
24
+ * ```
25
+ */
26
+ export declare class WebhooksService {
27
+ /**
28
+ * Verifies a ClearBank `DigitalSignature` header using ClearBank's public key.
29
+ * Download the public key from Portal → Webhook Management.
30
+ *
31
+ * @param body Raw request body as a string (before JSON.parse).
32
+ * @param signature Value of the `DigitalSignature` header.
33
+ * @param publicKeyPem ClearBank RSA public key in PEM format.
34
+ */
35
+ verifySignature(body: string, signature: string, publicKeyPem: string): Promise<boolean>;
36
+ /**
37
+ * Parses and validates a raw webhook body into a typed envelope.
38
+ *
39
+ * @throws {ClearBankError} if the body is not valid JSON or is missing the Type field.
40
+ */
41
+ parseEnvelope(rawBody: unknown): WebhookEnvelope;
42
+ /**
43
+ * Parses the Payload of an envelope into a strongly-typed event object.
44
+ * Returns `null` for unknown event types (forward-compatible).
45
+ */
46
+ parseEvent<K extends keyof WebhookEventMap>(envelope: WebhookEnvelope, eventType: K): WebhookEventMap[K] | null;
47
+ /**
48
+ * Dispatches a webhook envelope to the appropriate handler.
49
+ *
50
+ * Only the handlers you provide are called — unhandled event types are silently
51
+ * ignored unless you provide `onUnknown`. This makes it easy to add handlers
52
+ * incrementally as you subscribe to more webhook event types.
53
+ *
54
+ * @param envelope Parsed webhook envelope (from `parseEnvelope`).
55
+ * @param handlers Object mapping event type names to handler functions.
56
+ */
57
+ dispatch(envelope: WebhookEnvelope, handlers: PartialWebhookHandlers): Promise<void>;
58
+ /**
59
+ * Builds the JSON acknowledgement body to send in the webhook response.
60
+ * ClearBank uses the nonce to track delivered events.
61
+ */
62
+ buildAck(envelope: WebhookEnvelope): {
63
+ nonce: number;
64
+ };
65
+ }
66
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/domains/webhooks/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,sBAAsB,EAoBvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,eAAe;IAC1B;;;;;;;OAOG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9F;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe;IAmChD;;;OAGG;IACH,UAAU,CAAC,CAAC,SAAS,MAAM,eAAe,EACxC,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,CAAC,GACX,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAK5B;;;;;;;;;OASG;IACG,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkH1F;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;CAGvD"}
@@ -0,0 +1,215 @@
1
+ import type { Amount, CurrencyCode, ISODateTime, UUID } from '../../types/index.js';
2
+ /**
3
+ * Known ClearBank webhook event types.
4
+ * The dispatch switch handles a `default` branch for forward-compatibility
5
+ * with event types introduced after this SDK version.
6
+ */
7
+ export type WebhookEventType = 'FITestEvent' | 'TransactionSettled' | 'PaymentMessageAssessmentFailed' | 'PaymentMessageValidationFailed' | 'TransactionRejected' | 'FpsPaymentReturnCreated' | 'BacsPaymentCreated' | 'BacsMandateCreated' | 'BacsMandateCancelled' | 'BacsMandateMigrated' | 'ChapsPaymentCreated' | 'ChapsReturnCreated' | 'CopOutboundResponse' | 'MccyTransactionCreated' | 'FxTradeCreated' | 'FxTradeSettled' | 'CustomerKycStatusChanged' | 'EmbeddedAccountCreated' | 'EmbeddedTransactionSettled';
8
+ export interface WebhookEnvelope {
9
+ readonly Type: string;
10
+ readonly Version: number;
11
+ readonly Nonce: number;
12
+ readonly Payload: Record<string, unknown>;
13
+ }
14
+ /** Returns the JSON body to send as the webhook acknowledgement. */
15
+ export declare function buildAckBody(envelope: WebhookEnvelope): {
16
+ nonce: number;
17
+ };
18
+ export interface FITestEvent {
19
+ readonly firedAt: string;
20
+ }
21
+ export interface TransactionSettled {
22
+ readonly accountId: UUID;
23
+ readonly virtualAccountId: UUID | null;
24
+ readonly transactionId: UUID;
25
+ readonly amount: Amount;
26
+ readonly currencyCode: CurrencyCode;
27
+ readonly direction: 'Inbound' | 'Outbound';
28
+ readonly type: string;
29
+ readonly status: string;
30
+ readonly reference: string | null;
31
+ readonly counterpartName: string | null;
32
+ readonly counterpartSortCode: string | null;
33
+ readonly counterpartAccountNumber: string | null;
34
+ readonly endToEndId: string | null;
35
+ readonly timestamp: ISODateTime;
36
+ }
37
+ export interface PaymentMessageAssessmentFailed {
38
+ readonly paymentId: UUID;
39
+ readonly accountId: UUID;
40
+ readonly reasonCode: string;
41
+ readonly reasonDescription: string;
42
+ readonly timestamp: ISODateTime;
43
+ }
44
+ export interface PaymentMessageValidationFailed {
45
+ readonly paymentId: UUID;
46
+ readonly accountId: UUID;
47
+ readonly errors: Record<string, unknown>;
48
+ readonly timestamp: ISODateTime;
49
+ }
50
+ export interface TransactionRejected {
51
+ readonly transactionId: UUID;
52
+ readonly accountId: UUID;
53
+ readonly amount: Amount;
54
+ readonly currencyCode: CurrencyCode;
55
+ readonly reasonCode: string;
56
+ readonly reasonDescription: string;
57
+ readonly timestamp: ISODateTime;
58
+ }
59
+ export interface FpsPaymentReturnCreated {
60
+ readonly returnId: UUID;
61
+ readonly originalTransactionId: UUID;
62
+ readonly accountId: UUID;
63
+ readonly amount: Amount;
64
+ readonly currencyCode: CurrencyCode;
65
+ readonly reasonCode: string;
66
+ readonly timestamp: ISODateTime;
67
+ }
68
+ export interface BacsPaymentCreated {
69
+ readonly paymentId: UUID;
70
+ readonly accountId: UUID;
71
+ readonly virtualAccountId: UUID | null;
72
+ readonly amount: Amount;
73
+ readonly currencyCode: CurrencyCode;
74
+ readonly type: string;
75
+ readonly serviceUserNumber: string;
76
+ readonly reference: string;
77
+ readonly processingDate: string;
78
+ readonly timestamp: ISODateTime;
79
+ }
80
+ export interface BacsMandateCreated {
81
+ readonly mandateId: UUID;
82
+ readonly accountId: UUID;
83
+ readonly serviceUserNumber: string;
84
+ readonly reference: string;
85
+ readonly payerName: string;
86
+ readonly status: string;
87
+ readonly timestamp: ISODateTime;
88
+ }
89
+ export interface BacsMandateCancelled {
90
+ readonly mandateId: UUID;
91
+ readonly accountId: UUID;
92
+ readonly reason: string;
93
+ readonly timestamp: ISODateTime;
94
+ }
95
+ export interface BacsMandateMigrated {
96
+ readonly mandateId: UUID;
97
+ readonly accountId: UUID;
98
+ readonly oldServiceUserNumber: string;
99
+ readonly newServiceUserNumber: string;
100
+ readonly timestamp: ISODateTime;
101
+ }
102
+ export interface ChapsPaymentCreated {
103
+ readonly instructionId: UUID;
104
+ readonly accountId: UUID;
105
+ readonly amount: Amount;
106
+ readonly currencyCode: CurrencyCode;
107
+ readonly creditorName: string;
108
+ readonly remittanceInformation: string;
109
+ readonly timestamp: ISODateTime;
110
+ }
111
+ export interface ChapsReturnCreated {
112
+ readonly returnId: UUID;
113
+ readonly originalInstructionId: UUID;
114
+ readonly accountId: UUID;
115
+ readonly amount: Amount;
116
+ readonly reasonCode: string;
117
+ readonly timestamp: ISODateTime;
118
+ }
119
+ export type CoPMatchResult = 'MATC' | 'CLOSE' | 'NOMATCH' | 'INAM' | 'PANM';
120
+ export interface CopOutboundResponse {
121
+ readonly requestId: UUID;
122
+ readonly matchResult: CoPMatchResult;
123
+ readonly accountName: string;
124
+ readonly accountType: string;
125
+ readonly sortCode: string;
126
+ readonly accountNumber: string;
127
+ readonly timestamp: ISODateTime;
128
+ }
129
+ export interface MccyTransactionCreated {
130
+ readonly transactionId: UUID;
131
+ readonly accountId: UUID;
132
+ readonly virtualAccountId: UUID | null;
133
+ readonly amount: Amount;
134
+ readonly currencyCode: CurrencyCode;
135
+ readonly direction: string;
136
+ readonly type: string;
137
+ readonly reference: string | null;
138
+ readonly timestamp: ISODateTime;
139
+ }
140
+ export interface FxTradeCreated {
141
+ readonly tradeId: UUID;
142
+ readonly sellAccountId: UUID;
143
+ readonly buyAccountId: UUID;
144
+ readonly sellCurrency: CurrencyCode;
145
+ readonly buyCurrency: CurrencyCode;
146
+ readonly sellAmount: Amount;
147
+ readonly buyAmount: Amount;
148
+ readonly rate: string;
149
+ readonly timestamp: ISODateTime;
150
+ }
151
+ export interface FxTradeSettled {
152
+ readonly tradeId: UUID;
153
+ readonly sellAccountId: UUID;
154
+ readonly buyAccountId: UUID;
155
+ readonly sellAmount: Amount;
156
+ readonly buyAmount: Amount;
157
+ readonly timestamp: ISODateTime;
158
+ }
159
+ export interface CustomerKycStatusChanged {
160
+ readonly customerId: UUID;
161
+ readonly previousStatus: string;
162
+ readonly newStatus: string;
163
+ readonly reason: string;
164
+ readonly timestamp: ISODateTime;
165
+ }
166
+ export interface EmbeddedAccountCreated {
167
+ readonly accountId: UUID;
168
+ readonly customerId: UUID;
169
+ readonly accountType: string;
170
+ readonly accountName: string;
171
+ readonly iban: string | null;
172
+ readonly sortCode: string | null;
173
+ readonly accountNumber: string | null;
174
+ readonly timestamp: ISODateTime;
175
+ }
176
+ export interface EmbeddedTransactionSettled {
177
+ readonly transactionId: UUID;
178
+ readonly accountId: UUID;
179
+ readonly customerId: UUID;
180
+ readonly amount: Amount;
181
+ readonly currencyCode: CurrencyCode;
182
+ readonly direction: string;
183
+ readonly type: string;
184
+ readonly reference: string | null;
185
+ readonly counterpartName: string | null;
186
+ readonly timestamp: ISODateTime;
187
+ }
188
+ export interface WebhookEventMap {
189
+ FITestEvent: FITestEvent;
190
+ TransactionSettled: TransactionSettled;
191
+ PaymentMessageAssessmentFailed: PaymentMessageAssessmentFailed;
192
+ PaymentMessageValidationFailed: PaymentMessageValidationFailed;
193
+ TransactionRejected: TransactionRejected;
194
+ FpsPaymentReturnCreated: FpsPaymentReturnCreated;
195
+ BacsPaymentCreated: BacsPaymentCreated;
196
+ BacsMandateCreated: BacsMandateCreated;
197
+ BacsMandateCancelled: BacsMandateCancelled;
198
+ BacsMandateMigrated: BacsMandateMigrated;
199
+ ChapsPaymentCreated: ChapsPaymentCreated;
200
+ ChapsReturnCreated: ChapsReturnCreated;
201
+ CopOutboundResponse: CopOutboundResponse;
202
+ MccyTransactionCreated: MccyTransactionCreated;
203
+ FxTradeCreated: FxTradeCreated;
204
+ FxTradeSettled: FxTradeSettled;
205
+ CustomerKycStatusChanged: CustomerKycStatusChanged;
206
+ EmbeddedAccountCreated: EmbeddedAccountCreated;
207
+ EmbeddedTransactionSettled: EmbeddedTransactionSettled;
208
+ }
209
+ export type WebhookHandlerFn<T> = (payload: T, envelope: WebhookEnvelope) => void | Promise<void>;
210
+ export type PartialWebhookHandlers = {
211
+ [K in keyof WebhookEventMap]?: WebhookHandlerFn<WebhookEventMap[K]>;
212
+ } & {
213
+ onUnknown?: (envelope: WebhookEnvelope) => void | Promise<void>;
214
+ };
215
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domains/webhooks/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * clearbank-sdk — Production-grade TypeScript SDK for the ClearBank UK API.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import { AccountsService } from './domains/accounts/service.js';
7
+ import { PaymentsService } from './domains/payments/service.js';
8
+ import { MultiCurrencyService } from './domains/multicurrency/service.js';
9
+ import { EmbeddedBankingService } from './domains/embedded/service.js';
10
+ import { WebhooksService } from './domains/webhooks/service.js';
11
+ import type { ClearBankConfig } from './core/config.js';
12
+ export type { ClearBankConfig, Environment } from './core/config.js';
13
+ export type { RequestOptions, ApiResponse } from './core/http.js';
14
+ export { ClearBankError } from './types/index.js';
15
+ export type { TelemetryEvent, TelemetryHook, PaginationParams, PaginatedResponse, DateRangeParams, StructuredAddress, CurrencyCode, Amount, UUID, ISODateTime, SortCode, IBAN, } from './types/index.js';
16
+ export { AccountsService } from './domains/accounts/service.js';
17
+ export type { Account, AccountType, AccountStatus, VirtualAccount, Transaction, TransactionDirection, TransactionStatus, DirectDebitInstruction, CreateAccountParams, UpdateAccountParams, CreateVirtualAccountParams, UpdateVirtualAccountParams, CreateDDIParams, StatementRequestParams, } from './domains/accounts/types.js';
18
+ export { PaymentsService } from './domains/payments/service.js';
19
+ export type { FpsPayment, FpsPaymentType, SendFpsParams, SendFpsBulkParams, InternalTransferParams, SendChapsParams, ReturnChapsParams, ReturnBacsPaymentParams, SubmitChequeDepositParams, CheckCoPParams, CoPResponse, SendCrossBorderParams, SendSepaParams, ReturnSepaParams, } from './domains/payments/types.js';
20
+ export type { CoPMatchResult as PaymentCoPMatchResult } from './domains/payments/types.js';
21
+ export { MultiCurrencyService } from './domains/multicurrency/service.js';
22
+ export type { MCCYAccount, MCCYAccountType, MCCYVirtualAccount, CreateMCCYAccountParams, UpdateMCCYAccountParams, CreateMCCYVirtualAccountParams, InternationalPayment, CreditorAddress, FXTradeParams, FXTradeResult, FXQuoteParams, FXQuote, } from './domains/multicurrency/types.js';
23
+ export { EmbeddedBankingService } from './domains/embedded/service.js';
24
+ export type { Customer, CustomerType, KYCStatus, CustomerAddress, CreateRetailCustomerParams, CreateSoleTraderCustomerParams, CreateLegalEntityCustomerParams, UpdateCustomerParams, BeneficialOwner, EmbeddedAccount, EmbeddedAccountType, CreateHubAccountParams, CreatePaymentAccountParams, CreateSavingsAccountParams, UpdateEmbeddedAccountParams, EmbeddedFPSParams, CreateISAParams, ISATransferInParams, InterestProduct, ConfigureInterestParams, KYCStatusResponse, SubmitKYCParams, } from './domains/embedded/types.js';
25
+ export { WebhooksService } from './domains/webhooks/service.js';
26
+ export { buildAckBody } from './domains/webhooks/service.js';
27
+ export type { WebhookEnvelope, WebhookEventType, WebhookEventMap, PartialWebhookHandlers, WebhookHandlerFn, FITestEvent, TransactionSettled, PaymentMessageAssessmentFailed, PaymentMessageValidationFailed, TransactionRejected, FpsPaymentReturnCreated, BacsPaymentCreated, BacsMandateCreated, BacsMandateCancelled, BacsMandateMigrated, ChapsPaymentCreated, ChapsReturnCreated, CopOutboundResponse, CoPMatchResult, MccyTransactionCreated, FxTradeCreated, FxTradeSettled, CustomerKycStatusChanged, EmbeddedAccountCreated, EmbeddedTransactionSettled, } from './domains/webhooks/types.js';
28
+ export { generateUUID, isUUID, isValidSortCode, isValidAccountNumber, isValidIBAN, formatAmount, } from './utils/index.js';
29
+ /**
30
+ * The top-level ClearBank API client.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * const client = new ClearBankClient({
35
+ * apiToken: process.env.CLEARBANK_API_TOKEN!,
36
+ * privateKey: process.env.CLEARBANK_PRIVATE_KEY!,
37
+ * environment: 'simulation',
38
+ * });
39
+ *
40
+ * const accounts = await client.accounts.list();
41
+ * await client.payments.sendFPS({ accountId, payment: { ... } });
42
+ * ```
43
+ */
44
+ export declare class ClearBankClient {
45
+ readonly accounts: AccountsService;
46
+ readonly payments: PaymentsService;
47
+ readonly multiCurrency: MultiCurrencyService;
48
+ readonly embedded: EmbeddedBankingService;
49
+ readonly webhooks: WebhooksService;
50
+ constructor(config: ClearBankConfig);
51
+ static generateRequestId(): string;
52
+ }
53
+ export default ClearBankClient;
54
+ //# sourceMappingURL=index.d.ts.map