Cashback campaigns
Create and manage cashback campaigns. A campaign adds its own rate on top of the agency's tier rate for bookings checking in inside its window, and several campaigns can apply to one booking. A campaign scoped to some listings earns on those listings' share of the booking.
📄️ List cashback campaigns
Paginated. Status is derived from the campaign's dates on every read, so it is always current: SCHEDULED before its from-date, LIVE inside the window, INACTIVE once the to-date has passed. Deleted campaigns appear only under status=INACTIVE. This endpoint returns campaign headers only — `agentGroupIds`, `listingIds` and `listingCount` are omitted here; fetch one campaign to see its resolved scope.
📄️ Create a cashback campaign
The listing filter is resolved to a fixed listing list once, here — the booking path never re-runs it. Check `listingCount` on the response: the listing search caps at 200 results, so a broad filter is silently truncated and should be narrowed.
📄️ Get one cashback campaign
Includes the full resolved listing list, which the list endpoint omits.
📄️ Update a cashback campaign
Edits apply to future bookings only — cashback already recorded against a booking keeps the rate it was written with. The listing filter is re-resolved, so the covered listing list can legitimately change.
📄️ Delete a cashback campaign
A soft delete: the campaign stops applying immediately but its row survives, so cashback already earned under it can still be reported against a real campaign.