diff --git a/apps/portal/src/app/features/onboarding/components/RequireOperations.tsx b/apps/portal/src/app/features/onboarding/components/RequireOperations.tsx
index f7b088388..b29044c4e 100644
--- a/apps/portal/src/app/features/onboarding/components/RequireOperations.tsx
+++ b/apps/portal/src/app/features/onboarding/components/RequireOperations.tsx
@@ -49,6 +49,7 @@ const ALWAYS_ALLOWED = [
const MODE_FREE_TYPE_KEYS = [
'SEAFARER_REGISTRATION',
'VESSEL_REGISTRATION',
+ 'VESSEL_OWNERSHIP_TRANSFER',
'CERTIFICATE_OF_COMPETENCY',
'CERTIFICATE_OF_PROFICIENCY',
'PRE_WAIVER',
diff --git a/apps/portal/src/app/features/vessel-registration/pages/OwnershipTransferPage.tsx b/apps/portal/src/app/features/vessel-registration/pages/OwnershipTransferPage.tsx
deleted file mode 100644
index 11dcac2f1..000000000
--- a/apps/portal/src/app/features/vessel-registration/pages/OwnershipTransferPage.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Container } from '@mantine/core';
-import { FeatureUnavailable } from '@ema-platform/ui';
-
-/**
- * Placeholder until this feature has a backend.
- *
- * This page previously rendered hardcoded sample records, which were
- * indistinguishable from real ones.
- */
-export function OwnershipTransferPage() {
- return (
-
-
-
- );
-}
-
-export default OwnershipTransferPage;
diff --git a/apps/portal/src/app/features/vessel-registration/pages/VesselRegistrationPage.tsx b/apps/portal/src/app/features/vessel-registration/pages/VesselRegistrationPage.tsx
index 78cc6c973..065f83b4e 100644
--- a/apps/portal/src/app/features/vessel-registration/pages/VesselRegistrationPage.tsx
+++ b/apps/portal/src/app/features/vessel-registration/pages/VesselRegistrationPage.tsx
@@ -414,8 +414,8 @@ export function VesselRegistrationPage() {
- Ownership transfer, amendment and duplicate-certificate services
- are coming in a later release.
+ Amendment and duplicate-certificate services are coming in a
+ later release.
diff --git a/apps/portal/src/app/layouts/PortalLayout.tsx b/apps/portal/src/app/layouts/PortalLayout.tsx
index 02df6f773..fbd06ddec 100644
--- a/apps/portal/src/app/layouts/PortalLayout.tsx
+++ b/apps/portal/src/app/layouts/PortalLayout.tsx
@@ -75,7 +75,7 @@ const NAV_SECTIONS: { label?: string; items: PortalNavItem[] }[] = [
label: "nav.groupVessels",
items: [
{ to: '/vessel-registration', label: 'Vessel Registration', i18nKey: 'nav.vesselRegistration', icon: IconShip },
- { to: '/vessel-registration/transfer', label: 'Ownership Transfer', i18nKey: 'nav.ownershipTransfer', icon: IconArrowsExchange, soon: true },
+ { to: '/vessel-registration/transfer', label: 'Ownership Transfer', i18nKey: 'nav.ownershipTransfer', icon: IconArrowsExchange },
],
},
{
diff --git a/apps/portal/src/app/router.tsx b/apps/portal/src/app/router.tsx
index d8bef245a..081714fae 100644
--- a/apps/portal/src/app/router.tsx
+++ b/apps/portal/src/app/router.tsx
@@ -38,7 +38,6 @@ import { CoCApplicationPage } from "./features/certificates/pages/CoCApplication
// Phase 3 — Endorsement
import { EndorsementPage } from "./features/endorsement/pages/EndorsementPage";
import { VesselRegistrationPage } from "./features/vessel-registration/pages/VesselRegistrationPage";
-import { OwnershipTransferPage } from "./features/vessel-registration/pages/OwnershipTransferPage";
import { MyApplicationsPage } from "./features/licensing/pages/MyApplicationsPage";
import { PaymentCheckPage } from "./features/payments/pages/PaymentCheckPage";
import { PaymentSuccessPage } from "./features/payments/pages/PaymentSuccessPage";
@@ -179,7 +178,7 @@ export const router = createBrowserRouter([
},
{
path: "/vessel-registration/transfer",
- element: ,
+ element: ,
},
// Legacy per-licence-type URLs. Each once had its own hand-written page
// that posted to a `/logistics-licenses/*` endpoint the API never had,