API Reference
Admin & Specialized APIs: Payments, Teams, QR, BTX, and more
Specialized service endpoints for payments, team management, QR codes, stock exchange simulation, and admin tools.
Payments
Stripe Checkout integration.
| Method | Path | Auth | Description |
|---|---|---|---|
POST | /payments | π | Create Stripe checkout session |
POST | /payments/webhook | π | Stripe webhook (session completed) |
POST | /payments/expiry | π | Stripe webhook (session expired) |
Payment Types
| Type | Triggered When | What It Creates |
|---|---|---|
UserMember | New user pays for membership | Cognito user β User β Member β Profile |
OAuthMember | Google OAuth user pays | User β Member β Profile |
Member | Existing user upgrades | Updates isMember β Member β Profile |
Event | User pays for paid event | Creates registration |
Membership price: $15 CAD (1500 cents in Stripe).
Teams
Team management, point systems, and judging.
| Method | Path | Auth | Description |
|---|---|---|---|
POST | /teams/create | π | Create a team |
POST | /teams/join | π | Join a team |
POST | /teams/leave | π | Leave a team |
PUT | /teams/points | π | Add/deduct points |
POST | /teams/user | π | Find user's team for an event |
GET | /teams/{eventId}/{year} | π | Get all teams for event |
POST | /teams/rename | π | Rename a team |
GET | /teams/scores/{eventId}/{year} | π | Get all scores |
GET | /teams/feedback/{teamId} | π | Get feedback for a team |
GET | /teams/judge/{eventId}/{year} | π | Get judge's current team |
GET/POST/PUT | /teams/judge/feedback | π | Judge feedback CRUD |
QR Codes
QR code generation and scanning with point rewards.
| Method | Path | Auth | Description |
|---|---|---|---|
POST | /qrscan | π | Scan a QR code (awards points) |
GET | /qr/{eventId}/{year} | π | Get all QR codes for event |
GET | /qr/{eventId}/{year}/{qrId} | π | Get specific QR code |
POST | /qr | π | Create a QR code |
PATCH | /qr/{eventId}/{year}/{qrId} | π | Update a QR code |
DELETE | /qr/{eventId}/{year}/{qrId} | π | Delete a QR code |
QR types include standard codes and NFC variants (NFC_ATTENDEE, NFC_COMPANY). Each QR can be configured with point values, active/inactive state, and unlimited scan support.
BTX (BizTech Exchange)
Real-time stock market simulation.
| Method | Path | Auth | Description |
|---|---|---|---|
GET | /btx/projects/{eventId}/{year} | π | List all projects |
GET | /btx/market/snapshot | π | Current market prices |
POST | /btx/market/buy | π | Buy shares |
POST | /btx/market/sell | π | Sell shares |
GET | /btx/portfolio/{eventId}/{year} | π | User's portfolio |
GET | /btx/trades/{eventId}/{year} | π | User's trade history |
GET | /btx/prices/{projectId} | π | Price history for a project |
GET | /btx/leaderboard/{eventId}/{year} | π | Portfolio value leaderboard |
POST | /btx/admin/create-project | π | Create a project |
POST | /btx/admin/seed-funding | π | Update seed funding |
POST | /btx/admin/investment-impact | π | Apply investment impact |
POST | /btx/admin/phase-bump | π | Apply phase price bump |
Market Constants
| Constant | Value | Description |
|---|---|---|
| Starting cash | $2,500 | Virtual starting balance |
| Starting price | $1.00 | Initial share price |
| Floor price | $0.10 | Minimum price |
| Trade impact | 0.02 | Price movement per trade |
| Trading fee | 2% | Fee on each trade |
| Max drift | 1.5% | Max random price drift |
Investments
Kickstart event funding system.
| Method | Path | Auth | Description |
|---|---|---|---|
POST | /investments | π | Make investment |
GET | /investments/team/{teamId} | π | Get team's funding status |
GET | /investments/investor/{email} | π | Get investor's portfolio |
GET | /investments/{eventId}/{year} | π | List all investments |
Emails
Admin-only email template management via AWS SES.
| Method | Path | Auth | Description |
|---|---|---|---|
GET | /email/{templateName} | π | Get template |
POST | /email | π | Create template |
PATCH | /email/{templateName} | π | Update template |
DELETE | /email/{templateName} | π | Delete template |
GET | /email | π | List all templates |
Bots
Discord and Slack integrations.
| Method | Path | Auth | Description |
|---|---|---|---|
POST | /discord/interaction | π | Discord slash command webhook |
POST | /discord/account/mapping | π | Link Discord β BizTech account |
POST | /discord/webhook | π | Discord event webhook |
POST | /slack/github | π | GitHub PR reminders (cron: Mon/Fri 5pm) |
POST | /slack/event | π | Slack event shortcut |
Prizes & Transactions
| Method | Path | Auth | Description |
|---|---|---|---|
GET | /prizes | π | List all prizes |
POST | /prizes | π | Create prize |
PATCH | /prizes/{prizeId} | π | Update prize |
DELETE | /prizes/{prizeId} | π | Delete prize |
GET | /transactions | π | List transactions |
POST | /transactions | π | Create transaction |
Stickers (WebSocket)
Real-time voting system via WebSocket.
WebSocket Routes
| Route | Description |
|---|---|
$connect | Register connection |
$disconnect | Remove connection |
admin | Start/stop/reset voting |
sticker | Submit a sticker/vote |
score | Submit a score |
sync | Sync current state |
REST Endpoints
| Method | Path | Auth | Description |
|---|---|---|---|
GET | /stickers/scores | π | All scores |
GET | /stickers/scores/{roomId} | π | Scores by room |
GET | /stickers/scores/team/{teamId} | π | Scores by team |
GET | /stickers | π | All stickers |
GET | /stickers/{roomId} | π | Stickers by room |
GET | /stickers/team/{teamId} | π | Stickers by team |