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 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;AAOtD,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,sDAAsD;IACtD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,0DAA0D;IAC1D,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;CAC9C;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CAkBrE"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Cryptographic utilities for the ClearBank SDK.
3
+ *
4
+ * Uses the Web Crypto API (globally available in Node.js ≥ 18 and all modern browsers).
5
+ * A Node.js `crypto` module fallback handles PKCS#1 RSA private keys.
6
+ */
7
+ /**
8
+ * Generates a UUID v4 string using cryptographically secure random bytes.
9
+ */
10
+ export declare function generateUUID(): string;
11
+ /**
12
+ * Signs a request body with an RSA private key (PKCS#1 v1.5 + SHA-256).
13
+ * Returns Base64-encoded signature for the `DigitalSignature` header.
14
+ */
15
+ export declare function signRequestBody(body: string, privateKeyPem: string): Promise<string>;
16
+ /**
17
+ * Verifies a ClearBank `DigitalSignature` against the raw body using their RSA public key.
18
+ */
19
+ export declare function verifySignature(body: string | Uint8Array, signatureBase64: string, publicKeyPem: string): Promise<boolean>;
20
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/core/crypto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAkBrC;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1F;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,GAAG,UAAU,EACzB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAWlB"}
@@ -0,0 +1,34 @@
1
+ import type { ResolvedConfig } from './config.js';
2
+ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
3
+ export interface RequestOptions {
4
+ /** Pin X-Request-Id for idempotent retries of mutating requests. */
5
+ readonly requestId?: string;
6
+ /** Extra headers to merge into this specific request. */
7
+ readonly headers?: Record<string, string>;
8
+ /** Override max retries for this specific call. */
9
+ readonly maxRetries?: number;
10
+ }
11
+ export type ApiResponse<T> = {
12
+ readonly data: T;
13
+ readonly requestId: string;
14
+ readonly correlationId: string | null;
15
+ };
16
+ /**
17
+ * Core HTTP client. All domain services use this.
18
+ */
19
+ export declare class HttpClient {
20
+ private readonly config;
21
+ constructor(config: ResolvedConfig);
22
+ get<T>(path: string, params?: Record<string, unknown>, opts?: RequestOptions): Promise<ApiResponse<T>>;
23
+ post<T>(path: string, body?: unknown, opts?: RequestOptions): Promise<ApiResponse<T>>;
24
+ put<T>(path: string, body?: unknown, opts?: RequestOptions): Promise<ApiResponse<T>>;
25
+ patch<T>(path: string, body?: unknown, opts?: RequestOptions): Promise<ApiResponse<T>>;
26
+ delete<T = void>(path: string, opts?: RequestOptions): Promise<ApiResponse<T>>;
27
+ static generateRequestId(): string;
28
+ private request;
29
+ private executeOnce;
30
+ private buildHeaders;
31
+ private handleResponse;
32
+ private emitTelemetry;
33
+ }
34
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/core/http.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,mDAAmD;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC,CAAC;AAIF;;GAEG;AACH,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAE7C,GAAG,CAAC,CAAC,EACT,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAKpB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIrF,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIpF,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAItF,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIpF,MAAM,CAAC,iBAAiB,IAAI,MAAM;YAQpB,OAAO;YAmBP,WAAW;YAwDX,YAAY;YA2BZ,cAAc;IAgB5B,OAAO,CAAC,aAAa;CAqBtB"}
@@ -0,0 +1,7 @@
1
+ export { HttpClient } from './http.js';
2
+ export { resolveConfig } from './config.js';
3
+ export { generateUUID, signRequestBody, verifySignature } from './crypto.js';
4
+ export { withRetry } from './retry.js';
5
+ export type { ClearBankConfig, ResolvedConfig, Environment } from './config.js';
6
+ export type { HttpMethod, RequestOptions, ApiResponse } from './http.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAChF,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { ClearBankError } from '../types/index.js';
2
+ import type { ResolvedConfig } from './config.js';
3
+ /**
4
+ * Executes fn with exponential backoff retries on retryable ClearBank errors.
5
+ *
6
+ * ClearBank's idempotency contract:
7
+ * - 5XX retries MUST use the same X-Request-Id and body.
8
+ * - 429 (rate limited): back off and retry.
9
+ * - 409 (duplicate X-Request-Id): do NOT retry.
10
+ *
11
+ * Jitter strategy: full-jitter (random between 0 and min(cap, base * 2^attempt)).
12
+ */
13
+ export declare function withRetry<T>(fn: () => Promise<T>, config: Pick<ResolvedConfig, 'maxRetries' | 'retryBaseDelayMs' | 'retryMaxDelayMs'>, isClearBankError: (e: unknown) => e is ClearBankError): Promise<T>;
14
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/core/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,CAAC,EACnF,gBAAgB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,cAAc,GACpD,OAAO,CAAC,CAAC,CAAC,CAqBZ"}
@@ -0,0 +1,3 @@
1
+ export { AccountsService } from './service.js';
2
+ export type { Account, AccountType, AccountStatus, VirtualAccount, Transaction, TransactionDirection, TransactionStatus, DirectDebitInstruction, CreateAccountParams, UpdateAccountParams, CreateVirtualAccountParams, UpdateVirtualAccountParams, CreateDDIParams, StatementRequestParams, } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domains/accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EACV,OAAO,EACP,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,61 @@
1
+ import type { HttpClient, RequestOptions } from '../../core/http.js';
2
+ import type { PaginationParams, PaginatedResponse, DateRangeParams } from '../../types/index.js';
3
+ import type { Account, CreateAccountParams, UpdateAccountParams, VirtualAccount, CreateVirtualAccountParams, UpdateVirtualAccountParams, Transaction, DirectDebitInstruction, CreateDDIParams, StatementRequestParams } from './types.js';
4
+ /**
5
+ * GBP Account Management service.
6
+ *
7
+ * Covers real accounts, virtual accounts, transactions, Bacs DDIs, and camt.053 reporting.
8
+ */
9
+ export declare class AccountsService {
10
+ private readonly http;
11
+ constructor(http: HttpClient);
12
+ /** Returns all real GBP accounts for your institution. */
13
+ list(params?: PaginationParams, opts?: RequestOptions): Promise<PaginatedResponse<Account>>;
14
+ /** Returns a single real GBP account by ID. */
15
+ get(accountId: string, opts?: RequestOptions): Promise<Account>;
16
+ /** Creates a new real GBP account. */
17
+ create(params: CreateAccountParams, opts?: RequestOptions): Promise<Account>;
18
+ /** Amends a real GBP account (rename, toggle CoP). */
19
+ update(accountId: string, params: UpdateAccountParams, opts?: RequestOptions): Promise<void>;
20
+ /** Returns all virtual accounts under a real account. */
21
+ listVirtual(accountId: string, params?: PaginationParams, opts?: RequestOptions): Promise<PaginatedResponse<VirtualAccount>>;
22
+ /** Returns a specific virtual account. */
23
+ getVirtual(accountId: string, virtualAccountId: string, opts?: RequestOptions): Promise<VirtualAccount>;
24
+ /** Creates a virtual account under a real account. */
25
+ createVirtual(accountId: string, params: CreateVirtualAccountParams, opts?: RequestOptions): Promise<VirtualAccount>;
26
+ /** Amends a virtual account. */
27
+ updateVirtual(accountId: string, virtualAccountId: string, params: UpdateVirtualAccountParams, opts?: RequestOptions): Promise<void>;
28
+ /** Returns all transactions across the institution. */
29
+ listAllTransactions(params?: DateRangeParams, opts?: RequestOptions): Promise<PaginatedResponse<Transaction>>;
30
+ /** Returns transactions for a specific real account. */
31
+ listTransactions(accountId: string, params?: DateRangeParams, opts?: RequestOptions): Promise<PaginatedResponse<Transaction>>;
32
+ /** Returns a specific transaction on a real account. */
33
+ getTransaction(accountId: string, transactionId: string, opts?: RequestOptions): Promise<Transaction>;
34
+ /** Returns transactions for a virtual account. */
35
+ listVirtualTransactions(accountId: string, virtualAccountId: string, params?: DateRangeParams, opts?: RequestOptions): Promise<PaginatedResponse<Transaction>>;
36
+ /** Returns collected Direct Debit payments for a mandate. */
37
+ listBacsCollections(accountId: string, mandateId: string, params?: PaginationParams, opts?: RequestOptions): Promise<PaginatedResponse<Transaction>>;
38
+ /** Returns returned Bacs payments for a mandate. */
39
+ listBacsReturns(accountId: string, mandateId: string, params?: PaginationParams, opts?: RequestOptions): Promise<PaginatedResponse<Transaction>>;
40
+ /** Creates a Bacs Direct Debit Instruction on a real account. */
41
+ createDDI(accountId: string, params: CreateDDIParams, opts?: RequestOptions): Promise<DirectDebitInstruction>;
42
+ /** Returns all DDIs for a real account. */
43
+ listDDIs(accountId: string, params?: PaginationParams, opts?: RequestOptions): Promise<PaginatedResponse<DirectDebitInstruction>>;
44
+ /** Returns a specific DDI. */
45
+ getDDI(accountId: string, mandateId: string, opts?: RequestOptions): Promise<DirectDebitInstruction>;
46
+ /** Cancels a DDI on a real account. */
47
+ cancelDDI(accountId: string, mandateId: string, opts?: RequestOptions): Promise<void>;
48
+ /** Creates a DDI on a virtual account. */
49
+ createVirtualDDI(accountId: string, virtualAccountId: string, params: CreateDDIParams, opts?: RequestOptions): Promise<DirectDebitInstruction>;
50
+ /** Returns all DDIs for a virtual account. */
51
+ listVirtualDDIs(accountId: string, virtualAccountId: string, params?: PaginationParams, opts?: RequestOptions): Promise<PaginatedResponse<DirectDebitInstruction>>;
52
+ /** Cancels a DDI on a virtual account. */
53
+ cancelVirtualDDI(accountId: string, virtualAccountId: string, mandateId: string, opts?: RequestOptions): Promise<void>;
54
+ /** Requests generation of a camt.053 statement. Returns the message ID. */
55
+ requestStatement(params: StatementRequestParams, opts?: RequestOptions): Promise<string>;
56
+ /** Downloads a single page of a generated statement. */
57
+ getStatementPage(messageId: string, pageNumber: number, opts?: RequestOptions): Promise<Record<string, unknown>>;
58
+ /** Fetches all pages of a statement sequentially. */
59
+ getAllStatementPages(messageId: string, opts?: RequestOptions): Promise<ReadonlyArray<Record<string, unknown>>>;
60
+ }
61
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/domains/accounts/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import type { Amount, CurrencyCode, IBAN, ISODateTime, SortCode, UUID } from '../../types/index.js';
2
+ export type AccountType = 'YourFunds' | 'ClientMoneyPooled' | 'ClientMoneyDesignated' | 'SegregatedPooled' | 'SegregatedDesignated' | 'SafeguardedPooled' | 'SafeguardedDesignated' | 'ClientSuspense';
3
+ export type AccountStatus = 'Active' | 'Suspended' | 'Closed';
4
+ export interface Account {
5
+ readonly id: UUID;
6
+ readonly name: string;
7
+ readonly type: AccountType;
8
+ readonly status: AccountStatus;
9
+ readonly iban: IBAN | null;
10
+ readonly sortCode: SortCode | null;
11
+ readonly accountNumber: string | null;
12
+ readonly currency: CurrencyCode;
13
+ readonly balance: Amount | null;
14
+ readonly availableBalance: Amount | null;
15
+ readonly copEnabled: boolean;
16
+ readonly createdAt: ISODateTime | null;
17
+ }
18
+ export interface CreateAccountParams {
19
+ readonly accountName: string;
20
+ readonly accountType: AccountType;
21
+ readonly owner?: string;
22
+ readonly sortCode?: string;
23
+ }
24
+ export interface UpdateAccountParams {
25
+ readonly accountName?: string;
26
+ readonly copEnabled?: boolean;
27
+ }
28
+ export interface VirtualAccount {
29
+ readonly id: UUID;
30
+ readonly name: string;
31
+ readonly iban: IBAN | null;
32
+ readonly sortCode: SortCode | null;
33
+ readonly accountNumber: string | null;
34
+ readonly status: string | null;
35
+ readonly owner: string | null;
36
+ readonly createdAt: ISODateTime | null;
37
+ }
38
+ export interface CreateVirtualAccountParams {
39
+ readonly accountName: string;
40
+ readonly owner?: string;
41
+ }
42
+ export interface UpdateVirtualAccountParams {
43
+ readonly accountName?: string;
44
+ readonly copEnabled?: boolean;
45
+ }
46
+ export type TransactionDirection = 'Inbound' | 'Outbound';
47
+ export type TransactionStatus = 'Settled' | 'Pending' | 'Rejected' | 'Returned';
48
+ export interface Transaction {
49
+ readonly id: UUID;
50
+ readonly accountId: UUID;
51
+ readonly virtualAccountId: UUID | null;
52
+ readonly amount: Amount;
53
+ readonly currency: CurrencyCode;
54
+ readonly direction: TransactionDirection;
55
+ readonly type: string;
56
+ readonly status: TransactionStatus;
57
+ readonly reference: string | null;
58
+ readonly counterpartName: string | null;
59
+ readonly counterpartSortCode: string | null;
60
+ readonly counterpartAccountNumber: string | null;
61
+ readonly endToEndId: string | null;
62
+ readonly createdAt: ISODateTime | null;
63
+ }
64
+ export interface DirectDebitInstruction {
65
+ readonly id: UUID;
66
+ readonly accountId: UUID;
67
+ readonly serviceUserNumber: string;
68
+ readonly reference: string;
69
+ readonly payerName: string;
70
+ readonly payerSortCode: string;
71
+ readonly payerAccountNumber: string;
72
+ readonly status: string | null;
73
+ readonly createdAt: ISODateTime | null;
74
+ }
75
+ export interface CreateDDIParams {
76
+ readonly serviceUserNumber: string;
77
+ readonly reference: string;
78
+ readonly payerName: string;
79
+ readonly payerSortCode: string;
80
+ readonly payerAccountNumber: string;
81
+ readonly payerAccountType?: 'Personal' | 'Business';
82
+ }
83
+ export interface StatementRequestParams {
84
+ readonly accountId: UUID;
85
+ readonly startDate: string;
86
+ readonly endDate: string;
87
+ readonly currency?: CurrencyCode;
88
+ readonly includeVirtualAccounts?: boolean;
89
+ }
90
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domains/accounts/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { EmbeddedBankingService } from './service.js';
2
+ 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 './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domains/embedded/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,63 @@
1
+ import type { HttpClient, RequestOptions } from '../../core/http.js';
2
+ import type { PaginationParams, PaginatedResponse, DateRangeParams } from '../../types/index.js';
3
+ import type { Customer, CustomerType, CreateRetailCustomerParams, CreateSoleTraderCustomerParams, CreateLegalEntityCustomerParams, UpdateCustomerParams, EmbeddedAccount, EmbeddedAccountType, CreateHubAccountParams, CreatePaymentAccountParams, CreateSavingsAccountParams, UpdateEmbeddedAccountParams, EmbeddedFPSParams, CreateISAParams, ISATransferInParams, InterestProduct, ConfigureInterestParams, KYCStatusResponse, SubmitKYCParams } from './types.js';
4
+ /**
5
+ * Embedded Banking service — Banking-as-a-Service.
6
+ *
7
+ * Covers: retail/sole-trader/legal-entity customers, payment/savings/ISA/hub accounts,
8
+ * FPS from embedded accounts, ISA transfer-in, interest products, KYC.
9
+ */
10
+ export declare class EmbeddedBankingService {
11
+ private readonly http;
12
+ constructor(http: HttpClient);
13
+ /** Lists all embedded customers, optionally filtered by type. */
14
+ listCustomers(customerType?: CustomerType, params?: PaginationParams, opts?: RequestOptions): Promise<PaginatedResponse<Customer>>;
15
+ /** Returns a customer by ID. */
16
+ getCustomer(customerId: string, opts?: RequestOptions): Promise<Customer>;
17
+ /** Creates a retail (individual consumer) embedded customer. */
18
+ createRetailCustomer(params: CreateRetailCustomerParams, opts?: RequestOptions): Promise<Customer>;
19
+ /** Updates a customer record (email, phone, address). */
20
+ updateCustomer(customerId: string, params: UpdateCustomerParams, opts?: RequestOptions): Promise<void>;
21
+ /** Creates a sole trader embedded customer. */
22
+ createSoleTraderCustomer(params: CreateSoleTraderCustomerParams, opts?: RequestOptions): Promise<Customer>;
23
+ /** Updates a sole trader customer. */
24
+ updateSoleTraderCustomer(customerId: string, params: UpdateCustomerParams, opts?: RequestOptions): Promise<void>;
25
+ /** Creates a legal entity (company) embedded customer. */
26
+ createLegalEntityCustomer(params: CreateLegalEntityCustomerParams, opts?: RequestOptions): Promise<Customer>;
27
+ /** Updates a legal entity customer. */
28
+ updateLegalEntityCustomer(customerId: string, params: UpdateCustomerParams, opts?: RequestOptions): Promise<void>;
29
+ /** Lists all accounts for a customer, optionally filtered by account type. */
30
+ listCustomerAccounts(customerId: string, accountType?: EmbeddedAccountType, params?: PaginationParams, opts?: RequestOptions): Promise<PaginatedResponse<EmbeddedAccount>>;
31
+ /** Returns an embedded account by ID. */
32
+ getAccount(accountId: string, opts?: RequestOptions): Promise<EmbeddedAccount>;
33
+ /** Creates a hub (internal pooled) account. */
34
+ createHubAccount(params: CreateHubAccountParams, opts?: RequestOptions): Promise<EmbeddedAccount>;
35
+ /** Creates a payment account for a customer. */
36
+ createPaymentAccount(params: CreatePaymentAccountParams, opts?: RequestOptions): Promise<EmbeddedAccount>;
37
+ /** Creates a savings account for a customer. */
38
+ createSavingsAccount(params: CreateSavingsAccountParams, opts?: RequestOptions): Promise<EmbeddedAccount>;
39
+ /** Updates an embedded account (rename or change status). */
40
+ updateAccount(accountId: string, params: UpdateEmbeddedAccountParams, opts?: RequestOptions): Promise<void>;
41
+ /** Closes an embedded account. */
42
+ closeAccount(accountId: string, opts?: RequestOptions): Promise<void>;
43
+ /** Lists transactions for an embedded account. */
44
+ listAccountTransactions(accountId: string, params?: DateRangeParams, opts?: RequestOptions): Promise<PaginatedResponse<Record<string, unknown>>>;
45
+ /** Sends a Faster Payment from an embedded customer payment account. */
46
+ sendFPS(params: EmbeddedFPSParams, opts?: RequestOptions): Promise<void>;
47
+ /** Creates a Flexible Cash ISA for a retail customer. */
48
+ createISA(params: CreateISAParams, opts?: RequestOptions): Promise<EmbeddedAccount>;
49
+ /**
50
+ * Submits an ISA transfer-in request from a previous provider.
51
+ * The funds are moved into the ISA once confirmed by the previous provider.
52
+ */
53
+ isaTransferIn(accountId: string, params: ISATransferInParams, opts?: RequestOptions): Promise<void>;
54
+ /** Returns all available interest rate products. */
55
+ listInterestProducts(opts?: RequestOptions): Promise<InterestProduct[]>;
56
+ /** Assigns an interest product to a savings account. */
57
+ configureInterest(accountId: string, params: ConfigureInterestParams, opts?: RequestOptions): Promise<void>;
58
+ /** Returns the current KYC status for a customer. */
59
+ getKYCStatus(customerId: string, opts?: RequestOptions): Promise<KYCStatusResponse>;
60
+ /** Submits or updates KYC verification data for a customer. */
61
+ submitKYC(customerId: string, params: SubmitKYCParams, opts?: RequestOptions): Promise<void>;
62
+ }
63
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/domains/embedded/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ import type { Amount, CurrencyCode, IBAN, ISODateTime, SortCode, UUID } from '../../types/index.js';
2
+ export type CustomerType = 'Retail' | 'SoleTrader' | 'LegalEntity';
3
+ export type KYCStatus = 'Pending' | 'InProgress' | 'Approved' | 'Rejected' | 'RequiresAction';
4
+ export interface CustomerAddress {
5
+ readonly addressLine1?: string;
6
+ readonly addressLine2?: string;
7
+ readonly city?: string;
8
+ readonly postCode?: string;
9
+ readonly country: string;
10
+ }
11
+ export interface Customer {
12
+ readonly customerId: UUID;
13
+ readonly customerType: CustomerType;
14
+ readonly firstName?: string;
15
+ readonly lastName?: string;
16
+ readonly companyName?: string;
17
+ readonly email?: string;
18
+ readonly phone?: string;
19
+ readonly kycStatus?: KYCStatus;
20
+ readonly externalCustomerId?: string;
21
+ readonly createdAt: ISODateTime | null;
22
+ }
23
+ export interface CreateRetailCustomerParams {
24
+ readonly firstName: string;
25
+ readonly lastName: string;
26
+ readonly dateOfBirth: string;
27
+ readonly email?: string;
28
+ readonly phone?: string;
29
+ readonly nationality?: string;
30
+ readonly taxCountry?: string;
31
+ readonly address?: CustomerAddress;
32
+ readonly externalCustomerId?: string;
33
+ }
34
+ export interface CreateSoleTraderCustomerParams {
35
+ readonly firstName: string;
36
+ readonly lastName: string;
37
+ readonly dateOfBirth: string;
38
+ readonly tradingName: string;
39
+ readonly email?: string;
40
+ readonly phone?: string;
41
+ readonly utr?: string;
42
+ readonly businessAddress?: CustomerAddress;
43
+ readonly externalCustomerId?: string;
44
+ }
45
+ export interface BeneficialOwner {
46
+ readonly firstName: string;
47
+ readonly lastName: string;
48
+ readonly dateOfBirth: string;
49
+ readonly ownershipPercentage: number;
50
+ }
51
+ export interface CreateLegalEntityCustomerParams {
52
+ readonly companyName: string;
53
+ readonly registrationNumber: string;
54
+ readonly registeredCountry: string;
55
+ readonly companyType: string;
56
+ readonly email?: string;
57
+ readonly phone?: string;
58
+ readonly sicCode?: string;
59
+ readonly vatNumber?: string;
60
+ readonly externalCustomerId?: string;
61
+ readonly registeredAddress?: CustomerAddress;
62
+ readonly tradingAddress?: CustomerAddress;
63
+ readonly beneficialOwners?: BeneficialOwner[];
64
+ }
65
+ export interface UpdateCustomerParams {
66
+ readonly email?: string;
67
+ readonly phone?: string;
68
+ readonly address?: CustomerAddress;
69
+ }
70
+ export type EmbeddedAccountType = 'Payment' | 'Savings' | 'CashIsa' | 'Hub';
71
+ export interface EmbeddedAccount {
72
+ readonly accountId: UUID;
73
+ readonly customerId?: UUID;
74
+ readonly accountName: string;
75
+ readonly accountType: EmbeddedAccountType;
76
+ readonly status: string;
77
+ readonly iban?: IBAN;
78
+ readonly sortCode?: SortCode;
79
+ readonly accountNumber?: string;
80
+ readonly currency: CurrencyCode;
81
+ readonly balance?: Amount;
82
+ readonly createdAt: ISODateTime | null;
83
+ }
84
+ export interface CreateHubAccountParams {
85
+ readonly accountName: string;
86
+ readonly currency?: CurrencyCode;
87
+ readonly owner?: string;
88
+ }
89
+ export interface CreatePaymentAccountParams {
90
+ readonly customerId: UUID;
91
+ readonly accountName: string;
92
+ readonly currency?: CurrencyCode;
93
+ readonly externalAccountId?: string;
94
+ }
95
+ export interface CreateSavingsAccountParams {
96
+ readonly customerId: UUID;
97
+ readonly accountName: string;
98
+ readonly currency?: CurrencyCode;
99
+ readonly productId?: string;
100
+ readonly externalAccountId?: string;
101
+ }
102
+ export interface UpdateEmbeddedAccountParams {
103
+ readonly accountName?: string;
104
+ readonly status?: 'Active' | 'Suspended' | 'Closed';
105
+ }
106
+ export interface EmbeddedFPSParams {
107
+ readonly accountId: UUID;
108
+ readonly amount: Amount;
109
+ readonly currency?: CurrencyCode;
110
+ readonly destinationSortCode: string;
111
+ readonly destinationAccountNumber: string;
112
+ readonly destinationName: string;
113
+ readonly reference?: string;
114
+ readonly endToEndId?: string;
115
+ }
116
+ export interface CreateISAParams {
117
+ readonly customerId: UUID;
118
+ readonly accountName: string;
119
+ }
120
+ export interface ISATransferInParams {
121
+ readonly previousProviderName: string;
122
+ readonly previousProviderReference: string;
123
+ readonly transferAmount: Amount;
124
+ readonly transferType: 'Cash' | 'InSpecie';
125
+ readonly previousTaxYear: boolean;
126
+ }
127
+ export interface InterestProduct {
128
+ readonly productId: string;
129
+ readonly name: string;
130
+ readonly rate: string;
131
+ }
132
+ export interface ConfigureInterestParams {
133
+ readonly productId: string;
134
+ }
135
+ export interface KYCStatusResponse {
136
+ readonly status: KYCStatus;
137
+ readonly updatedAt: ISODateTime;
138
+ }
139
+ export interface SubmitKYCParams {
140
+ readonly idDocumentType: string;
141
+ readonly idDocumentNumber: string;
142
+ readonly idDocumentExpiry: string;
143
+ readonly idDocumentCountry: string;
144
+ readonly pepStatus?: boolean;
145
+ readonly sanctionsCheck?: boolean;
146
+ readonly sourceOfFunds?: string;
147
+ }
148
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domains/embedded/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { MultiCurrencyService } from './service.js';
2
+ export type { MCCYAccount, MCCYAccountType, MCCYVirtualAccount, CreateMCCYAccountParams, UpdateMCCYAccountParams, CreateMCCYVirtualAccountParams, InternationalPayment, CreditorAddress, FXTradeParams, FXTradeResult, FXQuoteParams, FXQuote, } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domains/multicurrency/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,EAC9B,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,aAAa,EACb,aAAa,EACb,OAAO,GACR,MAAM,YAAY,CAAC"}
@@ -0,0 +1,50 @@
1
+ import type { HttpClient, RequestOptions } from '../../core/http.js';
2
+ import type { PaginationParams, PaginatedResponse, DateRangeParams } from '../../types/index.js';
3
+ import type { MCCYAccount, MCCYVirtualAccount, CreateMCCYAccountParams, UpdateMCCYAccountParams, CreateMCCYVirtualAccountParams, InternationalPayment, FXTradeParams, FXTradeResult, FXQuoteParams, FXQuote } from './types.js';
4
+ /**
5
+ * Multi-currency accounts, international payments, FX spot trading, and SEPA SCT UK.
6
+ */
7
+ export declare class MultiCurrencyService {
8
+ private readonly http;
9
+ constructor(http: HttpClient);
10
+ listAccounts(currency?: string, params?: PaginationParams, opts?: RequestOptions): Promise<PaginatedResponse<MCCYAccount>>;
11
+ getAccount(accountId: string, opts?: RequestOptions): Promise<MCCYAccount>;
12
+ createAccount(params: CreateMCCYAccountParams, opts?: RequestOptions): Promise<MCCYAccount>;
13
+ updateAccount(accountId: string, params: UpdateMCCYAccountParams, opts?: RequestOptions): Promise<void>;
14
+ listVirtualAccounts(accountId: string, params?: PaginationParams, opts?: RequestOptions): Promise<PaginatedResponse<MCCYVirtualAccount>>;
15
+ getVirtualAccount(accountId: string, virtualAccountId: string, opts?: RequestOptions): Promise<MCCYVirtualAccount>;
16
+ createVirtualAccount(accountId: string, params: CreateMCCYVirtualAccountParams, opts?: RequestOptions): Promise<MCCYVirtualAccount>;
17
+ updateVirtualAccount(accountId: string, virtualAccountId: string, accountName: string, opts?: RequestOptions): Promise<void>;
18
+ listTransactions(accountId: string, params?: DateRangeParams, opts?: RequestOptions): Promise<PaginatedResponse<Record<string, unknown>>>;
19
+ /**
20
+ * Sends a single high-value international payment.
21
+ * Confirmation arrives via the `MccyTransactionCreated` webhook.
22
+ */
23
+ sendPayment(payment: InternationalPayment, opts?: RequestOptions): Promise<void>;
24
+ /** Sends multiple international payments in one batch request. */
25
+ sendBulkPayments(payments: InternationalPayment[], opts?: RequestOptions): Promise<void>;
26
+ /** Cancels all payments in a batch. */
27
+ cancelBatch(batchId: string, opts?: RequestOptions): Promise<void>;
28
+ /** Cancels a single payment within a batch by end-to-end ID. */
29
+ cancelPayment(batchId: string, endToEndId: string, opts?: RequestOptions): Promise<void>;
30
+ /**
31
+ * Executes an FX spot trade at the live market rate.
32
+ * Specify either `sellAmount` or `buyAmount` — not both.
33
+ */
34
+ executeFXTrade(params: FXTradeParams, opts?: RequestOptions): Promise<FXTradeResult>;
35
+ /**
36
+ * Requests a firm FX quote (Request for Quote).
37
+ * The returned quote has an expiry — execute before it expires.
38
+ */
39
+ requestFXQuote(params: FXQuoteParams, opts?: RequestOptions): Promise<FXQuote>;
40
+ /** Executes a previously quoted FX trade before it expires. */
41
+ executeFXQuote(quoteId: string, opts?: RequestOptions): Promise<FXTradeResult>;
42
+ /** Rejects (cancels) a firm quote without executing it. */
43
+ rejectFXQuote(quoteId: string, opts?: RequestOptions): Promise<void>;
44
+ /**
45
+ * Funds a multi-currency account with a simulated inbound payment.
46
+ * Only available in the Simulation environment.
47
+ */
48
+ fundAccountSimulation(accountUniqueId: string, amount: string, currency: string, opts?: RequestOptions): Promise<void>;
49
+ }
50
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/domains/multicurrency/service.ts"],"names":[],"mappings":"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"}