---
title: "Onboard Payouts"
method: POST
path: "/v1/portal/payouts/onboard"
tags: ["portal"]
---

# Onboard Payouts

`POST /v1/portal/payouts/onboard`

## Request

- Base URL: `https://app.teetra.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.teetra.com/v1/portal/payouts/onboard`
- Auth: none declared

Initiate Stripe Connect Express onboarding for a producer organization or enrollee.

SWEEP FIX: this mints/updates a Stripe Connect account and — once ``account_id`` comes
back — WRITES it as the org's/enrollee's ``stripe_connect_account_id`` (the payout
destination) and returns an onboarding URL that lets whoever holds it attach their OWN
bank details as that destination. Auth used to be optional (skipped entirely with no
Authorization header) and even when a token WAS presented, an ``org_id``/``enrollee_id``
named in the body was resolved and acted on with NO check that the caller's principal
actually owned it — an anonymous or unrelated caller could redirect another producer's
payouts. A verified producer token is now required, and an explicit ``org_id``/
``enrollee_id`` must be one the token's principal holds a Membership in.

## Request body

- PayoutOnboardSubmission
  - `org_id` string, nullable
  - `enrollee_id` string, nullable
  - `email` string, nullable
  - `country` string
  - `refresh_url` string
  - `return_url` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/teetra/apis/warrant.md) · [All operations](https://skmtc.dev/teetra/apis/warrant/llms.txt) · [OpenAPI document](https://skmtc.dev/teetra/apis/warrant/revisions/0e272d563cc4?raw)
