POST
Your webhook URLThe payout.created event is triggered when Anderro generates a new payout for an affiliate whose approved commissions exceed the payout threshold. Payouts are created automatically based on your payout frequency settings (monthly or quarterly).
Payload
json
{
"id": "evt_cm1pay1234",
"event": "payout.created",
"created_at": "2026-04-01T00:00: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
| Parameter | Type | Description |
|---|---|---|
idrequired | string | Unique event ID (prefixed with evt_). |
eventrequired | string | Always "payout.created" for this event. |
created_atrequired | string | ISO 8601 timestamp of when the payout was created. |
data.affiliate.emailrequired | string | Email of the affiliate receiving the payout. |
data.affiliate.name | string | Name of the affiliate (may be null). |
data.affiliate.referral_coderequired | string | The affiliate's referral code. |
data.product.idrequired | string | Your Anderro product ID. |
data.product.namerequired | string | Your product name in Anderro. |
data.amount_centsrequired | integer | Total payout amount in cents. |
Example handler
javascript
app.post("/webhooks/anderro", (req, res) => {
const { event, data } = req.body;
if (event === "payout.created") {
const amount = (data.amount_cents / 100).toFixed(2);
console.log(
`New payout: $${amount} for ${data.affiliate.email}`
);
// Notify your finance team
// Queue for approval in your system
}
res.status(200).send("OK");
});
Payout lifecycle
New payouts start in pending status and require approval before payment. Use the Update Payout API endpoint or the dashboard to approve and mark payouts as paid.