Skip to content
GitHubXDiscordRSS

PortalConfiguration

Learn how to create and manage Stripe Customer Portal Configurations using Alchemy.

The PortalConfiguration resource lets you create and manage Stripe Customer Portal Configurations for customizing the customer portal experience.

Create a basic portal configuration:

import { PortalConfiguration } from "alchemy/stripe";
const basicPortal = await PortalConfiguration("basic-portal", {
businessProfile: {
headline: "Manage your subscription",
privacyPolicyUrl: "https://example.com/privacy",
termsOfServiceUrl: "https://example.com/terms",
},
features: {
invoiceHistory: { enabled: true },
paymentMethodUpdate: { enabled: true },
},
});

Create a portal with subscription management features:

import { PortalConfiguration } from "alchemy/stripe";
const subscriptionPortal = await PortalConfiguration("subscription-portal", {
defaultReturnUrl: "https://example.com/account",
features: {
subscriptionCancel: {
enabled: true,
mode: "at_period_end",
prorationBehavior: "none",
},
subscriptionUpdate: {
enabled: true,
defaultAllowedUpdates: ["price", "quantity"],
prorationBehavior: "create_prorations",
},
},
});

Create a full-featured portal configuration:

import { PortalConfiguration } from "alchemy/stripe";
const fullPortal = await PortalConfiguration("full-portal", {
businessProfile: {
headline: "Manage your Acme Corp subscription",
privacyPolicyUrl: "https://acme.com/privacy",
termsOfServiceUrl: "https://acme.com/terms",
},
defaultReturnUrl: "https://acme.com/dashboard",
features: {
customerUpdate: {
enabled: true,
allowedUpdates: ["email", "address", "shipping", "phone", "tax_id"],
},
invoiceHistory: { enabled: true },
paymentMethodUpdate: { enabled: true },
subscriptionCancel: {
enabled: true,
mode: "immediately",
cancellationReason: {
enabled: true,
options: ["too_expensive", "missing_features", "switched_service"],
},
},
},
});