> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pocketsflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Revenue splits

> Invite co-creators, accept splits and read split earnings with your API key or from an AI agent over MCP.

A revenue split shares every sale of one product between its owner and up
to five co-creators. The owner invites a co-creator by email with a % share;
the co-creator accepts; every sale after that is split. Product guide:
[Revenue splits](/selling/revenue-splits).

<Note>
  Inviting needs the Growth plan and above: `POST /revenue-splits` and
  `POST /revenue-splits/{id}/resend` answer `403` with `code: FEATURE_LOCKED`
  on a plan without revenue splits. Listing, reading, removing and
  everything a co-creator does (invites, accept, decline, earnings) stay
  open on every plan.
</Note>

## Endpoints

| Method | Endpoint | Operation ID | MCP tool |
| - | - | - | - |
| `GET` | `/revenue-splits` | `listRevenueSplits` | `list_revenue_splits` |
| `POST` | `/revenue-splits` | `createRevenueSplit` | `create_revenue_split` |
| `GET` | `/revenue-splits/{id}` | `getRevenueSplit` | — |
| `DELETE` | `/revenue-splits/{id}` | `removeRevenueSplit` | `remove_revenue_split` |
| `POST` | `/revenue-splits/{id}/resend` | `resendRevenueSplitInvite` | — |
| `GET` | `/revenue-splits/products/{id}` | `getProductRevenueSplit` | `get_product_revenue_split` |
| `GET` | `/revenue-splits/sales` | `listRevenueSplitSales` | `list_revenue_split_sales` |
| `GET` | `/revenue-splits/sales/{id}` | `getRevenueSplitSale` | — |
| `GET` | `/revenue-splits/invites` | `listRevenueSplitInvites` | `list_revenue_split_invites` |
| `POST` | `/revenue-splits/invites/{id}/accept` | `acceptRevenueSplitInvite` | `accept_revenue_split_invite` |
| `POST` | `/revenue-splits/invites/{id}/decline` | `declineRevenueSplitInvite` | `decline_revenue_split_invite` |
| `GET` | `/revenue-splits/earnings` | `getRevenueSplitEarnings` | `get_revenue_split_earnings` |

Money is always **integer cents** of the seller's settlement currency
(`currency`), in fields ending in `Cents`. Shares are `sharePercent` (up to two
decimals) and `shareBps` (basis points, `3000` = 30%).

## Invite a co-creator

```bash theme={"system"}
curl https://api.pocketsflow.com/revenue-splits \
  -H "Authorization: Bearer $POCKETSFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "productId": "665f1c2a9b3e4a0012ab34cd",
    "email": "maya@studio.co",
    "sharePercent": 30
  }'
```

| Field | Required | Notes |
| - | - | - |
| `productId` | yes | One of your products. |
| `email` | yes | The co-creator's Pocketsflow account email. |
| `sharePercent` | yes | Above 0, up to 100, at most two decimals. |

The answer is the split with `status: "invited"`. Rule breaks answer `409`:
`ALREADY_INVITED`, `TOO_MANY_COLLABORATORS` (5 at most) or `SHARES_OVER_100`.

## Accept an invite (co-creator)

```bash theme={"system"}
# Invites sent to the key owner's email
curl https://api.pocketsflow.com/revenue-splits/invites \
  -H "Authorization: Bearer $POCKETSFLOW_API_KEY"

curl -X POST https://api.pocketsflow.com/revenue-splits/invites/6710c3d59e3f1a0012cd7c01/accept \
  -H "Authorization: Bearer $POCKETSFLOW_API_KEY"
```

The account must be the invited email and have payouts set up
(`409 PAYOUTS_REQUIRED` otherwise). An expired or answered invite is `410`.
Sales made after the accept are split; earlier sales are not.

## How a sale is split

```text theme={"system"}
base        = pre-tax sale − platform fee (once, on the full sale) − affiliate commission
co-creator  = floor(base × share)          (cents)
owner       = base − every co-creator's share   (all rounding goes to the owner)
```

`GET /revenue-splits/sales` (owner) and `GET /revenue-splits/sales/{id}`
return this breakdown per order. A co-creator calling
`GET /revenue-splits/sales/{id}` only sees their own share and `ownerCents`
is `null`.

## Share statuses

| Status | Meaning |
| - | - |
| `pending` | Recorded, not paid yet. |
| `held` | An account (co-creator or owner) is under review. Not paid until cleared. |
| `paid` | Transferred to the co-creator's payouts account. |
| `reversed` | The sale was refunded or disputed before the share was paid. |

A share refunded **after** it was paid keeps `status: "paid"` with
`clawbackCents` set: it is netted from the co-creator's next payout from the
same owner.

`GET /revenue-splits/earnings` returns `payoutsEnabled`. When it is `false`,
shares are recorded as `pending` and not paid out yet.

## Webhooks

| Event | Sent to | When |
| - | - | - |
| `split.created` | The owner and each co-creator | A sale of a split product is recorded. `split` carries the breakdown; a co-creator's copy only their share. |
| `split.paid` | The co-creator and the owner | A co-creator's shares were transferred. `payout` carries `amountCents` (net), `grossCents` and `clawbackCents`. |

See [Webhook events](/api-webhooks/events) for the envelope and signatures.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.