Payments & products
Linkstacked's monetisation surface routes payments through Stripe Connect — every Linkstacked seller has their own Stripe account, and payouts hit them directly. The API mirrors that boundary: most calls either configure the Connect link or read state that Stripe owns.
Connect a Stripe account
Sellers start by minting a Connect account through Linkstacked:
mutation StripeConnect {
createStripeConnectAccount {
onboardingUrl
accountId
}
}The returned onboardingUrl is a short-lived Stripe-hosted onboarding
link. Redirect your user there; Stripe redirects them back to your
domain when complete.
Read the live status with stripeConnectStatus { chargesEnabled payoutsEnabled detailsSubmitted requirements } so your dashboard can
show actionable next steps if Stripe still wants more info.
Generate a dashboard link
Sellers manage their own Stripe dashboard for tax forms, payouts, and
disputes. stripeConnectDashboardLink mints a one-time URL into their
Stripe-hosted express dashboard:
stripeConnectDashboardLinkReturns a short-lived URL that redirects directly into the seller's Stripe Express dashboard.
Digital products
A digital product on Linkstacked is a sellable file (or bundle) attached to a profile. The API surface mirrors the dashboard composer:
mutation CreateProduct($input: DigitalProductCreateInput!) {
createDigitalProduct(input: $input) {
product { _id title price currency status downloadAssetId }
}
}updateDigitalProduct, toggleDigitalProductPublished, and
deleteDigitalProduct round out the surface.
Download URLs are ephemeral
Buyers receive a signed download URL via the
getProductDownloadUrl(productId) query. URLs expire in 5 minutes, so
always re-mint at click time — never persist them in your database.
Read sales activity
emailCollectionStats and the analytics surface (see
Analytics) return order counts and revenue alongside
the rest of the public events. The Stripe-side ledger remains the source
of truth for accounting — Linkstacked never pretends to be a tax engine.