Change the brand's pay rules
Change how the brand pays creators, as on Settings › Rules: base pay per set (one rate, or one per platform), the minimum views and how they're counted, the bonus model, rate and cap, the referral bonus, instant base pay, the reporting cutoff and automatic cycles. Send only what changes; field names follow brand.payout-settings.get. Moves money: a change to base pay, minimum views or the bonus reprices running cycles that have no locked-in rules and refreshes which sets qualify. A cycle with locked-in rules keeps them (apply new rules to it in the app). Creators and groups with their own deal keep it. Bonus tiers have their own call, brand.bonus-tiers.update. Not here: the payout model and ledger, the time zone, trials and the payout provider. Full admins only. Returns the settings as brand.payout-settings.get does. With ?dryRun=true nothing is written: the answer lists each field that would change, before and after.
bearerAuth payouts:writeAuthorizationBearer <token>Personal access token. Scopes: account:read, creator:read, creator:earnings, managed:read, coach:read, brand:read, creators:read, videos:read, analytics:read, onboarding:read, onboarding:signatures, engagement:read, support:read, integrations:read, payouts:read, funds:read, billing:read, groups:write, videos:write, onboarding:write, sync:write, payouts:write.
Scope: payouts:write
brandId*stringA brand id from GET /me or GET /creator/brands.
1 <= lengthdryRun?string"true": run every check and return { dryRun: true, wouldChange } without changing anything.
"true""false"application/json- body
basePay?minimumViews?bonus?referralBonus?instantBasePay?basePayDeadline?|Campaign reporting cutoff, YYYY-MM-DD in the brand's time zone; null clears it. Advisory: late sets are flagged, never refused.
cycles?Success.
application/json- response
currency*stringtimeZone*stringThe brand's IANA time zone; every calendar day in the Brand API is in it.
basePay*minimumViews*payoutModel*stringHow earnings accrue: per payout cycle, or a running ledger.
"cycle""ledger"ledger*cycles*bonus*referralBonus*instantBasePay*basePayDeadline*|Campaign reporting cutoff, YYYY-MM-DD in the brand's time zone. Advisory: sets that qualify after it are flagged late, never refused.
payoutProvider*curl -X PATCH 'https://example.com/api/v1/brands/string/payout-settings' \ -H 'Content-Type: application/json' \ -d '{}'{ "currency": "USD", "timeZone": "string", "basePay": { "mode": "uniform", "uniform": 0, "perPlatform": { "instagram": 0, "tiktok": 0, "youtube": 0, "facebook": 0 }, "requirement": "all" }, "minimumViews": { "threshold": -9007199254740991, "mode": "all" }, "payoutModel": "cycle", "ledger": { "expirationDays": -9007199254740991, "autoRunEnabled": true, "autoRunIntervalDays": -9007199254740991 }, "cycles": { "durationDays": -9007199254740991, "autoRecurringEnabled": true }, "bonus": { "model": "tiered", "aggregateMode": true, "tiers": [ { "viewThreshold": -9007199254740991, "bonus": 0 } ], "linearRatePerThousand": 0, "linearCap": 0 }, "referralBonus": { "enabled": true, "amount": 0 }, "instantBasePay": { "enabled": true, "minConnectedAccounts": -9007199254740991, "requiredPlatforms": [ "string" ], "minAudiencePct": -9007199254740991 }, "basePayDeadline": "string", "payoutProvider": { "id": "whop", "name": "string", "connected": true, "mode": "test", "accountId": "string" }}The brand's pay rules and payout provider GET
How this brand pays creators, as on Settings › Rules: base pay per set (pair) — one rate, or one per platform — the minimum views a set needs and how they're counted, the payout model (cycles or a running ledger), the bonus (view tiers or a rate per 1,000 views with an optional cap), the referral bonus, instant base pay, the base-pay deadline, and the payout provider with whether it's connected. Provider credentials never appear; the provider account id is masked.
Referral payouts GET
Referral bonuses owed or paid to creators whose invite code brought in another creator, newest first, as on the Referral Payouts page.