# Creator campaigns

Pay creators for verified views or approved posts. Create a campaign, invite creators, review what they post and pay what they earned.

Creator campaigns let a brand pay creators for content they post on their own accounts. You set the economics and a budget, invite creators, and they submit the posts they publish. Pozy reads the real view counts from each platform, scores authenticity and flags anything unusual. You approve or reject, and approved earnings become payable after a hold period.

## How a campaign runs

1. **Create** a campaign on a profile: name, brand, platforms, economics and budget. It starts as a `draft`.
2. **Activate** it. Posts published after activation (or after `startsAt`) can earn.
3. **Invite** creators by email, or share one open invite link. Each creator gets a personal link to a Pozy-hosted page.
4. **Creators join** on that page, connect their accounts read-only and submit post URLs.
5. **Pozy tracks** each post for the tracking window (30 days by default), sampling views and flagging problems such as duplicates or view spikes.
6. **You review** submissions that are ready and approve or reject them. Pozy never rejects on its own.
7. **Earnings are held** (10 days by default), then become payable.
8. **You pay**, by card through Pozy, from a prepaid balance, or on your own rails and record it.

## Three ways to pay out

| `economics.type` | Creators earn | Key fields |
| --- | --- | --- |
| `cpm` | A rate per 1,000 verified views | `ratePer1kCents`, `minViewsToEarn`, `maxPayoutPerClipCents`, `budgetCents` |
| `per_post` | A fixed amount per approved post | `perApprovedPostCents`, `maxPostsPerParticipant`, `budgetCents` |
| `pool` | A share of a fixed pool | `budgetCents`, `minViewsToQualify` |

All amounts are in US cents.

## Platforms

Creators can submit from TikTok, Instagram, YouTube, Facebook, X, Threads and Pinterest. They connect each account read-only: Pozy reads posts and views, and never posts.

| Platform | What counts |
| --- | --- |
| Pinterest | Only video pins have views, so image pins earn nothing on a CPM campaign. |
| Facebook | Reels and videos on a Page the creator connects. Other Facebook posts have no view count and are refused. |
| X | Views are the post's impressions. Reading them costs X API fees, billed per call and capped per campaign by `caps.maxXReadSpendCents`. |

## Who can do what

- Running a campaign (create, invite, review) needs access to the campaign's profile. A restricted key also needs the `creator_campaigns` resource group.
- Moving money (card payouts, top-ups, transfers) needs the workspace owner, an admin or a billing admin, signed in or using a full-scope key they created. Profile-scoped keys cannot read the balance, transfers or payees.
- Creators never get a Pozy account. They do not appear in your profiles and do not count toward your plan.

> **Note:**
> 
> Paying creators through Pozy (card payouts, balance top-ups and transfers) is enabled on request. If one of those calls returns `feature_not_available`, contact support@pozy.ai. Campaigns with `settlement: "external"` or `"none"` work without it.

## In this section

- [Run a campaign](https://pozy.ai/docs/creators/campaigns): Create and activate a campaign, invite creators, review submissions and read the report.
- [Pay creators](https://pozy.ai/docs/creators/payouts): Card payouts, balance top-ups, settlements and fees.

## Webhook events

Every creator campaign event is sent on the campaign's profile and belongs to the `creator_campaigns` resource group. Amounts are in cents. Dedupe on the event `id` before you pay anyone.

| Event | When it fires |
| --- | --- |
| [`campaign_submission.received`](https://pozy.ai/docs/webhooks/events#campaign-submission-received) | Campaign submission received. |
| [`campaign_submission.flagged`](https://pozy.ai/docs/webhooks/events#campaign-submission-flagged) | Campaign submission flagged. |
| [`campaign_submission.pending_review`](https://pozy.ai/docs/webhooks/events#campaign-submission-pending-review) | Campaign submission pending review. |
| [`campaign_submission.approved`](https://pozy.ai/docs/webhooks/events#campaign-submission-approved) | Campaign submission approved. |
| [`campaign_submission.rejected`](https://pozy.ai/docs/webhooks/events#campaign-submission-rejected) | Campaign submission rejected. |
| [`creator_campaign.closed`](https://pozy.ai/docs/webhooks/events#creator-campaign-closed) | Creator campaign closed. |
| [`campaign_payout.payable`](https://pozy.ai/docs/webhooks/events#campaign-payout-payable) | Campaign payout payable. |
| [`campaign_payout.settled`](https://pozy.ai/docs/webhooks/events#campaign-payout-settled) | Campaign payout settled. |
| [`campaign_payout.failed`](https://pozy.ai/docs/webhooks/events#campaign-payout-failed) | Campaign payout failed. |
| [`campaign_participant.joined`](https://pozy.ai/docs/webhooks/events#campaign-participant-joined) | Campaign participant joined. |
| [`campaign_participant.suspended`](https://pozy.ai/docs/webhooks/events#campaign-participant-suspended) | Campaign participant suspended. |
| [`campaign_participant.removed`](https://pozy.ai/docs/webhooks/events#campaign-participant-removed) | Campaign participant removed. |
| [`creator_campaign.budget_exhausted`](https://pozy.ai/docs/webhooks/events#creator-campaign-budget-exhausted) | Creator campaign budget exhausted. |
