Settle campaign participant
Records a payout of the participant's payable balance and fires campaign_payout.settled.
Omit amountCents to settle the whole payable balance; an amount above it answers 400, and
nothing payable answers 409.
nonesettlement: records a payout you made elsewhere.externalsettlement: pay from your own rails whencampaign_payout.payablefires, then call this with your payout id inexternalReference(required in this mode).treasurysettlement: transfers the amount from your Zernio balance to the creator's connected Stripe account, then records it with the Stripe transfer id asexternalReference. The transfer fee (4%, $0.50 minimum) is added on top: the creator receives the full amount and your balance is debitedtotalCents. The creator must have finished payout setup from their campaign page (409 otherwise), and a balance that does not cover the amount plus the fee answers 402. While Stripe confirms the transfer the amount sits in the participant'ssettlingbalance: a reject in that window cannot reverse it. If Stripe refuses the transfer the amount returns to payable; if Stripe does not answer, the amount stays insettlingand the next settle call for this participant finishes that payout first (even with nothing payable left). A retry asking for a differentamountCentsthan the payout in progress answers 409 with the amount in progress, and a settle while another request is still waiting on Stripe for the same payout answers 409 ("This payout is being sent to Stripe right now. Try again in a minute."). A payout Stripe has not confirmed after 24 hours answers 409 ("This payout is being confirmed with Stripe. Try again after the next reconciliation (within 24 hours).") until the daily reconciliation finishes it: settled if Stripe made the transfer, returned to payable if it did not. SetrecordOnly: trueto record a payout you made yourself instead of moving money through the treasury (the webhook then carriesrecorded: true). A treasury payout needs an owner, admin or billing admin, signed in or through a full-access key they created (403 otherwise); recording withrecordOnlydoes not. A creator held by an unfinished payout batch answers 409 ("This creator is in a card payout that is not finished yet.").
Send an Idempotency-Key so a retry never records the payout twice.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Path Parameters
Campaign ID.
Participant ID.
Header Parameters
Optional client-generated unique key (e.g. a UUID) that makes retries safe. Same key + same body replays the original response; same key + different body → 422; key still processing → 409. A request cut off mid-handler (for example by a function timeout) can leave its key in progress, answering 409 until the key expires after 24 hours.
length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.creatorcampaigns.settleCampaignParticipant({ path: { campaignId: 'campaign_abc123', participantId: 'participant_abc123', }, body: { amountCents: 1, externalReference: 'string', recordOnly: false, },});console.log(data);{ "settlement": { "entryId": "string", "participantId": "string", "amountCents": 0, "externalReference": "string", "payableCents": 0, "settledAt": "2019-08-24T14:15:22Z", "transferId": "string", "feeCents": 0, "totalCents": 0 }}Reopen campaign submission
Puts a rejected submission back to `pending_review` so it can be decided again. Its tracking window resumes, so it works only while that window has not ended; otherwise 409 `invalid_resource_state` ("This post's tracking window has ended."). A post that earned money which was already paid out cannot be reopened, and neither can a post of a closed campaign. Reopening a submission that is already `pending_review` returns it unchanged; any other status answers 409. No webhook fires.
Suspend campaign participant
Suspends an `active` participant: they can no longer submit posts. Any other status answers 409.