---
title: "Start payout onboarding"
method: POST
path: "/public/creator-campaigns/{token}/payouts"
tags: ["Creator Portal"]
---

# Start payout onboarding

`POST /public/creator-campaigns/{token}/payouts`

## Request

- Base URL: `https://zernio.com/api`
- URL: `https://zernio.com/api/public/creator-campaigns/{token}/payouts`
- Auth: none required

For a campaign that pays through the Zernio treasury: creates the creator's payee on first
use and returns a Stripe-hosted onboarding link where they enter identity and bank
details. `country` is required the first time and cannot change afterwards. About 20
attempts per participant every 10 minutes.

## Request body

- object
  - `action` 'onboard', required
  - `country` string: ISO 3166-1 alpha-2 country the creator lives in. Required on the first call.

## Response `200`

Stripe onboarding link.

- object
  - `url` string, uri, required

## Other responses

- `400`: `country` is missing on the first call ("Choose the country you live in.") or differs from the one already saved ("Payout country cannot be changed.").
- `404`: The token is malformed, unknown or expired. Every case answers the same, so a link can never be probed.
- `409`: The campaign team pays the creator directly, so there is nothing to set up (`invalid_resource_state`).
- `429`: Too many attempts from this link or IP address (`rate_limited`). Wait a few minutes and try again.

## Changes

- **2026-10-28** `174ae3ba4b13`: 2 info
  - api tag `Creator Portal` added
  - api tag `Creator Portal (public)` removed
- **2026-10-28** `8f2c44dd7550`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zernio/apis/zernio-api/changes/public/creator-campaigns/:token/payouts/post.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) - [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/c319eb5d95b6?raw)
