@stripe/stripe-react-native 0.64.0 → 0.64.1

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 (242) hide show
  1. package/README.md +2 -2
  2. package/android/build.gradle +2 -2
  3. package/android/detekt/detekt-baseline.xml +81 -0
  4. package/android/detekt/detekt.gradle +45 -0
  5. package/android/detekt/detekt.yml +722 -0
  6. package/android/gradle.properties +4 -4
  7. package/android/src/main/java/com/reactnativestripesdk/AuBECSDebitFormView.kt +3 -1
  8. package/android/src/main/java/com/reactnativestripesdk/AuBECSDebitFormViewManager.kt +2 -1
  9. package/android/src/main/java/com/reactnativestripesdk/CardFieldView.kt +5 -1
  10. package/android/src/main/java/com/reactnativestripesdk/CurrencySelectorElementView.kt +26 -0
  11. package/android/src/main/java/com/reactnativestripesdk/CurrencySelectorElementViewManager.kt +42 -0
  12. package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementView.kt +105 -49
  13. package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementViewManager.kt +72 -12
  14. package/android/src/main/java/com/reactnativestripesdk/FinancialConnectionsSheetManager.kt +8 -4
  15. package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonManager.kt +2 -1
  16. package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonView.kt +26 -11
  17. package/android/src/main/java/com/reactnativestripesdk/GooglePayLauncherManager.kt +2 -1
  18. package/android/src/main/java/com/reactnativestripesdk/NavigationBarView.kt +14 -5
  19. package/android/src/main/java/com/reactnativestripesdk/PaymentElementConfig.kt +6 -2
  20. package/android/src/main/java/com/reactnativestripesdk/PaymentLauncherManager.kt +2 -2
  21. package/android/src/main/java/com/reactnativestripesdk/PaymentMethodCreateParamsFactory.kt +2 -1
  22. package/android/src/main/java/com/reactnativestripesdk/PaymentMethodMessagingElementConfig.kt +7 -4
  23. package/android/src/main/java/com/reactnativestripesdk/PaymentMethodMessagingElementViewManager.kt +2 -1
  24. package/android/src/main/java/com/reactnativestripesdk/PaymentOptionDisplayDataMapper.kt +8 -4
  25. package/android/src/main/java/com/reactnativestripesdk/PaymentSheetAppearance.kt +9 -3
  26. package/android/src/main/java/com/reactnativestripesdk/PaymentSheetManager.kt +110 -29
  27. package/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +250 -12
  28. package/android/src/main/java/com/reactnativestripesdk/StripeSdkPackage.kt +1 -0
  29. package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressLauncherManager.kt +2 -1
  30. package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetView.kt +3 -1
  31. package/android/src/main/java/com/reactnativestripesdk/customersheet/CustomerSheetManager.kt +6 -2
  32. package/android/src/main/java/com/reactnativestripesdk/customersheet/ReactNativeCustomerAdapter.kt +3 -1
  33. package/android/src/main/java/com/reactnativestripesdk/customersheet/ReactNativeCustomerSessionProvider.kt +2 -1
  34. package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonManager.kt +2 -1
  35. package/android/src/main/java/com/reactnativestripesdk/utils/CheckoutAddressUpdate.kt +45 -0
  36. package/android/src/main/java/com/reactnativestripesdk/utils/CheckoutMappers.kt +101 -0
  37. package/android/src/main/java/com/reactnativestripesdk/utils/Errors.kt +4 -2
  38. package/android/src/main/java/com/reactnativestripesdk/utils/Extensions.kt +5 -1
  39. package/android/src/main/java/com/reactnativestripesdk/utils/Mappers.kt +29 -17
  40. package/android/src/main/java/com/reactnativestripesdk/utils/PostalCodeUtilities.kt +2 -1
  41. package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerDelegate.java +6 -0
  42. package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerInterface.java +2 -0
  43. package/android/src/oldarch/java/com/facebook/react/viewmanagers/StripeCurrencySelectorElementManagerDelegate.java +35 -0
  44. package/android/src/oldarch/java/com/facebook/react/viewmanagers/StripeCurrencySelectorElementManagerInterface.java +18 -0
  45. package/android/src/oldarch/java/com/reactnativestripesdk/NativeStripeSdkModuleSpec.java +44 -0
  46. package/android/src/test/java/com/reactnativestripesdk/PaymentMethodMessagingElementConfigTest.kt +3 -3
  47. package/android/src/test/java/com/reactnativestripesdk/mappers/MappersTest.kt +60 -0
  48. package/android/src/test/java/com/reactnativestripesdk/mappers/OnrampMappersTest.kt +38 -0
  49. package/android/src/test/java/com/reactnativestripesdk/mappers/PaymentOptionDisplayDataMapperTest.kt +9 -4
  50. package/android/src/test/java/com/reactnativestripesdk/utils/CheckoutMappersTest.kt +89 -0
  51. package/android/src/test/java/com/reactnativestripesdk/utils/CheckoutTestFixtures.java +49 -0
  52. package/ios/ConnectAccountOnboarding/ConnectAccountOnboardingViewController.swift +6 -8
  53. package/ios/CurrencySelectorElementManager.m +9 -0
  54. package/ios/CurrencySelectorElementManager.swift +12 -0
  55. package/ios/CurrencySelectorElementView.swift +24 -0
  56. package/ios/Mappers+Checkout.swift +193 -0
  57. package/ios/Mappers.swift +0 -5
  58. package/ios/NewArch/EmbeddedPaymentElementViewComponentView.mm +16 -2
  59. package/ios/NewArch/StripeCurrencySelectorElementComponentView.h +10 -0
  60. package/ios/NewArch/StripeCurrencySelectorElementComponentView.mm +75 -0
  61. package/ios/PaymentMethodMessagingElementConfig.swift +6 -3
  62. package/ios/PaymentMethodMessagingElementView.swift +19 -0
  63. package/ios/StripeSdk.mm +123 -0
  64. package/ios/StripeSdkImpl+Checkout.swift +308 -0
  65. package/ios/StripeSdkImpl+Embedded.swift +108 -27
  66. package/ios/StripeSdkImpl+PaymentSheet.swift +18 -2
  67. package/ios/StripeSdkImpl.swift +3 -93
  68. package/jest/mock.js +14 -1
  69. package/lib/commonjs/components/AddToWalletButton.js +1 -1
  70. package/lib/commonjs/components/AddToWalletButton.js.map +1 -1
  71. package/lib/commonjs/components/AddressSheet.js +1 -1
  72. package/lib/commonjs/components/AddressSheet.js.map +1 -1
  73. package/lib/commonjs/components/AuBECSDebitForm.js +1 -1
  74. package/lib/commonjs/components/AuBECSDebitForm.js.map +1 -1
  75. package/lib/commonjs/components/CardField.js +1 -1
  76. package/lib/commonjs/components/CardField.js.map +1 -1
  77. package/lib/commonjs/components/CardForm.js +1 -1
  78. package/lib/commonjs/components/CardForm.js.map +1 -1
  79. package/lib/commonjs/components/CurrencySelectorElement.js +2 -0
  80. package/lib/commonjs/components/CurrencySelectorElement.js.map +1 -0
  81. package/lib/commonjs/components/PaymentMethodMessagingElement.js +2 -0
  82. package/lib/commonjs/components/PaymentMethodMessagingElement.js.map +1 -0
  83. package/lib/commonjs/components/PlatformPayButton.js +1 -1
  84. package/lib/commonjs/components/PlatformPayButton.js.map +1 -1
  85. package/lib/commonjs/components/StripeContainer.js +1 -1
  86. package/lib/commonjs/components/StripeContainer.js.map +1 -1
  87. package/lib/commonjs/connect/Components.js +1 -1
  88. package/lib/commonjs/connect/Components.js.map +1 -1
  89. package/lib/commonjs/connect/ConnectComponentsProvider.js +1 -1
  90. package/lib/commonjs/connect/ConnectComponentsProvider.js.map +1 -1
  91. package/lib/commonjs/connect/EmbeddedComponent.js +1 -1
  92. package/lib/commonjs/connect/EmbeddedComponent.js.map +1 -1
  93. package/lib/commonjs/connect/ModalCloseButton.js +1 -1
  94. package/lib/commonjs/connect/ModalCloseButton.js.map +1 -1
  95. package/lib/commonjs/connect/NavigationBar.js +1 -1
  96. package/lib/commonjs/connect/NavigationBar.js.map +1 -1
  97. package/lib/commonjs/events.js.map +1 -1
  98. package/lib/commonjs/functions.js +1 -1
  99. package/lib/commonjs/functions.js.map +1 -1
  100. package/lib/commonjs/helpers.js +1 -1
  101. package/lib/commonjs/hooks/useCheckout.js +2 -0
  102. package/lib/commonjs/hooks/useCheckout.js.map +1 -0
  103. package/lib/commonjs/hooks/useOnramp.js +1 -1
  104. package/lib/commonjs/hooks/useOnramp.js.map +1 -1
  105. package/lib/commonjs/index.js +1 -1
  106. package/lib/commonjs/index.js.map +1 -1
  107. package/lib/commonjs/specs/NativeAddToWalletButton.js +1 -1
  108. package/lib/commonjs/specs/NativeAddressSheet.js +1 -1
  109. package/lib/commonjs/specs/NativeApplePayButton.js +1 -1
  110. package/lib/commonjs/specs/NativeAuBECSDebitForm.js +1 -1
  111. package/lib/commonjs/specs/NativeCardField.js +1 -1
  112. package/lib/commonjs/specs/NativeCardField.js.map +1 -1
  113. package/lib/commonjs/specs/NativeCardForm.js +1 -1
  114. package/lib/commonjs/specs/NativeCardForm.js.map +1 -1
  115. package/lib/commonjs/specs/NativeConnectAccountOnboardingView.js +1 -1
  116. package/lib/commonjs/specs/NativeCurrencySelectorElement.js +2 -0
  117. package/lib/commonjs/specs/NativeCurrencySelectorElement.js.map +1 -0
  118. package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js +1 -1
  119. package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js.map +1 -1
  120. package/lib/commonjs/specs/NativeGooglePayButton.js +1 -1
  121. package/lib/commonjs/specs/NativeNavigationBar.js +1 -1
  122. package/lib/commonjs/specs/NativePaymentMethodMessagingElement.js +1 -1
  123. package/lib/commonjs/specs/NativePaymentMethodMessagingElement.js.map +1 -1
  124. package/lib/commonjs/specs/NativeStripeContainer.js +1 -1
  125. package/lib/commonjs/specs/NativeStripeSdkModule.js.map +1 -1
  126. package/lib/commonjs/types/Checkout.js +2 -0
  127. package/lib/commonjs/types/Checkout.js.map +1 -0
  128. package/lib/commonjs/types/EmbeddedPaymentElement.js +1 -1
  129. package/lib/commonjs/types/EmbeddedPaymentElement.js.map +1 -1
  130. package/lib/commonjs/types/PaymentSheet.js.map +1 -1
  131. package/lib/module/components/AddToWalletButton.js +1 -1
  132. package/lib/module/components/AddToWalletButton.js.map +1 -1
  133. package/lib/module/components/AddressSheet.js +1 -1
  134. package/lib/module/components/AddressSheet.js.map +1 -1
  135. package/lib/module/components/AuBECSDebitForm.js +1 -1
  136. package/lib/module/components/AuBECSDebitForm.js.map +1 -1
  137. package/lib/module/components/CardField.js +1 -1
  138. package/lib/module/components/CardField.js.map +1 -1
  139. package/lib/module/components/CardForm.js +1 -1
  140. package/lib/module/components/CardForm.js.map +1 -1
  141. package/lib/module/components/CurrencySelectorElement.js +2 -0
  142. package/lib/module/components/CurrencySelectorElement.js.map +1 -0
  143. package/lib/module/components/PaymentMethodMessagingElement.js +2 -0
  144. package/lib/module/components/PaymentMethodMessagingElement.js.map +1 -0
  145. package/lib/module/components/PlatformPayButton.js +1 -1
  146. package/lib/module/components/PlatformPayButton.js.map +1 -1
  147. package/lib/module/components/StripeContainer.js +1 -1
  148. package/lib/module/components/StripeContainer.js.map +1 -1
  149. package/lib/module/connect/Components.js +1 -1
  150. package/lib/module/connect/Components.js.map +1 -1
  151. package/lib/module/connect/ConnectComponentsProvider.js +1 -1
  152. package/lib/module/connect/ConnectComponentsProvider.js.map +1 -1
  153. package/lib/module/connect/EmbeddedComponent.js +1 -1
  154. package/lib/module/connect/EmbeddedComponent.js.map +1 -1
  155. package/lib/module/connect/ModalCloseButton.js +1 -1
  156. package/lib/module/connect/ModalCloseButton.js.map +1 -1
  157. package/lib/module/connect/NavigationBar.js +1 -1
  158. package/lib/module/connect/NavigationBar.js.map +1 -1
  159. package/lib/module/events.js.map +1 -1
  160. package/lib/module/functions.js +1 -1
  161. package/lib/module/functions.js.map +1 -1
  162. package/lib/module/helpers.js +1 -1
  163. package/lib/module/hooks/useCheckout.js +2 -0
  164. package/lib/module/hooks/useCheckout.js.map +1 -0
  165. package/lib/module/hooks/useOnramp.js +1 -1
  166. package/lib/module/hooks/useOnramp.js.map +1 -1
  167. package/lib/module/index.js +1 -1
  168. package/lib/module/index.js.map +1 -1
  169. package/lib/module/specs/NativeAddToWalletButton.js +1 -1
  170. package/lib/module/specs/NativeAddressSheet.js +1 -1
  171. package/lib/module/specs/NativeApplePayButton.js +1 -1
  172. package/lib/module/specs/NativeAuBECSDebitForm.js +1 -1
  173. package/lib/module/specs/NativeCardField.js +1 -1
  174. package/lib/module/specs/NativeCardField.js.map +1 -1
  175. package/lib/module/specs/NativeCardForm.js +1 -1
  176. package/lib/module/specs/NativeCardForm.js.map +1 -1
  177. package/lib/module/specs/NativeConnectAccountOnboardingView.js +1 -1
  178. package/lib/module/specs/NativeCurrencySelectorElement.js +2 -0
  179. package/lib/module/specs/NativeCurrencySelectorElement.js.map +1 -0
  180. package/lib/module/specs/NativeEmbeddedPaymentElement.js +1 -1
  181. package/lib/module/specs/NativeEmbeddedPaymentElement.js.map +1 -1
  182. package/lib/module/specs/NativeGooglePayButton.js +1 -1
  183. package/lib/module/specs/NativeNavigationBar.js +1 -1
  184. package/lib/module/specs/NativePaymentMethodMessagingElement.js +1 -1
  185. package/lib/module/specs/NativePaymentMethodMessagingElement.js.map +1 -1
  186. package/lib/module/specs/NativeStripeContainer.js +1 -1
  187. package/lib/module/specs/NativeStripeSdkModule.js.map +1 -1
  188. package/lib/module/types/Checkout.js +2 -0
  189. package/lib/module/types/Checkout.js.map +1 -0
  190. package/lib/module/types/EmbeddedPaymentElement.js +1 -1
  191. package/lib/module/types/EmbeddedPaymentElement.js.map +1 -1
  192. package/lib/module/types/PaymentSheet.js.map +1 -1
  193. package/lib/typescript/src/components/CurrencySelectorElement.d.ts +62 -0
  194. package/lib/typescript/src/components/CurrencySelectorElement.d.ts.map +1 -0
  195. package/lib/typescript/src/components/PaymentMethodMessagingElement.d.ts +41 -0
  196. package/lib/typescript/src/components/PaymentMethodMessagingElement.d.ts.map +1 -0
  197. package/lib/typescript/src/events.d.ts +11 -0
  198. package/lib/typescript/src/events.d.ts.map +1 -1
  199. package/lib/typescript/src/functions.d.ts.map +1 -1
  200. package/lib/typescript/src/hooks/useCheckout.d.ts +21 -0
  201. package/lib/typescript/src/hooks/useCheckout.d.ts.map +1 -0
  202. package/lib/typescript/src/hooks/useOnramp.d.ts +1 -0
  203. package/lib/typescript/src/hooks/useOnramp.d.ts.map +1 -1
  204. package/lib/typescript/src/index.d.ts +3 -0
  205. package/lib/typescript/src/index.d.ts.map +1 -1
  206. package/lib/typescript/src/specs/NativeCurrencySelectorElement.d.ts +25 -0
  207. package/lib/typescript/src/specs/NativeCurrencySelectorElement.d.ts.map +1 -0
  208. package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts +5 -1
  209. package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts.map +1 -1
  210. package/lib/typescript/src/specs/NativePaymentMethodMessagingElement.d.ts +1 -6
  211. package/lib/typescript/src/specs/NativePaymentMethodMessagingElement.d.ts.map +1 -1
  212. package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts +16 -1
  213. package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts.map +1 -1
  214. package/lib/typescript/src/types/Checkout.d.ts +336 -0
  215. package/lib/typescript/src/types/Checkout.d.ts.map +1 -0
  216. package/lib/typescript/src/types/EmbeddedPaymentElement.d.ts +36 -1
  217. package/lib/typescript/src/types/EmbeddedPaymentElement.d.ts.map +1 -1
  218. package/lib/typescript/src/types/PaymentMethod.d.ts +1 -5
  219. package/lib/typescript/src/types/PaymentMethod.d.ts.map +1 -1
  220. package/lib/typescript/src/types/PaymentSheet.d.ts +22 -6
  221. package/lib/typescript/src/types/PaymentSheet.d.ts.map +1 -1
  222. package/lib/typescript/src/types/components/PaymentMethodMessagingElementComponent.d.ts +16 -1
  223. package/lib/typescript/src/types/components/PaymentMethodMessagingElementComponent.d.ts.map +1 -1
  224. package/package.json +21 -7
  225. package/src/components/CurrencySelectorElement.tsx +95 -0
  226. package/src/components/PaymentMethodMessagingElement.tsx +109 -0
  227. package/src/events.ts +11 -0
  228. package/src/functions.ts +30 -1
  229. package/src/hooks/useCheckout.tsx +207 -0
  230. package/src/hooks/useOnramp.tsx +9 -3
  231. package/src/index.tsx +4 -0
  232. package/src/specs/NativeCurrencySelectorElement.ts +35 -0
  233. package/src/specs/NativeEmbeddedPaymentElement.ts +12 -2
  234. package/src/specs/NativePaymentMethodMessagingElement.ts +0 -7
  235. package/src/specs/NativeStripeSdkModule.ts +58 -1
  236. package/src/types/Checkout.ts +377 -0
  237. package/src/types/EmbeddedPaymentElement.tsx +117 -26
  238. package/src/types/PaymentMethod.ts +0 -6
  239. package/src/types/PaymentSheet.ts +29 -6
  240. package/src/types/components/PaymentMethodMessagingElementComponent.tsx +17 -1
  241. package/stripe-react-native.podspec +8 -8
  242. package/android/spotless.gradle +0 -19
@@ -7,7 +7,8 @@ import type { UnsafeMixed } from './utils';
7
7
 
8
8
  export interface NativeProps extends ViewProps {
9
9
  configuration: UnsafeMixed<EmbeddedPaymentElementConfiguration>;
10
- intentConfiguration: UnsafeMixed<IntentConfiguration>;
10
+ intentConfiguration?: UnsafeMixed<IntentConfiguration>;
11
+ checkout?: UnsafeMixed<{ sessionKey: string }>;
11
12
  }
12
13
 
13
14
  export interface NativeCommands {
@@ -19,10 +20,19 @@ export interface NativeCommands {
19
20
  viewRef: React.ElementRef<HostComponent<NativeProps>>,
20
21
  intentConfigurationJson: string
21
22
  ) => void;
23
+ updateWithCheckout: (
24
+ viewRef: React.ElementRef<HostComponent<NativeProps>>,
25
+ sessionKey: string
26
+ ) => void;
22
27
  }
23
28
 
24
29
  export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
25
- supportedCommands: ['confirm', 'clearPaymentOption', 'update'],
30
+ supportedCommands: [
31
+ 'confirm',
32
+ 'clearPaymentOption',
33
+ 'update',
34
+ 'updateWithCheckout',
35
+ ],
26
36
  });
27
37
 
28
38
  type ComponentType = HostComponent<NativeProps>;
@@ -1,21 +1,14 @@
1
1
  import type { HostComponent, ViewProps } from 'react-native';
2
- import type { DirectEventHandler } from 'react-native/Libraries/Types/CodegenTypes';
3
2
  import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
4
3
  import {
5
4
  PaymentMethodMessagingElementAppearance,
6
5
  PaymentMethodMessagingElementConfiguration,
7
- PaymentMethodMessagingElementState,
8
6
  } from '../types/components/PaymentMethodMessagingElementComponent';
9
7
  import { UnsafeMixed } from './utils';
10
8
 
11
- interface StateChangeEvent {
12
- result: UnsafeMixed<PaymentMethodMessagingElementState>;
13
- }
14
-
15
9
  export interface NativeProps extends ViewProps {
16
10
  appearance?: UnsafeMixed<PaymentMethodMessagingElementAppearance>;
17
11
  configuration: UnsafeMixed<PaymentMethodMessagingElementConfiguration>;
18
- onStateChange: DirectEventHandler<StateChangeEvent>;
19
12
  }
20
13
 
21
14
  type ComponentType = HostComponent<NativeProps>;
@@ -36,6 +36,7 @@ import type {
36
36
  VerifyMicrodepositsParams,
37
37
  CreateRadarSessionResult,
38
38
  } from '../types';
39
+ import type { Checkout } from '../types/Checkout';
39
40
  import type {
40
41
  EmbeddedPaymentElementConfiguration,
41
42
  EmbeddedPaymentElementResult,
@@ -198,15 +199,71 @@ export interface Spec extends TurboModule {
198
199
  intentConfig: UnsafeObject<IntentConfiguration>,
199
200
  configuration: UnsafeObject<EmbeddedPaymentElementConfiguration>
200
201
  ): Promise<void>;
202
+ createEmbeddedPaymentElementWithCheckout(
203
+ sessionKey: string,
204
+ configuration: UnsafeObject<EmbeddedPaymentElementConfiguration>
205
+ ): Promise<void>;
201
206
  confirmEmbeddedPaymentElement(
202
207
  viewTag: Int32
203
208
  ): Promise<EmbeddedPaymentElementResult>;
204
209
  updateEmbeddedPaymentElement(
205
210
  intentConfig: UnsafeObject<IntentConfiguration>
206
- ): Promise<void>;
211
+ ): Promise<UnsafeObject<any> | null>;
212
+ updateEmbeddedPaymentElementWithCheckout(
213
+ sessionKey: string
214
+ ): Promise<UnsafeObject<any> | null>;
207
215
  clearEmbeddedPaymentOption(viewTag: Int32): Promise<void>;
208
216
  createRadarSession(): Promise<CreateRadarSessionResult>;
209
217
 
218
+ // Checkout Session
219
+
220
+ initCheckoutSession(
221
+ clientSecret: string,
222
+ configuration: UnsafeObject<Checkout.Configuration>
223
+ ): Promise<UnsafeObject<{ sessionKey: string; state: Checkout.State }>>;
224
+
225
+ checkoutUpdateShippingAddress(
226
+ sessionKey: string,
227
+ address: UnsafeObject<Checkout.Address>,
228
+ name: string | null,
229
+ phone: string | null
230
+ ): Promise<UnsafeObject<Checkout.State>>;
231
+
232
+ checkoutUpdateBillingAddress(
233
+ sessionKey: string,
234
+ address: UnsafeObject<Checkout.Address>,
235
+ name: string | null,
236
+ phone: string | null
237
+ ): Promise<UnsafeObject<Checkout.State>>;
238
+
239
+ checkoutApplyPromotionCode(
240
+ sessionKey: string,
241
+ code: string
242
+ ): Promise<UnsafeObject<Checkout.State>>;
243
+
244
+ checkoutRemovePromotionCode(
245
+ sessionKey: string
246
+ ): Promise<UnsafeObject<Checkout.State>>;
247
+
248
+ checkoutUpdateLineItemQuantity(
249
+ sessionKey: string,
250
+ lineItemId: string,
251
+ quantity: number
252
+ ): Promise<UnsafeObject<Checkout.State>>;
253
+
254
+ checkoutSelectShippingOption(
255
+ sessionKey: string,
256
+ id: string
257
+ ): Promise<UnsafeObject<Checkout.State>>;
258
+
259
+ checkoutUpdateTaxId(
260
+ sessionKey: string,
261
+ type: string,
262
+ value: string
263
+ ): Promise<UnsafeObject<Checkout.State>>;
264
+
265
+ checkoutRefresh(sessionKey: string): Promise<UnsafeObject<Checkout.State>>;
266
+
210
267
  setFinancialConnectionsForceNativeFlow(enabled: boolean): Promise<void>;
211
268
 
212
269
  openAuthenticatedWebView(
@@ -0,0 +1,377 @@
1
+ /**
2
+ * All types for the Checkout Session API.
3
+ * @internal
4
+ */
5
+ export namespace Checkout {
6
+ /**
7
+ * Configuration options for a `useCheckout` instance.
8
+ * @internal
9
+ */
10
+ export interface Configuration {
11
+ /**
12
+ * Controls whether adaptive pricing is requested for this session.
13
+ *
14
+ * When allowed, Stripe may present prices in the customer's local
15
+ * currency alongside the merchant's settlement currency.
16
+ *
17
+ * Default: `{ allowed: false }`.
18
+ */
19
+ adaptivePricing?: AdaptivePricing;
20
+ }
21
+
22
+ /**
23
+ * Options for adaptive pricing behavior.
24
+ * @internal
25
+ */
26
+ export interface AdaptivePricing {
27
+ /**
28
+ * Whether the integration allows adaptive pricing for this session.
29
+ *
30
+ * Set to `false` to prevent Stripe from activating adaptive pricing even
31
+ * if the Checkout Session is configured for it on the server.
32
+ *
33
+ * Default: `false`.
34
+ */
35
+ allowed: boolean;
36
+ }
37
+
38
+ /**
39
+ * The loading state of the checkout session.
40
+ *
41
+ * Returned as `state` from `useCheckout`. React re-renders automatically
42
+ * whenever the session changes.
43
+ *
44
+ * - `loading` – a mutation or refresh is in flight; `session` is the most
45
+ * recently loaded value and may be stale.
46
+ * - `loaded` – session is current and ready.
47
+ *
48
+ * Before the initial session load completes, `state` is `null`.
49
+ * @internal
50
+ */
51
+ export type State =
52
+ | {
53
+ /**
54
+ * `loading` while a mutation or refresh is in flight.
55
+ *
56
+ * The associated `session` value is the most recently loaded copy and
57
+ * may be stale.
58
+ */
59
+ status: 'loading';
60
+ /** The most recently loaded session value. */
61
+ session: Session;
62
+ }
63
+ | {
64
+ /** `loaded` when the session is current and ready to use. */
65
+ status: 'loaded';
66
+ /** The latest checkout session value from Stripe. */
67
+ session: Session;
68
+ };
69
+
70
+ /**
71
+ * The status of a checkout session.
72
+ *
73
+ * - `unknown` - A status not recognized by this version of the SDK.
74
+ * - `open` - The checkout session is still in progress.
75
+ * - `complete` - The checkout session is complete.
76
+ * - `expired` - The checkout session has expired.
77
+ * @internal
78
+ */
79
+ export type Status = 'unknown' | 'open' | 'complete' | 'expired';
80
+
81
+ /**
82
+ * The payment status of a checkout session.
83
+ *
84
+ * - `unknown` - A payment status not recognized by this version of the SDK.
85
+ * - `paid` - The payment funds are available in your account.
86
+ * - `unpaid` - The payment funds are not yet available in your account.
87
+ * - `noPaymentRequired` - No payment is currently required for the session.
88
+ * @internal
89
+ */
90
+ export type PaymentStatus =
91
+ | 'unknown'
92
+ | 'paid'
93
+ | 'unpaid'
94
+ | 'noPaymentRequired';
95
+
96
+ /**
97
+ * A read-only snapshot of a Stripe Checkout Session.
98
+ * @internal
99
+ */
100
+ export interface Session {
101
+ /** Unique identifier for this checkout session. */
102
+ id: string;
103
+ /** The current session state, if available. */
104
+ status?: Status;
105
+ /** The payment status for this checkout session. */
106
+ paymentStatus: PaymentStatus;
107
+ /** Three-letter ISO 4217 currency code in lowercase (e.g. `"usd"`). */
108
+ currency?: string;
109
+ /** Indicates whether this session was created in live mode. */
110
+ livemode: boolean;
111
+ /** A summary of monetary totals for this session, if available. */
112
+ totals?: Totals;
113
+ /** The line items purchased by the customer. */
114
+ lineItems: LineItem[];
115
+ /** The shipping rate options available for this session. */
116
+ shippingOptions: ShippingOption[];
117
+ /** The discounts applied to this session. */
118
+ discounts: Discount[];
119
+ /** The Stripe customer ID attached to this session, if any. */
120
+ customerId?: string;
121
+ /** The customer's email address, if available. */
122
+ customerEmail?: string;
123
+ /** The billing address set via `updateBillingAddress`, if any. */
124
+ billingAddress?: AddressUpdate;
125
+ /** The shipping address set via `updateShippingAddress`, if any. */
126
+ shippingAddress?: AddressUpdate;
127
+ }
128
+
129
+ /**
130
+ * Monetary totals for a checkout session.
131
+ *
132
+ * All amounts are in the smallest currency unit (e.g. cents for USD).
133
+ * @internal
134
+ */
135
+ export interface Totals {
136
+ /** The subtotal amount before discounts, shipping, and tax. */
137
+ subtotal: number;
138
+ /** The final total after discounts, shipping, and tax. */
139
+ total: number;
140
+ /** The amount currently due from the customer. */
141
+ due: number;
142
+ /** The total discount amount applied to the session. */
143
+ discount: number;
144
+ /** The total shipping amount. */
145
+ shipping: number;
146
+ /** The total tax amount applied to the session. */
147
+ tax: number;
148
+ }
149
+
150
+ /**
151
+ * A line item in a checkout session.
152
+ * @internal
153
+ */
154
+ export interface LineItem {
155
+ /** Unique identifier for this line item. */
156
+ id: string;
157
+ /** The display name shown for this line item. */
158
+ name: string;
159
+ /** The quantity for this line item. */
160
+ quantity: number;
161
+ /** The per-unit price in the smallest currency unit. */
162
+ unitAmount: number;
163
+ /** Three-letter ISO 4217 currency code in lowercase. */
164
+ currency: string;
165
+ }
166
+
167
+ /**
168
+ * A shipping option available in a checkout session.
169
+ * @internal
170
+ */
171
+ export interface ShippingOption {
172
+ /** The shipping rate identifier. */
173
+ id: string;
174
+ /** The display name shown to the customer. */
175
+ displayName: string;
176
+ /** The shipping amount in the smallest currency unit. */
177
+ amount: number;
178
+ /** Three-letter ISO 4217 currency code in lowercase. */
179
+ currency: string;
180
+ /** The estimated delivery window shown to the customer, if available. */
181
+ deliveryEstimate?: string;
182
+ }
183
+
184
+ /**
185
+ * A discount applied to a checkout session.
186
+ * @internal
187
+ */
188
+ export interface Discount {
189
+ /** The coupon associated with this discount. */
190
+ coupon: Coupon;
191
+ /** The promotion code used to apply this discount, if any. */
192
+ promotionCode?: string;
193
+ /** The discount amount in the smallest currency unit. */
194
+ amount: number;
195
+ }
196
+
197
+ /**
198
+ * A coupon associated with a checkout discount.
199
+ * @internal
200
+ */
201
+ export interface Coupon {
202
+ /** The coupon identifier. */
203
+ id: string;
204
+ /** The display name of the coupon, if one exists. */
205
+ name?: string;
206
+ /** The percentage off, if this is a percentage-based coupon. */
207
+ percentOff?: number;
208
+ /** The fixed amount off, in the smallest currency unit, if applicable. */
209
+ amountOff?: number;
210
+ }
211
+
212
+ /**
213
+ * A locally stored address override for checkout.
214
+ *
215
+ * Address updates are merged into PaymentSheet configuration and may also be
216
+ * sent to Stripe when tax calculation depends on the billing or shipping
217
+ * address.
218
+ * @internal
219
+ */
220
+ export interface AddressUpdate {
221
+ /** The customer's or recipient's name, if provided. */
222
+ name?: string;
223
+ /** The customer's or recipient's phone number, if provided. */
224
+ phone?: string;
225
+ /** The postal address to use for the update. */
226
+ address: Address;
227
+ }
228
+
229
+ /**
230
+ * A postal address used for billing, shipping, or tax updates.
231
+ * @internal
232
+ */
233
+ export interface Address {
234
+ /** The country for this address, such as `"US"`. */
235
+ country: string;
236
+ /** The first address line. */
237
+ line1?: string;
238
+ /** The second address line. */
239
+ line2?: string;
240
+ /** The city, district, suburb, town, or village. */
241
+ city?: string;
242
+ /** The state, county, province, or region. */
243
+ state?: string;
244
+ /** The postal or ZIP code. */
245
+ postalCode?: string;
246
+ }
247
+
248
+ /**
249
+ * A Checkout-specific error returned from `useCheckout` or a Checkout
250
+ * mutation method.
251
+ * @internal
252
+ */
253
+ export interface Error {
254
+ /** A machine-readable error code describing the failure. */
255
+ code: ErrorCode;
256
+ /** A human-readable message describing the failure. */
257
+ message: string;
258
+ }
259
+
260
+ /**
261
+ * The set of Checkout-specific error codes.
262
+ *
263
+ * - `Failed` - The operation could not be completed.
264
+ * - `InvalidClientSecret` - The provided Checkout Session client secret is
265
+ * invalid.
266
+ * - `SessionNotOpen` - The Checkout Session is no longer open for updates.
267
+ * - `SheetCurrentlyPresented` - The operation is unavailable while
268
+ * PaymentSheet is being presented.
269
+ * - `Canceled` - The operation was canceled before completion.
270
+ * @internal
271
+ */
272
+ export type ErrorCode =
273
+ | 'Failed'
274
+ | 'InvalidClientSecret'
275
+ | 'SessionNotOpen'
276
+ | 'SheetCurrentlyPresented'
277
+ | 'Canceled';
278
+ }
279
+
280
+ /**
281
+ * A handle to a live Checkout Session.
282
+ *
283
+ * Returned by `useCheckout`. Call mutation methods to update the session;
284
+ * the hook's `state` updates automatically after each mutation.
285
+ * @internal
286
+ */
287
+ export interface Checkout {
288
+ /** @internal Opaque key for the native Checkout instance. Used by `initPaymentSheet`. */
289
+ readonly sessionKey: string;
290
+
291
+ /**
292
+ * Sets the shipping address for this checkout.
293
+ *
294
+ * The address is stored locally and merged into PaymentSheet configuration
295
+ * when presenting payment UI. If automatic tax is enabled and the tax
296
+ * address source is "shipping", the address is also sent to the server to
297
+ * compute updated tax amounts.
298
+ *
299
+ * @param address - The shipping address to set.
300
+ * @param name - The recipient's name.
301
+ * @param phone - The recipient's phone number.
302
+ */
303
+ updateShippingAddress(
304
+ address: Checkout.Address,
305
+ name?: string,
306
+ phone?: string
307
+ ): Promise<void>;
308
+
309
+ /**
310
+ * Sets the billing address for this checkout.
311
+ *
312
+ * The address is stored locally and merged into PaymentSheet configuration
313
+ * when presenting payment UI. If automatic tax is enabled and the tax
314
+ * address source is "billing", the address is also sent to the server to
315
+ * compute updated tax amounts.
316
+ *
317
+ * @param address - The billing address to set.
318
+ * @param name - The customer's name.
319
+ * @param phone - The customer's phone number.
320
+ */
321
+ updateBillingAddress(
322
+ address: Checkout.Address,
323
+ name?: string,
324
+ phone?: string
325
+ ): Promise<void>;
326
+
327
+ /**
328
+ * Applies a promotion code to the session.
329
+ * - Parameter code: The promotion code to apply (e.g. `"SUMMER2026"`).
330
+ * - Throws: `CheckoutError` if applying the promotion code fails.
331
+ * @internal
332
+ */
333
+ applyPromotionCode(code: string): Promise<void>;
334
+
335
+ /**
336
+ * Removes the currently applied promotion code.
337
+ * - Throws: `CheckoutError` if removing the promotion code fails.
338
+ * @internal
339
+ */
340
+ removePromotionCode(): Promise<void>;
341
+
342
+ /**
343
+ * Updates the quantity of a line item.
344
+ * @param lineItemId - The ID of the line item to update.
345
+ * @param quantity - The new quantity to set.
346
+ * - Throws: `CheckoutError` if updating the line item quantity fails.
347
+ * @internal
348
+ */
349
+ updateLineItemQuantity(lineItemId: string, quantity: number): Promise<void>;
350
+
351
+ /**
352
+ * Selects a shipping option for the session.
353
+ * @param id - The ID of the shipping rate to select.
354
+ * - Throws: `CheckoutError` if selecting the shipping option fails.
355
+ * @internal
356
+ */
357
+ selectShippingOption(id: string): Promise<void>;
358
+
359
+ /**
360
+ * Sets the customer's tax ID on the session.
361
+ * @param type - The tax ID type (e.g. `"eu_vat"`).
362
+ * @param value - The tax ID value (e.g. `"DE123456789"`).
363
+ * - Throws: `CheckoutError` if updating the tax ID fails.
364
+ * @internal
365
+ */
366
+ updateTaxId(type: string, value: string): Promise<void>;
367
+
368
+ /**
369
+ * Refreshes the session by fetching the latest copy from Stripe.
370
+ *
371
+ * Call this after making server-side changes to the Checkout Session
372
+ * so the local state stays in sync.
373
+ * - Throws: `CheckoutError` if refreshing the session fails.
374
+ * @internal
375
+ */
376
+ refresh(): Promise<void>;
377
+ }