diff --git a/apps/platform/trpc/routers/orgRouter/iCanHaz/iCanHazRouter.ts b/apps/platform/trpc/routers/orgRouter/iCanHaz/iCanHazRouter.ts
index 285a7094..61239a4c 100644
--- a/apps/platform/trpc/routers/orgRouter/iCanHaz/iCanHazRouter.ts
+++ b/apps/platform/trpc/routers/orgRouter/iCanHaz/iCanHazRouter.ts
@@ -2,6 +2,13 @@ import { router, orgProcedure, createCallerFactory } from '~platform/trpc/trpc';
import { billingTrpcClient } from '~platform/utils/tRPCServerClients';
export const iCanHazRouter = router({
+ billing: orgProcedure.query(async ({ ctx }) => {
+ const { selfHosted } = ctx;
+ if (selfHosted) {
+ return false;
+ }
+ return await billingTrpcClient.iCanHaz.billing.query();
+ }),
domain: orgProcedure.query(async ({ ctx }) => {
const { org, selfHosted } = ctx;
if (selfHosted) {
diff --git a/apps/web/src/app/[orgShortcode]/settings/_components/settings-sidebar.tsx b/apps/web/src/app/[orgShortcode]/settings/_components/settings-sidebar.tsx
index 05ec8967..a16f14b8 100644
--- a/apps/web/src/app/[orgShortcode]/settings/_components/settings-sidebar.tsx
+++ b/apps/web/src/app/[orgShortcode]/settings/_components/settings-sidebar.tsx
@@ -27,6 +27,9 @@ type NavLinks = {
export default function SettingsSidebar() {
const orgShortcode = useGlobalStore((state) => state.currentOrg.shortcode);
+ const { data: hazBilling } = platform.org.iCanHaz.billing.useQuery({
+ orgShortcode
+ });
const { data: isAdmin } =
platform.org.users.members.isOrgMemberAdmin.useQuery({
@@ -56,11 +59,15 @@ export default function SettingsSidebar() {
to: `/${orgShortcode}/settings/org`,
icon:
},
- {
- label: 'Billing',
- to: `/${orgShortcode}/settings/org/setup/billing`,
- icon:
- }
+ ...(hazBilling
+ ? [
+ {
+ label: 'Billing',
+ to: `/${orgShortcode}/settings/org/setup/billing`,
+ icon:
+ }
+ ]
+ : [])
];
const orgUserLinks: NavLinks[] = [
diff --git a/apps/web/src/app/[orgShortcode]/settings/org/setup/billing/page.tsx b/apps/web/src/app/[orgShortcode]/settings/org/setup/billing/page.tsx
index 8249cffd..c9637b64 100644
--- a/apps/web/src/app/[orgShortcode]/settings/org/setup/billing/page.tsx
+++ b/apps/web/src/app/[orgShortcode]/settings/org/setup/billing/page.tsx
@@ -5,6 +5,7 @@ import { Skeleton } from '@/src/components/shadcn-ui/skeleton';
import { PageTitle } from '../../../_components/page-title';
import { Button } from '@/src/components/shadcn-ui/button';
import { PricingTable } from './_components/plans-table';
+import { useRouter } from 'next/navigation';
import CalEmbed from '@calcom/embed-react';
import { platform } from '@/src/lib/trpc';
import { cn } from '@/src/lib/utils';
@@ -13,6 +14,16 @@ import Link from 'next/link';
export default function Page() {
const orgShortcode = useGlobalStore((state) => state.currentOrg.shortcode);
+
+ const { data: hazBilling } = platform.org.iCanHaz.billing.useQuery({
+ orgShortcode
+ });
+
+ const router = useRouter();
+ if (!hazBilling) {
+ router.push(`/${orgShortcode}/settings/`);
+ }
+
const { data, isLoading } =
platform.org.setup.billing.getOrgBillingOverview.useQuery({
orgShortcode
diff --git a/ee/apps/billing/trpc/routers/iCanHazRouter.ts b/ee/apps/billing/trpc/routers/iCanHazRouter.ts
index 7d079857..ed399dcb 100644
--- a/ee/apps/billing/trpc/routers/iCanHazRouter.ts
+++ b/ee/apps/billing/trpc/routers/iCanHazRouter.ts
@@ -6,6 +6,9 @@ import { eq } from '@u22n/database/orm';
import { z } from 'zod';
export const iCanHazRouter = router({
+ billing: protectedProcedure.query(async ({ ctx, input }) => {
+ return true;
+ }),
domain: protectedProcedure
.input(z.object({ orgId: z.number() }))
.query(async ({ ctx, input }) => {