registerForActivity(activitySession: EntityRef!, productPurchase: EntityRef, bookableSpot: EntityRef, formData: [RegistrationDataInput!], guest: GuestRegistrationInput, familyMember: EntityRef, buyer: BuyerInput, discountCode: String, giftCardCode: String, paymentMethod: String, savePaymentMethod: Boolean, taxCalculationId: String, emailMarketingConsent: Boolean, emailMarketingConsentDisclosureVersion: ID): RegisterForActivityResult!Register for an individual activity session. Use productPurchase to pay with an existing pass/membership, or omit it for direct purchase. Pass guest to register on behalf of someone else; the caller is recorded as the booker and pays. The activity's participant policy must allow guest registrations.
Pass buyer when the caller is not signed in to perform guest checkout. Requires the business's guestCheckoutEnabled setting.
Arguments
activitySessionEntityRef!productPurchaseEntityRefbookableSpotEntityRefformData[RegistrationDataInput!]familyMemberEntityRefRegister one of the signed-in viewer's managed children (a FamilyMember with role child). The viewer must be a manager or guardian sharing a family with the member; the booking is recorded with the viewer as the booker and the child as the participant. Mutually exclusive with guest.
buyerBuyerInputdiscountCodeStringOptional discount code typed by the customer. Validated server-side against the activity's business; an invalid or unmet code returns a per-field error rather than registering at full price.
giftCardCodeStringOptional gift-card code to apply against the registration price. The card's remaining balance covers up to the post-discount line; any remainder is charged via Stripe.
paymentMethodStringStripe PaymentMethod ID captured via SetupIntent for paid card waitlists. Required when the registration falls onto the waitlist for a card-paid activity (no productPurchase); used to charge the customer off-session if their spot is later promoted.
savePaymentMethodBooleanWhen true for a signed-in card checkout, attach the newly-entered card to the buyer's Stripe Customer for future purchases. Ignored for guest checkout and saved-card waitlist reservations.
taxCalculationIdStringStripe Tax calculation ID returned by a recent quoteTax query. When provided, the server reuses that calculation. Ignored when the seller has tax disabled.
emailMarketingConsentBooleanEmail-marketing opt-in captured on the registration form. true records an affirmative consent for this participant against the activity's business; only honored when the business has consent collection enabled. Sessions never sends marketing email itself — consent lets the business email the participant through its own provider.
emailMarketingConsentDisclosureVersionIDVersion of the consent disclosure the buyer was shown. Frozen with the consent record so the proof reflects exactly what they agreed to.
Returns
See RegisterForActivityResult for the full shape.
Try it
Example
mutation RegisterForActivity($activitySession: EntityRef!, $productPurchase: EntityRef, $bookableSpot: EntityRef, $formData: [RegistrationDataInput!], $guest: GuestRegistrationInput, $familyMember: EntityRef, $buyer: BuyerInput, $discountCode: String, $giftCardCode: String, $paymentMethod: String, $savePaymentMethod: Boolean, $taxCalculationId: String, $emailMarketingConsent: Boolean, $emailMarketingConsentDisclosureVersion: ID) {
registerForActivity(activitySession: $activitySession, productPurchase: $productPurchase, bookableSpot: $bookableSpot, formData: $formData, guest: $guest, familyMember: $familyMember, buyer: $buyer, discountCode: $discountCode, giftCardCode: $giftCardCode, paymentMethod: $paymentMethod, savePaymentMethod: $savePaymentMethod, taxCalculationId: $taxCalculationId, emailMarketingConsent: $emailMarketingConsent, emailMarketingConsentDisclosureVersion: $emailMarketingConsentDisclosureVersion) {
__typename
}
}
https://go.sessions.website/api/graphql