import { NextResponse } from "next/server"; import { stripeClient } from "../../../../../lib/stripeClient"; export async function POST(req: Request) { try { const body = await req.json(); const accountId = body.accountId as string; if (!accountId) { return NextResponse.json({ error: "accountId is required." }, { status: 400 }); } const baseUrl = process.env.NEXT_PUBLIC_BASE_URL; if (!baseUrl) { return NextResponse.json( { error: "Missing NEXT_PUBLIC_BASE_URL. Set it so we can build return/refresh URLs.", }, { status: 500 } ); } const accountLink = await stripeClient.v2.core.accountLinks.create({ account: accountId, use_case: { type: "account_onboarding", account_onboarding: { configurations: ["merchant", "customer"], refresh_url: `${baseUrl}/connect`, return_url: `${baseUrl}/connect?accountId=${accountId}`, }, }, }); return NextResponse.json({ url: accountLink.url }); } catch (err: any) { return NextResponse.json( { error: err?.message || "Failed to create account link." }, { status: 500 } ); } }