@adyen/adyen-web 6.35.0 → 6.36.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 (124) hide show
  1. package/dist/cjs/adyen.css +5 -5
  2. package/dist/cjs/adyen.css.map +1 -1
  3. package/dist/cjs/index.cjs +2 -2
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/index.d.cts +2613 -1935
  6. package/dist/es/adyen.css +5 -5
  7. package/dist/es/adyen.css.map +1 -1
  8. package/dist/es/components/ApplePay/services/ApplePayService.js.map +1 -1
  9. package/dist/es/components/Donation/Donation.js +1 -1
  10. package/dist/es/components/Donation/Donation.js.map +1 -1
  11. package/dist/es/components/Donation/DonationCampaignService.js +2 -0
  12. package/dist/es/components/Donation/DonationCampaignService.js.map +1 -0
  13. package/dist/es/components/Donation/components/DonationComponent.js +1 -1
  14. package/dist/es/components/Donation/components/DonationComponent.js.map +1 -1
  15. package/dist/es/components/Donation/components/utils.js.map +1 -1
  16. package/dist/es/components/Iris/Iris.js +1 -1
  17. package/dist/es/components/Iris/Iris.js.map +1 -1
  18. package/dist/es/components/Iris/types.js.map +1 -1
  19. package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js +1 -1
  20. package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -1
  21. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  22. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  23. package/dist/es/components/internal/Address/Address.js +1 -1
  24. package/dist/es/components/internal/Address/Address.js.map +1 -1
  25. package/dist/es/components/internal/Address/components/AddressSearch.js.map +1 -1
  26. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
  27. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  28. package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js +1 -1
  29. package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  30. package/dist/es/components/internal/FormFields/Field/Field.js +1 -1
  31. package/dist/es/components/internal/FormFields/Field/Field.js.map +1 -1
  32. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  33. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  34. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  35. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  36. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js +1 -1
  37. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js.map +1 -1
  38. package/dist/es/components/internal/IssuerList/IssuerList.js +1 -1
  39. package/dist/es/components/internal/IssuerList/IssuerList.js.map +1 -1
  40. package/dist/es/components/internal/SecuredFields/lib/CSF/CSF.js.map +1 -1
  41. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  42. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  43. package/dist/es/components/internal/UIElement/utils.js +1 -1
  44. package/dist/es/components/internal/UIElement/utils.js.map +1 -1
  45. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  46. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  47. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  48. package/dist/es/core/Analytics/events/AnalyticsLogEvent.js +1 -1
  49. package/dist/es/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
  50. package/dist/es/core/CheckoutSession/CheckoutSession.js +1 -1
  51. package/dist/es/core/CheckoutSession/CheckoutSession.js.map +1 -1
  52. package/dist/es/core/Services/sessions/constants.js +1 -1
  53. package/dist/es/core/Services/sessions/constants.js.map +1 -1
  54. package/dist/es/core/Services/sessions/fetch-donation-campaigns.js +2 -0
  55. package/dist/es/core/Services/sessions/fetch-donation-campaigns.js.map +1 -0
  56. package/dist/es/core/Services/sessions/make-donation.js +2 -0
  57. package/dist/es/core/Services/sessions/make-donation.js.map +1 -0
  58. package/dist/es/core/config.js +1 -1
  59. package/dist/es/core/config.js.map +1 -1
  60. package/dist/es/core/core.registry.js +1 -1
  61. package/dist/es/core/core.registry.js.map +1 -1
  62. package/dist/es/core/utils.js +1 -1
  63. package/dist/es/core/utils.js.map +1 -1
  64. package/dist/es/index.d.ts +2613 -1935
  65. package/dist/es-legacy/adyen.css +5 -5
  66. package/dist/es-legacy/adyen.css.map +1 -1
  67. package/dist/es-legacy/components/ApplePay/services/ApplePayService.js.map +1 -1
  68. package/dist/es-legacy/components/Donation/Donation.js +1 -1
  69. package/dist/es-legacy/components/Donation/Donation.js.map +1 -1
  70. package/dist/es-legacy/components/Donation/DonationCampaignService.js +2 -0
  71. package/dist/es-legacy/components/Donation/DonationCampaignService.js.map +1 -0
  72. package/dist/es-legacy/components/Donation/components/DonationComponent.js +1 -1
  73. package/dist/es-legacy/components/Donation/components/DonationComponent.js.map +1 -1
  74. package/dist/es-legacy/components/Donation/components/utils.js.map +1 -1
  75. package/dist/es-legacy/components/Iris/Iris.js +1 -1
  76. package/dist/es-legacy/components/Iris/Iris.js.map +1 -1
  77. package/dist/es-legacy/components/Iris/types.js.map +1 -1
  78. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js +1 -1
  79. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -1
  80. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  81. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  82. package/dist/es-legacy/components/internal/Address/Address.js +1 -1
  83. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  84. package/dist/es-legacy/components/internal/Address/components/AddressSearch.js.map +1 -1
  85. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
  86. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  87. package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js +1 -1
  88. package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  89. package/dist/es-legacy/components/internal/FormFields/Field/Field.js +1 -1
  90. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  91. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  92. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  93. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  94. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  95. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js +1 -1
  96. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js.map +1 -1
  97. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js +1 -1
  98. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  99. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/CSF.js.map +1 -1
  100. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  101. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  102. package/dist/es-legacy/components/internal/UIElement/utils.js +1 -1
  103. package/dist/es-legacy/components/internal/UIElement/utils.js.map +1 -1
  104. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  105. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  106. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  107. package/dist/es-legacy/core/Analytics/events/AnalyticsLogEvent.js +1 -1
  108. package/dist/es-legacy/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
  109. package/dist/es-legacy/core/CheckoutSession/CheckoutSession.js +1 -1
  110. package/dist/es-legacy/core/CheckoutSession/CheckoutSession.js.map +1 -1
  111. package/dist/es-legacy/core/Services/sessions/constants.js +1 -1
  112. package/dist/es-legacy/core/Services/sessions/constants.js.map +1 -1
  113. package/dist/es-legacy/core/Services/sessions/fetch-donation-campaigns.js +2 -0
  114. package/dist/es-legacy/core/Services/sessions/fetch-donation-campaigns.js.map +1 -0
  115. package/dist/es-legacy/core/Services/sessions/make-donation.js +2 -0
  116. package/dist/es-legacy/core/Services/sessions/make-donation.js.map +1 -0
  117. package/dist/es-legacy/core/config.js +1 -1
  118. package/dist/es-legacy/core/config.js.map +1 -1
  119. package/dist/es-legacy/core/core.registry.js +1 -1
  120. package/dist/es-legacy/core/core.registry.js.map +1 -1
  121. package/dist/es-legacy/core/utils.js +1 -1
  122. package/dist/es-legacy/core/utils.js.map +1 -1
  123. package/package.json +19 -19
  124. package/styles/adyen.css +5 -5
@@ -182,61 +182,6 @@ interface InstallmentOptions {
182
182
  [key: string]: InstallmentOption;
183
183
  }
184
184
 
185
- type CheckoutSession = {
186
- id: string;
187
- sessionData: string;
188
- shopperLocale?: string;
189
- shopperEmail?: string;
190
- telephoneNumber?: string;
191
- };
192
- type SessionConfiguration = {
193
- installmentOptions?: InstallmentOptions;
194
- enableStoreDetails?: boolean;
195
- };
196
- type CheckoutSessionSetupResponse = {
197
- id: string;
198
- sessionData: string;
199
- countryCode?: string;
200
- amount: Omit<PaymentAmount, 'currencyDisplay'>;
201
- expiresAt: string;
202
- paymentMethods: any;
203
- returnUrl: string;
204
- configuration: SessionConfiguration;
205
- /**
206
- * 'shopperLocale' set during session creation.
207
- * @defaultValue en-US
208
- */
209
- shopperLocale: string;
210
- };
211
- type CheckoutSessionPaymentResponse = {
212
- sessionData: string;
213
- sessionResult: string;
214
- status?: string;
215
- resultCode: ResultCode;
216
- action?: PaymentAction;
217
- };
218
- type CheckoutSessionDetailsResponse = {
219
- sessionData: string;
220
- sessionResult: string;
221
- resultCode: ResultCode;
222
- status?: string;
223
- action?: PaymentAction;
224
- };
225
- type CheckoutSessionBalanceResponse = {
226
- sessionData: string;
227
- balance?: PaymentAmount;
228
- transactionLimit?: PaymentAmount;
229
- };
230
- type CheckoutSessionOrdersResponse = {
231
- sessionData: string;
232
- orderData: string;
233
- pspReference: string;
234
- };
235
- type SetupSessionOptions = {
236
- browserInfo?: BrowserInfo;
237
- order?: Order;
238
- };
239
-
240
185
  interface ILanguageService {
241
186
  fetchTranslationsFromCdn(locale: string): Promise<Readonly<Translations>>;
242
187
  }
@@ -1815,6 +1760,7 @@ declare enum ErrorEventCode {
1815
1760
  * Encryption failed in securedField
1816
1761
  */
1817
1762
  SECURED_FIELDS_ENCRYPTION_ERROR = "610",
1763
+ /** See also API_ERROR_CODE object in /src/core/Services/sessions/constants.ts which uses codes in the range 620-628 */
1818
1764
  /** Missing 'paymentData' property from threeDS2 action */
1819
1765
  THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA = "700",
1820
1766
  /** Missing 'token' property from threeDS2 action */
@@ -2167,76 +2113,6 @@ interface DokuVoucherResultProps {
2167
2113
  onActionHandled?: (rtnObj: ActionHandledReturnObject) => void;
2168
2114
  }
2169
2115
 
2170
- declare class DonationElement extends UIElement<DonationConfiguration> {
2171
- static readonly type = TxVariants.donation;
2172
- constructor(checkout: ICore, props?: DonationConfiguration);
2173
- static readonly defaultProps: {
2174
- onCancel: () => void;
2175
- onDonate: () => void;
2176
- };
2177
- /**
2178
- * Returns the component payment data ready to submit to the Checkout API
2179
- */
2180
- get data(): any;
2181
- /**
2182
- * Returns whether the component state is valid or not
2183
- */
2184
- get isValid(): any;
2185
- setState(newState: any): void;
2186
- donate(): void;
2187
- handleRef: (ref: any) => void;
2188
- protected componentToRender(): h.JSX.Element;
2189
- }
2190
-
2191
- interface CampaignContentProps {
2192
- logoUrl?: string;
2193
- nonprofitDescription?: string;
2194
- nonprofitName?: string;
2195
- causeName?: string;
2196
- nonprofitUrl?: string;
2197
- bannerUrl?: string;
2198
- }
2199
-
2200
- type Donation = RoundupDonation | FixedAmountsDonation;
2201
- interface RoundupDonation {
2202
- type: 'roundup';
2203
- currency: string;
2204
- maxRoundupAmount: number;
2205
- }
2206
- interface FixedAmountsDonation {
2207
- type: 'fixedAmounts';
2208
- currency: string;
2209
- values: Array<number>;
2210
- }
2211
- interface DonationAmount {
2212
- currency: string;
2213
- value: number;
2214
- }
2215
- interface DonationPayload {
2216
- data: {
2217
- amount: DonationAmount;
2218
- };
2219
- isValid?: boolean;
2220
- }
2221
- interface DonationComponentProps extends CampaignContentProps {
2222
- donation: Donation;
2223
- /**
2224
- * The original transaction amount.
2225
- */
2226
- commercialTxAmount: number;
2227
- termsAndConditionsUrl?: string;
2228
- causeName?: string;
2229
- showCancelButton?: boolean;
2230
- onDonate: (payload: DonationPayload) => void;
2231
- onCancel?: (payload: DonationPayload) => void;
2232
- onChange?: (payload: DonationPayload) => void;
2233
- }
2234
-
2235
- type DonationConfiguration = UIElementProps & Omit<DonationComponentProps, 'onDonate' | 'onCancel'> & {
2236
- onDonate(data: DonationPayload, component: DonationElement): void;
2237
- onCancel(data: DonationPayload): void;
2238
- };
2239
-
2240
2116
  interface DragonpayInputIssuerItem {
2241
2117
  id: string;
2242
2118
  name: string;
@@ -2282,1559 +2158,293 @@ interface DragonpayVoucherResultProps {
2282
2158
  onActionHandled?: (rtnObj: ActionHandledReturnObject) => void;
2283
2159
  }
2284
2160
 
2285
- interface EcontextVoucherResultProps {
2286
- reference?: string;
2287
- totalAmount?: PaymentAmount;
2288
- expiresAt?: string;
2289
- paymentMethodType?: string;
2290
- maskedTelephoneNumber?: string;
2291
- instructionsUrl?: string;
2292
- alternativeReference?: string;
2293
- collectionInstitutionNumber?: string;
2294
- onActionHandled?: (rtnObj: ActionHandledReturnObject) => void;
2161
+ interface CompanyDetailsSchema {
2162
+ name?: string;
2163
+ registrationNumber?: string;
2295
2164
  }
2296
- interface EcontextInputSchema {
2297
- firstName?: string;
2298
- lastName?: string;
2299
- telephoneNumber?: string;
2300
- shopperEmail?: string;
2165
+
2166
+ type OpenInvoiceAddressSpecification = AddressSpecifications & {
2167
+ allowedCountries?: string[];
2168
+ };
2169
+ interface OpenInvoiceVisibility {
2170
+ companyDetails?: FieldsetVisibility;
2171
+ personalDetails?: FieldsetVisibility;
2172
+ billingAddress?: FieldsetVisibility;
2173
+ deliveryAddress?: FieldsetVisibility;
2174
+ bankAccount?: FieldsetVisibility;
2301
2175
  }
2302
- interface EcontextConfiguration extends UIElementProps {
2303
- personalDetailsRequired?: boolean;
2304
- data?: PersonalDetailsSchema;
2176
+ interface BankDetailsSchema {
2177
+ countryCode?: string;
2178
+ ibanNumber?: any;
2179
+ ownerName?: string;
2180
+ }
2181
+ interface OpenInvoiceProps extends UIElementProps {
2182
+ allowedCountries?: string[];
2183
+ consentCheckboxLabel: any;
2184
+ countryCode?: string;
2185
+ data: {
2186
+ companyDetails?: CompanyDetailsSchema;
2187
+ personalDetails?: PersonalDetailsSchema;
2188
+ billingAddress?: AddressData;
2189
+ deliveryAddress?: AddressData;
2190
+ bankAccount?: BankDetailsSchema;
2191
+ };
2192
+ onChange: (state: any, element?: UIElement) => void;
2193
+ payButton: any;
2194
+ visibility?: OpenInvoiceVisibility;
2195
+ personalDetailsRequiredFields?: string[];
2196
+ billingAddressRequiredFields?: string[];
2197
+ billingAddressSpecification?: OpenInvoiceAddressSpecification;
2198
+ deliveryAddressRequiredFields?: string[];
2199
+ deliveryAddressSpecification?: OpenInvoiceAddressSpecification;
2200
+ setComponentRef?: (ref: any) => void;
2201
+ }
2202
+ interface OpenInvoiceStateData {
2203
+ companyDetails?: CompanyDetailsSchema;
2204
+ personalDetails?: PersonalDetailsSchema;
2205
+ billingAddress?: AddressData;
2206
+ deliveryAddress?: AddressData;
2207
+ bankAccount?: BankDetailsSchema;
2208
+ consentCheckbox?: boolean;
2209
+ }
2210
+ interface OpenInvoiceStateError {
2211
+ consentCheckbox?: boolean | GenericError;
2212
+ companyDetails?: boolean | ValidationRuleErrorObj;
2213
+ billingAddress?: boolean | ValidationRuleErrorObj;
2214
+ deliveryAddress?: boolean | ValidationRuleErrorObj;
2215
+ personalDetails?: boolean | ValidationRuleErrorObj;
2216
+ bankAccount?: boolean | object;
2217
+ }
2218
+ interface OpenInvoiceStateValid {
2219
+ consentCheckbox?: boolean;
2220
+ companyDetails?: boolean;
2221
+ billingAddress?: boolean;
2222
+ deliveryAddress?: boolean;
2223
+ personalDetails?: boolean;
2224
+ bankAccount?: boolean;
2225
+ }
2226
+ interface OpenInvoiceActiveFieldsets {
2227
+ companyDetails: boolean;
2228
+ personalDetails: boolean;
2229
+ billingAddress: boolean;
2230
+ deliveryAddress: boolean;
2231
+ bankAccount: boolean;
2232
+ }
2233
+ interface OpenInvoiceFieldsetsRefs {
2234
+ companyDetails?: any;
2235
+ personalDetails?: any;
2236
+ billingAddress?: any;
2237
+ deliveryAddress?: any;
2238
+ bankAccount?: any;
2239
+ }
2240
+
2241
+ interface OpenInvoiceConfiguration extends Partial<OpenInvoiceProps> {
2242
+ consentCheckboxLabel?: h.JSX.Element;
2243
+ billingAddressRequiredFields?: string[];
2244
+ billingAddressSpecification?: AddressSpecifications;
2245
+ }
2246
+
2247
+ declare class OpenInvoiceContainer extends UIElement<OpenInvoiceConfiguration> {
2248
+ protected static readonly defaultProps: Partial<OpenInvoiceConfiguration>;
2305
2249
  /**
2306
- * @internal
2250
+ * Returns whether the component state is valid or not
2307
2251
  */
2308
- instructionsUrl?: string;
2252
+ get isValid(): boolean;
2309
2253
  /**
2310
- * @internal
2254
+ * Formats props on construction time
2311
2255
  */
2312
- reference?: string;
2256
+ formatProps(props: any): any;
2313
2257
  /**
2314
- * @internal
2258
+ * Formats the component data output
2315
2259
  */
2316
- totalAmount?: PaymentAmount;
2260
+ formatData(): any;
2261
+ protected componentToRender(): h.JSX.Element;
2262
+ }
2263
+
2264
+ declare class AfterPay extends OpenInvoiceContainer {
2265
+ static readonly type = TxVariants.afterpay_default;
2266
+ static readonly txVariants: TxVariants[];
2267
+ formatProps(props: OpenInvoiceConfiguration): any;
2268
+ }
2269
+
2270
+ declare class AfterPayB2B extends OpenInvoiceContainer {
2271
+ static readonly type = TxVariants.afterpay_b2b;
2272
+ protected static readonly defaultProps: Partial<OpenInvoiceConfiguration>;
2273
+ formatProps(props: OpenInvoiceConfiguration): any;
2274
+ }
2275
+
2276
+ declare class ANCVElement extends UIElement<ANCVConfiguration> {
2277
+ static readonly type = "ancv";
2317
2278
  /**
2318
- * @internal
2319
- */
2320
- expiresAt?: string;
2321
- /**
2322
- * @internal
2323
- */
2324
- paymentMethodType?: string;
2325
- /**
2326
- * @internal
2327
- */
2328
- maskedTelephoneNumber?: string;
2329
- /**
2330
- * @internal
2331
- */
2332
- alternativeReference?: string;
2333
- /**
2334
- * @internal
2279
+ * Formats the component data output
2335
2280
  */
2336
- collectionInstitutionNumber?: string;
2337
- }
2338
-
2339
- interface GiftCardElementData {
2340
- paymentMethod: {
2341
- type: 'giftcard';
2342
- brand: string;
2343
- encryptedCardNumber: string;
2344
- encryptedSecurityCode: string;
2281
+ formatData(): {
2282
+ paymentMethod: {
2283
+ type: string;
2284
+ beneficiaryId: any;
2285
+ };
2345
2286
  };
2346
- }
2347
- type balanceCheckResponseType = {
2348
- sessionData?: string;
2349
- pspReference?: string;
2350
- resultCode?: string;
2351
- balance?: PaymentAmount;
2352
- transactionLimit?: PaymentAmount;
2353
- };
2354
- type onBalanceCheckCallbackType = (resolve: (res: balanceCheckResponseType) => void, reject: (error: Error) => void, data: GiftCardElementData) => Promise<void>;
2355
- type onRequiringConfirmationCallbackType = (resolve: () => void, reject: (error: Error) => void) => Promise<void>;
2356
- type onOrderRequestCallbackType = (resolve: (order: Order) => void, reject: (error: Error) => void, data: PaymentData) => Promise<void>;
2357
- interface GiftCardConfiguration extends UIElementProps {
2358
- pinRequired?: boolean;
2359
- expiryDateRequired?: boolean;
2360
- brandsConfiguration?: any;
2361
- brand?: string;
2362
- onOrderUpdated?: (data: any) => void;
2363
- onBalanceCheck?: onBalanceCheckCallbackType;
2364
- onOrderRequest?: onOrderRequestCallbackType;
2365
- onRequiringConfirmation?: onRequiringConfirmationCallbackType;
2287
+ private onOrderRequest;
2366
2288
  /**
2367
- * @internal
2289
+ * Check if order exists, if it does Resolve.
2290
+ * Otherwise createOrder and then Resolve.
2368
2291
  */
2369
- fieldsLayoutComponent?: FunctionComponent<GiftcardFieldsProps>;
2370
- }
2371
- /**
2372
- * Unified error interface that matches useForm error structure for gift cards
2373
- */
2374
- interface GiftCardValidationError {
2375
- isValid: boolean;
2376
- errorMessage: string;
2377
- errorI18n?: string;
2378
- error?: string;
2292
+ createOrder: () => Promise<void>;
2293
+ submit(): boolean;
2294
+ protected payButton: (props: PayButtonProps) => h.JSX.Element;
2295
+ get isValid(): boolean;
2296
+ get displayName(): string;
2297
+ protected componentToRender(): h.JSX.Element;
2379
2298
  }
2380
- type GiftCardBalanceCheckErrorType = 'no-balance' | 'card-error' | 'currency-error';
2381
2299
 
2382
- interface GooglePayConfiguration extends UIElementProps {
2383
- type?: 'googlepay' | 'paywithgoogle';
2384
- /**
2385
- * List of brands accepted by the component. Values are configured on the Backoffice and returned in the /paymentMethodsResponse data
2386
- * @internal
2387
- */
2388
- brands?: string[];
2300
+ declare class ApplePayElement extends UIElement<ApplePayConfiguration> {
2301
+ static readonly type = TxVariants.applepay;
2302
+ protected static readonly defaultProps: ApplePayConfiguration;
2303
+ private sdkLoader;
2304
+ private applePayVersionNumber;
2305
+ constructor(checkout: ICore, props?: ApplePayConfiguration);
2389
2306
  /**
2390
- * Used for analytics
2307
+ * Formats the component props
2391
2308
  */
2392
- expressPage?: 'cart' | 'minicart' | 'pdp' | 'checkout';
2309
+ protected formatProps(props: ApplePayConfiguration): ApplePayConfiguration;
2393
2310
  /**
2394
- * Enables the GooglePay Express Flow & also used for analytics
2395
- * @defaultValue false
2311
+ * Formats the component data output
2396
2312
  */
2397
- isExpress?: boolean;
2313
+ protected formatData(): ApplePayElementData;
2314
+ protected beforeRender(configSetByMerchant?: ApplePayConfiguration): void;
2315
+ submit: () => void;
2316
+ get isValid(): boolean;
2398
2317
  /**
2399
- * Defines the size of the challenge Component
2400
- *
2401
- * 01: [250px, 400px]
2402
- * 02: [390px, 400px]
2403
- * 03: [500px, 600px]
2404
- * 04: [600px, 400px]
2405
- * 05: [100%, 100%]
2318
+ * This API is only intended for upstreaming or defaulting to Apple Pay, all other scenarios should continue to
2319
+ * use canMakePayments(). For Safari browsers, this API will indicate whether there is a card available to make
2320
+ * payments. For third-party browsers a new status of paymentCredentialStatusUnknown will be returned. This does
2321
+ * not mean there are no cards available, it means the status cannot be determined and as such defaulting
2322
+ * and upstreaming should still be considered.
2406
2323
  *
2407
- * @defaultValue '02'
2324
+ * {@link https://developer.apple.com/documentation/applepayontheweb/applepaysession/4440085-applepaycapabilities}
2325
+ * @param merchantIdentifier
2408
2326
  */
2409
- challengeWindowSize?: ChallengeWindowSize;
2327
+ applePayCapabilities(merchantIdentifier?: string): Promise<ApplePayJS.PaymentCredentialStatusResponse>;
2410
2328
  /**
2411
- * @see https://developers.google.com/pay/api/web/reference/request-objects#IsReadyToPayRequest
2412
- * @defaultValue false
2329
+ * Determines if Apple Pay component can be displayed or not
2413
2330
  */
2414
- existingPaymentMethodRequired?: boolean;
2331
+ isAvailable(): Promise<void>;
2415
2332
  /**
2416
- * The status of the total price
2417
- * @see https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo
2333
+ * Sets the Apple Pay version available for the shopper.
2334
+ * This code needs to be executed once the Apple Pay SDK is fully loaded
2335
+ * @private
2418
2336
  */
2419
- totalPriceStatus?: google.payments.api.TotalPriceStatus;
2337
+ private defineApplePayVersionNumber;
2420
2338
  /**
2421
- * @see https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo
2339
+ * Sets the configuration/callbacks that pertain to the Apple Pay code overlay/modal.
2340
+ * @private
2422
2341
  */
2423
- countryCode?: string;
2424
- allowedAuthMethods?: google.payments.api.CardAuthMethod[];
2425
- allowedCardNetworks?: google.payments.api.CardNetwork[];
2342
+ private configureApplePayWebOptions;
2343
+ private startSession;
2426
2344
  /**
2427
- * Set to true to request assuranceDetails. This object provides information
2428
- * about the validation performed on the returned payment data.
2345
+ * Call the 'onAuthorized' callback if available.
2346
+ * Must be resolved/reject for the payment flow to continue
2429
2347
  *
2430
- * @defaultValue false
2348
+ * @private
2431
2349
  */
2432
- assuranceDetailsRequired?: boolean;
2350
+ private handleAuthorization;
2433
2351
  /**
2434
- * Set to false if you don't support credit cards.
2435
- * @defaultValue true
2352
+ * Verify if the 'onOrderTrackingRequest' is provided. If so, triggers the callback expecting an
2353
+ * Apple Pay order details back
2354
+ *
2355
+ * @private
2436
2356
  */
2437
- allowCreditCards?: boolean;
2357
+ private collectOrderTrackingDetailsIfNeeded;
2358
+ private validateMerchant;
2359
+ protected componentToRender(): h.JSX.Element;
2360
+ }
2361
+
2362
+ declare class Atome extends OpenInvoiceContainer {
2363
+ static readonly type = TxVariants.atome;
2364
+ formatProps(props: OpenInvoiceConfiguration): any;
2365
+ }
2366
+
2367
+ interface RiskModuleOptions {
2368
+ enabled: boolean;
2369
+ onComplete?: (data: any) => void;
2370
+ onError?: (error: any) => void;
2371
+ node?: string;
2372
+ }
2373
+ interface RiskModuleProps extends BaseElementProps {
2374
+ risk: RiskModuleOptions;
2375
+ loadingContext: string;
2376
+ }
2377
+ declare class RiskElement extends BaseElement<RiskModuleProps> {
2378
+ static readonly type = "risk";
2379
+ static readonly defaultProps: {
2380
+ risk: {
2381
+ enabled: boolean;
2382
+ onComplete: () => void;
2383
+ onError: () => void;
2384
+ node: string;
2385
+ };
2386
+ };
2387
+ private nodeRiskContainer;
2388
+ constructor(checkout: ICore, props?: any);
2389
+ formatProps(props: any): any;
2390
+ onComplete: (result: any) => void;
2391
+ onError: (error: any) => void;
2392
+ get isValid(): any;
2393
+ get data(): any;
2394
+ get enabled(): boolean;
2395
+ cleanUp: () => void;
2396
+ componentWillUnmount(): void;
2397
+ render(): h.JSX.Element;
2398
+ }
2399
+
2400
+ interface IssuerItem {
2401
+ id: string;
2402
+ name: string;
2403
+ icon?: string;
2404
+ }
2405
+ interface TermsAndConditions {
2406
+ translationKey: string;
2407
+ urls: string[];
2408
+ }
2409
+
2410
+ interface IssuerListConfiguration extends UIElementProps {
2411
+ showImage?: boolean;
2412
+ placeholder?: string;
2413
+ issuers?: IssuerItem[];
2414
+ highlightedIssuers?: string[];
2415
+ showPaymentMethodItemImages?: boolean;
2416
+ termsAndConditions?: TermsAndConditions;
2417
+ showContextualElement?: boolean;
2418
+ }
2419
+ interface IssuerListData {
2420
+ paymentMethod: {
2421
+ type: string;
2422
+ issuer: string;
2423
+ };
2424
+ }
2425
+
2426
+ declare class IssuerListContainer<TProps extends IssuerListConfiguration = IssuerListConfiguration, TData = IssuerListData> extends UIElement<TProps> {
2427
+ protected static readonly defaultProps: {
2428
+ showImage: boolean;
2429
+ issuers: any[];
2430
+ highlightedIssuers: any[];
2431
+ loadingContext: string;
2432
+ showPaymentMethodItemImages: boolean;
2433
+ };
2434
+ constructor(checkout: ICore, props?: TProps);
2435
+ formatProps(props: TProps): TProps;
2438
2436
  /**
2439
- * Set to false if you don't support prepaid cards.
2440
- * @defaultValue true
2437
+ * Formats the component data output
2441
2438
  */
2442
- allowPrepaidCards?: boolean;
2439
+ formatData(): TData;
2443
2440
  /**
2444
- * Issuer country allowlist that contains ISO 3166-1 alpha-2 country codes.
2445
- * When this allowlist is set, users can only choose payment methods issued in the specified countries.
2446
- *
2447
- * @remarks
2448
- * Note: allowedIssuerCountryCodes and blockedIssuerCountryCodes are mutually exclusive, so only one should be set at a time.
2449
- *
2450
- * @see https://developers.google.com/pay/api/web/reference/request-objects#CardParameters
2451
- * @example ['US', 'CA', 'GB']
2441
+ * Returns whether the component state is valid or not
2452
2442
  */
2453
- allowedIssuerCountryCodes?: string[];
2443
+ get isValid(): boolean;
2454
2444
  /**
2455
- * Issuer country blocklist that contains ISO 3166-1 alpha-2 country codes.
2456
- * When this blocklist is set, users are restricted from choosing payment methods issued in the specified countries.
2457
- *
2458
- * @remarks
2459
- * Note: allowedIssuerCountryCodes and blockedIssuerCountryCodes are mutually exclusive, so only one should be set at a time.
2460
- *
2461
- * @see https://developers.google.com/pay/api/web/reference/request-objects#CardParameters
2462
- * @example ['CN', 'RU']
2463
- */
2464
- blockedIssuerCountryCodes?: string[];
2465
- /**
2466
- * Set to true if you require a billing address
2467
- *
2468
- * @remarks
2469
- * A billing address should only be requested if it's required to process the transaction.
2470
- *
2471
- * @defaultValue false
2472
- */
2473
- billingAddressRequired?: boolean;
2474
- /**
2475
- * The expected fields returned if billingAddressRequired is set to true.
2476
- */
2477
- billingAddressParameters?: google.payments.api.BillingAddressParameters;
2478
- /**
2479
- * Set to true to request an email address.
2480
- * @defaultValue false
2481
- */
2482
- emailRequired?: boolean;
2483
- /**
2484
- * Set to true to request a full shipping address.
2485
- * @defaultValue false
2486
- */
2487
- shippingAddressRequired?: boolean;
2488
- /**
2489
- * If shippingAddressRequired is set to true, specify shipping address restrictions. This object is used to set shipping restrictions.
2490
- *
2491
- * @see https://developers.google.com/pay/api/web/reference/request-objects#ShippingAddressParameters
2492
- */
2493
- shippingAddressParameters?: google.payments.api.ShippingAddressParameters;
2494
- /**
2495
- * Set to true when the SHIPPING_OPTION callback intent is used. This field is required if you implement support
2496
- * for Authorize Payments or Dynamic Price Updates.
2497
- *
2498
- * @see https://developers.google.com/pay/api/web/reference/request-objects#ShippingOptionParameters
2499
- */
2500
- shippingOptionRequired?: boolean;
2501
- /**
2502
- * @see https://developers.google.com/pay/api/web/reference/request-objects#ShippingOptionParameters
2503
- */
2504
- shippingOptionParameters?: google.payments.api.ShippingOptionParameters;
2505
- /**
2506
- * Specifies the following callback intents for PaymentDataCallbacks
2507
- * @see https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataCallbacks
2508
- */
2509
- callbackIntents?: google.payments.api.CallbackIntent[];
2510
- /**
2511
- * Disclaimer: 'onPaymentAuthorized' is not exposed as we are using our own method internally to
2512
- * handle the authorization part
2513
- *
2514
- * @see https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataCallbacks
2515
- */
2516
- paymentDataCallbacks?: Pick<google.payments.api.PaymentDataCallbacks, 'onPaymentDataChanged'>;
2517
- /**
2518
- * @see https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo
2519
- */
2520
- transactionInfo?: Partial<google.payments.api.TransactionInfo>;
2521
- /**
2522
- * Google button color
2523
- * @default default
2524
- */
2525
- buttonColor?: google.payments.api.ButtonColor;
2526
- /**
2527
- * Changes the button UI label
2528
- * @default buy
2529
- */
2530
- buttonType?: google.payments.api.ButtonType;
2531
- /**
2532
- * Decides if the button takes the whole space or use preset from Google
2533
- * @default fill
2534
- */
2535
- buttonSizeMode?: google.payments.api.ButtonSizeMode;
2536
- buttonRootNode?: HTMLDocument | ShadowRoot;
2537
- buttonLocale?: string;
2538
- buttonRadius?: number;
2539
- /**
2540
- * Called when the shopper clicks the Google Pay button. Call resolve() or reject() to continue or stop the payment flow.
2541
- *
2542
- * @param resolve - Display the Google payment sheet
2543
- * @param reject - Don't display the Google payment sheet
2544
- * @returns
2545
- */
2546
- onClick?: (resolve: () => void, reject: () => void) => void;
2547
- /**
2548
- * Callback called when GooglePay authorizes the payment.
2549
- * Must be resolved/rejected with the action object.
2550
- */
2551
- onAuthorized?: (data: {
2552
- authorizedEvent: google.payments.api.PaymentData;
2553
- billingAddress?: Partial<AddressData>;
2554
- deliveryAddress?: Partial<AddressData>;
2555
- }, actions: {
2556
- resolve: () => void;
2557
- reject: (error?: google.payments.api.PaymentDataError | string) => void;
2558
- }) => void;
2559
- configuration?: {
2560
- /**
2561
- * Adyen's merchant account name
2562
- * @see https://developers.google.com/pay/api/web/reference/request-objects#gateway
2563
- */
2564
- gatewayMerchantId: string;
2565
- /**
2566
- * A Google merchant identifier issued after registration with the {@link https://pay.google.com/business/console | Google Pay Business Console}.
2567
- * Required when PaymentsClient is initialized with an environment property of PRODUCTION.
2568
- * @see https://developers.google.com/pay/api/web/reference/request-objects#MerchantInfo
2569
- */
2570
- merchantId?: string;
2571
- /**
2572
- * Merchant name is rendered in the payment sheet.
2573
- * @see https://developers.google.com/pay/api/web/reference/request-objects#MerchantInfo
2574
- */
2575
- merchantName?: string;
2576
- /**
2577
- * Merchant fully qualified domain name.
2578
- */
2579
- merchantOrigin?: string;
2580
- /**
2581
- * Google JWT solution for platforms
2582
- * To request Google Pay credentials, you can enable platforms to send requests that are authenticated with the platform credentials. You don't need to register individual domain names to call Google Pay APIs.
2583
- */
2584
- authJwt?: string;
2585
- };
2586
- }
2587
- interface GooglePaymentDataRequest extends google.payments.api.PaymentDataRequest {
2588
- merchantInfo: ExtendedMerchantInfo;
2589
- }
2590
- interface ExtendedMerchantInfo extends google.payments.api.MerchantInfo {
2591
- merchantOrigin?: string;
2592
- }
2593
-
2594
- type IrisConfiguration = IssuerListConfiguration & Pick<QRLoaderConfiguration, 'countdownTime' | 'qrCodeData' | 'paymentData' | 'delay'>;
2595
- /**
2596
- * Iris data format for /payment request
2597
- * @internal
2598
- */
2599
- interface IrisData {
2600
- paymentMethod: {
2601
- type: string;
2602
- issuer?: string;
2603
- };
2604
- }
2605
- /**
2606
- * Iris component display modes
2607
- * @internal
2608
- */
2609
- declare enum IrisMode {
2610
- QR_CODE = "qrCode",
2611
- BANK_LIST = "bankList"
2612
- }
2613
-
2614
- /** sdkData present in Klarna `action`objects. */
2615
- type KlarnaSdkData = {
2616
- /**
2617
- * Klarna client_token
2618
- * @see https://developers.klarna.com/documentation/klarna-payments/single-call-descriptions/create-session/
2619
- * */
2620
- client_token: string;
2621
- /**
2622
- * `payment_method_category` specifies which of Klarna’s customer offerings (e.g. Pay now, Pay later or Slice it)
2623
- * that is being shown in the widget
2624
- * @see https://developers.klarna.com/documentation/klarna-payments/single-call-descriptions/create-session/
2625
- * */
2626
- payment_method_category: string;
2627
- };
2628
- interface KlarnaPaymentsShared {
2629
- sdkData?: KlarnaSdkData;
2630
- paymentData?: string;
2631
- paymentMethodType?: string;
2632
- }
2633
- interface KlarnaWidgetProps extends KlarnaPaymentsShared {
2634
- /** @internal */
2635
- payButton: (props: PayButtonProps) => h.JSX.Element;
2636
- /** @internal */
2637
- onLoaded: () => void;
2638
- widgetInitializationTime: number;
2639
- onComplete: (detailsData: KlarnaAdditionalDetailsData) => void;
2640
- onError: (error: any) => void;
2641
- }
2642
- type KlarnaConfiguration = UIElementProps & KlarnaPaymentsShared & {
2643
- useKlarnaWidget?: boolean;
2644
- };
2645
- interface KlarnaWidgetAuthorizeResponse {
2646
- approved: boolean;
2647
- show_form: boolean;
2648
- authorization_token: string;
2649
- error?: unknown;
2650
- }
2651
- interface KlarnaComponentRef extends ComponentMethodsRef {
2652
- setAction(action: KlarnaAction): void;
2653
- reinitializeWidget(): void;
2654
- }
2655
- interface KlarnaAction extends PaymentAction {
2656
- sdkData: {
2657
- client_token: string;
2658
- payment_method_category: string;
2659
- };
2660
- }
2661
- interface KlarnaAdditionalDetailsData extends AdditionalDetailsData {
2662
- data: {
2663
- paymentData: string;
2664
- details: {
2665
- authorization_token?: string;
2666
- resultCode?: ResultCode;
2667
- };
2668
- };
2669
- }
2670
-
2671
- declare class PaypalElement extends UIElement<PayPalConfiguration> {
2672
- static readonly type = TxVariants.paypal;
2673
- static readonly subtype = "sdk";
2674
- paymentData: string | null;
2675
- private resolve;
2676
- private reject;
2677
- protected static readonly defaultProps: Partial<PayPalConfiguration>;
2678
- constructor(checkout: ICore, props?: PayPalConfiguration);
2679
- formatProps(props: PayPalConfiguration): PayPalConfiguration;
2680
- protected beforeRender(configSetByMerchant?: PayPalConfiguration): void;
2681
- submit: () => void;
2682
- /**
2683
- * Updates the paymentData value. It must be used in the PayPal Express flow, when patching the amount
2684
- * @param paymentData - Payment data value
2685
- */
2686
- updatePaymentData(paymentData: string): void;
2687
- /**
2688
- * Formats the component data output
2689
- */
2690
- protected formatData(): {
2691
- paymentMethod: {
2692
- type: TxVariants;
2693
- userAction: "pay" | "continue";
2694
- subtype: string;
2695
- };
2696
- };
2697
- handleAction: (action: PaymentAction) => any;
2698
- updateWithAction: (action: PaymentAction) => any;
2699
- /**
2700
- * Dropin Validation
2701
- *
2702
- * @remarks
2703
- * Paypal does not require any specific Dropin validation
2704
- */
2705
- get isValid(): boolean;
2706
- private readonly handleOnApprove;
2707
- handleResolve(token: string): void;
2708
- handleReject(errorMessage: string): void;
2709
- private handleSubmit;
2710
- /**
2711
- * If the merchant provides the 'onShippingAddressChange' callback, then this method is used as a wrapper to it, in order
2712
- * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the
2713
- * paymentData
2714
- *
2715
- * @param data - PayPal data
2716
- * @param actions - PayPal actions.
2717
- */
2718
- private handleOnShippingAddressChange;
2719
- /**
2720
- * If the merchant provides the 'onShippingOptionsChange' callback, then this method is used as a wrapper to it, in order
2721
- * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the
2722
- * paymentData
2723
- *
2724
- * @param data - PayPal data
2725
- * @param actions - PayPal actions.
2726
- */
2727
- private handleOnShippingOptionsChange;
2728
- protected componentToRender(): h.JSX.Element | null;
2729
- }
2730
-
2731
- type PayPalOrderResponseBody = OrderResponseBody;
2732
- type PayPalOnShippingAddressChangeData = OnShippingAddressChangeData & {
2733
- errors: Record<string, string>;
2734
- };
2735
- type PayPalOnShippingOptionsChangeData = OnShippingOptionsChangeData & {
2736
- errors: Record<string, string>;
2737
- };
2738
- type PayPalOnInitActions = OnInitActions;
2739
-
2740
- interface PayPalConfiguration extends UIElementProps {
2741
- /**
2742
- * Configuration returned by the backend
2743
- * @internal
2744
- */
2745
- configuration?: {
2746
- /**
2747
- * @see {@link https://developer.paypal.com/sdk/js/configuration/#merchant-id}
2748
- */
2749
- merchantId?: string;
2750
- /**
2751
- * @see {@link https://developer.paypal.com/sdk/js/configuration/#intent}
2752
- */
2753
- intent?: Intent;
2754
- };
2755
- /**
2756
- * Identifies if the payment is Express. Also used for analytics
2757
- * @defaultValue false
2758
- */
2759
- isExpress?: boolean;
2760
- /**
2761
- * Used for analytics
2762
- */
2763
- expressPage?: 'cart' | 'minicart' | 'pdp' | 'checkout';
2764
- /**
2765
- * Set to true to force the UI to not render PayPal button
2766
- * @default false
2767
- */
2768
- blockPayPalButton?: boolean;
2769
- /**
2770
- * Set to true to force the UI to not render PayPal Credit button
2771
- * @default false
2772
- */
2773
- blockPayPalCreditButton?: boolean;
2774
- /**
2775
- * Set to true to force the UI to not render PayPal Pay Later button
2776
- * @default false
2777
- */
2778
- blockPayPalPayLaterButton?: boolean;
2779
- /**
2780
- * Set to true to force the UI to not render PayPal Venmo button
2781
- * @default false
2782
- */
2783
- blockPayPalVenmoButton?: boolean;
2784
- /**
2785
- * Callback called when PayPal authorizes the payment.
2786
- * Must be resolved/rejected with the action object. If resolved, the additional details will be invoked. Otherwise it will be skipped
2787
- *
2788
- * @param data - Contains the raw event from PayPal, along with the billingAddress and deliveryAddress parsed by Adyen based on the raw event data
2789
- * @param actions - Used to indicate that payment flow must continue or must stop
2790
- */
2791
- onAuthorized?: (data: {
2792
- authorizedEvent: PayPalOrderResponseBody;
2793
- billingAddress?: Partial<AddressData>;
2794
- deliveryAddress?: Partial<AddressData>;
2795
- }, actions: {
2796
- resolve: () => void;
2797
- reject: () => void;
2798
- }) => void;
2799
- /**
2800
- * While the buyer is on the PayPal site, you can update their shopping cart to reflect the shipping address they chose on PayPal
2801
- * @see {@link https://developer.paypal.com/sdk/js/reference/#on-shipping-address-change}
2802
- *
2803
- * @param data - PayPal data object
2804
- * @param actions - Used to reject the address change in case the address is invalid
2805
- * @param component - Adyen instance of its PayPal implementation. It must be used to manipulate the 'paymentData' in order to apply the amount patch correctly
2806
- */
2807
- onShippingAddressChange?: (data: PayPalOnShippingAddressChangeData, actions: {
2808
- reject: (reason?: string) => Promise<void>;
2809
- }, component: PaypalElement) => Promise<void>;
2810
- /**
2811
- * This callback is triggered any time the user selects a new shipping option.
2812
- * @see {@link https://developer.paypal.com/sdk/js/reference/#on-shipping-options-change}
2813
- *
2814
- * @param data - An PayPal object containing the payer’s selected shipping option
2815
- * @param actions - Used to indicates to PayPal that you will not support the shipping method selected by the buyer
2816
- * @param component - Adyen instance of its PayPal implementation. It must be used to manipulate the 'paymentData' in order to apply the amount patch correctly
2817
- */
2818
- onShippingOptionsChange?: (data: PayPalOnShippingOptionsChangeData, actions: {
2819
- reject: (reason?: string) => Promise<void>;
2820
- }, component: PaypalElement) => Promise<void>;
2821
- /**
2822
- * If set to 'continue' , the button inside the lightbox will display the 'Continue' button
2823
- * @default pay
2824
- */
2825
- userAction?: 'continue' | 'pay';
2826
- /**
2827
- * Customize your buttons using the style option.
2828
- *
2829
- * @see {@link https://developer.paypal.com/sdk/js/reference/#style}
2830
- * @default style.height 48px
2831
- */
2832
- style?: {
2833
- layout?: 'vertical' | 'horizontal';
2834
- color?: 'gold' | 'blue' | 'silver' | 'white' | 'black';
2835
- shape?: 'rect' | 'pill';
2836
- height?: string | number;
2837
- disableMaxWidth?: boolean;
2838
- label?: 'paypal' | 'checkout' | 'buynow' | 'pay';
2839
- tagline?: boolean;
2840
- };
2841
- /**
2842
- * Called when the button first renders. You can use it for validations on your page if you are unable to do so prior to rendering.
2843
- * @see {@link https://developer.paypal.com/sdk/js/reference/#oninitonclick}
2844
- */
2845
- onInit?: (data?: Record<string, unknown>, actions?: PayPalOnInitActions) => void;
2846
- /**
2847
- * @see {@link https://developer.paypal.com/sdk/js/reference/#oninitonclick}
2848
- */
2849
- onClick?: () => void;
2850
- /**
2851
- * The commit status of the transaction. Determines whether to show a Pay Now or Continue button in the Checkout flow.
2852
- *
2853
- * @see {@link https://developer.paypal.com/sdk/js/configuration/#commit}
2854
- * @default true
2855
- */
2856
- commit?: boolean;
2857
- /**
2858
- * Whether the payment information in the transaction will be saved. Save your customers' payment information for billing agreements, subscriptions, or recurring payments.
2859
- *
2860
- * @see {@link https://developer.paypal.com/sdk/js/configuration/#vault}
2861
- * @default false
2862
- */
2863
- vault?: boolean;
2864
- /**
2865
- * The locale renders components. By default PayPal detects the correct locale for the buyer based on their geolocation and browser preferences.
2866
- *
2867
- * @see {@link https://developer.paypal.com/sdk/js/configuration/#locale}
2868
- * @default undefined
2869
- */
2870
- locale?: string;
2871
- /**
2872
- * Determines whether the funds are captured immediately on checkout or if the buyer authorizes the funds to be captured later.
2873
- * If set, it will override the intent passed inside the 'configuration' object
2874
- *
2875
- * @see {@link https://developer.paypal.com/sdk/js/configuration/#intent}
2876
- * @default undefined
2877
- */
2878
- intent?: Intent;
2879
- /**
2880
- * Pass a Content Security Policy single-use token if you use them on your site
2881
- *
2882
- * @see {@link https://developer.paypal.com/sdk/js/configuration/#data-csp-nonce}
2883
- * @default undefined
2884
- */
2885
- cspNonce?: string;
2886
- enableMessages?: boolean;
2887
- /**
2888
- * Set to true to enable debug mode. Defaults to false.
2889
- * @see {@link https://developer.paypal.com/sdk/js/configuration/#debug}
2890
- * @default undefined
2891
- */
2892
- debug?: boolean;
2893
- /**
2894
- * A two-letter ISO 3166 country code which will be passed to the PayPal SDK as the buyer-country.
2895
- * Note: The buyer country is only used in the sandbox. Don't pass this query parameter in production.
2896
- *
2897
- * @see {@link https://developer.paypal.com/sdk/js/configuration/#buyer-country}
2898
- * @default undefined
2899
- */
2900
- countryCode?: string;
2901
- }
2902
- /**
2903
- * The intent for the transaction. This determines whether the funds are captured immediately, or later.
2904
- * @see {@link https://developer.paypal.com/docs/checkout/reference/customize-sdk/#intent}
2905
- */
2906
- type Intent = 'sale' | 'capture' | 'authorize' | 'order' | 'tokenize';
2907
- type SupportedPayPalFundingSources = 'paypal' | 'credit' | 'paylater' | 'venmo';
2908
- /**
2909
- * @deprecated Use {@link SupportedPayPalFundingSources} instead
2910
- */
2911
- type FundingSource = SupportedPayPalFundingSources;
2912
-
2913
- /**
2914
- * PayPal Fastlane Reference:
2915
- * https://developer.paypal.com/docs/checkout/fastlane/reference/#link-customizeyourintegration
2916
- */
2917
- /**
2918
- * Fastlane object available in the window
2919
- */
2920
- interface FastlaneWindowInstance {
2921
- identity: {
2922
- lookupCustomerByEmail: (email: string) => Promise<{
2923
- customerContextId: string;
2924
- }>;
2925
- triggerAuthenticationFlow: (customerContextId: string, options?: AuthenticationFlowOptions) => Promise<FastlaneAuthenticatedCustomerResult>;
2926
- getSession: () => Promise<{
2927
- sessionId: string;
2928
- }>;
2929
- };
2930
- profile: {
2931
- showShippingAddressSelector: () => Promise<FastlaneShippingAddressSelectorResult>;
2932
- };
2933
- setLocale: (locale: string) => void;
2934
- ConsentComponent: () => Promise<{
2935
- getRenderState: () => Promise<FastlaneConsentRenderState>;
2936
- }>;
2937
- FastlaneWatermarkComponent: (options: {
2938
- includeAdditionalInfo: boolean;
2939
- }) => Promise<{
2940
- render: (container: any) => null;
2941
- }>;
2942
- }
2943
- interface FastlaneConsentRenderState {
2944
- showConsent: boolean;
2945
- defaultToggleState?: boolean;
2946
- termsAndConditionsLink?: string;
2947
- termsAndConditionsVersion?: string;
2948
- privacyPolicyLink?: string;
2949
- }
2950
- interface FastlaneOptions {
2951
- intendedExperience: 'externalProcessorCustomConsent';
2952
- metadata?: {
2953
- geoLocOverride?: string;
2954
- };
2955
- }
2956
- interface AuthenticationFlowOptions {
2957
- }
2958
- interface CardPaymentSource {
2959
- brand: string;
2960
- expiry: string;
2961
- lastDigits: string;
2962
- name: string;
2963
- billingAddress: FastlaneAddress;
2964
- }
2965
- /**
2966
- * External types
2967
- */
2968
- interface FastlaneShippingAddressSelectorResult {
2969
- selectionChanged: boolean;
2970
- selectedAddress: FastlaneShipping;
2971
- }
2972
- interface FastlaneAuthenticatedCustomerSucceeded {
2973
- authenticationState: 'succeeded';
2974
- profileData: FastlaneProfile;
2975
- }
2976
- interface FastlaneAuthenticatedCustomerFailed {
2977
- authenticationState: 'failed' | 'canceled' | 'not_found';
2978
- profileData: undefined;
2979
- }
2980
- type FastlaneAuthenticatedCustomerResult = FastlaneAuthenticatedCustomerSucceeded | FastlaneAuthenticatedCustomerFailed;
2981
- interface FastlaneAddress {
2982
- addressLine1: string;
2983
- addressLine2: string;
2984
- adminArea1: string;
2985
- adminArea2: string;
2986
- postalCode: string;
2987
- countryCode: string;
2988
- phone: {
2989
- nationalNumber: string;
2990
- countryCode: string;
2991
- };
2992
- }
2993
- interface FastlaneShipping {
2994
- name: {
2995
- firstName: string;
2996
- lastName: string;
2997
- fullName: string;
2998
- };
2999
- address: FastlaneAddress;
3000
- phoneNumber: {
3001
- nationalNumber: string;
3002
- countryCode: string;
3003
- };
3004
- }
3005
- interface FastlaneProfile {
3006
- name: {
3007
- firstName: string;
3008
- lastName: string;
3009
- fullName: string;
3010
- };
3011
- shippingAddress: FastlaneShipping;
3012
- card?: {
3013
- id: string;
3014
- paymentSource: {
3015
- card: CardPaymentSource;
3016
- };
3017
- };
3018
- }
3019
- type FastlaneComponentConfiguration = {
3020
- paymentType: 'fastlane';
3021
- configuration: {
3022
- fastlaneSessionId: string;
3023
- email: string;
3024
- tokenId: string;
3025
- lastFour: string;
3026
- brand: string;
3027
- };
3028
- };
3029
- type FastlaneCardComponentConfiguration = {
3030
- paymentType: 'card';
3031
- configuration: {
3032
- fastlaneConfiguration?: FastlaneSignupConfiguration;
3033
- };
3034
- };
3035
- type FastlaneSignupConfiguration = FastlaneConsentRenderState & {
3036
- fastlaneSessionId?: string;
3037
- telephoneNumber?: string;
3038
- };
3039
- interface FastlaneData {
3040
- consentShown: boolean;
3041
- fastlaneSessionId: string;
3042
- consentGiven: boolean;
3043
- consentVersion?: string;
3044
- telephoneNumber?: string;
3045
- }
3046
- type FastlanePaymentMethodConfiguration = FastlaneComponentConfiguration | FastlaneCardComponentConfiguration;
3047
- interface FastlaneSDKConfiguration {
3048
- clientKey: string;
3049
- environment: CoreConfiguration['environment'];
3050
- locale?: 'en-US' | 'es-US' | 'fr-RS' | 'zh-US';
3051
- analytics?: Pick<AnalyticsOptions, 'enabled'>;
3052
- /**
3053
- * Used to force the Fastlane SDK to return the consent details in case the shopper is not recognized.
3054
- * Use-case: Developer is testing the flow in another country outside US, which would not get consent details.
3055
- *
3056
- * This configuration should not be used for 'live' environment
3057
- */
3058
- forceConsentDetails?: boolean;
3059
- }
3060
- interface FastlaneConfiguration extends UIElementProps {
3061
- /**
3062
- * Card token ID, used to process the payment
3063
- */
3064
- tokenId: string;
3065
- /**
3066
- * Fastlane session ID
3067
- */
3068
- fastlaneSessionId: string;
3069
- /**
3070
- * Initial last four digits displayed once the Component is rendered
3071
- */
3072
- lastFour: string;
3073
- /**
3074
- * Initial brand displayed once the Component is rendered
3075
- */
3076
- brand: string;
3077
- /**
3078
- * Shopper's email (it will be used in the future to re-authenticate using Fastlane SDK within the Component)
3079
- */
3080
- email: string;
3081
- /**
3082
- * Used internally by Drop-in. Displays the brand images inside the Drop-in payment method header
3083
- * @internal
3084
- */
3085
- keepBrandsVisible?: boolean;
3086
- /**
3087
- * Property returned by the backend. Contains the list of brands supported by Fastlane component
3088
- * @internal
3089
- */
3090
- brands?: string[];
3091
- }
3092
-
3093
- interface QRLoaderConfiguration extends UIElementProps {
3094
- /**
3095
- * Number of milliseconds that the component will wait in between status calls
3096
- * @default 2_000
3097
- */
3098
- delay?: number;
3099
- /**
3100
- * Number of minutes that the component should keep on loading
3101
- * @default 15
3102
- */
3103
- countdownTime?: number;
3104
- /**
3105
- * Number of milliseconds that the component will switch to throttled mode
3106
- * @default 60_000
3107
- */
3108
- throttleTime?: number;
3109
- /**
3110
- * Number of milliseconds that the component will wait in between status calls when in throttled mode
3111
- * @default 10_000
3112
- */
3113
- throttleInterval?: number;
3114
- type?: string;
3115
- brandLogo?: string;
3116
- buttonLabel?: string;
3117
- qrCodeImage?: string;
3118
- qrCodeData?: string;
3119
- paymentData?: string;
3120
- redirectIntroduction?: string;
3121
- timeToPay?: string;
3122
- copyBtn?: boolean;
3123
- introduction?: string | (() => h.JSX.Element);
3124
- instructions?: string | (() => h.JSX.Element);
3125
- }
3126
-
3127
- interface PixConfiguration extends QRLoaderConfiguration {
3128
- personalDetailsRequired?: boolean;
3129
- }
3130
- interface PixElementData {
3131
- paymentMethod: {
3132
- type: 'pix';
3133
- };
3134
- shopperName?: {
3135
- firstName: string;
3136
- lastName: string;
3137
- };
3138
- socialSecurityNumber?: string;
3139
- }
3140
-
3141
- interface PreAuthorizedDebitCanadaConfiguration extends UIElementProps {
3142
- /**
3143
- * Adds placeholder text to the input fields
3144
- */
3145
- placeholders?: PreAuthorizedDebitCanadaPlaceholders;
3146
- /**
3147
- * Display the contextual text underneath the input field. Disable it if you are using placeholders instead
3148
- * @default true
3149
- */
3150
- showContextualElement?: boolean;
3151
- /**
3152
- * Enables storing the payment method using the Checkbox. Used for Advanced flow only
3153
- * @default false
3154
- */
3155
- enableStoreDetails?: boolean;
3156
- /**
3157
- * 'storedPaymentMethodId' coming from a stored PreAuthorizedDebitCanada in /paymentMethods response
3158
- * @internal
3159
- */
3160
- storedPaymentMethodId?: string;
3161
- /**
3162
- * 'lastFour' coming from a stored PreAuthorizedDebitCanada in /paymentMethods response
3163
- * @internal
3164
- */
3165
- lastFour?: string;
3166
- /**
3167
- * 'label' coming from a stored PreAuthorizedDebitCanada in /paymentMethods response
3168
- * @internal
3169
- */
3170
- label?: string;
3171
- }
3172
- interface PreAuthorizedDebitCanadaPlaceholders {
3173
- ownerName?: string;
3174
- bankAccountNumber?: string;
3175
- bankCode?: string;
3176
- bankLocationId?: string;
3177
- }
3178
-
3179
- interface RedirectConfiguration extends UIElementProps {
3180
- type?: string;
3181
- beforeRedirect?: (resolve: any, reject: any, url: any) => Promise<void>;
3182
- /**
3183
- * Specifies the URL to redirect to. Returned in the action object.
3184
- * @internal
3185
- */
3186
- url?: string;
3187
- /**
3188
- * When the redirect URL must be accessed via POST, use this data to post to the redirect URL.
3189
- * Returned in the action object
3190
- * @internal
3191
- */
3192
- data?: {
3193
- [key: string]: unknown;
3194
- };
3195
- /**
3196
- * Specifies the HTTP method for the redirect.
3197
- * Returned in the action object
3198
- * @internal
3199
- */
3200
- method?: 'GET' | 'POST';
3201
- }
3202
-
3203
- interface SepaElementData {
3204
- paymentMethod: {
3205
- type: string;
3206
- iban: string;
3207
- ownerName: string;
3208
- };
3209
- }
3210
- interface SepaConfiguration extends UIElementProps {
3211
- }
3212
-
3213
- interface Mandate {
3214
- /**
3215
- * Mandate amount in the smallest unit of the currency. Maximum amount the shopper authorizes
3216
- * for future recurring charges.
3217
- */
3218
- amount: string;
3219
- /**
3220
- * Charge cadence for the mandate.
3221
- */
3222
- frequency: 'monthly' | 'weekly' | 'adhoc';
3223
- /**
3224
- * - `max`: merchant can charge any amount up to `amount` during future billing cycles.
3225
- * - `exact`: merchant must charge exactly `amount` on each recurring charge.
3226
- */
3227
- amountRule: 'max' | 'exact';
3228
- /**
3229
- * End date of the mandate in `YYYY-MM-DD` format. Required by the Checkout API.
3230
- * Recommended to set between 7 and 10 years in the future.
3231
- */
3232
- endsAt: string;
3233
- /**
3234
- * Start date of the mandate in `YYYY-MM-DD` format. Defaults to the mandate creation date.
3235
- */
3236
- startsAt?: string;
3237
- /**
3238
- * Free-form description of the mandate shown on the shopper's UPI app.
3239
- */
3240
- remarks?: string;
3241
- }
3242
-
3243
- type UpiType = TxVariants.upi_qr | TxVariants.upi_intent;
3244
- type UpiMode = 'qrCode' | 'intent';
3245
- type App = {
3246
- id: string;
3247
- name: string;
3248
- };
3249
- type UpiPaymentData = {
3250
- paymentMethod: {
3251
- type: UpiType;
3252
- appId?: string;
3253
- };
3254
- };
3255
- interface UPIConfiguration extends UIElementProps {
3256
- /**
3257
- * @deprecated
3258
- * UPI configuration property "defaultMode" is deprecated and will be removed in a future version.
3259
- */
3260
- defaultMode?: UpiMode;
3261
- mandate?: Mandate;
3262
- apps?: Array<App>;
3263
- /**
3264
- * Redirect url for upi intent apps
3265
- * @internal
3266
- */
3267
- url?: string;
3268
- /**
3269
- * @internal
3270
- */
3271
- paymentData?: string;
3272
- qrCodeData?: string;
3273
- brandLogo?: string;
3274
- /**
3275
- * The duration in minutes before the await/QR code expires.
3276
- */
3277
- countdownTime?: number;
3278
- /**
3279
- * Show the available UPI apps images on the Drop-in payment method item
3280
- */
3281
- showPaymentMethodItemImages?: boolean;
3282
- /**
3283
- * Show `+ other` after the UPI apps images on the Drop-in payment method item
3284
- */
3285
- showOtherInsteadOfNumber?: boolean;
3286
- }
3287
- /**
3288
- * @internal
3289
- */
3290
- type UPIAppList = Array<{
3291
- id: string;
3292
- name: string;
3293
- icon: string;
3294
- }>;
3295
-
3296
- declare enum PayToIdentifierEnum {
3297
- phone = "phone",
3298
- email = "email",
3299
- abn = "abn",
3300
- orgid = "orgid"
3301
- }
3302
-
3303
- interface PayIdFormData {
3304
- email: string;
3305
- phone: string;
3306
- abn: string;
3307
- orgid: string;
3308
- firstName: string;
3309
- lastName: string;
3310
- phoneNumber?: string;
3311
- phonePrefix?: string;
3312
- selectedIdentifier: PayToIdentifierEnum;
3313
- }
3314
-
3315
- interface BSBFormData {
3316
- bsb: string;
3317
- bankAccountNumber: string;
3318
- firstName: string;
3319
- lastName: string;
3320
- }
3321
-
3322
- type PayToInputOption = 'payid-option' | 'bsb-option';
3323
- type PayToComponentData = {
3324
- selectedInput: PayToInputOption;
3325
- };
3326
-
3327
- type MandateFrequencyType = 'adhoc' | 'daily' | 'weekly' | 'biWeekly' | 'monthly' | 'quarterly' | 'halfYearly' | 'yearly';
3328
- interface MandateType {
3329
- amount: string;
3330
- amountRule: string;
3331
- frequency: MandateFrequencyType;
3332
- startsAt?: string;
3333
- endsAt: string;
3334
- remarks: string;
3335
- count?: string;
3336
- }
3337
- type PayToPlaceholdersType = {
3338
- [K in keyof PayToData]: string;
3339
- };
3340
- interface PayToConfiguration extends UIElementProps {
3341
- /**
3342
- * Data received from the server to handle the action
3343
- * @internal
3344
- */
3345
- paymentData?: string;
3346
- data?: PayToData;
3347
- placeholders?: PayToPlaceholdersType;
3348
- mandate?: MandateType;
3349
- payee?: string;
3350
- }
3351
- interface PayToData extends PayIdFormData, BSBFormData, PayToComponentData {
3352
- shopperAccountIdentifier: string;
3353
- }
3354
-
3355
- interface IssuerItem {
3356
- id: string;
3357
- name: string;
3358
- icon?: string;
3359
- }
3360
- interface TermsAndConditions {
3361
- translationKey: string;
3362
- urls: string[];
3363
- }
3364
-
3365
- interface IssuerListConfiguration extends UIElementProps {
3366
- showImage?: boolean;
3367
- placeholder?: string;
3368
- issuers?: IssuerItem[];
3369
- highlightedIssuers?: string[];
3370
- showPaymentMethodItemImages?: boolean;
3371
- termsAndConditions?: TermsAndConditions;
3372
- showContextualElement?: boolean;
3373
- }
3374
- interface IssuerListData {
3375
- paymentMethod: {
3376
- type: string;
3377
- issuer: string;
3378
- };
3379
- }
3380
-
3381
- interface CompanyDetailsSchema {
3382
- name?: string;
3383
- registrationNumber?: string;
3384
- }
3385
-
3386
- type OpenInvoiceAddressSpecification = AddressSpecifications & {
3387
- allowedCountries?: string[];
3388
- };
3389
- interface OpenInvoiceVisibility {
3390
- companyDetails?: FieldsetVisibility;
3391
- personalDetails?: FieldsetVisibility;
3392
- billingAddress?: FieldsetVisibility;
3393
- deliveryAddress?: FieldsetVisibility;
3394
- bankAccount?: FieldsetVisibility;
3395
- }
3396
- interface BankDetailsSchema {
3397
- countryCode?: string;
3398
- ibanNumber?: any;
3399
- ownerName?: string;
3400
- }
3401
- interface OpenInvoiceProps extends UIElementProps {
3402
- allowedCountries?: string[];
3403
- consentCheckboxLabel: any;
3404
- countryCode?: string;
3405
- data: {
3406
- companyDetails?: CompanyDetailsSchema;
3407
- personalDetails?: PersonalDetailsSchema;
3408
- billingAddress?: AddressData;
3409
- deliveryAddress?: AddressData;
3410
- bankAccount?: BankDetailsSchema;
3411
- };
3412
- onChange: (state: any, element?: UIElement) => void;
3413
- payButton: any;
3414
- visibility?: OpenInvoiceVisibility;
3415
- personalDetailsRequiredFields?: string[];
3416
- billingAddressRequiredFields?: string[];
3417
- billingAddressSpecification?: OpenInvoiceAddressSpecification;
3418
- deliveryAddressRequiredFields?: string[];
3419
- deliveryAddressSpecification?: OpenInvoiceAddressSpecification;
3420
- setComponentRef?: (ref: any) => void;
3421
- }
3422
- interface OpenInvoiceStateData {
3423
- companyDetails?: CompanyDetailsSchema;
3424
- personalDetails?: PersonalDetailsSchema;
3425
- billingAddress?: AddressData;
3426
- deliveryAddress?: AddressData;
3427
- bankAccount?: BankDetailsSchema;
3428
- consentCheckbox?: boolean;
3429
- }
3430
- interface OpenInvoiceStateError {
3431
- consentCheckbox?: boolean | GenericError;
3432
- companyDetails?: boolean | ValidationRuleErrorObj;
3433
- billingAddress?: boolean | ValidationRuleErrorObj;
3434
- deliveryAddress?: boolean | ValidationRuleErrorObj;
3435
- personalDetails?: boolean | ValidationRuleErrorObj;
3436
- bankAccount?: boolean | object;
3437
- }
3438
- interface OpenInvoiceStateValid {
3439
- consentCheckbox?: boolean;
3440
- companyDetails?: boolean;
3441
- billingAddress?: boolean;
3442
- deliveryAddress?: boolean;
3443
- personalDetails?: boolean;
3444
- bankAccount?: boolean;
3445
- }
3446
- interface OpenInvoiceActiveFieldsets {
3447
- companyDetails: boolean;
3448
- personalDetails: boolean;
3449
- billingAddress: boolean;
3450
- deliveryAddress: boolean;
3451
- bankAccount: boolean;
3452
- }
3453
- interface OpenInvoiceFieldsetsRefs {
3454
- companyDetails?: any;
3455
- personalDetails?: any;
3456
- billingAddress?: any;
3457
- deliveryAddress?: any;
3458
- bankAccount?: any;
3459
- }
3460
-
3461
- interface OpenInvoiceConfiguration extends Partial<OpenInvoiceProps> {
3462
- consentCheckboxLabel?: h.JSX.Element;
3463
- billingAddressRequiredFields?: string[];
3464
- billingAddressSpecification?: AddressSpecifications;
3465
- }
3466
-
3467
- interface AwaitComponentProps {
3468
- type: string;
3469
- delay?: number;
3470
- countdownTime: number;
3471
- throttleTime: number;
3472
- showCountdownTimer: boolean;
3473
- shouldRedirectAutomatically?: boolean;
3474
- throttleInterval: number;
3475
- paymentData?: string;
3476
- url?: string;
3477
- classNameModifiers?: string[];
3478
- clientKey: string;
3479
- onError: (error: AdyenCheckoutError) => void;
3480
- onComplete: (status: AdditionalDetailsData) => void;
3481
- brandLogo?: string;
3482
- messageText?: string;
3483
- awaitText: string;
3484
- onActionHandled?: (rtnObj: ActionHandledReturnObject) => void;
3485
- pollStatus?: () => Promise<RawPaymentResponse | RawPaymentStatusResponse>;
3486
- instructions?: string | (() => h.JSX.Element);
3487
- endSlot?: () => h.JSX.Element;
3488
- showAmount?: boolean;
3489
- }
3490
- interface AwaitConfiguration extends UIElementProps {
3491
- paymentData?: string;
3492
- paymentMethoType?: string;
3493
- type?: string;
3494
- url?: string;
3495
- }
3496
-
3497
- interface RiskModuleOptions {
3498
- enabled: boolean;
3499
- onComplete?: (data: any) => void;
3500
- onError?: (error: any) => void;
3501
- node?: string;
3502
- }
3503
- interface RiskModuleProps extends BaseElementProps {
3504
- risk: RiskModuleOptions;
3505
- loadingContext: string;
3506
- }
3507
- declare class RiskElement extends BaseElement<RiskModuleProps> {
3508
- static readonly type = "risk";
3509
- static readonly defaultProps: {
3510
- risk: {
3511
- enabled: boolean;
3512
- onComplete: () => void;
3513
- onError: () => void;
3514
- node: string;
3515
- };
3516
- };
3517
- private nodeRiskContainer;
3518
- constructor(checkout: ICore, props?: any);
3519
- formatProps(props: any): any;
3520
- onComplete: (result: any) => void;
3521
- onError: (error: any) => void;
3522
- get isValid(): any;
3523
- get data(): any;
3524
- get enabled(): boolean;
3525
- cleanUp: () => void;
3526
- componentWillUnmount(): void;
3527
- render(): h.JSX.Element;
3528
- }
3529
-
3530
- interface DisclaimerMsgObject {
3531
- message: string;
3532
- linkText: string;
3533
- link: string;
3534
- }
3535
-
3536
- interface SFError {
3537
- isValid?: boolean;
3538
- errorMessage?: string;
3539
- errorI18n?: string;
3540
- error: string;
3541
- rootNode: HTMLElement;
3542
- detectedBrands?: string[];
3543
- }
3544
- interface SFStateErrorObj {
3545
- [key: string]: SFError;
3546
- }
3547
-
3548
- interface ValidationRuleErrorObj {
3549
- [key: string]: ValidationRuleResult;
3550
- }
3551
- interface AriaAttributes {
3552
- 'aria-relevant'?: 'additions' | 'all' | 'removals' | 'text' | 'additions text';
3553
- 'aria-live'?: 'off' | 'polite' | 'assertive';
3554
- 'aria-atomic'?: 'true' | 'false';
3555
- }
3556
- interface SRPanelProps extends BaseElementProps {
3557
- enabled?: boolean;
3558
- node?: string;
3559
- showPanel?: boolean;
3560
- moveFocus?: boolean;
3561
- id?: string;
3562
- ariaAttributes?: AriaAttributes;
3563
- }
3564
- type SRPanelConfig = Pick<SRPanelProps, 'enabled' | 'node' | 'showPanel' | 'moveFocus' | 'id' | 'ariaAttributes'>;
3565
- interface GenericError {
3566
- isValid: boolean;
3567
- errorMessage: string;
3568
- error: string;
3569
- }
3570
-
3571
- /**
3572
- * A panel meant to hold messages that will be read out by ScreenReaders on an aria-live="polite" basis
3573
- * Expects a string or string array of message to add to the panel to be read out
3574
- * For testing purposes can be made visible
3575
- */
3576
- declare class SRPanel extends BaseElement<SRPanelProps> {
3577
- static readonly type = "srPanel";
3578
- static readonly defaultProps: Partial<SRPanelProps>;
3579
- private readonly srPanelContainer;
3580
- private readonly id;
3581
- private readonly showPanel;
3582
- private readonly _enabled;
3583
- private readonly _moveFocus;
3584
- private componentRef;
3585
- constructor(checkout: ICore, props?: SRPanelProps);
3586
- setComponentRef: (ref: any) => void;
3587
- get enabled(): boolean;
3588
- get moveFocus(): boolean;
3589
- setAriaProps(ariaAttributes: AriaAttributes): void;
3590
- setMessages: (messages: string[] | string) => void;
3591
- render(): h.JSX.Element;
3592
- }
3593
-
3594
- interface BaseElementProps {
3595
- order?: Order;
3596
- modules?: {
3597
- srPanel?: SRPanel;
3598
- analytics?: IAnalytics;
3599
- resources?: Resources;
3600
- risk?: RiskElement;
3601
- };
3602
- /**
3603
- * Identifies if the Element is the DropIn element
3604
- */
3605
- isDropin?: boolean;
3606
- }
3607
- interface IBaseElement {
3608
- data: object;
3609
- state: any;
3610
- props: any;
3611
- _id: string;
3612
- _component: any;
3613
- render(): ComponentChild | Error;
3614
- mount(domNode: HTMLElement | string): IBaseElement;
3615
- update(props: any): IBaseElement;
3616
- unmount(): IBaseElement;
3617
- remove(): void;
3618
- activate(): void;
3619
- }
3620
-
3621
- type CoreCallbacks = Pick<CoreConfiguration, 'beforeRedirect' | 'beforeSubmit' | 'onSubmit' | 'onAdditionalDetails' | 'onPaymentFailed' | 'onPaymentCompleted' | 'onOrderUpdated' | 'onPaymentMethodsRequest' | 'onChange' | 'onActionHandled' | 'onError' | 'onEnterKeyPressed'>;
3622
- type StatusFromAction = 'redirect' | 'loading' | 'custom';
3623
- type UIElementProps = {
3624
- paymentMethodId?: string;
3625
- storedPaymentMethodId?: string;
3626
- } & BaseElementProps & CoreCallbacks & {
3627
- environment?: string;
3628
- session?: Session;
3629
- onComplete?: (state: any, element: UIElement) => void;
3630
- isInstantPayment?: boolean;
3631
- /**
3632
- * Flags if the element is Stored payment method
3633
- * @internal
3634
- */
3635
- isStoredPaymentMethod?: boolean;
3636
- /**
3637
- * Flag if the element is Stored payment method.
3638
- * Perhaps can be deprecated and we use the one above?
3639
- * @internal
3640
- */
3641
- oneClick?: boolean;
3642
- /**
3643
- * Stored payment method id
3644
- * @internal
3645
- */
3646
- storedPaymentMethodId?: string;
3647
- /**
3648
- * Status set when creating the Component from action
3649
- * @internal
3650
- */
3651
- statusType?: StatusFromAction;
3652
- type?: string;
3653
- name?: string;
3654
- icon?: string;
3655
- amount?: PaymentAmount;
3656
- secondaryAmount?: PaymentAmount;
3657
- /**
3658
- * Show/Hide pay button
3659
- * @defaultValue true
3660
- */
3661
- showPayButton?: boolean;
3662
- /** @internal */
3663
- payButton?: (options: PayButtonProps) => h.JSX.Element;
3664
- /** @internal */
3665
- loadingContext?: string;
3666
- /** @internal */
3667
- createFromAction?: (action: PaymentAction, props: object) => UIElement;
3668
- /** @internal */
3669
- clientKey?: string;
3670
- /** @internal */
3671
- elementRef?: any;
3672
- /** @internal */
3673
- i18n?: Language;
3674
- /**
3675
- * The shopper’s issuer account label. It can be available for stored payment method
3676
- * @internal
3677
- */
3678
- label?: string;
3679
- /**
3680
- * Returned after the payments call, when an action is returned. It represents the payment method tx variant
3681
- * that was used for the payment
3682
- * @internal
3683
- */
3684
- paymentMethodType?: string;
3685
- /**
3686
- * Reference to the action object found in a /payments response. This, in most cases, is passed on to the onActionHandled callback
3687
- */
3688
- originalAction?: PaymentAction;
3689
- };
3690
- type UIElementStatus = 'ready' | 'loading' | 'error' | 'success';
3691
- interface ComponentMethodsRef {
3692
- showValidation?: () => void;
3693
- setStatus?(status: UIElementStatus): void;
3694
- }
3695
-
3696
- declare class OpenInvoiceContainer extends UIElement<OpenInvoiceConfiguration> {
3697
- protected static readonly defaultProps: Partial<OpenInvoiceConfiguration>;
3698
- /**
3699
- * Returns whether the component state is valid or not
3700
- */
3701
- get isValid(): boolean;
3702
- /**
3703
- * Formats props on construction time
3704
- */
3705
- formatProps(props: any): any;
3706
- /**
3707
- * Formats the component data output
3708
- */
3709
- formatData(): any;
3710
- protected componentToRender(): h.JSX.Element;
3711
- }
3712
-
3713
- declare class AfterPay extends OpenInvoiceContainer {
3714
- static readonly type = TxVariants.afterpay_default;
3715
- static readonly txVariants: TxVariants[];
3716
- formatProps(props: OpenInvoiceConfiguration): any;
3717
- }
3718
-
3719
- declare class AfterPayB2B extends OpenInvoiceContainer {
3720
- static readonly type = TxVariants.afterpay_b2b;
3721
- protected static readonly defaultProps: Partial<OpenInvoiceConfiguration>;
3722
- formatProps(props: OpenInvoiceConfiguration): any;
3723
- }
3724
-
3725
- declare class ANCVElement extends UIElement<ANCVConfiguration> {
3726
- static readonly type = "ancv";
3727
- /**
3728
- * Formats the component data output
3729
- */
3730
- formatData(): {
3731
- paymentMethod: {
3732
- type: string;
3733
- beneficiaryId: any;
3734
- };
3735
- };
3736
- private onOrderRequest;
3737
- /**
3738
- * Check if order exists, if it does Resolve.
3739
- * Otherwise createOrder and then Resolve.
3740
- */
3741
- createOrder: () => Promise<void>;
3742
- submit(): boolean;
3743
- protected payButton: (props: PayButtonProps) => h.JSX.Element;
3744
- get isValid(): boolean;
3745
- get displayName(): string;
3746
- protected componentToRender(): h.JSX.Element;
3747
- }
3748
-
3749
- declare class ApplePayElement extends UIElement<ApplePayConfiguration> {
3750
- static readonly type = TxVariants.applepay;
3751
- protected static readonly defaultProps: ApplePayConfiguration;
3752
- private sdkLoader;
3753
- private applePayVersionNumber;
3754
- constructor(checkout: ICore, props?: ApplePayConfiguration);
3755
- /**
3756
- * Formats the component props
3757
- */
3758
- protected formatProps(props: ApplePayConfiguration): ApplePayConfiguration;
3759
- /**
3760
- * Formats the component data output
3761
- */
3762
- protected formatData(): ApplePayElementData;
3763
- protected beforeRender(configSetByMerchant?: ApplePayConfiguration): void;
3764
- submit: () => void;
3765
- get isValid(): boolean;
3766
- /**
3767
- * This API is only intended for upstreaming or defaulting to Apple Pay, all other scenarios should continue to
3768
- * use canMakePayments(). For Safari browsers, this API will indicate whether there is a card available to make
3769
- * payments. For third-party browsers a new status of paymentCredentialStatusUnknown will be returned. This does
3770
- * not mean there are no cards available, it means the status cannot be determined and as such defaulting
3771
- * and upstreaming should still be considered.
3772
- *
3773
- * {@link https://developer.apple.com/documentation/applepayontheweb/applepaysession/4440085-applepaycapabilities}
3774
- * @param merchantIdentifier
3775
- */
3776
- applePayCapabilities(merchantIdentifier?: string): Promise<ApplePayJS.PaymentCredentialStatusResponse>;
3777
- /**
3778
- * Determines if Apple Pay component can be displayed or not
3779
- */
3780
- isAvailable(): Promise<void>;
3781
- /**
3782
- * Sets the Apple Pay version available for the shopper.
3783
- * This code needs to be executed once the Apple Pay SDK is fully loaded
3784
- * @private
3785
- */
3786
- private defineApplePayVersionNumber;
3787
- /**
3788
- * Sets the configuration/callbacks that pertain to the Apple Pay code overlay/modal.
3789
- * @private
3790
- */
3791
- private configureApplePayWebOptions;
3792
- private startSession;
3793
- /**
3794
- * Call the 'onAuthorized' callback if available.
3795
- * Must be resolved/reject for the payment flow to continue
3796
- *
3797
- * @private
3798
- */
3799
- private handleAuthorization;
3800
- /**
3801
- * Verify if the 'onOrderTrackingRequest' is provided. If so, triggers the callback expecting an
3802
- * Apple Pay order details back
3803
- *
3804
- * @private
3805
- */
3806
- private collectOrderTrackingDetailsIfNeeded;
3807
- private validateMerchant;
3808
- protected componentToRender(): h.JSX.Element;
3809
- }
3810
-
3811
- declare class Atome extends OpenInvoiceContainer {
3812
- static readonly type = TxVariants.atome;
3813
- formatProps(props: OpenInvoiceConfiguration): any;
3814
- }
3815
-
3816
- declare class IssuerListContainer<TProps extends IssuerListConfiguration = IssuerListConfiguration, TData = IssuerListData> extends UIElement<TProps> {
3817
- protected static readonly defaultProps: {
3818
- showImage: boolean;
3819
- issuers: any[];
3820
- highlightedIssuers: any[];
3821
- loadingContext: string;
3822
- showPaymentMethodItemImages: boolean;
3823
- };
3824
- constructor(checkout: ICore, props?: TProps);
3825
- formatProps(props: any): any;
3826
- /**
3827
- * Formats the component data output
3828
- */
3829
- formatData(): TData;
3830
- /**
3831
- * Returns whether the component state is valid or not
3832
- */
3833
- get isValid(): boolean;
3834
- /**
3835
- * Returns brands array (similar to card) depending on showPaymentMethodItemImages
3836
- * This is used to show the brands in the PaymentMethodItem
3837
- * Requires brands icons to be loaded in the payment method
2445
+ * Returns brands array (similar to card) depending on showPaymentMethodItemImages
2446
+ * This is used to show the brands in the PaymentMethodItem
2447
+ * Requires brands icons to be loaded in the payment method
3838
2448
  */
3839
2449
  get brands(): PaymentMethodBrand[];
3840
2450
  protected componentToRender(): h.JSX.Element;
@@ -3842,12 +2452,136 @@ declare class IssuerListContainer<TProps extends IssuerListConfiguration = Issue
3842
2452
 
3843
2453
  declare class BillDeskOnlineElement extends IssuerListContainer {
3844
2454
  static readonly type = TxVariants.billdesk_online;
3845
- formatProps(props: any): any;
2455
+ formatProps(props: any): {
2456
+ showImage: boolean;
2457
+ placeholder?: string;
2458
+ issuers?: IssuerItem[];
2459
+ highlightedIssuers?: string[];
2460
+ showPaymentMethodItemImages?: boolean;
2461
+ termsAndConditions?: TermsAndConditions;
2462
+ showContextualElement?: boolean;
2463
+ paymentMethodId?: string;
2464
+ storedPaymentMethodId?: string;
2465
+ order?: Order;
2466
+ modules?: {
2467
+ srPanel?: SRPanel;
2468
+ analytics?: IAnalytics;
2469
+ resources?: Resources;
2470
+ risk?: RiskElement;
2471
+ };
2472
+ isDropin?: boolean;
2473
+ donation?: DonationOptions;
2474
+ onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
2475
+ onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
2476
+ beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
2477
+ url: string;
2478
+ method: string;
2479
+ data?: any;
2480
+ }) => void;
2481
+ beforeSubmit?: (state: PaymentData, component: UIElement, actions: BeforeSubmitActions) => Promise<void> | void;
2482
+ onSubmit?: (state: SubmitData, component: UIElement, actions: SubmitActions) => void;
2483
+ onActionHandled?: (actionHandled: ActionHandledReturnObject) => void;
2484
+ onAdditionalDetails?: (state: AdditionalDetailsData, component: UIElement, actions: AdditionalDetailsActions) => void;
2485
+ onChange?: (state: OnChangeData, component: UIElement) => void;
2486
+ onEnterKeyPressed?: (activeElement: Element, component: UIElement) => void;
2487
+ onError?: (error: AdyenCheckoutError, component?: UIElement) => void;
2488
+ onOrderUpdated?: (data: {
2489
+ order: Order;
2490
+ }) => void;
2491
+ onPaymentMethodsRequest?: (data: PaymentMethodsRequestData, actions: {
2492
+ resolve: (response: PaymentMethodsResponse) => void;
2493
+ reject: () => void;
2494
+ }) => void;
2495
+ environment?: string;
2496
+ session?: Session;
2497
+ onComplete?: (state: any, element: UIElement) => void;
2498
+ isInstantPayment?: boolean;
2499
+ isStoredPaymentMethod?: boolean;
2500
+ oneClick?: boolean;
2501
+ statusType?: StatusFromAction;
2502
+ type?: string;
2503
+ name?: string;
2504
+ icon?: string;
2505
+ amount?: PaymentAmount;
2506
+ secondaryAmount?: PaymentAmount;
2507
+ showPayButton?: boolean;
2508
+ payButton?: (options: PayButtonProps) => preact.JSX.Element;
2509
+ loadingContext?: string;
2510
+ createFromAction?: (action: PaymentAction, props: object) => UIElement;
2511
+ clientKey?: string;
2512
+ elementRef?: any;
2513
+ i18n?: Language;
2514
+ label?: string;
2515
+ paymentMethodType?: string;
2516
+ originalAction?: PaymentAction;
2517
+ };
3846
2518
  }
3847
2519
 
3848
2520
  declare class BillDeskWalletElement extends IssuerListContainer {
3849
2521
  static readonly type = TxVariants.billdesk_wallet;
3850
- formatProps(props: any): any;
2522
+ formatProps(props: any): {
2523
+ showImage: boolean;
2524
+ placeholder?: string;
2525
+ issuers?: IssuerItem[];
2526
+ highlightedIssuers?: string[];
2527
+ showPaymentMethodItemImages?: boolean;
2528
+ termsAndConditions?: TermsAndConditions;
2529
+ showContextualElement?: boolean;
2530
+ paymentMethodId?: string;
2531
+ storedPaymentMethodId?: string;
2532
+ order?: Order;
2533
+ modules?: {
2534
+ srPanel?: SRPanel;
2535
+ analytics?: IAnalytics;
2536
+ resources?: Resources;
2537
+ risk?: RiskElement;
2538
+ };
2539
+ isDropin?: boolean;
2540
+ donation?: DonationOptions;
2541
+ onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
2542
+ onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
2543
+ beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
2544
+ url: string;
2545
+ method: string;
2546
+ data?: any;
2547
+ }) => void;
2548
+ beforeSubmit?: (state: PaymentData, component: UIElement, actions: BeforeSubmitActions) => Promise<void> | void;
2549
+ onSubmit?: (state: SubmitData, component: UIElement, actions: SubmitActions) => void;
2550
+ onActionHandled?: (actionHandled: ActionHandledReturnObject) => void;
2551
+ onAdditionalDetails?: (state: AdditionalDetailsData, component: UIElement, actions: AdditionalDetailsActions) => void;
2552
+ onChange?: (state: OnChangeData, component: UIElement) => void;
2553
+ onEnterKeyPressed?: (activeElement: Element, component: UIElement) => void;
2554
+ onError?: (error: AdyenCheckoutError, component?: UIElement) => void;
2555
+ onOrderUpdated?: (data: {
2556
+ order: Order;
2557
+ }) => void;
2558
+ onPaymentMethodsRequest?: (data: PaymentMethodsRequestData, actions: {
2559
+ resolve: (response: PaymentMethodsResponse) => void;
2560
+ reject: () => void;
2561
+ }) => void;
2562
+ environment?: string;
2563
+ session?: Session;
2564
+ onComplete?: (state: any, element: UIElement) => void;
2565
+ isInstantPayment?: boolean;
2566
+ isStoredPaymentMethod?: boolean;
2567
+ oneClick?: boolean;
2568
+ statusType?: StatusFromAction;
2569
+ type?: string;
2570
+ name?: string;
2571
+ icon?: string;
2572
+ amount?: PaymentAmount;
2573
+ secondaryAmount?: PaymentAmount;
2574
+ showPayButton?: boolean;
2575
+ payButton?: (options: PayButtonProps) => preact.JSX.Element;
2576
+ loadingContext?: string;
2577
+ createFromAction?: (action: PaymentAction, props: object) => UIElement;
2578
+ clientKey?: string;
2579
+ elementRef?: any;
2580
+ i18n?: Language;
2581
+ label?: string;
2582
+ paymentMethodType?: string;
2583
+ originalAction?: PaymentAction;
2584
+ };
3851
2585
  }
3852
2586
 
3853
2587
  declare class CashAppPay extends UIElement<CashAppPayConfiguration> {
@@ -3889,6 +2623,7 @@ declare class CashAppPay extends UIElement<CashAppPayConfiguration> {
3889
2623
  risk?: RiskElement;
3890
2624
  };
3891
2625
  isDropin?: boolean;
2626
+ donation?: DonationOptions;
3892
2627
  onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
3893
2628
  onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
3894
2629
  beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
@@ -3966,6 +2701,165 @@ declare class ClickToPayElement extends UIElement<ClickToPayConfiguration> {
3966
2701
  risk?: RiskElement;
3967
2702
  };
3968
2703
  isDropin?: boolean;
2704
+ donation?: DonationOptions;
2705
+ onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
2706
+ onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
2707
+ beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
2708
+ url: string;
2709
+ method: string;
2710
+ data?: any;
2711
+ }) => void;
2712
+ beforeSubmit?: (state: PaymentData, component: UIElement, actions: BeforeSubmitActions) => Promise<void> | void;
2713
+ onSubmit?: (state: SubmitData, component: UIElement, actions: SubmitActions) => void;
2714
+ onActionHandled?: (actionHandled: ActionHandledReturnObject) => void;
2715
+ onAdditionalDetails?: (state: AdditionalDetailsData, component: UIElement, actions: AdditionalDetailsActions) => void;
2716
+ onChange?: (state: OnChangeData, component: UIElement) => void;
2717
+ onEnterKeyPressed?: (activeElement: Element, component: UIElement) => void;
2718
+ onError?: (error: AdyenCheckoutError, component?: UIElement) => void;
2719
+ onOrderUpdated?: (data: {
2720
+ order: Order;
2721
+ }) => void;
2722
+ onPaymentMethodsRequest?: (data: PaymentMethodsRequestData, actions: {
2723
+ resolve: (response: PaymentMethodsResponse) => void;
2724
+ reject: () => void;
2725
+ }) => void;
2726
+ environment?: string;
2727
+ session?: Session;
2728
+ onComplete?: (state: any, element: UIElement) => void;
2729
+ isInstantPayment?: boolean;
2730
+ isStoredPaymentMethod?: boolean;
2731
+ oneClick?: boolean;
2732
+ statusType?: StatusFromAction;
2733
+ type?: string;
2734
+ name?: string;
2735
+ icon?: string;
2736
+ amount?: PaymentAmount;
2737
+ secondaryAmount?: PaymentAmount;
2738
+ showPayButton?: boolean;
2739
+ payButton?: (options: PayButtonProps) => h.JSX.Element;
2740
+ loadingContext?: string;
2741
+ createFromAction?: (action: PaymentAction, props: object) => UIElement;
2742
+ clientKey?: string;
2743
+ elementRef?: any;
2744
+ i18n?: Language;
2745
+ label?: string;
2746
+ paymentMethodType?: string;
2747
+ originalAction?: PaymentAction;
2748
+ merchantDisplayName?: string;
2749
+ onReady?(): void;
2750
+ onTimeout?(error: TimeoutError): void;
2751
+ configuration?: {
2752
+ mcDpaId?: string;
2753
+ mcSrcClientId?: string;
2754
+ visaSrcInitiatorId?: string;
2755
+ visaSrciDpaId?: string;
2756
+ };
2757
+ };
2758
+ /**
2759
+ * Method used to let the merchant know if the shopper have a valid CtP accoubt
2760
+ *
2761
+ * Resolves Promise if the Shopper has cookies OR has valid CtP account
2762
+ * Rejects Promise if account isn't found or if Login screen is triggered
2763
+ */
2764
+ isAvailable(): Promise<void>;
2765
+ private handleClickToPaySubmit;
2766
+ protected componentToRender(): h.JSX.Element;
2767
+ }
2768
+
2769
+ interface DisclaimerMsgObject {
2770
+ message: string;
2771
+ linkText: string;
2772
+ link: string;
2773
+ }
2774
+
2775
+ declare class BancontactElement extends CardElement {
2776
+ static readonly type: TxVariants;
2777
+ constructor(checkout: ICore, props?: CardConfiguration);
2778
+ protected static readonly defaultProps: any;
2779
+ formatData(): CardElementData;
2780
+ /**
2781
+ * Now that the Bancontact (BCMC) Card component can accept a number dual branded with Visa (which requires a CVC) it has to be handled differently
2782
+ * at creation time (no automatic removing of the CVC securedField).
2783
+ * At the same time we can't treat it as a regular 'card' component - because it needs to hide the CVC field at at startup,
2784
+ * as well as show the BCMC logo in the number field and ignore any of the internal, regEx driven, brand detection.
2785
+ */
2786
+ formatProps(props: CardConfiguration): {
2787
+ /**
2788
+ * Force type (only for the Dropin is type automatically set to 'bcmc')
2789
+ * - this will bypass the regEx brand detection that SF normally tries to carry out when the first few digits are entered in the PAN
2790
+ */
2791
+ type: TxVariants;
2792
+ brand: TxVariants;
2793
+ cvcPolicy: CVCPolicyType;
2794
+ autoFocus?: boolean;
2795
+ billingAddressAllowedCountries?: string[];
2796
+ billingAddressMode?: "full" | "partial" | "none";
2797
+ billingAddressRequired?: boolean;
2798
+ billingAddressRequiredFields?: string[];
2799
+ brands?: string[];
2800
+ brandsConfiguration?: CardBrandsConfiguration;
2801
+ challengeWindowSize?: ChallengeWindowSize;
2802
+ clickToPayConfiguration?: ClickToPayProps;
2803
+ fastlaneConfiguration?: FastlaneSignupConfiguration;
2804
+ configuration?: CardBackendConfiguration;
2805
+ countryCode?: string;
2806
+ data?: {
2807
+ holderName?: string;
2808
+ billingAddress?: Partial<AddressData>;
2809
+ };
2810
+ _disableClickToPay?: boolean;
2811
+ disableIOSArrowKeys?: boolean;
2812
+ disclaimerMessage?: DisclaimerMsgObject;
2813
+ doBinLookup?: boolean;
2814
+ enableStoreDetails?: boolean;
2815
+ expiryMonth?: string;
2816
+ exposeExpiryDate?: boolean;
2817
+ forceCompat?: boolean;
2818
+ fundingSource?: FundingSourceKeys;
2819
+ hasCVC?: boolean;
2820
+ hasHolderName?: boolean;
2821
+ holderName?: string;
2822
+ hideCVC?: boolean;
2823
+ holderNameRequired?: boolean;
2824
+ id?: string;
2825
+ installmentOptions?: InstallmentOptions;
2826
+ keypadFix?: boolean;
2827
+ lastFour?: string;
2828
+ legacyInputMode?: boolean;
2829
+ maskSecurityCode?: boolean;
2830
+ minimumExpiryDate?: string;
2831
+ name?: string;
2832
+ onAddressLookup?: OnAddressLookupType;
2833
+ onAddressSelected?: OnAddressSelectedType;
2834
+ onBinLookup?: (event: CardBinLookupData) => void;
2835
+ onBinValue?: (event: CardBinValueData) => void;
2836
+ onBlur?: (event: CardFocusData | ComponentFocusObject) => void;
2837
+ onBrand?: (event: CardBrandData) => void;
2838
+ onConfigSuccess?: (event: CardConfigSuccessData) => void;
2839
+ onAllValid?: (event: CardAllValidData) => void;
2840
+ onFieldValid?: (event: CardFieldValidData) => void;
2841
+ onFocus?: (event: CardFocusData | ComponentFocusObject) => void;
2842
+ onLoad?: (event: CardLoadData) => void;
2843
+ placeholders?: CardPlaceholders;
2844
+ positionHolderNameOnTop?: boolean;
2845
+ showBrandIcon?: boolean;
2846
+ showContextualElement?: boolean;
2847
+ showInstallmentAmounts?: boolean;
2848
+ storedPaymentMethodId?: string;
2849
+ showStoreDetailsCheckbox?: boolean;
2850
+ styles?: StylesObject;
2851
+ supportedShopperInteractions?: string[];
2852
+ trimTrailingSeparator?: boolean;
2853
+ paymentMethodId?: string;
2854
+ order?: Order;
2855
+ modules?: {
2856
+ srPanel?: SRPanel;
2857
+ analytics?: IAnalytics;
2858
+ resources?: Resources;
2859
+ risk?: RiskElement;
2860
+ };
2861
+ isDropin?: boolean;
2862
+ donation?: DonationOptions;
3969
2863
  onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
3970
2864
  onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
3971
2865
  beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
@@ -3994,13 +2888,11 @@ declare class ClickToPayElement extends UIElement<ClickToPayConfiguration> {
3994
2888
  isStoredPaymentMethod?: boolean;
3995
2889
  oneClick?: boolean;
3996
2890
  statusType?: StatusFromAction;
3997
- type?: string;
3998
- name?: string;
3999
2891
  icon?: string;
4000
2892
  amount?: PaymentAmount;
4001
2893
  secondaryAmount?: PaymentAmount;
4002
2894
  showPayButton?: boolean;
4003
- payButton?: (options: PayButtonProps) => h.JSX.Element;
2895
+ payButton?: (options: PayButtonProps) => preact.JSX.Element;
4004
2896
  loadingContext?: string;
4005
2897
  createFromAction?: (action: PaymentAction, props: object) => UIElement;
4006
2898
  clientKey?: string;
@@ -4009,299 +2901,762 @@ declare class ClickToPayElement extends UIElement<ClickToPayConfiguration> {
4009
2901
  label?: string;
4010
2902
  paymentMethodType?: string;
4011
2903
  originalAction?: PaymentAction;
4012
- merchantDisplayName?: string;
4013
- onReady?(): void;
4014
- onTimeout?(error: TimeoutError): void;
4015
- configuration?: {
4016
- mcDpaId?: string;
4017
- mcSrcClientId?: string;
4018
- visaSrcInitiatorId?: string;
4019
- visaSrciDpaId?: string;
2904
+ };
2905
+ onBrand: (event: any) => void;
2906
+ }
2907
+
2908
+ interface CampaignContentProps {
2909
+ logoUrl?: string;
2910
+ nonprofitDescription?: string;
2911
+ nonprofitName?: string;
2912
+ causeName?: string;
2913
+ nonprofitUrl?: string;
2914
+ bannerUrl?: string;
2915
+ }
2916
+
2917
+ type Donation = RoundupDonation | FixedAmountsDonation;
2918
+ type DonationType = 'roundup' | 'fixedAmounts';
2919
+ interface RoundupDonation {
2920
+ type: 'roundup';
2921
+ currency: string;
2922
+ maxRoundupAmount: number;
2923
+ }
2924
+ interface FixedAmountsDonation {
2925
+ type: 'fixedAmounts';
2926
+ currency: string;
2927
+ values: Array<number>;
2928
+ }
2929
+ interface DonationAmount {
2930
+ currency: string;
2931
+ value: number;
2932
+ }
2933
+ interface DonationPayload {
2934
+ data: {
2935
+ amount: DonationAmount;
2936
+ };
2937
+ isValid?: boolean;
2938
+ }
2939
+ interface DonationComponentProps extends CampaignContentProps {
2940
+ donation: Donation;
2941
+ /**
2942
+ * The original transaction amount.
2943
+ */
2944
+ commercialTxAmount: number;
2945
+ termsAndConditionsUrl?: string;
2946
+ causeName?: string;
2947
+ showCancelButton?: boolean;
2948
+ onDonate: (payload: DonationPayload) => void;
2949
+ onCancel?: (payload: DonationPayload) => void;
2950
+ onChange?: (payload: DonationPayload) => void;
2951
+ onAmountSelected: (payload: DonationPayload) => void;
2952
+ }
2953
+
2954
+ declare class DonationElement extends UIElement<DonationConfiguration> {
2955
+ static readonly type = TxVariants.donation;
2956
+ private readonly isInServiceMode;
2957
+ constructor(checkout: ICore, props: DonationProps);
2958
+ /**
2959
+ * Type guard to determine if props are for "service" mode.
2960
+ *
2961
+ * The "service" mode is used in the /sessions flow:
2962
+ * - if the /payments response mandates it, we consult the /sessions/donationCampaigns endpoint on behalf of the merchant, and mount any found Donation Campaigns.
2963
+ *
2964
+ * The opposite of this mode is the "direct" mode, used in the Advanced flow:
2965
+ * - the merchant makes their own call to the /donationCampaigns endpoint and provides the Donation Campaign directly to the component.
2966
+ */
2967
+ private static isServiceMode;
2968
+ static readonly defaultProps: {
2969
+ onCancel: () => void;
2970
+ onDonate: () => void;
2971
+ };
2972
+ private initialiseServiceMode;
2973
+ /**
2974
+ * Returns the component payment data ready to submit to the Checkout API
2975
+ */
2976
+ get data(): any;
2977
+ /**
2978
+ * Returns whether the component state is valid or not
2979
+ */
2980
+ get isValid(): any;
2981
+ setState(newState: any): void;
2982
+ donate(): void;
2983
+ cancel(): void;
2984
+ amountSelected(state: DonationPayload): void;
2985
+ protected componentToRender(): h.JSX.Element;
2986
+ }
2987
+
2988
+ interface RedirectConfiguration extends UIElementProps {
2989
+ type?: string;
2990
+ beforeRedirect?: (resolve: any, reject: any, url: any) => Promise<void>;
2991
+ /**
2992
+ * Specifies the URL to redirect to. Returned in the action object.
2993
+ * @internal
2994
+ */
2995
+ url?: string;
2996
+ /**
2997
+ * When the redirect URL must be accessed via POST, use this data to post to the redirect URL.
2998
+ * Returned in the action object
2999
+ * @internal
3000
+ */
3001
+ data?: {
3002
+ [key: string]: unknown;
3003
+ };
3004
+ /**
3005
+ * Specifies the HTTP method for the redirect.
3006
+ * Returned in the action object
3007
+ * @internal
3008
+ */
3009
+ method?: 'GET' | 'POST';
3010
+ }
3011
+
3012
+ declare class RedirectElement extends UIElement<RedirectConfiguration> {
3013
+ static readonly type: TxVariants;
3014
+ static readonly defaultProps: {
3015
+ type: TxVariants;
3016
+ };
3017
+ formatData(): {
3018
+ paymentMethod: {
3019
+ type: string;
4020
3020
  };
3021
+ browserInfo: BrowserInfo;
4021
3022
  };
3023
+ private handleRedirectError;
3024
+ get isRedirecting(): boolean;
3025
+ get isValid(): boolean;
3026
+ get browserInfo(): BrowserInfo;
3027
+ protected componentToRender(): h.JSX.Element;
3028
+ }
3029
+
3030
+ declare class GiropayElement extends RedirectElement {
3031
+ static readonly type: TxVariants;
3032
+ get displayName(): any;
3033
+ protected componentToRender(): h.JSX.Element;
3034
+ }
3035
+
3036
+ interface GooglePayConfiguration extends UIElementProps {
3037
+ type?: 'googlepay' | 'paywithgoogle';
3038
+ /**
3039
+ * List of brands accepted by the component. Values are configured on the Backoffice and returned in the /paymentMethodsResponse data
3040
+ * @internal
3041
+ */
3042
+ brands?: string[];
3043
+ /**
3044
+ * Used for analytics
3045
+ */
3046
+ expressPage?: 'cart' | 'minicart' | 'pdp' | 'checkout';
3047
+ /**
3048
+ * Enables the GooglePay Express Flow & also used for analytics
3049
+ * @defaultValue false
3050
+ */
3051
+ isExpress?: boolean;
3052
+ /**
3053
+ * Defines the size of the challenge Component
3054
+ *
3055
+ * 01: [250px, 400px]
3056
+ * 02: [390px, 400px]
3057
+ * 03: [500px, 600px]
3058
+ * 04: [600px, 400px]
3059
+ * 05: [100%, 100%]
3060
+ *
3061
+ * @defaultValue '02'
3062
+ */
3063
+ challengeWindowSize?: ChallengeWindowSize;
3064
+ /**
3065
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#IsReadyToPayRequest
3066
+ * @defaultValue false
3067
+ */
3068
+ existingPaymentMethodRequired?: boolean;
3069
+ /**
3070
+ * The status of the total price
3071
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo
3072
+ */
3073
+ totalPriceStatus?: google.payments.api.TotalPriceStatus;
3074
+ /**
3075
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo
3076
+ */
3077
+ countryCode?: string;
3078
+ allowedAuthMethods?: google.payments.api.CardAuthMethod[];
3079
+ allowedCardNetworks?: google.payments.api.CardNetwork[];
3080
+ /**
3081
+ * Set to true to request assuranceDetails. This object provides information
3082
+ * about the validation performed on the returned payment data.
3083
+ *
3084
+ * @defaultValue false
3085
+ */
3086
+ assuranceDetailsRequired?: boolean;
3087
+ /**
3088
+ * Set to false if you don't support credit cards.
3089
+ * @defaultValue true
3090
+ */
3091
+ allowCreditCards?: boolean;
3092
+ /**
3093
+ * Set to false if you don't support prepaid cards.
3094
+ * @defaultValue true
3095
+ */
3096
+ allowPrepaidCards?: boolean;
3097
+ /**
3098
+ * Issuer country allowlist that contains ISO 3166-1 alpha-2 country codes.
3099
+ * When this allowlist is set, users can only choose payment methods issued in the specified countries.
3100
+ *
3101
+ * @remarks
3102
+ * Note: allowedIssuerCountryCodes and blockedIssuerCountryCodes are mutually exclusive, so only one should be set at a time.
3103
+ *
3104
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#CardParameters
3105
+ * @example ['US', 'CA', 'GB']
3106
+ */
3107
+ allowedIssuerCountryCodes?: string[];
4022
3108
  /**
4023
- * Method used to let the merchant know if the shopper have a valid CtP accoubt
3109
+ * Issuer country blocklist that contains ISO 3166-1 alpha-2 country codes.
3110
+ * When this blocklist is set, users are restricted from choosing payment methods issued in the specified countries.
4024
3111
  *
4025
- * Resolves Promise if the Shopper has cookies OR has valid CtP account
4026
- * Rejects Promise if account isn't found or if Login screen is triggered
3112
+ * @remarks
3113
+ * Note: allowedIssuerCountryCodes and blockedIssuerCountryCodes are mutually exclusive, so only one should be set at a time.
3114
+ *
3115
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#CardParameters
3116
+ * @example ['CN', 'RU']
4027
3117
  */
4028
- isAvailable(): Promise<void>;
4029
- private handleClickToPaySubmit;
4030
- protected componentToRender(): h.JSX.Element;
4031
- }
4032
-
4033
- declare class BancontactElement extends CardElement {
4034
- static readonly type: TxVariants;
4035
- constructor(checkout: ICore, props?: CardConfiguration);
4036
- protected static readonly defaultProps: any;
4037
- formatData(): CardElementData;
3118
+ blockedIssuerCountryCodes?: string[];
4038
3119
  /**
4039
- * Now that the Bancontact (BCMC) Card component can accept a number dual branded with Visa (which requires a CVC) it has to be handled differently
4040
- * at creation time (no automatic removing of the CVC securedField).
4041
- * At the same time we can't treat it as a regular 'card' component - because it needs to hide the CVC field at at startup,
4042
- * as well as show the BCMC logo in the number field and ignore any of the internal, regEx driven, brand detection.
3120
+ * Set to true if you require a billing address
3121
+ *
3122
+ * @remarks
3123
+ * A billing address should only be requested if it's required to process the transaction.
3124
+ *
3125
+ * @defaultValue false
4043
3126
  */
4044
- formatProps(props: CardConfiguration): {
3127
+ billingAddressRequired?: boolean;
3128
+ /**
3129
+ * The expected fields returned if billingAddressRequired is set to true.
3130
+ */
3131
+ billingAddressParameters?: google.payments.api.BillingAddressParameters;
3132
+ /**
3133
+ * Set to true to request an email address.
3134
+ * @defaultValue false
3135
+ */
3136
+ emailRequired?: boolean;
3137
+ /**
3138
+ * Set to true to request a full shipping address.
3139
+ * @defaultValue false
3140
+ */
3141
+ shippingAddressRequired?: boolean;
3142
+ /**
3143
+ * If shippingAddressRequired is set to true, specify shipping address restrictions. This object is used to set shipping restrictions.
3144
+ *
3145
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#ShippingAddressParameters
3146
+ */
3147
+ shippingAddressParameters?: google.payments.api.ShippingAddressParameters;
3148
+ /**
3149
+ * Set to true when the SHIPPING_OPTION callback intent is used. This field is required if you implement support
3150
+ * for Authorize Payments or Dynamic Price Updates.
3151
+ *
3152
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#ShippingOptionParameters
3153
+ */
3154
+ shippingOptionRequired?: boolean;
3155
+ /**
3156
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#ShippingOptionParameters
3157
+ */
3158
+ shippingOptionParameters?: google.payments.api.ShippingOptionParameters;
3159
+ /**
3160
+ * Specifies the following callback intents for PaymentDataCallbacks
3161
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataCallbacks
3162
+ */
3163
+ callbackIntents?: google.payments.api.CallbackIntent[];
3164
+ /**
3165
+ * Disclaimer: 'onPaymentAuthorized' is not exposed as we are using our own method internally to
3166
+ * handle the authorization part
3167
+ *
3168
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataCallbacks
3169
+ */
3170
+ paymentDataCallbacks?: Pick<google.payments.api.PaymentDataCallbacks, 'onPaymentDataChanged'>;
3171
+ /**
3172
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo
3173
+ */
3174
+ transactionInfo?: Partial<google.payments.api.TransactionInfo>;
3175
+ /**
3176
+ * Google button color
3177
+ * @default default
3178
+ */
3179
+ buttonColor?: google.payments.api.ButtonColor;
3180
+ /**
3181
+ * Changes the button UI label
3182
+ * @default buy
3183
+ */
3184
+ buttonType?: google.payments.api.ButtonType;
3185
+ /**
3186
+ * Decides if the button takes the whole space or use preset from Google
3187
+ * @default fill
3188
+ */
3189
+ buttonSizeMode?: google.payments.api.ButtonSizeMode;
3190
+ buttonRootNode?: HTMLDocument | ShadowRoot;
3191
+ buttonLocale?: string;
3192
+ buttonRadius?: number;
3193
+ /**
3194
+ * Called when the shopper clicks the Google Pay button. Call resolve() or reject() to continue or stop the payment flow.
3195
+ *
3196
+ * @param resolve - Display the Google payment sheet
3197
+ * @param reject - Don't display the Google payment sheet
3198
+ * @returns
3199
+ */
3200
+ onClick?: (resolve: () => void, reject: () => void) => void;
3201
+ /**
3202
+ * Callback called when GooglePay authorizes the payment.
3203
+ * Must be resolved/rejected with the action object.
3204
+ */
3205
+ onAuthorized?: (data: {
3206
+ authorizedEvent: google.payments.api.PaymentData;
3207
+ billingAddress?: Partial<AddressData>;
3208
+ deliveryAddress?: Partial<AddressData>;
3209
+ }, actions: {
3210
+ resolve: () => void;
3211
+ reject: (error?: google.payments.api.PaymentDataError | string) => void;
3212
+ }) => void;
3213
+ configuration?: {
4045
3214
  /**
4046
- * Force type (only for the Dropin is type automatically set to 'bcmc')
4047
- * - this will bypass the regEx brand detection that SF normally tries to carry out when the first few digits are entered in the PAN
3215
+ * Adyen's merchant account name
3216
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#gateway
4048
3217
  */
4049
- type: TxVariants;
4050
- brand: TxVariants;
4051
- cvcPolicy: CVCPolicyType;
4052
- autoFocus?: boolean;
4053
- billingAddressAllowedCountries?: string[];
4054
- billingAddressMode?: "full" | "partial" | "none";
4055
- billingAddressRequired?: boolean;
4056
- billingAddressRequiredFields?: string[];
4057
- brands?: string[];
4058
- brandsConfiguration?: CardBrandsConfiguration;
4059
- challengeWindowSize?: ChallengeWindowSize;
4060
- clickToPayConfiguration?: ClickToPayProps;
4061
- fastlaneConfiguration?: FastlaneSignupConfiguration;
4062
- configuration?: CardBackendConfiguration;
4063
- countryCode?: string;
4064
- data?: {
4065
- holderName?: string;
4066
- billingAddress?: Partial<AddressData>;
4067
- };
4068
- _disableClickToPay?: boolean;
4069
- disableIOSArrowKeys?: boolean;
4070
- disclaimerMessage?: DisclaimerMsgObject;
4071
- doBinLookup?: boolean;
4072
- enableStoreDetails?: boolean;
4073
- expiryMonth?: string;
4074
- exposeExpiryDate?: boolean;
4075
- forceCompat?: boolean;
4076
- fundingSource?: FundingSourceKeys;
4077
- hasCVC?: boolean;
4078
- hasHolderName?: boolean;
4079
- holderName?: string;
4080
- hideCVC?: boolean;
4081
- holderNameRequired?: boolean;
4082
- id?: string;
4083
- installmentOptions?: InstallmentOptions;
4084
- keypadFix?: boolean;
4085
- lastFour?: string;
4086
- legacyInputMode?: boolean;
4087
- maskSecurityCode?: boolean;
4088
- minimumExpiryDate?: string;
4089
- name?: string;
4090
- onAddressLookup?: OnAddressLookupType;
4091
- onAddressSelected?: OnAddressSelectedType;
4092
- onBinLookup?: (event: CardBinLookupData) => void;
4093
- onBinValue?: (event: CardBinValueData) => void;
4094
- onBlur?: (event: CardFocusData | ComponentFocusObject) => void;
4095
- onBrand?: (event: CardBrandData) => void;
4096
- onConfigSuccess?: (event: CardConfigSuccessData) => void;
4097
- onAllValid?: (event: CardAllValidData) => void;
4098
- onFieldValid?: (event: CardFieldValidData) => void;
4099
- onFocus?: (event: CardFocusData | ComponentFocusObject) => void;
4100
- onLoad?: (event: CardLoadData) => void;
4101
- placeholders?: CardPlaceholders;
4102
- positionHolderNameOnTop?: boolean;
4103
- showBrandIcon?: boolean;
4104
- showContextualElement?: boolean;
4105
- showInstallmentAmounts?: boolean;
4106
- storedPaymentMethodId?: string;
4107
- showStoreDetailsCheckbox?: boolean;
4108
- styles?: StylesObject;
4109
- supportedShopperInteractions?: string[];
4110
- trimTrailingSeparator?: boolean;
4111
- paymentMethodId?: string;
4112
- order?: Order;
4113
- modules?: {
4114
- srPanel?: SRPanel;
4115
- analytics?: IAnalytics;
4116
- resources?: Resources;
4117
- risk?: RiskElement;
4118
- };
4119
- isDropin?: boolean;
4120
- onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
4121
- onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
4122
- beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
4123
- url: string;
4124
- method: string;
4125
- data?: any;
4126
- }) => void;
4127
- beforeSubmit?: (state: PaymentData, component: UIElement, actions: BeforeSubmitActions) => Promise<void> | void;
4128
- onSubmit?: (state: SubmitData, component: UIElement, actions: SubmitActions) => void;
4129
- onActionHandled?: (actionHandled: ActionHandledReturnObject) => void;
4130
- onAdditionalDetails?: (state: AdditionalDetailsData, component: UIElement, actions: AdditionalDetailsActions) => void;
4131
- onChange?: (state: OnChangeData, component: UIElement) => void;
4132
- onEnterKeyPressed?: (activeElement: Element, component: UIElement) => void;
4133
- onError?: (error: AdyenCheckoutError, component?: UIElement) => void;
4134
- onOrderUpdated?: (data: {
4135
- order: Order;
4136
- }) => void;
4137
- onPaymentMethodsRequest?: (data: PaymentMethodsRequestData, actions: {
4138
- resolve: (response: PaymentMethodsResponse) => void;
4139
- reject: () => void;
4140
- }) => void;
4141
- environment?: string;
4142
- session?: Session;
4143
- onComplete?: (state: any, element: UIElement) => void;
4144
- isInstantPayment?: boolean;
4145
- isStoredPaymentMethod?: boolean;
4146
- oneClick?: boolean;
4147
- statusType?: StatusFromAction;
4148
- icon?: string;
4149
- amount?: PaymentAmount;
4150
- secondaryAmount?: PaymentAmount;
4151
- showPayButton?: boolean;
4152
- payButton?: (options: PayButtonProps) => preact.JSX.Element;
4153
- loadingContext?: string;
4154
- createFromAction?: (action: PaymentAction, props: object) => UIElement;
4155
- clientKey?: string;
4156
- elementRef?: any;
4157
- i18n?: Language;
4158
- label?: string;
4159
- paymentMethodType?: string;
4160
- originalAction?: PaymentAction;
3218
+ gatewayMerchantId: string;
3219
+ /**
3220
+ * A Google merchant identifier issued after registration with the {@link https://pay.google.com/business/console | Google Pay Business Console}.
3221
+ * Required when PaymentsClient is initialized with an environment property of PRODUCTION.
3222
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#MerchantInfo
3223
+ */
3224
+ merchantId?: string;
3225
+ /**
3226
+ * Merchant name is rendered in the payment sheet.
3227
+ * @see https://developers.google.com/pay/api/web/reference/request-objects#MerchantInfo
3228
+ */
3229
+ merchantName?: string;
3230
+ /**
3231
+ * Merchant fully qualified domain name.
3232
+ */
3233
+ merchantOrigin?: string;
3234
+ /**
3235
+ * Google JWT solution for platforms
3236
+ * To request Google Pay credentials, you can enable platforms to send requests that are authenticated with the platform credentials. You don't need to register individual domain names to call Google Pay APIs.
3237
+ */
3238
+ authJwt?: string;
4161
3239
  };
4162
- onBrand: (event: any) => void;
3240
+ }
3241
+ interface GooglePaymentDataRequest extends google.payments.api.PaymentDataRequest {
3242
+ merchantInfo: ExtendedMerchantInfo;
3243
+ }
3244
+ interface ExtendedMerchantInfo extends google.payments.api.MerchantInfo {
3245
+ merchantOrigin?: string;
4163
3246
  }
4164
3247
 
4165
- declare class RedirectElement extends UIElement<RedirectConfiguration> {
4166
- static readonly type: TxVariants;
4167
- static readonly defaultProps: {
4168
- type: TxVariants;
4169
- };
4170
- formatData(): {
3248
+ declare class GooglePay extends UIElement<GooglePayConfiguration> {
3249
+ static readonly type = TxVariants.googlepay;
3250
+ static readonly txVariants: TxVariants[];
3251
+ static readonly defaultProps: GooglePayConfiguration;
3252
+ protected readonly googlePay: any;
3253
+ constructor(checkout: ICore, props?: GooglePayConfiguration);
3254
+ /**
3255
+ * Google Pay requires custom logic due to supporting two Tx variants that lead to the same payment method.
3256
+ * If the merchant creates a standalone Google Pay component, we need to verify if the payment method is available using both tx variants
3257
+ *
3258
+ * @param type
3259
+ * @param paymentMethodId - Unique internal payment method ID
3260
+ * @returns
3261
+ */
3262
+ protected getPaymentMethodFromPaymentMethodsResponse(type?: string, paymentMethodId?: string): RawPaymentMethod;
3263
+ protected formatProps(props: GooglePayConfiguration): GooglePayConfiguration;
3264
+ /**
3265
+ * Formats the component data output
3266
+ */
3267
+ protected formatData(): {
3268
+ deliveryAddress: any;
3269
+ billingAddress: any;
4171
3270
  paymentMethod: {
3271
+ subtype: string;
4172
3272
  type: string;
3273
+ googlePayCardNetwork: any;
3274
+ googlePayToken: any;
4173
3275
  };
4174
3276
  browserInfo: BrowserInfo;
3277
+ origin: string;
4175
3278
  };
4176
- private handleRedirectError;
4177
- get isRedirecting(): boolean;
3279
+ /**
3280
+ * Generate the 'allowedCardNetworks' value used by Google Pay
3281
+ *
3282
+ * If the 'allowedCardNetworks' is defined in the Component configuration, it will be used. Otherwise we fallback
3283
+ * to use the 'brands' returned by the backoffice. It can be that 'brands' is not returned, which in this case we
3284
+ * set default values
3285
+ *
3286
+ * @param {object} brandsConfig
3287
+ * @param brandsConfig.allowedCardNetworks - Brands set in the component config
3288
+ * @param brandsConfig.brands - Brands returned by backend
3289
+ * @private
3290
+ */
3291
+ private createAllowedCardNetworksValues;
3292
+ protected beforeRender(configSetByMerchant?: GooglePayConfiguration): void;
3293
+ /**
3294
+ * Displays the Google Pay payment sheet overlay
3295
+ */
3296
+ private showGooglePayPaymentSheet;
3297
+ submit: () => void;
3298
+ /**
3299
+ * Method called when the payment is authorized in the payment sheet
3300
+ *
3301
+ * @see https://developers.google.com/pay/api/web/reference/client#onPaymentAuthorized
3302
+ **/
3303
+ private onPaymentAuthorized;
3304
+ /**
3305
+ * Call the 'onAuthorized' callback if available.
3306
+ * Must be resolved/reject for the payment flow to continue
3307
+ */
3308
+ private handleAuthorization;
4178
3309
  get isValid(): boolean;
3310
+ /**
3311
+ * Determine a shopper's ability to return a form of payment from the Google Pay API.
3312
+ */
3313
+ isAvailable(): Promise<void>;
3314
+ /**
3315
+ * Determine a shopper's ability to return a form of payment from the Google Pay API.
3316
+ */
3317
+ isReadyToPay: () => Promise<google.payments.api.IsReadyToPayResponse>;
3318
+ /**
3319
+ * Use this method to prefetch a PaymentDataRequest configuration to improve loadPaymentData execution time on later user interaction. No value is returned.
3320
+ */
3321
+ prefetch: () => void;
4179
3322
  get browserInfo(): BrowserInfo;
3323
+ get icon(): string;
4180
3324
  protected componentToRender(): h.JSX.Element;
4181
3325
  }
4182
3326
 
4183
- declare class GiropayElement extends RedirectElement {
4184
- static readonly type: TxVariants;
4185
- get displayName(): any;
4186
- protected componentToRender(): h.JSX.Element;
3327
+ interface EcontextVoucherResultProps {
3328
+ reference?: string;
3329
+ totalAmount?: PaymentAmount;
3330
+ expiresAt?: string;
3331
+ paymentMethodType?: string;
3332
+ maskedTelephoneNumber?: string;
3333
+ instructionsUrl?: string;
3334
+ alternativeReference?: string;
3335
+ collectionInstitutionNumber?: string;
3336
+ onActionHandled?: (rtnObj: ActionHandledReturnObject) => void;
3337
+ }
3338
+ interface EcontextInputSchema {
3339
+ firstName?: string;
3340
+ lastName?: string;
3341
+ telephoneNumber?: string;
3342
+ shopperEmail?: string;
3343
+ }
3344
+ interface EcontextConfiguration extends UIElementProps {
3345
+ personalDetailsRequired?: boolean;
3346
+ data?: PersonalDetailsSchema;
3347
+ /**
3348
+ * @internal
3349
+ */
3350
+ instructionsUrl?: string;
3351
+ /**
3352
+ * @internal
3353
+ */
3354
+ reference?: string;
3355
+ /**
3356
+ * @internal
3357
+ */
3358
+ totalAmount?: PaymentAmount;
3359
+ /**
3360
+ * @internal
3361
+ */
3362
+ expiresAt?: string;
3363
+ /**
3364
+ * @internal
3365
+ */
3366
+ paymentMethodType?: string;
3367
+ /**
3368
+ * @internal
3369
+ */
3370
+ maskedTelephoneNumber?: string;
3371
+ /**
3372
+ * @internal
3373
+ */
3374
+ alternativeReference?: string;
3375
+ /**
3376
+ * @internal
3377
+ */
3378
+ collectionInstitutionNumber?: string;
4187
3379
  }
4188
3380
 
4189
- declare class GooglePay extends UIElement<GooglePayConfiguration> {
4190
- static readonly type = TxVariants.googlepay;
3381
+ declare class EcontextElement extends UIElement<EcontextConfiguration> {
3382
+ static readonly type = TxVariants.econtext;
4191
3383
  static readonly txVariants: TxVariants[];
4192
- static readonly defaultProps: GooglePayConfiguration;
4193
- protected readonly googlePay: any;
4194
- constructor(checkout: ICore, props?: GooglePayConfiguration);
3384
+ protected static readonly defaultProps: {
3385
+ personalDetailsRequired: boolean;
3386
+ };
3387
+ get isValid(): boolean;
3388
+ /**
3389
+ * Formats the component data output
3390
+ */
3391
+ formatData(): any;
3392
+ protected componentToRender(): h.JSX.Element;
3393
+ }
3394
+
3395
+ declare class FacilyPay3x extends OpenInvoiceContainer {
3396
+ static readonly type = TxVariants.facilypay_3x;
3397
+ formatProps(props: any): any;
3398
+ }
3399
+
3400
+ declare class FacilyPay4x extends OpenInvoiceContainer {
3401
+ static readonly type = TxVariants.facilypay_4x;
3402
+ formatProps(props: any): any;
3403
+ }
3404
+
3405
+ declare class FacilyPay6x extends OpenInvoiceContainer {
3406
+ static readonly type = TxVariants.facilypay_6x;
3407
+ formatProps(props: any): any;
3408
+ }
3409
+
3410
+ declare class FacilyPay10x extends OpenInvoiceContainer {
3411
+ static readonly type = TxVariants.facilypay_10x;
3412
+ formatProps(props: any): any;
3413
+ }
3414
+
3415
+ declare class FacilyPay12x extends OpenInvoiceContainer {
3416
+ static readonly type = TxVariants.facilypay_12x;
3417
+ formatProps(props: any): any;
3418
+ }
3419
+
3420
+ type PayPalOrderResponseBody = OrderResponseBody;
3421
+ type PayPalOnShippingAddressChangeData = OnShippingAddressChangeData & {
3422
+ errors: Record<string, string>;
3423
+ };
3424
+ type PayPalOnShippingOptionsChangeData = OnShippingOptionsChangeData & {
3425
+ errors: Record<string, string>;
3426
+ };
3427
+ type PayPalOnInitActions = OnInitActions;
3428
+
3429
+ interface PayPalConfiguration extends UIElementProps {
3430
+ /**
3431
+ * Configuration returned by the backend
3432
+ * @internal
3433
+ */
3434
+ configuration?: {
3435
+ /**
3436
+ * @see {@link https://developer.paypal.com/sdk/js/configuration/#merchant-id}
3437
+ */
3438
+ merchantId?: string;
3439
+ /**
3440
+ * @see {@link https://developer.paypal.com/sdk/js/configuration/#intent}
3441
+ */
3442
+ intent?: Intent;
3443
+ };
3444
+ /**
3445
+ * Identifies if the payment is Express. Also used for analytics
3446
+ * @defaultValue false
3447
+ */
3448
+ isExpress?: boolean;
3449
+ /**
3450
+ * Used for analytics
3451
+ */
3452
+ expressPage?: 'cart' | 'minicart' | 'pdp' | 'checkout';
3453
+ /**
3454
+ * Set to true to force the UI to not render PayPal button
3455
+ * @default false
3456
+ */
3457
+ blockPayPalButton?: boolean;
3458
+ /**
3459
+ * Set to true to force the UI to not render PayPal Credit button
3460
+ * @default false
3461
+ */
3462
+ blockPayPalCreditButton?: boolean;
3463
+ /**
3464
+ * Set to true to force the UI to not render PayPal Pay Later button
3465
+ * @default false
3466
+ */
3467
+ blockPayPalPayLaterButton?: boolean;
3468
+ /**
3469
+ * Set to true to force the UI to not render PayPal Venmo button
3470
+ * @default false
3471
+ */
3472
+ blockPayPalVenmoButton?: boolean;
3473
+ /**
3474
+ * Callback called when PayPal authorizes the payment.
3475
+ * Must be resolved/rejected with the action object. If resolved, the additional details will be invoked. Otherwise it will be skipped
3476
+ *
3477
+ * @param data - Contains the raw event from PayPal, along with the billingAddress and deliveryAddress parsed by Adyen based on the raw event data
3478
+ * @param actions - Used to indicate that payment flow must continue or must stop
3479
+ */
3480
+ onAuthorized?: (data: {
3481
+ authorizedEvent: PayPalOrderResponseBody;
3482
+ billingAddress?: Partial<AddressData>;
3483
+ deliveryAddress?: Partial<AddressData>;
3484
+ }, actions: {
3485
+ resolve: () => void;
3486
+ reject: () => void;
3487
+ }) => void;
3488
+ /**
3489
+ * While the buyer is on the PayPal site, you can update their shopping cart to reflect the shipping address they chose on PayPal
3490
+ * @see {@link https://developer.paypal.com/sdk/js/reference/#on-shipping-address-change}
3491
+ *
3492
+ * @param data - PayPal data object
3493
+ * @param actions - Used to reject the address change in case the address is invalid
3494
+ * @param component - Adyen instance of its PayPal implementation. It must be used to manipulate the 'paymentData' in order to apply the amount patch correctly
3495
+ */
3496
+ onShippingAddressChange?: (data: PayPalOnShippingAddressChangeData, actions: {
3497
+ reject: (reason?: string) => Promise<void>;
3498
+ }, component: PaypalElement) => Promise<void>;
4195
3499
  /**
4196
- * Google Pay requires custom logic due to supporting two Tx variants that lead to the same payment method.
4197
- * If the merchant creates a standalone Google Pay component, we need to verify if the payment method is available using both tx variants
3500
+ * This callback is triggered any time the user selects a new shipping option.
3501
+ * @see {@link https://developer.paypal.com/sdk/js/reference/#on-shipping-options-change}
4198
3502
  *
4199
- * @param type
4200
- * @param paymentMethodId - Unique internal payment method ID
4201
- * @returns
3503
+ * @param data - An PayPal object containing the payer’s selected shipping option
3504
+ * @param actions - Used to indicates to PayPal that you will not support the shipping method selected by the buyer
3505
+ * @param component - Adyen instance of its PayPal implementation. It must be used to manipulate the 'paymentData' in order to apply the amount patch correctly
4202
3506
  */
4203
- protected getPaymentMethodFromPaymentMethodsResponse(type?: string, paymentMethodId?: string): RawPaymentMethod;
4204
- protected formatProps(props: GooglePayConfiguration): GooglePayConfiguration;
3507
+ onShippingOptionsChange?: (data: PayPalOnShippingOptionsChangeData, actions: {
3508
+ reject: (reason?: string) => Promise<void>;
3509
+ }, component: PaypalElement) => Promise<void>;
4205
3510
  /**
4206
- * Formats the component data output
3511
+ * If set to 'continue' , the button inside the lightbox will display the 'Continue' button
3512
+ * @default pay
4207
3513
  */
4208
- protected formatData(): {
4209
- deliveryAddress: any;
4210
- billingAddress: any;
4211
- paymentMethod: {
4212
- subtype: string;
4213
- type: string;
4214
- googlePayCardNetwork: any;
4215
- googlePayToken: any;
4216
- };
4217
- browserInfo: BrowserInfo;
4218
- origin: string;
4219
- };
3514
+ userAction?: 'continue' | 'pay';
4220
3515
  /**
4221
- * Generate the 'allowedCardNetworks' value used by Google Pay
3516
+ * Customize your buttons using the style option.
4222
3517
  *
4223
- * If the 'allowedCardNetworks' is defined in the Component configuration, it will be used. Otherwise we fallback
4224
- * to use the 'brands' returned by the backoffice. It can be that 'brands' is not returned, which in this case we
4225
- * set default values
3518
+ * @see {@link https://developer.paypal.com/sdk/js/reference/#style}
3519
+ * @default style.height 48px
3520
+ */
3521
+ style?: {
3522
+ layout?: 'vertical' | 'horizontal';
3523
+ color?: 'gold' | 'blue' | 'silver' | 'white' | 'black';
3524
+ shape?: 'rect' | 'pill';
3525
+ height?: string | number;
3526
+ disableMaxWidth?: boolean;
3527
+ label?: 'paypal' | 'checkout' | 'buynow' | 'pay';
3528
+ tagline?: boolean;
3529
+ };
3530
+ /**
3531
+ * Called when the button first renders. You can use it for validations on your page if you are unable to do so prior to rendering.
3532
+ * @see {@link https://developer.paypal.com/sdk/js/reference/#oninitonclick}
3533
+ */
3534
+ onInit?: (data?: Record<string, unknown>, actions?: PayPalOnInitActions) => void;
3535
+ /**
3536
+ * @see {@link https://developer.paypal.com/sdk/js/reference/#oninitonclick}
3537
+ */
3538
+ onClick?: () => void;
3539
+ /**
3540
+ * The commit status of the transaction. Determines whether to show a Pay Now or Continue button in the Checkout flow.
4226
3541
  *
4227
- * @param {object} brandsConfig
4228
- * @param brandsConfig.allowedCardNetworks - Brands set in the component config
4229
- * @param brandsConfig.brands - Brands returned by backend
4230
- * @private
3542
+ * @see {@link https://developer.paypal.com/sdk/js/configuration/#commit}
3543
+ * @default true
4231
3544
  */
4232
- private createAllowedCardNetworksValues;
4233
- protected beforeRender(configSetByMerchant?: GooglePayConfiguration): void;
3545
+ commit?: boolean;
4234
3546
  /**
4235
- * Displays the Google Pay payment sheet overlay
3547
+ * Whether the payment information in the transaction will be saved. Save your customers' payment information for billing agreements, subscriptions, or recurring payments.
3548
+ *
3549
+ * @see {@link https://developer.paypal.com/sdk/js/configuration/#vault}
3550
+ * @default false
4236
3551
  */
4237
- private showGooglePayPaymentSheet;
4238
- submit: () => void;
3552
+ vault?: boolean;
4239
3553
  /**
4240
- * Method called when the payment is authorized in the payment sheet
3554
+ * The locale renders components. By default PayPal detects the correct locale for the buyer based on their geolocation and browser preferences.
4241
3555
  *
4242
- * @see https://developers.google.com/pay/api/web/reference/client#onPaymentAuthorized
4243
- **/
4244
- private onPaymentAuthorized;
3556
+ * @see {@link https://developer.paypal.com/sdk/js/configuration/#locale}
3557
+ * @default undefined
3558
+ */
3559
+ locale?: string;
4245
3560
  /**
4246
- * Call the 'onAuthorized' callback if available.
4247
- * Must be resolved/reject for the payment flow to continue
3561
+ * Determines whether the funds are captured immediately on checkout or if the buyer authorizes the funds to be captured later.
3562
+ * If set, it will override the intent passed inside the 'configuration' object
3563
+ *
3564
+ * @see {@link https://developer.paypal.com/sdk/js/configuration/#intent}
3565
+ * @default undefined
4248
3566
  */
4249
- private handleAuthorization;
4250
- get isValid(): boolean;
3567
+ intent?: Intent;
4251
3568
  /**
4252
- * Determine a shopper's ability to return a form of payment from the Google Pay API.
3569
+ * Pass a Content Security Policy single-use token if you use them on your site
3570
+ *
3571
+ * @see {@link https://developer.paypal.com/sdk/js/configuration/#data-csp-nonce}
3572
+ * @default undefined
4253
3573
  */
4254
- isAvailable(): Promise<void>;
3574
+ cspNonce?: string;
3575
+ enableMessages?: boolean;
4255
3576
  /**
4256
- * Determine a shopper's ability to return a form of payment from the Google Pay API.
3577
+ * Set to true to enable debug mode. Defaults to false.
3578
+ * @see {@link https://developer.paypal.com/sdk/js/configuration/#debug}
3579
+ * @default undefined
4257
3580
  */
4258
- isReadyToPay: () => Promise<google.payments.api.IsReadyToPayResponse>;
3581
+ debug?: boolean;
4259
3582
  /**
4260
- * Use this method to prefetch a PaymentDataRequest configuration to improve loadPaymentData execution time on later user interaction. No value is returned.
3583
+ * A two-letter ISO 3166 country code which will be passed to the PayPal SDK as the buyer-country.
3584
+ * Note: The buyer country is only used in the sandbox. Don't pass this query parameter in production.
3585
+ *
3586
+ * @see {@link https://developer.paypal.com/sdk/js/configuration/#buyer-country}
3587
+ * @default undefined
4261
3588
  */
4262
- prefetch: () => void;
4263
- get browserInfo(): BrowserInfo;
4264
- get icon(): string;
4265
- protected componentToRender(): h.JSX.Element;
3589
+ countryCode?: string;
4266
3590
  }
3591
+ /**
3592
+ * The intent for the transaction. This determines whether the funds are captured immediately, or later.
3593
+ * @see {@link https://developer.paypal.com/docs/checkout/reference/customize-sdk/#intent}
3594
+ */
3595
+ type Intent = 'sale' | 'capture' | 'authorize' | 'order' | 'tokenize';
3596
+ type SupportedPayPalFundingSources = 'paypal' | 'credit' | 'paylater' | 'venmo';
3597
+ /**
3598
+ * @deprecated Use {@link SupportedPayPalFundingSources} instead
3599
+ */
3600
+ type FundingSource = SupportedPayPalFundingSources;
4267
3601
 
4268
- declare class EcontextElement extends UIElement<EcontextConfiguration> {
4269
- static readonly type = TxVariants.econtext;
4270
- static readonly txVariants: TxVariants[];
4271
- protected static readonly defaultProps: {
4272
- personalDetailsRequired: boolean;
3602
+ declare class PaypalElement extends UIElement<PayPalConfiguration> {
3603
+ static readonly type = TxVariants.paypal;
3604
+ static readonly subtype = "sdk";
3605
+ paymentData: string | null;
3606
+ private resolve;
3607
+ private reject;
3608
+ protected static readonly defaultProps: Partial<PayPalConfiguration>;
3609
+ constructor(checkout: ICore, props?: PayPalConfiguration);
3610
+ formatProps(props: PayPalConfiguration): PayPalConfiguration;
3611
+ protected beforeRender(configSetByMerchant?: PayPalConfiguration): void;
3612
+ submit: () => void;
3613
+ /**
3614
+ * Updates the paymentData value. It must be used in the PayPal Express flow, when patching the amount
3615
+ * @param paymentData - Payment data value
3616
+ */
3617
+ updatePaymentData(paymentData: string): void;
3618
+ /**
3619
+ * Formats the component data output
3620
+ */
3621
+ protected formatData(): {
3622
+ paymentMethod: {
3623
+ type: TxVariants;
3624
+ userAction: "pay" | "continue";
3625
+ subtype: string;
3626
+ };
4273
3627
  };
3628
+ handleAction: (action: PaymentAction) => any;
3629
+ updateWithAction: (action: PaymentAction) => any;
3630
+ /**
3631
+ * Dropin Validation
3632
+ *
3633
+ * @remarks
3634
+ * Paypal does not require any specific Dropin validation
3635
+ */
4274
3636
  get isValid(): boolean;
3637
+ private readonly handleOnApprove;
3638
+ handleResolve(token: string): void;
3639
+ handleReject(errorMessage: string): void;
3640
+ private handleSubmit;
4275
3641
  /**
4276
- * Formats the component data output
3642
+ * If the merchant provides the 'onShippingAddressChange' callback, then this method is used as a wrapper to it, in order
3643
+ * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the
3644
+ * paymentData
3645
+ *
3646
+ * @param data - PayPal data
3647
+ * @param actions - PayPal actions.
4277
3648
  */
4278
- formatData(): any;
4279
- protected componentToRender(): h.JSX.Element;
4280
- }
4281
-
4282
- declare class FacilyPay3x extends OpenInvoiceContainer {
4283
- static readonly type = TxVariants.facilypay_3x;
4284
- formatProps(props: any): any;
4285
- }
4286
-
4287
- declare class FacilyPay4x extends OpenInvoiceContainer {
4288
- static readonly type = TxVariants.facilypay_4x;
4289
- formatProps(props: any): any;
4290
- }
4291
-
4292
- declare class FacilyPay6x extends OpenInvoiceContainer {
4293
- static readonly type = TxVariants.facilypay_6x;
4294
- formatProps(props: any): any;
4295
- }
4296
-
4297
- declare class FacilyPay10x extends OpenInvoiceContainer {
4298
- static readonly type = TxVariants.facilypay_10x;
4299
- formatProps(props: any): any;
4300
- }
4301
-
4302
- declare class FacilyPay12x extends OpenInvoiceContainer {
4303
- static readonly type = TxVariants.facilypay_12x;
4304
- formatProps(props: any): any;
3649
+ private handleOnShippingAddressChange;
3650
+ /**
3651
+ * If the merchant provides the 'onShippingOptionsChange' callback, then this method is used as a wrapper to it, in order
3652
+ * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the
3653
+ * paymentData
3654
+ *
3655
+ * @param data - PayPal data
3656
+ * @param actions - PayPal actions.
3657
+ */
3658
+ private handleOnShippingOptionsChange;
3659
+ protected componentToRender(): h.JSX.Element | null;
4305
3660
  }
4306
3661
 
4307
3662
  declare class CustomCard extends UIElement<CustomCardConfiguration> {
@@ -4373,6 +3728,16 @@ declare class CustomCard extends UIElement<CustomCardConfiguration> {
4373
3728
  protected componentToRender(): h.JSX.Element;
4374
3729
  }
4375
3730
 
3731
+ interface SepaElementData {
3732
+ paymentMethod: {
3733
+ type: string;
3734
+ iban: string;
3735
+ ownerName: string;
3736
+ };
3737
+ }
3738
+ interface SepaConfiguration extends UIElementProps {
3739
+ }
3740
+
4376
3741
  declare class SepaElement extends UIElement<SepaConfiguration> {
4377
3742
  static readonly type = TxVariants.sepadirectdebit;
4378
3743
  constructor(checkout: ICore, props?: SepaConfiguration);
@@ -4391,6 +3756,40 @@ declare class SepaElement extends UIElement<SepaConfiguration> {
4391
3756
  protected componentToRender(): h.JSX.Element;
4392
3757
  }
4393
3758
 
3759
+ interface QRLoaderConfiguration extends UIElementProps {
3760
+ /**
3761
+ * Number of milliseconds that the component will wait in between status calls
3762
+ * @default 2_000
3763
+ */
3764
+ delay?: number;
3765
+ /**
3766
+ * Number of minutes that the component should keep on loading
3767
+ * @default 15
3768
+ */
3769
+ countdownTime?: number;
3770
+ /**
3771
+ * Number of milliseconds that the component will switch to throttled mode
3772
+ * @default 60_000
3773
+ */
3774
+ throttleTime?: number;
3775
+ /**
3776
+ * Number of milliseconds that the component will wait in between status calls when in throttled mode
3777
+ * @default 10_000
3778
+ */
3779
+ throttleInterval?: number;
3780
+ type?: string;
3781
+ brandLogo?: string;
3782
+ buttonLabel?: string;
3783
+ qrCodeImage?: string;
3784
+ qrCodeData?: string;
3785
+ paymentData?: string;
3786
+ redirectIntroduction?: string;
3787
+ timeToPay?: string;
3788
+ copyBtn?: boolean;
3789
+ introduction?: string | (() => h.JSX.Element);
3790
+ instructions?: string | (() => h.JSX.Element);
3791
+ }
3792
+
4394
3793
  declare class QRLoaderContainer<T extends QRLoaderConfiguration = QRLoaderConfiguration> extends UIElement<T> {
4395
3794
  protected static readonly defaultProps: {
4396
3795
  qrCodeImage: string;
@@ -4435,6 +3834,7 @@ declare class WeChatPayElement extends QRLoaderContainer {
4435
3834
  risk?: RiskElement;
4436
3835
  };
4437
3836
  isDropin?: boolean;
3837
+ donation?: DonationOptions;
4438
3838
  onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
4439
3839
  onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
4440
3840
  beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
@@ -4508,6 +3908,7 @@ declare class PayNowElement extends QRLoaderContainer {
4508
3908
  risk?: RiskElement;
4509
3909
  };
4510
3910
  isDropin?: boolean;
3911
+ donation?: DonationOptions;
4511
3912
  onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
4512
3913
  onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
4513
3914
  beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
@@ -4582,6 +3983,7 @@ declare class BCMCMobileElement extends QRLoaderContainer {
4582
3983
  risk?: RiskElement;
4583
3984
  };
4584
3985
  isDropin?: boolean;
3986
+ donation?: DonationOptions;
4585
3987
  onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
4586
3988
  onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
4587
3989
  beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
@@ -4673,6 +4075,7 @@ declare class DragonpayElement extends UIElement<DragonpayConfiguraton> {
4673
4075
  risk?: RiskElement;
4674
4076
  };
4675
4077
  isDropin?: boolean;
4078
+ donation?: DonationOptions;
4676
4079
  onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
4677
4080
  onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
4678
4081
  beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
@@ -4786,8 +4189,113 @@ declare class DotpayElement extends IssuerListContainer {
4786
4189
 
4787
4190
  declare class EPSElement extends IssuerListContainer {
4788
4191
  static readonly type = TxVariants.eps;
4789
- formatProps(props: any): any;
4192
+ formatProps(props: any): {
4193
+ showImage: boolean;
4194
+ placeholder?: string;
4195
+ issuers?: IssuerItem[];
4196
+ highlightedIssuers?: string[];
4197
+ showPaymentMethodItemImages?: boolean;
4198
+ termsAndConditions?: TermsAndConditions;
4199
+ showContextualElement?: boolean;
4200
+ paymentMethodId?: string;
4201
+ storedPaymentMethodId?: string;
4202
+ order?: Order;
4203
+ modules?: {
4204
+ srPanel?: SRPanel;
4205
+ analytics?: IAnalytics;
4206
+ resources?: Resources;
4207
+ risk?: RiskElement;
4208
+ };
4209
+ isDropin?: boolean;
4210
+ donation?: DonationOptions;
4211
+ onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
4212
+ onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
4213
+ beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
4214
+ url: string;
4215
+ method: string;
4216
+ data?: any;
4217
+ }) => void;
4218
+ beforeSubmit?: (state: PaymentData, component: UIElement, actions: BeforeSubmitActions) => Promise<void> | void;
4219
+ onSubmit?: (state: SubmitData, component: UIElement, actions: SubmitActions) => void;
4220
+ onActionHandled?: (actionHandled: ActionHandledReturnObject) => void;
4221
+ onAdditionalDetails?: (state: AdditionalDetailsData, component: UIElement, actions: AdditionalDetailsActions) => void;
4222
+ onChange?: (state: OnChangeData, component: UIElement) => void;
4223
+ onEnterKeyPressed?: (activeElement: Element, component: UIElement) => void;
4224
+ onError?: (error: AdyenCheckoutError, component?: UIElement) => void;
4225
+ onOrderUpdated?: (data: {
4226
+ order: Order;
4227
+ }) => void;
4228
+ onPaymentMethodsRequest?: (data: PaymentMethodsRequestData, actions: {
4229
+ resolve: (response: PaymentMethodsResponse) => void;
4230
+ reject: () => void;
4231
+ }) => void;
4232
+ environment?: string;
4233
+ session?: Session;
4234
+ onComplete?: (state: any, element: UIElement) => void;
4235
+ isInstantPayment?: boolean;
4236
+ isStoredPaymentMethod?: boolean;
4237
+ oneClick?: boolean;
4238
+ statusType?: StatusFromAction;
4239
+ type?: string;
4240
+ name?: string;
4241
+ icon?: string;
4242
+ amount?: PaymentAmount;
4243
+ secondaryAmount?: PaymentAmount;
4244
+ showPayButton?: boolean;
4245
+ payButton?: (options: PayButtonProps) => preact.JSX.Element;
4246
+ loadingContext?: string;
4247
+ createFromAction?: (action: PaymentAction, props: object) => UIElement;
4248
+ clientKey?: string;
4249
+ elementRef?: any;
4250
+ i18n?: Language;
4251
+ label?: string;
4252
+ paymentMethodType?: string;
4253
+ originalAction?: PaymentAction;
4254
+ };
4255
+ }
4256
+
4257
+ interface GiftCardElementData {
4258
+ paymentMethod: {
4259
+ type: 'giftcard';
4260
+ brand: string;
4261
+ encryptedCardNumber: string;
4262
+ encryptedSecurityCode: string;
4263
+ };
4264
+ }
4265
+ type balanceCheckResponseType = {
4266
+ sessionData?: string;
4267
+ pspReference?: string;
4268
+ resultCode?: string;
4269
+ balance?: PaymentAmount;
4270
+ transactionLimit?: PaymentAmount;
4271
+ };
4272
+ type onBalanceCheckCallbackType = (resolve: (res: balanceCheckResponseType) => void, reject: (error: Error) => void, data: GiftCardElementData) => Promise<void>;
4273
+ type onRequiringConfirmationCallbackType = (resolve: () => void, reject: (error: Error) => void) => Promise<void>;
4274
+ type onOrderRequestCallbackType = (resolve: (order: Order) => void, reject: (error: Error) => void, data: PaymentData) => Promise<void>;
4275
+ interface GiftCardConfiguration extends UIElementProps {
4276
+ pinRequired?: boolean;
4277
+ expiryDateRequired?: boolean;
4278
+ brandsConfiguration?: any;
4279
+ brand?: string;
4280
+ onOrderUpdated?: (data: any) => void;
4281
+ onBalanceCheck?: onBalanceCheckCallbackType;
4282
+ onOrderRequest?: onOrderRequestCallbackType;
4283
+ onRequiringConfirmation?: onRequiringConfirmationCallbackType;
4284
+ /**
4285
+ * @internal
4286
+ */
4287
+ fieldsLayoutComponent?: FunctionComponent<GiftcardFieldsProps>;
4288
+ }
4289
+ /**
4290
+ * Unified error interface that matches useForm error structure for gift cards
4291
+ */
4292
+ interface GiftCardValidationError {
4293
+ isValid: boolean;
4294
+ errorMessage: string;
4295
+ errorI18n?: string;
4296
+ error?: string;
4790
4297
  }
4298
+ type GiftCardBalanceCheckErrorType = 'no-balance' | 'card-error' | 'currency-error';
4791
4299
 
4792
4300
  interface GiftcardComponentProps extends Partial<Pick<SFPProps, 'clientKey' | 'loadingContext'>> {
4793
4301
  onChange: (state: any) => void;
@@ -4886,11 +4394,41 @@ declare class GiftcardElement extends UIElement<GiftCardConfiguration> {
4886
4394
  protected componentToRender(): h.JSX.Element;
4887
4395
  }
4888
4396
 
4397
+ type IrisConfiguration = IssuerListConfiguration & Pick<QRLoaderConfiguration, 'countdownTime' | 'qrCodeData' | 'paymentData' | 'delay'>;
4398
+ /**
4399
+ * Iris data format for /payment request
4400
+ * @internal
4401
+ */
4402
+ interface IrisData {
4403
+ paymentMethod: {
4404
+ type: string;
4405
+ issuer?: string;
4406
+ };
4407
+ }
4408
+ /**
4409
+ * Iris component display modes
4410
+ * @internal
4411
+ */
4412
+ declare enum IrisMode {
4413
+ QR_CODE = "qrCode",
4414
+ BANK_LIST = "bankList"
4415
+ }
4416
+ /**
4417
+ * Iris component state
4418
+ * @internal
4419
+ */
4420
+ type IrisState = {
4421
+ isValid: boolean;
4422
+ mode: IrisMode;
4423
+ data: {
4424
+ issuer?: string;
4425
+ };
4426
+ };
4427
+
4889
4428
  declare class Iris extends IssuerListContainer<IrisConfiguration, IrisData> {
4890
4429
  static readonly type = TxVariants.iris;
4891
- private mode;
4892
- constructor(checkout: ICore, props: IrisConfiguration);
4893
- private readonly onUpdateMode;
4430
+ private readonly defaultMode;
4431
+ state: IrisState;
4894
4432
  private renderIssuerList;
4895
4433
  formatData(): IrisData;
4896
4434
  formatProps(props: IrisConfiguration): IrisConfiguration;
@@ -4906,16 +4444,140 @@ declare class VippsElement extends RedirectElement {
4906
4444
  };
4907
4445
  }
4908
4446
 
4909
- declare class PayuNetCashcardElement extends IssuerListContainer {
4910
- static readonly type = TxVariants.payu_IN_cashcard;
4911
- formatProps(props: any): any;
4912
- }
4913
-
4914
- declare class PayuNetBankingElement extends IssuerListContainer {
4915
- static readonly type = TxVariants.payu_IN_nb;
4916
- formatProps(props: any): any;
4917
- }
4918
-
4447
+ declare class PayuNetCashcardElement extends IssuerListContainer {
4448
+ static readonly type = TxVariants.payu_IN_cashcard;
4449
+ formatProps(props: any): {
4450
+ showImage: boolean;
4451
+ placeholder?: string;
4452
+ issuers?: IssuerItem[];
4453
+ highlightedIssuers?: string[];
4454
+ showPaymentMethodItemImages?: boolean;
4455
+ termsAndConditions?: TermsAndConditions;
4456
+ showContextualElement?: boolean;
4457
+ paymentMethodId?: string;
4458
+ storedPaymentMethodId?: string;
4459
+ order?: Order;
4460
+ modules?: {
4461
+ srPanel?: SRPanel;
4462
+ analytics?: IAnalytics;
4463
+ resources?: Resources;
4464
+ risk?: RiskElement;
4465
+ };
4466
+ isDropin?: boolean;
4467
+ donation?: DonationOptions;
4468
+ onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
4469
+ onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
4470
+ beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
4471
+ url: string;
4472
+ method: string;
4473
+ data?: any;
4474
+ }) => void;
4475
+ beforeSubmit?: (state: PaymentData, component: UIElement, actions: BeforeSubmitActions) => Promise<void> | void;
4476
+ onSubmit?: (state: SubmitData, component: UIElement, actions: SubmitActions) => void;
4477
+ onActionHandled?: (actionHandled: ActionHandledReturnObject) => void;
4478
+ onAdditionalDetails?: (state: AdditionalDetailsData, component: UIElement, actions: AdditionalDetailsActions) => void;
4479
+ onChange?: (state: OnChangeData, component: UIElement) => void;
4480
+ onEnterKeyPressed?: (activeElement: Element, component: UIElement) => void;
4481
+ onError?: (error: AdyenCheckoutError, component?: UIElement) => void;
4482
+ onOrderUpdated?: (data: {
4483
+ order: Order;
4484
+ }) => void;
4485
+ onPaymentMethodsRequest?: (data: PaymentMethodsRequestData, actions: {
4486
+ resolve: (response: PaymentMethodsResponse) => void;
4487
+ reject: () => void;
4488
+ }) => void;
4489
+ environment?: string;
4490
+ session?: Session;
4491
+ onComplete?: (state: any, element: UIElement) => void;
4492
+ isInstantPayment?: boolean;
4493
+ isStoredPaymentMethod?: boolean;
4494
+ oneClick?: boolean;
4495
+ statusType?: StatusFromAction;
4496
+ type?: string;
4497
+ name?: string;
4498
+ icon?: string;
4499
+ amount?: PaymentAmount;
4500
+ secondaryAmount?: PaymentAmount;
4501
+ showPayButton?: boolean;
4502
+ payButton?: (options: PayButtonProps) => preact.JSX.Element;
4503
+ loadingContext?: string;
4504
+ createFromAction?: (action: PaymentAction, props: object) => UIElement;
4505
+ clientKey?: string;
4506
+ elementRef?: any;
4507
+ i18n?: Language;
4508
+ label?: string;
4509
+ paymentMethodType?: string;
4510
+ originalAction?: PaymentAction;
4511
+ };
4512
+ }
4513
+
4514
+ declare class PayuNetBankingElement extends IssuerListContainer {
4515
+ static readonly type = TxVariants.payu_IN_nb;
4516
+ formatProps(props: any): {
4517
+ showImage: boolean;
4518
+ placeholder?: string;
4519
+ issuers?: IssuerItem[];
4520
+ highlightedIssuers?: string[];
4521
+ showPaymentMethodItemImages?: boolean;
4522
+ termsAndConditions?: TermsAndConditions;
4523
+ showContextualElement?: boolean;
4524
+ paymentMethodId?: string;
4525
+ storedPaymentMethodId?: string;
4526
+ order?: Order;
4527
+ modules?: {
4528
+ srPanel?: SRPanel;
4529
+ analytics?: IAnalytics;
4530
+ resources?: Resources;
4531
+ risk?: RiskElement;
4532
+ };
4533
+ isDropin?: boolean;
4534
+ donation?: DonationOptions;
4535
+ onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
4536
+ onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
4537
+ beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
4538
+ url: string;
4539
+ method: string;
4540
+ data?: any;
4541
+ }) => void;
4542
+ beforeSubmit?: (state: PaymentData, component: UIElement, actions: BeforeSubmitActions) => Promise<void> | void;
4543
+ onSubmit?: (state: SubmitData, component: UIElement, actions: SubmitActions) => void;
4544
+ onActionHandled?: (actionHandled: ActionHandledReturnObject) => void;
4545
+ onAdditionalDetails?: (state: AdditionalDetailsData, component: UIElement, actions: AdditionalDetailsActions) => void;
4546
+ onChange?: (state: OnChangeData, component: UIElement) => void;
4547
+ onEnterKeyPressed?: (activeElement: Element, component: UIElement) => void;
4548
+ onError?: (error: AdyenCheckoutError, component?: UIElement) => void;
4549
+ onOrderUpdated?: (data: {
4550
+ order: Order;
4551
+ }) => void;
4552
+ onPaymentMethodsRequest?: (data: PaymentMethodsRequestData, actions: {
4553
+ resolve: (response: PaymentMethodsResponse) => void;
4554
+ reject: () => void;
4555
+ }) => void;
4556
+ environment?: string;
4557
+ session?: Session;
4558
+ onComplete?: (state: any, element: UIElement) => void;
4559
+ isInstantPayment?: boolean;
4560
+ isStoredPaymentMethod?: boolean;
4561
+ oneClick?: boolean;
4562
+ statusType?: StatusFromAction;
4563
+ type?: string;
4564
+ name?: string;
4565
+ icon?: string;
4566
+ amount?: PaymentAmount;
4567
+ secondaryAmount?: PaymentAmount;
4568
+ showPayButton?: boolean;
4569
+ payButton?: (options: PayButtonProps) => preact.JSX.Element;
4570
+ loadingContext?: string;
4571
+ createFromAction?: (action: PaymentAction, props: object) => UIElement;
4572
+ clientKey?: string;
4573
+ elementRef?: any;
4574
+ i18n?: Language;
4575
+ label?: string;
4576
+ paymentMethodType?: string;
4577
+ originalAction?: PaymentAction;
4578
+ };
4579
+ }
4580
+
4919
4581
  declare class RatePay extends OpenInvoiceContainer {
4920
4582
  static readonly type = TxVariants.ratepay;
4921
4583
  formatProps(props: any): any;
@@ -4949,6 +4611,7 @@ declare class SwishElement extends QRLoaderContainer {
4949
4611
  risk?: RiskElement;
4950
4612
  };
4951
4613
  isDropin?: boolean;
4614
+ donation?: DonationOptions;
4952
4615
  onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
4953
4616
  onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
4954
4617
  beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
@@ -5025,6 +4688,36 @@ declare class AchElement extends UIElement<AchConfiguration> {
5025
4688
  protected componentToRender(): h.JSX.Element;
5026
4689
  }
5027
4690
 
4691
+ interface AwaitComponentProps {
4692
+ type: string;
4693
+ delay?: number;
4694
+ countdownTime: number;
4695
+ throttleTime: number;
4696
+ showCountdownTimer: boolean;
4697
+ shouldRedirectAutomatically?: boolean;
4698
+ throttleInterval: number;
4699
+ paymentData?: string;
4700
+ url?: string;
4701
+ classNameModifiers?: string[];
4702
+ clientKey: string;
4703
+ onError: (error: AdyenCheckoutError) => void;
4704
+ onComplete: (status: AdditionalDetailsData) => void;
4705
+ brandLogo?: string;
4706
+ messageText?: string;
4707
+ awaitText: string;
4708
+ onActionHandled?: (rtnObj: ActionHandledReturnObject) => void;
4709
+ pollStatus?: () => Promise<RawPaymentResponse | RawPaymentStatusResponse>;
4710
+ instructions?: string | (() => h.JSX.Element);
4711
+ endSlot?: () => h.JSX.Element;
4712
+ showAmount?: boolean;
4713
+ }
4714
+ interface AwaitConfiguration extends UIElementProps {
4715
+ paymentData?: string;
4716
+ paymentMethoType?: string;
4717
+ type?: string;
4718
+ url?: string;
4719
+ }
4720
+
5028
4721
  declare class MBWayElement extends UIElement<AwaitConfiguration> {
5029
4722
  static readonly type = TxVariants.mbway;
5030
4723
  formatProps(props: any): any;
@@ -5090,6 +4783,20 @@ declare class Affirm extends OpenInvoiceContainer {
5090
4783
  formatProps(props: OpenInvoiceConfiguration): any;
5091
4784
  }
5092
4785
 
4786
+ interface PixConfiguration extends QRLoaderConfiguration {
4787
+ personalDetailsRequired?: boolean;
4788
+ }
4789
+ interface PixElementData {
4790
+ paymentMethod: {
4791
+ type: 'pix';
4792
+ };
4793
+ shopperName?: {
4794
+ firstName: string;
4795
+ lastName: string;
4796
+ };
4797
+ socialSecurityNumber?: string;
4798
+ }
4799
+
5093
4800
  declare class PixElement extends QRLoaderContainer<PixConfiguration> {
5094
4801
  static readonly type = TxVariants.pix;
5095
4802
  static readonly defaultProps: {
@@ -5145,6 +4852,63 @@ declare class PersonalDetailsElement extends UIElement<PersonalDetailsConfigurat
5145
4852
  protected componentToRender(): h.JSX.Element;
5146
4853
  }
5147
4854
 
4855
+ /** sdkData present in Klarna `action`objects. */
4856
+ type KlarnaSdkData = {
4857
+ /**
4858
+ * Klarna client_token
4859
+ * @see https://developers.klarna.com/documentation/klarna-payments/single-call-descriptions/create-session/
4860
+ * */
4861
+ client_token: string;
4862
+ /**
4863
+ * `payment_method_category` specifies which of Klarna’s customer offerings (e.g. Pay now, Pay later or Slice it)
4864
+ * that is being shown in the widget
4865
+ * @see https://developers.klarna.com/documentation/klarna-payments/single-call-descriptions/create-session/
4866
+ * */
4867
+ payment_method_category: string;
4868
+ };
4869
+ interface KlarnaPaymentsShared {
4870
+ sdkData?: KlarnaSdkData;
4871
+ paymentData?: string;
4872
+ paymentMethodType?: string;
4873
+ }
4874
+ interface KlarnaWidgetProps extends KlarnaPaymentsShared {
4875
+ /** @internal */
4876
+ payButton: (props: PayButtonProps) => h.JSX.Element;
4877
+ /** @internal */
4878
+ onLoaded: () => void;
4879
+ widgetInitializationTime: number;
4880
+ onComplete: (detailsData: KlarnaAdditionalDetailsData) => void;
4881
+ onError: (error: any) => void;
4882
+ }
4883
+ type KlarnaConfiguration = UIElementProps & KlarnaPaymentsShared & {
4884
+ useKlarnaWidget?: boolean;
4885
+ };
4886
+ interface KlarnaWidgetAuthorizeResponse {
4887
+ approved: boolean;
4888
+ show_form: boolean;
4889
+ authorization_token: string;
4890
+ error?: unknown;
4891
+ }
4892
+ interface KlarnaComponentRef extends ComponentMethodsRef {
4893
+ setAction(action: KlarnaAction): void;
4894
+ reinitializeWidget(): void;
4895
+ }
4896
+ interface KlarnaAction extends PaymentAction {
4897
+ sdkData: {
4898
+ client_token: string;
4899
+ payment_method_category: string;
4900
+ };
4901
+ }
4902
+ interface KlarnaAdditionalDetailsData extends AdditionalDetailsData {
4903
+ data: {
4904
+ paymentData: string;
4905
+ details: {
4906
+ authorization_token?: string;
4907
+ resultCode?: ResultCode;
4908
+ };
4909
+ };
4910
+ }
4911
+
5148
4912
  declare class KlarnaPayments extends UIElement<KlarnaConfiguration> {
5149
4913
  static readonly type = TxVariants.klarna;
5150
4914
  static readonly txVariants: TxVariants[];
@@ -5209,7 +4973,69 @@ declare class MealVoucherFRElement extends GiftcardElement {
5209
4973
 
5210
4974
  declare class OnlineBankingINElement extends IssuerListContainer {
5211
4975
  static readonly type = TxVariants.onlinebanking_IN;
5212
- formatProps(props: any): any;
4976
+ formatProps(props: any): {
4977
+ showImage: boolean;
4978
+ placeholder?: string;
4979
+ issuers?: IssuerItem[];
4980
+ highlightedIssuers?: string[];
4981
+ showPaymentMethodItemImages?: boolean;
4982
+ termsAndConditions?: TermsAndConditions;
4983
+ showContextualElement?: boolean;
4984
+ paymentMethodId?: string;
4985
+ storedPaymentMethodId?: string;
4986
+ order?: Order;
4987
+ modules?: {
4988
+ srPanel?: SRPanel;
4989
+ analytics?: IAnalytics;
4990
+ resources?: Resources;
4991
+ risk?: RiskElement;
4992
+ };
4993
+ isDropin?: boolean;
4994
+ donation?: DonationOptions;
4995
+ onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
4996
+ onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
4997
+ beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
4998
+ url: string;
4999
+ method: string;
5000
+ data?: any;
5001
+ }) => void;
5002
+ beforeSubmit?: (state: PaymentData, component: UIElement, actions: BeforeSubmitActions) => Promise<void> | void;
5003
+ onSubmit?: (state: SubmitData, component: UIElement, actions: SubmitActions) => void;
5004
+ onActionHandled?: (actionHandled: ActionHandledReturnObject) => void;
5005
+ onAdditionalDetails?: (state: AdditionalDetailsData, component: UIElement, actions: AdditionalDetailsActions) => void;
5006
+ onChange?: (state: OnChangeData, component: UIElement) => void;
5007
+ onEnterKeyPressed?: (activeElement: Element, component: UIElement) => void;
5008
+ onError?: (error: AdyenCheckoutError, component?: UIElement) => void;
5009
+ onOrderUpdated?: (data: {
5010
+ order: Order;
5011
+ }) => void;
5012
+ onPaymentMethodsRequest?: (data: PaymentMethodsRequestData, actions: {
5013
+ resolve: (response: PaymentMethodsResponse) => void;
5014
+ reject: () => void;
5015
+ }) => void;
5016
+ environment?: string;
5017
+ session?: Session;
5018
+ onComplete?: (state: any, element: UIElement) => void;
5019
+ isInstantPayment?: boolean;
5020
+ isStoredPaymentMethod?: boolean;
5021
+ oneClick?: boolean;
5022
+ statusType?: StatusFromAction;
5023
+ type?: string;
5024
+ name?: string;
5025
+ icon?: string;
5026
+ amount?: PaymentAmount;
5027
+ secondaryAmount?: PaymentAmount;
5028
+ showPayButton?: boolean;
5029
+ payButton?: (options: PayButtonProps) => preact.JSX.Element;
5030
+ loadingContext?: string;
5031
+ createFromAction?: (action: PaymentAction, props: object) => UIElement;
5032
+ clientKey?: string;
5033
+ elementRef?: any;
5034
+ i18n?: Language;
5035
+ label?: string;
5036
+ paymentMethodType?: string;
5037
+ originalAction?: PaymentAction;
5038
+ };
5213
5039
  /**
5214
5040
  * Formats the component data output
5215
5041
  */
@@ -5235,6 +5061,89 @@ declare class RatePayDirectDebit extends OpenInvoiceContainer {
5235
5061
  formatProps(props: any): any;
5236
5062
  }
5237
5063
 
5064
+ interface Mandate {
5065
+ /**
5066
+ * Mandate amount in the smallest unit of the currency. Maximum amount the shopper authorizes
5067
+ * for future recurring charges.
5068
+ */
5069
+ amount: string;
5070
+ /**
5071
+ * Charge cadence for the mandate.
5072
+ */
5073
+ frequency: 'monthly' | 'weekly' | 'adhoc';
5074
+ /**
5075
+ * - `max`: merchant can charge any amount up to `amount` during future billing cycles.
5076
+ * - `exact`: merchant must charge exactly `amount` on each recurring charge.
5077
+ */
5078
+ amountRule: 'max' | 'exact';
5079
+ /**
5080
+ * End date of the mandate in `YYYY-MM-DD` format. Required by the Checkout API.
5081
+ * Recommended to set between 7 and 10 years in the future.
5082
+ */
5083
+ endsAt: string;
5084
+ /**
5085
+ * Start date of the mandate in `YYYY-MM-DD` format. Defaults to the mandate creation date.
5086
+ */
5087
+ startsAt?: string;
5088
+ /**
5089
+ * Free-form description of the mandate shown on the shopper's UPI app.
5090
+ */
5091
+ remarks?: string;
5092
+ }
5093
+
5094
+ type UpiType = TxVariants.upi_qr | TxVariants.upi_intent;
5095
+ type UpiMode = 'qrCode' | 'intent';
5096
+ type App = {
5097
+ id: string;
5098
+ name: string;
5099
+ };
5100
+ type UpiPaymentData = {
5101
+ paymentMethod: {
5102
+ type: UpiType;
5103
+ appId?: string;
5104
+ };
5105
+ };
5106
+ interface UPIConfiguration extends UIElementProps {
5107
+ /**
5108
+ * @deprecated
5109
+ * UPI configuration property "defaultMode" is deprecated and will be removed in a future version.
5110
+ */
5111
+ defaultMode?: UpiMode;
5112
+ mandate?: Mandate;
5113
+ apps?: Array<App>;
5114
+ /**
5115
+ * Redirect url for upi intent apps
5116
+ * @internal
5117
+ */
5118
+ url?: string;
5119
+ /**
5120
+ * @internal
5121
+ */
5122
+ paymentData?: string;
5123
+ qrCodeData?: string;
5124
+ brandLogo?: string;
5125
+ /**
5126
+ * The duration in minutes before the await/QR code expires.
5127
+ */
5128
+ countdownTime?: number;
5129
+ /**
5130
+ * Show the available UPI apps images on the Drop-in payment method item
5131
+ */
5132
+ showPaymentMethodItemImages?: boolean;
5133
+ /**
5134
+ * Show `+ other` after the UPI apps images on the Drop-in payment method item
5135
+ */
5136
+ showOtherInsteadOfNumber?: boolean;
5137
+ }
5138
+ /**
5139
+ * @internal
5140
+ */
5141
+ type UPIAppList = Array<{
5142
+ id: string;
5143
+ name: string;
5144
+ icon: string;
5145
+ }>;
5146
+
5238
5147
  /**
5239
5148
  * For mobile:
5240
5149
  * We should show upi_intent depending on if `apps` are returned in /paymentMethods response.
@@ -5263,7 +5172,69 @@ declare class UPI extends UIElement<UPIConfiguration> {
5263
5172
 
5264
5173
  declare class WalletINElement extends IssuerListContainer {
5265
5174
  static readonly type = TxVariants.wallet_IN;
5266
- formatProps(props: any): any;
5175
+ formatProps(props: any): {
5176
+ showImage: boolean;
5177
+ placeholder?: string;
5178
+ issuers?: IssuerItem[];
5179
+ highlightedIssuers?: string[];
5180
+ showPaymentMethodItemImages?: boolean;
5181
+ termsAndConditions?: TermsAndConditions;
5182
+ showContextualElement?: boolean;
5183
+ paymentMethodId?: string;
5184
+ storedPaymentMethodId?: string;
5185
+ order?: Order;
5186
+ modules?: {
5187
+ srPanel?: SRPanel;
5188
+ analytics?: IAnalytics;
5189
+ resources?: Resources;
5190
+ risk?: RiskElement;
5191
+ };
5192
+ isDropin?: boolean;
5193
+ donation?: DonationOptions;
5194
+ onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
5195
+ onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
5196
+ beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
5197
+ url: string;
5198
+ method: string;
5199
+ data?: any;
5200
+ }) => void;
5201
+ beforeSubmit?: (state: PaymentData, component: UIElement, actions: BeforeSubmitActions) => Promise<void> | void;
5202
+ onSubmit?: (state: SubmitData, component: UIElement, actions: SubmitActions) => void;
5203
+ onActionHandled?: (actionHandled: ActionHandledReturnObject) => void;
5204
+ onAdditionalDetails?: (state: AdditionalDetailsData, component: UIElement, actions: AdditionalDetailsActions) => void;
5205
+ onChange?: (state: OnChangeData, component: UIElement) => void;
5206
+ onEnterKeyPressed?: (activeElement: Element, component: UIElement) => void;
5207
+ onError?: (error: AdyenCheckoutError, component?: UIElement) => void;
5208
+ onOrderUpdated?: (data: {
5209
+ order: Order;
5210
+ }) => void;
5211
+ onPaymentMethodsRequest?: (data: PaymentMethodsRequestData, actions: {
5212
+ resolve: (response: PaymentMethodsResponse) => void;
5213
+ reject: () => void;
5214
+ }) => void;
5215
+ environment?: string;
5216
+ session?: Session;
5217
+ onComplete?: (state: any, element: UIElement) => void;
5218
+ isInstantPayment?: boolean;
5219
+ isStoredPaymentMethod?: boolean;
5220
+ oneClick?: boolean;
5221
+ statusType?: StatusFromAction;
5222
+ type?: string;
5223
+ name?: string;
5224
+ icon?: string;
5225
+ amount?: PaymentAmount;
5226
+ secondaryAmount?: PaymentAmount;
5227
+ showPayButton?: boolean;
5228
+ payButton?: (options: PayButtonProps) => preact.JSX.Element;
5229
+ loadingContext?: string;
5230
+ createFromAction?: (action: PaymentAction, props: object) => UIElement;
5231
+ clientKey?: string;
5232
+ elementRef?: any;
5233
+ i18n?: Language;
5234
+ label?: string;
5235
+ paymentMethodType?: string;
5236
+ originalAction?: PaymentAction;
5237
+ };
5267
5238
  /**
5268
5239
  * Formats the component data output
5269
5240
  */
@@ -5280,14 +5251,144 @@ declare class WalletINElement extends IssuerListContainer {
5280
5251
  declare class OnlineBankingCZElement extends IssuerListContainer {
5281
5252
  static readonly type = TxVariants.onlineBanking_CZ;
5282
5253
  private static readonly termsAndConditions;
5283
- formatProps(props: any): any;
5254
+ formatProps(props: any): {
5255
+ showImage: boolean;
5256
+ termsAndConditions: {
5257
+ translationKey: string;
5258
+ urls: string[];
5259
+ };
5260
+ placeholder?: string;
5261
+ issuers?: IssuerItem[];
5262
+ highlightedIssuers?: string[];
5263
+ showPaymentMethodItemImages?: boolean;
5264
+ showContextualElement?: boolean;
5265
+ paymentMethodId?: string;
5266
+ storedPaymentMethodId?: string;
5267
+ order?: Order;
5268
+ modules?: {
5269
+ srPanel?: SRPanel;
5270
+ analytics?: IAnalytics;
5271
+ resources?: Resources;
5272
+ risk?: RiskElement;
5273
+ };
5274
+ isDropin?: boolean;
5275
+ donation?: DonationOptions;
5276
+ onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
5277
+ onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
5278
+ beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
5279
+ url: string;
5280
+ method: string;
5281
+ data?: any;
5282
+ }) => void;
5283
+ beforeSubmit?: (state: PaymentData, component: UIElement, actions: BeforeSubmitActions) => Promise<void> | void;
5284
+ onSubmit?: (state: SubmitData, component: UIElement, actions: SubmitActions) => void;
5285
+ onActionHandled?: (actionHandled: ActionHandledReturnObject) => void;
5286
+ onAdditionalDetails?: (state: AdditionalDetailsData, component: UIElement, actions: AdditionalDetailsActions) => void;
5287
+ onChange?: (state: OnChangeData, component: UIElement) => void;
5288
+ onEnterKeyPressed?: (activeElement: Element, component: UIElement) => void;
5289
+ onError?: (error: AdyenCheckoutError, component?: UIElement) => void;
5290
+ onOrderUpdated?: (data: {
5291
+ order: Order;
5292
+ }) => void;
5293
+ onPaymentMethodsRequest?: (data: PaymentMethodsRequestData, actions: {
5294
+ resolve: (response: PaymentMethodsResponse) => void;
5295
+ reject: () => void;
5296
+ }) => void;
5297
+ environment?: string;
5298
+ session?: Session;
5299
+ onComplete?: (state: any, element: UIElement) => void;
5300
+ isInstantPayment?: boolean;
5301
+ isStoredPaymentMethod?: boolean;
5302
+ oneClick?: boolean;
5303
+ statusType?: StatusFromAction;
5304
+ type?: string;
5305
+ name?: string;
5306
+ icon?: string;
5307
+ amount?: PaymentAmount;
5308
+ secondaryAmount?: PaymentAmount;
5309
+ showPayButton?: boolean;
5310
+ payButton?: (options: PayButtonProps) => preact.JSX.Element;
5311
+ loadingContext?: string;
5312
+ createFromAction?: (action: PaymentAction, props: object) => UIElement;
5313
+ clientKey?: string;
5314
+ elementRef?: any;
5315
+ i18n?: Language;
5316
+ label?: string;
5317
+ paymentMethodType?: string;
5318
+ originalAction?: PaymentAction;
5319
+ };
5284
5320
  get icon(): string;
5285
5321
  }
5286
5322
 
5287
5323
  declare class OnlineBankingSKElement extends IssuerListContainer {
5288
5324
  static readonly type = TxVariants.onlineBanking_SK;
5289
5325
  private static readonly termsAndConditions;
5290
- formatProps(props: any): any;
5326
+ formatProps(props: any): {
5327
+ showImage: boolean;
5328
+ termsAndConditions: {
5329
+ translationKey: string;
5330
+ urls: string[];
5331
+ };
5332
+ placeholder?: string;
5333
+ issuers?: IssuerItem[];
5334
+ highlightedIssuers?: string[];
5335
+ showPaymentMethodItemImages?: boolean;
5336
+ showContextualElement?: boolean;
5337
+ paymentMethodId?: string;
5338
+ storedPaymentMethodId?: string;
5339
+ order?: Order;
5340
+ modules?: {
5341
+ srPanel?: SRPanel;
5342
+ analytics?: IAnalytics;
5343
+ resources?: Resources;
5344
+ risk?: RiskElement;
5345
+ };
5346
+ isDropin?: boolean;
5347
+ donation?: DonationOptions;
5348
+ onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
5349
+ onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
5350
+ beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
5351
+ url: string;
5352
+ method: string;
5353
+ data?: any;
5354
+ }) => void;
5355
+ beforeSubmit?: (state: PaymentData, component: UIElement, actions: BeforeSubmitActions) => Promise<void> | void;
5356
+ onSubmit?: (state: SubmitData, component: UIElement, actions: SubmitActions) => void;
5357
+ onActionHandled?: (actionHandled: ActionHandledReturnObject) => void;
5358
+ onAdditionalDetails?: (state: AdditionalDetailsData, component: UIElement, actions: AdditionalDetailsActions) => void;
5359
+ onChange?: (state: OnChangeData, component: UIElement) => void;
5360
+ onEnterKeyPressed?: (activeElement: Element, component: UIElement) => void;
5361
+ onError?: (error: AdyenCheckoutError, component?: UIElement) => void;
5362
+ onOrderUpdated?: (data: {
5363
+ order: Order;
5364
+ }) => void;
5365
+ onPaymentMethodsRequest?: (data: PaymentMethodsRequestData, actions: {
5366
+ resolve: (response: PaymentMethodsResponse) => void;
5367
+ reject: () => void;
5368
+ }) => void;
5369
+ environment?: string;
5370
+ session?: Session;
5371
+ onComplete?: (state: any, element: UIElement) => void;
5372
+ isInstantPayment?: boolean;
5373
+ isStoredPaymentMethod?: boolean;
5374
+ oneClick?: boolean;
5375
+ statusType?: StatusFromAction;
5376
+ type?: string;
5377
+ name?: string;
5378
+ icon?: string;
5379
+ amount?: PaymentAmount;
5380
+ secondaryAmount?: PaymentAmount;
5381
+ showPayButton?: boolean;
5382
+ payButton?: (options: PayButtonProps) => preact.JSX.Element;
5383
+ loadingContext?: string;
5384
+ createFromAction?: (action: PaymentAction, props: object) => UIElement;
5385
+ clientKey?: string;
5386
+ elementRef?: any;
5387
+ i18n?: Language;
5388
+ label?: string;
5389
+ paymentMethodType?: string;
5390
+ originalAction?: PaymentAction;
5391
+ };
5291
5392
  get icon(): string;
5292
5393
  }
5293
5394
 
@@ -5324,6 +5425,7 @@ declare class PromptPayElement extends QRLoaderContainer {
5324
5425
  risk?: RiskElement;
5325
5426
  };
5326
5427
  isDropin?: boolean;
5428
+ donation?: DonationOptions;
5327
5429
  onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
5328
5430
  onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
5329
5431
  beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
@@ -5397,6 +5499,7 @@ declare class DuitNowElement extends QRLoaderContainer {
5397
5499
  risk?: RiskElement;
5398
5500
  };
5399
5501
  isDropin?: boolean;
5502
+ donation?: DonationOptions;
5400
5503
  onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
5401
5504
  onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
5402
5505
  beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
@@ -5441,41 +5544,221 @@ declare class DuitNowElement extends QRLoaderContainer {
5441
5544
  originalAction?: PaymentAction;
5442
5545
  };
5443
5546
  }
5444
-
5445
- declare class TrustlyElement extends RedirectElement {
5446
- static readonly type: TxVariants;
5447
- get displayName(): any;
5448
- protected componentToRender(): h.JSX.Element;
5547
+
5548
+ declare class TrustlyElement extends RedirectElement {
5549
+ static readonly type: TxVariants;
5550
+ get displayName(): any;
5551
+ protected componentToRender(): h.JSX.Element;
5552
+ }
5553
+
5554
+ declare class Riverty extends RedirectElement {
5555
+ static readonly type = TxVariants.riverty;
5556
+ static readonly defaultProps: {
5557
+ type: TxVariants;
5558
+ };
5559
+ formatData(): {
5560
+ paymentMethod: {
5561
+ type: string;
5562
+ subtype: string;
5563
+ };
5564
+ browserInfo: BrowserInfo;
5565
+ };
5566
+ }
5567
+
5568
+ declare class PayByBankUS extends RedirectElement {
5569
+ static readonly type: TxVariants;
5570
+ protected formatProps(props: any): any;
5571
+ formatData(): {
5572
+ paymentMethod: {
5573
+ storedPaymentMethodId: string;
5574
+ type: string;
5575
+ };
5576
+ browserInfo: BrowserInfo;
5577
+ };
5578
+ get displayName(): string;
5579
+ get additionalInfo(): string;
5580
+ get brands(): PaymentMethodBrand[];
5581
+ protected componentToRender(): h.JSX.Element;
5582
+ }
5583
+
5584
+ /**
5585
+ * PayPal Fastlane Reference:
5586
+ * https://developer.paypal.com/docs/checkout/fastlane/reference/#link-customizeyourintegration
5587
+ */
5588
+ /**
5589
+ * Fastlane object available in the window
5590
+ */
5591
+ interface FastlaneWindowInstance {
5592
+ identity: {
5593
+ lookupCustomerByEmail: (email: string) => Promise<{
5594
+ customerContextId: string;
5595
+ }>;
5596
+ triggerAuthenticationFlow: (customerContextId: string, options?: AuthenticationFlowOptions) => Promise<FastlaneAuthenticatedCustomerResult>;
5597
+ getSession: () => Promise<{
5598
+ sessionId: string;
5599
+ }>;
5600
+ };
5601
+ profile: {
5602
+ showShippingAddressSelector: () => Promise<FastlaneShippingAddressSelectorResult>;
5603
+ };
5604
+ setLocale: (locale: string) => void;
5605
+ ConsentComponent: () => Promise<{
5606
+ getRenderState: () => Promise<FastlaneConsentRenderState>;
5607
+ }>;
5608
+ FastlaneWatermarkComponent: (options: {
5609
+ includeAdditionalInfo: boolean;
5610
+ }) => Promise<{
5611
+ render: (container: any) => null;
5612
+ }>;
5613
+ }
5614
+ interface FastlaneConsentRenderState {
5615
+ showConsent: boolean;
5616
+ defaultToggleState?: boolean;
5617
+ termsAndConditionsLink?: string;
5618
+ termsAndConditionsVersion?: string;
5619
+ privacyPolicyLink?: string;
5620
+ }
5621
+ interface FastlaneOptions {
5622
+ intendedExperience: 'externalProcessorCustomConsent';
5623
+ metadata?: {
5624
+ geoLocOverride?: string;
5625
+ };
5626
+ }
5627
+ interface AuthenticationFlowOptions {
5449
5628
  }
5450
-
5451
- declare class Riverty extends RedirectElement {
5452
- static readonly type = TxVariants.riverty;
5453
- static readonly defaultProps: {
5454
- type: TxVariants;
5629
+ interface CardPaymentSource {
5630
+ brand: string;
5631
+ expiry: string;
5632
+ lastDigits: string;
5633
+ name: string;
5634
+ billingAddress: FastlaneAddress;
5635
+ }
5636
+ /**
5637
+ * External types
5638
+ */
5639
+ interface FastlaneShippingAddressSelectorResult {
5640
+ selectionChanged: boolean;
5641
+ selectedAddress: FastlaneShipping;
5642
+ }
5643
+ interface FastlaneAuthenticatedCustomerSucceeded {
5644
+ authenticationState: 'succeeded';
5645
+ profileData: FastlaneProfile;
5646
+ }
5647
+ interface FastlaneAuthenticatedCustomerFailed {
5648
+ authenticationState: 'failed' | 'canceled' | 'not_found';
5649
+ profileData: undefined;
5650
+ }
5651
+ type FastlaneAuthenticatedCustomerResult = FastlaneAuthenticatedCustomerSucceeded | FastlaneAuthenticatedCustomerFailed;
5652
+ interface FastlaneAddress {
5653
+ addressLine1: string;
5654
+ addressLine2: string;
5655
+ adminArea1: string;
5656
+ adminArea2: string;
5657
+ postalCode: string;
5658
+ countryCode: string;
5659
+ phone: {
5660
+ nationalNumber: string;
5661
+ countryCode: string;
5455
5662
  };
5456
- formatData(): {
5457
- paymentMethod: {
5458
- type: string;
5459
- subtype: string;
5460
- };
5461
- browserInfo: BrowserInfo;
5663
+ }
5664
+ interface FastlaneShipping {
5665
+ name: {
5666
+ firstName: string;
5667
+ lastName: string;
5668
+ fullName: string;
5669
+ };
5670
+ address: FastlaneAddress;
5671
+ phoneNumber: {
5672
+ nationalNumber: string;
5673
+ countryCode: string;
5462
5674
  };
5463
5675
  }
5464
-
5465
- declare class PayByBankUS extends RedirectElement {
5466
- static readonly type: TxVariants;
5467
- protected formatProps(props: any): any;
5468
- formatData(): {
5469
- paymentMethod: {
5470
- storedPaymentMethodId: string;
5471
- type: string;
5676
+ interface FastlaneProfile {
5677
+ name: {
5678
+ firstName: string;
5679
+ lastName: string;
5680
+ fullName: string;
5681
+ };
5682
+ shippingAddress: FastlaneShipping;
5683
+ card?: {
5684
+ id: string;
5685
+ paymentSource: {
5686
+ card: CardPaymentSource;
5472
5687
  };
5473
- browserInfo: BrowserInfo;
5474
5688
  };
5475
- get displayName(): string;
5476
- get additionalInfo(): string;
5477
- get brands(): PaymentMethodBrand[];
5478
- protected componentToRender(): h.JSX.Element;
5689
+ }
5690
+ type FastlaneComponentConfiguration = {
5691
+ paymentType: 'fastlane';
5692
+ configuration: {
5693
+ fastlaneSessionId: string;
5694
+ email: string;
5695
+ tokenId: string;
5696
+ lastFour: string;
5697
+ brand: string;
5698
+ };
5699
+ };
5700
+ type FastlaneCardComponentConfiguration = {
5701
+ paymentType: 'card';
5702
+ configuration: {
5703
+ fastlaneConfiguration?: FastlaneSignupConfiguration;
5704
+ };
5705
+ };
5706
+ type FastlaneSignupConfiguration = FastlaneConsentRenderState & {
5707
+ fastlaneSessionId?: string;
5708
+ telephoneNumber?: string;
5709
+ };
5710
+ interface FastlaneData {
5711
+ consentShown: boolean;
5712
+ fastlaneSessionId: string;
5713
+ consentGiven: boolean;
5714
+ consentVersion?: string;
5715
+ telephoneNumber?: string;
5716
+ }
5717
+ type FastlanePaymentMethodConfiguration = FastlaneComponentConfiguration | FastlaneCardComponentConfiguration;
5718
+ interface FastlaneSDKConfiguration {
5719
+ clientKey: string;
5720
+ environment: CoreConfiguration['environment'];
5721
+ locale?: 'en-US' | 'es-US' | 'fr-RS' | 'zh-US';
5722
+ analytics?: Pick<AnalyticsOptions, 'enabled'>;
5723
+ /**
5724
+ * Used to force the Fastlane SDK to return the consent details in case the shopper is not recognized.
5725
+ * Use-case: Developer is testing the flow in another country outside US, which would not get consent details.
5726
+ *
5727
+ * This configuration should not be used for 'live' environment
5728
+ */
5729
+ forceConsentDetails?: boolean;
5730
+ }
5731
+ interface FastlaneConfiguration extends UIElementProps {
5732
+ /**
5733
+ * Card token ID, used to process the payment
5734
+ */
5735
+ tokenId: string;
5736
+ /**
5737
+ * Fastlane session ID
5738
+ */
5739
+ fastlaneSessionId: string;
5740
+ /**
5741
+ * Initial last four digits displayed once the Component is rendered
5742
+ */
5743
+ lastFour: string;
5744
+ /**
5745
+ * Initial brand displayed once the Component is rendered
5746
+ */
5747
+ brand: string;
5748
+ /**
5749
+ * Shopper's email (it will be used in the future to re-authenticate using Fastlane SDK within the Component)
5750
+ */
5751
+ email: string;
5752
+ /**
5753
+ * Used internally by Drop-in. Displays the brand images inside the Drop-in payment method header
5754
+ * @internal
5755
+ */
5756
+ keepBrandsVisible?: boolean;
5757
+ /**
5758
+ * Property returned by the backend. Contains the list of brands supported by Fastlane component
5759
+ * @internal
5760
+ */
5761
+ brands?: string[];
5479
5762
  }
5480
5763
 
5481
5764
  declare class Fastlane extends UIElement<FastlaneConfiguration> {
@@ -5512,6 +5795,44 @@ declare class Fastlane extends UIElement<FastlaneConfiguration> {
5512
5795
  protected componentToRender(): h.JSX.Element;
5513
5796
  }
5514
5797
 
5798
+ interface PreAuthorizedDebitCanadaConfiguration extends UIElementProps {
5799
+ /**
5800
+ * Adds placeholder text to the input fields
5801
+ */
5802
+ placeholders?: PreAuthorizedDebitCanadaPlaceholders;
5803
+ /**
5804
+ * Display the contextual text underneath the input field. Disable it if you are using placeholders instead
5805
+ * @default true
5806
+ */
5807
+ showContextualElement?: boolean;
5808
+ /**
5809
+ * Enables storing the payment method using the Checkbox. Used for Advanced flow only
5810
+ * @default false
5811
+ */
5812
+ enableStoreDetails?: boolean;
5813
+ /**
5814
+ * 'storedPaymentMethodId' coming from a stored PreAuthorizedDebitCanada in /paymentMethods response
5815
+ * @internal
5816
+ */
5817
+ storedPaymentMethodId?: string;
5818
+ /**
5819
+ * 'lastFour' coming from a stored PreAuthorizedDebitCanada in /paymentMethods response
5820
+ * @internal
5821
+ */
5822
+ lastFour?: string;
5823
+ /**
5824
+ * 'label' coming from a stored PreAuthorizedDebitCanada in /paymentMethods response
5825
+ * @internal
5826
+ */
5827
+ label?: string;
5828
+ }
5829
+ interface PreAuthorizedDebitCanadaPlaceholders {
5830
+ ownerName?: string;
5831
+ bankAccountNumber?: string;
5832
+ bankCode?: string;
5833
+ bankLocationId?: string;
5834
+ }
5835
+
5515
5836
  declare class PreAuthorizedDebitCanada extends UIElement<PreAuthorizedDebitCanadaConfiguration> {
5516
5837
  static readonly type = TxVariants.eft_directdebit_CA;
5517
5838
  formatData(): {
@@ -5541,6 +5862,65 @@ declare class PreAuthorizedDebitCanada extends UIElement<PreAuthorizedDebitCanad
5541
5862
  protected componentToRender(): h.JSX.Element;
5542
5863
  }
5543
5864
 
5865
+ declare enum PayToIdentifierEnum {
5866
+ phone = "phone",
5867
+ email = "email",
5868
+ abn = "abn",
5869
+ orgid = "orgid"
5870
+ }
5871
+
5872
+ interface PayIdFormData {
5873
+ email: string;
5874
+ phone: string;
5875
+ abn: string;
5876
+ orgid: string;
5877
+ firstName: string;
5878
+ lastName: string;
5879
+ phoneNumber?: string;
5880
+ phonePrefix?: string;
5881
+ selectedIdentifier: PayToIdentifierEnum;
5882
+ }
5883
+
5884
+ interface BSBFormData {
5885
+ bsb: string;
5886
+ bankAccountNumber: string;
5887
+ firstName: string;
5888
+ lastName: string;
5889
+ }
5890
+
5891
+ type PayToInputOption = 'payid-option' | 'bsb-option';
5892
+ type PayToComponentData = {
5893
+ selectedInput: PayToInputOption;
5894
+ };
5895
+
5896
+ type MandateFrequencyType = 'adhoc' | 'daily' | 'weekly' | 'biWeekly' | 'monthly' | 'quarterly' | 'halfYearly' | 'yearly';
5897
+ interface MandateType {
5898
+ amount: string;
5899
+ amountRule: string;
5900
+ frequency: MandateFrequencyType;
5901
+ startsAt?: string;
5902
+ endsAt: string;
5903
+ remarks: string;
5904
+ count?: string;
5905
+ }
5906
+ type PayToPlaceholdersType = {
5907
+ [K in keyof PayToData]: string;
5908
+ };
5909
+ interface PayToConfiguration extends UIElementProps {
5910
+ /**
5911
+ * Data received from the server to handle the action
5912
+ * @internal
5913
+ */
5914
+ paymentData?: string;
5915
+ data?: PayToData;
5916
+ placeholders?: PayToPlaceholdersType;
5917
+ mandate?: MandateType;
5918
+ payee?: string;
5919
+ }
5920
+ interface PayToData extends PayIdFormData, BSBFormData, PayToComponentData {
5921
+ shopperAccountIdentifier: string;
5922
+ }
5923
+
5544
5924
  /**
5545
5925
  *
5546
5926
  */
@@ -5579,6 +5959,7 @@ declare class PayToElement extends UIElement<PayToConfiguration> {
5579
5959
  risk?: RiskElement;
5580
5960
  };
5581
5961
  isDropin?: boolean;
5962
+ donation?: DonationOptions;
5582
5963
  onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
5583
5964
  onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
5584
5965
  beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
@@ -6117,16 +6498,292 @@ interface IDropin {
6117
6498
  closeActivePaymentMethod: () => void;
6118
6499
  }
6119
6500
 
6501
+ interface SFError {
6502
+ isValid?: boolean;
6503
+ errorMessage?: string;
6504
+ errorI18n?: string;
6505
+ error: string;
6506
+ rootNode: HTMLElement;
6507
+ detectedBrands?: string[];
6508
+ }
6509
+ interface SFStateErrorObj {
6510
+ [key: string]: SFError;
6511
+ }
6512
+
6513
+ interface ValidationRuleErrorObj {
6514
+ [key: string]: ValidationRuleResult;
6515
+ }
6516
+ interface AriaAttributes {
6517
+ 'aria-relevant'?: 'additions' | 'all' | 'removals' | 'text' | 'additions text';
6518
+ 'aria-live'?: 'off' | 'polite' | 'assertive';
6519
+ 'aria-atomic'?: 'true' | 'false';
6520
+ }
6521
+ interface SRPanelProps extends BaseElementProps {
6522
+ enabled?: boolean;
6523
+ node?: string;
6524
+ showPanel?: boolean;
6525
+ moveFocus?: boolean;
6526
+ id?: string;
6527
+ ariaAttributes?: AriaAttributes;
6528
+ }
6529
+ type SRPanelConfig = Pick<SRPanelProps, 'enabled' | 'node' | 'showPanel' | 'moveFocus' | 'id' | 'ariaAttributes'>;
6530
+ interface GenericError {
6531
+ isValid: boolean;
6532
+ errorMessage: string;
6533
+ error: string;
6534
+ }
6535
+
6536
+ /**
6537
+ * A panel meant to hold messages that will be read out by ScreenReaders on an aria-live="polite" basis
6538
+ * Expects a string or string array of message to add to the panel to be read out
6539
+ * For testing purposes can be made visible
6540
+ */
6541
+ declare class SRPanel extends BaseElement<SRPanelProps> {
6542
+ static readonly type = "srPanel";
6543
+ static readonly defaultProps: Partial<SRPanelProps>;
6544
+ private readonly srPanelContainer;
6545
+ private readonly id;
6546
+ private readonly showPanel;
6547
+ private readonly _enabled;
6548
+ private readonly _moveFocus;
6549
+ private componentRef;
6550
+ constructor(checkout: ICore, props?: SRPanelProps);
6551
+ setComponentRef: (ref: any) => void;
6552
+ get enabled(): boolean;
6553
+ get moveFocus(): boolean;
6554
+ setAriaProps(ariaAttributes: AriaAttributes): void;
6555
+ setMessages: (messages: string[] | string) => void;
6556
+ render(): h.JSX.Element;
6557
+ }
6558
+
6559
+ interface BaseElementProps {
6560
+ order?: Order;
6561
+ modules?: {
6562
+ srPanel?: SRPanel;
6563
+ analytics?: IAnalytics;
6564
+ resources?: Resources;
6565
+ risk?: RiskElement;
6566
+ };
6567
+ /**
6568
+ * Identifies if the Element is the DropIn element
6569
+ */
6570
+ isDropin?: boolean;
6571
+ }
6572
+ interface IBaseElement {
6573
+ data: object;
6574
+ state: any;
6575
+ props: any;
6576
+ _id: string;
6577
+ _component: any;
6578
+ render(): ComponentChild | Error;
6579
+ mount(domNode: HTMLElement | string): IBaseElement;
6580
+ update(props: any): IBaseElement;
6581
+ unmount(): IBaseElement;
6582
+ remove(): void;
6583
+ activate(): void;
6584
+ }
6585
+
6586
+ type CoreCallbacks = Pick<CoreConfiguration, 'beforeRedirect' | 'beforeSubmit' | 'onSubmit' | 'onAdditionalDetails' | 'onPaymentFailed' | 'onPaymentCompleted' | 'onOrderUpdated' | 'onPaymentMethodsRequest' | 'onChange' | 'onActionHandled' | 'onError' | 'onEnterKeyPressed' | 'donation'>;
6587
+ type StatusFromAction = 'redirect' | 'loading' | 'custom';
6588
+ type UIElementProps = {
6589
+ paymentMethodId?: string;
6590
+ storedPaymentMethodId?: string;
6591
+ } & BaseElementProps & CoreCallbacks & {
6592
+ environment?: string;
6593
+ session?: Session;
6594
+ onComplete?: (state: any, element: UIElement) => void;
6595
+ isInstantPayment?: boolean;
6596
+ /**
6597
+ * Flags if the element is Stored payment method
6598
+ * @internal
6599
+ */
6600
+ isStoredPaymentMethod?: boolean;
6601
+ /**
6602
+ * Flag if the element is Stored payment method.
6603
+ * Perhaps can be deprecated and we use the one above?
6604
+ * @internal
6605
+ */
6606
+ oneClick?: boolean;
6607
+ /**
6608
+ * Stored payment method id
6609
+ * @internal
6610
+ */
6611
+ storedPaymentMethodId?: string;
6612
+ /**
6613
+ * Status set when creating the Component from action
6614
+ * @internal
6615
+ */
6616
+ statusType?: StatusFromAction;
6617
+ type?: string;
6618
+ name?: string;
6619
+ icon?: string;
6620
+ amount?: PaymentAmount;
6621
+ secondaryAmount?: PaymentAmount;
6622
+ /**
6623
+ * Show/Hide pay button
6624
+ * @defaultValue true
6625
+ */
6626
+ showPayButton?: boolean;
6627
+ /** @internal */
6628
+ payButton?: (options: PayButtonProps) => h.JSX.Element;
6629
+ /** @internal */
6630
+ loadingContext?: string;
6631
+ /** @internal */
6632
+ createFromAction?: (action: PaymentAction, props: object) => UIElement;
6633
+ /** @internal */
6634
+ clientKey?: string;
6635
+ /** @internal */
6636
+ elementRef?: any;
6637
+ /** @internal */
6638
+ i18n?: Language;
6639
+ /**
6640
+ * The shopper’s issuer account label. It can be available for stored payment method
6641
+ * @internal
6642
+ */
6643
+ label?: string;
6644
+ /**
6645
+ * Returned after the payments call, when an action is returned. It represents the payment method tx variant
6646
+ * that was used for the payment
6647
+ * @internal
6648
+ */
6649
+ paymentMethodType?: string;
6650
+ /**
6651
+ * Reference to the action object found in a /payments response. This, in most cases, is passed on to the onActionHandled callback
6652
+ */
6653
+ originalAction?: PaymentAction;
6654
+ };
6655
+ type UIElementStatus = 'ready' | 'loading' | 'error' | 'success';
6656
+ interface ComponentMethodsRef {
6657
+ showValidation?: () => void;
6658
+ setStatus?(status: UIElementStatus): void;
6659
+ }
6660
+
6661
+ type DonationConfiguration = UIElementProps & Omit<DonationComponentProps, 'onDonate' | 'onCancel'> & {
6662
+ onDonate(data: DonationPayload, component: DonationElement): void;
6663
+ onCancel(data: DonationPayload): void;
6664
+ };
6665
+ interface DonationCampaign extends CampaignContentProps {
6666
+ id: string;
6667
+ campaignName: string;
6668
+ donation: Donation;
6669
+ termsAndConditionsUrl?: string;
6670
+ }
6671
+ interface DonationOptions {
6672
+ /**
6673
+ * Optional boolean to delay, or halt, the showing of the Donation component when in the Sessions flow.
6674
+ * Defaults to true.
6675
+ */
6676
+ autoMount?: boolean;
6677
+ /**
6678
+ * Optional number representing the delay in milliseconds before the Donation component is mounted (if mandated by the /payments response in the Sessions flow),
6679
+ * Defaults to 3000.
6680
+ */
6681
+ delay?: number;
6682
+ /**
6683
+ * Callback when the (sessions) donation is completed (or cancelled)
6684
+ * @param didDonate - a boolean stating whether a donation was made (true) or whether the shopper cancelled the donation (false)
6685
+ */
6686
+ onDonationSuccess: (result: {
6687
+ didDonate: boolean;
6688
+ }) => void;
6689
+ /**
6690
+ * Callback when the (sessions) donation fails
6691
+ * @param reason - the reason why the donation failed (could be an error message; or a string, stating for example, that the donation payment was refused)
6692
+ */
6693
+ onDonationFailure: (reason: unknown) => void;
6694
+ }
6695
+ interface DonationCampaignOptions {
6696
+ rootNode: HTMLElement | string;
6697
+ commercialTxAmount: number;
6698
+ }
6699
+ /**
6700
+ * Union type for Donation component instantiation.
6701
+ * - DonationConfiguration: Direct mode (backward compatible) - campaign data already available
6702
+ * - DonationCampaignOptions: Service mode - component fetches campaign data
6703
+ */
6704
+ type DonationProps = DonationConfiguration | DonationCampaignOptions;
6705
+
6706
+ type CheckoutSession = {
6707
+ id: string;
6708
+ sessionData: string;
6709
+ shopperLocale?: string;
6710
+ shopperEmail?: string;
6711
+ telephoneNumber?: string;
6712
+ };
6713
+ type SessionConfiguration = {
6714
+ installmentOptions?: InstallmentOptions;
6715
+ enableStoreDetails?: boolean;
6716
+ };
6717
+ type CheckoutSessionSetupResponse = {
6718
+ id: string;
6719
+ sessionData: string;
6720
+ countryCode?: string;
6721
+ amount: Omit<PaymentAmount, 'currencyDisplay'>;
6722
+ expiresAt: string;
6723
+ paymentMethods: any;
6724
+ returnUrl: string;
6725
+ configuration: SessionConfiguration;
6726
+ /**
6727
+ * 'shopperLocale' set during session creation.
6728
+ * @defaultValue en-US
6729
+ */
6730
+ shopperLocale: string;
6731
+ };
6732
+ type CheckoutSessionPaymentResponse = {
6733
+ sessionData: string;
6734
+ sessionResult: string;
6735
+ status?: string;
6736
+ resultCode: ResultCode;
6737
+ action?: PaymentAction;
6738
+ };
6739
+ type CheckoutSessionDetailsResponse = {
6740
+ sessionData: string;
6741
+ sessionResult: string;
6742
+ resultCode: ResultCode;
6743
+ status?: string;
6744
+ action?: PaymentAction;
6745
+ };
6746
+ type CheckoutSessionBalanceResponse = {
6747
+ sessionData: string;
6748
+ balance?: PaymentAmount;
6749
+ transactionLimit?: PaymentAmount;
6750
+ };
6751
+ type CheckoutSessionOrdersResponse = {
6752
+ sessionData: string;
6753
+ orderData: string;
6754
+ pspReference: string;
6755
+ };
6756
+ type CheckoutSessionDonationCampaignsResponse = {
6757
+ sessionData: string;
6758
+ donationCampaigns: DonationCampaign[];
6759
+ };
6760
+ type CheckoutSessionDonationsResponse = {
6761
+ resultCode: ResultCode;
6762
+ sessionData: string;
6763
+ };
6764
+ type CheckoutSessionDonationsRequestData = {
6765
+ donationCampaignId: string;
6766
+ donationType: DonationType;
6767
+ amount: PaymentAmount;
6768
+ };
6769
+ type SetupSessionOptions = {
6770
+ browserInfo?: BrowserInfo;
6771
+ order?: Order;
6772
+ };
6773
+
6120
6774
  declare class Session {
6121
6775
  private readonly storage;
6122
6776
  readonly session: CheckoutSession;
6123
6777
  readonly clientKey: string;
6124
6778
  readonly loadingContext: string;
6125
6779
  configuration: SessionConfiguration;
6780
+ private _sessionsDonationInitiated;
6126
6781
  constructor(rawSession: Partial<CheckoutSession>, clientKey: string, loadingContext: string);
6127
6782
  get shopperLocale(): string;
6128
6783
  get id(): string;
6129
6784
  get data(): string;
6785
+ set sessionsDonationInitiated(donationInitiated: boolean);
6786
+ get sessionsDonationInitiated(): boolean;
6130
6787
  /**
6131
6788
  * Updates the session.data with the latest data blob
6132
6789
  */
@@ -6143,6 +6800,14 @@ declare class Session {
6143
6800
  * Submits session payment additional details
6144
6801
  */
6145
6802
  submitDetails(data: AdditionalDetailsData['data']): Promise<CheckoutSessionDetailsResponse>;
6803
+ /**
6804
+ * Call donationCampaigns endpoint
6805
+ */
6806
+ fetchDonationCampaigns(): Promise<CheckoutSessionDonationCampaignsResponse>;
6807
+ /**
6808
+ * Call donations endpoint
6809
+ */
6810
+ makeDonation(data: CheckoutSessionDonationsRequestData): Promise<CheckoutSessionDonationsResponse>;
6146
6811
  /**
6147
6812
  * Checks the balance for a payment method
6148
6813
  */
@@ -6312,6 +6977,7 @@ interface CoreConfiguration {
6312
6977
  srConfig?: SRPanelConfig;
6313
6978
  analytics?: AnalyticsOptions;
6314
6979
  risk?: RiskModuleOptions;
6980
+ donation?: DonationOptions;
6315
6981
  order?: Order;
6316
6982
  /**
6317
6983
  * Add @adyen/web metadata to the window object.
@@ -6522,8 +7188,14 @@ interface AmountProviderRef {
6522
7188
  }
6523
7189
 
6524
7190
  declare abstract class UIElement<P extends UIElementProps = UIElementProps> extends BaseElement<P> {
7191
+ /**
7192
+ * componentRef is a ref to the primary component inside the subclass that extends UIElement e.g. CardInput.tsx (which sits inside Card.tsx)
7193
+ */
6525
7194
  protected componentRef: any;
6526
7195
  protected resources: Resources;
7196
+ /**
7197
+ * elementRef is a ref to the subclass that extends UIElement e.g. Card.tsx or Dropin.tsx
7198
+ */
6527
7199
  elementRef: UIElement;
6528
7200
  static readonly type: string | undefined;
6529
7201
  /**
@@ -6571,7 +7243,9 @@ declare abstract class UIElement<P extends UIElementProps = UIElementProps> exte
6571
7243
  */
6572
7244
  updateAmount(amount: PaymentAmount, secondaryAmount?: PaymentAmount): void;
6573
7245
  /**
6574
- * elementRef is a ref to the subclass that extends UIElement e.g. Card.tsx
7246
+ * Set status using elementRef, which:
7247
+ * - If Drop-in, will set status for Dropin component, and then it will propagate the new status for the active payment method component
7248
+ * - If Component, it will set its own status
6575
7249
  */
6576
7250
  setElementStatus(status: UIElementStatus, props?: any): this;
6577
7251
  /**
@@ -6592,6 +7266,7 @@ declare abstract class UIElement<P extends UIElementProps = UIElementProps> exte
6592
7266
  handleAction(action: PaymentAction, props?: {}): UIElement | null;
6593
7267
  protected onActionHandled(actionHandledObj: ActionHandledReturnObject): void;
6594
7268
  protected handleOrder: (response: PaymentResponseData) => void;
7269
+ protected setupSessionsDonation(): void;
6595
7270
  /**
6596
7271
  * Handles when the payment fails. The payment fails when:
6597
7272
  * - adv flow: the merchant rejects the payment due to a critical error
@@ -6956,6 +7631,7 @@ interface PaymentResponseData {
6956
7631
  sessionResult?: string;
6957
7632
  order?: Order;
6958
7633
  donationToken?: string;
7634
+ askDonation?: boolean;
6959
7635
  }
6960
7636
  type RawPaymentResponse = PaymentResponseData & CheckoutAdvancedFlowResponse & {
6961
7637
  [key: string]: any;
@@ -7533,6 +8209,7 @@ declare class PayMeElement extends QRLoaderContainer {
7533
8209
  risk?: RiskElement;
7534
8210
  };
7535
8211
  isDropin?: boolean;
8212
+ donation?: DonationOptions;
7536
8213
  onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
7537
8214
  onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
7538
8215
  beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
@@ -7622,6 +8299,7 @@ declare class DropinElement extends UIElement<DropinConfiguration> implements ID
7622
8299
  risk?: RiskElement;
7623
8300
  };
7624
8301
  isDropin?: boolean;
8302
+ donation?: DonationOptions;
7625
8303
  onPaymentCompleted?: (data: PaymentCompletedData, component?: UIElement) => void;
7626
8304
  onPaymentFailed?: (data?: PaymentFailedData, component?: UIElement) => void;
7627
8305
  beforeRedirect?: (resolve: () => void, reject: () => void, redirectData: {
@@ -8028,4 +8706,4 @@ declare namespace AdyenCheckout {
8028
8706
  }
8029
8707
 
8030
8708
  export { ANCVElement as ANCV, AchElement as Ach, AddressElement as Address, AdyenCheckout, AdyenCheckoutError, Affirm, AfterPay, AfterPayB2B, AmazonPayElement as AmazonPay, ApplePayElement as ApplePay, Atome, BacsElement as BacsDirectDebit, BancontactElement as Bancontact, BankTransferElement as BankTransfer, BCMCMobileElement as BcmcMobile, BillDeskOnlineElement as BillDeskOnline, BillDeskWalletElement as BillDeskWallet, BlikElement as Blik, BoletoElement as Boleto, CardElement as Card, CashAppPay, ClickToPayElement as ClickToPay, Core, CustomCard, DokuElement as Doku, DonationElement as Donation, DotpayElement as Dotpay, DragonpayElement as Dragonpay, DropinElement as Dropin, DuitNowElement as DuitNow, EPSElement as EPS, EcontextElement as Econtext, FacilyPay10x as FacilPay10x, FacilyPay12x as FacilPay12x, FacilyPay3x as FacilPay3x, FacilyPay4x as FacilPay4x, FacilyPay6x as FacilPay6x, Fastlane, FastlaneSDK, GiftcardElement as Giftcard, GiropayElement as Giropay, GooglePay, Iris, IrisMode, KlarnaPayments as Klarna, MBWayElement as MBWay, MealVoucherFRElement as MealVoucherFR, MolPayEBankingMYElement as MolPayEBankingMY, MolPayEBankingTHElement as MolPayEBankingTH, MolPayEbankingVNElement as MolPayEBankingVN, MultibancoElement as Multibanco, OnlineBankingCZElement as OnlineBankingCZ, OnlineBankingFI, OnlineBankingINElement as OnlineBankingIN, OnlineBankingPL, OnlineBankingSKElement as OnlineBankingSK, OxxoElement as Oxxo, PayByBank, PayByBankPixElement as PayByBankPix, PayByBankUS, PayMeElement as PayMe, PayNowElement as PayNow, PaypalElement as PayPal, PayToElement as PayTo, PayuNetCashcardElement as PayuCashcard, PayuNetBankingElement as PayuNetBanking, PersonalDetailsElement as PersonalDetails, PixElement as Pix, PreAuthorizedDebitCanada, PromptPayElement as PromptPay, RatePay, RatePayDirectDebit, RedirectElement as Redirect, Riverty, SepaElement as SepaDirectDebit, SwishElement as Swish, ThreeDS2Challenge, ThreeDS2DeviceFingerprint, TrustlyElement as Trustly, TwintElement as Twint, UIElement, UPI, VippsElement as Vipps, WalletINElement as WalletIN, WeChatPayElement as WeChat, index_d as components, initializeFastlane };
8031
- export type { ANCVConfiguration, ANCVDataState, AchConfiguration, AchPlaceholders, ActionDescriptionType, ActionHandledReturnObject, AdditionalDetailsActions, AdditionalDetailsData, AddressData, AddressField, AmazonPayBackendConfiguration, AmazonPayButtonProps, AmazonPayButtonSettings, AmazonPayComponentProps, AmazonPayConfiguration, AmazonPayElementData, AmazonWindowObject, App, ApplePayButtonStyle, ApplePayButtonType, ApplePayConfiguration, ApplePayElementData, ApplePayPaymentAuthorizationResult, ApplePayPaymentOrderDetails, ApplePaySessionRequest, ApplePayWebConfiguration, AwaitComponentProps, AwaitConfiguration, BankDetailsSchema, BankTransferConfiguration, BankTransferSchema, BankTransferState, BeforeSubmitActions, BinLookupResponse, BinLookupResponseRaw, BoletoConfiguration, BoletoElementProps, BoletoInputDataState, BoletoInputErrorState, BoletoInputValidState, BrandConfiguration, BrandObject, BrowserInfo, CReqData, CardAllValidData, CardAutoCompleteData, CardBackendConfiguration, CardBinLookupData, CardBinValueData, CardBrandData, CardBrandsConfiguration, CardConfigSuccessData, CardConfiguration, CardElementData, CardErrorData, CardFieldValidData, CardFocusData, CardLoadData, CardPlaceholders, CashAppPayConfiguration, CashAppPayElementData, CashAppPayEventData, ChallengeData, ChallengeResolveData, ChallengeWindowSize, ChangeActionOptions, ChangePaymentDetailsButtonProps, ChargeAmount, CheckoutAdvancedFlowResponse, CheckoutDetailsRequest, CheckoutSession, CheckoutSessionConfig, ClickToPayConfiguration, ClickToPayPaymentData, ClickToPayProps, ClickToPayScheme, CommonVoucherProps, ComponentFocusObject, ComponentMethodsRef, CoreConfiguration, CoreModules, Currency, CustomCardConfiguration, CustomTranslations, DecodeObject, DeliverySpecifications, DokuVoucherResultProps, DonationConfiguration, DragonpayConfiguraton, DragonpayInputData, DragonpayInputIssuerItem, DragonpayInputProps, DragonpayVoucherResultProps, DropinComponentProps, DropinComponentState, DropinConfiguration, DropinStatus, DropinStatusProps, DualBrandButtons, DualBrandSelectElement, DualBrandingChangeHandler, EcontextConfiguration, EcontextInputSchema, EcontextVoucherResultProps, ErrorCodeObject, ExtendedMerchantInfo, FastlaneAddress, FastlaneAuthenticatedCustomerResult, FastlaneConfiguration, FastlaneConsentRenderState, FastlaneData, FastlaneOptions, FastlanePaymentMethodConfiguration, FastlaneProfile, FastlaneSDKConfiguration, FastlaneShipping, FastlaneShippingAddressSelectorResult, FastlaneSignupConfiguration, FastlaneWindowInstance, FieldsetVisibility, FingerPrintData, FingerprintResolveData, FundingSource, FundingSourceKeys, GiftCardBalanceCheckErrorType, GiftCardConfiguration, GiftCardElementData, GiftCardValidationError, GooglePayConfiguration, GooglePaymentDataRequest, ICore, IDropin, InstantPaymentTypes, Intent, IrisConfiguration, IrisData, IssuerListConfiguration, IssuerListData, KlarnaAction, KlarnaAdditionalDetailsData, KlarnaComponentRef, KlarnaConfiguration, KlarnaSdkData, KlarnaWidgetAuthorizeResponse, KlarnaWidgetProps, LedgerCurrencies, LegacyChallengeResolveData, LegacyFingerprintResolveData, MandateFrequencyType, MandateType, OnChangeData, OpenInvoiceActiveFieldsets, OpenInvoiceConfiguration, OpenInvoiceFieldsetsRefs, OpenInvoiceProps, OpenInvoiceStateData, OpenInvoiceStateError, OpenInvoiceStateValid, OpenInvoiceVisibility, Order, OrderButtonProps, OrderStatus, PayPalConfiguration, PayToConfiguration, PayToData, PayToPlaceholdersType, PayloadJSON, PaymentAction, PaymentActionsType, PaymentAmount, PaymentCompletedData, PaymentData, PaymentFailedData, PaymentMethodBrand, PaymentMethodData, PaymentMethodGroup, PaymentMethodOptions, PaymentMethods, PaymentMethodsConfiguration, PaymentMethodsRequestData, PaymentMethodsResponse, PaymentResponseData, PersonalDetailsSchema, PixConfiguration, PixElementData, PostMsgParseErrorObject, PreAuthorizedDebitCanadaConfiguration, PreAuthorizedDebitCanadaPlaceholders, ProcessedPaymentStatusResponse, QRLoaderConfiguration, RawPaymentMethod, RawPaymentResponse, RawPaymentStatusResponse, RawStoredPaymentMethod, RecurringMetadata, RedirectConfiguration, Region, ResultCode, ResultObject, ResultValue, SepaConfiguration, SepaElementData, SessionsResponse, SignOutButtonProps, SocialSecurityMode, StatusFromAction, SubmitActions, SubmitData, SupportedLocale, SupportedPayPalFundingSources, ThreeDS2ActionProps, ThreeDS2ChallengeConfiguration, ThreeDS2ConfigProps, ThreeDS2DeviceFingerprintConfiguration, ThreeDS2FingerprintResponse, ThreeDS2FlowObject, ThreeDS2FlowProps, ThreeDS2Token, UIElementProps, UIElementStatus, UPIAppList, UPIConfiguration, UpdateAmazonCheckoutSessionRequest, UpiMode, UpiPaymentData, UpiType, ValidationError, VoucherConfiguration, VoucherDetail, VoucherProps, balanceCheckResponseType, onBalanceCheckCallbackType, onOrderCancelData, onOrderCancelType, onOrderRequestCallbackType, onRequiringConfirmationCallbackType };
8709
+ export type { ANCVConfiguration, ANCVDataState, AchConfiguration, AchPlaceholders, ActionDescriptionType, ActionHandledReturnObject, AdditionalDetailsActions, AdditionalDetailsData, AddressData, AddressField, AmazonPayBackendConfiguration, AmazonPayButtonProps, AmazonPayButtonSettings, AmazonPayComponentProps, AmazonPayConfiguration, AmazonPayElementData, AmazonWindowObject, App, ApplePayButtonStyle, ApplePayButtonType, ApplePayConfiguration, ApplePayElementData, ApplePayPaymentAuthorizationResult, ApplePayPaymentOrderDetails, ApplePaySessionRequest, ApplePayWebConfiguration, AwaitComponentProps, AwaitConfiguration, BankDetailsSchema, BankTransferConfiguration, BankTransferSchema, BankTransferState, BeforeSubmitActions, BinLookupResponse, BinLookupResponseRaw, BoletoConfiguration, BoletoElementProps, BoletoInputDataState, BoletoInputErrorState, BoletoInputValidState, BrandConfiguration, BrandObject, BrowserInfo, CReqData, CardAllValidData, CardAutoCompleteData, CardBackendConfiguration, CardBinLookupData, CardBinValueData, CardBrandData, CardBrandsConfiguration, CardConfigSuccessData, CardConfiguration, CardElementData, CardErrorData, CardFieldValidData, CardFocusData, CardLoadData, CardPlaceholders, CashAppPayConfiguration, CashAppPayElementData, CashAppPayEventData, ChallengeData, ChallengeResolveData, ChallengeWindowSize, ChangeActionOptions, ChangePaymentDetailsButtonProps, ChargeAmount, CheckoutAdvancedFlowResponse, CheckoutDetailsRequest, CheckoutSession, CheckoutSessionConfig, ClickToPayConfiguration, ClickToPayPaymentData, ClickToPayProps, ClickToPayScheme, CommonVoucherProps, ComponentFocusObject, ComponentMethodsRef, CoreConfiguration, CoreModules, Currency, CustomCardConfiguration, CustomTranslations, DecodeObject, DeliverySpecifications, DokuVoucherResultProps, DonationCampaign, DonationCampaignOptions, DonationConfiguration, DonationOptions, DonationProps, DragonpayConfiguraton, DragonpayInputData, DragonpayInputIssuerItem, DragonpayInputProps, DragonpayVoucherResultProps, DropinComponentProps, DropinComponentState, DropinConfiguration, DropinStatus, DropinStatusProps, DualBrandButtons, DualBrandSelectElement, DualBrandingChangeHandler, EcontextConfiguration, EcontextInputSchema, EcontextVoucherResultProps, ErrorCodeObject, ExtendedMerchantInfo, FastlaneAddress, FastlaneAuthenticatedCustomerResult, FastlaneConfiguration, FastlaneConsentRenderState, FastlaneData, FastlaneOptions, FastlanePaymentMethodConfiguration, FastlaneProfile, FastlaneSDKConfiguration, FastlaneShipping, FastlaneShippingAddressSelectorResult, FastlaneSignupConfiguration, FastlaneWindowInstance, FieldsetVisibility, FingerPrintData, FingerprintResolveData, FundingSource, FundingSourceKeys, GiftCardBalanceCheckErrorType, GiftCardConfiguration, GiftCardElementData, GiftCardValidationError, GooglePayConfiguration, GooglePaymentDataRequest, ICore, IDropin, InstantPaymentTypes, Intent, IrisConfiguration, IrisData, IrisState, IssuerListConfiguration, IssuerListData, KlarnaAction, KlarnaAdditionalDetailsData, KlarnaComponentRef, KlarnaConfiguration, KlarnaSdkData, KlarnaWidgetAuthorizeResponse, KlarnaWidgetProps, LedgerCurrencies, LegacyChallengeResolveData, LegacyFingerprintResolveData, MandateFrequencyType, MandateType, OnChangeData, OpenInvoiceActiveFieldsets, OpenInvoiceConfiguration, OpenInvoiceFieldsetsRefs, OpenInvoiceProps, OpenInvoiceStateData, OpenInvoiceStateError, OpenInvoiceStateValid, OpenInvoiceVisibility, Order, OrderButtonProps, OrderStatus, PayPalConfiguration, PayToConfiguration, PayToData, PayToPlaceholdersType, PayloadJSON, PaymentAction, PaymentActionsType, PaymentAmount, PaymentCompletedData, PaymentData, PaymentFailedData, PaymentMethodBrand, PaymentMethodData, PaymentMethodGroup, PaymentMethodOptions, PaymentMethods, PaymentMethodsConfiguration, PaymentMethodsRequestData, PaymentMethodsResponse, PaymentResponseData, PersonalDetailsSchema, PixConfiguration, PixElementData, PostMsgParseErrorObject, PreAuthorizedDebitCanadaConfiguration, PreAuthorizedDebitCanadaPlaceholders, ProcessedPaymentStatusResponse, QRLoaderConfiguration, RawPaymentMethod, RawPaymentResponse, RawPaymentStatusResponse, RawStoredPaymentMethod, RecurringMetadata, RedirectConfiguration, Region, ResultCode, ResultObject, ResultValue, SepaConfiguration, SepaElementData, SessionsResponse, SignOutButtonProps, SocialSecurityMode, StatusFromAction, SubmitActions, SubmitData, SupportedLocale, SupportedPayPalFundingSources, ThreeDS2ActionProps, ThreeDS2ChallengeConfiguration, ThreeDS2ConfigProps, ThreeDS2DeviceFingerprintConfiguration, ThreeDS2FingerprintResponse, ThreeDS2FlowObject, ThreeDS2FlowProps, ThreeDS2Token, UIElementProps, UIElementStatus, UPIAppList, UPIConfiguration, UpdateAmazonCheckoutSessionRequest, UpiMode, UpiPaymentData, UpiType, ValidationError, VoucherConfiguration, VoucherDetail, VoucherProps, balanceCheckResponseType, onBalanceCheckCallbackType, onOrderCancelData, onOrderCancelType, onOrderRequestCallbackType, onRequiringConfirmationCallbackType };