Bloss Docs

Change the brand's pay rules

Developers
PATCH
/brands/{brandId}/payout-settings

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.

Authorization

bearerAuth payouts:write
headerAuthorizationBearer <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

Path Parameters

brandId*string

A brand id from GET /me or GET /creator/brands.

Length1 <= length

Query Parameters

dryRun?string

"true": run every check and return { dryRun: true, wouldChange } without changing anything.

Value in"true""false"

Request Body

application/json
  1. 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?

Response Body

Success.

application/json
  1. response
currency*string
timeZone*string

The brand's IANA time zone; every calendar day in the Brand API is in it.

basePay*
minimumViews*
payoutModel*string

How earnings accrue: per payout cycle, or a running ledger.

Value in"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"  }}

Was this page helpful?