---
title: "Publisher Stripe Connect"
method: POST
path: "/v1/publisher/{tenant_slug}/stripe-connect"
---

# Publisher Stripe Connect

`POST /v1/publisher/{tenant_slug}/stripe-connect`

## Request

- Base URL: `https://api.storyflo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.storyflo.com/v1/publisher/{tenant_slug}/stripe-connect`
- Auth: none declared

Self-serve Stripe Connect Express onboarding. Mints (or reuses) a
connected account for this publisher and returns a one-time
onboarding URL the dashboard can redirect to. After onboarding the
Stripe ``account.updated`` webhook flips charges_enabled +
payouts_enabled on the publisher row, which the dashboard reads
on next load to show the green-light state.

Never 5xxs on a Stripe failure. A payout rail that isn't ready is a
*state* of the dashboard, not a server error: the publisher gets a 200
carrying ``status="pending_setup"``, a null ``onboarding_url`` and a
plain-English message, so the rest of onboarding continues and the
Connect button stays pressable. Same reasoning as ``_degraded_payload``
on the claim path — never a conversion-losing 500.

``status`` is ``"ready"`` on the happy path and every pre-existing key
keeps its meaning, so older dashboard builds that only look at
``onboarding_url`` are unaffected.

## Path parameters

- `tenant_slug` string, required

## Headers

- `x-storyflo-publisher-token` string, nullable

## Request body

- PublisherStripeOnboardRequest
  - `publisher_email` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/storyflo/apis/storyflo-inference-router.md) · [All operations](https://skmtc.dev/storyflo/apis/storyflo-inference-router/llms.txt) · [OpenAPI document](https://skmtc.dev/storyflo/apis/storyflo-inference-router/revisions/c3a1a735ac7a?raw)
