Zernio
APIFor you
Zernio
APIFor you
API Reference

Creator Campaigns

List campaign ledgerGETList campaign participantsGETList campaign payablesGETList payout batchesGETList campaign submissionsGETList creator campaignsGETCreate campaign adjustmentPOSTCreate campaign invite linkPOSTInvite campaign participantPOSTPay creators with one card paymentPOSTCreate creator campaignPOSTGet campaign participantGETGet campaign reportGETGet campaign submissionGETGet creator campaignGETUpdate creator campaignPATCHActivate creator campaignPOSTApprove campaign submissionPOSTClose creator campaignPOSTPause creator campaignPOSTRaise creator campaign budgetPOSTReinstate campaign participantPOSTReject campaign submissionPOSTRemove campaign participantPOSTReopen campaign submissionPOSTSettle campaign participantPOSTSuspend campaign participantPOST
Dashboard
OverviewPlatformsAPI ReferenceResources
Creator Campaigns

Suspend campaign participant

Suspends an active participant: they can no longer submit posts. Any other status answers 409.


POST
/v1/creator-campaigns/{campaignId}/participants/{participantId}/suspend

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Path Parameters

campaignId*string

Campaign ID.

participantId*string

Participant ID.

Response Body

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.suspendCampaignParticipant({  path: {    campaignId: 'campaign_abc123',    participantId: 'participant_abc123',  },});console.log(data);
{  "participant": {    "id": "string",    "campaignId": "string",    "creator": {      "id": "string",      "displayName": "string",      "email": "string"    },    "status": "invited",    "joinedAt": "2019-08-24T14:15:22Z",    "accounts": [      {        "accountId": "string",        "verifiedAt": "2019-08-24T14:15:22Z",        "platform": "string",        "username": "string"      }    ],    "balances": {      "accruing": 0,      "owed": 0,      "payable": 0,      "settling": 0,      "settled": 0    },    "flags": [      {        "code": "linked_accounts",        "detail": "string",        "raisedAt": "2019-08-24T14:15:22Z"      }    ],    "submissionCounts": {      "received": 0,      "tracking": 0,      "pending_review": 0,      "approved": 0,      "rejected": 0,      "expired": 0,      "withdrawn": 0    },    "payout": {      "status": "not_started"    }  }}
Was this page helpful?

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. - `none` settlement: records a payout you made elsewhere. - `external` settlement: pay from your own rails when `campaign_payout.payable` fires, then call this with your payout id in `externalReference` (required in this mode). - `treasury` settlement: transfers the amount from your Zernio balance to the creator's connected Stripe account, then records it with the Stripe transfer id as `externalReference`. The transfer fee (4%, $0.50 minimum) is added on top: the creator receives the full amount and your balance is debited `totalCents`. 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's `settling` balance: 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 in `settling` and the next settle call for this participant finishes that payout first (even with nothing payable left). A retry asking for a different `amountCents` than 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. Set `recordOnly: true` to record a payout you made yourself instead of moving money through the treasury (the webhook then carries `recorded: true`). A treasury payout needs an owner, admin or billing admin, signed in or through a full-access key they created (403 otherwise); recording with `recordOnly` does 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.

List ledger entries

Lists ledger entries for your team, newest first. Filter by scope (matches either side of the entry), kind, or the reference that caused the entry. A profile-scoped key (or a member limited to some profiles) only sees entries of campaigns under its profiles and of their participants; operator and platform scopes stay hidden from it.