{"lexicon":1,"id":"tickets.atmosphere.createTicketTier","defs":{"main":{"type":"procedure","description":"Create an organizer-owned ATM Tickets tier and optional public ticket-tier refs for an event.","input":{"encoding":"application/json","schema":{"type":"object","required":["organizerDid","event","title","currency","unitAmount","quantityTotal"],"properties":{"environment":{"type":"string","knownValues":["test","live"],"maxLength":16},"organizerDid":{"type":"string","format":"did"},"organizerAssertionJwt":{"type":"string","description":"Optional short-lived user service-auth JWT from organizerDid to ATM, scoped to tickets.atmosphere.createTicketTier. Proves the app is configuring ticketing with organizer consent.","maxLength":8192},"event":{"type":"ref","ref":"tickets.atmosphere.defs#eventInput"},"title":{"type":"string","minLength":1,"maxGraphemes":100,"maxLength":1000},"description":{"type":"string","maxGraphemes":1000,"maxLength":10000},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"Lowercase ISO 4217 currency code, matching money.atmosphere.price."},"unitAmount":{"type":"integer","minimum":0,"maximum":2000000,"description":"Amount in the smallest unit of currency. 0 creates a free tier (claimed via tickets.atmosphere.claimFreeTicket); paid tiers must meet the processor minimum charge or the call fails with InvalidAmount."},"maxPerOrder":{"type":"integer","minimum":1,"maximum":50},"saleStartsAt":{"type":"string","format":"datetime"},"saleEndsAt":{"type":"string","format":"datetime"},"tierRef":{"type":"ref","ref":"com.atproto.repo.strongRef"},"productRef":{"type":"ref","ref":"com.atproto.repo.strongRef"},"priceRef":{"type":"ref","ref":"com.atproto.repo.strongRef"},"metadata":{"type":"unknown"},"quantityTotal":{"type":"integer","minimum":1,"maximum":250000}}}},"output":{"encoding":"application/json","schema":{"type":"object","required":["event","capacityGroup","tier"],"properties":{"event":{"type":"ref","ref":"tickets.atmosphere.defs#eventSummary"},"capacityGroup":{"type":"ref","ref":"tickets.atmosphere.defs#capacityGroupSummary"},"tier":{"type":"ref","ref":"tickets.atmosphere.defs#ticketTierSummary"}}}},"errors":[{"name":"AppNotRegistered","description":"Caller DID is not registered as an ATM app."},{"name":"TicketsModuleDisabled","description":"This app has not enabled ATM Tickets."},{"name":"OrganizerNotRegistered","description":"Organizer has not signed in to ATM yet."},{"name":"PaymentSetupIncomplete","description":"Organizer has not finished ATM payment setup."},{"name":"OrganizerConsentRequired","description":"A verified organizer authorization (organizerAssertionJwt) is required to configure ticketing for this organizer."},{"name":"OrganizerReassignmentNotAllowed","description":"This event already belongs to a different organizer; a fresh organizer authorization is required to reassign it."},{"name":"InvalidAmount","description":"Ticket price is invalid: negative, above the maximum, or a paid amount below the processor minimum charge (use 0 for free tiers)."},{"name":"InvalidCapacity","description":"Ticket quantity must be at least 1."},{"name":"UserDidMismatch","description":"organizerAssertionJwt issuer does not match organizerDid."}]}}}