API Reference
EventaaS API
All endpoints are served through a single API gateway at localhost:8080. Authenticate with Authorization: Bearer <token> and pass X-Tenant-Id on all tenant-scoped requests.
Field name quirks to know
Ticket quantity:quantityAvailable (not quantity)
Ticket sale dates:saleStart / saleEnd (not saleStartDate)
Session capacity:maxCapacity (not capacity)
Poll options:JSON string, JSON.stringify([...options])
Poll status:isActive: boolean (not status: string)
Q&A:session-scoped: send sessionId + questionText
Team member:role: TEAM_MEMBER, position → skills, bio → availability
Event creator:organizerId (not creatorId)
Auth Service
POST/login
User authentication & JWT sign-inPOST/register
Provision isolated tenant workspacePATCH/tenants/{id}/upgrade-to-organization
Upgrade plan scalePOST/tenants/{id}/logo
Upload tenant logo (multipart)POST/tenants/{id}/banner
Upload tenant banner (multipart)Event Service
GET/events/mine
List events for authenticated tenant (JWT-scoped)GET/events
Public event discoveryPOST/events
Create event (requires tenantId + organizerId)PUT/events/{id}
Update event detailsPOST/events/{id}/cover-image
Upload cover banner binaryPOST/sessions
Create event session (maxCapacity, not capacity)POST/polls
Add live poll (options as JSON string, isActive boolean)POST/qaquestions
Post Q&A, session-scoped (questionText + sessionId)POST/networkings
Add team member / volunteer (skills, availability)POST/sponsors
Apply as sponsor (status: PENDING)POST/emailcampaigns
Broadcast email campaignGET/eventcategorys
List categoriesPOST/eventlocations
Set event location + coordinatesTicketing Service
POST/tickettypes
Add pricing tier (quantityAvailable, saleStart, saleEnd)GET/tickettypes?eventId={id}
List ticket types for an eventPOST/orders
Create purchase orderGET/orders/me
Fetch authenticated user's ordersPOST/coupons
Add discount promo codeGET/registrations/me
User's event registrationsPayment Service
POST/payments
Record payment (method: MOBILE_MONEY | CARD | ORANGE_MONEY)GET/payments/mine
List payments for authenticated tenantGET/withdrawals/balance
Available payout balance (JWT-scoped)GET/withdrawals
Withdrawal historyPOST/withdrawals
Request tenant payout withdrawalPlatform Admin
GET/revenue
Platform commission revenue summary (SUPER_ADMIN only)GET/withdrawals
Platform withdrawal ledgerPOST/withdrawals
Record platform withdrawalNotification Service
GET/notifications
Retrieve unread alert cardsPOST/emailcampaigns
Broadcast campaign to registrantsRequired headers
Authorization: Bearer <jwt-token>
X-Tenant-Id: <tenant-uuid>
X-User-Id: <user-uuid>
Content-Type: application/json
The JWT is issued at
/api/v1/auth/login. SUPER_ADMIN scope unlocks /platform/* endpoints.