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.

MethodPathAuthDescription
POST/paymentsπŸ”“Create Stripe checkout session
POST/payments/webhook🌐Stripe webhook (session completed)
POST/payments/expiry🌐Stripe webhook (session expired)

Payment Types

TypeTriggered WhenWhat It Creates
UserMemberNew user pays for membershipCognito user β†’ User β†’ Member β†’ Profile
OAuthMemberGoogle OAuth user paysUser β†’ Member β†’ Profile
MemberExisting user upgradesUpdates isMember β†’ Member β†’ Profile
EventUser pays for paid eventCreates registration

Membership price: $15 CAD (1500 cents in Stripe).


Teams

Team management, point systems, and judging.

MethodPathAuthDescription
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

Event Feedback

Built-in post-event feedback forms for attendees and partners.

MethodPathAuthDescription
GET/events/{id}/{year}/feedback/{formType}🌐Get form metadata + question config
POST/events/{id}/{year}/feedback/{formType}🌐Submit feedback response
GET/events/{id}/{year}/feedback/{formType}/submissionsπŸ”“Admin: list stored submissions

formType must be attendee or partner.

Key behavior:

  • submissions are allowed whenever the form is enabled
  • required validation is enforced per question type
  • response keys must match known questionId values

Instagram Analytics

Admin analytics service for Instagram account and post-level performance.

MethodPathAuthDescription
GET/instagram/analyticsπŸ”“Fetch dashboard payload (supports since, until)
GET/instagram/token/statusπŸ”“Get token source/expiry status
POST/instagram/token/refreshπŸ”“Manually refresh long-lived token

Partnerships CRM

Admin CRM service for partner directory, event sponsorship tracking, reporting, and Google Sheets sync.

MethodPathAuthDescription
GET/partnerships/dashboardπŸ”“Overview metrics, pace, pipeline, and action items
GET/partnerships/partnersπŸ”“List partners with filters + directory summary
POST/partnerships/partnersπŸ”“Create partner
GET/partnerships/partners/{partnerId}πŸ”“Partner detail with involvements/docs/comms
PATCH/partnerships/partners/{partnerId}πŸ”“Update or archive partner
GET/partnerships/eventsπŸ”“List CRM events with computed metrics
POST/partnerships/eventsπŸ”“Create CRM event
GET/partnerships/events/{eventId}πŸ”“Event detail + linked partners
PATCH/partnerships/events/{eventId}πŸ”“Update or archive CRM event
DELETE/partnerships/events/{eventId}πŸ”“Delete event (only if no links)
POST/partnerships/partners/{partnerId}/eventsπŸ”“Create partner-event involvement
PATCH/partnerships/partner-events/{linkId}πŸ”“Update partner-event involvement
DELETE/partnerships/partner-events/{linkId}πŸ”“Delete partner-event involvement
GET/partnerships/partners/{partnerId}/documentsπŸ”“List linked documents
POST/partnerships/partners/{partnerId}/documentsπŸ”“Create linked document record
PATCH/partnerships/partner-documents/{documentId}πŸ”“Update linked document record
DELETE/partnerships/partner-documents/{documentId}πŸ”“Delete linked document record
GET/partnerships/partners/{partnerId}/communicationsπŸ”“List communication logs
POST/partnerships/partners/{partnerId}/communicationsπŸ”“Create communication log
PATCH/partnerships/partner-communications/{communicationId}πŸ”“Update communication log
DELETE/partnerships/partner-communications/{communicationId}πŸ”“Delete communication log
GET/partnerships/email/configπŸ”“Sender + merge-field config for Email Ops
GET/partnerships/email/templatesπŸ”“List email templates
POST/partnerships/email/templatesπŸ”“Create email template
PATCH/partnerships/email/templates/{templateId}πŸ”“Update email template
DELETE/partnerships/email/templates/{templateId}πŸ”“Archive email template
POST/partnerships/email/sendπŸ”“Send campaign emails (logs outbound comms)
GET/partnerships/email/sync/statusπŸ”“Email sync health + last ingest stats
POST/partnerships/email/sync/ingest🌐Service ingest route used by Apps Script
GET/partnerships/exportπŸ”“Export flattened rows for CSV/Sheets
GET/partnerships/google-sheets/statusπŸ”“Check Sheets configuration + health
POST/partnerships/google-sheets/syncπŸ”“Run manual push / pull / merge sync

QR Codes

QR code generation and scanning with point rewards.

MethodPathAuthDescription
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.

MethodPathAuthDescription
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

ConstantValueDescription
Starting cash$2,500Virtual starting balance
Starting price$1.00Initial share price
Floor price$0.10Minimum price
Trade impact0.02Price movement per trade
Trading fee2%Fee on each trade
Max drift1.5%Max random price drift

Investments

Kickstart event funding system.

MethodPathAuthDescription
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.

MethodPathAuthDescription
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.

MethodPathAuthDescription
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

MethodPathAuthDescription
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

RouteDescription
$connectRegister connection
$disconnectRemove connection
adminStart/stop/reset voting
stickerSubmit a sticker/vote
scoreSubmit a score
syncSync current state

REST Endpoints

MethodPathAuthDescription
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
Previous
Profile & Social APIs