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

/api/v1/auth
POST/login
User authentication & JWT sign-in
POST/register
Provision isolated tenant workspace
PATCH/tenants/{id}/upgrade-to-organization
Upgrade plan scale
POST/tenants/{id}/logo
Upload tenant logo (multipart)
POST/tenants/{id}/banner
Upload tenant banner (multipart)

Event Service

/api/v1
GET/events/mine
List events for authenticated tenant (JWT-scoped)
GET/events
Public event discovery
POST/events
Create event (requires tenantId + organizerId)
PUT/events/{id}
Update event details
POST/events/{id}/cover-image
Upload cover banner binary
POST/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 campaign
GET/eventcategorys
List categories
POST/eventlocations
Set event location + coordinates

Ticketing Service

/api/v1
POST/tickettypes
Add pricing tier (quantityAvailable, saleStart, saleEnd)
GET/tickettypes?eventId={id}
List ticket types for an event
POST/orders
Create purchase order
GET/orders/me
Fetch authenticated user's orders
POST/coupons
Add discount promo code
GET/registrations/me
User's event registrations

Payment Service

/api/v1/payments
POST/payments
Record payment (method: MOBILE_MONEY | CARD | ORANGE_MONEY)
GET/payments/mine
List payments for authenticated tenant
GET/withdrawals/balance
Available payout balance (JWT-scoped)
GET/withdrawals
Withdrawal history
POST/withdrawals
Request tenant payout withdrawal

Platform Admin

/api/v1/platform
GET/revenue
Platform commission revenue summary (SUPER_ADMIN only)
GET/withdrawals
Platform withdrawal ledger
POST/withdrawals
Record platform withdrawal

Notification Service

/api/v1
GET/notifications
Retrieve unread alert cards
POST/emailcampaigns
Broadcast campaign to registrants
Required 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.