@cheqi/sdk 0.1.5 → 0.2.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.
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Client-generated, end-to-end-encrypted receipt download links
3
+ * ("Download Link Contract v1" — the offline-first QR route).
4
+ *
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.
10
+ *
11
+ * This module is intentionally separate from {@link ../services/decryption.js | DecryptionService}
12
+ * (the Node-only RSA + AES path for receipts delivered to Cheqi wallets) and is
13
+ * **browser-safe**: it uses only WebCrypto (`globalThis.crypto`), no `node:crypto` and no
14
+ * `Buffer`, so the same code runs on terminals (Node >= 20) and on the public receipt
15
+ * download page.
16
+ *
17
+ * Framing matches the SDK's hybrid encryption: `base64(iv || ciphertext || tag)` in a
18
+ * single opaque blob. The plaintext is a {@link ReceiptEnvelope} — the same envelope model
19
+ * used for wallet delivery, so no separate download-route model exists.
20
+ */
21
+ import type { ReceiptEnvelope } from "../models/generated/ReceiptEnvelope.js";
22
+ /** Download id length in bytes (128 bits — the enumeration defense on the public endpoint). */
23
+ export declare const DOWNLOAD_ID_LENGTH = 16;
24
+ /** A freshly generated download link: render `url` as the QR immediately, upload later. */
25
+ export interface DownloadLink {
26
+ /** base64url (unpadded) download id; the only part of the link the server ever sees. */
27
+ downloadId: string;
28
+ /** base64url (unpadded) AES-256 content key; lives ONLY in the URL fragment. */
29
+ contentKey: string;
30
+ /** Full customer-facing URL: `<baseUrl>/<downloadId>#<contentKey>`. */
31
+ url: string;
32
+ }
33
+ /**
34
+ * Generates a fresh download link locally — no network involved. Call this at transaction
35
+ * close and render `url` as the QR regardless of connectivity; upload the encrypted
36
+ * envelope asynchronously afterwards.
37
+ */
38
+ export declare function generateDownloadLink(baseUrl: string): DownloadLink;
39
+ /** Builds the customer-facing URL. The content key MUST stay in the fragment. */
40
+ export declare function buildDownloadUrl(baseUrl: string, downloadId: string, contentKey: string): string;
41
+ /**
42
+ * Splits a download URL (or a path + fragment) back into its parts, e.g. on the
43
+ * download page: `parseDownloadUrl(location.href)`.
44
+ */
45
+ export declare function parseDownloadUrl(url: string): {
46
+ downloadId: string;
47
+ contentKey: string;
48
+ };
49
+ /**
50
+ * Encrypts a receipt envelope with the content key. Returns `base64(iv || ciphertext || tag)` —
51
+ * the exact bytes to upload as `ciphertext` to `POST /receipt/download`. Encrypt once and
52
+ * persist the result: upload retries MUST resend identical bytes (the endpoint is
53
+ * idempotent on them).
54
+ */
55
+ export declare function encryptDownloadEnvelope(envelope: ReceiptEnvelope, contentKey: string): Promise<string>;
56
+ /**
57
+ * Decrypts a `base64(iv || ciphertext || tag)` blob (as served by
58
+ * `GET /public/receipt/v2/{downloadId}`) with the content key from the URL fragment.
59
+ * Throws {@link DecryptionError} when the key is wrong or the blob was tampered with.
60
+ */
61
+ export declare function decryptDownloadEnvelope(encryptedEnvelope: string, contentKey: string): Promise<ReceiptEnvelope>;
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Client-generated, end-to-end-encrypted receipt download links
3
+ * ("Download Link Contract v1" — the offline-first QR route).
4
+ *
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.
10
+ *
11
+ * This module is intentionally separate from {@link ../services/decryption.js | DecryptionService}
12
+ * (the Node-only RSA + AES path for receipts delivered to Cheqi wallets) and is
13
+ * **browser-safe**: it uses only WebCrypto (`globalThis.crypto`), no `node:crypto` and no
14
+ * `Buffer`, so the same code runs on terminals (Node >= 20) and on the public receipt
15
+ * download page.
16
+ *
17
+ * Framing matches the SDK's hybrid encryption: `base64(iv || ciphertext || tag)` in a
18
+ * single opaque blob. The plaintext is a {@link ReceiptEnvelope} — the same envelope model
19
+ * used for wallet delivery, so no separate download-route model exists.
20
+ */
21
+ import { AES_KEY_LENGTH, GCM_IV_LENGTH, GCM_TAG_LENGTH } from "../crypto.js";
22
+ import { DecryptionError, EncryptionError } from "../errors.js";
23
+ import { ReceiptEnvelopeFromJSON, ReceiptEnvelopeToJSON } from "../models/generated/ReceiptEnvelope.js";
24
+ /** Download id length in bytes (128 bits — the enumeration defense on the public endpoint). */
25
+ export const DOWNLOAD_ID_LENGTH = 16;
26
+ function webCrypto() {
27
+ const cryptoApi = globalThis.crypto;
28
+ if (!cryptoApi?.subtle) {
29
+ throw new EncryptionError("WebCrypto is not available in this environment (requires a browser or Node >= 20)");
30
+ }
31
+ return cryptoApi;
32
+ }
33
+ function subtle() {
34
+ return webCrypto().subtle;
35
+ }
36
+ function randomBytes(length) {
37
+ const bytes = new Uint8Array(length);
38
+ webCrypto().getRandomValues(bytes);
39
+ return bytes;
40
+ }
41
+ function toBase64(bytes) {
42
+ let binary = "";
43
+ for (const byte of bytes) {
44
+ binary += String.fromCharCode(byte);
45
+ }
46
+ return btoa(binary);
47
+ }
48
+ function fromBase64(value) {
49
+ const binary = atob(value);
50
+ const bytes = new Uint8Array(binary.length);
51
+ for (let i = 0; i < binary.length; i += 1) {
52
+ bytes[i] = binary.charCodeAt(i);
53
+ }
54
+ return bytes;
55
+ }
56
+ function toBase64Url(bytes) {
57
+ return toBase64(bytes).replaceAll("+", "-").replaceAll("/", "_").replace(/=+$/, "");
58
+ }
59
+ function fromBase64Url(value) {
60
+ return fromBase64(value.replaceAll("-", "+").replaceAll("_", "/"));
61
+ }
62
+ async function importContentKey(contentKey, usage) {
63
+ let keyBytes;
64
+ try {
65
+ keyBytes = fromBase64Url(contentKey);
66
+ }
67
+ catch {
68
+ throw new DecryptionError("Content key is not valid base64url");
69
+ }
70
+ if (keyBytes.length !== AES_KEY_LENGTH) {
71
+ throw new DecryptionError(`Content key has invalid length: expected ${AES_KEY_LENGTH} bytes, got ${keyBytes.length}`);
72
+ }
73
+ return subtle().importKey("raw", keyBytes, "AES-GCM", false, [usage]);
74
+ }
75
+ /**
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.
79
+ */
80
+ export function generateDownloadLink(baseUrl) {
81
+ const downloadId = toBase64Url(randomBytes(DOWNLOAD_ID_LENGTH));
82
+ const contentKey = toBase64Url(randomBytes(AES_KEY_LENGTH));
83
+ return { downloadId, contentKey, url: buildDownloadUrl(baseUrl, downloadId, contentKey) };
84
+ }
85
+ /** Builds the customer-facing URL. The content key MUST stay in the fragment. */
86
+ export function buildDownloadUrl(baseUrl, downloadId, contentKey) {
87
+ const trimmed = baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
88
+ return `${trimmed}/${downloadId}#${contentKey}`;
89
+ }
90
+ /**
91
+ * Splits a download URL (or a path + fragment) back into its parts, e.g. on the
92
+ * download page: `parseDownloadUrl(location.href)`.
93
+ */
94
+ export function parseDownloadUrl(url) {
95
+ const hashIndex = url.indexOf("#");
96
+ if (hashIndex < 0) {
97
+ throw new DecryptionError("Download URL has no #fragment content key");
98
+ }
99
+ const contentKey = url.slice(hashIndex + 1);
100
+ const path = url.slice(0, hashIndex);
101
+ const downloadId = path.slice(path.lastIndexOf("/") + 1);
102
+ if (!downloadId || !contentKey) {
103
+ throw new DecryptionError("Download URL is missing the download id or content key");
104
+ }
105
+ return { downloadId, contentKey };
106
+ }
107
+ /**
108
+ * Encrypts a receipt envelope with the content key. Returns `base64(iv || ciphertext || tag)` —
109
+ * the exact bytes to upload as `ciphertext` to `POST /receipt/download`. Encrypt once and
110
+ * persist the result: upload retries MUST resend identical bytes (the endpoint is
111
+ * idempotent on them).
112
+ */
113
+ export async function encryptDownloadEnvelope(envelope, contentKey) {
114
+ const key = await importContentKey(contentKey, "encrypt");
115
+ const iv = randomBytes(GCM_IV_LENGTH);
116
+ const plaintext = new TextEncoder().encode(JSON.stringify(ReceiptEnvelopeToJSON(envelope)));
117
+ const encrypted = new Uint8Array(await subtle().encrypt({ name: "AES-GCM", iv: iv }, key, plaintext));
118
+ const combined = new Uint8Array(iv.length + encrypted.length);
119
+ combined.set(iv, 0);
120
+ combined.set(encrypted, iv.length);
121
+ return toBase64(combined);
122
+ }
123
+ /**
124
+ * Decrypts a `base64(iv || ciphertext || tag)` blob (as served by
125
+ * `GET /public/receipt/v2/{downloadId}`) with the content key from the URL fragment.
126
+ * Throws {@link DecryptionError} when the key is wrong or the blob was tampered with.
127
+ */
128
+ export async function decryptDownloadEnvelope(encryptedEnvelope, contentKey) {
129
+ const key = await importContentKey(contentKey, "decrypt");
130
+ let combined;
131
+ try {
132
+ combined = fromBase64(encryptedEnvelope);
133
+ }
134
+ catch {
135
+ throw new DecryptionError("Encrypted envelope is not valid base64");
136
+ }
137
+ const minLength = GCM_IV_LENGTH + GCM_TAG_LENGTH;
138
+ if (combined.length < minLength) {
139
+ throw new DecryptionError(`Encrypted envelope too short: expected at least ${minLength} bytes, got ${combined.length}`);
140
+ }
141
+ const iv = combined.subarray(0, GCM_IV_LENGTH);
142
+ const ciphertextWithTag = combined.subarray(GCM_IV_LENGTH);
143
+ let plaintext;
144
+ try {
145
+ plaintext = await subtle().decrypt({ name: "AES-GCM", iv: iv }, key, ciphertextWithTag);
146
+ }
147
+ catch {
148
+ throw new DecryptionError("Failed to decrypt envelope: wrong content key or tampered ciphertext");
149
+ }
150
+ try {
151
+ return ReceiptEnvelopeFromJSON(JSON.parse(new TextDecoder().decode(plaintext)));
152
+ }
153
+ catch {
154
+ throw new DecryptionError("Decrypted envelope is not valid JSON");
155
+ }
156
+ }
157
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/download/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAExG,+FAA+F;AAC/F,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAYrC,SAAS,SAAS;IAChB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;IACpC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CAAC,mFAAmF,CAAC,CAAC;IACjH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,MAAM;IACb,OAAO,SAAS,EAAE,CAAC,MAAM,CAAC;AAC5B,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,SAAS,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB;IACjC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAiB;IACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,UAAkB,EAAE,KAAe;IACjE,IAAI,QAAoB,CAAC;IACzB,IAAI,CAAC;QACH,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,eAAe,CAAC,oCAAoC,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACvC,MAAM,IAAI,eAAe,CAAC,4CAA4C,cAAc,eAAe,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACxH,CAAC;IACD,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,QAAwB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACxF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAC5D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,UAAkB,EAAE,UAAkB;IACtF,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACvE,OAAO,GAAG,OAAO,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,eAAe,CAAC,2CAA2C,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,wDAAwD,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,QAAyB,EAAE,UAAkB;IACzF,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5F,MAAM,SAAS,GAAG,IAAI,UAAU,CAC9B,MAAM,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAkB,EAAE,EAAE,GAAG,EAAE,SAAyB,CAAC,CACpG,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9D,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpB,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,iBAAyB,EAAE,UAAkB;IACzF,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE1D,IAAI,QAAoB,CAAC;IACzB,IAAI,CAAC;QACH,QAAQ,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,eAAe,CAAC,wCAAwC,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,SAAS,GAAG,aAAa,GAAG,cAAc,CAAC;IACjD,IAAI,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,eAAe,CAAC,mDAAmD,SAAS,eAAe,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1H,CAAC;IAED,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IAC/C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE3D,IAAI,SAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,MAAM,EAAE,CAAC,OAAO,CAChC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAkB,EAAE,EAC3C,GAAG,EACH,iBAAiC,CAClC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,eAAe,CAAC,sEAAsE,CAAC,CAAC;IACpG,CAAC;IAED,IAAI,CAAC;QACH,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,eAAe,CAAC,sCAAsC,CAAC,CAAC;IACpE,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { CheqiSDKConfig } from "../config.js";
2
- import type { CheqiApiClient, CreateStoreRequest, CreditNoteTemplateGenerationRequest, CreditNoteTemplateResponse, EncryptedCreditNote, EncryptedReceiptRequest, FetchLike, IdentificationDetails, ReceiptTemplateGenerationRequest, ReceiptTemplateResponse, RecipientResolutionResponse, ProvisionCompanyRequest } from "../types.js";
2
+ import type { CheqiApiClient, ClientReceiptDownloadRequest, ClientReceiptDownloadResponse, CreateStoreRequest, CreditNoteTemplateGenerationRequest, CreditNoteTemplateResponse, EncryptedCreditNote, EncryptedReceiptRequest, FetchLike, IdentificationDetails, ReceiptTemplateGenerationRequest, ReceiptTemplateResponse, RecipientResolutionResponse, ProvisionCompanyRequest } from "../types.js";
3
3
  /**
4
4
  * Default HTTP implementation of {@link CheqiApiClient}.
5
5
  *
@@ -17,6 +17,7 @@ export declare class DefaultCheqiApiClient implements CheqiApiClient {
17
17
  generateCreditNoteTemplate(request: CreditNoteTemplateGenerationRequest, accessToken?: string | null): Promise<CreditNoteTemplateResponse>;
18
18
  matchCustomer(request: IdentificationDetails, accessToken?: string | null): Promise<RecipientResolutionResponse>;
19
19
  sendEncryptedReceipts(matchId: string, encryptedReceipts: EncryptedReceiptRequest[], templateHash: string, accessToken?: string | null): Promise<Record<string, unknown>>;
20
+ uploadClientEncryptedReceipt(request: ClientReceiptDownloadRequest, accessToken?: string | null): Promise<ClientReceiptDownloadResponse>;
20
21
  sendEncryptedCreditNotes(matchId: string, parentCheqiReceiptId: string, encryptedCreditNotes: EncryptedCreditNote[], templateHash: string, accessToken?: string | null): Promise<Record<string, unknown>>;
21
22
  sendReceiptViaEmail(customerEmail: string, receipt: Record<string, unknown> | string, accessToken?: string | null): Promise<void>;
22
23
  provisionCompany(request: ProvisionCompanyRequest): Promise<Record<string, unknown>>;
@@ -109,6 +109,13 @@ export class DefaultCheqiApiClient {
109
109
  operation: "sendEncryptedReceipts"
110
110
  });
111
111
  }
112
+ async uploadClientEncryptedReceipt(request, accessToken) {
113
+ return this.request("POST", Endpoints.CLIENT_RECEIPT_DOWNLOAD_ENDPOINT, {
114
+ body: normalizeValue(request),
115
+ accessToken,
116
+ operation: "uploadClientEncryptedReceipt"
117
+ });
118
+ }
112
119
  async sendEncryptedCreditNotes(matchId, parentCheqiReceiptId, encryptedCreditNotes, templateHash, accessToken) {
113
120
  return this.request("POST", Endpoints.ENCRYPTED_CREDIT_NOTE_ENDPOINT, {
114
121
  body: {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export declare const Endpoints: {
2
2
  readonly TEMPLATE_ENDPOINT: "/receipt/template";
3
3
  readonly CUSTOMER_MATCH_ENDPOINT: "/recipient/resolve";
4
4
  readonly ENCRYPTED_RECEIPT_ENDPOINT: "/receipt/encrypted";
5
+ readonly CLIENT_RECEIPT_DOWNLOAD_ENDPOINT: "/receipt/download";
5
6
  readonly ENCRYPTED_CREDIT_NOTE_ENDPOINT: "/credit-note/encrypted";
6
7
  readonly CREDIT_NOTE_TEMPLATE_ENDPOINT: "/credit-note/template";
7
8
  readonly EMAIL_RECEIPT_ENDPOINT: "/receipt/email";
@@ -2,6 +2,7 @@ export const Endpoints = {
2
2
  TEMPLATE_ENDPOINT: "/receipt/template",
3
3
  CUSTOMER_MATCH_ENDPOINT: "/recipient/resolve",
4
4
  ENCRYPTED_RECEIPT_ENDPOINT: "/receipt/encrypted",
5
+ CLIENT_RECEIPT_DOWNLOAD_ENDPOINT: "/receipt/download",
5
6
  ENCRYPTED_CREDIT_NOTE_ENDPOINT: "/credit-note/encrypted",
6
7
  CREDIT_NOTE_TEMPLATE_ENDPOINT: "/credit-note/template",
7
8
  EMAIL_RECEIPT_ENDPOINT: "/receipt/email",
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/http/endpoints.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iBAAiB,EAAE,mBAAmB;IACtC,uBAAuB,EAAE,oBAAoB;IAC7C,0BAA0B,EAAE,oBAAoB;IAChD,8BAA8B,EAAE,wBAAwB;IACxD,6BAA6B,EAAE,uBAAuB;IACtD,sBAAsB,EAAE,gBAAgB;IACxC,0BAA0B,EAAE,oBAAoB;IAChD,uBAAuB,EAAE,CAAC,SAAiB,EAAU,EAAE,CAAC,YAAY,SAAS,SAAS;IACtF,sBAAsB,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAU,EAAE,CAAC,YAAY,SAAS,WAAW,OAAO,EAAE;IACjH,+BAA+B,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAU,EAAE,CAAC,YAAY,SAAS,WAAW,OAAO,WAAW;IACnI,iCAAiC,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAU,EAAE,CAAC,YAAY,SAAS,WAAW,OAAO,aAAa;CAC/H,CAAC"}
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/http/endpoints.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iBAAiB,EAAE,mBAAmB;IACtC,uBAAuB,EAAE,oBAAoB;IAC7C,0BAA0B,EAAE,oBAAoB;IAChD,gCAAgC,EAAE,mBAAmB;IACrD,8BAA8B,EAAE,wBAAwB;IACxD,6BAA6B,EAAE,uBAAuB;IACtD,sBAAsB,EAAE,gBAAgB;IACxC,0BAA0B,EAAE,oBAAoB;IAChD,uBAAuB,EAAE,CAAC,SAAiB,EAAU,EAAE,CAAC,YAAY,SAAS,SAAS;IACtF,sBAAsB,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAU,EAAE,CAAC,YAAY,SAAS,WAAW,OAAO,EAAE;IACjH,+BAA+B,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAU,EAAE,CAAC,YAAY,SAAS,WAAW,OAAO,WAAW;IACnI,iCAAiC,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAU,EAAE,CAAC,YAAY,SAAS,WAAW,OAAO,aAAa;CAC/H,CAAC"}
package/dist/index.d.ts CHANGED
@@ -17,6 +17,7 @@ export { CreditNoteService } from "./services/credit-note.js";
17
17
  export { VerificationService } from "./services/verification.js";
18
18
  export { CompanyService } from "./services/company.js";
19
19
  export { StoreService } from "./services/store.js";
20
+ export * from "./download/index.js";
20
21
  export { canonicalizeJson } from "./rfc8785.js";
21
22
  export { canonicalizeXml } from "./xml.js";
22
23
  export type { CheqiApiClient, CheqiSDKOptions, CreditNoteEnvelope, CreditNoteInitiationRequest, DecryptedDeliveredCreditNote, DecryptedReceipt, EncryptedReceipt, FetchLike, JsonObject, JsonPrimitive, JsonValue, Nullable, RefundBankAccount, RefundPreference, ReturnCondition, ReturnLineItem, RequestOptions } from "./types.js";
package/dist/index.js CHANGED
@@ -15,6 +15,7 @@ export { CreditNoteService } from "./services/credit-note.js";
15
15
  export { VerificationService } from "./services/verification.js";
16
16
  export { CompanyService } from "./services/company.js";
17
17
  export { StoreService } from "./services/store.js";
18
+ export * from "./download/index.js";
18
19
  export { canonicalizeJson } from "./rfc8785.js";
19
20
  export { canonicalizeXml } from "./xml.js";
20
21
  //# sourceMappingURL=index.js.map
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,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,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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Cheqi API
3
+ * Cheqi provides APIs for creating receipts and reading receipts for customers
4
+ *
5
+ * The version of the OpenAPI document: v1
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Client-encrypted receipt payload
14
+ * @export
15
+ * @interface ClientReceiptDownloadRequest
16
+ */
17
+ export interface ClientReceiptDownloadRequest {
18
+ /**
19
+ * Client-generated download identifier: at least 16 CSPRNG bytes encoded as base64url without padding. Must be exactly the id embedded in the QR URL path. Resubmitting the same id with identical payload bytes is an idempotent replay.
20
+ * @type {string}
21
+ * @memberof ClientReceiptDownloadRequest
22
+ */
23
+ downloadId: string;
24
+ /**
25
+ * Base64-encoded AES-256-GCM blob framed as iv || ciphertext || tag (12-byte IV, 128-bit tag) of the receipt envelope, encrypted client-side with the key from the QR URL fragment. Cheqi never receives that key and cannot decrypt this payload.
26
+ * @type {string}
27
+ * @memberof ClientReceiptDownloadRequest
28
+ */
29
+ ciphertext: string;
30
+ /**
31
+ * Optional locally computed template hash for audit and reconciliation.
32
+ * @type {string}
33
+ * @memberof ClientReceiptDownloadRequest
34
+ */
35
+ templateHash?: string | null;
36
+ }
37
+ /**
38
+ * Check if a given object implements the ClientReceiptDownloadRequest interface.
39
+ */
40
+ export declare function instanceOfClientReceiptDownloadRequest(value: object): value is ClientReceiptDownloadRequest;
41
+ export declare function ClientReceiptDownloadRequestFromJSON(json: any): ClientReceiptDownloadRequest;
42
+ export declare function ClientReceiptDownloadRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClientReceiptDownloadRequest;
43
+ export declare function ClientReceiptDownloadRequestToJSON(json: any): ClientReceiptDownloadRequest;
44
+ export declare function ClientReceiptDownloadRequestToJSONTyped(value?: ClientReceiptDownloadRequest | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,50 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Cheqi API
5
+ * Cheqi provides APIs for creating receipts and reading receipts for customers
6
+ *
7
+ * The version of the OpenAPI document: v1
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * Check if a given object implements the ClientReceiptDownloadRequest interface.
16
+ */
17
+ export function instanceOfClientReceiptDownloadRequest(value) {
18
+ if (!('downloadId' in value) || value['downloadId'] === undefined)
19
+ return false;
20
+ if (!('ciphertext' in value) || value['ciphertext'] === undefined)
21
+ return false;
22
+ return true;
23
+ }
24
+ export function ClientReceiptDownloadRequestFromJSON(json) {
25
+ return ClientReceiptDownloadRequestFromJSONTyped(json, false);
26
+ }
27
+ export function ClientReceiptDownloadRequestFromJSONTyped(json, ignoreDiscriminator) {
28
+ if (json == null) {
29
+ return json;
30
+ }
31
+ return {
32
+ 'downloadId': json['downloadId'],
33
+ 'ciphertext': json['ciphertext'],
34
+ 'templateHash': json['templateHash'] == null ? undefined : json['templateHash'],
35
+ };
36
+ }
37
+ export function ClientReceiptDownloadRequestToJSON(json) {
38
+ return ClientReceiptDownloadRequestToJSONTyped(json, false);
39
+ }
40
+ export function ClientReceiptDownloadRequestToJSONTyped(value, ignoreDiscriminator = false) {
41
+ if (value == null) {
42
+ return value;
43
+ }
44
+ return {
45
+ 'downloadId': value['downloadId'],
46
+ 'ciphertext': value['ciphertext'],
47
+ 'templateHash': value['templateHash'],
48
+ };
49
+ }
50
+ //# sourceMappingURL=ClientReceiptDownloadRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientReceiptDownloadRequest.js","sourceRoot":"","sources":["../../../src/models/generated/ClientReceiptDownloadRequest.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,oBAAoB;AACpB;;;;;;;;;;GAUG;AA6BH;;GAEG;AACH,MAAM,UAAU,sCAAsC,CAAC,KAAa;IAChE,IAAI,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAChF,IAAI,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAChF,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,IAAS;IAC1D,OAAO,yCAAyC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,yCAAyC,CAAC,IAAS,EAAE,mBAA4B;IAC7F,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO;QAEH,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;QAChC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;QAChC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;KAClF,CAAC;AACN,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,IAAS;IACxD,OAAO,uCAAuC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,uCAAuC,CAAC,KAA2C,EAAE,sBAA+B,KAAK;IACrI,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO;QAEH,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;QACjC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;QACjC,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC;KACxC,CAAC;AACN,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Cheqi API
3
+ * Cheqi provides APIs for creating receipts and reading receipts for customers
4
+ *
5
+ * The version of the OpenAPI document: v1
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface ClientReceiptDownloadResponse
16
+ */
17
+ export interface ClientReceiptDownloadResponse {
18
+ /**
19
+ * Stable Cheqi receipt identifier minted at upload time, for merchant back-office reconciliation. The customer-facing reference is the download URL itself.
20
+ * @type {string}
21
+ * @memberof ClientReceiptDownloadResponse
22
+ */
23
+ cheqiReceiptId?: string;
24
+ /**
25
+ * Timestamp when Cheqi first accepted this upload.
26
+ * @type {Date}
27
+ * @memberof ClientReceiptDownloadResponse
28
+ */
29
+ createdAt?: Date;
30
+ /**
31
+ * Timestamp after which the download link stops resolving.
32
+ * @type {Date}
33
+ * @memberof ClientReceiptDownloadResponse
34
+ */
35
+ expiresAt?: Date;
36
+ }
37
+ /**
38
+ * Check if a given object implements the ClientReceiptDownloadResponse interface.
39
+ */
40
+ export declare function instanceOfClientReceiptDownloadResponse(value: object): value is ClientReceiptDownloadResponse;
41
+ export declare function ClientReceiptDownloadResponseFromJSON(json: any): ClientReceiptDownloadResponse;
42
+ export declare function ClientReceiptDownloadResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClientReceiptDownloadResponse;
43
+ export declare function ClientReceiptDownloadResponseToJSON(json: any): ClientReceiptDownloadResponse;
44
+ export declare function ClientReceiptDownloadResponseToJSONTyped(value?: ClientReceiptDownloadResponse | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,46 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Cheqi API
5
+ * Cheqi provides APIs for creating receipts and reading receipts for customers
6
+ *
7
+ * The version of the OpenAPI document: v1
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * Check if a given object implements the ClientReceiptDownloadResponse interface.
16
+ */
17
+ export function instanceOfClientReceiptDownloadResponse(value) {
18
+ return true;
19
+ }
20
+ export function ClientReceiptDownloadResponseFromJSON(json) {
21
+ return ClientReceiptDownloadResponseFromJSONTyped(json, false);
22
+ }
23
+ export function ClientReceiptDownloadResponseFromJSONTyped(json, ignoreDiscriminator) {
24
+ if (json == null) {
25
+ return json;
26
+ }
27
+ return {
28
+ 'cheqiReceiptId': json['cheqiReceiptId'] == null ? undefined : json['cheqiReceiptId'],
29
+ 'createdAt': json['createdAt'] == null ? undefined : (new Date(json['createdAt'])),
30
+ 'expiresAt': json['expiresAt'] == null ? undefined : (new Date(json['expiresAt'])),
31
+ };
32
+ }
33
+ export function ClientReceiptDownloadResponseToJSON(json) {
34
+ return ClientReceiptDownloadResponseToJSONTyped(json, false);
35
+ }
36
+ export function ClientReceiptDownloadResponseToJSONTyped(value, ignoreDiscriminator = false) {
37
+ if (value == null) {
38
+ return value;
39
+ }
40
+ return {
41
+ 'cheqiReceiptId': value['cheqiReceiptId'],
42
+ 'createdAt': value['createdAt'] == null ? undefined : ((value['createdAt']).toISOString()),
43
+ 'expiresAt': value['expiresAt'] == null ? undefined : ((value['expiresAt']).toISOString()),
44
+ };
45
+ }
46
+ //# sourceMappingURL=ClientReceiptDownloadResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientReceiptDownloadResponse.js","sourceRoot":"","sources":["../../../src/models/generated/ClientReceiptDownloadResponse.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,oBAAoB;AACpB;;;;;;;;;;GAUG;AA6BH;;GAEG;AACH,MAAM,UAAU,uCAAuC,CAAC,KAAa;IACjE,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,IAAS;IAC3D,OAAO,0CAA0C,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,0CAA0C,CAAC,IAAS,EAAE,mBAA4B;IAC9F,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO;QAEH,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACrF,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,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;KACrF,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,IAAS;IACzD,OAAO,wCAAwC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,wCAAwC,CAAC,KAA4C,EAAE,sBAA+B,KAAK;IACvI,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO;QAEH,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC;QACzC,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,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;KAC7F,CAAC;AACN,CAAC"}
@@ -13,6 +13,8 @@ export * from './CardDetails.js';
13
13
  export * from './Charge.js';
14
14
  export * from './CheqiCreditNote.js';
15
15
  export * from './CheqiReceipt.js';
16
+ export * from './ClientReceiptDownloadRequest.js';
17
+ export * from './ClientReceiptDownloadResponse.js';
16
18
  export * from './CompanyCreationRequest.js';
17
19
  export * from './CompanyIdentifierDTO.js';
18
20
  export * from './CompanyIdentifierRequirement.js';
@@ -13,6 +13,8 @@ export * from './CardDetails.js';
13
13
  export * from './Charge.js';
14
14
  export * from './CheqiCreditNote.js';
15
15
  export * from './CheqiReceipt.js';
16
+ export * from './ClientReceiptDownloadRequest.js';
17
+ export * from './ClientReceiptDownloadResponse.js';
16
18
  export * from './CompanyCreationRequest.js';
17
19
  export * from './CompanyIdentifierDTO.js';
18
20
  export * from './CompanyIdentifierRequirement.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/generated/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,yCAAyC,CAAC;AACxD,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,oDAAoD,CAAC;AACnE,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/generated/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,yCAAyC,CAAC;AACxD,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,oDAAoD,CAAC;AACnE,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oCAAoC,CAAC"}
@@ -1,17 +1,27 @@
1
1
  import { ReceiptResult } from "../models.js";
2
- import type { CheqiApiClient, EncryptedReceiptRequest, IdentificationDetails, MatchedRecipient, NotificationDisplayCode, ReceiptTemplateGenerationRequest, ReceiptTemplateRequest, ReceiptTemplateResponse, RecipientResolutionResponse } from "../types.js";
2
+ import type { CheqiApiClient, ClientReceiptDownloadRequest, ClientReceiptDownloadResponse, EncryptedReceiptRequest, IdentificationDetails, MatchedRecipient, NotificationDisplayCode, ReceiptTemplateGenerationRequest, ReceiptTemplateRequest, ReceiptTemplateResponse, RecipientResolutionResponse } from "../types.js";
3
3
  import { EncryptionService } from "./encryption.js";
4
4
  import { MatchingService } from "./matching.js";
5
5
  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">, encryptionService: EncryptionService, matchingService: MatchingService);
9
+ constructor(apiClient: Pick<CheqiApiClient, "generateReceiptTemplate" | "sendEncryptedReceipts" | "sendReceiptViaEmail" | "uploadClientEncryptedReceipt">, encryptionService: EncryptionService, matchingService: MatchingService);
10
10
  processCompleteReceipt(identificationDetails: IdentificationDetails, receiptRequest: ReceiptTemplateRequest, accessToken?: string | null, notificationDisplayCode?: NotificationDisplayCode | null): Promise<ReceiptResult>;
11
11
  generateReceiptTemplate(request: ReceiptTemplateGenerationRequest, accessToken?: string | null): Promise<ReceiptTemplateResponse>;
12
12
  createEncryptedReceipts(purchaseReceipt: string, recipient: MatchedRecipient, notificationDisplayCode?: NotificationDisplayCode | null): EncryptedReceiptRequest;
13
13
  sendEncryptedReceipts(encryptedReceipts: EncryptedReceiptRequest[], templateHash: string, matchResponse: RecipientResolutionResponse, accessToken?: string | null): Promise<Record<string, unknown>>;
14
14
  sendReceiptViaEmail(customerEmail: string, cheqiReceipt: Record<string, unknown>, accessToken?: string | null): Promise<ReceiptResult>;
15
+ /**
16
+ * Uploads a client-encrypted receipt for a download link generated locally with
17
+ * `generateDownloadLink` and encrypted with `encryptDownloadEnvelope` (Download Link
18
+ * Contract v1). The QR was rendered before this call; the upload may happen much later.
19
+ *
20
+ * Idempotent on the exact ciphertext bytes: resend the SAME persisted blob on retries
21
+ * (200 and 201 are both success). A 409 means different bytes already exist under this
22
+ * download id — a bug in the integration; do not regenerate the id or retry.
23
+ */
24
+ uploadClientEncryptedReceipt(request: ClientReceiptDownloadRequest, accessToken?: string | null): Promise<ClientReceiptDownloadResponse>;
15
25
  private buildEncryptedReceipts;
16
26
  private validateProcessInputs;
17
27
  }
@@ -126,6 +126,30 @@ export class ReceiptService {
126
126
  await this.apiClient.sendReceiptViaEmail(customerEmail, cheqiReceipt, accessToken);
127
127
  return ReceiptResult.deliveredViaEmail(customerEmail);
128
128
  }
129
+ /**
130
+ * Uploads a client-encrypted receipt for a download link generated locally with
131
+ * `generateDownloadLink` and encrypted with `encryptDownloadEnvelope` (Download Link
132
+ * Contract v1). The QR was rendered before this call; the upload may happen much later.
133
+ *
134
+ * Idempotent on the exact ciphertext bytes: resend the SAME persisted blob on retries
135
+ * (200 and 201 are both success). A 409 means different bytes already exist under this
136
+ * download id — a bug in the integration; do not regenerate the id or retry.
137
+ */
138
+ async uploadClientEncryptedReceipt(request, accessToken = null) {
139
+ if (!request?.downloadId || !/^[A-Za-z0-9_-]{22,64}$/.test(request.downloadId)) {
140
+ throw new CheqiSDKError("downloadId must be 22-64 base64url characters", {
141
+ errorCode: ErrorCodes.VALIDATION_ERROR,
142
+ httpStatusCode: 400
143
+ });
144
+ }
145
+ if (!request.ciphertext) {
146
+ throw new CheqiSDKError("ciphertext is required", {
147
+ errorCode: ErrorCodes.VALIDATION_ERROR,
148
+ httpStatusCode: 400
149
+ });
150
+ }
151
+ return this.apiClient.uploadClientEncryptedReceipt(request, accessToken);
152
+ }
129
153
  buildEncryptedReceipts(matchResponse, templateResponse, notificationDisplayCode) {
130
154
  const encryptedReceipts = [];
131
155
  for (const recipient of matchedRecipients(matchResponse)) {
@@ -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
@@ -4,7 +4,7 @@ export type JsonValue = JsonPrimitive | JsonObject | JsonValue[];
4
4
  export interface JsonObject {
5
5
  [key: string]: JsonValue | undefined;
6
6
  }
7
- export type { AddressDTO, BarcodeType, BuyerType, CardDetails, CreditNoteContextEnvelope, ReceiptContextEnvelope, Charge, CheqiCreditNote, CheqiReceipt, CreateStoreRequest, CreditNoteTemplateGenerationRequest, CreditNoteTemplateRequest, CreditNoteTemplateResponse, Discount, EncryptedCreditNote, EncryptedCreditNoteInitiationRequest, EncryptedReceiptRequest, EncryptedReceiptsRequest, IdentificationDetails, Identifier, MatchedRecipient, NotificationDisplayCode, PaymentAccountDetails, Period, Product, ReceiptCreatedResponse, ReceiptEnvelope, ReceiptFormat, ReceiptTemplateGenerationRequest, ReceiptTemplateRequest, ReceiptTemplateResponse, RecipientResolutionResponse, SellingParty, ReceivingParty, StoreDTO, Tax, VatMetadata, } from "./models/generated/index.js";
7
+ export type { AddressDTO, BarcodeType, BuyerType, CardDetails, ClientReceiptDownloadRequest, ClientReceiptDownloadResponse, CreditNoteContextEnvelope, ReceiptContextEnvelope, Charge, CheqiCreditNote, CheqiReceipt, CreateStoreRequest, CreditNoteTemplateGenerationRequest, CreditNoteTemplateRequest, CreditNoteTemplateResponse, Discount, EncryptedCreditNote, EncryptedCreditNoteInitiationRequest, EncryptedReceiptRequest, EncryptedReceiptsRequest, IdentificationDetails, Identifier, MatchedRecipient, NotificationDisplayCode, PaymentAccountDetails, Period, Product, ReceiptCreatedResponse, ReceiptEnvelope, ReceiptFormat, ReceiptTemplateGenerationRequest, ReceiptTemplateRequest, ReceiptTemplateResponse, RecipientResolutionResponse, SellingParty, ReceivingParty, StoreDTO, Tax, VatMetadata, } from "./models/generated/index.js";
8
8
  export type CompanyDTO = import("./models/generated/index.js").CompanyCreationRequest;
9
9
  export type IdentificationDetailsPaymentTypeEnum = import("./models/generated/index.js").PaymentType;
10
10
  export type ProvisionCompanyRequest = import("./models/generated/index.js").CreateChildCompanyRequest;
@@ -97,6 +97,7 @@ export interface CheqiApiClient {
97
97
  generateCreditNoteTemplate(request: import("./models/generated/index.js").CreditNoteTemplateGenerationRequest, accessToken?: string | null): Promise<import("./models/generated/index.js").CreditNoteTemplateResponse>;
98
98
  matchCustomer(request: import("./models/generated/index.js").IdentificationDetails, accessToken?: string | null): Promise<import("./models/generated/index.js").RecipientResolutionResponse>;
99
99
  sendEncryptedReceipts(matchId: string, encryptedReceipts: import("./models/generated/index.js").EncryptedReceiptRequest[], templateHash: string, accessToken?: string | null): Promise<Record<string, unknown>>;
100
+ uploadClientEncryptedReceipt(request: import("./models/generated/index.js").ClientReceiptDownloadRequest, accessToken?: string | null): Promise<import("./models/generated/index.js").ClientReceiptDownloadResponse>;
100
101
  sendEncryptedCreditNotes(matchId: string, parentCheqiReceiptId: string, encryptedCreditNotes: import("./models/generated/index.js").EncryptedCreditNote[], templateHash: string, accessToken?: string | null): Promise<Record<string, unknown>>;
101
102
  sendReceiptViaEmail(customerEmail: string, receipt: Record<string, unknown> | string, accessToken?: string | null): Promise<void>;
102
103
  provisionCompany(request: ProvisionCompanyRequest): Promise<Record<string, unknown>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cheqi/sdk",
3
- "version": "0.1.5",
3
+ "version": "0.2.0",
4
4
  "description": "Cheqi TypeScript SDK for encrypted receipt and credit note processing",
5
5
  "license": "MIT",
6
6
  "author": "Cheqi",
@@ -32,6 +32,10 @@
32
32
  "./entity": {
33
33
  "types": "./dist/entity/index.d.ts",
34
34
  "default": "./dist/entity/index.js"
35
+ },
36
+ "./download": {
37
+ "types": "./dist/download/index.d.ts",
38
+ "default": "./dist/download/index.js"
35
39
  }
36
40
  },
37
41
  "files": [