diff --git a/app/(dashboard)/top-ups/[topupId]/page.tsx b/app/(dashboard)/top-ups/[topupId]/page.tsx
new file mode 100644
index 0000000..bba63f6
--- /dev/null
+++ b/app/(dashboard)/top-ups/[topupId]/page.tsx
@@ -0,0 +1,72 @@
+import { redirect } from "next/navigation";
+import { getTopup } from "@/actions/payment";
+import CancelTopupButton from "@/components/billing/cancel-topup-button";
+import ExpiryCountDown from "@/components/billing/expiry-time-countdown";
+import ClientErrorMessage from "@/components/client-error-message";
+import TopupToPay from "@/components/topup-to-pay";
+import { Button } from "@/components/ui/button";
+import { TextShimmer } from "@/components/ui/text-shimmer";
+import { cn } from "@/lib/utils";
+import { tryCatch } from "@/utils/tryCatch";
+export default async function TopupPage({
+ params,
+}: {
+ params: Promise<{ topupId: string }>;
+}) {
+ const topupId = (await params).topupId;
+ const [error, topup] = await tryCatch(getTopup({ id: topupId }));
+ if (error) {
+ if (error.message === "Invalid token.") redirect("/auth/signin");
+ return
Account No
+ {accountNo} +{JSON.stringify(error, null, 2)}; + } + } + const { data, meta } = topups; + return ( +