---
title: "Create a Stripe Connect onboarding link"
method: POST
path: "/billing/connect/onboarding-link"
tags: ["Billing"]
---

# Create a Stripe Connect onboarding link

`POST /billing/connect/onboarding-link`

## Request

- Base URL: `https://api.cavuno.com/v1`
- URL: `https://api.cavuno.com/v1/billing/connect/onboarding-link`
- Auth: HTTP bearer

Returns a hosted Stripe onboarding URL for the Board's payment connection, creating the connected account first if the Board has none. The URL is single-use and expires within minutes: hand it to a human immediately, then poll `GET /v1/billing/connect` until `acceptingPayments` and `payoutsEnabled` are both true. Calling this again issues a fresh link, so request a new one if the human did not finish in time. When the human finishes or the link expires, Stripe sends them to the Board's payment settings in the dashboard. Sandbox boards use a platform-provisioned test connection and are refused with `sandbox_connect_managed` (409). Requires `plans.manage`.

## Response `200`

Onboarding link created.

- BillingConnectOnboardingLink
  - `object` 'billing_connect_onboarding_link', required
  - `url` string, uri, required: Single-use hosted Stripe onboarding URL. Hand it to a human straight away; it expires within minutes.
  - `expiresAt` string, date-time, required: ISO 8601 time after which the URL no longer works.

## Other responses

- `default`: An error. Every non-2xx response uses the same envelope; see the Errors section of the introduction.

## Changes

- **2026-10-19** `c34152c38176`: 1 info
  - added the optional property `error/upgrade` to the response with the `default` status

[Operation history](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/changes/billing/connect/onboarding-link/post.md)

---

[API](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api.md) · [All operations](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/revisions/d5974dabff14?raw)
