Creators · Creator Campaigns
Settles a campaign participant.
POST
https://api.pozy.ai/v1/creator-campaigns/{campaignId}/participants/{participantId}/settleEnabled on requestsettleCampaignParticipant
Guides: Pay creators, Run a campaign
Request
Send your API key as Authorization: Bearer pz_live_.... Read-only keys cannot call it. Keys with the creator_campaigns resource group disabled get 403 resource_group_disabled. Authentication
This endpoint is enabled per workspace. Until it is, calls return 403 feature_not_available. Email support@pozy.ai to turn it on.
Path parameters
| Name | Type | Notes |
|---|---|---|
campaignIdrequired | string | |
participantIdrequired | string |
Headers
| Name | Type | Notes |
|---|---|---|
Idempotency-Key | string | Up to 255 charactersRetries with the same key return the original result. See Idempotency |
Request body
application/json, required
amountCentsintegerAt least 1.
externalReferencestring1 to 200 characters.
recordOnlyboolean
Example
curl -X POST "https://api.pozy.ai/v1/creator-campaigns/65a3737dd8b11ea61f199e6e/participants/6f0150243551cb6ee41f35e0/settle" \
-H "Authorization: Bearer $POZY_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"amountCents": 1,
"externalReference": "string",
"recordOnly": true
}'import { randomUUID } from "node:crypto";
const res = await fetch("https://api.pozy.ai/v1/creator-campaigns/65a3737dd8b11ea61f199e6e/participants/6f0150243551cb6ee41f35e0/settle", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.POZY_API_KEY}`,
"Idempotency-Key": randomUUID(),
"Content-Type": "application/json",
},
body: JSON.stringify({
amountCents: 1,
externalReference: "string",
recordOnly: true
}),
});
const data = await res.json();
if (!res.ok) throw new Error(data?.error ?? `Request failed with status ${res.status}`);
console.log(data);import os
import requests
resp = requests.post(
"https://api.pozy.ai/v1/creator-campaigns/65a3737dd8b11ea61f199e6e/participants/6f0150243551cb6ee41f35e0/settle",
headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
json={
"amountCents": 1,
"externalReference": "string",
"recordOnly": True,
},
timeout=30,
)
resp.raise_for_status()
print(resp.json())Response
201 on success
settlementobjectrequired9 child fields
entryIdstringrequiredparticipantIdstringrequiredamountCentsintegerrequiredexternalReferencestringrequiredCan be null.
payableCentsintegerrequiredsettledAtstring (date-time)requiredtransferIdstringfeeCentsintegertotalCentsinteger
201 response
{
"settlement": {
"entryId": "6a385c12fc97ebd038aaca0f",
"participantId": "6f0150243551cb6ee41f35e0",
"amountCents": 1,
"externalReference": "string",
"payableCents": 1,
"settledAt": "2026-10-02T09:00:00.000Z",
"transferId": "6f5f6fe5901ca25e11c24ddb",
"feeCents": 1,
"totalCents": 42
}
}Errors
Errors use one shape: { error, type, code, param?, details? }. The ones you are most likely to see here:
| 400 | invalid_request_error | A parameter or body field is missing or invalid. param names it. |
| 401 | authentication_error | The API key is missing, revoked or expired. |
| 403 | permission_error | The key is read-only, scoped to other profiles, or has this resource group disabled. |
| 404 | not_found | Nothing with that id exists in your workspace. |
| 429 | rate_limit_error | Too many requests this minute. Wait for Retry-After seconds. |
Every code is listed in Errors.
More in Creator Campaigns
GETList creator campaignsPOSTCreate creator campaignGETGet creator campaignPATCHUpdate creator campaignPOSTRaise creator campaign budgetPOSTActivate creator campaignPOSTPause creator campaignPOSTClose creator campaignGETList campaign participantsPOSTInvite campaign participantGETGet campaign participantPOSTSuspend campaign participantPOSTReinstate campaign participantPOSTRemove campaign participantPOSTResend campaign participant inviteGETList payout batchesPOSTPay creators with one card paymentPOSTCreate campaign invite linkGETList campaign submissionsGETGet campaign submissionPOSTApprove campaign submissionPOSTReject campaign submissionPOSTReopen campaign submissionGETList campaign payablesPOSTCreate campaign adjustmentGETList campaign ledgerGETGet campaign report