Skip to main content
Marks a single credit-only creator payout as paid externally. Use this after paying a creator their credits in your own system so that the payout’s status is reflected in Growi.
This endpoint is one-shot — payouts cannot be partially paid. Each call marks the entire credit payout as paid externally.
Rate limit: a minimum of 2 seconds between requests per API key.

Request Body

FieldTypeDescriptionRequired
creator_payout_uuidStringThe uuid of the payout (from GET /stats/creator_payouts)Yes

Validation Rules

The endpoint rejects the request unless all of the following are true:
  1. creator_payout_uuid is present.
  2. The payout belongs to the authenticated organization (or one of its child orgs).
  3. The payout’s status is due or pending_completing_requirements.
  4. The payout’s total_credit_amount is greater than 0.
  5. The payout’s total_cash_amount is 0 (no mixed cash + credits).

Request Example

curl -X POST "https://api.growi.io/api/public/v1/stats/mark_credit_payout" \
     -H "Authorization: Bearer YOUR_PUBLIC_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{"creator_payout_uuid":"UUID_OF_PAYOUT"}'

Response Example

200 OK
{
  "success": true,
  "creator_payout": {
    "id": 891439,
    "uuid": "EXAMPLE_UUID",
    "creator_name": "Example Creator",
    "since_date": "03/03/2026",
    "deal_date": "05/02/2026",
    "status": "Paid externally",
    "amount": "$0.00",
    "credits_enabled": true,
    "credit_name": "credits",
    "total_credit_amount": 750,
    "formatted_total_credit_amount": "750 credits"
  }
}

Response Fields

FieldTypeDescription
successBooleanIndicates whether the payout was marked as paid externally
creator_payoutObjectThe updated payout
creator_payout.idIntegerInternal identifier for the payout
creator_payout.uuidStringStable identifier
creator_payout.creator_nameStringCreator’s display name
creator_payout.since_dateStringStart date of the payout period (MM/DD/YYYY)
creator_payout.deal_dateStringBilling cycle end / due date (MM/DD/YYYY)
creator_payout.statusStringWill be Paid externally after a successful call
creator_payout.amountStringCash amount, formatted with currency
creator_payout.credits_enabledBooleanWhether credits are enabled for the campaign
creator_payout.credit_nameString | nullOrg-defined label (e.g. "credits")
creator_payout.total_credit_amountIntegerTotal credit amount for the payout
creator_payout.formatted_total_credit_amountString | nullDisplay string (e.g. "750 credits")

Error Responses

All errors return a non-2xx response with a JSON body of the form:
{ "error": "<message>" }
ConditionStatusMessage
Missing creator_payout_uuid4xxcreator_payout_uuid is required
Payout not found / not in your org4xxCreator payout not found
Status is not due / pending_completing_requirements4xxCannot mark payout as paid: current status is <status>
total_credit_amount is 04xxOnly credit payouts can be marked paid via this endpoint
Auth header missing or invalid401Not Authenticated
If a payout has already been marked as paid externally, subsequent calls return a 4xx with Cannot mark payout as paid: current status is paid_externally. Treat that response as a successful no-op on the client side.

Typical Workflow

  1. GET /stats/creator_payouts?start_date=…&end_date=…&credits_only=true — fetch the list of credit payouts due to your creators.
  2. Pay each creator their credits in your own system.
  3. For each paid creator, POST /stats/mark_credit_payout with their creator_payout_uuid to record the payout in Growi.