Billing object
The Billing object provides methods for managing billing for a user or organization.
Methods
getPaymentAttempt()
Returns details of a specific payment attempt for the current user or supplied Organization. Returns a BillingPaymentResource object.
function getPaymentAttempt(params: GetPaymentAttemptParams): Promise<BillingPaymentResource>- Name
id- Type
string- Description
The ID of the payment attempt to fetch.
- Name
orgId?- Type
string- Description
The Organization ID to perform the request on.
The Billing object is available on the Clerk object. Use the useClerk() hook to access the clerk.billing object, and then call the getPaymentAttempt() method.
import { useClerk } from '@clerk/expo'
import { Text, View } from 'react-native'
export default async function Page() {
// Use the useClerk hook to access the clerk object
const clerk = useClerk()
// Call the getPaymentAttempt() method
const paymentAttempt = await clerk.billing.getPaymentAttempt({
id: 'payment_attempt_123',
})
return (
<View>
<Text style={{ whiteSpace: 'pre' }}>{JSON.stringify(paymentAttempt, null, 2)}</Text>
</View>
)
}getPaymentAttempts()
Returns a list of payment attempts for the current user or supplied Organization. Returns a ClerkPaginatedResponse of BillingPaymentResource objects.
function getPaymentAttempts(
params: GetPaymentAttemptsParams,
): Promise<ClerkPaginatedResponse<BillingPaymentResource>>- Name
initialPage?- Type
number- Description
A number that specifies which page to fetch. For example, if
initialPageis set to10, it will skip the first 9 pages and fetch the 10th page.
- Name
pageSize?- Type
number- Description
A number that specifies the maximum number of results to return per page.
- Name
orgId?- Type
string- Description
The Organization ID to perform the request on.
The Billing object is available on the Clerk object. Use the useClerk() hook to access the clerk.billing object, and then call the getPaymentAttempts() method.
import { useClerk } from '@clerk/expo'
import { Text, View } from 'react-native'
export default async function Page() {
// Use the useClerk hook to access the clerk object
const clerk = useClerk()
// Call the getPaymentAttempts() method
const paymentAttempts = await clerk.billing.getPaymentAttempts()
return (
<View>
<Text style={{ whiteSpace: 'pre' }}>{JSON.stringify(paymentAttempts, null, 2)}</Text>
</View>
)
}getPlan()
Returns a Billing Plan by ID. Returns a BillingPlanResource object.
function getPlan(params: GetPlanParams): Promise<BillingPlanResource>- Name
id- Type
string- Description
The ID of the Plan to fetch.
The Billing object is available on the Clerk object. Use the useClerk() hook to access the clerk.billing object, and then call the getPlan() method.
import { useClerk } from '@clerk/expo'
import { Text, View } from 'react-native'
export default async function Page() {
// Use the useClerk hook to access the clerk object
const clerk = useClerk()
// Call the getPlan() method
const plan = await clerk.billing.getPlan({
id: 'plan_123',
})
return (
<View>
<Text style={{ whiteSpace: 'pre' }}>{JSON.stringify(plan, null, 2)}</Text>
</View>
)
}getPlans()
Returns a list of all publicly visible Billing Plans. Returns a ClerkPaginatedResponse of BillingPlanResource objects.
function getPlans(params?: GetPlansParams): Promise<ClerkPaginatedResponse<BillingPlanResource>>- Name
for?- Type
"user" | "organization"- Description
The type of payer for the Plans.
- Name
initialPage?- Type
number- Description
A number that specifies which page to fetch. For example, if
initialPageis set to10, it will skip the first 9 pages and fetch the 10th page.
- Name
pageSize?- Type
number- Description
A number that specifies the maximum number of results to return per page.
The Billing object is available on the Clerk object. Use the useClerk() hook to access the clerk.billing object, and then call the getPlans() method.
import { useClerk } from '@clerk/expo'
import { Text, View } from 'react-native'
export default async function Page() {
// Use the useClerk hook to access the clerk object
const clerk = useClerk()
// Call the getPlans() method
const plans = await clerk.billing.getPlans()
return (
<View>
<Text style={{ whiteSpace: 'pre' }}>{JSON.stringify(plans, null, 2)}</Text>
</View>
)
}getStatement()
Returns a billing statement by ID. Returns a BillingStatementResource object.
function getStatement(params: GetStatementParams): Promise<BillingStatementResource>- Name
id- Type
string- Description
The ID of the statement to fetch.
- Name
orgId?- Type
string- Description
The Organization ID to perform the request on.
The Billing object is available on the Clerk object. Use the useClerk() hook to access the clerk.billing object, and then call the getStatement() method.
import { useClerk } from '@clerk/expo'
import { Text, View } from 'react-native'
export default async function Page() {
// Use the useClerk hook to access the clerk object
const clerk = useClerk()
// Call the getStatement() method
const statement = await clerk.billing.getStatement({
id: 'statement_123',
})
return (
<View>
<Text style={{ whiteSpace: 'pre' }}>{JSON.stringify(statement, null, 2)}</Text>
</View>
)
}getStatements()
Returns a list of billing statements for the current user or supplied Organization. Returns a ClerkPaginatedResponse of BillingStatementResource objects.
function getStatements(
params: GetStatementsParams,
): Promise<ClerkPaginatedResponse<BillingStatementResource>>- Name
initialPage?- Type
number- Description
A number that specifies which page to fetch. For example, if
initialPageis set to10, it will skip the first 9 pages and fetch the 10th page.
- Name
pageSize?- Type
number- Description
A number that specifies the maximum number of results to return per page.
- Name
orgId?- Type
string- Description
The Organization ID to perform the request on.
The Billing object is available on the Clerk object. Use the useClerk() hook to access the clerk.billing object, and then call the getStatements() method.
import { useClerk } from '@clerk/expo'
import { Text, View } from 'react-native'
export default async function Page() {
// Use the useClerk hook to access the clerk object
const clerk = useClerk()
// Call the getStatements() method
const statements = await clerk.billing.getStatements()
return (
<View>
<Text style={{ whiteSpace: 'pre' }}>{JSON.stringify(statements, null, 2)}</Text>
</View>
)
}getSubscription()
Returns the main Billing Subscription for the current user or supplied Organization. Returns a BillingSubscriptionResource object.
function getSubscription(params: GetSubscriptionParams): Promise<BillingSubscriptionResource>- Name
orgId?- Type
string- Description
The Organization ID to perform the request on.
The Billing object is available on the Clerk object. Use the useClerk() hook to access the clerk.billing object, and then call the getSubscription() method.
import { useClerk } from '@clerk/expo'
import { Text, View } from 'react-native'
export default async function Page() {
// Use the useClerk hook to access the clerk object
const clerk = useClerk()
// Call the getSubscription() method
const subscription = await clerk.billing.getSubscription({
orgId: 'org_123',
})
return (
<View>
<Text style={{ whiteSpace: 'pre' }}>{JSON.stringify(subscription, null, 2)}</Text>
</View>
)
}startCheckout()
Creates a new billing checkout for the current user or supplied Organization. Returns a BillingCheckoutResource object.
function startCheckout(params: CreateCheckoutParams): Promise<BillingCheckoutResource>- Name
planId- Type
string- Description
The unique identifier for the Plan.
- Name
planPeriod- Type
"month" | "annual"- Description
The billing period for the Plan.
- Name
orgId?- Type
string- Description
The Organization ID to perform the request on.
The Billing object is available on the Clerk object. Use the useClerk() hook to access the clerk.billing object, and then call the startCheckout() method.
import { useClerk } from '@clerk/expo'
import { Text, View } from 'react-native'
export default async function Page() {
// Use the useClerk hook to access the clerk object
const clerk = useClerk()
// Call the startCheckout() method
const checkout = await clerk.billing.startCheckout({
planId: 'plan_123',
planPeriod: 'month',
})
return (
<View>
<Text style={{ whiteSpace: 'pre' }}>{JSON.stringify(checkout, null, 2)}</Text>
</View>
)
}Feedback
Last updated on