@tagadapay/headless-sdk 1.3.2 → 1.5.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 (50) hide show
  1. package/README.md +84 -7
  2. package/dist/core/client.d.ts +6 -0
  3. package/dist/core/client.d.ts.map +1 -1
  4. package/dist/core/client.js +6 -0
  5. package/dist/core/client.js.map +1 -1
  6. package/dist/core/http.js +2 -2
  7. package/dist/core/http.js.map +1 -1
  8. package/dist/core/index.d.ts +1 -1
  9. package/dist/core/index.d.ts.map +1 -1
  10. package/dist/core/modules/checkout.d.ts +113 -12
  11. package/dist/core/modules/checkout.d.ts.map +1 -1
  12. package/dist/core/modules/checkout.js +201 -55
  13. package/dist/core/modules/checkout.js.map +1 -1
  14. package/dist/core/modules/payment.d.ts +120 -4
  15. package/dist/core/modules/payment.d.ts.map +1 -1
  16. package/dist/core/modules/payment.js +336 -7
  17. package/dist/core/modules/payment.js.map +1 -1
  18. package/dist/core/types.d.ts +112 -2
  19. package/dist/core/types.d.ts.map +1 -1
  20. package/dist/react/hooks/useCheckout.d.ts.map +1 -1
  21. package/dist/react/hooks/useCheckout.js +9 -15
  22. package/dist/react/hooks/useCheckout.js.map +1 -1
  23. package/dist/react/hooks/usePayment.d.ts +58 -13
  24. package/dist/react/hooks/usePayment.d.ts.map +1 -1
  25. package/dist/react/hooks/usePayment.js +124 -11
  26. package/dist/react/hooks/usePayment.js.map +1 -1
  27. package/dist/react/index.d.ts +2 -2
  28. package/dist/react/index.d.ts.map +1 -1
  29. package/dist/stripe/StripeExpressButton.d.ts +30 -0
  30. package/dist/stripe/StripeExpressButton.d.ts.map +1 -0
  31. package/dist/stripe/StripeExpressButton.js +32 -0
  32. package/dist/stripe/StripeExpressButton.js.map +1 -0
  33. package/dist/stripe/StripeExpressCheckout.d.ts +98 -0
  34. package/dist/stripe/StripeExpressCheckout.d.ts.map +1 -0
  35. package/dist/stripe/StripeExpressCheckout.js +198 -0
  36. package/dist/stripe/StripeExpressCheckout.js.map +1 -0
  37. package/dist/stripe/index.d.ts +8 -0
  38. package/dist/stripe/index.d.ts.map +1 -0
  39. package/dist/stripe/index.js +15 -0
  40. package/dist/stripe/index.js.map +1 -0
  41. package/dist/stripe/useStripeExpress.d.ts +54 -0
  42. package/dist/stripe/useStripeExpress.d.ts.map +1 -0
  43. package/dist/stripe/useStripeExpress.js +126 -0
  44. package/dist/stripe/useStripeExpress.js.map +1 -0
  45. package/dist/tagada-headless-react.min.js +2 -2
  46. package/dist/tagada-headless-react.min.js.map +3 -3
  47. package/dist/tagada-headless.js +483 -66
  48. package/dist/tagada-headless.min.js +2 -2
  49. package/dist/tagada-headless.min.js.map +3 -3
  50. package/package.json +9 -3
@@ -1,8 +1,22 @@
1
1
  /**
2
- * Manages checkout sessions -- load, update cart, apply promo codes, handle shipping.
2
+ * Manages checkout sessions — load, update cart, apply promo codes, handle shipping.
3
3
  *
4
- * All methods talk to the TagadaPay REST API and return typed data.
5
- * No local state is kept; the server is the source of truth.
4
+ * Works for both **shipped** and **digital** products:
5
+ *
6
+ * **Shipped products** (physical goods):
7
+ * ```
8
+ * updateCustomer(id, { email, firstName, lastName })
9
+ * updateAddress(id, { shippingAddress: { line1, city, ... } })
10
+ * getShippingRates(id)
11
+ * selectShippingRate(id, rateId)
12
+ * ```
13
+ *
14
+ * **Digital products** (no shipping needed):
15
+ * ```
16
+ * updateCustomer(id, { email, firstName, lastName })
17
+ * updateAddress(id, { billingAddress: { line1, city, country } })
18
+ * // Skip shipping rates — go straight to payment
19
+ * ```
6
20
  */
7
21
  export class CheckoutModule {
8
22
  constructor(http, storeId, onTokenChange) {
@@ -15,17 +29,24 @@ export class CheckoutModule {
15
29
  *
16
30
  * @param checkoutToken The checkout token (from URL param `checkoutToken`).
17
31
  * @param sessionToken The JWT session token (from URL param `token`). Required for auth.
32
+ * @param opts.currency Optional presentment currency override (e.g. 'EUR').
33
+ * Only applied when the session has no currency set yet (first load).
34
+ * Once set, currency is locked to the session and this param is ignored.
18
35
  *
19
- * Both values come from the redirect URL returned by `createSession()`.
36
+ * Both `checkoutToken` and `sessionToken` come from the redirect URL returned by `createSession()`.
20
37
  * Example URL: `/checkout?checkoutToken=abc123&token=eyJ...`
21
38
  */
22
- async loadSession(checkoutToken, sessionToken) {
39
+ async loadSession(checkoutToken, sessionToken, opts) {
23
40
  if (sessionToken) {
24
41
  this.sessionToken = sessionToken;
25
42
  this.onTokenChange?.(sessionToken);
26
43
  }
44
+ const params = { skipAsyncWait: 'false' };
45
+ if (opts?.currency) {
46
+ params.currency = opts.currency;
47
+ }
27
48
  const raw = await this.http.get(`/api/v1/checkout-sessions/${checkoutToken}/v2`, {
28
- params: { skipAsyncWait: 'false' },
49
+ params,
29
50
  token: this.sessionToken,
30
51
  });
31
52
  return this.normalizeSession(raw);
@@ -46,17 +67,19 @@ export class CheckoutModule {
46
67
  storeId: this.storeId,
47
68
  lineItems,
48
69
  };
49
- if (opts.currency)
50
- body.currency = opts.currency;
51
70
  if (opts.returnUrl)
52
71
  body.returnUrl = opts.returnUrl;
72
+ // Always send currency in customer object (backend reads customer.currency)
73
+ const customerData = {};
74
+ if (opts.currency)
75
+ customerData.currency = opts.currency;
53
76
  if (opts.customerEmail) {
54
- body.customer = {
55
- email: opts.customerEmail,
56
- firstName: opts.customerFirstName,
57
- lastName: opts.customerLastName,
58
- currency: opts.currency,
59
- };
77
+ customerData.email = opts.customerEmail;
78
+ customerData.firstName = opts.customerFirstName;
79
+ customerData.lastName = opts.customerLastName;
80
+ }
81
+ if (Object.keys(customerData).length > 0) {
82
+ body.customer = customerData;
60
83
  }
61
84
  const res = await this.http.post('/api/v1/checkout/session/init', body);
62
85
  const url = new URL(res.checkoutUrl);
@@ -71,56 +94,125 @@ export class CheckoutModule {
71
94
  customerId: res.customerId,
72
95
  };
73
96
  }
74
- /** Replace the cart items for an existing session. */
97
+ /**
98
+ * Replace the cart items for an existing session.
99
+ *
100
+ * Returns a server-side mutation summary (counts of created/updated rows).
101
+ * It does NOT return the updated `CheckoutSession` — the underlying
102
+ * `POST /checkout-sessions/:id/line-items` endpoint never has and the
103
+ * previous typing was a lie that quietly assigned `{ success, updated, ... }`
104
+ * into a `CheckoutSession` slot in `useCheckout`.
105
+ *
106
+ * Call `loadSession()` after this if you need the refreshed session
107
+ * (the React `useCheckout` hook does this for you).
108
+ */
75
109
  async updateCart(sessionId, items) {
76
110
  return this.http.post(`/api/v1/checkout-sessions/${sessionId}/line-items`, { items }, { token: this.sessionToken });
77
111
  }
78
112
  /**
79
- * Update customer + address information on the session.
80
- * Uses the combined endpoint with `partial: true` so missing fields are tolerated.
113
+ * Update customer identity (email, name, phone).
114
+ *
115
+ * Call this before `updateAddress()` — the SDK remembers the values and
116
+ * includes them automatically when addresses are submitted.
117
+ *
118
+ * If you prefer a single call, use `updateCustomerAndAddress()` instead.
81
119
  */
82
120
  async updateCustomer(sessionId, customer) {
121
+ if (customer.email)
122
+ this.customerEmail = customer.email;
123
+ if (customer.firstName)
124
+ this.customerFirstName = customer.firstName;
125
+ if (customer.lastName)
126
+ this.customerLastName = customer.lastName;
127
+ if (customer.phone)
128
+ this.customerPhone = customer.phone;
129
+ }
130
+ /**
131
+ * Update shipping and/or billing address on the session.
132
+ *
133
+ * Automatically includes customer name/phone stored from `updateCustomer()`.
134
+ * Uses the same atomic API call as the production checkout, so email,
135
+ * customer name, and addresses are all persisted together.
136
+ *
137
+ * **Shipped products**: pass `shippingAddress`. If `billingAddress` is omitted,
138
+ * the shipping address is automatically used as billing.
139
+ *
140
+ * **Digital products**: pass only `billingAddress` (no shipping needed).
141
+ *
142
+ * @example
143
+ * // Shipped product — billing = shipping automatically
144
+ * await checkout.updateAddress(sessionId, {
145
+ * shippingAddress: { line1: '10 Rue de la Paix', city: 'Paris', postalCode: '75002', country: 'FR' },
146
+ * });
147
+ *
148
+ * @example
149
+ * // Digital product — billing only
150
+ * await checkout.updateAddress(sessionId, {
151
+ * billingAddress: { country: 'FR' },
152
+ * });
153
+ */
154
+ async updateAddress(sessionId, addresses) {
155
+ const shipping = this.mapAddress(addresses.shippingAddress);
156
+ const billing = this.mapAddress(addresses.billingAddress);
157
+ const effectiveShipping = shipping ?? billing ?? {};
158
+ const effectiveBilling = billing ?? shipping;
159
+ const differentBilling = !!(addresses.billingAddress && addresses.shippingAddress);
83
160
  await this.http.post(`/api/v1/checkout-sessions/${sessionId}/customer-and-session-info`, {
84
161
  checkoutSessionId: sessionId,
85
- partial: true,
86
162
  customerData: {
87
- email: customer.email,
88
- },
89
- shippingAddress: {
90
- firstName: customer.firstName,
91
- lastName: customer.lastName,
92
- phone: customer.phone,
163
+ email: this.customerEmail,
93
164
  },
94
- billingAddress: {},
95
- differentBillingAddress: false,
165
+ shippingAddress: effectiveShipping,
166
+ billingAddress: effectiveBilling ?? {},
167
+ differentBillingAddress: differentBilling,
96
168
  }, { token: this.sessionToken });
97
169
  }
98
170
  /**
99
- * Update shipping and/or billing address on the session.
171
+ * Set customer info + addresses in one call (mirrors production checkout).
100
172
  *
101
- * Address fields use the API's naming: `address1`, `postal`, etc.
173
+ * Equivalent to calling `updateCustomer()` then `updateAddress()`, but
174
+ * in a single network request.
102
175
  */
103
- async updateAddress(sessionId, addresses) {
104
- const mapAddress = (a) => {
105
- if (!a)
106
- return undefined;
107
- return {
108
- address1: a.line1,
109
- address2: a.line2,
110
- city: a.city,
111
- state: a.state,
112
- postal: a.postalCode,
113
- country: a.country,
114
- };
115
- };
116
- await this.http.post(`/api/v1/checkout-sessions/${sessionId}/address`, {
176
+ async updateCustomerAndAddress(sessionId, data) {
177
+ if (data.customer.email)
178
+ this.customerEmail = data.customer.email;
179
+ if (data.customer.firstName)
180
+ this.customerFirstName = data.customer.firstName;
181
+ if (data.customer.lastName)
182
+ this.customerLastName = data.customer.lastName;
183
+ if (data.customer.phone)
184
+ this.customerPhone = data.customer.phone;
185
+ const shipping = this.mapAddress(data.shippingAddress);
186
+ const billing = this.mapAddress(data.billingAddress);
187
+ const effectiveShipping = shipping ?? billing ?? {};
188
+ const effectiveBilling = billing ?? shipping;
189
+ const differentBilling = !!(data.billingAddress && data.shippingAddress);
190
+ await this.http.post(`/api/v1/checkout-sessions/${sessionId}/customer-and-session-info`, {
117
191
  checkoutSessionId: sessionId,
118
- data: {
119
- shippingAddress: mapAddress(addresses.shippingAddress) ?? {},
120
- billingAddress: mapAddress(addresses.billingAddress),
192
+ customerData: {
193
+ email: this.customerEmail,
121
194
  },
195
+ shippingAddress: effectiveShipping,
196
+ billingAddress: effectiveBilling ?? {},
197
+ differentBillingAddress: differentBilling,
122
198
  }, { token: this.sessionToken });
123
199
  }
200
+ /** Map an SDK Address to the API shape, injecting stored customer fields. */
201
+ mapAddress(a) {
202
+ if (!a)
203
+ return undefined;
204
+ return stripEmpty({
205
+ firstName: a.firstName ?? this.customerFirstName,
206
+ lastName: a.lastName ?? this.customerLastName,
207
+ phone: a.phone ?? this.customerPhone,
208
+ address1: a.line1,
209
+ address2: a.line2,
210
+ city: a.city,
211
+ state: a.state,
212
+ postal: a.postalCode,
213
+ country: a.country,
214
+ });
215
+ }
124
216
  /** Apply a promotion code to the session. */
125
217
  async applyPromoCode(sessionId, code) {
126
218
  await this.http.post(`/api/v1/checkout-sessions/${sessionId}/promotions/apply`, { checkoutSessionId: sessionId, code }, { token: this.sessionToken });
@@ -130,12 +222,21 @@ export class CheckoutModule {
130
222
  const promoId = promotionId ?? 'default';
131
223
  await this.http.delete(`/api/v1/checkout-sessions/${sessionId}/promotions/${promoId}`, { token: this.sessionToken });
132
224
  }
133
- /** Fetch available shipping rates for the session's address. */
225
+ /**
226
+ * Fetch available shipping rates for the session's address.
227
+ * Only relevant for **shipped products** — digital products can skip this step.
228
+ *
229
+ * Requires a shipping address to be set first via `updateAddress()`.
230
+ * Returns an empty array if no rates are configured or address is missing.
231
+ */
134
232
  async getShippingRates(sessionId) {
135
233
  const res = await this.http.get(`/api/v1/checkout-sessions/${sessionId}/shipping-rates`, { token: this.sessionToken });
136
234
  return res.rates ?? [];
137
235
  }
138
- /** Select a shipping rate for the session. */
236
+ /**
237
+ * Select a shipping rate for the session.
238
+ * Only relevant for **shipped products** — digital products can skip this step.
239
+ */
139
240
  async selectShippingRate(sessionId, rateId) {
140
241
  await this.http.post(`/api/v1/checkout-sessions/${sessionId}/shipping-rate`, { checkoutSessionId: sessionId, shippingRateId: rateId }, { token: this.sessionToken });
141
242
  }
@@ -149,12 +250,16 @@ export class CheckoutModule {
149
250
  const summary = (raw.summary ?? cs.summary ?? orderSummaries[0] ?? {});
150
251
  const lineItems = (cs.sessionLineItems ?? []);
151
252
  const customer = cs.customer;
253
+ const sessionCurrency = (summary.currency ?? cs.selectedPresentmentCurrency)?.toUpperCase();
152
254
  const items = lineItems.map((li) => {
153
255
  const price = li.price;
154
256
  const variant = (price?.variant ?? {});
155
257
  const product = (variant.product ?? {});
156
258
  const currencyOpts = (price?.currencyOptions ?? {});
157
- const usd = currencyOpts.USD ?? currencyOpts[Object.keys(currencyOpts)[0]];
259
+ // Pick the amount bucket matching the session's presentment currency, then fall back to first available
260
+ const priceEntry = (sessionCurrency ? currencyOpts[sessionCurrency] : undefined)
261
+ ?? currencyOpts[Object.keys(currencyOpts)[0]];
262
+ const amount = priceEntry?.amount ?? 0;
158
263
  return {
159
264
  id: li.id,
160
265
  variantId: li.variantId,
@@ -162,9 +267,9 @@ export class CheckoutModule {
162
267
  productName: (product.name ?? ''),
163
268
  variantName: (variant.name ?? ''),
164
269
  quantity: (li.quantity ?? 1),
165
- unitAmount: usd?.amount ?? 0,
166
- totalAmount: (usd?.amount ?? 0) * (li.quantity ?? 1),
167
- currency: (cs.selectedPresentmentCurrency ?? 'USD'),
270
+ unitAmount: amount,
271
+ totalAmount: amount * (li.quantity ?? 1),
272
+ currency: (sessionCurrency ?? 'USD'),
168
273
  imageUrl: (variant.imageUrl ?? ''),
169
274
  };
170
275
  });
@@ -173,7 +278,7 @@ export class CheckoutModule {
173
278
  id: cs.id,
174
279
  storeId: cs.storeId,
175
280
  checkoutToken: cs.checkoutToken,
176
- currency: (cs.selectedPresentmentCurrency ?? 'USD'),
281
+ currency: (sessionCurrency ?? 'USD'),
177
282
  items,
178
283
  totals: {
179
284
  subtotal: (summary.subtotalAmount ?? 0),
@@ -181,7 +286,7 @@ export class CheckoutModule {
181
286
  shipping: (summary.shippingCost ?? 0),
182
287
  tax: (summary.totalTaxAmount ?? 0),
183
288
  total: (summary.totalAmount ?? summaryItems.reduce((s, i) => s + (i.amount ?? 0), 0)),
184
- currency: (summary.currency ?? cs.selectedPresentmentCurrency ?? 'USD'),
289
+ currency: (sessionCurrency ?? 'USD'),
185
290
  },
186
291
  customer: customer
187
292
  ? {
@@ -189,12 +294,53 @@ export class CheckoutModule {
189
294
  email: customer.email,
190
295
  firstName: customer.firstName,
191
296
  lastName: customer.lastName,
297
+ phone: customer.phone,
192
298
  }
193
299
  : undefined,
194
- shippingAddress: cs.shippingAddress,
195
- billingAddress: cs.billingAddress,
300
+ shippingAddress: this.normalizeAddress(cs.shippingAddress),
301
+ billingAddress: this.normalizeAddress(cs.billingAddress),
302
+ selectedShippingRateId: (cs.shippingRateId ?? null),
196
303
  metadata: cs.metadata,
197
304
  };
198
305
  }
306
+ /**
307
+ * Map the raw API address shape (`address1`, `address2`, `postal`) onto
308
+ * the SDK's `Address` shape (`line1`, `line2`, `postalCode`). Without
309
+ * this, `session.shippingAddress.line1` is silently undefined after a
310
+ * reload — the type was lying about the actual key names — which is
311
+ * what makes the demo lose form state on refresh.
312
+ */
313
+ normalizeAddress(raw) {
314
+ if (!raw || typeof raw !== 'object')
315
+ return undefined;
316
+ const a = raw;
317
+ const out = {
318
+ firstName: a.firstName,
319
+ lastName: a.lastName,
320
+ line1: (a.line1 ?? a.address1),
321
+ line2: (a.line2 ?? a.address2),
322
+ city: a.city,
323
+ state: a.state,
324
+ postalCode: (a.postalCode ?? a.postal),
325
+ country: a.country,
326
+ phone: a.phone,
327
+ };
328
+ // If every field is undefined the API returned an empty address slot.
329
+ // Hand back undefined so consumers can `if (session.shippingAddress)`.
330
+ return Object.values(out).some((v) => v !== undefined && v !== '') ? out : undefined;
331
+ }
332
+ }
333
+ /**
334
+ * Remove keys with empty-string / null / undefined values from an object.
335
+ * Prevents sending `""` to APIs that reject empty values (e.g. Stripe `country`).
336
+ */
337
+ function stripEmpty(obj) {
338
+ const result = {};
339
+ for (const [k, v] of Object.entries(obj)) {
340
+ if (v !== undefined && v !== null && v !== '') {
341
+ result[k] = v;
342
+ }
343
+ }
344
+ return (Object.keys(result).length > 0 ? result : undefined);
199
345
  }
200
346
  //# sourceMappingURL=checkout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,26 @@
1
1
  import type { HttpClient } from '../http.js';
2
- import type { Environment, PaymentSetupConfig, ExpressMethods, StoreConfig, PayResult, PayOptions, PayDirectOptions, CreateInstrumentOptions, PaymentInstrument, ThreedsSession, PaymentStatus } from '../types.js';
2
+ import type { Environment, PaymentSetupConfig, ExpressMethods, StoreConfig, PayResult, PayOptions, PayDirectOptions, CreateInstrumentOptions, PaymentInstrument, ThreedsSession, PaymentStatus, ProcessPaymentOptions, ProcessPaymentResult } from '../types.js';
3
3
  /**
4
4
  * Full payment lifecycle -- discover APMs, tokenize, create instruments,
5
5
  * process payments, handle 3DS, and poll for status.
6
6
  *
7
7
  * Wraps the same REST endpoints that plugin-sdk uses internally.
8
+ *
9
+ * @remarks PCI DSS compliance notice
10
+ *
11
+ * This SDK collects card data (PAN, expiry, CVC) in the merchant's page
12
+ * context and sends it directly to Basis Theory for tokenization. Card data
13
+ * never reaches TagadaPay servers.
14
+ *
15
+ * Because card data transits through the merchant's JavaScript environment,
16
+ * merchants using this SDK are responsible for **PCI DSS SAQ-A-EP**
17
+ * compliance. This includes quarterly ASV scans, secure page delivery
18
+ * (TLS), and ensuring no unauthorized scripts can access cardholder data.
19
+ *
20
+ * TagadaPay is PCI DSS Level 1 certified. The merchant's PCI scope is
21
+ * determined by their integration method, not by TagadaPay's certification.
22
+ *
23
+ * See: https://docs.tagada.io/developer-tools/headless-sdk/pci-compliance
8
24
  */
9
25
  export declare class PaymentModule {
10
26
  private readonly http;
@@ -15,13 +31,22 @@ export declare class PaymentModule {
15
31
  * Get the full payment setup config for a checkout session.
16
32
  * Returns a map of payment methods with their configuration
17
33
  * (card, apple_pay, google_pay, klarna, etc.).
34
+ *
35
+ * Priority chain:
36
+ * 1. Explicit `paymentSetupConfig` parameter (developer override)
37
+ * 2. `window.__TGD_STEP_CONFIG__` injection (Tagada routing infra)
38
+ * 3. API fallback (`GET /api/v1/payment-methods`)
18
39
  */
19
- getPaymentSetup(checkoutSessionId: string): Promise<PaymentSetupConfig>;
40
+ getPaymentSetup(checkoutSessionId: string, opts?: {
41
+ paymentSetupConfig?: PaymentSetupConfig;
42
+ }): Promise<PaymentSetupConfig>;
20
43
  /**
21
44
  * Get express payment methods (Apple Pay, Google Pay, PayPal, etc.)
22
45
  * filtered to only those available in the current browser.
23
46
  */
24
- getExpressMethods(checkoutSessionId: string): Promise<ExpressMethods>;
47
+ getExpressMethods(checkoutSessionId: string, opts?: {
48
+ paymentSetupConfig?: PaymentSetupConfig;
49
+ }): Promise<ExpressMethods>;
25
50
  /**
26
51
  * Get store-level payment config (3DS flags, default flow ID, etc.).
27
52
  */
@@ -29,11 +54,21 @@ export declare class PaymentModule {
29
54
  /**
30
55
  * Convenience: return only enabled payment method keys.
31
56
  */
32
- getEnabledMethods(checkoutSessionId: string): Promise<string[]>;
57
+ getEnabledMethods(checkoutSessionId: string, opts?: {
58
+ paymentSetupConfig?: PaymentSetupConfig;
59
+ }): Promise<string[]>;
33
60
  /**
34
61
  * Tokenize a card using @tagadapay/core-js.
35
62
  * Requires `@tagadapay/core-js` to be installed as a peer dependency.
36
63
  *
64
+ * Card data is sent directly to Basis Theory for tokenization and never
65
+ * reaches TagadaPay servers. The returned `tagadaToken` is safe to pass
66
+ * to the TagadaPay API.
67
+ *
68
+ * **PCI note:** Using this method means card data passes through your
69
+ * JavaScript environment. You are responsible for PCI DSS SAQ-A-EP
70
+ * compliance. See https://docs.tagada.io/developer-tools/headless-sdk/pci-compliance
71
+ *
37
72
  * @returns tagadaToken (base64 string) and rawToken with SCA metadata.
38
73
  */
39
74
  tokenizeCard(card: {
@@ -106,6 +141,59 @@ export declare class PaymentModule {
106
141
  processorId: string;
107
142
  paymentFlowId?: string;
108
143
  }): Promise<PayResult>;
144
+ /**
145
+ * Initiate a Stripe Express Checkout payment (Apple Pay, Google Pay, Link, etc.).
146
+ *
147
+ * Calls `pay-v2` with `isExpress: true`, which returns a `clientSecret` in
148
+ * `payment.requireActionData.metadata.stripeExpressCheckout.clientSecret`.
149
+ * The caller must then call `stripe.confirmPayment()` with that secret.
150
+ *
151
+ * Used by the `StripeExpressCheckout` class and `useStripeExpress` hook.
152
+ * Not typically called directly — use the Stripe integration classes instead.
153
+ */
154
+ processStripeExpress(opts: {
155
+ checkoutSessionId: string;
156
+ processorId: string;
157
+ paymentMethod: string;
158
+ }): Promise<PayResult>;
159
+ /**
160
+ * Process a payment end-to-end: pay, handle 3DS / redirects, poll until done.
161
+ *
162
+ * This is the **recommended** way to process payments. It wraps `pay()`, detects
163
+ * `requireAction`, runs 3DS challenges (if `@tagadapay/core-js` is installed),
164
+ * and polls until a terminal status.
165
+ *
166
+ * Returns a discriminated union so you can pattern-match on `result.status`:
167
+ *
168
+ * @example
169
+ * ```ts
170
+ * const result = await payment.processPayment({
171
+ * checkoutSessionId: session.id,
172
+ * tagadaToken,
173
+ * });
174
+ *
175
+ * switch (result.status) {
176
+ * case 'succeeded':
177
+ * console.log('Paid!', result.payment.id);
178
+ * break;
179
+ * case 'requires_redirect':
180
+ * // In browser: window.location.href = result.redirectUrl
181
+ * // The React hook handles this automatically.
182
+ * break;
183
+ * case 'failed':
184
+ * console.error(result.error);
185
+ * break;
186
+ * }
187
+ * ```
188
+ */
189
+ processPayment(opts: ProcessPaymentOptions): Promise<ProcessPaymentResult>;
190
+ /**
191
+ * Resume a payment after the user returns from a redirect (3DS, processor auth, APM).
192
+ *
193
+ * Called automatically by `usePayment()` in React when it detects return-URL params.
194
+ * You can also call it manually in non-React apps.
195
+ */
196
+ resumeAfterRedirect(paymentId: string): Promise<ProcessPaymentResult>;
109
197
  /** Get current status of a payment. */
110
198
  getPaymentStatus(paymentId: string): Promise<PaymentStatus>;
111
199
  /**
@@ -118,6 +206,34 @@ export declare class PaymentModule {
118
206
  }): Promise<PaymentStatus>;
119
207
  /** Finalize a payment after a 3DS challenge completes. */
120
208
  completeAfter3ds(paymentId: string): Promise<PaymentStatus>;
209
+ /** Tell the server this action has been seen / is being processed. */
210
+ markActionProcessed(paymentId: string): Promise<void>;
211
+ /**
212
+ * Route a payment action to the appropriate handler.
213
+ * Returns `requires_redirect` for browser-level redirects,
214
+ * or attempts 3DS inline and polls to completion.
215
+ */
216
+ private handlePaymentAction;
217
+ /**
218
+ * Extract redirect info from actionData.
219
+ * Works for processor_auth (GET or POST), redirect, and any unknown type with a URL.
220
+ */
221
+ private extractRedirect;
222
+ /**
223
+ * Run a 3DS challenge using @tagadapay/core-js.
224
+ * If core-js is not installed, falls back to redirect.
225
+ */
226
+ private handleThreedsAuth;
227
+ /**
228
+ * Poll until the payment reaches a terminal status, then return a ProcessPaymentResult.
229
+ * Also handles new requireAction that may appear during polling.
230
+ */
231
+ private pollUntilDone;
232
+ /**
233
+ * Read paymentSetupConfig from the Tagada routing injection.
234
+ * Only available when running on Tagada infra (not on external hosting like Vercel).
235
+ */
236
+ private readInjectedStepConfig;
121
237
  private loadCoreJs;
122
238
  }
123
239
  //# sourceMappingURL=payment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/core/modules/payment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/core/modules/payment.ts"],"names":[],"mappings":"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"}