Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ NEXT_VERSION_BUMP: MINOR
### CryptoOnramp
* [ADDED] A new `AppAttestationUnavailableException` was added when configuring onramp for additional information when an error occurs.

### PaymentSheet
* [ADDED] Standalone Link wallet APIs in private preview via `LinkController`.

## 23.11.1 - 2026-06-30

### PaymentSheet
Expand Down
1 change: 1 addition & 0 deletions crypto-onramp/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ android {
compilerOptions {
freeCompilerArgs.addAll([
"-opt-in=com.stripe.android.crypto.onramp.ExperimentalCryptoOnramp",
"-opt-in=com.stripe.android.link.LinkControllerPreview",
])
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground

import android.content.Context
Expand All @@ -16,6 +18,7 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentsheet.example.samples.ui.shared.PaymentSheetExampleTheme

@Suppress("LongMethod")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground

import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview

data class LinkControllerPlaygroundState(
val controllerState: LinkController.State? = null,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground

import android.app.Application
Expand All @@ -7,6 +9,7 @@ import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.viewModelScope
import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
@file:Suppress("LongMethod", "MagicNumber")
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground

Expand Down Expand Up @@ -55,6 +56,7 @@ import androidx.compose.ui.tooling.preview.PreviewLightDark
import androidx.compose.ui.unit.dp
import androidx.core.content.ContextCompat
import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentsheet.example.samples.ui.shared.PaymentSheetExampleTheme
import com.stripe.android.ui.core.R

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground

import android.content.Context
Expand All @@ -6,6 +8,7 @@ import androidx.compose.runtime.Stable
import com.stripe.android.SharedPaymentTokenSessionPreview
import com.stripe.android.customersheet.CustomerSheet
import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentelement.EmbeddedPaymentElement
import com.stripe.android.paymentelement.PaymentMethodOptionsSetupFutureUsagePreview
import com.stripe.android.paymentsheet.PaymentSheet
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground.settings

import com.stripe.android.customersheet.CustomerSheet
import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentelement.EmbeddedPaymentElement
import com.stripe.android.paymentsheet.PaymentSheet
import com.stripe.android.paymentsheet.example.playground.PlaygroundState
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground.settings

import com.stripe.android.customersheet.CustomerSheet
import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentelement.EmbeddedPaymentElement
import com.stripe.android.paymentsheet.PaymentSheet
import com.stripe.android.paymentsheet.example.playground.PlaygroundState
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground.settings

import com.stripe.android.customersheet.CustomerSheet
import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentelement.EmbeddedPaymentElement
import com.stripe.android.paymentsheet.PaymentSheet
import com.stripe.android.paymentsheet.example.playground.PlaygroundState
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground.settings

import com.stripe.android.customersheet.CustomerSheet
import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentelement.EmbeddedPaymentElement
import com.stripe.android.paymentsheet.PaymentSheet
import com.stripe.android.paymentsheet.example.playground.PlaygroundState
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground.settings

import com.stripe.android.customersheet.CustomerSheet
import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentelement.EmbeddedPaymentElement
import com.stripe.android.paymentsheet.PaymentSheet
import com.stripe.android.paymentsheet.PaymentSheet.BillingDetailsCollectionConfiguration.CollectionMode
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground.settings

import com.stripe.android.customersheet.CustomerSheet
import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentelement.EmbeddedPaymentElement
import com.stripe.android.paymentsheet.PaymentSheet
import com.stripe.android.paymentsheet.PaymentSheet.BillingDetailsCollectionConfiguration.CollectionMode
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground.settings

import com.stripe.android.customersheet.CustomerSheet
import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentelement.EmbeddedPaymentElement
import com.stripe.android.paymentsheet.PaymentSheet
import com.stripe.android.paymentsheet.PaymentSheet.BillingDetailsCollectionConfiguration.CollectionMode
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground.settings

import com.stripe.android.customersheet.CustomerSheet
import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentelement.EmbeddedPaymentElement
import com.stripe.android.paymentsheet.PaymentSheet
import com.stripe.android.paymentsheet.example.playground.PlaygroundState
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
@file:OptIn(LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground.settings

import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentsheet.example.playground.PlaygroundState

internal object LinkControllerAllowUserEmailEditsSettingsDefinition : BooleanSettingsDefinition(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
@file:OptIn(CheckoutSessionPreview::class)
@file:OptIn(CheckoutSessionPreview::class, LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground.settings

import com.stripe.android.checkout.Checkout
import com.stripe.android.customersheet.CustomerSheet
import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentelement.CheckoutSessionPreview
import com.stripe.android.paymentelement.EmbeddedPaymentElement
import com.stripe.android.paymentsheet.PaymentSheet
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@file:OptIn(CheckoutSessionPreview::class)
@file:OptIn(CheckoutSessionPreview::class, LinkControllerPreview::class)

package com.stripe.android.paymentsheet.example.playground.settings

Expand All @@ -13,6 +13,7 @@ import com.stripe.android.checkout.Checkout
import com.stripe.android.core.utils.FeatureFlags
import com.stripe.android.customersheet.CustomerSheet
import com.stripe.android.link.LinkController
import com.stripe.android.link.LinkControllerPreview
import com.stripe.android.paymentelement.CheckoutSessionPreview
import com.stripe.android.paymentelement.EmbeddedPaymentElement
import com.stripe.android.paymentsheet.PaymentSheet
Expand Down
78 changes: 78 additions & 0 deletions paymentsheet/api/paymentsheet.api
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,84 @@ public abstract interface class com/stripe/android/customersheet/SetupIntentClie
public abstract fun provideSetupIntentClientSecret (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}

public final class com/stripe/android/link/LinkController {
public static final field $stable I
public final fun configure-gIAlu-s (Lcom/stripe/android/link/LinkController$Configuration;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public final fun createPresenter (Landroidx/activity/ComponentActivity;Lcom/stripe/android/link/LinkController$PresentCallback;)Lcom/stripe/android/link/LinkController$Presenter;
public final fun getPaymentMethodPreview ()Lkotlinx/coroutines/flow/StateFlow;
}

public final class com/stripe/android/link/LinkController$Builder {
public static final field $stable I
public fun <init> (Landroid/app/Application;Landroidx/lifecycle/SavedStateHandle;)V
public final fun build ()Lcom/stripe/android/link/LinkController;
}

public final class com/stripe/android/link/LinkController$Configuration {
public static final field $stable I
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun allowLogout (Z)Lcom/stripe/android/link/LinkController$Configuration;
public final fun email (Ljava/lang/String;)Lcom/stripe/android/link/LinkController$Configuration;
public final fun phoneNumber (Ljava/lang/String;)Lcom/stripe/android/link/LinkController$Configuration;
public final fun supportedPaymentMethodTypes (Ljava/util/List;)Lcom/stripe/android/link/LinkController$Configuration;
}

public final class com/stripe/android/link/LinkController$PaymentMethodPreview {
public static final field $stable I
public fun equals (Ljava/lang/Object;)Z
public final fun getIcon ()Landroid/graphics/drawable/Drawable;
public final fun getIconPainter (Landroidx/compose/runtime/Composer;I)Landroidx/compose/ui/graphics/painter/Painter;
public final fun getLabel ()Ljava/lang/String;
public final fun getSublabel ()Ljava/lang/String;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}

public final class com/stripe/android/link/LinkController$PaymentMethodType : java/lang/Enum {
public static final field BankAccount Lcom/stripe/android/link/LinkController$PaymentMethodType;
public static final field Card Lcom/stripe/android/link/LinkController$PaymentMethodType;
public static final field Generic Lcom/stripe/android/link/LinkController$PaymentMethodType;
public static fun getEntries ()Lkotlin/enums/EnumEntries;
public static fun valueOf (Ljava/lang/String;)Lcom/stripe/android/link/LinkController$PaymentMethodType;
public static fun values ()[Lcom/stripe/android/link/LinkController$PaymentMethodType;
}

public abstract interface class com/stripe/android/link/LinkController$PresentCallback {
public abstract fun onPresentResult (Lcom/stripe/android/link/LinkController$PresentResult;)V
}

public abstract interface class com/stripe/android/link/LinkController$PresentResult {
}

public final class com/stripe/android/link/LinkController$PresentResult$Canceled : com/stripe/android/link/LinkController$PresentResult {
public static final field $stable I
}

public final class com/stripe/android/link/LinkController$PresentResult$Completed : com/stripe/android/link/LinkController$PresentResult {
public static final field $stable I
public fun equals (Ljava/lang/Object;)Z
public final fun getPaymentMethod ()Lcom/stripe/android/model/PaymentMethod;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}

public final class com/stripe/android/link/LinkController$PresentResult$Failed : com/stripe/android/link/LinkController$PresentResult {
public static final field $stable I
public fun equals (Ljava/lang/Object;)Z
public final fun getError ()Ljava/lang/Throwable;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}

public final class com/stripe/android/link/LinkController$Presenter {
public static final field $stable I
public final fun present ()V
}

public abstract interface annotation class com/stripe/android/link/LinkControllerPreview : java/lang/annotation/Annotation {
}

public final class com/stripe/android/link/onramp/ui/ComposableSingletons$OnrampKYCRefreshScreenKt {
public static final field INSTANCE Lcom/stripe/android/link/onramp/ui/ComposableSingletons$OnrampKYCRefreshScreenKt;
public fun <init> ()V
Expand Down
1 change: 1 addition & 0 deletions paymentsheet/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ android {
freeCompilerArgs.addAll([
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
"-opt-in=kotlinx.coroutines.FlowPreview",
"-opt-in=com.stripe.android.link.LinkControllerPreview",
"-Xcontext-parameters",
"-Xannotation-default-target=param-property",
"-Xconsistent-data-class-copy-visibility"
Expand Down
Loading
Loading