> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aspect.systems/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Reservation

> Create a new reservation for the organization.

_Requires the `reservations:write` scope._



## OpenAPI

````yaml /endpoints/openapi.json post /v1/organizations/{organization}/reservations
openapi: 3.1.0
info:
  title: Aspect Systems
  version: 0.0.1
servers:
  - url: https://api.aspect-dev.systems
    description: Development
  - url: https://api.aspect.systems
    description: Production
security:
  - http: []
tags:
  - name: Authentication
  - name: Organizations
  - name: Divisions
  - name: Slots
  - name: Rates
  - name: Reservations
  - name: Entries
  - name: Memberships
paths:
  /v1/organizations/{organization}/reservations:
    post:
      tags:
        - Reservations
      summary: Create Reservation
      description: |-
        Create a new reservation for the organization.

        _Requires the `reservations:write` scope._
      operationId: partner.reservations.store
      parameters:
        - name: organization
          in: path
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: >-
            Available includes are `customer`, `division`, `entries`. You can
            include multiple options by separating them with a comma.
          schema:
            type: string
      requestBody:
        description: '`CreateReservation`'
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReservation'
      responses:
        '201':
          description: '`Reservation`'
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Reservation'
                  included:
                    type: array
                    items:
                      anyOf:
                        - $ref: '#/components/schemas/Customer'
                        - $ref: '#/components/schemas/Division'
                        - $ref: '#/components/schemas/Entry'
                required:
                  - data
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error overview.
                required:
                  - message
        '403':
          $ref: '#/components/responses/AuthorizationException'
        '422':
          $ref: '#/components/responses/ValidationException'
components:
  schemas:
    CreateReservation:
      type: object
      properties:
        customer:
          $ref: '#/components/schemas/CreateCustomer'
          description: Customer information for the reservation
        entries:
          type: array
          description: >-
            Collection of entries (tickets/bundles) for the reservation.


            _N.B. The first entry will always be assigned to the reservation
            holder._
          items:
            $ref: '#/components/schemas/CreateEntry'
      required:
        - customer
        - entries
      title: CreateReservation
    Reservation:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - reservations
        attributes:
          type: object
          properties:
            id:
              type: string
              description: ID of the reservation.
              examples:
                - '310476121357873156'
            code:
              type: string
              description: Unique code of the reservation.
              examples:
                - ABC1234
            state:
              $ref: '#/components/schemas/ReservationState'
              description: Current state of the reservation.
            channel:
              anyOf:
                - $ref: '#/components/schemas/ReservationChannel'
                  description: Booking channel used for this reservation.
                - type: 'null'
            start_at:
              type: string
              description: Start time of the reservation.
              examples:
                - '2025-01-15T10:00:00-04:00'
            subtotal:
              type: integer
              description: Subtotal of the reservation, in cents (taxes excluded).
              examples:
                - 5000
            total:
              type: integer
              description: Total of the reservation, in cents (taxes included).
              examples:
                - 5000
            created_at:
              type: string
              description: Timestamp when the reservation was created.
              examples:
                - '2025-01-15T08:30:00Z'
            updated_at:
              type: string
              description: Timestamp when the reservation was last updated.
              examples:
                - '2025-01-15T08:30:00Z'
          required:
            - id
            - code
            - state
            - channel
            - start_at
            - subtotal
            - total
            - created_at
            - updated_at
        relationships:
          type: object
          properties:
            customer:
              type: object
              properties:
                data:
                  anyOf:
                    - $ref: '#/components/schemas/CustomerResourceIdentifier'
                    - type: 'null'
              required:
                - data
            division:
              type: object
              properties:
                data:
                  anyOf:
                    - $ref: '#/components/schemas/DivisionResourceIdentifier'
                    - type: 'null'
              required:
                - data
            entries:
              type: object
              properties:
                data:
                  type: array
                  items:
                    $ref: '#/components/schemas/EntryResourceIdentifier'
              required:
                - data
      required:
        - id
        - type
      title: Reservation
    Customer:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - customers
        attributes:
          type: object
          properties:
            id:
              type: string
              description: ID of the customer.
              examples:
                - '310476121357873161'
            first_name:
              type:
                - string
                - 'null'
              description: First name of the customer.
              examples:
                - John
            last_name:
              type:
                - string
                - 'null'
              description: Last name of the customer.
              examples:
                - Doe
            email:
              type:
                - string
                - 'null'
              description: Email address of the customer.
              examples:
                - john.doe@example.com
            phone:
              type:
                - string
                - 'null'
              description: Phone number of the customer (in E.164 format).
              examples:
                - '+15145551234'
          required:
            - id
            - first_name
            - last_name
            - email
            - phone
      required:
        - id
        - type
      title: Customer
    Division:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - divisions
        attributes:
          type: object
          properties:
            id:
              type: string
              description: ID of the division.
              examples:
                - '310476121357873158'
            name:
              type: string
              description: Name of the division.
              examples:
                - Golf
            industry:
              $ref: '#/components/schemas/DivisionIndustry'
              description: Industry of the division.
          required:
            - id
            - name
            - industry
      required:
        - id
        - type
      title: Division
    Entry:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - entries
        attributes:
          type: object
          properties:
            id:
              type: string
              description: ID of the entry.
              examples:
                - '310476121357873159'
            parent_id:
              type:
                - string
                - 'null'
              description: >-
                ID of the parent entry if this entry is part of a bundle or a
                ticket series.
              examples:
                - '310476121357873160'
            code:
              type: string
              description: Unique code of the entry.
              examples:
                - ABC123
            state:
              $ref: '#/components/schemas/EntryState'
              description: The current state of the entry.
            first_name:
              type:
                - string
                - 'null'
              description: First name of the attendee for this entry.
              examples:
                - John
            last_name:
              type:
                - string
                - 'null'
              description: Last name of the attendee for this entry.
              examples:
                - Doe
            offering_type:
              type: string
              description: Type of offering.
              enum:
                - ticket
                - bundle
            offering_id:
              type: string
              description: ID of the offering.
              examples:
                - '310476121357873155'
            offering_name:
              type: string
              description: Name of the offering.
              examples:
                - Green Fee
            price:
              type:
                - integer
                - 'null'
              description: >-
                Price for this entry, in cents (`null` if part of a bundle or a
                ticket series).
              examples:
                - 5000
            created_at:
              type: string
              description: Timestamp when the entry was created.
              examples:
                - '2025-01-15T10:30:00Z'
            updated_at:
              type: string
              description: Timestamp when the entry was last updated.
              examples:
                - '2025-01-15T14:30:00Z'
          required:
            - id
            - parent_id
            - code
            - state
            - first_name
            - last_name
            - offering_type
            - offering_id
            - offering_name
            - price
            - created_at
            - updated_at
        relationships:
          type: object
          properties:
            division:
              type: object
              properties:
                data:
                  anyOf:
                    - $ref: '#/components/schemas/DivisionResourceIdentifier'
                    - type: 'null'
              required:
                - data
            slot:
              type: object
              properties:
                data:
                  anyOf:
                    - $ref: '#/components/schemas/SlotResourceIdentifier'
                    - type: 'null'
              required:
                - data
            reservation:
              type: object
              properties:
                data:
                  anyOf:
                    - $ref: '#/components/schemas/ReservationResourceIdentifier'
                    - type: 'null'
              required:
                - data
            membership:
              type: object
              properties:
                data:
                  anyOf:
                    - $ref: '#/components/schemas/MembershipResourceIdentifier'
                    - type: 'null'
              required:
                - data
      required:
        - id
        - type
      title: Entry
    CreateCustomer:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
          format: email
        phone:
          type:
            - string
            - 'null'
          description: E.164 format
      required:
        - first_name
        - last_name
        - email
      title: CreateCustomer
    CreateEntry:
      type: object
      properties:
        rate_id:
          type: string
          description: Rate ID for this entry
          examples:
            - '310476121357873154'
        first_name:
          type:
            - string
            - 'null'
          description: First name of the attendee for this entry
        last_name:
          type:
            - string
            - 'null'
          description: Last name of the attendee for this entry
      required:
        - rate_id
        - first_name
        - last_name
      title: CreateEntry
    ReservationState:
      type: string
      enum:
        - pending
        - paid
        - free
        - included
        - partiallyPaid
        - refunded
        - partiallyRefunded
        - canceled
      title: ReservationState
    ReservationChannel:
      type: string
      enum:
        - online
        - inStore
        - application
        - partner
      title: ReservationChannel
    CustomerResourceIdentifier:
      type: object
      properties:
        type:
          type: string
          enum:
            - customers
        id:
          type: string
      required:
        - type
        - id
      title: CustomerResourceIdentifier
    DivisionResourceIdentifier:
      type: object
      properties:
        type:
          type: string
          enum:
            - divisions
        id:
          type: string
      required:
        - type
        - id
      title: DivisionResourceIdentifier
    EntryResourceIdentifier:
      type: object
      properties:
        type:
          type: string
          enum:
            - entries
        id:
          type: string
      required:
        - type
        - id
      title: EntryResourceIdentifier
    DivisionIndustry:
      type: string
      enum:
        - golf
        - indoorGolf
        - snowTubing
        - curling
        - eventManagement
        - other
      title: DivisionIndustry
    EntryState:
      type: string
      enum:
        - canceled
        - checkedIn
        - confirmed
        - invalid
        - late
        - noShow
        - pending
      title: EntryState
    SlotResourceIdentifier:
      type: object
      properties:
        type:
          type: string
          enum:
            - slots
        id:
          type: string
      required:
        - type
        - id
      title: SlotResourceIdentifier
    ReservationResourceIdentifier:
      type: object
      properties:
        type:
          type: string
          enum:
            - reservations
        id:
          type: string
      required:
        - type
        - id
      title: ReservationResourceIdentifier
    MembershipResourceIdentifier:
      type: object
      properties:
        type:
          type: string
          enum:
            - memberships
        id:
          type: string
      required:
        - type
        - id
      title: MembershipResourceIdentifier
  responses:
    AuthorizationException:
      description: Authorization error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
    ValidationException:
      description: Validation error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Errors overview.
              errors:
                type: object
                description: A detailed description of each field that failed validation.
                additionalProperties:
                  type: array
                  items:
                    type: string
            required:
              - message
              - errors
  securitySchemes:
    http:
      type: http
      scheme: bearer
      bearerFormat: JWT

````