Skip to content
ActivityRegistrationObject

Fields

idID!
activitySessionActivitySession

The session this registration is for, or null for an activity-level registration that covers the whole activity rather than one session — e.g. a team's season "league registration" (see kind: leagueSeason). Per-session registrations (class drop-ins, the comp spots fanned out to a team's members for each match) always have a session.

activityActivity

The activity this registration belongs to. Use it to render an activity-level (session-less) registration, where activitySession is null.

participantParticipant!
bookableSpotBookableSpot
bookedByUser

The user who initiated this registration (the booker / payer). Null for admin-added rows. When this differs from the participant's user the registration is on behalf of a guest — see isGuestRegistration.

bookedByParticipantParticipant

Business participant profile for the user who initiated this registration, when that user also has a participant record at the business. Useful for linking from a guest registration back to the booking participant.

isGuestRegistrationBoolean!

True when the registration was created on behalf of someone other than the booker (i.e. bookedBy is set and is not the participant's user).

How this registration was paid for. Null when the registration is free or has no associated payment. For split-funded registrations (e.g. a gift card covering part of the price with Stripe covering the remainder) this returns the dominant source; use paymentSplits for the full breakdown.

What kind of registration this is:

  • leagueSeason: an activity-level registration (no session) — the paid

"league registration" a team's registrant holds for the whole season.

  • comp: a complimentary per-session registration with no payment of its

own — e.g. a team member's spot in each of their team's match-sessions, covered by the season registration.

  • session: an ordinary per-session registration (a class drop-in, etc.).
requiredPaymentBoolean!

True when this registration is the one that carried payment — the league season registration, or any session registration with its own charge. False for complimentary fan-out rows. Drives the "paid only" filter.

teamTeam

The team this registration is for, when it's a team-based league registration (the registrant's team for a season registration, or the member's team for a per-match session). Null for individual registrations.

paymentSplits[PaymentSplit!]!

Funding sources for this registration. Empty for free registrations and pass/membership-paid ones. A direct card payment has a single stripe split; a discount-code-or-gift-card-funded registration has one or more splits whose amountCents sum to the price paid.

discountRedemptions[DiscountCodeRedemption!]!

Discount-code redemptions applied directly to this registration. Each redemption carries the code and cents discounted so registration receipts can show it beside card / gift-card funding lines. Excludes redemptions whose cancelledAt is set.

waitlistPositionInt

Position in the waitlist, computed dynamically. Only set when status is waitlisted.

offeredAtDateTime

Timestamp when the participant was offered a spot from the waitlist.

How the registrant intends to pay if their waitlist spot is promoted. Set on waitlisted and offered rows; null on direct confirmations (which were already paid for).

reservedCardReservedCard

Reserved card on file for this waitlist registration, if any. Set when intendedPaymentMethod = card and the customer captured a card via SetupIntent at join time. The accept-offer UI uses this to show "Pay with Visa ending ••••1234".

waitlistPromotionPlanWaitlistPromotionPlan

Preview of what promoteFromWaitlist will do for this row given its current state. Set on waitlisted rows so the business confirmation sheet can describe the upcoming side effect; null on offered, confirmed, and cancelled rows.

checkedInAtDateTime
confirmedAtDateTime

Timestamp when this registration's status was set to confirmed — either at register time for a direct registration, or at promote time when a waitlist row flipped from waitlisted / offered to confirmed. Null on waitlisted / offered rows that haven't been promoted yet, on cancelled rows that were never confirmed, and on historical rows pre-dating this column (consumers fall back to createdAt in that case).

Cancellation metadata. Non-null when status = cancelled — describes who cancelled, the audit trail, and the refund outcome. Null on active / waitlisted / offered rows.

What cancelActivityRegistration would do for this registration if called right now — the resolved policy applied to the funding splits. Powers the participant-side confirmation sheet so the customer sees the exact terms ("Your card will be refunded $X" / "This is past the refund cutoff — no refund will be issued") before they commit. Null when the registration is already cancelled or has no eligible monetary funds (free / pass / membership).

joinedViaWaitlistBoolean!

True when this registration began life on the waitlist — whether it's still waitlisted/offered, was promoted to confirmed, or has since been cancelled. Derived from the persisted waitlist signals (offeredAt, the join-email stamp, the intended payment method, and a promote-time confirmedAt) so the registration-details timeline can keep showing "Joined the waitlist" as the opening event instead of recomputing it from the current status — which loses the history once the row leaves the waitlisted/offered states.

createdAtDateTime!
participantRegistrationOrdinalInt!

1-indexed position of this registration within the participant's lifetime confirmed registrations at the business, ordered by session start time (with createdAt as a tiebreaker). The chronologically first registration the participant ever has is 1.

blockMetadata[BlockMetadataEntry!]!

Structured values captured from registration blocks the business tagged with a metadata key (contract, attestation, signature, …).

receiptDocumentReceiptDocument

Immutable PDF receipt for this registration. Null until generated (eagerly at confirmation, or on first download). Set for every funding type, including free / comp registrations.

agreementDocumentPurchaseAgreementDocument

Immutable combined PDF agreement for this registration — the accepted contract text, captured answers, and an embedded signature when one was collected. Null when the activity had no contract block.

Canonical URLs for this registration. business points at the business admin's participant-scoped registration detail page; go points at the participant's own customer-facing schedule entry.

Used in

ActivityRegistration