Ulsav Docs
Registrations

Registrations

How one entry per Pass is created, confirmed, locked, changed, and cancelled

A Registration is one entry into one Pass of one Event. A buyer starts one as a draft; an organizer can also issue one already confirmed. Either way, an Order confirms it, and this page covers the entry itself: how many you get, what each status means, and what you can change afterwards.

  • Kinds

    Individual or team

    Team is a kind of Registration, not a separate record

  • Statuses

    Draft, pending, confirmed, cancelled

    A fifth status, expired, is defined but never set today

  • Created by

    Checkout, organizer, or import

  • Confirmed by

    A paid or free Order

    It reserves capacity at that moment

  • Attendance mode

    In person or online

    Chosen once, never edited

  • Roster lock

    One of four rules

    Submission, approval, confirmation, or Event start

The records around an entry

QuestionRecord
What was bought, and for how much?Order
What claim on a Pass exists?Registration
Who is coming?Participant

The buyer is not automatically a Participant. Paying creates a Registration and places inside it, not a person entry for the buyer.

One entry per place

  • An individual Registration has exactly one current Participant.
  • A team Registration has several places, and a place can stay unnamed until its details are required.
  • A batch creates at most 10 drafts, all for the same Event.
  • One Order line of quantity N fulfils N Registrations.
  • A team line is always one Registration, whatever the member count.
  • A Pass can allow up to 50 Registrations per Order, but one checkout carries at most 10 entries.
  • A team holds between 1 and 100 places, within the Event's own team bounds.

So quantity is not a number stored on the Registration. It is how many Registrations you created and checked out together.

Lifecycle

organizer issuesbuyer submitscancelledOrder confirmscancelledcancelleddraftconfirmedpendingcancelled
Diagram source
stateDiagram-v2
[*] --> draft
[*] --> confirmed: organizer issues
draft --> pending: buyer submits
draft --> cancelled: cancelled
pending --> confirmed: Order confirms
pending --> cancelled: cancelled
confirmed --> cancelled: cancelled
confirmed --> [*]
cancelled --> [*]
StatusWhat it means
DraftStarted but not submitted. No admission, no shareable link.
PendingSubmitted. Waiting for approval, payment, or capacity.
ConfirmedAn Order confirmed it and capacity was taken.
CancelledTerminal. No future admission for any Participant.
ExpiredIn the schema, but nothing sets it. Treat it as reserved.

Drafts are private by design. A buyer can abandon one without leaving a claim on the Event.

What confirms an entry

A free checkout confirms at once: the Order is created as confirmed, and every attached Registration becomes confirmed in the same transaction.

A paid checkout does not: it creates a payment attempt with a 15-minute window. If the provider confirms inside the window, the Order and its Registrations confirm. If the window closes, the attempt is marked expired and each Registration goes back to pending with no Order item, so the buyer can try again.

Capacity is checked before anything is written, across three ceilings:

  • the Event,
  • the Pass,
  • each Event session the Pass admits.

If any ceiling would be exceeded, checkout fails and no Order exists. A confirmed entry counts toward capacity by Registration or by Participant, depending on the Pass setting.

Approval is not a confirmation

An approved entry still needs an Order. Approval reserves no seat and no price. If the Event sells out while an approved buyer is paying, the checkout fails even though the approval stands.

The roster can lock

A Pass picks one rule. Once that milestone is reached, the roster stops accepting ordinary buyer edits.

RuleLocks when
At registration submissionThe buyer submits the Registration form
At approvalAn organizer approves the Registration
At confirmationThe Order confirms
At Event startThe Event's start time passes

A cancelled or expired Registration is locked as well. An organizer with the right permission can still replace a person after the lock; that is an explicit override, and it is recorded.

Transfer, switch, and bulk moves

These are different operations, and only one of them touches money.

Transfer

  • Keep the same Pass and Event.
  • Move the entry to a different Account.
  • No Order, refund, or ledger entry changes.
  • An individual transfer retires the old Participant and creates a new one.
  • A team transfer moves ownership; the places stay put.

Switch

  • Move to a different Pass, in the same or another Event of the Organization.
  • Cancel the source and create a new Registration.
  • Settle the price difference with a refund, a new charge, or a complimentary Order.
  • Switching into a Pass that needs approval is refused.

Both operations require a reason and both are refused if the entry already has a CheckIn, unless the operator ticks the override. A bulk reassign moves every confirmed Registration of an Event or Pass to one destination Pass, and cannot take online payment because each payer must pay for themselves.

Cancelling is not refunding

Cancelling needs a reason. When you also request a refund, the money moves first and the cancellation commits after, so a buyer is never cancelled without the refund you asked for.

A paid entry can be cancelled with no refund only by someone holding the cancel permission. A buyer cannot give up their own refund by accident.

Cancelling blocks future admission. Refunding alone does not: it returns money and leaves the entry valid. Whole-Event cancellation cancels the affected entries but keeps their rows and totals for reporting.

Forms seal once

Each Event has a versioned form. Every answer stores the version it was submitted against.

The first submission seals the payload. Sending the same answers again returns the saved result. Sending different answers returns a conflict, and there is no ordinary edit after submission; a correction is a separate, explicit action.

On this page