vivenu tickets API

The tickets API from vivenu — 22 operation(s) for tickets.

OpenAPI Specification

vivenu-tickets-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: vivenu access-lists tickets API
  description: vivenu API Documentation
  version: 1.0.0
  contact:
    name: vivenu GmbH
    url: https://vivenu.com
servers:
- url: https://vivenu.com
  description: Production API
- url: https://vivenu.dev
  description: Staging API
tags:
- name: tickets
paths:
  /api/tickets:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: name
        required: false
        schema:
          type: string
          description: Filter tickets by ticket holder name
          metas: {}
        in: query
        style: form
        explode: true
      - name: barcode
        required: false
        schema:
          type: string
          description: Filter tickets by barcode
          metas: {}
        in: query
        style: form
        explode: true
      - name: start
        required: false
        schema:
          type: string
          format: date-time
          description: An ISO timestamp to filter tickets created on or after this date
          metas: {}
        in: query
        style: form
        explode: true
      - name: end
        required: false
        schema:
          type: string
          format: date-time
          description: An ISO timestamp to filter tickets created on or before this date
          metas: {}
        in: query
        style: form
        explode: true
      - name: status
        required: false
        schema:
          type: string
          description: Filter by a comma(,) separated list of statuses
          example: VALID,RESERVED
          metas: {}
        in: query
        style: form
        explode: true
      - name: type
        required: false
        schema:
          type: string
          enum:
          - SINGLE
          - MULTI
          description: Filter tickets by type
          metas: {}
        in: query
        style: form
        explode: true
      - name: deliveryType
        required: false
        schema:
          type: string
          description: Filter by a comma(,) separated list of deliverTypes
          metas: {}
        in: query
        style: form
        explode: true
      - name: event
        required: false
        schema:
          type: string
          description: Filter by a comma(,) separated list of event IDs
          metas: {}
        in: query
        style: form
        explode: true
      - name: statusId
        required: false
        schema:
          type: string
          description: Filter tickets with a seat by status ID
          metas: {}
        in: query
        style: form
        explode: true
      - name: gaName
        required: false
        schema:
          type: string
          description: Filter tickets with a seat by general admission name
          metas: {}
        in: query
        style: form
        explode: true
      - name: sectionName
        required: false
        schema:
          type: string
          description: Filter tickets with a seat by section name
          metas: {}
        in: query
        style: form
        explode: true
      - name: groupName
        required: false
        schema:
          type: string
          description: Filter tickets with a seat by group name
          metas: {}
        in: query
        style: form
        explode: true
      - name: rowName
        required: false
        schema:
          type: string
          description: Filter tickets with a seat by row name
          metas: {}
        in: query
        style: form
        explode: true
      - name: seatName
        required: false
        schema:
          type: string
          description: Filter tickets by seat name
          metas: {}
        in: query
        style: form
        explode: true
      - name: customerId
        required: false
        schema:
          type: string
          description: Filter tickets by customer ID
          metas: {}
        in: query
        style: form
        explode: true
      - name: purchaseIntentId
        required: false
        schema:
          type: string
          description: Filter tickets by purchase intent ID
          metas: {}
        in: query
        style: form
        explode: true
      - name: checkoutId
        required: false
        schema:
          type: string
          description: Filter tickets by the ID of the checkout
          metas: {}
        in: query
        style: form
        explode: true
      - name: subscriptionId
        required: false
        schema:
          type: string
          description: Filter tickets by the ID of the subscription
          metas: {}
        in: query
        style: form
        explode: true
      - name: updatedAt
        required: false
        schema:
          type: object
          properties:
            $gt:
              type: string
              format: date-time
              description: value is greater than
              metas: {}
            $gte:
              type: string
              format: date-time
              description: value is greater than or equal
              metas: {}
            $lt:
              type: string
              format: date-time
              description: value is less than
              metas: {}
            $lte:
              type: string
              format: date-time
              description: value is less than or equal
              metas: {}
            $eq:
              type: string
              format: date-time
              description: value is equal
              metas: {}
            $ne:
              type: string
              format: date-time
              description: value is not equal
              metas: {}
          description: Range of dates indicating when the ticket was last updated in ISO format.
          metas: {}
        in: query
        style: deepObject
        explode: true
      - name: batch
        required: false
        schema:
          type: string
          description: Filter tickets by batch
          metas: {}
        in: query
        style: form
        explode: true
      - name: batchCounter
        required: false
        schema:
          type: object
          properties:
            $gt:
              type: number
              format: float
              description: value is greater than
              metas: {}
            $gte:
              type: number
              format: float
              description: value is greater than or equal
              metas: {}
            $lt:
              type: number
              format: float
              description: value is less than
              metas: {}
            $lte:
              type: number
              format: float
              description: value is less than or equal
              metas: {}
            $eq:
              type: number
              format: float
              description: value is equal
              metas: {}
            $ne:
              type: number
              format: float
              description: value is not equal
              metas: {}
          description: Filter tickets by batch counter
          metas: {}
        in: query
        style: deepObject
        explode: true
      - name: packageId
        required: false
        schema:
          type: string
          description: Filter tickets by package ID
          metas: {}
        in: query
        style: form
        explode: true
      - name: top
        required: false
        schema:
          type: integer
          maximum: 1000
          description: A limit on the number of objects to be returned. Can range between 1 and 1000.
          default: 25
          metas: {}
        in: query
        style: form
        explode: true
      - name: skip
        required: false
        schema:
          type: integer
          description: The number of objects to skip for the requested result
          metas: {}
        in: query
        style: form
        explode: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Tickets_GetAllTickets_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - tickets
      description: Get all Tickets
      operationId: tickets/list
  /api/tickets/{id}:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - tickets
      description: Get a Ticket
      operationId: tickets/get
    put:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUT_Tickets_UpdateATicket'
      tags:
      - tickets
      description: Update a Ticket
      operationId: tickets/update
  /api/tickets/batch/{batchId}:
    get:
      parameters:
      - name: sellerId
        required: true
        schema:
          oneOf:
          - type: string
            length: 24
            metas: {}
          - type: string
            pattern: ^[a-z]+_.*$
            metas: {}
          metas: {}
        in: query
        style: form
        explode: true
      - name: batchId
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Tickets_GetTicketsOfBatch_200_response'
        '400':
          description: Bad Request
        '404':
          description: Not Found
      tags:
      - tickets
      description: Get Tickets of Batch
      operationId: tickets/getBatch
  /api/tickets/{id}/{secret}:
    get:
      parameters:
      - name: childEventId
        required: false
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      - name: locale
        required: false
        schema:
          type: string
          description: Get the info for a specific language
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      - name: secret
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '404':
          description: Not Found
      tags:
      - tickets
      description: Get Ticket information
      operationId: tickets/getPublic
  /api/public/tickets/upgrades/info:
    get:
      parameters:
      - name: checkoutId
        required: true
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      - name: secret
        required: true
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
      tags:
      - tickets
      description: Get ticket upgrade info
      operationId: tickets/upgradeInfo
  /api/public/tickets/{id}/return-info:
    get:
      parameters:
      - name: secret
        required: true
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      - name: transactionSecret
        required: true
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
      tags:
      - tickets
      description: Return a Ticket
      operationId: tickets/getReturnInfo
  /api/tickets/{id}/print/{secret}:
    get:
      parameters:
      - name: locale
        required: false
        schema:
          type: string
          description: The locale to use for the ticket info.
          metas: {}
        in: query
        style: form
        explode: true
      - name: eventId
        required: false
        schema:
          type: string
          description: The (child)event ID to use for the ticket info.
          metas: {}
        in: query
        style: form
        explode: true
      - name: asPackage
        required: false
        schema:
          type: boolean
          description: Whether to use the package of the ticket to determine relevant event.
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          description: The ID of the ticket.
          metas: {}
        in: path
      - name: secret
        required: true
        schema:
          type: string
          description: The secret of the ticket.
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Tickets_GetTicketPrintData_200_response'
        '400':
          description: Bad Request
        '404':
          description: Not Found
      tags:
      - tickets
      description: Get Ticket Print Data
      operationId: get_ticket_print_data
  /api/tickets/free:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters: []
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_Tickets_CreateFreeTickets_201_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFreeTicketValidationSchema'
      tags:
      - tickets
      description: Create free Tickets
      operationId: tickets/create
  /api/public/tickets/claim:
    post:
      security:
      - customer-jwt: []
      parameters: []
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Tickets_ClaimTickets'
      tags:
      - tickets
      description: Claim tickets
      operationId: tickets/claim
  /api/public/tickets/upgrade:
    post:
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Tickets_UpgradeTickets'
      tags:
      - tickets
      description: Upgrade tickets
      operationId: tickets/upgrade
  /api/tickets/{id}/reissue:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketResource'
        '401':
          description: Unauthorized
      tags:
      - tickets
      description: Reissue Ticket
      operationId: tickets/reissue
  /api/tickets/{id}/invalidate:
    post:
      parameters:
      - name: secret
        required: false
        schema:
          type: string
          description: The secret of the ticket if you use the endpoint without authentication
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - tickets
      description: Invalidate Ticket
      operationId: tickets/invalidate
  /api/tickets/{id}/mail:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Tickets_SendTicketPerMail'
      tags:
      - tickets
      description: Send Ticket per mail
      operationId: send_ticket_per_mail
  /api/tickets/{id}/seat:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Tickets_ChangeTicketsSeat'
      tags:
      - tickets
      description: Change Ticket's seat
      operationId: change_tickets_seat
  /api/tickets/{id}/validate:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketResource'
        '401':
          description: Unauthorized
      tags:
      - tickets
      description: Validate Ticket
      operationId: tickets/validate
  /api/tickets/{id}/detailsrequired:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketResource'
        '401':
          description: Unauthorized
      tags:
      - tickets
      description: Require Details
      operationId: tickets/requireDetails
  /api/tickets/{id}/preparedelivery:
    post:
      security:
      - jwt: []
      parameters:
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketResource'
        '401':
          description: Unauthorized
      tags:
      - tickets
      description: Prepare Ticket for delivery
      operationId: prepare_ticket_for_delivery
  /api/public/tickets/{id}/return:
    post:
      parameters:
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Tickets_ReturnATicket'
      tags:
      - tickets
      description: Return a Ticket
      operationId: tickets/return
  /api/public/tickets/{id}/invalidate:
    post:
      parameters:
      - name: secret
        required: true
        schema:
          type: string
          description: The secret of the ticket
          metas: {}
        in: query
        style: form
        explode: true
      - name: eventIds
        required: false
        schema:
          type: array
          items:
            type: string
            metas: {}
          description: The event IDs to invalidate the ticket for
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketResource'
        '400':
          description: Bad Request
      tags:
      - tickets
      description: Invalidate Ticket
      operationId: tickets/invalidatePublic
  /api/tickets/batch/{id}/invalidate:
    post:
      security:
      - jwt: []
      parameters:
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_Tickets_InvalidateTicketsOfABatch_201_response'
        '401':
          description: Unauthorized
      tags:
      - tickets
      description: Invalidate Tickets of a Batch
      operationId: tickets/invalidateBatch
  /api/tickets/batch/{id}/mail:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Tickets_SendBatchTicketsPerMail'
      tags:
      - tickets
      description: Send batch tickets per mail
      operationId: send_batch_tickets_per_mail
  /api/tickets/personalize/{id}/{secret}:
    post:
      parameters:
      - name: id
        required: true
        schema:
          type: string
          description: The ID of the ticket.
          metas: {}
        in: path
      - name: secret
        required: true
        schema:
          type: string
          description: The secret of the ticket.
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Tickets_PersonalizeATicket'
      tags:
      - tickets
      description: Personalize a Ticket
      operationId: tickets/personalize
components:
  schemas:
    POST_Tickets_SendBatchTicketsPerMail:
      type: object
      properties:
        email:
          type: string
          format: email
      required:
      - email
      nullable: true
    POST_Tickets_PersonalizeATicket:
      type: object
      properties:
        name:
          type: string
          description: The name on the ticket.
        firstname:
          type: string
          description: The first name on the ticket.
        lastname:
          type: string
          description: The last name on the ticket.
        extraFields:
          type: object
          description: Key-value pairs of extra fields for the ticket.
    POST_Tickets_InvalidateTicketsOfABatch_201_response:
      type: array
      items:
        $ref: '#/components/schemas/TicketResource'
    CustomerResource:
      type: object
      properties:
        _id:
          type: string
          description: The ID of the customer
        company:
          type: string
          nullable: true
          description: The company of the customer
        name:
          type: string
          nullable: true
          description: The name of the customer collected from first name and last name
        prename:
          type: string
          nullable: true
          description: The first name of the customer
        lastname:
          type: string
          nullable: true
          description: The lastname of the customer
        image:
          type: string
          nullable: true
          description: The image of the customer
          deprecated: true
        primaryEmail:
          type: string
          format: email
          description: The primary email of the customer
        number:
          type: number
          format: float
          description: The number of the customer. Need to be unique and incrementing
        phone:
          type: string
          description: The phone number of the customer
        location:
          type: object
          properties:
            street:
              type: string
              nullable: true
              description: The street of the location
            line2:
              type: string
              nullable: true
              description: The additional address fields of the location
            postal:
              type: string
              nullable: true
              description: The postal of the location
            city:
              type: string
              nullable: true
              description: The city of the location
            locale:
              type: string
              nullable: true
              description: The locale of the location
              deprecated: true
            state:
              type: string
              nullable: true
              description: The state of the location
            center:
              type: array
              items:
                type: number
                format: float
              nullable: true
              description: The center of the location
              deprecated: true
            country:
              type: string
              nullable: true
              description: An ISO-3166-1 Alpha 2 country code of the location
          description: The location of the customer
        sellerId:
          type: string
          description: The ID of the seller of the customer
        notes:
          type: string
          nullable: true
          description: Notes of the customer
        extraFields:
          type: object
          nullable: true
          description: Extra fields of the customer
        tags:
          type: array
          items:
            type: string
          description: An array of tags
        segments:
          type: array
          items:
            type: string
          description: An array of segment slugs, read only
        blocked:
          type: boolean
          description: Whether the customer is blocked
        verified:
          type: boolean
          description: Whether the customer is verified
        identification:
          type: array
          items:
            $ref: '#/components/schemas/LegalIdentificationDocumentResource'
          description: An array of identification items
        _account:
          type: object
          properties:
            verificationToken:
              type: string
              description: The verification token will be sent to the customer via email within a verification link, which can be used to verify the account of the customer
            passwordResetToken:
              type: string
              description: The password reset token will be sent within a password reset link via email, which can be used by the customer to reset its password
            limitations:
              type: object
              properties:
                nextVerificationMailRequest:
                  type: string
                  format: date-time
                  description: An ISO timestamp indicating when the next verification mail request can be sent
              description: Account specific limitations of the customer
            loginType:
              type: string
              nullable: true
              enum:
              - password
              - identityprovider
              description: The login type of the customer.
          description: Account specific information about the customer
        meta:
          type: object
          description: Custom key-value data. Metadata is useful for storing additional, structured information on an object.
        externalId:
          type: string
          nullable: true
          description: An external identifier of the customer
        createdAt:
          type: string
          format: date-time
          description: An ISO timestamp indicating when the customer was created
        updatedAt:
          type: string
          format: date-time
          description: An ISO timestamp indicating when the customer was updated
      required:
      - _id
      - primaryEmail
      description: The associated customer which has been updated
    CreateFreeTicketValidationSchema:
      oneOf:
      - type: object
        properties:
          eventId:
            type: string
            description: The ID of the event containing the ticket cart items.
          underShopId:
            type: string
          items:
            type: array
            items:
              type: object
              properties:
                _id:
                  type: string
                  description: Unique identifier for the cart item. If omitted, the system will automatically generate one.
                type:
                  type: string
                  enum:
                  - ticket
                  description: The type of the cart item.
                  default: ticket
                amount:
                  type: integer
                  minimum: 1
                  description: The amount of the cart item.
                ticketTypeId:
                  type: string
                  description: The ID of the ticket type of the cart item.
                seatingInfo:
                  type: object
                  properties:
                    _id:
                      type: string
                      description: The ID of the seating object.
                    _type:
                      type: number
                      format: float
                      enum:
                      - 6
                      - 7
                      description: Indicates the type of seating object. Seat = 6, General Admission = 7.
                    categoryId:
                      type: string
                      description: The ID of the category containing the seating object.
                    statusId:
                      type: string
                      description

# --- truncated at 32 KB (344 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vivenu/refs/heads/main/openapi/vivenu-tickets-api-openapi.yml