POST /sdk/v1/campaign-creators/payouts/bulk
Sends calculated campaign payouts for up to 100 creators. Each creator is recalculated immediately before payment so the amount cannot silently change between preview and payment. For a custom one-off amount that should appear in campaign spend without settling calculated earnings, use Campaign quick pay.Headers
X-Application-Id(required)X-Api-Key(required)X-Idempotency-Key(required): a unique value for this payout request. Retry the same request with the same key to receive the original result without paying twice.
Body
payouts is a non-empty array with no more than 100 items. Each item accepts:
campaignCreatorRecordId(required)amount(required): the exact calculatedpayout.totalreturned by the preview, excluding anyadditionalLineItems.currency(required): the exactpayout.currencyreturned by the preview.startDateandendDate(optional): the same inclusiveYYYY-MM-DDrange used for the preview. Send both or neither.confirmHighValuePayout(optional): set totruewhen the combined calculated amount and additional line items exceed your agency’s payout confirmation threshold.additionalLineItems(optional): up to 100 one-off items to pay on top of this CCR’s calculated earnings. Omit it or send[]for the existing behavior.platformFeePayerOverride(optional object): who pays the platform fee for this payout only, using the same format as Campaign quick pay.
Platform fee allocation
Each payout can use its own fee allocation. To split the platform fee equally between your agency and a selected creator, include:
For
CUSTOM_SPLIT, agencySharePercent is required and must be a JSON number
between 0 and 100 inclusive. Other modes do not accept it. Unknown fields
inside the override are rejected. An invalid override rejects the whole batch
before any payment executes.
The override applies to this payout, including its additional line items. It
does not change the agency default, save a creator preference, or change the
fee rate or cap. Keep sending the calculated gross amount from the preview;
the override changes the creator’s net receipt and your agency’s wallet debit.
Retry with the same fee override and idempotency key. Changing or removing an
override while reusing the key returns 409. Omission and INHERIT are equivalent.
Additional line items
Each additional item accepts exactly two fields:
Every additional item uses the payout’s
currency. Do not send a per-item
currency, quantity, or calculated line-item metadata. Amounts, their sum, and
the combined payout must fit within JavaScript’s safe integer range in cents.
Zero, negative, non-finite, and sub-cent amounts are rejected.
The gross payout is amount + sum(additionalLineItems[].amount). Grade applies
its existing platform fees, wallet balance checks, and high-value confirmation
to that combined amount. Each description is saved as a separate line on both
invoices and in the saved payout breakdown.
The creator’s net receipt and agency’s debit depend on their fee allocation.
These items apply only to this payment. They do not change the contract, create
recurring earnings, or replace a saved manual bonus on the CCR. This endpoint
still requires payable calculated earnings; use Campaign quick pay
for a standalone payment when there are none.
Retry with the same idempotency key and items. Changing either an item’s
description or amount while reusing a key returns 409. Identical descriptions
are allowed and remain separate invoice lines.
Example request
Response
The example pays a gross total of675 USD: 600 USD calculated earnings plus
75 USD additional items. The successful response’s amount includes the extras.
The request can contain both paid and failed items. A failure for one creator
does not hide the results for the others.
- the creator or campaign record was not found
- the payout is still calculating or has no payable amount
- the amount or currency no longer matches the current calculation
- high-value confirmation is required
- the agency wallet has insufficient available funds
Request errors
400: missing idempotency key, invalid body, additional line items, or fee override, or more than 100 payouts. Invalid additional items or fee overrides reject the request before any payment.401: missing or invalid SDK credentials409: the idempotency key was reused with different data, or the original request is still running503: idempotency protection is temporarily unavailable