@cheqi/sdk 0.2.1 → 0.4.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.
package/README.md CHANGED
@@ -6,7 +6,7 @@ TypeScript-first Cheqi SDK for encrypted receipt and credit note processing.
6
6
 
7
7
  - SDK entrypoint with config and service wiring
8
8
  - Customer matching
9
- - Receipt processing flow: match -> template -> encrypt -> send/email fallback
9
+ - Receipt processing flow: match -> template -> encrypt -> digital, email, or client-encrypted download delivery
10
10
  - Credit note processing flow
11
11
  - Hybrid RSA-OAEP + AES-256-GCM encryption/decryption
12
12
  - Retry-capable HTTP client
@@ -46,6 +46,15 @@ const result = await sdk.receiptService.processCompleteReceipt(
46
46
  totalAmount: 12.1
47
47
  }
48
48
  );
49
+
50
+ if (result.deliveryStatus === "PENDING_DOWNLOAD_TEMPLATE") {
51
+ // Commit the original request and result.downloadUrl in your durable store
52
+ // before displaying or printing the URL.
53
+ }
54
+
55
+ if (result.deliveryStatus === "PENDING_DOWNLOAD_UPLOAD") {
56
+ // Persist result.downloadCiphertext and retry those exact bytes later.
57
+ }
49
58
  ```
50
59
 
51
60
  ## Notes
@@ -55,3 +64,46 @@ const result = await sdk.receiptService.processCompleteReceipt(
55
64
  - The package ships `.d.ts` declarations so it can be consumed directly from TypeScript.
56
65
  - The full Java model class hierarchy is still not recreated as class-per-model; the payload contract is represented as typed object shapes instead.
57
66
  - XML verification currently normalizes formatting whitespace and hashes the result. If strict XML C14N compatibility is required, that part should be hardened next.
67
+ ## Client-encrypted receipt download links
68
+
69
+ The high-level flow uses the same client-encrypted mechanism when matching selects
70
+ `DOWNLOAD_FALLBACK` and when a transient service failure requires deferred completion.
71
+ When a healthy matching response returns `routeFound: false`, the SDK returns
72
+ `CUSTOMER_NOT_FOUND` and does not bypass a disabled download fallback.
73
+
74
+ The SDK also provides stateless primitives for resuming a URL under your own scheduler. It
75
+ does not store receipts, start background workers, or choose a retry schedule. Your
76
+ integration owns persistence and decides where and when deferred work runs.
77
+
78
+ ```ts
79
+ import {
80
+ buildDownloadEnvelope,
81
+ encryptDownloadEnvelope,
82
+ generateDownloadLink
83
+ } from "@cheqi/sdk/download";
84
+
85
+ const link = generateDownloadLink("https://receipt.cheqi.io");
86
+
87
+ // Persist the complete template request, link.downloadId, and protected
88
+ // link.contentKey using your own durable storage before exposing link.url.
89
+ await receiptJobs.create({ templateRequest, ...link });
90
+ printQr(link.url);
91
+
92
+ // Later, on compute and a schedule controlled by your integration:
93
+ const template = await sdk.receiptService.generateReceiptTemplate(templateRequest);
94
+ const envelope = buildDownloadEnvelope(template);
95
+ const ciphertext = await encryptDownloadEnvelope(envelope, link.contentKey);
96
+
97
+ // Persist the exact ciphertext before its first upload attempt. After an ambiguous
98
+ // result, every retry must reuse these bytes rather than encrypting again.
99
+ await receiptJobs.markReady(link.downloadId, ciphertext);
100
+ await sdk.receiptService.uploadClientEncryptedReceipt({
101
+ downloadId: link.downloadId,
102
+ ciphertext
103
+ });
104
+ ```
105
+
106
+ The customer may open the URL before the receipt is uploaded. The download page reports
107
+ that the receipt is not yet available and can be visited again later. Do not implement
108
+ receipt template generation locally: call the normal template endpoint after connectivity
109
+ returns so CHEQI, UBL, seller, and VAT behavior remains canonical.
@@ -28,6 +28,8 @@ export declare class CheqiSDKBuilder {
28
28
  apiEndpoint(apiEndpoint: string): this;
29
29
  /** Set a custom API endpoint URL. Takes precedence over {@link apiEndpoint}. */
30
30
  customApiEndpoint(customApiEndpoint: string): this;
31
+ /** Set the customer-facing receipt origin for a custom API endpoint. */
32
+ receiptDownloadBaseUrl(receiptDownloadBaseUrl: string): this;
31
33
  /** Set the API key (typically starts with `sk_live_` or `sk_test_`). */
32
34
  apiKey(apiKey: string): this;
33
35
  /** Set the RSA private key (base64-encoded PKCS#8 DER) for decryption. */
package/dist/cheqi-sdk.js CHANGED
@@ -32,6 +32,11 @@ export class CheqiSDKBuilder {
32
32
  this.options.customApiEndpoint = customApiEndpoint;
33
33
  return this;
34
34
  }
35
+ /** Set the customer-facing receipt origin for a custom API endpoint. */
36
+ receiptDownloadBaseUrl(receiptDownloadBaseUrl) {
37
+ this.options.receiptDownloadBaseUrl = receiptDownloadBaseUrl;
38
+ return this;
39
+ }
35
40
  /** Set the API key (typically starts with `sk_live_` or `sk_test_`). */
36
41
  apiKey(apiKey) {
37
42
  this.options.apiKey = apiKey;
@@ -107,7 +112,7 @@ export class CheqiSDK {
107
112
  this.receiptProcessor = new ReceiptProcessor(this.decryptionService);
108
113
  this.apiClient = apiClient ?? new DefaultCheqiApiClient(this.config);
109
114
  this.matchingService = new MatchingService(this.apiClient);
110
- this.receiptService = new ReceiptService(this.apiClient, this.encryptionService, this.matchingService);
115
+ this.receiptService = new ReceiptService(this.apiClient, this.encryptionService, this.matchingService, this.config.receiptDownloadBaseUrl);
111
116
  this.companyService = new CompanyService(this.apiClient);
112
117
  this.storeService = new StoreService(this.apiClient);
113
118
  this.creditNoteService = new CreditNoteService(this.apiClient, this.encryptionService, this.matchingService, this.decryptionService);
@@ -1 +1 @@
1
- {"version":3,"file":"cheqi-sdk.js","sourceRoot":"","sources":["../src/cheqi-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cheqi-sdk.js","sourceRoot":"","sources":["../src/cheqi-sdk.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -6,6 +6,10 @@ export declare const Environment: {
6
6
  readonly TEST: "https://test.api.cheqi.io";
7
7
  readonly PRODUCTION: "https://api.cheqi.io";
8
8
  };
9
+ export declare const ReceiptEnvironment: {
10
+ readonly SANDBOX: "https://sandbox.receipt.cheqi.io";
11
+ readonly PRODUCTION: "https://receipt.cheqi.io";
12
+ };
9
13
  /**
10
14
  * Validated, immutable configuration for the Cheqi SDK.
11
15
  *
@@ -15,6 +19,7 @@ export declare const Environment: {
15
19
  export declare class CheqiSDKConfig {
16
20
  readonly apiEndpoint: string;
17
21
  readonly apiKey: Nullable<string>;
22
+ readonly receiptDownloadBaseUrl: Nullable<string>;
18
23
  readonly privateKey: Nullable<string>;
19
24
  readonly timeoutSeconds: number;
20
25
  readonly maxRetries: number;
package/dist/config.js CHANGED
@@ -5,6 +5,10 @@ export const Environment = {
5
5
  TEST: "https://test.api.cheqi.io",
6
6
  PRODUCTION: "https://api.cheqi.io"
7
7
  };
8
+ export const ReceiptEnvironment = {
9
+ SANDBOX: "https://sandbox.receipt.cheqi.io",
10
+ PRODUCTION: "https://receipt.cheqi.io"
11
+ };
8
12
  const MAX_TIMEOUT_SECONDS = 300;
9
13
  const MAX_RETRIES = 10;
10
14
  /**
@@ -16,18 +20,20 @@ const MAX_RETRIES = 10;
16
20
  export class CheqiSDKConfig {
17
21
  apiEndpoint;
18
22
  apiKey;
23
+ receiptDownloadBaseUrl;
19
24
  privateKey;
20
25
  timeoutSeconds;
21
26
  maxRetries;
22
27
  logger;
23
28
  constructor(options = {}) {
24
- const { environment, customApiEndpoint, apiKey = null, privateKey = null, timeoutSeconds = 30, maxRetries = 3, logger = new ConsoleLogger() } = options;
29
+ const { environment, customApiEndpoint, receiptDownloadBaseUrl, apiKey = null, privateKey = null, timeoutSeconds = 30, maxRetries = 3, logger = new ConsoleLogger() } = options;
25
30
  this.logger = logger;
26
31
  // --- endpoint ---
27
32
  this.apiEndpoint = customApiEndpoint ?? environment ?? "";
28
33
  if (!this.apiEndpoint) {
29
34
  throw new Error("Either 'environment' or 'customApiEndpoint' must be provided");
30
35
  }
36
+ this.receiptDownloadBaseUrl = receiptDownloadBaseUrl ?? receiptBaseUrlForEnvironment(environment);
31
37
  // --- timeout ---
32
38
  if (timeoutSeconds <= 0) {
33
39
  throw new Error(`Timeout must be positive, got: ${timeoutSeconds}`);
@@ -57,6 +63,13 @@ export class CheqiSDKConfig {
57
63
  this.logger.info(`SDK configured: endpoint=${this.apiEndpoint}, timeout=${this.timeoutSeconds}s, maxRetries=${this.maxRetries}`);
58
64
  }
59
65
  }
66
+ function receiptBaseUrlForEnvironment(environment) {
67
+ if (environment === Environment.PRODUCTION)
68
+ return ReceiptEnvironment.PRODUCTION;
69
+ if (environment === Environment.SANDBOX)
70
+ return ReceiptEnvironment.SANDBOX;
71
+ return null;
72
+ }
60
73
  function isValidApiKeyFormat(key) {
61
74
  return key.startsWith("sk_live_") || key.startsWith("sk_test_");
62
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,8BAA8B;IACvC,IAAI,EAAE,2BAA2B;IACjC,UAAU,EAAE,sBAAsB;CAC1B,CAAC;AAEX,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IAChB,WAAW,CAAS;IACpB,MAAM,CAAmB;IACzB,UAAU,CAAmB;IAC7B,cAAc,CAAS;IACvB,UAAU,CAAS;IACnB,MAAM,CAAS;IAExB,YAAY,UAA2B,EAAE;QACvC,MAAM,EACJ,WAAW,EACX,iBAAiB,EACjB,MAAM,GAAG,IAAI,EACb,UAAU,GAAG,IAAI,EACjB,cAAc,GAAG,EAAE,EACnB,UAAU,GAAG,CAAC,EACd,MAAM,GAAG,IAAI,aAAa,EAAE,EAC7B,GAAG,OAAO,CAAC;QAEZ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,mBAAmB;QACnB,IAAI,CAAC,WAAW,GAAG,iBAAiB,IAAI,WAAW,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,kBAAkB;QAClB,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,kCAAkC,cAAc,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,cAAc,GAAG,mBAAmB,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,cAAc,oCAAoC,mBAAmB,GAAG,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAErC,kBAAkB;QAClB,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wCAAwC,UAAU,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,UAAU,GAAG,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,UAAU,mCAAmC,WAAW,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,kBAAkB;QAClB,IAAI,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,sBAAsB;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,WAAW,aAAa,IAAI,CAAC,cAAc,iBAAiB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACnI,CAAC;CACF;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,15 @@
3
3
  * ("Download Link Contract v1" — the offline-first QR route).
4
4
  *
5
5
  * The download id and AES-256-GCM content key are generated locally, with no network,
6
- * so a terminal can render the QR `<baseUrl>/<downloadId>#<contentKey>` even while the
7
- * Cheqi API is unreachable. The content key travels only in the URL fragment, which
8
- * browsers never send to any server: Cheqi stores ciphertext it can never decrypt, and
9
- * decryption happens on the customer's device.
6
+ * so an integration can render the QR `<baseUrl>/<downloadId>#<contentKey>` even while
7
+ * the Cheqi API is unreachable. Before exposing the URL, the integration is responsible
8
+ * for retaining the original template request, download id, and content key so it can
9
+ * finish issuance later. This SDK does not provide storage, scheduling, or background
10
+ * retry behavior.
11
+ *
12
+ * The content key travels only in the URL fragment, which browsers never send to any
13
+ * server: Cheqi stores ciphertext it can never decrypt, and decryption happens on the
14
+ * customer's device.
10
15
  *
11
16
  * This module is intentionally separate from {@link ../services/decryption.js | DecryptionService}
12
17
  * (the Node-only RSA + AES path for receipts delivered to Cheqi wallets) and is
@@ -19,10 +24,11 @@
19
24
  * used for wallet delivery, so no separate download-route model exists.
20
25
  */
21
26
  import type { ReceiptEnvelope } from "../models/generated/ReceiptEnvelope.js";
27
+ import type { ReceiptTemplateResponse } from "../models/generated/ReceiptTemplateResponse.js";
22
28
  export type { ReceiptEnvelope };
23
29
  /** Download id length in bytes (128 bits — the enumeration defense on the public endpoint). */
24
30
  export declare const DOWNLOAD_ID_LENGTH = 16;
25
- /** A freshly generated download link: render `url` as the QR immediately, upload later. */
31
+ /** A freshly generated download link. The integration owns persistence and later processing. */
26
32
  export interface DownloadLink {
27
33
  /** base64url (unpadded) download id; the only part of the link the server ever sees. */
28
34
  downloadId: string;
@@ -32,9 +38,10 @@ export interface DownloadLink {
32
38
  url: string;
33
39
  }
34
40
  /**
35
- * Generates a fresh download link locally — no network involved. Call this at transaction
36
- * close and render `url` as the QR regardless of connectivity; upload the encrypted
37
- * envelope asynchronously afterwards.
41
+ * Generates a fresh download link locally — no network involved. Use it after an online
42
+ * `DOWNLOAD_FALLBACK` decision or when a Cheqi outage requires a deferred customer URL.
43
+ * The integration must retain the request, id, and key before exposing the URL so it can
44
+ * finish template generation, encryption, and upload later.
38
45
  */
39
46
  export declare function generateDownloadLink(baseUrl: string): DownloadLink;
40
47
  /** Builds the customer-facing URL. The content key MUST stay in the fragment. */
@@ -47,6 +54,12 @@ export declare function parseDownloadUrl(url: string): {
47
54
  downloadId: string;
48
55
  contentKey: string;
49
56
  };
57
+ /**
58
+ * Converts the canonical response from `POST /receipt/template` to the standard envelope
59
+ * encrypted for a client-generated download link. Receipt content is never generated or
60
+ * normalized locally; all formats present in the server response are preserved.
61
+ */
62
+ export declare function buildDownloadEnvelope(template: ReceiptTemplateResponse): ReceiptEnvelope;
50
63
  /**
51
64
  * Encrypts a receipt envelope with the content key. Returns `base64(iv || ciphertext || tag)` —
52
65
  * the exact bytes to upload as `ciphertext` to `POST /receipt/download`. Encrypt once and
@@ -3,10 +3,15 @@
3
3
  * ("Download Link Contract v1" — the offline-first QR route).
4
4
  *
5
5
  * The download id and AES-256-GCM content key are generated locally, with no network,
6
- * so a terminal can render the QR `<baseUrl>/<downloadId>#<contentKey>` even while the
7
- * Cheqi API is unreachable. The content key travels only in the URL fragment, which
8
- * browsers never send to any server: Cheqi stores ciphertext it can never decrypt, and
9
- * decryption happens on the customer's device.
6
+ * so an integration can render the QR `<baseUrl>/<downloadId>#<contentKey>` even while
7
+ * the Cheqi API is unreachable. Before exposing the URL, the integration is responsible
8
+ * for retaining the original template request, download id, and content key so it can
9
+ * finish issuance later. This SDK does not provide storage, scheduling, or background
10
+ * retry behavior.
11
+ *
12
+ * The content key travels only in the URL fragment, which browsers never send to any
13
+ * server: Cheqi stores ciphertext it can never decrypt, and decryption happens on the
14
+ * customer's device.
10
15
  *
11
16
  * This module is intentionally separate from {@link ../services/decryption.js | DecryptionService}
12
17
  * (the Node-only RSA + AES path for receipts delivered to Cheqi wallets) and is
@@ -73,9 +78,10 @@ async function importContentKey(contentKey, usage) {
73
78
  return subtle().importKey("raw", keyBytes, "AES-GCM", false, [usage]);
74
79
  }
75
80
  /**
76
- * Generates a fresh download link locally — no network involved. Call this at transaction
77
- * close and render `url` as the QR regardless of connectivity; upload the encrypted
78
- * envelope asynchronously afterwards.
81
+ * Generates a fresh download link locally — no network involved. Use it after an online
82
+ * `DOWNLOAD_FALLBACK` decision or when a Cheqi outage requires a deferred customer URL.
83
+ * The integration must retain the request, id, and key before exposing the URL so it can
84
+ * finish template generation, encryption, and upload later.
79
85
  */
80
86
  export function generateDownloadLink(baseUrl) {
81
87
  const downloadId = toBase64Url(randomBytes(DOWNLOAD_ID_LENGTH));
@@ -104,6 +110,22 @@ export function parseDownloadUrl(url) {
104
110
  }
105
111
  return { downloadId, contentKey };
106
112
  }
113
+ /**
114
+ * Converts the canonical response from `POST /receipt/template` to the standard envelope
115
+ * encrypted for a client-generated download link. Receipt content is never generated or
116
+ * normalized locally; all formats present in the server response are preserved.
117
+ */
118
+ export function buildDownloadEnvelope(template) {
119
+ if (!template) {
120
+ throw new EncryptionError("Receipt template response is required");
121
+ }
122
+ return {
123
+ cheqi: template.cheqi,
124
+ ublPurchaseReceipt: template.ublPurchaseReceipt,
125
+ ublInvoice: template.ublInvoice,
126
+ vatMetaData: template.vatMetadata
127
+ };
128
+ }
107
129
  /**
108
130
  * Encrypts a receipt envelope with the content key. Returns `base64(iv || ciphertext || tag)` —
109
131
  * the exact bytes to upload as `ciphertext` to `POST /receipt/download`. Encrypt once and
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/download/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/download/index.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { RetryHandler } from "./retry.js";
7
7
  const SDK_VERSION = (() => {
8
8
  try {
9
9
  // Dynamic import not needed — we just embed the constant at build time.
10
- return "0.1.2";
10
+ return "0.4.0";
11
11
  }
12
12
  catch {
13
13
  return "unknown";
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { CheqiSDK, CheqiSDKBuilder } from "./cheqi-sdk.js";
2
- export { Environment, CheqiSDKConfig } from "./config.js";
2
+ export { Environment, ReceiptEnvironment, CheqiSDKConfig } from "./config.js";
3
3
  export * from "./errors.js";
4
4
  export type { Logger } from "./logger.js";
5
5
  export { ConsoleLogger, NoopLogger } from "./logger.js";
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { CheqiSDK, CheqiSDKBuilder } from "./cheqi-sdk.js";
2
- export { Environment, CheqiSDKConfig } from "./config.js";
2
+ export { Environment, ReceiptEnvironment, CheqiSDKConfig } from "./config.js";
3
3
  export * from "./errors.js";
4
4
  export { ConsoleLogger, NoopLogger } from "./logger.js";
5
5
  export * from "./models/index.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9E,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
@@ -23,6 +23,12 @@ export interface RecipientResolutionResponse {
23
23
  * @memberof RecipientResolutionResponse
24
24
  */
25
25
  routeFound?: boolean;
26
+ /**
27
+ * The selected receipt delivery route
28
+ * @type {string}
29
+ * @memberof RecipientResolutionResponse
30
+ */
31
+ deliveryRouteType?: RecipientResolutionResponseDeliveryRouteTypeEnum;
26
32
  /**
27
33
  * The unique identifier for the matching process
28
34
  * @type {string}
@@ -54,6 +60,15 @@ export interface RecipientResolutionResponse {
54
60
  */
55
61
  buyerType?: BuyerType;
56
62
  }
63
+ /**
64
+ * @export
65
+ */
66
+ export declare const RecipientResolutionResponseDeliveryRouteTypeEnum: {
67
+ readonly DIGITAL: "DIGITAL";
68
+ readonly EMAIL_FALLBACK: "EMAIL_FALLBACK";
69
+ readonly DOWNLOAD_FALLBACK: "DOWNLOAD_FALLBACK";
70
+ };
71
+ export type RecipientResolutionResponseDeliveryRouteTypeEnum = typeof RecipientResolutionResponseDeliveryRouteTypeEnum[keyof typeof RecipientResolutionResponseDeliveryRouteTypeEnum];
57
72
  /**
58
73
  * Check if a given object implements the RecipientResolutionResponse interface.
59
74
  */
@@ -13,6 +13,14 @@
13
13
  */
14
14
  import { MatchedRecipientFromJSON, MatchedRecipientToJSON, } from './MatchedRecipient.js';
15
15
  import { BuyerTypeFromJSON, BuyerTypeToJSON, } from './BuyerType.js';
16
+ /**
17
+ * @export
18
+ */
19
+ export const RecipientResolutionResponseDeliveryRouteTypeEnum = {
20
+ DIGITAL: 'DIGITAL',
21
+ EMAIL_FALLBACK: 'EMAIL_FALLBACK',
22
+ DOWNLOAD_FALLBACK: 'DOWNLOAD_FALLBACK'
23
+ };
16
24
  /**
17
25
  * Check if a given object implements the RecipientResolutionResponse interface.
18
26
  */
@@ -28,6 +36,7 @@ export function RecipientResolutionResponseFromJSONTyped(json, ignoreDiscriminat
28
36
  }
29
37
  return {
30
38
  'routeFound': json['routeFound'] == null ? undefined : json['routeFound'],
39
+ 'deliveryRouteType': json['deliveryRouteType'] == null ? undefined : json['deliveryRouteType'],
31
40
  'matchId': json['matchId'] == null ? undefined : json['matchId'],
32
41
  'recipients': json['recipients'] == null ? undefined : (json['recipients'].map(MatchedRecipientFromJSON)),
33
42
  'expiresAt': json['expiresAt'] == null ? undefined : (new Date(json['expiresAt'])),
@@ -44,6 +53,7 @@ export function RecipientResolutionResponseToJSONTyped(value, ignoreDiscriminato
44
53
  }
45
54
  return {
46
55
  'routeFound': value['routeFound'],
56
+ 'deliveryRouteType': value['deliveryRouteType'],
47
57
  'matchId': value['matchId'],
48
58
  'recipients': value['recipients'] == null ? undefined : (value['recipients'].map(MatchedRecipientToJSON)),
49
59
  'expiresAt': value['expiresAt'] == null ? undefined : ((value['expiresAt']).toISOString()),
@@ -1 +1 @@
1
- {"version":3,"file":"RecipientResolutionResponse.js","sourceRoot":"","sources":["../../../src/models/generated/RecipientResolutionResponse.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,oBAAoB;AACpB;;;;;;;;;;GAUG;AAIH,OAAO,EACH,wBAAwB,EAExB,sBAAsB,GAEzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACH,iBAAiB,EAEjB,eAAe,GAElB,MAAM,gBAAgB,CAAC;AAgDxB;;GAEG;AACH,MAAM,UAAU,qCAAqC,CAAC,KAAa;IAC/D,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,IAAS;IACzD,OAAO,wCAAwC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,wCAAwC,CAAC,IAAS,EAAE,mBAA4B;IAC5F,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO;QAEH,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QACzE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAChE,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,YAAY,CAAgB,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACzH,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAClF,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC3F,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC5F,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,IAAS;IACvD,OAAO,sCAAsC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,KAA0C,EAAE,sBAA+B,KAAK;IACnI,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO;QAEH,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;QACjC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,YAAY,CAAgB,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACzH,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1F,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,CAAC;QAC7C,WAAW,EAAE,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;KACnD,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"RecipientResolutionResponse.js","sourceRoot":"","sources":["../../../src/models/generated/RecipientResolutionResponse.ts"],"names":[],"mappings":"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"}
package/dist/models.d.ts CHANGED
@@ -3,6 +3,8 @@ export declare const DeliveryStatus: {
3
3
  readonly DELIVERED_DIGITAL: "DELIVERED_DIGITAL";
4
4
  readonly DELIVERED_EMAIL: "DELIVERED_EMAIL";
5
5
  readonly DELIVERED_DOWNLOAD: "DELIVERED_DOWNLOAD";
6
+ readonly PENDING_DOWNLOAD_TEMPLATE: "PENDING_DOWNLOAD_TEMPLATE";
7
+ readonly PENDING_DOWNLOAD_UPLOAD: "PENDING_DOWNLOAD_UPLOAD";
6
8
  readonly CUSTOMER_NOT_FOUND: "CUSTOMER_NOT_FOUND";
7
9
  readonly FAILED: "FAILED";
8
10
  };
@@ -18,6 +20,9 @@ export interface ReceiptResultInit {
18
20
  message?: string | null;
19
21
  customerEmail?: string | null;
20
22
  downloadUrl?: string | null;
23
+ downloadCiphertext?: string | null;
24
+ templateHash?: string | null;
25
+ canonicalJson?: string | null;
21
26
  }
22
27
  export declare class ReceiptResult {
23
28
  readonly success: boolean;
@@ -30,6 +35,9 @@ export declare class ReceiptResult {
30
35
  readonly message: string | null;
31
36
  readonly customerEmail: string | null;
32
37
  readonly downloadUrl: string | null;
38
+ readonly downloadCiphertext: string | null;
39
+ readonly templateHash: string | null;
40
+ readonly canonicalJson: string | null;
33
41
  constructor(init: ReceiptResultInit);
34
42
  static deliveredToApp(response: Record<string, unknown>, templateContent: string): ReceiptResult;
35
43
  /**
@@ -37,6 +45,9 @@ export declare class ReceiptResult {
37
45
  * download URL. The merchant terminal renders `downloadUrl` as a QR code for the customer.
38
46
  */
39
47
  static deliveredViaDownload(response: Record<string, unknown>, templateContent: string): ReceiptResult;
48
+ static deliveredViaClientDownload(response: unknown, templateHash: string, canonicalJson: string, downloadUrl: string): ReceiptResult;
49
+ static pendingDownloadTemplate(downloadUrl: string, message: string): ReceiptResult;
50
+ static pendingDownloadUpload(downloadUrl: string, downloadCiphertext: string, templateHash: string, canonicalJson: string, message: string): ReceiptResult;
40
51
  static deliveredViaEmail(customerEmail: string): ReceiptResult;
41
52
  static customerNotFound(): ReceiptResult;
42
53
  static failed(message: string): ReceiptResult;
@@ -46,6 +57,9 @@ export declare class ReceiptResult {
46
57
  getReceiptCount(): number;
47
58
  getEmailAddress(): string | null;
48
59
  getDownloadUrl(): string | null;
60
+ getDownloadCiphertext(): string | null;
61
+ getTemplateHash(): string | null;
62
+ getCanonicalJson(): string | null;
49
63
  getMessage(): string | null;
50
64
  }
51
65
  export interface CreditNoteResultInit {
package/dist/models.js CHANGED
@@ -3,6 +3,8 @@ export const DeliveryStatus = {
3
3
  DELIVERED_DIGITAL: "DELIVERED_DIGITAL",
4
4
  DELIVERED_EMAIL: "DELIVERED_EMAIL",
5
5
  DELIVERED_DOWNLOAD: "DELIVERED_DOWNLOAD",
6
+ PENDING_DOWNLOAD_TEMPLATE: "PENDING_DOWNLOAD_TEMPLATE",
7
+ PENDING_DOWNLOAD_UPLOAD: "PENDING_DOWNLOAD_UPLOAD",
6
8
  CUSTOMER_NOT_FOUND: "CUSTOMER_NOT_FOUND",
7
9
  FAILED: "FAILED"
8
10
  };
@@ -17,6 +19,9 @@ export class ReceiptResult {
17
19
  message;
18
20
  customerEmail;
19
21
  downloadUrl;
22
+ downloadCiphertext;
23
+ templateHash;
24
+ canonicalJson;
20
25
  constructor(init) {
21
26
  this.success = init.success;
22
27
  this.deliveryStatus = init.deliveryStatus ?? null;
@@ -28,6 +33,9 @@ export class ReceiptResult {
28
33
  this.message = init.message ?? null;
29
34
  this.customerEmail = init.customerEmail ?? null;
30
35
  this.downloadUrl = init.downloadUrl ?? null;
36
+ this.downloadCiphertext = init.downloadCiphertext ?? null;
37
+ this.templateHash = init.templateHash ?? null;
38
+ this.canonicalJson = init.canonicalJson ?? null;
31
39
  }
32
40
  static deliveredToApp(response, templateContent) {
33
41
  const receiptCount = (Array.isArray(response.createdReceipts) ? response.createdReceipts.length : undefined) ??
@@ -62,6 +70,42 @@ export class ReceiptResult {
62
70
  message: "Receipt available for self-service download"
63
71
  });
64
72
  }
73
+ static deliveredViaClientDownload(response, templateHash, canonicalJson, downloadUrl) {
74
+ return new ReceiptResult({
75
+ success: true,
76
+ deliveryStatus: DeliveryStatus.DELIVERED_DOWNLOAD,
77
+ deliveryMethod: "DOWNLOAD",
78
+ customerFound: true,
79
+ receiptCount: 1,
80
+ response,
81
+ templateContent: canonicalJson,
82
+ templateHash,
83
+ canonicalJson,
84
+ downloadUrl,
85
+ message: "Receipt available through an encrypted download link"
86
+ });
87
+ }
88
+ static pendingDownloadTemplate(downloadUrl, message) {
89
+ return new ReceiptResult({
90
+ success: true,
91
+ deliveryStatus: DeliveryStatus.PENDING_DOWNLOAD_TEMPLATE,
92
+ deliveryMethod: "DOWNLOAD",
93
+ downloadUrl,
94
+ message
95
+ });
96
+ }
97
+ static pendingDownloadUpload(downloadUrl, downloadCiphertext, templateHash, canonicalJson, message) {
98
+ return new ReceiptResult({
99
+ success: true,
100
+ deliveryStatus: DeliveryStatus.PENDING_DOWNLOAD_UPLOAD,
101
+ deliveryMethod: "DOWNLOAD",
102
+ downloadUrl,
103
+ downloadCiphertext,
104
+ templateHash,
105
+ canonicalJson,
106
+ message
107
+ });
108
+ }
65
109
  static deliveredViaEmail(customerEmail) {
66
110
  return new ReceiptResult({
67
111
  success: true,
@@ -106,6 +150,9 @@ export class ReceiptResult {
106
150
  getDownloadUrl() {
107
151
  return this.downloadUrl;
108
152
  }
153
+ getDownloadCiphertext() { return this.downloadCiphertext; }
154
+ getTemplateHash() { return this.templateHash; }
155
+ getCanonicalJson() { return this.canonicalJson; }
109
156
  getMessage() {
110
157
  return this.message;
111
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@ export declare class ReceiptService {
6
6
  private readonly apiClient;
7
7
  private readonly encryptionService;
8
8
  private readonly matchingService;
9
- constructor(apiClient: Pick<CheqiApiClient, "generateReceiptTemplate" | "sendEncryptedReceipts" | "sendReceiptViaEmail" | "uploadClientEncryptedReceipt">, encryptionService: EncryptionService, matchingService: MatchingService);
9
+ private readonly receiptDownloadBaseUrl;
10
+ constructor(apiClient: Pick<CheqiApiClient, "generateReceiptTemplate" | "sendEncryptedReceipts" | "sendReceiptViaEmail" | "uploadClientEncryptedReceipt">, encryptionService: EncryptionService, matchingService: MatchingService, receiptDownloadBaseUrl?: string | null);
10
11
  processCompleteReceipt(identificationDetails: IdentificationDetails, receiptRequest: ReceiptTemplateRequest, accessToken?: string | null, notificationDisplayCode?: NotificationDisplayCode | null): Promise<ReceiptResult>;
11
12
  generateReceiptTemplate(request: ReceiptTemplateGenerationRequest, accessToken?: string | null): Promise<ReceiptTemplateResponse>;
12
13
  createEncryptedReceipts(purchaseReceipt: string, recipient: MatchedRecipient, notificationDisplayCode?: NotificationDisplayCode | null): EncryptedReceiptRequest;
@@ -22,6 +23,8 @@ export declare class ReceiptService {
22
23
  * download id — a bug in the integration; do not regenerate the id or retry.
23
24
  */
24
25
  uploadClientEncryptedReceipt(request: ClientReceiptDownloadRequest, accessToken?: string | null): Promise<ClientReceiptDownloadResponse>;
26
+ private deliverClientEncryptedDownload;
27
+ private createDownloadLink;
25
28
  private buildEncryptedReceipts;
26
29
  private validateProcessInputs;
27
30
  }
@@ -1,4 +1,5 @@
1
1
  import { CheqiSDKError, ErrorCodes, ReceiptProcessingError } from "../errors.js";
2
+ import { buildDownloadEnvelope, encryptDownloadEnvelope, generateDownloadLink } from "../download/index.js";
2
3
  import { ReceiptResult } from "../models.js";
3
4
  import { isValidEmail, serializeJson, sha256Hex } from "../utils.js";
4
5
  function uniqueFormats(recipients = []) {
@@ -24,16 +25,30 @@ export class ReceiptService {
24
25
  apiClient;
25
26
  encryptionService;
26
27
  matchingService;
27
- constructor(apiClient, encryptionService, matchingService) {
28
+ receiptDownloadBaseUrl;
29
+ constructor(apiClient, encryptionService, matchingService, receiptDownloadBaseUrl = null) {
28
30
  this.apiClient = apiClient;
29
31
  this.encryptionService = encryptionService;
30
32
  this.matchingService = matchingService;
33
+ this.receiptDownloadBaseUrl = receiptDownloadBaseUrl;
31
34
  }
32
35
  async processCompleteReceipt(identificationDetails, receiptRequest, accessToken = null, notificationDisplayCode = null) {
33
36
  this.validateProcessInputs(identificationDetails, receiptRequest);
34
37
  try {
35
- const matchResponse = await this.matchingService.matchCustomer(identificationDetails, accessToken);
38
+ let matchResponse;
39
+ try {
40
+ matchResponse = await this.matchingService.matchCustomer(identificationDetails, accessToken);
41
+ }
42
+ catch (error) {
43
+ if (isDeferredFailure(error)) {
44
+ return ReceiptResult.pendingDownloadTemplate(this.createDownloadLink().url, errorMessage(error));
45
+ }
46
+ throw error;
47
+ }
36
48
  const recipientEmail = identificationDetails.recipientEmail;
49
+ if (routeFound(matchResponse) && matchResponse.deliveryRouteType == null) {
50
+ throw new CheqiSDKError("Matching response did not include deliveryRouteType; refusing legacy fallback-compatible submission", { errorCode: ErrorCodes.INVALID_RESPONSE });
51
+ }
37
52
  if (!routeFound(matchResponse) && !recipientEmail) {
38
53
  return ReceiptResult.customerNotFound();
39
54
  }
@@ -44,8 +59,20 @@ export class ReceiptService {
44
59
  buyerType: getRequestBuyerType(receiptRequest) ?? matchResponse.buyerType,
45
60
  taxesApplied: resolveTaxesApplied(receiptRequest)
46
61
  };
47
- const templateResponse = await this.generateReceiptTemplate(templateGenerationRequest, accessToken);
62
+ let templateResponse;
63
+ try {
64
+ templateResponse = await this.generateReceiptTemplate(templateGenerationRequest, accessToken);
65
+ }
66
+ catch (error) {
67
+ if (isDeferredFailure(error)) {
68
+ return ReceiptResult.pendingDownloadTemplate(this.createDownloadLink().url, errorMessage(error));
69
+ }
70
+ throw error;
71
+ }
48
72
  if (routeFound(matchResponse)) {
73
+ if (matchResponse.deliveryRouteType === "DOWNLOAD_FALLBACK") {
74
+ return this.deliverClientEncryptedDownload(this.createDownloadLink(), templateResponse, accessToken);
75
+ }
49
76
  const encryptedReceipts = this.buildEncryptedReceipts(matchResponse, templateResponse, notificationDisplayCode);
50
77
  const templateContent = templateResponse.cheqi
51
78
  ? serializeJson(templateResponse.cheqi)
@@ -150,6 +177,28 @@ export class ReceiptService {
150
177
  }
151
178
  return this.apiClient.uploadClientEncryptedReceipt(request, accessToken);
152
179
  }
180
+ async deliverClientEncryptedDownload(link, templateResponse, accessToken) {
181
+ const envelope = buildDownloadEnvelope(templateResponse);
182
+ const canonicalJson = serializeJson(templateResponse.cheqi ?? {});
183
+ const templateHash = sha256Hex(canonicalJson);
184
+ const ciphertext = await encryptDownloadEnvelope(envelope, link.contentKey);
185
+ try {
186
+ const response = await this.uploadClientEncryptedReceipt({ downloadId: link.downloadId, ciphertext, templateHash }, accessToken);
187
+ return ReceiptResult.deliveredViaClientDownload(response, templateHash, canonicalJson, link.url);
188
+ }
189
+ catch (error) {
190
+ if (isDeferredFailure(error)) {
191
+ return ReceiptResult.pendingDownloadUpload(link.url, ciphertext, templateHash, canonicalJson, errorMessage(error));
192
+ }
193
+ throw error;
194
+ }
195
+ }
196
+ createDownloadLink() {
197
+ if (!this.receiptDownloadBaseUrl) {
198
+ throw new CheqiSDKError("Receipt download base URL is required for automatic encrypted fallback; configure a standard Environment or receiptDownloadBaseUrl", { errorCode: ErrorCodes.CONFIGURATION_ERROR });
199
+ }
200
+ return generateDownloadLink(this.receiptDownloadBaseUrl);
201
+ }
153
202
  buildEncryptedReceipts(matchResponse, templateResponse, notificationDisplayCode) {
154
203
  const encryptedReceipts = [];
155
204
  for (const recipient of matchedRecipients(matchResponse)) {
@@ -186,6 +235,20 @@ export class ReceiptService {
186
235
  }
187
236
  }
188
237
  }
238
+ function isDeferredFailure(error) {
239
+ let current = error;
240
+ while (current instanceof Error) {
241
+ if (current instanceof CheqiSDKError) {
242
+ return current.isNetworkError() || current.httpStatusCode === 408 || current.httpStatusCode === 429 ||
243
+ current.httpStatusCode >= 500;
244
+ }
245
+ current = current.cause;
246
+ }
247
+ return false;
248
+ }
249
+ function errorMessage(error) {
250
+ return error instanceof Error ? error.message : String(error);
251
+ }
189
252
  function enrichWithVatContext(request, matchResponse) {
190
253
  return {
191
254
  ...request,
@@ -1 +1 @@
1
- {"version":3,"file":"receipt.js","sourceRoot":"","sources":["../../src/services/receipt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"receipt.js","sourceRoot":"","sources":["../../src/services/receipt.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -79,6 +79,7 @@ export interface EncryptedReceipt {
79
79
  export interface CheqiSDKOptions {
80
80
  environment?: string;
81
81
  customApiEndpoint?: string;
82
+ receiptDownloadBaseUrl?: string;
82
83
  apiKey?: Nullable<string>;
83
84
  privateKey?: Nullable<string>;
84
85
  timeoutSeconds?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cheqi/sdk",
3
- "version": "0.2.1",
3
+ "version": "0.4.0",
4
4
  "description": "Cheqi TypeScript SDK for encrypted receipt and credit note processing",
5
5
  "license": "MIT",
6
6
  "author": "Cheqi",