payout.completed

Fired when a payout is marked as paid.

POSTYour webhook URL

The payout.completed event is triggered when a payout is marked as paid, either through the dashboard or the API. At this point, all commissions linked to the payout are moved to paid status.

Payload

json
{
  "id": "evt_cm1pay5678",
  "event": "payout.completed",
  "created_at": "2026-04-10T15:30:00.000Z",
  "data": {
    "affiliate": {
      "email": "[email protected]",
      "name": "Jane Smith",
      "referral_code": "jane-smith"
    },
    "product": {
      "id": "cuid_abc123",
      "name": "My SaaS"
    },
    "amount_cents": 24500
  }
}

Payload fields

ParameterTypeDescription
idrequired
stringUnique event ID (prefixed with evt_).
eventrequired
stringAlways "payout.completed" for this event.
created_atrequired
stringISO 8601 timestamp of when the payout was completed.
data.affiliate.emailrequired
stringEmail of the affiliate who received the payout.
data.affiliate.name
stringName of the affiliate (may be null).
data.affiliate.referral_code
stringThe affiliate's referral code (may be null).
data.product.idrequired
stringYour Anderro product ID.
data.product.namerequired
stringYour product name in Anderro.
data.amount_centsrequired
integerTotal payout amount in cents.

Example handler

javascript
app.post("/webhooks/anderro", (req, res) => {
  const { event, data } = req.body;

  if (event === "payout.completed") {
    const amount = (data.amount_cents / 100).toFixed(2);
    console.log(
      `Payout completed: $${amount} sent to ${data.affiliate.email}`
    );

    // Update your accounting records
    // Mark the payment as reconciled
  }

  res.status(200).send("OK");
});

Amounts are in cents

The amount_cents value is an integer in cents. Divide by 100 to get the dollar amount.