<SubscriptionDetailsButton />
component

The <SubscriptionDetailsButton />
component renders a button that opens the subscription details drawer when selected, allowing users to view and manage their subscription details, whether for their personal account or organization. It must be wrapped inside a <SignedIn /> component to ensure the user is authenticated.
Properties
All props are optional.
- Name
for?
- Type
'user' | 'org'
- Description
Determines whether to show subscription details for the current user or organization. Defaults to
'user'
.
- Name
children?
- Type
React.ReactNode
- Description
Optional custom button element. If not provided, defaults to a button with the text "Subscription details".
- Name
onSubscriptionCancel?
- Type
() => void
- Description
A callback function that is called when a subscription is cancelled.
- Name
subscriptionDetailsProps?
- Type
{ appearance: Appearance }
- Description
Options for the subscription details drawer. Accepts the following properties:
appearance
: an object used to style your components. For example:<SubscriptionDetailsButton subscriptionDetailsProps={{ appearance: { ... } }} />
.
Usage
<SubscriptionDetailsButton />
must be wrapped inside a <SignedIn /> component to ensure the user is authenticated.
<>
// ❌ This will throw an error
<SubscriptionDetailsButton />
// ✅ Correct usage
<SignedIn>
<SubscriptionDetailsButton />
</SignedIn>
</>
<SubscriptionDetailsButton />
will throw an error if the for
property is set to 'org'
and no active organization is set.
<>
// ❌ This will throw an error if no organization is active
<SubscriptionDetailsButton for="org" />
// ✅ Correct usage
{auth.orgId ? <SubscriptionDetailsButton for="org" /> : null}
</>
'use client'
import { SignedIn } from '@clerk/nextjs'
import { SubscriptionDetailsButton } from '@clerk/nextjs/experimental'
export default function BillingPage() {
return (
<SignedIn>
{/* Basic usage */}
<SubscriptionDetailsButton />
{/* Customizes the appearance of the subscription details drawer */}
<SubscriptionDetailsButton
subscriptionDetailsProps={{
appearance: {
/* custom theme */
},
}}
/>
{/* Custom button */}
<SubscriptionDetailsButton onSubscriptionCancel={() => console.log('Subscription canceled')}>
<button className="custom-button">
<Icon name="subscription" />
Manage Subscription
</button>
</SubscriptionDetailsButton>
</SignedIn>
)
}
import { SignedIn } from '@clerk/clerk-react'
import { SubscriptionDetailsButton } from '@clerk/clerk-react/experimental'
const BillingSection = () => {
return (
<SignedIn>
{/* Basic usage */}
<SubscriptionDetailsButton />
{/* Customizes the appearance of the subscription details drawer */}
<SubscriptionDetailsButton
subscriptionDetailsProps={{
appearance: {
/* custom theme */
},
}}
/>
{/* Custom button */}
<SubscriptionDetailsButton onSubscriptionCancel={() => console.log('Subscription canceled')}>
<button className="custom-button">
<Icon name="subscription" />
Manage Subscription
</button>
</SubscriptionDetailsButton>
</SignedIn>
)
}
export default BillingSection
Feedback
Last updated on