Payroll
Staff commission rules and the entries they generate against real sales. Staff authentication required.
Commission Rules
rate_type is "percentage" (uses percentage_value) or "fixed" (uses fixed_amount) — one of the two is required depending on which.
POST /api/v1/commission-rules/
{
"staff": 7,
"is_active": true,
"rate_type": "percentage",
"basis": "sale_total",
"percentage_value": "5.00"
}Commission Entries
Read-only — generated automatically when a sale matching an active rule completes, not created via the API directly.
GET /api/v1/commission-entries/301/ — response data
{
"id": 301,
"sale": 88,
"receipt_number": "RCPT-0088",
"staff": 7,
"staff_name": "jane",
"basis": "sale_total",
"rate_type": "percentage",
"rate_value": "5.00",
"sale_amount": "1750.00",
"commission_amount": "87.50",
"status": "approved",
"approved_by": 4,
"approved_by_name": "peter",
"approved_at": "2026-07-21T09:00:00Z",
"paid_by": null,
"paid_by_name": null,
"paid_at": null,
"created_at": "2026-07-20T10:15:00Z"
}