Reports

Tenant-scoped analytics and MATRADE Annex 2 reporting.

All report queries resolve the selected live organiser membership before reading attendees, points, or ledger entries.

OperationPurpose
GET /api/reports/analyticsSignup buckets, attendance, registration-backed ticket revenue and refunds, points, categories, and events for the selected day window.
GET /api/reports/matradeEvent-scoped MATRADE Annex 2 visitor, exhibitor, space, sales, and qualification data.
PATCH /api/reports/matrade/exhibitorSave one event exhibitor's country and net-space details.
PATCH /api/reports/matrade/salesSave reported sales and notes; unknown sales remains null, distinct from verified zero.

All routes require an organiser session. Missing session returns 401, a caller outside the tenant returns 403, and mutations require an exact configured Origin. Money fields are integer cents; nullable sales are not coerced to zero.