Route Reference
Registration and Attendees
Attendee registration, profiles, fursonas, reservations, waitlist, group registration, and affiliate rewards. Includes generated endpoint contracts from partners-api source.
First created Last updated
End-to-end developer runbook
- Step 1 - Confirm the API area: Identify the product area, route module, endpoint path, and consumer before writing or calling code.
- Step 2 - Read the endpoint contract: Check method, auth, parameters, response, errors, side effects, and related docs.
- Step 3 - Prepare authentication and input: Use the right session, bearer token, webhook secret, or internal header. Validate body and query data before sending it.
- Step 4 - Make the request: Call the endpoint from the correct origin and environment. Keep credentials and secrets out of logs.
- Step 5 - Verify response, side effects, and records: Confirm status code, response shape, database records, external side effects, and audit evidence.
- Step 6 - Add tests, docs, and handoff notes: Update route inventory, consumer notes, and certification checks before depending on the change.
Family summary
Attendee registration, profiles, fursonas, reservations, waitlist, group registration, and affiliate rewards.
Modules audited
rego.ts: 25 generated endpoint entries.regoProfile.ts: 0 generated endpoint entries.regoAffiliateRewards.ts: 2 generated endpoint entries.regoReservations.ts: 3 generated endpoint entries.waitlist.ts: 10 generated endpoint entries.groupRego.ts: 14 generated endpoint entries.fursonas.ts: 7 generated endpoint entries.
Endpoint table
Member-redemption additions use the signed-in attendee session and return
Cache-Control: no-store. GET /api/rego/groups/:id/redemption reads only the
caller’s membership and fixed purchased form snapshot. Its status is
awaiting_payment, ready, redeemed or cancelled.
POST /api/rego/groups/:id/redeem accepts the member’s display/fursona/fursuiting
details, sizeSelections, formAnswers, customAnswers and communityJoin.
It rejects tier, add-on, identity and payment overrides. Confirmed shared
payment, a complete owned profile and required question answers are checked
before the existing reserved registration is updated. Repeated completion
returns the same registration and does not allocate more stock or charge again.
Group settings expose independent boolean requireSameTier and
requireSameAddOns policies, defaulting to false for existing events. The
Worker and service-only atomic commands enforce them. Deploy the matching
group-redemption migration before these endpoints and clients.
| Method | Path | Module | Auth scan | Source |
|---|---|---|---|---|
GET | /api/events/:id/group-rego-settings | groupRego.ts | Partner dashboard session required. | partners-api/src/routes/groupRego.ts:819 |
PUT | /api/events/:id/group-rego-settings | groupRego.ts | Partner dashboard session required. | partners-api/src/routes/groupRego.ts:843 |
GET | /api/events/:id/rego-gifts | rego.ts | Partner dashboard session required. | partners-api/src/routes/rego.ts:2144 |
POST | /api/events/:id/rego-gifts/:giftId/payment-review | rego.ts | Partner dashboard session required. | partners-api/src/routes/rego.ts:2166 |
POST | /api/events/:id/reserve-slot | regoReservations.ts | Rego attendee session required. | partners-api/src/routes/regoReservations.ts:12 |
GET | /api/events/:id/waitlist-config | waitlist.ts | Partner dashboard session required. | partners-api/src/routes/waitlist.ts:263 |
PUT | /api/events/:id/waitlist-config/:subjectType/:subjectId | waitlist.ts | Partner dashboard session required. | partners-api/src/routes/waitlist.ts:298 |
POST | /api/events/:id/waitlist/process-next/:tierId | waitlist.ts | Partner dashboard session required. | partners-api/src/routes/waitlist.ts:388 |
POST | /api/internal/waitlist/expire-offers | waitlist.ts | Internal cron secret required. | partners-api/src/routes/waitlist.ts:542 |
GET | /api/manage/:id/group-rego-settings | groupRego.ts | Partner dashboard session required. | partners-api/src/routes/groupRego.ts:819 |
PUT | /api/manage/:id/group-rego-settings | groupRego.ts | Partner dashboard session required. | partners-api/src/routes/groupRego.ts:843 |
GET | /api/manage/:id/rego-gifts | rego.ts | Partner dashboard session required. | partners-api/src/routes/rego.ts:2144 |
POST | /api/manage/:id/rego-gifts/:giftId/payment-review | rego.ts | Partner dashboard session required. | partners-api/src/routes/rego.ts:2166 |
POST | /api/manage/:id/reserve-slot | regoReservations.ts | Rego attendee session required. | partners-api/src/routes/regoReservations.ts:12 |
GET | /api/manage/:id/waitlist-config | waitlist.ts | Partner dashboard session required. | partners-api/src/routes/waitlist.ts:263 |
PUT | /api/manage/:id/waitlist-config/:subjectType/:subjectId | waitlist.ts | Partner dashboard session required. | partners-api/src/routes/waitlist.ts:298 |
POST | /api/manage/:id/waitlist/process-next/:tierId | waitlist.ts | Partner dashboard session required. | partners-api/src/routes/waitlist.ts:388 |
POST | /api/rego-reservations/:id/release | regoReservations.ts | Rego attendee session required. | partners-api/src/routes/regoReservations.ts:36 |
GET | /api/rego/affiliate-rewards | regoAffiliateRewards.ts | Rego attendee session required. | partners-api/src/routes/regoAffiliateRewards.ts:18 |
PUT | /api/rego/affiliate-rewards/:affiliateId/payout | regoAffiliateRewards.ts | Rego attendee session required. | partners-api/src/routes/regoAffiliateRewards.ts:30 |
GET | /api/rego/events | rego.ts | Unknown from source scan; inspect middleware and handler body before use. | partners-api/src/routes/rego.ts:1187 |
GET | /api/rego/events/:slug | rego.ts | Unknown from source scan; inspect middleware and handler body before use. | partners-api/src/routes/rego.ts:1279 |
GET | /api/rego/events/:slug/gift/recipient | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:1663 |
GET | /api/rego/fursonas | fursonas.ts | Rego attendee session required. | partners-api/src/routes/fursonas.ts:69 |
POST | /api/rego/fursonas | fursonas.ts | Rego attendee session required. | partners-api/src/routes/fursonas.ts:90 |
DELETE | /api/rego/fursonas/:id | fursonas.ts | Rego attendee session required. | partners-api/src/routes/fursonas.ts:195 |
PUT | /api/rego/fursonas/:id | fursonas.ts | Rego attendee session required. | partners-api/src/routes/fursonas.ts:136 |
DELETE | /api/rego/fursonas/:id/refs | fursonas.ts | Rego attendee session required. | partners-api/src/routes/fursonas.ts:282 |
POST | /api/rego/fursonas/:id/refs | fursonas.ts | Rego attendee session required. | partners-api/src/routes/fursonas.ts:232 |
PUT | /api/rego/fursonas/:id/refs/latest | fursonas.ts | Rego attendee session required. | partners-api/src/routes/fursonas.ts:332 |
POST | /api/rego/gifts | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:1783 |
GET | /api/rego/gifts/:id | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:2113 |
POST | /api/rego/gifts/:id/redeem | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:2136 |
GET | /api/rego/gifts/me | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:2089 |
POST | /api/rego/gifts/quote | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:1712 |
POST | /api/rego/groups | groupRego.ts | Rego attendee session required. | partners-api/src/routes/groupRego.ts:245 |
GET | /api/rego/groups/:id | groupRego.ts | Rego attendee session required. | partners-api/src/routes/groupRego.ts:397 |
PATCH | /api/rego/groups/:id/accept | groupRego.ts | Rego attendee session required. | partners-api/src/routes/groupRego.ts:552 |
PATCH | /api/rego/groups/:id/cancel | groupRego.ts | Rego attendee session required. | partners-api/src/routes/groupRego.ts:566 |
PATCH | /api/rego/groups/:id/decline | groupRego.ts | Rego attendee session required. | partners-api/src/routes/groupRego.ts:559 |
POST | /api/rego/groups/:id/invite | groupRego.ts | Rego attendee session required. | partners-api/src/routes/groupRego.ts:440 |
DELETE | /api/rego/groups/:id/members/:memberId | groupRego.ts | Rego attendee session required. | partners-api/src/routes/groupRego.ts:648 |
PATCH | /api/rego/groups/:id/members/:memberId | groupRego.ts | Rego attendee session required. | partners-api/src/routes/groupRego.ts:598 |
POST | /api/rego/groups/:id/submit | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:3328 |
GET | /api/rego/groups/:id/totals | groupRego.ts | Rego attendee session required. | partners-api/src/routes/groupRego.ts:685 |
GET | /api/rego/groups/my | groupRego.ts | Rego attendee session required. | partners-api/src/routes/groupRego.ts:339 |
POST | /api/rego/internal/archive-expired | rego.ts | Internal cron secret required. | partners-api/src/routes/rego.ts:4250 |
POST | /api/rego/payment-link-reference | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:1482 |
PUT | /api/rego/prefills | rego.ts | Rego auth optional for new attendee flow. | partners-api/src/routes/rego.ts:2270 |
DELETE | /api/rego/prefills/:eventId | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:2476 |
GET | /api/rego/prefills/:eventId | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:2234 |
POST | /api/rego/quote | rego.ts | Rego auth optional for new attendee flow. | partners-api/src/routes/rego.ts:1557 |
POST | /api/rego/regos | rego.ts | Rego auth optional for new attendee flow. | partners-api/src/routes/rego.ts:2832 |
GET | /api/rego/regos/:ref | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:2570 |
GET | /api/rego/regos/:ref/wallet | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:2762 |
GET | /api/rego/regos/me | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:2502 |
POST | /api/rego/waitlist | rego.ts | Rego auth optional for new attendee flow. | partners-api/src/routes/rego.ts:4160 |
POST | /api/rego/waitlist/:entryId/accept | waitlist.ts | Rego attendee session required. | partners-api/src/routes/waitlist.ts:516 |
POST | /api/rego/waitlist/:entryId/decline | waitlist.ts | Rego attendee session required. | partners-api/src/routes/waitlist.ts:431 |
GET | /api/rego/waitlist/me | rego.ts | Rego attendee session required. | partners-api/src/routes/rego.ts:4118 |
GET | /api/rego/waitlist/pending-offer | waitlist.ts | Rego attendee session required. | partners-api/src/routes/waitlist.ts:413 |
Recorded paid values for registration changes
Registration detail totals include API-computed paidItemValues. Refund state
includes refundableItemValues with tierAmount, addOnBreakdown and subtotal.
These are saved net product values after purchase discounts, excluding captured
payment surcharges. Consumers must preserve zero and must not replace missing
values with current catalog prices. Reload a refund form when its authoritative
basis is unavailable.
Refund approval affects only the selected registration, including a single member of a shared group order. Approval caps historic requests to that member’s remaining paid items and requires confirmed payment for a positive payout. Partial removals and retained-tier rebates reduce the remaining paid-value ledger, so later refunds cannot pay the same value twice. Deleted catalog items retain their receipt values.
Transfers retain the original paid receipt. Upgrades price newly purchased value
and preserve original discounts, tax and payment metadata. Accepted upgrade
quotes freeze the monetary delta and registration basis. A changed registration
or an older quote without a frozen basis returns 409 and requires organizer
re-review. Allocation failure leaves an unapplied accepted request that can be
retried through the payment action.
These contracts have focused local verification and are included in the Git-linked production release. Live API availability and client assets are verified; authenticated provider settlement remains a separate verification step.
Endpoint contract notes
- Action 1 - Verify unknowns: The table is source-generated, but fields marked unknown need manual handler review.
- Action 2 - Check source line: Use the source line as the starting point for exact request, response, and side-effect behavior.
- Action 3 - Review consumers: Search dashboard, rego, EMS LAN, and webhook callers before changing a path or response.
- Action 4 - Update inventory: Regenerate after any route change.