openapi: 3.0.0
paths:
/api/v2/auth/authorize:
get:
operationId: ApiV2AuthController_authorize
summary: OAuth2 authorize
parameters:
- name: client_id
required: false
in: query
schema:
type: string
- name: redirect_uri
required: false
in: query
schema:
type: string
- name: prompt
required: false
in: query
description: |-
Indicates possible user prompts:
- login (default): show Sign In screen; if a user is logged in, they are logged out first
- sign-up: show Sign Up screen; if a user is logged in, they are logged out first
- none: no prompt, throw when user isn't logged in
x-enumNames:
- LOGIN
- SIGN_UP
- NONE
schema:
enum:
- login
- sign-up
- none
type: string
- name: scope
required: false
in: query
x-enumNames:
- PUBLIC_API_V2
schema:
enum:
- public-api-v2
type: string
- name: response_type
required: false
in: query
x-enumNames:
- CODE
schema:
enum:
- code
type: string
- name: state
required: false
in: query
schema:
type: string
responses:
'200':
description: ''
tags:
- auth
security:
- OAuth2ApiClient: []
/api/v2/auth/token:
post:
operationId: ApiV2AuthController_token
summary: OAuth2 token
description: Obtain a new access token
parameters: []
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
oneOf:
- $ref: '#/components/schemas/AuthTokenPasswordRequestDto'
- $ref: '#/components/schemas/AuthTokenRefreshTokenRequestDto'
- $ref: '#/components/schemas/AuthTokenAuthorizationCodeRequestDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AuthTokenDto'
tags:
- auth
security:
- OAuth2ApiClient: []
/api/v2/auth/profile:
get:
operationId: ApiV2AuthController_profile
summary: Get logged user data
description: Get info about currently logged user
parameters: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AuthProfileDto'
description: ''
tags:
- auth
/api/v2/auth/logout:
post:
operationId: ApiV2AuthController_logout
summary: Logout
description: Invalidate provided access token
parameters: []
responses:
'201':
description: ''
tags:
- auth
/api/v2/host/appointments/reservations:
get:
operationId: ApiV2HostAppointmentsController_getHostAppointmentReservations
summary: Get all appointment reservations
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- startsAt
type: string
- name: startAfter
required: false
in: query
schema:
type: string
- name: startBefore
required: false
in: query
schema:
type: string
- name: endAfter
required: false
in: query
schema:
type: string
- name: endBefore
required: false
in: query
schema:
type: string
- name: includeCancelled
required: false
in: query
schema:
type: boolean
- name: includeCancelledAttendees
required: false
in: query
schema:
type: boolean
- name: isPaid
required: false
in: query
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: >-
#/components/schemas/ApiV2HostAppointmentReservationDto
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/checkout/compatible-memberships:
post:
operationId: ApiV2HostCheckoutController_postCompatibleMemberships
summary: Get compatible memberships for checkout cart
description: >
This endpoint will return list of bought memberships of the specified
member potentially compatible with the given checkout cart.
**NOTE**: The endpoint also returns memberships that are incompatible
which is indicated by the incompatibility field. This is so you can
present user with a reason why the membership is not usable in this
case.
| Incompatibility | Description |
| --- | --- |
| session-membership-excluded | session is not included in specified
membership |
| session-bought-membership-will-expire | bought membership will expire
before the session start and it's not scheduled to renew |
| session-bought-membership-pack-will-expire | pack will expire before
the session starts |
| session-bought-membership-already-used | bought membership was already
used for this session and it's not allowed to use it multiple times |
| session-bought-membership-usage-limit-reached | subscription has
reached its usage limit for the renewal period that's aligned with
session |
| session-bought-membership-usage-limit-reached-for-semester-or-course |
subscription has reached its usage limit for the renewal period or
periods that're aligned with the whole semester or course |
| session-bought-membership-daily-limit-reached | bought membership was
already used today and is limited to one use per day |
| session-bought-membership-no-event-credits-left | no event credits are
left in the pack |
| session-bought-membership-no-money-credits-left | no money credits are
left in the pack |
| session-bought-membership-on-demand | bought membership is only usable
for on-demand content, not classes |
| session-bought-membership-starts-later | bought membership starts
being valid after the session start |
| session-bought-membership-invalid-type | bought membership is not
usable for this |
| session-bought-membership-disabled | membership linked with the bought
membership was disabled and thus it can't be used |
| session-bought-membership-frozen | bought membership is frozen when
the session happens |
| session-subscription-ticket-limit | subscription is limited to one
ticket |
| unknown | unknown reason |
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostCheckoutCompatibleMembershipsRequestDto'
responses:
'200':
content:
application/json:
schema:
$ref: >-
#/components/schemas/HostCheckoutCompatibleMembershipsResponseDto
description: ''
tags:
- host-checkout
security:
- OAuth2: []
/api/v2/host/checkout/prices:
post:
operationId: ApiV2HostCheckoutController_postPrices
summary: Get prices for checkout
description: >-
This endpoint should be used before calling checkout to fetch correct
prices for every item.
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostCheckoutPricesRequestDto'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/HostCheckoutPricesResponseDto'
description: ''
tags:
- host-checkout
security:
- OAuth2: []
/api/v2/host/checkout:
post:
operationId: ApiV2HostCheckoutController_post
summary: Perform checkout
description: >
Perform payment for specified items in the checkout cart on behalf of
the specified member. The endpoint will return list of purchased items.
The checkout endpoint will reject any request that doesn't contain
correct prices even when you're using memberships to pay.
**NOTE**: Currently the endpoint only supports buying sessions with
membership payment method.
**NOTE:** You should call `/prices` endpoint to fetch correct prices for
every item in the cart before calling this endpoint
**NOTE:** You should call `/compatible-memberships` endpoint to fetch
list of bought memberships that are potentially compatible with the cart
before calling this endpoint
| Error | Description |
| --- | --- |
| err-no-payment-methods | request doesn't contain any payment methods |
| err-no-items | request doesn't contain any items |
| err-too-many-items | request contain more than 1 items |
| err-combined-payment-methods | request contains multiple payment
method types in single request |
| err-cannot-pay-for-membership-with-membership | request is attempting
to buy membership with membership |
| err-multiple-membership-types | request is combining different
membership types in payment methods |
| err-multiple-subscriptions | request contains more than 1 subscription
payment methods |
| err-saved-card-not-found | request contains invalid saved card payment
method |
| err-cart-validation-failed | general error when validating cart |
| err-payment-failed | error occurred during payment processing |
| err-duplicate-membership-payment-methods | request contains single
bought membership multiple times |
| err-invalid-membership-payment-method | request contains invalid
membership payment method |
| err-incompatible-membership | request contains membership that's
incompatible with the checkout cart |
| err-unsupported-payment-methods | request contains invalid payment
methods |
| err-session-has-invalid-state | request contains session with status
that prevent sale |
| err-session-has-passed | request contains session that has already
passed |
| err-session-sales-ended | request contains session that has ended
sales |
| err-session-dropins-not-allowed | request contains session that does
not allow dropins |
| err-session-is-full | request contains session that's full |
| err-session-purchase-limit-reached | request contains session that
member has already booked and host doesn't allow that |
| err-session-access-restricted | request contains session that requires
specific tag to book |
| err-duplicate-item-ids | request contains single item id multiple
times |
| err-duplicate-payment-method-ids | request contains single payment
method id multiple times |
| err-unsupported-item-type | request contains unsupported item type |
| err-missing-customer-date-of-birth | customer has no birthday
information, but it's required |
| err-customer-age-prevents-from-action | customer is not eligible for
the action due to age restriction |
| err-invalid-custom-payment-method | request contains invalid custom
payment method id |
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostCheckoutRequestDto'
examples:
buySessionUsingSubscription:
summary: Buy session using subscription
value:
memberId: 12345
items:
- id: '1'
type: session
sessionId: 15525
attemptedPriceInCurrency: '10.5'
paymentMethods:
- id: '1'
type: membership
boughtMembershipId: 25568
buySessionUsingSavedPaymentMethod:
summary: Buy session using member's saved payment method
value:
memberId: 12345
items:
- id: '1'
type: session
sessionId: 15525
attemptedPriceInCurrency: '10.5'
paymentMethods:
- id: '1'
type: saved_payment_method
savedPaymentMethodId: 5155
buyMembershipUsingSavedPaymentMethod:
summary: Buy membership using member's saved payment method
value:
memberId: 12345
items:
- id: '1'
type: subscription
membershipId: 789
attemptedPriceInCurrency: '49.99'
paymentMethods:
- id: '1'
type: saved_payment_method
savedPaymentMethodId: 5155
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/HostCheckoutResponseDto'
description: ''
'400':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/HostCheckoutErrorResponseDto'
tags:
- host-checkout
security:
- OAuth2: []
/api/v2/host/members/{memberId}/appointments:
get:
operationId: ApiV2HostMembersAppointmentsController_getAppointmentReservations
summary: Get appointments by a specific member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- startsAt
type: string
- name: startAfter
required: false
in: query
schema:
type: string
- name: startBefore
required: false
in: query
schema:
type: string
- name: endAfter
required: false
in: query
schema:
type: string
- name: endBefore
required: false
in: query
schema:
type: string
- name: includeCancelled
required: false
in: query
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: >-
#/components/schemas/HostMemberAppointmentReservationDto
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/bought-memberships/active:
get:
operationId: ApiV2HostMembersBoughtMembershipsController_list
summary: Get all active subscriptions and packs of a specific member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: includeFrozen
required: false
in: query
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/ApiV2HostBoughtMembershipsDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/bought-memberships/{boughtMembershipId}/credits:
put:
operationId: ApiV2HostMembersBoughtMembershipsController_updateClassCredits
summary: >-
Update credits of package-events or package-money bought membership for
a specific member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: boughtMembershipId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: >-
#/components/schemas/ApiV2HostMemberBoughtMembershipsUpdateClassCreditsRequestDto
responses:
'200':
content:
application/json:
schema:
$ref: >-
#/components/schemas/ApiV2HostMemberBoughtMembershipsUpdateClassCreditsResponseDto
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/bought-memberships/{boughtMembershipId}/membership-freeze:
put:
operationId: ApiV2HostMembersBoughtMembershipsController_freezeMembership
summary: Freeze bought membership immediately or schedule freeze/unfreeze
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: boughtMembershipId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2BoughtMembershipFreezeRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/bought-memberships/{boughtMembershipId}/membership-schedule-freeze:
put:
operationId: ApiV2HostMembersBoughtMembershipsController_scheduleMembershipFreeze
summary: Schedule bought membership freeze
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: boughtMembershipId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: >-
#/components/schemas/ApiV2BoughtMembershipScheduleFreezeRequestDto
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
delete:
operationId: ApiV2HostMembersBoughtMembershipsController_removeMembershipFreeze
summary: Unfreeze bought membership or remove scheduled freeze
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: boughtMembershipId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/bought-memberships/{boughtMembershipId}/membership-schedule-unfreeze:
put:
operationId: ApiV2HostMembersBoughtMembershipsController_scheduleMembershipUnfreeze
summary: Schedule bought membership unfreeze
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: boughtMembershipId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: >-
#/components/schemas/ApiV2BoughtMembershipScheduleUnfreezeRequestDto
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
delete:
operationId: ApiV2HostMembersBoughtMembershipsController_removeMembershipUnfreeze
summary: Remove bought membership scheduled unfreeze
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: boughtMembershipId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members:
get:
operationId: ApiV2HostMembersController_list
summary: Get members
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 100
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- lastSeenAt
- firstSeenAt
- firstName
- lastName
- email
type: string
- name: query
required: false
in: query
description: Search customers by query
schema:
type: string
- name: filterPreset
required: false
in: query
schema:
enum:
- with-active-membership
type: string
- name: staticSegmentId
required: false
in: query
description: Filter customers by static segment ID
schema:
type: integer
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostMemberDto'
description: ''
tags:
- host
security:
- OAuth2: []
post:
operationId: ApiV2HostMembersController_create
summary: Add member
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostMemberCreateRequestDto'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostMemberCreateResponseDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/list:
post:
operationId: ApiV2HostMembersController_listPost
summary: Get members (with filters)
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostMembersListRequestWithFilterDto'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostMemberDto'
description: ''
'201':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}:
get:
operationId: ApiV2HostMembersController_get
summary: Get member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/HostMemberDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/name:
put:
operationId: ApiV2HostMembersController_updateName
summary: Update member name
parameters:
- name: memberId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostMemberUpdateNameRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/phone-number:
put:
operationId: ApiV2HostMembersController_updatePhoneNumber
summary: Update member phone number
parameters:
- name: memberId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostMemberUpdatePhoneNumberRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
delete:
operationId: ApiV2HostMembersController_deleteMemberPhoneNumber
summary: Delete all phone number records for a member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/email:
put:
operationId: ApiV2HostMembersController_updateEmail
summary: Update member e-mail
parameters:
- name: memberId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostMemberUpdateEmailRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/memberships:
get:
operationId: ApiV2HostMembershipsController_list
summary: Get available host memberships
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- name
- orderNumber
type: string
- name: includeDisabled
required: false
in: query
schema:
type: boolean
- name: onlyFeatured
required: false
in: query
schema:
type: boolean
- name: compatibleWithSessionId
required: false
in: query
schema:
type: integer
- name: compatibleWithAppointmentId
required: false
in: query
schema:
type: integer
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/ApiV2HostMembershipDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/notes:
get:
operationId: ApiV2HostMembersNotesController_list
summary: Get notes for a specific member
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 100
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- createdAt
- modifiedAt
type: string
- name: memberId
required: true
in: path
schema:
type: number
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostMemberNoteDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/sessions:
get:
operationId: ApiV2HostMembersSessionBookingsController_list
summary: Get session bookings by a specific member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 100
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- startsAt
type: string
- name: startAfter
required: false
in: query
schema:
type: string
- name: startBefore
required: false
in: query
schema:
type: string
- name: endAfter
required: false
in: query
schema:
type: string
- name: endBefore
required: false
in: query
schema:
type: string
- name: includeCancelled
required: false
in: query
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostMemberSessionBookingDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/tags/{tagId}:
post:
operationId: ApiV2HostMemberTagsController_assign
summary: Assign a tag to a member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: tagId
required: true
in: path
schema:
type: number
responses:
'201':
description: ''
tags:
- host
security:
- OAuth2: []
delete:
operationId: ApiV2HostMemberTagsController_unassign
summary: Unassign a tag from a member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: tagId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/sales:
get:
operationId: ApiV2HostSalesController_list
summary: Get sales
description: >-
**Note:** This is an experimental feature, please contact support if you
want to utilize this endpoint.
This endpoint returns a list of host sales.
The default sorting mode is DESC (newest sales first), but you can also
specify ASC (oldest sales first).
For session and appointment sales, additional meta data is returned in
the response.
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
type: string
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostSaleDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/session-bookings/{bookingId}/check-in:
post:
operationId: ApiV2HostSessionBookingCheckInController_addSessionBookingCheckIn
summary: Mark session booking as checked-in
parameters:
- name: bookingId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
delete:
operationId: ApiV2HostSessionBookingCheckInController_removeSessionBookingCheckIn
summary: Mark session booking as not checked-in
parameters:
- name: bookingId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/session-bookings/{bookingId}:
delete:
operationId: ApiV2HostSessionBookingController_cancelSessionBooking
summary: Cancel session booking
description: >-
Cancel a single session booking identified by its ID.
**Tip:** You can find the ID within the *ApiV2HostSessionBookingDto*
object (`id` field) returned from the session booking list endpoint.
**Note:** This endpoint does not cancel or impact any recurring
bookings. There is a separate endpoint for canceling those.
parameters:
- name: bookingId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostSessionBookingCancelRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/session-recurring-bookings/{bookingId}:
delete:
operationId: ApiV2HostSessionRecurringBookingController_cancelRecurringSessionBooking
summary: Cancel recurring session booking
description: >-
Cancel recurring session booking identified by its ID and related
session bookings.
**Tip:** You can find the ID within the ApiV2HostSessionBookingDto
object (`recurringBookingId` field) returned from the session booking
list endpoint.
**Note:** This endpoint cancels both recurring booking and individual
bookings originating from the same.
User can provide more specific filters to specify which bookings will be
cancelled.
parameters:
- name: bookingId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostSessionRecurringBookingCancelRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/sessions:
get:
operationId: ApiV2HostSessionsController_getSessions
summary: Returns a list of sessions
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- name
- startsAt
- endsAt
type: string
- name: includeCancelled
required: false
in: query
description: also include cancelled sessions
schema:
type: boolean
- name: types
required: false
in: query
description: only return specified session types
schema:
type: array
items:
type: string
enum:
- private
- special-event
- special-event-new
- retreat
- fitness
- course
- course-class
- semester
- recital
- name: teacherId
required: false
in: query
schema:
type: integer
- name: locationId
required: false
in: query
schema:
type: integer
- name: startAfter
required: false
in: query
schema:
type: string
- name: startBefore
required: false
in: query
schema:
type: string
- name: endAfter
required: false
in: query
schema:
type: string
- name: endBefore
required: false
in: query
schema:
type: string
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostSessionDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/sessions/{sessionId}:
get:
operationId: ApiV2HostSessionsController_getSession
summary: Returns a session detail
parameters:
- name: sessionId
required: true
in: path
schema:
type: number
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/HostSessionDetailDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/sessions/{sessionId}/bookings:
get:
operationId: ApiV2HostSessionsController_getSessionBookings
summary: Returns a list of session bookings
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 100
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- createdAt
- firstName
- lastName
type: string
- name: includeCancelled
required: false
in: query
description: also include cancelled bookings
schema:
type: boolean
- name: sessionId
required: true
in: path
schema:
type: number
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostSessionBookingDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/sessions/{sessionId}/bookings/free:
post:
operationId: ApiV2HostSessionsController_addToSessionForFree
summary: Add a member to a session for free
description: >-
This endpoint allows staff user to add a member to a session for free
| Error | Description |
| --- | --- |
| err-member-not-found | member not found |
| err-member-not-assigned-to-host | member is not assigned to the host |
| err-session-not-found | session not found |
| err-session-not-provided-by-host | session not provided by the host |
| err-customer-age-prevents-from-action | member is not eligible due to
age restrictions |
| err-missing-customer-date-of-birth | member is missing date of birth
value |
| err-missing-date-of-birth-setting | host is missing date of birth
settings |
| err-invalid-date-of-birth-value | member has invalid date of birth
value |
| err-session-not-recurring | session is not a recurring session |
parameters:
- name: sessionId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostFreeSessionBookingRequestDto'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/HostFreeSessionBookingResponseDto'
description: ''
'400':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/HostFreeSessionBookingErrorResponseDto'
tags:
- host
security:
- OAuth2: []
/api/v2/host/sessions/{sessionId}/waitlist/bookings:
post:
operationId: ApiV2HostSessionsController_addToWaitlist
summary: Add a member to a session waitlist
description: >-
This endpoint allows staff user to add a member to a session waitlist
**NOTE**: You can use the optional `useBoughtMembershipIds` field to
provide a list of bought memberships that should be attempted to use
during booking from the waitlist. If you don't provide anything here the
best matching membership will be used automatically.
| Error | Description |
| --- | --- |
| err-waitlist-not-allowed | session does not have waitlist enabled |
| err-waitlist-full | session waitlist is full |
| err-member-already-on-waitlist | member is already on the waitlist |
| err-member-not-found | member not found |
| err-member-not-assigned-to-host | member is not assigned to the host |
| err-session-not-found | session not found |
| err-session-not-provided-by-host | session not provided by the host |
| err-customer-age-prevents-from-action | member is not eligible due to
age restrictions |
| err-missing-customer-date-of-birth | member is missing date of birth
value |
| err-missing-date-of-birth-setting | host is missing date of birth
settings |
| err-invalid-date-of-birth-value | member has invalid date of birth
value |
parameters:
- name: sessionId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostSessionWaitlistBookingRequestDto'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/HostSessionWaitlistBookingResponseDto'
description: ''
'400':
description: ''
content:
application/json:
schema:
$ref: >-
#/components/schemas/HostSessionWaitlistBookingErrorResponseDto
tags:
- host
security:
- OAuth2: []
/api/v2/host/tags:
get:
operationId: ApiV2HostTagsController_list
summary: List available tags
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 100
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- name
type: string
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostTagDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/member-addresses:
get:
operationId: ApiV2MemberAddressesController_list
summary: Get member addresses
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
example: createdAt
enum:
- createdAt
type: string
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/ApiV2MemberAddressDto'
examples:
addresses:
summary: Member addresses
value:
pagination:
page: 0
pageSize: 10
totalCount: 1
payload:
- id: 5
address: 153 Hunters Drive
city: New York
country: US
zipcode: '8513'
createdAt: 2021-01-01T00:00:00.000Z
description: ''
tags:
- member-addresses
security:
- OAuth2: []
post:
operationId: ApiV2MemberAddressesController_create
summary: Create member address
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2MemberAddressRequestDto'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2MemberAddressDto'
examples:
addresses:
summary: Member address
value:
id: 5
address: 153 Hunters Drive
city: New York
country: US
zipcode: '8513'
createdAt: 2021-01-01T00:00:00.000Z
description: ''
tags:
- member-addresses
security:
- OAuth2: []
/api/v2/member-addresses/{memberAddressId}:
get:
operationId: ApiV2MemberAddressesController_get
summary: Get member address
parameters:
- name: memberAddressId
required: true
in: path
schema:
type: number
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2MemberAddressDto'
examples:
addresses:
summary: Member address
value:
id: 5
address: 153 Hunters Drive
city: New York
country: US
zipcode: '8513'
createdAt: 2021-01-01T00:00:00.000Z
description: ''
tags:
- member-addresses
security:
- OAuth2: []
put:
operationId: ApiV2MemberAddressesController_update
summary: Update member address
parameters:
- name: memberAddressId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2MemberAddressRequestDto'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2MemberAddressDto'
examples:
addresses:
summary: Member address
value:
id: 5
address: 153 Hunters Drive
city: New York
country: US
zipcode: '8513'
createdAt: 2021-01-01T00:00:00.000Z
description: ''
tags:
- member-addresses
security:
- OAuth2: []
delete:
operationId: ApiV2MemberAddressesController_delete
summary: Delete member address
parameters:
- name: memberAddressId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- member-addresses
security:
- OAuth2: []
/api/v2/member/bought-memberships/active:
get:
operationId: ApiV2MemberBoughtMembershipsController_list
summary: Get member active memberships
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: includeFrozen
required: false
in: query
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/MemberBoughtMembershipsDto'
description: ''
tags:
- member
security:
- OAuth2: []
/api/v2/member/bought-memberships/{boughtMembershipId}/membership-freeze:
put:
operationId: ApiV2MemberBoughtMembershipsController_freezeMembership
summary: Freeze bought membership immediately or schedule freeze/unfreeze
parameters:
- name: boughtMembershipId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2BoughtMembershipFreezeRequestDto'
responses:
'200':
description: ''
tags:
- member
security:
- OAuth2: []
/api/v2/member/bought-memberships/{boughtMembershipId}/membership-schedule-freeze:
put:
operationId: ApiV2MemberBoughtMembershipsController_scheduleMembershipFreeze
summary: Schedule bought membership freeze
parameters:
- name: boughtMembershipId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: >-
#/components/schemas/ApiV2BoughtMembershipScheduleFreezeRequestDto
responses:
'200':
description: ''
tags:
- member
security:
- OAuth2: []
delete:
operationId: ApiV2MemberBoughtMembershipsController_removeMembershipFreeze
summary: Unfreeze bought membership or remove scheduled freeze
parameters:
- name: boughtMembershipId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- member
security:
- OAuth2: []
/api/v2/member/bought-memberships/{boughtMembershipId}/membership-schedule-unfreeze:
put:
operationId: ApiV2MemberBoughtMembershipsController_scheduleMembershipUnfreeze
summary: Schedule bought membership unfreeze
parameters:
- name: boughtMembershipId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: >-
#/components/schemas/ApiV2BoughtMembershipScheduleUnfreezeRequestDto
responses:
'200':
description: ''
tags:
- member
security:
- OAuth2: []
delete:
operationId: ApiV2MemberBoughtMembershipsController_removeMembershipUnfreeze
summary: Remove bought membership scheduled unfreeze
parameters:
- name: boughtMembershipId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- member
security:
- OAuth2: []
/api/v2/member/checkout/compatible-memberships:
post:
operationId: ApiV2MemberCheckoutController_postCompatibleMemberships
summary: Get compatible memberships
description: >
This endpoint will return list of bought memberships potentially
compatible with specified checkout cart.
**NOTE**: The endpoint also returns memberships that are incompatible
which is indicated by the incompatibility field. This is so you can
present user with a reason why the membership is not usable in this
case.
| Incompatibility | Description |
| --- | --- |
| session-membership-excluded | session is not included in specified
membership |
| session-bought-membership-will-expire | bought membership will expire
before the session start and it's not scheduled to renew |
| session-bought-membership-pack-will-expire | pack will expire before
the session starts |
| session-bought-membership-already-used | bought membership was already
used for this session and it's not allowed to use it multiple times |
| session-bought-membership-usage-limit-reached | subscription has
reached its usage limit for the renewal period that's aligned with
session |
| session-bought-membership-usage-limit-reached-for-semester-or-course |
subscription has reached its usage limit for the renewal period or
periods that're aligned with the whole semester or course |
| session-bought-membership-daily-limit-reached | bought membership was
already used today and is limited to one use per day |
| session-bought-membership-no-event-credits-left | no event credits are
left in the pack |
| session-bought-membership-no-money-credits-left | no money credits are
left in the pack |
| session-bought-membership-on-demand | bought membership is only usable
for on-demand content, not classes |
| session-bought-membership-starts-later | bought membership starts
being valid after the session start |
| session-bought-membership-invalid-type | bought membership is not
usable for this |
| session-bought-membership-disabled | membership linked with the bought
membership was disabled and thus it can't be used |
| session-bought-membership-frozen | bought membership is frozen when
the session happens |
| session-subscription-ticket-limit | subscription is limited to one
ticket |
| unknown | unknown reason |
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: >-
#/components/schemas/MemberCheckoutCompatibleMembershipsRequestDto
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberCheckoutCompatibleMembershipsDto'
description: ''
tags:
- member-checkout
security:
- OAuth2: []
/api/v2/member/checkout/prices:
post:
operationId: ApiV2MemberCheckoutController_postPrices
summary: Get prices
description: >-
This endpoint should be used before calling checkout to fetch correct
prices for every item. The checkout endpoint will reject any request
that doesn't contain correct prices even when you're using memberships
to pay.
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MemberCheckoutPricesRequestDto'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberCheckoutPricesResponseDto'
description: ''
tags:
- member-checkout
security:
- OAuth2: []
/api/v2/member/checkout:
post:
operationId: ApiV2MemberCheckoutController_post
summary: Perform checkout
description: >
Perform payment for specified items in the checkout cart. The endpoint
will return list of purchased items.
**NOTE**: Currently the endpoint only supports buying sessions with
membership payment method.
**NOTE:** You should call `/prices` endpoint to fetch correct prices for
every item in the cart before calling this endpoint
**NOTE:** You should call `/compatible-memberships` endpoint to fetch
list of bought memberships that are potentially compatible with the cart
before calling this endpoint
| Error | Description |
| --- | --- |
| err-no-payment-methods | request doesn't contain any payment methods |
| err-no-items | request doesn't contain any items |
| err-too-many-items | request contain more than 1 items |
| err-combined-payment-methods | request contains multiple payment
method types in single request |
| err-cannot-pay-for-membership-with-membership | request is attempting
to buy membership with membership |
| err-multiple-membership-types | request is combining different
membership types in payment methods |
| err-multiple-subscriptions | request contains more than 1 subscription
payment methods |
| err-saved-card-not-found | request contains invalid saved card payment
method |
| err-cart-validation-failed | general error when validating cart |
| err-payment-failed | error occurred during payment processing |
| err-duplicate-membership-payment-methods | request contains single
bought membership multiple times |
| err-invalid-membership-payment-method | request contains invalid
membership payment method |
| err-incompatible-membership | request contains membership that's
incompatible with the checkout cart |
| err-unsupported-payment-methods | request contains invalid payment
methods |
| err-session-has-invalid-state | request contains session with status
that prevent sale |
| err-session-has-passed | request contains session that has already
passed |
| err-session-sales-ended | request contains session that has ended
sales |
| err-session-dropins-not-allowed | request contains session that does
not allow dropins |
| err-session-is-full | request contains session that's full |
| err-session-purchase-limit-reached | request contains session that
member has already booked and host doesn't allow that |
| err-session-access-restricted | request contains session that requires
specific tag to book |
| err-duplicate-item-ids | request contains single item id multiple
times |
| err-duplicate-payment-method-ids | request contains single payment
method id multiple times |
| err-unsupported-item-type | request contains unsupported item type |
| err-missing-customer-date-of-birth | customer has no birthday
information, but it's required |
| err-customer-age-prevents-from-action | customer is not eligible for
the action due to age restriction |
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MemberCheckoutRequestDto'
examples:
buySessionUsingSubscription:
summary: Buy session using subscription
value:
items:
- id: '1'
type: session
sessionId: 15525
attemptedPriceInCurrency: '10.5'
paymentMethods:
- id: '1'
type: membership
boughtMembershipId: 25568
buySessionUsingSavedPaymentMethod:
summary: Buy session using saved payment method
value:
items:
- id: '1'
type: session
sessionId: 15525
attemptedPriceInCurrency: '10.5'
paymentMethods:
- id: '1'
type: saved_payment_method
savedPaymentMethodId: 5155
buySessionUsingMultiplePackages:
summary: Buy session using multiple packages
value:
items:
- id: '1'
type: session
sessionId: 15525
attemptedPriceInCurrency: '10.5'
paymentMethods:
- id: '1'
type: membership
boughtMembershipId: 25568
- id: '2'
type: membership
boughtMembershipId: 25548
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberCheckoutResponseDto'
description: ''
'400':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/MemberCheckoutErrorResponseDto'
tags:
- member-checkout
security:
- OAuth2: []
/api/v2/member:
get:
operationId: ApiV2MemberController_get
summary: Get member info
description: Returns general info for the current member
parameters: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberInfoDto'
description: ''
tags:
- member
security:
- OAuth2: []
put:
operationId: ApiV2MemberController_update
summary: Update member info
description: >-
Changes some user detail, use `/email` endpoint to change email, use
`/phone-number` endpoint to change phone number
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2MemberUpdateRequestDto'
responses:
'200':
description: ''
tags:
- member
security:
- OAuth2: []
/api/v2/member/visits:
get:
operationId: ApiV2MemberController_getVisits
summary: Get member visits
description: Returns visits counts for the current member
parameters: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberVisitsDto'
description: ''
tags:
- member
security:
- OAuth2: []
/api/v2/member/email:
put:
operationId: ApiV2MemberController_updateEmail
summary: Update member email
description: Changes user email
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2MemberUpdateEmailRequestDto'
responses:
'200':
description: ''
tags:
- member
security:
- OAuth2: []
/api/v2/member/phone-number:
put:
operationId: ApiV2MemberController_updatePhoneNumber
summary: Update member phone number
description: Changes user phone number
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2MemberUpdatePhoneNumberRequestDto'
responses:
'200':
description: ''
tags:
- member
security:
- OAuth2: []
delete:
operationId: ApiV2MemberController_deletePhoneNumber
summary: Delete all phone number records for a member
parameters: []
responses:
'200':
description: ''
tags:
- member
security:
- OAuth2: []
/api/v2/member/password-reset-email:
post:
operationId: ApiV2MemberController_requestPasswordResetEmail
summary: Request member password reset
description: Requests a new password reset email to be sent to the user
parameters: []
responses:
'201':
description: ''
tags:
- member
security:
- OAuth2: []
/api/v2/member/host/locations:
get:
operationId: ApiV2MemberHostLocationsController_list
summary: Get available host locations
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- name
type: string
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/MemberHostLocationDto'
description: ''
tags:
- member-host
security:
- OAuth2: []
/api/v2/member/host/memberships:
get:
operationId: ApiV2MemberHostMembershipsController_list
summary: Get available host memberships
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- name
- orderNumber
type: string
- name: includeDisabled
required: false
in: query
schema:
type: boolean
- name: onlyFeatured
required: false
in: query
schema:
type: boolean
- name: compatibleWithSessionId
required: false
in: query
schema:
type: integer
- name: compatibleWithAppointmentId
required: false
in: query
schema:
type: integer
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/MemberHostMembershipDto'
description: ''
tags:
- member-host
security:
- OAuth2: []
/api/v2/member/host/sessions:
get:
operationId: ApiV2MemberHostSessionsController_list
summary: Get available host sessions
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- name
- startsAt
- endsAt
type: string
- name: includeCancelled
required: false
in: query
description: also include cancelled sessions
schema:
type: boolean
- name: types
required: false
in: query
description: only return specified session types
schema:
type: array
items:
type: string
enum:
- private
- special-event
- special-event-new
- retreat
- fitness
- course
- course-class
- semester
- recital
- name: teacherId
required: false
in: query
schema:
type: integer
- name: locationId
required: false
in: query
schema:
type: integer
- name: startAfter
required: false
in: query
schema:
type: string
- name: startBefore
required: false
in: query
schema:
type: string
- name: endAfter
required: false
in: query
schema:
type: string
- name: endBefore
required: false
in: query
schema:
type: string
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/MemberHostSessionDto'
description: ''
tags:
- member-host
/api/v2/member/host/signable-documents:
get:
operationId: ApiV2MemberHostSignableDocumentsController_list
summary: >-
Returns signable documents (waivers, privacy policy, contracts...) with
signature status
parameters: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberSignableDocumentsResponseDto'
description: ''
tags:
- member-host
security:
- OAuth2: []
/api/v2/member/host/signable-documents/sign:
put:
operationId: ApiV2MemberHostSignableDocumentsController_sign
summary: >-
Signs one or multiple signable documents (waivers, privacy policy,
contracts...) using one signature
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MemberSignDocumentRequestDto'
responses:
'200':
description: ''
tags:
- member-host
security:
- OAuth2: []
/api/v2/member/saved-payment-methods:
get:
operationId: ApiV2MemberSavedPaymentMethodsController_get
summary: Get saved member payment methods
parameters: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2MemberSavedPaymentMethodsResponseDto'
description: ''
tags:
- member
security:
- OAuth2: []
post:
operationId: ApiV2MemberSavedPaymentMethodsController_post
summary: Add member saved payment method
description: >-
This endpoint returns a temporary pre-authenticated URL that allows user
to add a payment method.
Redirect user to that URL, which will allow them to add a payment method
using a Momence-hosted app.
The URL will be valid for 3600 seconds.
After the user finishes adding the payment method, they will get
redirected to the URL provided.
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2MemberManagePaymentMethodsRequestDto'
responses:
'200':
content:
application/json:
schema:
$ref: >-
#/components/schemas/ApiV2MemberManagePaymentMethodsResponseDto
description: ''
tags:
- member
security:
- OAuth2: []
/api/v2/member/saved-payment-methods/{savedPaymentMethodId}:
delete:
operationId: ApiV2MemberSavedPaymentMethodsController_delete
summary: Remove member saved payment method
description: >-
This endpoint allows members to remove their saved payment method.
| Error | Description |
| --- | --- |
| err-active-non-cancellable-subscription | member has an active
non-cancellable subscription which prevent the last payment method from
being deleted |
| err-no-payment-method-found | the specified payment method does not
exist |
parameters:
- name: savedPaymentMethodId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
'400':
description: ''
content:
application/json:
schema:
$ref: >-
#/components/schemas/MemberDeleteSavedPaymentMethodErrorResponseDto
tags:
- member
security:
- OAuth2: []
/api/v2/member/sessions:
get:
operationId: ApiV2MemberSessionBookingsController_list
summary: Get member bookings
description: Returns list of sessions current user is signed up for
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
type: string
- name: startAfter
required: false
in: query
schema:
type: string
- name: endAfter
required: false
in: query
schema:
type: string
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/MemberSessionBookingDto'
description: ''
tags:
- member-sessions
security:
- OAuth2: []
/api/v2/member/sessions/{sessionBookingId}:
delete:
operationId: ApiV2MemberSessionBookingsController_cancel
summary: Cancel member booking
description: Cancels session booking
parameters:
- name: sessionBookingId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- member-sessions
security:
- OAuth2: []
/api/v2/host/reports:
post:
operationId: ApiV2HostReportRunsController_createReportRun
summary: Initiate report generation
description: >-
Initiates generation of a report. Use "Retrieve a report" endpoint to
retrieve the report data once the generation is completed.
**Rate limit:** 100 req / 1 d
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostCreateReportRunRequestDto'
examples:
createTotalSalesReport:
summary: Create Total Sales report
value:
parameters:
reportType: total-sales
hostId: 745
dateRange:
from: 2026-01-01T00:00:00.000Z
to: 2026-01-30T00:00:00.000Z
includeRefunds: true
saleTypes:
- membership
createFranchiseGiftCardReconciliationReport:
summary: Create Franchise Gift Card Reconciliation report
value:
parameters:
reportType: franchise-gift-card-reconciliation
hostId: 745
dateRange:
from: 2026-01-01T00:00:00.000Z
to: 2026-01-30T00:00:00.000Z
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostCreateReportRunResponseDto'
description: ''
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostCreateReportRunResponseDto'
tags:
- host
security:
- OAuth2: []
/api/v2/host/reports/{reportRunId}:
get:
operationId: ApiV2HostReportRunsController_getReportRun
summary: Retrieve a report
description: '**Rate limit:** 1000 req / 1 d'
parameters:
- name: reportRunId
required: true
in: path
schema:
type: number
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostGetReportRunResponseDto'
examples:
getReportRunTotalSalesRunning:
summary: Get running Total Sales report
value:
id: 1
status: running
parameters:
reportType: total-sales
hostId: 745
dateRange:
from: 2026-01-01T00:00:00.000Z
to: 2026-01-30T00:00:00.000Z
includeRefunds: true
saleTypes:
- membership
data: null
getReportRunTotalSalesCompletedEmptyItems:
summary: Get completed Total Sales report (empty items)
value:
id: 1
status: completed
parameters:
reportType: total-sales
hostId: 745
dateRange:
from: 2026-01-01T00:00:00.000Z
to: 2026-01-30T00:00:00.000Z
includeRefunds: true
saleTypes:
- membership
data:
reportType: total-sales
items: []
getReportRunTotalSalesCompletedNonEmptyItems:
summary: Get completed Total Sales report (non-empty items)
value:
id: 1
status: completed
parameters:
reportType: total-sales
hostId: 745
dateRange:
from: 2026-01-01T00:00:00.000Z
to: 2026-01-30T00:00:00.000Z
includeRefunds: true
saleTypes:
- membership
data:
reportType: total-sales
items:
- memberId: 10000001
customerName: Customer Name
customerEmail: customer@example.com
payingCustomerName: Customer Name
payingCustomerEmail: customer@example.com
payingMemberId: 10000001
saleItemId: 20000001
paymentCategory: subscription
membershipType: subscription
paymentDate: 2026-01-01T23:31:06.515Z
serviceDate: 2026-01-01T23:31:06.882Z
paymentValue: 359
paidInMoneyCredits: 359
paymentVat: 60
paymentItem: Gold Unlimited Membership
paymentStatus: succeeded
paymentMethod: package-money
paymentTransactionId: 30000001
stripeToken: package-money
currency: null
refunded: 0
soldBy: staff@example.com
location: null
transactionItems:
- paymentTransactionItemId: 40000001
paymentTransactionId: 30000001
membershipType: package-money
membershipName: null
paymentMethod: membership
paidInCurrency: 0
paidInMoneyCredits: 359
vatAmountInCurrency: 60
homeLocation: Location XXXXX
note: null
saleReference: Receipt-YYYY-XXX
paymentMethodWeight: 1
saleItemId: 20000001
saleReference: Receipt-YYYY-XXX
details:
boughtMembershipId: 50000001
membershipId: 60000001
membershipType: subscription
description: ''
tags:
- host
security:
- OAuth2: []
info:
title: Momence Public
description: ''
version: '2.0'
contact: {}
tags: []
servers:
- url: https://api.momence.com
description: Production API
components:
schemas:
AuthTokenPasswordRequestDto:
type: object
properties:
grant_type:
type: string
enum:
- password
username:
type: string
password:
type: string
required:
- grant_type
- username
- password
AuthTokenRefreshTokenRequestDto:
type: object
properties:
grant_type:
type: string
enum:
- refresh_token
refresh_token:
type: string
required:
- grant_type
- refresh_token
AuthTokenAuthorizationCodeRequestDto:
type: object
properties:
grant_type:
type: string
enum:
- authorization_code
code:
type: string
redirect_uri:
type: string
required:
- grant_type
- code
- redirect_uri
AuthTokenDto:
type: object
properties:
accessToken:
type: string
access_token:
type: string
accessTokenExpiresAt:
type: string
format: date-time
refreshToken:
type: string
refresh_token:
type: string
refreshTokenExpiresAt:
type: string
format: date-time
required:
- accessToken
- access_token
- accessTokenExpiresAt
- refreshToken
- refresh_token
- refreshTokenExpiresAt
AuthProfileDto:
type: object
properties:
userId:
type: integer
example: 1
memberId:
type: integer
nullable: true
example: 1
email:
type: string
example: john.doe@example.com
firstName:
type: string
example: John
lastName:
type: string
example: Doe
required:
- userId
- memberId
- email
- firstName
- lastName
PaginatedResponseDataDto:
type: object
properties:
page:
type: integer
example: 0
minimum: 0
pageSize:
type: integer
example: 10
minimum: 1
totalCount:
type: integer
example: 1
sortBy:
type: string
sortOrder:
type: string
enum:
- ASC
- DESC
required:
- page
- pageSize
- totalCount
PaginatedResponseDto:
type: object
properties:
pagination:
$ref: '#/components/schemas/PaginatedResponseDataDto'
required:
- pagination
ApiV2AppointmentReservationBoardDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Yoga Private Appointments
required:
- id
- name
ApiV2AppointmentReservationServiceDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Couple Massage
required:
- id
- name
BasicEntityIdentifierDto:
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
- name
MemberTeacherDto:
type: object
properties:
id:
type: integer
example: 1
firstName:
type: string
example: John
lastName:
type: string
example: Doe
pictureUrl:
type: string
nullable: true
example: https://example.com/picture.jpg
required:
- id
- firstName
- lastName
- pictureUrl
MemberLocationDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Main Studio
required:
- id
- name
ApiV2HostAppointmentReservationAttendeeDto:
type: object
properties:
attendanceStatus:
enum:
- checkedIn
- cancelled
- booked
type: string
example: checkedIn
x-enumNames:
- CHECKED_IN
- CANCELLED
- BOOKED
bookedAt:
type: string
isPaid:
type: boolean
isDepositPaid:
type: boolean
checkedInAt:
type: string
nullable: true
isLateCancelled:
type: boolean
cancelledAt:
type: string
nullable: true
id:
type: integer
memberId:
type: integer
firstName:
type: string
nullable: true
lastName:
type: string
nullable: true
required:
- attendanceStatus
- bookedAt
- isPaid
- isDepositPaid
- checkedInAt
- isLateCancelled
- cancelledAt
- id
- memberId
- firstName
- lastName
ApiV2HostAppointmentReservationDto:
type: object
properties:
id:
type: integer
createdAt:
type: string
cancelledAt:
type: string
nullable: true
startsAt:
type: string
endsAt:
type: string
durationInMinutes:
type: number
priceInCurrency:
type: number
depositInCurrency:
type: string
nullable: true
isDepositPaid:
type: boolean
currency:
type: string
isPaid:
type: boolean
capacity:
type: integer
nullable: true
example: 10
minimum: 1
board:
$ref: '#/components/schemas/ApiV2AppointmentReservationBoardDto'
service:
$ref: '#/components/schemas/ApiV2AppointmentReservationServiceDto'
serviceVariant:
nullable: true
allOf:
- $ref: '#/components/schemas/BasicEntityIdentifierDto'
teacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
additionalTeacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
isInPerson:
type: boolean
example: false
inPersonLocation:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberLocationDto'
onlineStreamUrl:
type: string
nullable: true
example: https://example.com/online-stream
onlineStreamPassword:
type: string
nullable: true
example: password123
appointmentAttendees:
type: array
items:
$ref: '#/components/schemas/ApiV2HostAppointmentReservationAttendeeDto'
required:
- id
- createdAt
- cancelledAt
- startsAt
- endsAt
- durationInMinutes
- priceInCurrency
- depositInCurrency
- isDepositPaid
- currency
- isPaid
- capacity
- board
- service
- serviceVariant
- teacher
- additionalTeacher
- isInPerson
- inPersonLocation
- onlineStreamUrl
- onlineStreamPassword
- appointmentAttendees
HostMembershipBasicDto:
type: object
properties:
id:
type: integer
example: 5
name:
type: string
example: Monthly Membership
description:
type: string
nullable: true
example: Monthly membership with unlimited access to all classes.
type:
enum:
- subscription
- on-demand-subscription
- package-events
- package-money
- patron
type: string
example: subscription
x-enumNames:
- Subscription
- OnDemandSubscription
- PackageEvents
- PackageMoney
- Patron
locationId:
type: integer
nullable: true
example: null
disabled:
type: boolean
description: Indicates that the membership was disabled
example: false
autoRenewing:
type: boolean
description: Indicates that membership renews after specific interval
example: true
minimumAutoRenews:
type: integer
nullable: true
description: >-
How many times membership has to renew before user can cancel
renewal
example: null
eventCredits:
type: integer
nullable: true
description: >-
For PACKAGE_EVENTS memberships, defines how many event credits are
included
example: null
moneyCredits:
type: number
nullable: true
description: For PACKAGE_MONEY memberships, defines how much money is included
example: null
duration:
type: integer
nullable: true
description: >-
For SUBSCRIPTION this is auto renew duration, for PACKAGE_* this is
expiration time
example: 1
durationUnit:
nullable: true
enum:
- days
- months
- years
type: string
example: months
x-enumNames:
- DAYS
- MONTHS
- YEARS
isActivatedOnFirstUse:
type: boolean
description: >-
If set to false, membership is activated upon purchase. When set to
true, membership is activated at the moment of the first purchase.
When the purchase is for booking in the future, the activation date
is set to the booking date.
example: false
activationDeadlineInDays:
type: integer
nullable: true
description: >-
Only applicable when isActivatedOnFirstUse=true. If set, the member
must activate the membership within this many days of purchase or it
expires automatically.
example: 21
hasFreeTrial:
type: boolean
example: false
freeTrialDurationInDays:
type: integer
example: 7
contractAgreement:
type: string
nullable: true
example: Contract agreement text
order:
type: integer
example: 1
isIntroOffer:
type: boolean
example: false
usageLimitForSessions:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. Maximum number of sessions
customer can book with this membership during one renewal period,
not used when combinedUsageLimitEnabled=true
example: 5
usageLimitForAppointments:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. Maximum number of appointments
customer can book with this membership during one renewal period,
not used when combinedUsageLimitEnabled=true
example: 2
combinedUsageLimitEnabled:
type: boolean
description: >-
Only applicable for SUBSCRIPTION. The usage limits of the
memberships are applied to sum of both bookings and appointments.
example: false
combinedUsageLimit:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. Combined maximum number of
bookings and appointments customer can book with this membership
during one renewal period, only used when
combinedUsageLimitEnabled=true
example: null
usageLimitRenewalEnabled:
type: boolean
description: >-
Only applicable for SUBSCRIPTION. Calculate usage limits differently
to renewal duration.
example: false
usageLimitRenewalDuration:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. Interval for which the usage
limits are calculated, only used when usageLimitRenewalEnabled=true
example: null
usageLimitRenewalDurationUnit:
nullable: true
enum:
- days
- months
- years
type: string
description: >-
Only applicable for SUBSCRIPTION. Interval for which the usage
limits are calculated, only used when usageLimitRenewalEnabled=true
example: null
x-enumNames:
- DAYS
- MONTHS
- YEARS
usageLimitRolloverEnabled:
type: boolean
description: >-
Only applicable for SUBSCRIPTION. When true and customer doesn't use
reach their usage limits, the rest is transferred to the customer
according to usageLimitRolloverMode
example: false
usageLimitRolloverMode:
nullable: true
enum:
- next-renewal
- event-credits
type: string
description: >-
Only applicable for SUBSCRIPTION. How should extra usage limits be
transferred to customer, either as package or as addition to next
renewal period. Only used when usageLimitRolloverEnabled=true
example: null
x-enumNames:
- NEXT_RENEWAL
- EVENT_CREDITS
usageLimitRolloverExpirationDuration:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. When should the extra limits /
package expire after rolling over. Only used when
usageLimitRolloverEnabled=true
example: null
usageLimitRolloverExpirationDurationUnit:
nullable: true
enum:
- days
- months
- years
type: string
description: >-
Only applicable for SUBSCRIPTION. When should the extra limits /
package expire after rolling over. Only used when
usageLimitRolloverEnabled=true
example: null
x-enumNames:
- DAYS
- MONTHS
- YEARS
required:
- id
- name
- description
- type
- locationId
- disabled
- autoRenewing
- minimumAutoRenews
- eventCredits
- moneyCredits
- duration
- durationUnit
- isActivatedOnFirstUse
- activationDeadlineInDays
- hasFreeTrial
- freeTrialDurationInDays
- contractAgreement
- order
- isIntroOffer
- usageLimitForSessions
- usageLimitForAppointments
- combinedUsageLimitEnabled
- combinedUsageLimit
- usageLimitRenewalEnabled
- usageLimitRenewalDuration
- usageLimitRenewalDurationUnit
- usageLimitRolloverEnabled
- usageLimitRolloverMode
- usageLimitRolloverExpirationDuration
- usageLimitRolloverExpirationDurationUnit
HostCheckoutCompatibleBoughtMembershipDto:
type: object
properties:
id:
type: integer
example: 1
type:
enum:
- subscription
- on-demand-subscription
- package-events
- package-money
- patron
type: string
example: subscription
x-enumNames:
- Subscription
- OnDemandSubscription
- PackageEvents
- PackageMoney
- Patron
startDate:
type: string
nullable: true
description: start date of the bought membership
example: '2021-01-01T00:00:00Z'
format: date-time
endDate:
type: string
nullable: true
description: expiration date of the bought membership
example: '2021-02-01T00:00:00Z'
format: date-time
eventCreditsLeft:
type: number
nullable: true
description: number of event credits left, valid for PACKAGE_EVENTS
example: null
eventCreditsTotal:
type: number
nullable: true
description: >-
number of event credits originally included in the package, valid
for PACKAGE_EVENTS
example: null
moneyCreditsLeft:
type: number
nullable: true
description: number of money credits left, valid for PACKAGE_MONEY
example: null
moneyCreditsTotal:
type: number
nullable: true
description: >-
number of money credits originally included in the package, valid
for PACKAGE_MONEY
example: null
membership:
nullable: true
description: >-
info about origin membership, it's possible the bought membership
has no origin membership
allOf:
- $ref: '#/components/schemas/HostMembershipBasicDto'
required:
- id
- type
- startDate
- endDate
- eventCreditsLeft
- eventCreditsTotal
- moneyCreditsLeft
- moneyCreditsTotal
- membership
HostCheckoutCompatibleMembershipDto:
type: object
properties:
boughtMembership:
$ref: '#/components/schemas/HostCheckoutCompatibleBoughtMembershipDto'
incompatibility:
enum:
- session-membership-excluded
- session-bought-membership-will-expire
- session-bought-membership-pack-will-expire
- session-bought-membership-already-used
- session-bought-membership-usage-limit-reached
- >-
session-bought-membership-usage-limit-reached-for-semester-or-course
- session-bought-membership-daily-limit-reached
- session-bought-membership-no-event-credits-left
- session-bought-membership-no-money-credits-left
- session-bought-membership-on-demand
- session-bought-membership-starts-later
- session-bought-membership-invalid-type
- session-bought-membership-disabled
- session-bought-membership-frozen
- session-subscription-ticket-limit
- unknown
type: string
x-enumNames:
- SESSION_MEMBERSHIP_EXCLUDED
- SESSION_BOUGHT_MEMBERSHIP_WILL_EXPIRE
- SESSION_BOUGHT_MEMBERSHIP_PACK_WILL_EXPIRE
- SESSION_BOUGHT_MEMBERSHIP_ALREADY_USED
- SESSION_BOUGHT_MEMBERSHIP_USAGE_LIMIT_REACHED
- >-
SESSION_BOUGHT_MEMBERSHIP_USAGE_LIMIT_REACHED_FOR_SEMESTER_OR_COURSE
- SESSION_BOUGHT_MEMBERSHIP_DAILY_LIMIT_REACHED
- SESSION_BOUGHT_MEMBERSHIP_NO_EVENT_CREDITS_LEFT
- SESSION_BOUGHT_MEMBERSHIP_NO_MONEY_CREDITS_LEFT
- SESSION_BOUGHT_MEMBERSHIP_ON_DEMAND
- SESSION_BOUGHT_MEMBERSHIP_STARTS_LATER
- SESSION_BOUGHT_MEMBERSHIP_INVALID_TYPE
- SESSION_BOUGHT_MEMBERSHIP_DISABLED
- SESSION_BOUGHT_MEMBERSHIP_FROZEN
- SESSION_BOUGHT_MEMBERSHIP_TICKET_LIMIT
- UNKNOWN
required:
- boughtMembership
HostCheckoutCompatibleMembershipsResponseDto:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/HostCheckoutCompatibleMembershipDto'
required:
- items
HostCheckoutCompatibleMembershipsRequestDto:
type: object
properties:
memberId:
type: integer
description: ID of the member to perform the checkout for
items:
type: array
items:
oneOf:
- $ref: '#/components/schemas/HostCheckoutMembershipItemDto'
- $ref: '#/components/schemas/HostCheckoutSessionItemDto'
homeLocationId:
type: integer
required:
- memberId
- items
HostCheckoutMembershipItemDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- subscription
membershipId:
type: integer
required:
- id
- type
- membershipId
HostCheckoutSessionItemDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- session
sessionId:
type: integer
appliedPriceRuleIds:
type: array
items:
type: integer
required:
- id
- type
- sessionId
HostCheckoutPricesItemDto:
type: object
properties:
id:
type: string
priceInCurrencyWithTax:
type: string
priceInCurrencyWithoutTax:
type: string
taxInCurrency:
type: string
required:
- id
- priceInCurrencyWithTax
- priceInCurrencyWithoutTax
- taxInCurrency
HostCheckoutPricesResponseDto:
type: object
properties:
totalInCurrency:
type: string
itemsWithPrices:
type: array
items:
$ref: '#/components/schemas/HostCheckoutPricesItemDto'
required:
- totalInCurrency
- itemsWithPrices
HostCheckoutPricesRequestDto:
type: object
properties:
memberId:
type: integer
description: ID of the member to perform the checkout for
items:
type: array
items:
oneOf:
- $ref: '#/components/schemas/HostCheckoutMembershipItemDto'
- $ref: '#/components/schemas/HostCheckoutSessionItemDto'
homeLocationId:
type: integer
paymentMethods:
type: array
items:
oneOf:
- $ref: '#/components/schemas/HostCheckoutPaymentMethodMembershipDto'
- $ref: '#/components/schemas/HostCheckoutPaymentMethodSavedDto'
- $ref: '#/components/schemas/HostCheckoutPaymentMethodCustomDto'
- $ref: '#/components/schemas/HostCheckoutPaymentMethodFreeDto'
required:
- memberId
- items
- paymentMethods
HostCheckoutResponseDto:
type: object
properties:
purchasedItems:
type: array
items:
oneOf:
- $ref: '#/components/schemas/HostCheckoutPurchasedSessionDto'
- $ref: '#/components/schemas/HostCheckoutPurchasedMembershipDto'
- $ref: '#/components/schemas/HostCheckoutPurchasedAppointmentDto'
- $ref: '#/components/schemas/HostCheckoutPurchasedProductDto'
- $ref: '#/components/schemas/HostCheckoutPurchasedGiftCardDto'
- $ref: '#/components/schemas/HostCheckoutPurchasedMoneyCreditsDto'
- $ref: '#/components/schemas/HostCheckoutPurchasedEventCreditsDto'
required:
- purchasedItems
HostCheckoutMembershipItemWithPriceDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- subscription
membershipId:
type: integer
attemptedPriceInCurrency:
type: string
required:
- id
- type
- membershipId
- attemptedPriceInCurrency
HostCheckoutSessionItemWithPriceDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- session
sessionId:
type: integer
appliedPriceRuleIds:
type: array
items:
type: integer
attemptedPriceInCurrency:
type: string
required:
- id
- type
- sessionId
- attemptedPriceInCurrency
HostCheckoutPaymentMethodMembershipDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- membership
boughtMembershipId:
type: integer
required:
- id
- type
- boughtMembershipId
HostCheckoutPaymentMethodSavedDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- saved_payment_method
savedPaymentMethodId:
type: integer
required:
- id
- type
- savedPaymentMethodId
HostCheckoutPaymentMethodCustomDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- custom
customPaymentMethodId:
type: integer
note:
type: string
description: This field may be required, depends on your payment settings
required:
- id
- type
- customPaymentMethodId
HostCheckoutPaymentMethodFreeDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- free
required:
- id
- type
HostCheckoutPurchasedSessionDto:
type: object
properties:
type:
type: string
enum:
- session
sessionBookingId:
type: integer
required:
- type
- sessionBookingId
HostCheckoutPurchasedMembershipDto:
type: object
properties:
type:
type: string
enum:
- membership
boughtMembershipId:
type: integer
required:
- type
- boughtMembershipId
HostCheckoutPurchasedAppointmentDto:
type: object
properties:
type:
type: string
enum:
- appointment
appointmentTransactionId:
type: integer
required:
- type
- appointmentTransactionId
HostCheckoutPurchasedProductDto:
type: object
properties:
type:
type: string
enum:
- product
productOrderId:
type: integer
required:
- type
- productOrderId
HostCheckoutPurchasedGiftCardDto:
type: object
properties:
type:
type: string
enum:
- gift-card
giftCardId:
type: integer
required:
- type
- giftCardId
HostCheckoutPurchasedMoneyCreditsDto:
type: object
properties:
type:
type: string
enum:
- money-credit
numberOfMoneyCredits:
type: number
required:
- type
- numberOfMoneyCredits
HostCheckoutPurchasedEventCreditsDto:
type: object
properties:
type:
type: string
enum:
- event-credit
numberOfEventCredits:
type: number
required:
- type
- numberOfEventCredits
HostCheckoutRequestDto:
type: object
properties:
memberId:
type: integer
description: ID of the member to perform the checkout for
items:
type: array
items:
oneOf:
- $ref: '#/components/schemas/HostCheckoutMembershipItemWithPriceDto'
- $ref: '#/components/schemas/HostCheckoutSessionItemWithPriceDto'
homeLocationId:
type: integer
paymentMethods:
type: array
items:
oneOf:
- $ref: '#/components/schemas/HostCheckoutPaymentMethodMembershipDto'
- $ref: '#/components/schemas/HostCheckoutPaymentMethodSavedDto'
- $ref: '#/components/schemas/HostCheckoutPaymentMethodCustomDto'
- $ref: '#/components/schemas/HostCheckoutPaymentMethodFreeDto'
required:
- memberId
- items
- paymentMethods
HostCheckoutErrorResponseDto:
type: object
properties:
type:
enum:
- err-no-payment-methods
- err-no-items
- err-too-many-items
- err-combined-payment-methods
- err-cannot-pay-for-membership-with-membership
- err-multiple-membership-types
- err-multiple-subscriptions
- err-saved-card-not-found
- err-cart-validation-failed
- err-payment-failed
- err-duplicate-membership-payment-methods
- err-invalid-membership-payment-method
- err-incompatible-membership
- err-unsupported-payment-methods
- err-session-has-invalid-state
- err-session-has-passed
- err-session-sales-ended
- err-session-dropins-not-allowed
- err-session-is-full
- err-session-purchase-limit-reached
- err-session-access-restricted
- err-duplicate-item-ids
- err-duplicate-payment-method-ids
- err-unsupported-item-type
- err-missing-customer-date-of-birth
- err-customer-age-prevents-from-action
- err-invalid-custom-payment-method
type: string
x-enumNames:
- ERR_NO_PAYMENT_METHODS
- ERR_NO_ITEMS
- ERR_TOO_MANY_ITEMS
- ERR_COMBINED_PAYMENT_METHODS
- ERR_CANNOT_PAY_FOR_MEMBERSHIP_WITH_MEMBERSHIP
- ERR_MULTIPLE_MEMBERSHIP_TYPES
- ERR_MULTIPLE_SUBSCRIPTIONS
- ERR_SAVED_CARD_NOT_FOUND
- ERR_CART_VALIDATION_FAILED
- ERR_PAYMENT_FAILED
- ERR_DUPLICATE_MEMBERSHIP_PAYMENT_METHODS
- ERR_INVALID_MEMBERSHIP_PAYMENT_METHOD
- ERR_INCOMPATIBLE_MEMBERSHIP
- ERR_UNSUPPORTED_PAYMENT_METHODS
- ERR_SESSION_HAS_INVALID_STATE
- ERR_SESSION_HAS_PASSED
- ERR_SESSION_SALES_ENDED
- ERR_SESSION_DROPINS_NOT_ALLOWED
- ERR_SESSION_IS_FULL
- ERR_SESSION_PURCHASE_LIMIT_REACHED
- ERR_SESSION_ACCESS_RESTRICTED
- ERR_DUPLICATE_ITEM_IDS
- ERR_DUPLICATE_PAYMENT_METHOD_IDS
- ERR_UNSUPPORTED_ITEM_TYPE
- ERR_MISSING_CUSTOMER_DATE_OF_BIRTH
- ERR_CUSTOMER_IS_NOT_ELIGIBLE_DUE_TO_AGE_RESTRICTION
- ERR_INVALID_CUSTOM_PAYMENT_METHOD
message:
type: string
required:
- type
- message
MemberAppointmentMemberDto:
type: object
properties:
attendanceStatus:
enum:
- checkedIn
- cancelled
- booked
type: string
example: checkedIn
x-enumNames:
- CHECKED_IN
- CANCELLED
- BOOKED
bookedAt:
type: string
isPaid:
type: boolean
isDepositPaid:
type: boolean
checkedInAt:
type: string
nullable: true
isLateCancelled:
type: boolean
cancelledAt:
type: string
nullable: true
id:
type: integer
firstName:
type: string
nullable: true
lastName:
type: string
nullable: true
required:
- attendanceStatus
- bookedAt
- isPaid
- isDepositPaid
- checkedInAt
- isLateCancelled
- cancelledAt
- id
- firstName
- lastName
HostMemberAppointmentReservationDto:
type: object
properties:
id:
type: integer
createdAt:
type: string
cancelledAt:
type: string
nullable: true
startsAt:
type: string
endsAt:
type: string
durationInMinutes:
type: number
priceInCurrency:
type: number
depositInCurrency:
type: string
nullable: true
isDepositPaid:
type: boolean
currency:
type: string
isPaid:
type: boolean
capacity:
type: integer
nullable: true
example: 10
minimum: 1
board:
$ref: '#/components/schemas/ApiV2AppointmentReservationBoardDto'
service:
$ref: '#/components/schemas/ApiV2AppointmentReservationServiceDto'
serviceVariant:
nullable: true
allOf:
- $ref: '#/components/schemas/BasicEntityIdentifierDto'
teacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
additionalTeacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
isInPerson:
type: boolean
example: false
inPersonLocation:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberLocationDto'
onlineStreamUrl:
type: string
nullable: true
example: https://example.com/online-stream
onlineStreamPassword:
type: string
nullable: true
example: password123
member:
$ref: '#/components/schemas/MemberAppointmentMemberDto'
required:
- id
- createdAt
- cancelledAt
- startsAt
- endsAt
- durationInMinutes
- priceInCurrency
- depositInCurrency
- isDepositPaid
- currency
- isPaid
- capacity
- board
- service
- serviceVariant
- teacher
- additionalTeacher
- isInPerson
- inPersonLocation
- onlineStreamUrl
- onlineStreamPassword
- member
ApiV2BoughtMembershipFreezeDto:
type: object
properties:
freezedAt:
type: string
nullable: true
format: date-time
unfreezedScheduledAt:
type: string
nullable: true
format: date-time
unfrozenAt:
type: string
nullable: true
format: date-time
remainingFreezedMinutes:
type: integer
nullable: true
scheduledFreezeAt:
type: string
nullable: true
format: date-time
required:
- freezedAt
- unfreezedScheduledAt
- unfrozenAt
- remainingFreezedMinutes
- scheduledFreezeAt
ApiV2BoughtMembershipDeclinedRenewalDto:
type: object
properties:
declinedAt:
type: string
format: date-time
cardLast4:
type: string
nullable: true
required:
- declinedAt
- cardLast4
ApiV2HostBoughtMembershipsDto:
type: object
properties:
id:
type: integer
example: 1
type:
enum:
- subscription
- on-demand-subscription
- package-events
- package-money
- patron
type: string
example: subscription
x-enumNames:
- Subscription
- OnDemandSubscription
- PackageEvents
- PackageMoney
- Patron
startDate:
type: string
nullable: true
description: start date of the bought membership
example: '2021-01-01T00:00:00Z'
format: date-time
endDate:
type: string
nullable: true
description: expiration date of the bought membership
example: '2021-02-01T00:00:00Z'
format: date-time
isFrozen:
type: boolean
eventCreditsLeft:
type: number
nullable: true
description: number of event credits left, valid for PACKAGE_EVENTS
example: null
eventCreditsTotal:
type: number
nullable: true
description: >-
number of event credits originally included in the package, valid
for PACKAGE_EVENTS
example: null
moneyCreditsLeft:
type: number
nullable: true
description: number of money credits left, valid for PACKAGE_MONEY
example: null
moneyCreditsTotal:
type: number
nullable: true
description: >-
number of money credits originally included in the package, valid
for PACKAGE_MONEY
example: null
usageLimitForSessions:
type: number
nullable: true
description: >-
Non-null value indicates the membership has limit to number of
session bookings, only valid for SUBSCRIPTION
example: 5
usageLimitForAppointments:
type: number
nullable: true
description: >-
Non-null value indicates the membership has limit to number of
appointments booked, only valid for SUBSCRIPTION
example: 3
combinedUsageLimit:
type: number
nullable: true
description: >-
Non-null value indicates the membership has combined limits for
session and appointment bookings, only valid for SUBSCRIPTION
example: null
usedSessions:
type: number
nullable: true
description: only valid for SUBSCRIPTION with session-only usage limits
example: 1
usedAppointments:
type: number
nullable: true
description: only valid for SUBSCRIPTION with appointment-only usage limits
example: 2
combinedUsage:
type: number
nullable: true
description: only valid for SUBSCRIPTION with combined usage limits
example: null
usageLimitStartDate:
type: string
nullable: true
description: >-
date range for which the current usage is calculated for, only valid
for SUBSCRIPTION with usage limits
example: null
format: date-time
usageLimitEndDate:
type: string
nullable: true
description: >-
date range for which the current usage is calculated for, only valid
for SUBSCRIPTION with usage limits
example: null
format: date-time
membership:
nullable: true
description: >-
info about origin membership, it's possible the bought membership
has no origin membership
allOf:
- $ref: '#/components/schemas/HostMembershipBasicDto'
freeze:
nullable: true
description: >-
freeze details, if the membership is frozen or scheduled to
freeze/unfreeze
allOf:
- $ref: '#/components/schemas/ApiV2BoughtMembershipFreezeDto'
declinedRenewal:
nullable: true
description: latest failed renewal payment details for this membership, if any
allOf:
- $ref: '#/components/schemas/ApiV2BoughtMembershipDeclinedRenewalDto'
required:
- id
- type
- startDate
- endDate
- isFrozen
- eventCreditsLeft
- eventCreditsTotal
- moneyCreditsLeft
- moneyCreditsTotal
- usageLimitForSessions
- usageLimitForAppointments
- combinedUsageLimit
- usedSessions
- usedAppointments
- combinedUsage
- usageLimitStartDate
- usageLimitEndDate
- membership
- freeze
- declinedRenewal
ApiV2HostMemberBoughtMembershipsUpdateClassCreditsResponseDto:
type: object
properties:
eventCreditsLeft:
type: number
description: Updated number of event credits left, valid for PACKAGE_EVENTS
example: 5.5
moneyCreditsLeft:
type: number
description: Updated number of money credits left, valid for PACKAGE_MONEY
example: 99.99
ApiV2HostMemberBoughtMembershipsUpdateClassCreditsRequestDto:
type: object
properties:
eventCreditsLeft:
type: number
description: >-
Set number of event credits left, valid only for PACKAGE_EVENTS
bought membership
example: 5.5
minimum: 0
moneyCreditsLeft:
type: number
description: >-
Set number of money credits left, valid only for PACKAGE_MONEY
bought membership
example: 99.99
minimum: 0
ApiV2BoughtMembershipFreezeRequestDto:
type: object
properties:
freezeType:
enum:
- not_set
- now
- scheduled
- before_renewal
type: string
x-enumNames:
- NOT_SET
- NOW
- SCHEDULED
- BEFORE_RENEWAL
freezeAt:
type: string
nullable: true
format: date-time
unfreezeType:
enum:
- not_set
- scheduled
type: string
x-enumNames:
- NOT_SET
- SCHEDULED
unfreezeAt:
type: string
nullable: true
format: date-time
reason:
type: string
nullable: true
required:
- freezeType
- freezeAt
- unfreezeType
- unfreezeAt
ApiV2BoughtMembershipScheduleFreezeRequestDto:
type: object
properties:
freezeType:
enum:
- not_set
- now
- scheduled
- before_renewal
type: string
x-enumNames:
- NOT_SET
- NOW
- SCHEDULED
- BEFORE_RENEWAL
freezeAt:
type: string
nullable: true
format: date-time
required:
- freezeType
- freezeAt
ApiV2BoughtMembershipScheduleUnfreezeRequestDto:
type: object
properties:
unfreezeType:
enum:
- not_set
- scheduled
type: string
x-enumNames:
- NOT_SET
- SCHEDULED
unfreezeAt:
type: string
nullable: true
format: date-time
required:
- unfreezeType
- unfreezeAt
MemberVisitsDto:
type: object
properties:
appointments:
type: integer
description: All the appointments the customer has booked
appointmentsVisits:
type: integer
description: All the appointments the customer has booked and checked into
bookings:
type: integer
description: All the session bookings the customer has booked
bookingsVisits:
type: integer
description: All the session bookings the customer has booked and checked into
openAreaVisits:
type: integer
description: All visits of open areas for customer
total:
type: integer
description: Combined count of appointments + bookings
totalVisits:
type: integer
description: Combined count of appointmentsVisits + bookingsVisits
required:
- appointments
- appointmentsVisits
- bookings
- bookingsVisits
- openAreaVisits
- total
- totalVisits
HostMemberCustomerFieldDto:
type: object
properties:
id:
type: integer
description: ID of the customer field
example: 5
label:
type: string
description: label of the customer field
example: Date of Birth
type:
enum:
- text
- number
- date
- date-time
- dropdown
- boolean
- date-of-birth
type: string
description: type of the customer field
example: date-of-birth
x-enumNames:
- Text
- Number
- Date
- DateTime
- Dropdown
- Boolean
- DateOfBirth
value:
type: string
description: value set for the member for this customer field
example: '1990-01-01'
required:
- id
- label
- type
- value
HostTagDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: VIP
isCustomerBadge:
type: boolean
example: false
badgeLabel:
type: string
nullable: true
example: VIP
badgeColor:
type: string
nullable: true
example: '#fe0000'
corporateTagId:
type: integer
nullable: true
example: 1
required:
- id
- name
- isCustomerBadge
- badgeLabel
- badgeColor
- corporateTagId
HostMemberDto:
type: object
properties:
id:
type: integer
example: 5
firstName:
type: string
example: John
lastName:
type: string
example: Doe
email:
type: string
example: john.doe@mail.example.com
phoneNumber:
type: string
nullable: true
example: '1234567890'
pictureUrl:
type: string
nullable: true
example: https://example.com/picture.jpg
firstSeen:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
lastSeen:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
visits:
$ref: '#/components/schemas/MemberVisitsDto'
customerFields:
type: array
items:
$ref: '#/components/schemas/HostMemberCustomerFieldDto'
customerTags:
type: array
items:
$ref: '#/components/schemas/HostTagDto'
required:
- id
- firstName
- lastName
- email
- phoneNumber
- pictureUrl
- firstSeen
- lastSeen
- visits
- customerFields
- customerTags
LastContactedDto:
type: object
properties:
type:
enum:
- fixed
- flexible
type: string
startDate:
type: string
nullable: true
endDate:
type: string
nullable: true
days:
type: integer
required:
- type
SessionsCountDto:
type: object
properties:
type:
enum:
- moreThan
- lessThan
- exactly
type: string
value:
type: integer
required:
- type
- value
MembershipIdDto:
type: object
properties:
membershipId:
type: integer
required:
- membershipId
TeacherIdDto:
type: object
properties:
teacherId:
type: integer
required:
- teacherId
SessionIdDto:
type: object
properties:
sessionId:
type: integer
required:
- sessionId
TemplateIdDto:
type: object
properties:
templateId:
type: integer
required:
- templateId
SessionSeriesIdDto:
type: object
properties:
seriesId:
type: integer
required:
- seriesId
LocationIdDto:
type: object
properties:
locationId:
type: integer
required:
- locationId
AppointmentServiceIdDto:
type: object
properties:
appointmentServiceId:
type: integer
required:
- appointmentServiceId
VisitsQualifiersDto:
type: object
properties:
membershipIds:
type: array
items:
$ref: '#/components/schemas/MembershipIdDto'
teacherIds:
type: array
items:
$ref: '#/components/schemas/TeacherIdDto'
sessionIds:
type: array
items:
$ref: '#/components/schemas/SessionIdDto'
templateIds:
type: array
items:
$ref: '#/components/schemas/TemplateIdDto'
sessionSeriesIds:
type: array
items:
$ref: '#/components/schemas/SessionSeriesIdDto'
locationIds:
type: array
items:
$ref: '#/components/schemas/LocationIdDto'
sessionType:
enum:
- private
- special-event
- special-event-new
- retreat
- fitness
- course
- course-class
- semester
- recital
type: string
appointmentServiceIds:
type: array
items:
$ref: '#/components/schemas/AppointmentServiceIdDto'
VisitsDto:
type: object
properties:
count:
$ref: '#/components/schemas/SessionsCountDto'
startDate:
type: string
nullable: true
endDate:
type: string
nullable: true
dateType:
enum:
- fixed
- flexible
type: string
timeUnitNumber:
type: integer
qualifiers:
$ref: '#/components/schemas/VisitsQualifiersDto'
required:
- count
AddressDto:
type: object
properties:
address:
type: string
city:
type: string
country:
type: string
zipcode:
type: string
FutureBookingsCountDto:
type: object
properties:
type:
enum:
- moreThan
- lessThan
- exactly
type: string
value:
type: integer
required:
- type
- value
FutureBookingsDto:
type: object
properties:
count:
$ref: '#/components/schemas/FutureBookingsCountDto'
dateType:
enum:
- fixed
- flexible
type: string
startDate:
type: string
nullable: true
endDate:
type: string
nullable: true
timeUnit:
enum:
- days
- weeks
- months
type: string
timeUnitNumber:
type: integer
required:
- count
MembershipFilterDto:
type: object
properties:
membershipState:
enum:
- active
- not-active
- cancelled
- expired
- none
type: string
membershipId:
type: integer
nullable: true
membershipIds:
type: array
items:
type: integer
required:
- membershipState
CustomerAgeDto:
type: object
properties:
fieldId:
type: integer
type:
enum:
- after
- before
- 'on'
- between
- isEmpty
- isNotEmpty
type: string
value:
type: integer
value2:
type: integer
required:
- fieldId
- type
CustomDateFieldDto:
type: object
properties:
fieldId:
type: integer
type:
enum:
- after
- before
- 'on'
- between
- isEmpty
- isNotEmpty
type: string
value:
type: string
value2:
type: string
yearExcluded:
type: boolean
required:
- fieldId
- type
CustomNumberFieldDto:
type: object
properties:
fieldId:
type: integer
type:
enum:
- largerThan
- smallerThan
- equalsTo
- isEmpty
- isNotEmpty
type: string
value:
type: integer
nullable: true
required:
- fieldId
- type
- value
CustomTextFieldDto:
type: object
properties:
fieldId:
type: integer
type:
enum:
- includes
- equalsTo
- isEmpty
- isNotEmpty
type: string
value:
type: string
required:
- fieldId
- type
CustomDropdownFieldDto:
type: object
properties:
fieldId:
type: integer
type:
enum:
- equalsTo
- isEmpty
- isNotEmpty
type: string
value:
type: string
nullable: true
required:
- fieldId
- type
CustomBooleanFieldDto:
type: object
properties:
fieldId:
type: integer
value:
type: string
required:
- fieldId
- value
CustomFieldsDto:
type: object
properties:
date:
type: array
items:
$ref: '#/components/schemas/CustomDateFieldDto'
number:
type: array
items:
$ref: '#/components/schemas/CustomNumberFieldDto'
text:
type: array
items:
$ref: '#/components/schemas/CustomTextFieldDto'
dropdown:
type: array
items:
$ref: '#/components/schemas/CustomDropdownFieldDto'
boolean:
type: array
items:
$ref: '#/components/schemas/CustomBooleanFieldDto'
CustomerTagsDto:
type: object
properties:
type:
nullable: true
enum:
- and
- or
type: string
tags:
type: array
items:
type: integer
customerHaveTag:
enum:
- have
- not-have
type: string
required:
- type
- tags
HomeLocationDto:
type: object
properties:
locationId:
type: integer
nullable: true
required:
- locationId
CustomerRankingsDto:
type: object
properties:
customerRankingId:
type: integer
customerHaveRanking:
enum:
- have
- not-have
type: string
required:
- customerRankingId
HostCustomersListFilterDto:
type: object
properties:
type:
enum:
- and
- or
type: string
joinedSince:
type: string
lastContacted:
$ref: '#/components/schemas/LastContactedDto'
visits:
$ref: '#/components/schemas/VisitsDto'
address:
$ref: '#/components/schemas/AddressDto'
futureBookings:
$ref: '#/components/schemas/FutureBookingsDto'
memberships:
type: array
items:
$ref: '#/components/schemas/MembershipFilterDto'
customerAge:
$ref: '#/components/schemas/CustomerAgeDto'
customFields:
$ref: '#/components/schemas/CustomFieldsDto'
customerTags:
$ref: '#/components/schemas/CustomerTagsDto'
homeLocations:
type: array
items:
$ref: '#/components/schemas/HomeLocationDto'
parentsChildren:
type: array
items:
type: string
enum:
- parents
- children
- non-children
customerRankings:
$ref: '#/components/schemas/CustomerRankingsDto'
required:
- type
ApiV2HostMembersListRequestWithFilterDto:
type: object
properties:
page:
type: integer
description: Starts at 0
example: 0
minimum: 0
pageSize:
type: integer
example: 10
minimum: 1
maximum: 100
sortOrder:
type: string
enum:
- ASC
- DESC
sortBy:
type: string
description: Field to sort by
enum:
- lastSeenAt
- firstSeenAt
- firstName
- lastName
- email
query:
type: string
description: Search customers by query
filterPreset:
type: string
enum:
- with-active-membership
staticSegmentId:
type: integer
description: Filter customers by static segment ID
filter:
$ref: '#/components/schemas/HostCustomersListFilterDto'
required:
- page
- pageSize
ApiV2HostMemberCreateResponseDto:
type: object
properties:
memberId:
type: integer
required:
- memberId
ApiV2HostMemberCreateRequestDto:
type: object
properties:
email:
type: string
minLength: 1
maxLength: 100
firstName:
type: string
minLength: 1
maxLength: 100
lastName:
type: string
minLength: 1
maxLength: 100
phoneNumber:
type: string
homeLocationId:
type: integer
required:
- email
- firstName
- lastName
HostMemberUpdateNameRequestDto:
type: object
properties:
firstName:
type: string
minLength: 1
maxLength: 100
lastName:
type: string
minLength: 1
maxLength: 100
required:
- firstName
- lastName
HostMemberUpdatePhoneNumberRequestDto:
type: object
properties:
phoneNumber:
type: string
required:
- phoneNumber
HostMemberUpdateEmailRequestDto:
type: object
properties:
email:
type: string
required:
- email
ApiV2HostMembershipDto:
type: object
properties:
id:
type: integer
example: 5
name:
type: string
example: Monthly Membership
description:
type: string
nullable: true
example: Monthly membership with unlimited access to all classes.
type:
enum:
- subscription
- on-demand-subscription
- package-events
- package-money
- patron
type: string
example: subscription
x-enumNames:
- Subscription
- OnDemandSubscription
- PackageEvents
- PackageMoney
- Patron
locationId:
type: integer
nullable: true
example: null
disabled:
type: boolean
description: Indicates that the membership was disabled and shouldn't be shown
example: false
autoRenewing:
type: boolean
description: Indicates that membership renews after specific interval
example: true
minimumAutoRenews:
type: integer
nullable: true
description: >-
How many times membership has to renew before user can cancel
renewal
example: null
eventCredits:
type: integer
nullable: true
description: >-
For PACKAGE_EVENTS memberships, defines how many event credits are
included
example: null
moneyCredits:
type: number
nullable: true
description: For PACKAGE_MONEY memberships, defines how much money is included
example: null
duration:
type: integer
nullable: true
description: >-
For SUBSCRIPTION this is auto renew duration, for PACKAGE_* this is
expiration time
example: 1
durationUnit:
nullable: true
enum:
- days
- months
- years
type: string
example: months
x-enumNames:
- DAYS
- MONTHS
- YEARS
isActivatedOnFirstUse:
type: boolean
description: >-
If set to false, membership is activated upon purchase. When set to
true, membership is activated at the moment of the first purchase.
When the purchase is for booking in the future, the activation date
is set to the booking date.
example: false
activationDeadlineInDays:
type: integer
nullable: true
description: >-
Only applicable when isActivatedOnFirstUse=true. If set, the member
must activate the membership within this many days of purchase or it
expires automatically.
example: 21
hasFreeTrial:
type: boolean
example: false
freeTrialDurationInDays:
type: integer
example: 7
contractAgreement:
type: string
nullable: true
example: Contract agreement text
order:
type: integer
example: 1
isIntroOffer:
type: boolean
example: false
usageLimitForSessions:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. Maximum number of sessions
customer can book with this membership during one renewal period,
not used when combinedUsageLimitEnabled=true
example: 5
usageLimitForAppointments:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. Maximum number of appointments
customer can book with this membership during one renewal period,
not used when combinedUsageLimitEnabled=true
example: 2
combinedUsageLimitEnabled:
type: boolean
description: >-
Only applicable for SUBSCRIPTION. The usage limits of the
memberships are applied to sum of both bookings and appointments.
example: false
combinedUsageLimit:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. Combined maximum number of
bookings and appointments customer can book with this membership
during one renewal period, only used when
combinedUsageLimitEnabled=true
example: null
usageLimitRenewalEnabled:
type: boolean
description: >-
Only applicable for SUBSCRIPTION. Calculate usage limits differently
to renewal duration.
example: false
usageLimitRenewalDuration:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. Interval for which the usage
limits are calculated, only used when usageLimitRenewalEnabled=true
example: null
usageLimitRenewalDurationUnit:
nullable: true
enum:
- days
- months
- years
type: string
description: >-
Only applicable for SUBSCRIPTION. Interval for which the usage
limits are calculated, only used when usageLimitRenewalEnabled=true
example: null
x-enumNames:
- DAYS
- MONTHS
- YEARS
usageLimitRolloverEnabled:
type: boolean
description: >-
Only applicable for SUBSCRIPTION. When true and customer doesn't use
reach their usage limits, the rest is transferred to the customer
according to usageLimitRolloverMode
example: false
usageLimitRolloverMode:
nullable: true
enum:
- next-renewal
- event-credits
type: string
description: >-
Only applicable for SUBSCRIPTION. How should extra usage limits be
transferred to customer, either as package or as addition to next
renewal period. Only used when usageLimitRolloverEnabled=true
example: null
x-enumNames:
- NEXT_RENEWAL
- EVENT_CREDITS
usageLimitRolloverExpirationDuration:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. When should the extra limits /
package expire after rolling over. Only used when
usageLimitRolloverEnabled=true
example: null
usageLimitRolloverExpirationDurationUnit:
nullable: true
enum:
- days
- months
- years
type: string
description: >-
Only applicable for SUBSCRIPTION. When should the extra limits /
package expire after rolling over. Only used when
usageLimitRolloverEnabled=true
example: null
x-enumNames:
- DAYS
- MONTHS
- YEARS
startDate:
type: string
nullable: true
description: Explicit start date for memberships that have specific duration
example: '2022-01-01T00:00:00Z'
format: date-time
endDate:
type: string
nullable: true
description: Explicit end date for memberships that have specific duration
example: '2022-02-01T00:00:00Z'
format: date-time
featured:
type: boolean
description: Indicates that membership should be featured on checkout
example: false
priceType:
enum:
- fixed-price
- dynamic
type: string
example: fixed-price
x-enumNames:
- FIXED
- DYNAMIC
price:
type: number
nullable: true
description: Membership price for FIXED priceType
example: 955
minimumPrice:
type: number
nullable: true
description: Minimum membership price for DYNAMIC priceType
example: null
maximumPrice:
type: number
nullable: true
description: Maximum membership price for DYNAMIC priceType
example: null
recommendedPrice:
type: number
nullable: true
description: Recommended membership price for DYNAMIC priceType
example: null
priceIncludesTax:
type: boolean
description: Indicates if tax is already included in the price
example: true
taxRateInPercent:
type: number
nullable: true
description: Tax rate in percents
example: 20
freeTrialPrice:
type: number
description: Free trial price
example: 199
tags:
type: array
items:
$ref: '#/components/schemas/HostTagDto'
required:
- id
- name
- description
- type
- locationId
- disabled
- autoRenewing
- minimumAutoRenews
- eventCredits
- moneyCredits
- duration
- durationUnit
- isActivatedOnFirstUse
- activationDeadlineInDays
- hasFreeTrial
- freeTrialDurationInDays
- contractAgreement
- order
- isIntroOffer
- usageLimitForSessions
- usageLimitForAppointments
- combinedUsageLimitEnabled
- combinedUsageLimit
- usageLimitRenewalEnabled
- usageLimitRenewalDuration
- usageLimitRenewalDurationUnit
- usageLimitRolloverEnabled
- usageLimitRolloverMode
- usageLimitRolloverExpirationDuration
- usageLimitRolloverExpirationDurationUnit
- startDate
- endDate
- featured
- priceType
- price
- minimumPrice
- maximumPrice
- recommendedPrice
- priceIncludesTax
- taxRateInPercent
- freeTrialPrice
- tags
HostMemberNoteDto:
type: object
properties:
id:
type: integer
example: 5
createdAt:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
modifiedAt:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
type:
enum:
- regular
- soap
type: string
example: regular
x-enumNames:
- REGULAR
- SOAP
note:
type: string
description: note contents, can contain HTML
example: Note contents, can contain HTML
imageLink:
type: string
nullable: true
customerNoteTemplateId:
type: integer
nullable: true
example: 4
sessionBookingId:
type: integer
nullable: true
example: 2
appointmentReservationId:
type: integer
nullable: true
example: 1
productOrderId:
type: integer
nullable: true
example: 5
boughtMembershipId:
type: integer
nullable: true
example: 8
paymentTransactionId:
type: integer
nullable: true
example: 9
lockedAt:
type: string
nullable: true
example: '2021-01-01T00:00:00Z'
format: date-time
lockedByUserId:
type: integer
nullable: true
example: 3
required:
- id
- createdAt
- modifiedAt
- type
- note
- imageLink
- customerNoteTemplateId
- sessionBookingId
- appointmentReservationId
- productOrderId
- boughtMembershipId
- paymentTransactionId
- lockedAt
- lockedByUserId
MemberSessionBookingSessionDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Stretching with John
type:
enum:
- private
- special-event
- special-event-new
- retreat
- fitness
- course
- course-class
- semester
- recital
type: string
example: fitness
x-enumNames:
- PRIVATE
- SPECIAL_EVENT
- SPECIAL_EVENT_NEW
- RETREAT
- FITNESS
- COURSE
- COURSE_CLASS
- SEMESTER
- RECITAL
description:
type: string
nullable: true
example: >-
Our program is designed to help you increase your flexibility and
strength.
startsAt:
type: string
example: '2021-08-01T10:00:00Z'
format: date-time
endsAt:
type: string
example: '2021-08-01T11:00:00Z'
format: date-time
durationInMinutes:
type: integer
example: 60
minimum: 0
capacity:
type: integer
nullable: true
example: 10
minimum: 0
teacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
isRecurring:
type: boolean
example: false
isInPerson:
type: boolean
example: false
inPersonLocation:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberLocationDto'
onlineStreamUrl:
type: string
nullable: true
example: https://example.com/online-stream
onlineStreamPassword:
type: string
nullable: true
example: password123
bannerImageUrl:
type: string
nullable: true
example: https://example.com/banner.jpg
hostPhotoUrl:
type: string
nullable: true
example: https://example.com/host.jpg
isLocationPrivate:
type: boolean
example: false
required:
- id
- name
- type
- description
- startsAt
- endsAt
- durationInMinutes
- capacity
- teacher
- isRecurring
- isInPerson
- inPersonLocation
- onlineStreamUrl
- onlineStreamPassword
- bannerImageUrl
- hostPhotoUrl
- isLocationPrivate
HostMemberSessionBookingDto:
type: object
properties:
id:
type: integer
createdAt:
type: string
format: date-time
roomSpotId:
type: integer
nullable: true
checkedIn:
type: boolean
cancelledAt:
type: string
nullable: true
format: date-time
session:
$ref: '#/components/schemas/MemberSessionBookingSessionDto'
required:
- id
- createdAt
- roomSpotId
- checkedIn
- cancelledAt
- session
HostSaleMemberDto:
type: object
properties:
id:
type: integer
example: 1
firstName:
type: string
example: John
lastName:
type: string
example: Doe
required:
- id
- firstName
- lastName
HostSaleSessionDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Monday Morning Yoga
startsAt:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
endsAt:
type: string
example: '2021-01-01T01:00:00Z'
format: date-time
required:
- id
- name
- startsAt
- endsAt
HostSaleAppointmentDto:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: Stretching with John
required:
- id
- name
HostSaleProductDto:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: T-Shirt
required:
- id
- name
HostSaleProductVariantDto:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: M
required:
- id
- name
HostSaleOpenAreaDto:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: Gym A
required:
- id
- name
HostSaleItemDto:
type: object
properties:
id:
type: integer
example: 1
saleItemId:
type: integer
example: 1
itemType:
enum:
- membership
- session
- appointment
- product
- video
- course
- gift-card
- monthly-subscription
- custom-member-payment-plan-installment
- money-credit
- event-credit
- auto-attendance-penalty
- auto-attendance-penalty-retry-fee
- stripe-refund
- refund
- tips
- appointment-deposit
- tuition-installment
- tuition-registration-fee
- appointment-addon
- open-area-visit
- membership-freeze-fee
- membership-renewal-retry-fee
- membership-cancellation-fee
- membership-transfer-fee
- membership-joining-fee
- session-addon
type: string
example: membership
x-enumNames:
- MEMBERSHIP
- SESSION
- APPOINTMENT
- PRODUCT
- VIDEO
- COURSE
- GIFT_CARD
- MONTHLY_SUBSCRIPTION
- CUSTOM_MEMBER_PAYMENT_PLAN_INSTALLMENT
- MONEY_CREDIT
- EVENT_CREDIT
- AUTO_ATTENDANCE_PENALTY
- AUTO_ATTENDANCE_PENALTY_RETRY_FEE
- STRIPE_REFUND
- REFUND
- TIPS
- APPOINTMENT_DEPOSIT
- TUITION_INSTALLMENT
- TUITION_REGISTRATION_FEE
- APPOINTMENT_ADDON
- OPEN_AREA_VISIT
- MEMBERSHIP_FREEZE_FEE
- MEMBERSHIP_RENEWAL_RETRY_FEE
- MEMBERSHIP_CANCELLATION_FEE
- MEMBERSHIP_TRANSFER_FEE
- MEMBERSHIP_JOINING_FEE
- SESSION_ADDON
itemName:
type: string
example: Monthly Membership for Johns
descriptiveItemName:
type: string
example: Monthly Membership for Johns
payingMember:
$ref: '#/components/schemas/HostSaleMemberDto'
targetMember:
$ref: '#/components/schemas/HostSaleMemberDto'
session:
$ref: '#/components/schemas/HostSaleSessionDto'
appointment:
$ref: '#/components/schemas/HostSaleAppointmentDto'
product:
$ref: '#/components/schemas/HostSaleProductDto'
productVariant:
$ref: '#/components/schemas/HostSaleProductVariantDto'
openArea:
$ref: '#/components/schemas/HostSaleOpenAreaDto'
quantity:
type: number
example: 1
unitPriceExcludingTaxInCurrency:
type: string
example: '9.99'
unitTaxAmountInCurrency:
type: string
example: '0.43'
required:
- id
- saleItemId
- itemType
- itemName
- descriptiveItemName
- payingMember
- targetMember
- quantity
- unitPriceExcludingTaxInCurrency
- unitTaxAmountInCurrency
HostSalePaymentTransactionItemDto:
type: object
properties:
id:
type: integer
paymentMethodType:
enum:
- stripe
- stripe-becs
- stripe-nz-becs
- stripe-revolut-pay
- stripe-ideal
- stripe-ideal-sepa-direct-debit
- stripe-bancontact
- stripe-bancontact-sepa-direct-debit
- stripe-sepa-direct-debit
- stripe-ach-direct-debit
- stripe-acss-debit
- stripe-bacs-direct-debit
- stripe-refund
- membership
- cash
- free
- imported
- custom
- scheduled-stripe
- paypal
- xendit
- classpass
- gympass
- gift-card
- stripe-reader
- pay-later
- pay-at-start
- money-credit-correction
- money-credit-refund
- event-credit-correction
- event-credit-refund
- tuition
- urban-sports-club
- my-clubs
- referral-reward
- referral-gift
- campaign-sequence-action
- reward-points-corrections
- reward-points-earned
- reward-points-spent
- multiple-payment-methods
- yappy
- odin-card
- odin-ach
- odin-reader
type: string
example: custom
x-enumNames:
- STRIPE
- STRIPE_AU_BECS
- STRIPE_NZ_BECS
- STRIPE_REVOLUT_PAY
- STRIPE_IDEAL
- STRIPE_IDEAL_SEPA_DIRECT_DEBIT
- STRIPE_BANCONTACT
- STRIPE_BANCONTACT_SEPA_DIRECT_DEBIT
- STRIPE_SEPA_DIRECT_DEBIT
- STRIPE_ACH_DIRECT_DEBIT
- STRIPE_ACSS_DEBIT
- STRIPE_BACS_DIRECT_DEBIT
- STRIPE_REFUND
- MEMBERSHIP
- CASH
- FREE
- IMPORTED
- CUSTOM
- SCHEDULED_STRIPE
- PAYPAL
- XENDIT
- CLASSPASS
- GYMPASS
- GIFT_CARD
- STRIPE_READER
- PAY_LATER
- PAY_AT_START
- MONEY_CREDIT_CORRECTION
- MONEY_CREDIT_REFUND
- EVENT_CREDIT_CORRECTION
- EVENT_CREDIT_REFUND
- TUITION
- URBAN_SPORTS_CLUB
- MY_CLUBS
- REFERRAL_REWARD
- REFERRAL_GIFT
- CAMPAIGN_SEQUENCE_ACTION
- REWARD_POINTS_CORRECTIONS
- REWARD_POINTS_EARNED
- REWARD_POINTS_SPENT
- MULTIPLE_PAYMENT_METHODS
- YAPPY
- ODIN_CARD
- ODIN_ACH
- ODIN_READER
paymentMethodName:
type: string
description: >-
Additional name for the payment method used - for CUSTOM, it's
custom payment method name, for MEMBERSHIP it's the membership name
example: Custom payment method
amountInCurrencyWithoutTax:
type: string
example: '9.99'
taxAmountInCurrency:
type: string
example: '9.99'
required:
- id
- paymentMethodType
- amountInCurrencyWithoutTax
- taxAmountInCurrency
HostSalePaymentTransactionDto:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/HostSalePaymentTransactionItemDto'
required:
- items
HostSaleDto:
type: object
properties:
id:
type: integer
example: 1
saleDate:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
items:
type: array
items:
$ref: '#/components/schemas/HostSaleItemDto'
paymentTransaction:
$ref: '#/components/schemas/HostSalePaymentTransactionDto'
required:
- id
- saleDate
- items
- paymentTransaction
MemberInfoDto:
type: object
properties:
id:
type: integer
firstName:
type: string
example: John
lastName:
type: string
example: Doe
email:
type: string
example: john.doe@example.com
phoneNumber:
type: string
nullable: true
example: '1234567890'
pictureUrl:
type: string
nullable: true
example: https://example.com/picture.jpg
required:
- id
- firstName
- lastName
- email
- phoneNumber
- pictureUrl
HostSessionBookingDto:
type: object
properties:
id:
type: integer
member:
$ref: '#/components/schemas/MemberInfoDto'
roomSpotId:
type: integer
nullable: true
checkedIn:
type: boolean
ticketsBought:
type: integer
createdAt:
type: string
format: date-time
isRecurring:
type: boolean
example: false
recurringBookingId:
type: integer
nullable: true
cancelledAt:
type: string
nullable: true
format: date-time
required:
- id
- member
- roomSpotId
- checkedIn
- ticketsBought
- createdAt
- isRecurring
- recurringBookingId
- cancelledAt
HostSessionBookingCancelRequestDto:
type: object
properties:
refund:
type: boolean
disableNotifications:
type: boolean
isLateCancellation:
type: boolean
required:
- refund
- disableNotifications
- isLateCancellation
HostSessionRecurringBookingCancelRequestDto:
type: object
properties:
afterSessionId:
type: integer
example: 123456
SessionTagDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: VIP
isCustomerBadge:
type: boolean
example: false
badgeLabel:
type: string
nullable: true
example: VIP
badgeColor:
type: string
nullable: true
example: '#fe0000'
required:
- id
- name
- isCustomerBadge
- badgeLabel
- badgeColor
HostSessionDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Stretching with John
type:
enum:
- private
- special-event
- special-event-new
- retreat
- fitness
- course
- course-class
- semester
- recital
type: string
example: fitness
x-enumNames:
- PRIVATE
- SPECIAL_EVENT
- SPECIAL_EVENT_NEW
- RETREAT
- FITNESS
- COURSE
- COURSE_CLASS
- SEMESTER
- RECITAL
description:
type: string
nullable: true
example: >-
Our program is designed to help you increase your flexibility and
strength.
startsAt:
type: string
example: '2021-08-01T10:00:00Z'
format: date-time
endsAt:
type: string
example: '2021-08-01T11:00:00Z'
format: date-time
durationInMinutes:
type: integer
example: 60
minimum: 0
capacity:
type: integer
nullable: true
example: 10
minimum: 0
bookingCount:
type: integer
example: 10
minimum: 0
teacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
isRecurring:
type: boolean
example: false
isCancelled:
type: boolean
example: false
isInPerson:
type: boolean
example: false
isDraft:
type: boolean
example: false
inPersonLocation:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberLocationDto'
onlineStreamUrl:
type: string
nullable: true
example: https://example.com/online-stream
onlineStreamPassword:
type: string
nullable: true
example: password123
bannerImageUrl:
type: string
nullable: true
example: https://example.com/banner.jpg
hostPhotoUrl:
type: string
nullable: true
example: https://example.com/host.jpg
tags:
type: array
items:
$ref: '#/components/schemas/SessionTagDto'
required:
- id
- name
- type
- description
- startsAt
- endsAt
- durationInMinutes
- capacity
- bookingCount
- teacher
- isRecurring
- isCancelled
- isInPerson
- isDraft
- inPersonLocation
- onlineStreamUrl
- onlineStreamPassword
- bannerImageUrl
- hostPhotoUrl
HostTeacherDto:
type: object
properties:
id:
type: integer
example: 1
firstName:
type: string
example: John
lastName:
type: string
example: Doe
pictureUrl:
type: string
nullable: true
example: https://example.com/picture.jpg
email:
type: string
nullable: true
example: johndoe@teacher.com
required:
- id
- firstName
- lastName
- pictureUrl
- email
HostSessionDetailDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Monday Morning Yoga
startsAt:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
endsAt:
type: string
example: '2021-01-01T01:00:00Z'
format: date-time
capacity:
type: integer
nullable: true
example: 20
bookingCount:
type: integer
nullable: true
example: 12
waitlistCapacity:
type: integer
nullable: true
example: 20
waitlistBookingCount:
type: integer
nullable: true
example: 20
teacher:
nullable: true
allOf:
- $ref: '#/components/schemas/HostTeacherDto'
originalTeacher:
nullable: true
allOf:
- $ref: '#/components/schemas/HostTeacherDto'
additionalTeachers:
nullable: true
type: array
items:
$ref: '#/components/schemas/HostTeacherDto'
isRecurring:
type: boolean
example: false
isCancelled:
type: boolean
example: false
isInPerson:
type: boolean
example: false
isDraft:
type: boolean
example: false
inPersonLocation:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberLocationDto'
zoomLink:
type: string
nullable: true
example: https://zoom.us/j/1234567890
zoomMeetingId:
type: string
nullable: true
example: '1234567890'
zoomMeetingPassword:
type: string
nullable: true
example: '065809'
onlineStreamUrl:
type: string
nullable: true
example: https://example.com/online-stream
onlineStreamPassword:
type: string
nullable: true
example: password123
tags:
type: array
items:
$ref: '#/components/schemas/SessionTagDto'
required:
- id
- name
- startsAt
- endsAt
- capacity
- bookingCount
- waitlistCapacity
- waitlistBookingCount
- teacher
- originalTeacher
- additionalTeachers
- isRecurring
- isCancelled
- isInPerson
- isDraft
- inPersonLocation
- zoomLink
- zoomMeetingId
- zoomMeetingPassword
- onlineStreamUrl
- onlineStreamPassword
HostFreeSessionBookingResponseDto:
type: object
properties:
sessionBookingId:
type: integer
example: 1
sessionRecurringBookingId:
type: integer
example: 2
required:
- sessionBookingId
HostFreeSessionBookingRequestDto:
type: object
properties:
memberId:
type: integer
example: 1
createRecurringBooking:
type: boolean
example: true
required:
- memberId
HostFreeSessionBookingErrorResponseDto:
type: object
properties:
type:
type: string
enum:
- err-member-not-found
- err-member-not-assigned-to-host
- err-session-not-found
- err-session-not-provided-by-host
- err-customer-age-prevents-from-action
- err-missing-customer-date-of-birth
- err-missing-date-of-birth-setting
- err-invalid-date-of-birth-value
x-enumNames:
- ERR_MEMBER_NOT_FOUND
- ERR_MEMBER_NOT_ASSIGNED_TO_HOST
- ERR_SESSION_NOT_FOUND
- ERR_SESSION_NOT_PROVIDED_BY_HOST
- ERR_CUSTOMER_AGE_PREVENTS_FROM_ACTION
- ERR_MISSING_CUSTOMER_DATE_OF_BIRTH
- ERR_MISSING_DATE_OF_BIRTH_SETTINGS
- ERR_INVALID_DATE_OF_BIRTH_VALUE
message:
type: string
required:
- type
- message
HostSessionWaitlistBookingResponseDto:
type: object
properties:
waitlistBookingId:
type: integer
example: 1
required:
- waitlistBookingId
HostSessionWaitlistBookingRequestDto:
type: object
properties:
memberId:
type: integer
example: 1
useBoughtMembershipIds:
example:
- 2
type: array
items:
type: integer
required:
- memberId
HostSessionWaitlistBookingErrorResponseDto:
type: object
properties:
type:
type: string
enum:
- err-member-not-found
- err-member-not-assigned-to-host
- err-session-not-found
- err-session-not-provided-by-host
- err-waitlist-not-allowed
- err-waitlist-full
- err-member-already-on-waitlist
- err-customer-age-prevents-from-action
- err-missing-customer-date-of-birth
- err-missing-date-of-birth-setting
- err-invalid-date-of-birth-value
x-enumNames:
- ERR_MEMBER_NOT_FOUND
- ERR_MEMBER_NOT_ASSIGNED_TO_HOST
- ERR_SESSION_NOT_FOUND
- ERR_SESSION_NOT_PROVIDED_BY_HOST
- ERR_WAITLIST_NOT_ALLOWED
- ERR_WAITLIST_FULL
- ERR_MEMBER_ALREADY_ON_WAITLIST
- ERR_CUSTOMER_AGE_PREVENTS_FROM_ACTION
- ERR_MISSING_CUSTOMER_DATE_OF_BIRTH
- ERR_MISSING_DATE_OF_BIRTH_SETTINGS
- ERR_INVALID_DATE_OF_BIRTH_VALUE
message:
type: string
required:
- type
- message
ApiV2MemberAddressDto:
type: object
properties:
id:
type: integer
example: 1
address:
type: string
example: 153 Hunters Drive
zipcode:
type: string
example: '8513'
city:
type: string
example: New York
country:
type: string
example: US
createdAt:
type: string
example: '2021-09-22T00:00:00.000Z'
format: date-time
required:
- id
- address
- zipcode
- city
- country
- createdAt
ApiV2MemberAddressRequestDto:
type: object
properties:
address:
type: string
example: 153 Hunters Drive
maxLength: 2048
zipcode:
type: string
example: '8513'
maxLength: 255
city:
type: string
example: New York
maxLength: 255
country:
type: string
example: US
maxLength: 255
required:
- address
- zipcode
- city
- country
MemberBoughtMembershipsDto:
type: object
properties:
id:
type: integer
example: 1
type:
enum:
- subscription
- on-demand-subscription
- package-events
- package-money
- patron
type: string
example: subscription
x-enumNames:
- Subscription
- OnDemandSubscription
- PackageEvents
- PackageMoney
- Patron
startDate:
type: string
nullable: true
description: start date of the bought membership
example: '2021-01-01T00:00:00Z'
format: date-time
endDate:
type: string
nullable: true
description: expiration date of the bought membership
example: '2021-02-01T00:00:00Z'
format: date-time
isFrozen:
type: boolean
eventCreditsLeft:
type: number
nullable: true
description: number of event credits left, valid for PACKAGE_EVENTS
example: null
eventCreditsTotal:
type: number
nullable: true
description: >-
number of event credits originally included in the package, valid
for PACKAGE_EVENTS
example: null
moneyCreditsLeft:
type: number
nullable: true
description: number of money credits left, valid for PACKAGE_MONEY
example: null
moneyCreditsTotal:
type: number
nullable: true
description: >-
number of money credits originally included in the package, valid
for PACKAGE_MONEY
example: null
usageLimitForSessions:
type: number
nullable: true
description: >-
Non-null value indicates the membership has limit to number of
session bookings, only valid for SUBSCRIPTION
example: 5
usageLimitForAppointments:
type: number
nullable: true
description: >-
Non-null value indicates the membership has limit to number of
appointments booked, only valid for SUBSCRIPTION
example: 3
combinedUsageLimit:
type: number
nullable: true
description: >-
Non-null value indicates the membership has combined limits for
session and appointment bookings, only valid for SUBSCRIPTION
example: null
usedSessions:
type: number
nullable: true
description: only valid for SUBSCRIPTION with session-only usage limits
example: 1
usedAppointments:
type: number
nullable: true
description: only valid for SUBSCRIPTION with appointment-only usage limits
example: 2
combinedUsage:
type: number
nullable: true
description: only valid for SUBSCRIPTION with combined usage limits
example: null
usageLimitStartDate:
type: string
nullable: true
description: >-
date range for which the current usage is calculated for, only valid
for SUBSCRIPTION with usage limits
example: null
format: date-time
usageLimitEndDate:
type: string
nullable: true
description: >-
date range for which the current usage is calculated for, only valid
for SUBSCRIPTION with usage limits
example: null
format: date-time
membership:
nullable: true
description: >-
info about origin membership, it's possible the bought membership
has no origin membership
allOf:
- $ref: '#/components/schemas/HostMembershipBasicDto'
freeze:
nullable: true
description: >-
freeze details, if the membership is frozen or scheduled to
freeze/unfreeze
allOf:
- $ref: '#/components/schemas/ApiV2BoughtMembershipFreezeDto'
declinedRenewal:
nullable: true
description: latest failed renewal payment details for this membership, if any
allOf:
- $ref: '#/components/schemas/ApiV2BoughtMembershipDeclinedRenewalDto'
required:
- id
- type
- startDate
- endDate
- isFrozen
- eventCreditsLeft
- eventCreditsTotal
- moneyCreditsLeft
- moneyCreditsTotal
- usageLimitForSessions
- usageLimitForAppointments
- combinedUsageLimit
- usedSessions
- usedAppointments
- combinedUsage
- usageLimitStartDate
- usageLimitEndDate
- membership
- freeze
- declinedRenewal
MemberCheckoutCompatibleBoughtMembershipDto:
type: object
properties:
id:
type: integer
example: 1
type:
enum:
- subscription
- on-demand-subscription
- package-events
- package-money
- patron
type: string
example: subscription
x-enumNames:
- Subscription
- OnDemandSubscription
- PackageEvents
- PackageMoney
- Patron
startDate:
type: string
nullable: true
description: start date of the bought membership
example: '2021-01-01T00:00:00Z'
format: date-time
endDate:
type: string
nullable: true
description: expiration date of the bought membership
example: '2021-02-01T00:00:00Z'
format: date-time
eventCreditsLeft:
type: number
nullable: true
description: number of event credits left, valid for PACKAGE_EVENTS
example: null
eventCreditsTotal:
type: number
nullable: true
description: >-
number of event credits originally included in the package, valid
for PACKAGE_EVENTS
example: null
moneyCreditsLeft:
type: number
nullable: true
description: number of money credits left, valid for PACKAGE_MONEY
example: null
moneyCreditsTotal:
type: number
nullable: true
description: >-
number of money credits originally included in the package, valid
for PACKAGE_MONEY
example: null
membership:
nullable: true
description: >-
info about origin membership, it's possible the bought membership
has no origin membership
allOf:
- $ref: '#/components/schemas/HostMembershipBasicDto'
required:
- id
- type
- startDate
- endDate
- eventCreditsLeft
- eventCreditsTotal
- moneyCreditsLeft
- moneyCreditsTotal
- membership
MemberCheckoutCompatibleMembershipDto:
type: object
properties:
boughtMembership:
$ref: '#/components/schemas/MemberCheckoutCompatibleBoughtMembershipDto'
incompatibility:
enum:
- session-membership-excluded
- session-bought-membership-will-expire
- session-bought-membership-pack-will-expire
- session-bought-membership-already-used
- session-bought-membership-usage-limit-reached
- >-
session-bought-membership-usage-limit-reached-for-semester-or-course
- session-bought-membership-daily-limit-reached
- session-bought-membership-no-event-credits-left
- session-bought-membership-no-money-credits-left
- session-bought-membership-on-demand
- session-bought-membership-starts-later
- session-bought-membership-invalid-type
- session-bought-membership-disabled
- session-bought-membership-frozen
- session-subscription-ticket-limit
- unknown
type: string
x-enumNames:
- SESSION_MEMBERSHIP_EXCLUDED
- SESSION_BOUGHT_MEMBERSHIP_WILL_EXPIRE
- SESSION_BOUGHT_MEMBERSHIP_PACK_WILL_EXPIRE
- SESSION_BOUGHT_MEMBERSHIP_ALREADY_USED
- SESSION_BOUGHT_MEMBERSHIP_USAGE_LIMIT_REACHED
- >-
SESSION_BOUGHT_MEMBERSHIP_USAGE_LIMIT_REACHED_FOR_SEMESTER_OR_COURSE
- SESSION_BOUGHT_MEMBERSHIP_DAILY_LIMIT_REACHED
- SESSION_BOUGHT_MEMBERSHIP_NO_EVENT_CREDITS_LEFT
- SESSION_BOUGHT_MEMBERSHIP_NO_MONEY_CREDITS_LEFT
- SESSION_BOUGHT_MEMBERSHIP_ON_DEMAND
- SESSION_BOUGHT_MEMBERSHIP_STARTS_LATER
- SESSION_BOUGHT_MEMBERSHIP_INVALID_TYPE
- SESSION_BOUGHT_MEMBERSHIP_DISABLED
- SESSION_BOUGHT_MEMBERSHIP_FROZEN
- SESSION_BOUGHT_MEMBERSHIP_TICKET_LIMIT
- UNKNOWN
required:
- boughtMembership
MemberCheckoutCompatibleMembershipsDto:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/MemberCheckoutCompatibleMembershipDto'
required:
- items
MemberCheckoutCompatibleMembershipsRequestDto:
type: object
properties:
items:
type: array
items:
oneOf:
- $ref: '#/components/schemas/MemberCheckoutMembershipItemDto'
- $ref: '#/components/schemas/MemberCheckoutSessionItemDto'
homeLocationId:
type: integer
required:
- items
MemberCheckoutMembershipItemDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- subscription
membershipId:
type: integer
required:
- id
- type
- membershipId
MemberCheckoutSessionItemDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- session
sessionId:
type: integer
appliedPriceRuleIds:
type: array
items:
type: integer
required:
- id
- type
- sessionId
MemberCheckoutPricesItemDto:
type: object
properties:
id:
type: string
priceInCurrencyWithTax:
type: string
priceInCurrencyWithoutTax:
type: string
taxInCurrency:
type: string
required:
- id
- priceInCurrencyWithTax
- priceInCurrencyWithoutTax
- taxInCurrency
MemberCheckoutPricesResponseDto:
type: object
properties:
totalInCurrency:
type: string
itemsWithPrices:
type: array
items:
$ref: '#/components/schemas/MemberCheckoutPricesItemDto'
required:
- totalInCurrency
- itemsWithPrices
MemberCheckoutPricesRequestDto:
type: object
properties:
items:
type: array
items:
oneOf:
- $ref: '#/components/schemas/MemberCheckoutMembershipItemDto'
- $ref: '#/components/schemas/MemberCheckoutSessionItemDto'
homeLocationId:
type: integer
paymentMethods:
type: array
items:
oneOf:
- $ref: '#/components/schemas/MemberPaymentMethodMembershipDto'
- $ref: '#/components/schemas/MemberPaymentMethodSavedPaymentMethodDto'
required:
- items
- paymentMethods
MemberCheckoutResponseDto:
type: object
properties:
purchasedItems:
type: array
items:
oneOf:
- $ref: '#/components/schemas/MemberCheckoutPurchasedSessionDto'
- $ref: '#/components/schemas/MemberCheckoutPurchasedMembershipDto'
- $ref: '#/components/schemas/MemberCheckoutPurchasedAppointmentDto'
- $ref: '#/components/schemas/MemberCheckoutPurchasedProductDto'
- $ref: '#/components/schemas/MemberCheckoutPurchasedGiftCardDto'
- $ref: '#/components/schemas/MemberCheckoutPurchasedMoneyCreditsDto'
- $ref: '#/components/schemas/MemberCheckoutPurchasedEventCreditsDto'
required:
- purchasedItems
MemberCheckoutMembershipItemWithPriceDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- subscription
membershipId:
type: integer
attemptedPriceInCurrency:
type: string
required:
- id
- type
- membershipId
- attemptedPriceInCurrency
MemberCheckoutSessionItemWithPriceDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- session
sessionId:
type: integer
appliedPriceRuleIds:
type: array
items:
type: integer
attemptedPriceInCurrency:
type: string
required:
- id
- type
- sessionId
- attemptedPriceInCurrency
MemberPaymentMethodMembershipDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- membership
boughtMembershipId:
type: integer
required:
- id
- type
- boughtMembershipId
MemberPaymentMethodSavedPaymentMethodDto:
type: object
properties:
id:
type: string
type:
type: string
enum:
- saved_payment_method
savedPaymentMethodId:
type: integer
required:
- id
- type
- savedPaymentMethodId
MemberCheckoutPurchasedSessionDto:
type: object
properties:
type:
type: string
enum:
- session
sessionBookingId:
type: integer
required:
- type
- sessionBookingId
MemberCheckoutPurchasedMembershipDto:
type: object
properties:
type:
type: string
enum:
- membership
boughtMembershipId:
type: integer
required:
- type
- boughtMembershipId
MemberCheckoutPurchasedAppointmentDto:
type: object
properties:
type:
type: string
enum:
- appointment
appointmentTransactionId:
type: integer
required:
- type
- appointmentTransactionId
MemberCheckoutPurchasedProductDto:
type: object
properties:
type:
type: string
enum:
- product
productOrderId:
type: integer
required:
- type
- productOrderId
MemberCheckoutPurchasedGiftCardDto:
type: object
properties:
type:
type: string
enum:
- gift-card
giftCardId:
type: integer
required:
- type
- giftCardId
MemberCheckoutPurchasedMoneyCreditsDto:
type: object
properties:
type:
type: string
enum:
- money-credit
numberOfMoneyCredits:
type: number
required:
- type
- numberOfMoneyCredits
MemberCheckoutPurchasedEventCreditsDto:
type: object
properties:
type:
type: string
enum:
- event-credit
numberOfEventCredits:
type: number
required:
- type
- numberOfEventCredits
MemberCheckoutRequestDto:
type: object
properties:
items:
type: array
items:
oneOf:
- $ref: '#/components/schemas/MemberCheckoutMembershipItemWithPriceDto'
- $ref: '#/components/schemas/MemberCheckoutSessionItemWithPriceDto'
homeLocationId:
type: integer
paymentMethods:
type: array
items:
oneOf:
- $ref: '#/components/schemas/MemberPaymentMethodMembershipDto'
- $ref: '#/components/schemas/MemberPaymentMethodSavedPaymentMethodDto'
required:
- items
- paymentMethods
MemberCheckoutErrorResponseDto:
type: object
properties:
type:
enum:
- err-no-payment-methods
- err-no-items
- err-too-many-items
- err-combined-payment-methods
- err-cannot-pay-for-membership-with-membership
- err-multiple-membership-types
- err-multiple-subscriptions
- err-saved-card-not-found
- err-cart-validation-failed
- err-payment-failed
- err-duplicate-membership-payment-methods
- err-invalid-membership-payment-method
- err-incompatible-membership
- err-unsupported-payment-methods
- err-session-has-invalid-state
- err-session-has-passed
- err-session-sales-ended
- err-session-dropins-not-allowed
- err-session-is-full
- err-session-purchase-limit-reached
- err-session-access-restricted
- err-duplicate-item-ids
- err-duplicate-payment-method-ids
- err-unsupported-item-type
- err-missing-customer-date-of-birth
- err-customer-age-prevents-from-action
type: string
x-enumNames:
- ERR_NO_PAYMENT_METHODS
- ERR_NO_ITEMS
- ERR_TOO_MANY_ITEMS
- ERR_COMBINED_PAYMENT_METHODS
- ERR_CANNOT_PAY_FOR_MEMBERSHIP_WITH_MEMBERSHIP
- ERR_MULTIPLE_MEMBERSHIP_TYPES
- ERR_MULTIPLE_SUBSCRIPTIONS
- ERR_SAVED_CARD_NOT_FOUND
- ERR_CART_VALIDATION_FAILED
- ERR_PAYMENT_FAILED
- ERR_DUPLICATE_MEMBERSHIP_PAYMENT_METHODS
- ERR_INVALID_MEMBERSHIP_PAYMENT_METHOD
- ERR_INCOMPATIBLE_MEMBERSHIP
- ERR_UNSUPPORTED_PAYMENT_METHODS
- ERR_SESSION_HAS_INVALID_STATE
- ERR_SESSION_HAS_PASSED
- ERR_SESSION_SALES_ENDED
- ERR_SESSION_DROPINS_NOT_ALLOWED
- ERR_SESSION_IS_FULL
- ERR_SESSION_PURCHASE_LIMIT_REACHED
- ERR_SESSION_ACCESS_RESTRICTED
- ERR_DUPLICATE_ITEM_IDS
- ERR_DUPLICATE_PAYMENT_METHOD_IDS
- ERR_UNSUPPORTED_ITEM_TYPE
- ERR_MISSING_CUSTOMER_DATE_OF_BIRTH
- ERR_CUSTOMER_IS_NOT_ELIGIBLE_DUE_TO_AGE_RESTRICTION
message:
type: string
required:
- type
- message
ApiV2MemberUpdateRequestDto:
type: object
properties:
firstName:
type: string
example: John
minLength: 1
maxLength: 100
lastName:
type: string
example: Doe
minLength: 1
maxLength: 100
required:
- firstName
- lastName
ApiV2MemberUpdateEmailRequestDto:
type: object
properties:
email:
type: string
example: john.doe@example.com
required:
- email
ApiV2MemberUpdatePhoneNumberRequestDto:
type: object
properties:
phoneNumber:
type: string
example: '1234567890'
required:
- phoneNumber
MemberHostLocationDto:
type: object
properties:
id:
type: integer
example: 5
parentLocationId:
type: integer
nullable: true
example: null
name:
type: string
nullable: true
example: Brooklyn Location
timeZone:
type: string
nullable: true
example: America/New_York
fullAddress:
type: string
nullable: true
description: Full location address
example: 96 North Country Club Street, Brooklyn, NY 11233
address:
type: string
nullable: true
example: 96 North Country Club Street
city:
type: string
nullable: true
example: Brooklyn
countryCode:
type: string
nullable: true
example: NY
zipCode:
type: string
nullable: true
example: '11233'
latitude:
type: number
nullable: true
example: 40.6453448
longitude:
type: number
nullable: true
example: -74.0275687
isPhysical:
type: boolean
nullable: true
example: true
required:
- id
- parentLocationId
- name
- timeZone
- fullAddress
- address
- city
- countryCode
- zipCode
- latitude
- longitude
- isPhysical
MemberHostMembershipDto:
type: object
properties:
id:
type: integer
example: 5
name:
type: string
example: Monthly Membership
description:
type: string
nullable: true
example: Monthly membership with unlimited access to all classes.
type:
enum:
- subscription
- on-demand-subscription
- package-events
- package-money
- patron
type: string
example: subscription
x-enumNames:
- Subscription
- OnDemandSubscription
- PackageEvents
- PackageMoney
- Patron
locationId:
type: integer
nullable: true
example: null
disabled:
type: boolean
description: Indicates that the membership was disabled and shouldn't be shown
example: false
autoRenewing:
type: boolean
description: Indicates that membership renews after specific interval
example: true
minimumAutoRenews:
type: integer
nullable: true
description: >-
How many times membership has to renew before user can cancel
renewal
example: null
eventCredits:
type: integer
nullable: true
description: >-
For PACKAGE_EVENTS memberships, defines how many event credits are
included
example: null
moneyCredits:
type: number
nullable: true
description: For PACKAGE_MONEY memberships, defines how much money is included
example: null
duration:
type: integer
nullable: true
description: >-
For SUBSCRIPTION this is auto renew duration, for PACKAGE_* this is
expiration time
example: 1
durationUnit:
nullable: true
enum:
- days
- months
- years
type: string
example: months
x-enumNames:
- DAYS
- MONTHS
- YEARS
isActivatedOnFirstUse:
type: boolean
description: >-
If set to false, membership is activated upon purchase. When set to
true, membership is activated at the moment of the first purchase.
When the purchase is for booking in the future, the activation date
is set to the booking date.
example: false
activationDeadlineInDays:
type: integer
nullable: true
description: >-
Only applicable when isActivatedOnFirstUse=true. If set, the member
must activate the membership within this many days of purchase or it
expires automatically.
example: 21
hasFreeTrial:
type: boolean
example: false
freeTrialDurationInDays:
type: integer
example: 7
contractAgreement:
type: string
nullable: true
example: Contract agreement text
order:
type: integer
example: 1
isIntroOffer:
type: boolean
example: false
usageLimitForSessions:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. Maximum number of sessions
customer can book with this membership during one renewal period,
not used when combinedUsageLimitEnabled=true
example: 5
usageLimitForAppointments:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. Maximum number of appointments
customer can book with this membership during one renewal period,
not used when combinedUsageLimitEnabled=true
example: 2
combinedUsageLimitEnabled:
type: boolean
description: >-
Only applicable for SUBSCRIPTION. The usage limits of the
memberships are applied to sum of both bookings and appointments.
example: false
combinedUsageLimit:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. Combined maximum number of
bookings and appointments customer can book with this membership
during one renewal period, only used when
combinedUsageLimitEnabled=true
example: null
usageLimitRenewalEnabled:
type: boolean
description: >-
Only applicable for SUBSCRIPTION. Calculate usage limits differently
to renewal duration.
example: false
usageLimitRenewalDuration:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. Interval for which the usage
limits are calculated, only used when usageLimitRenewalEnabled=true
example: null
usageLimitRenewalDurationUnit:
nullable: true
enum:
- days
- months
- years
type: string
description: >-
Only applicable for SUBSCRIPTION. Interval for which the usage
limits are calculated, only used when usageLimitRenewalEnabled=true
example: null
x-enumNames:
- DAYS
- MONTHS
- YEARS
usageLimitRolloverEnabled:
type: boolean
description: >-
Only applicable for SUBSCRIPTION. When true and customer doesn't use
reach their usage limits, the rest is transferred to the customer
according to usageLimitRolloverMode
example: false
usageLimitRolloverMode:
nullable: true
enum:
- next-renewal
- event-credits
type: string
description: >-
Only applicable for SUBSCRIPTION. How should extra usage limits be
transferred to customer, either as package or as addition to next
renewal period. Only used when usageLimitRolloverEnabled=true
example: null
x-enumNames:
- NEXT_RENEWAL
- EVENT_CREDITS
usageLimitRolloverExpirationDuration:
type: number
nullable: true
description: >-
Only applicable for SUBSCRIPTION. When should the extra limits /
package expire after rolling over. Only used when
usageLimitRolloverEnabled=true
example: null
usageLimitRolloverExpirationDurationUnit:
nullable: true
enum:
- days
- months
- years
type: string
description: >-
Only applicable for SUBSCRIPTION. When should the extra limits /
package expire after rolling over. Only used when
usageLimitRolloverEnabled=true
example: null
x-enumNames:
- DAYS
- MONTHS
- YEARS
startDate:
type: string
nullable: true
description: Explicit start date for memberships that have specific duration
example: '2022-01-01T00:00:00Z'
format: date-time
endDate:
type: string
nullable: true
description: Explicit end date for memberships that have specific duration
example: '2022-02-01T00:00:00Z'
format: date-time
featured:
type: boolean
description: Indicates that membership should be featured on checkout
example: false
priceType:
enum:
- fixed-price
- dynamic
type: string
example: fixed-price
x-enumNames:
- FIXED
- DYNAMIC
price:
type: number
nullable: true
description: In cents, membership price for FIXED priceType
example: 955
minimumPrice:
type: integer
nullable: true
description: In cents, minimum membership price for DYNAMIC priceType
example: null
maximumPrice:
type: integer
nullable: true
description: In cents, maximum membership price for DYNAMIC priceType
example: null
recommendedPrice:
type: integer
nullable: true
description: In cents, recommended membership price for DYNAMIC priceType
example: null
priceIncludesTax:
type: boolean
description: Indicates if tax is already included in the price
example: true
taxRateInPercent:
type: number
nullable: true
description: Tax rate in percents
example: 20
freeTrialPrice:
type: integer
description: in cents
example: 199
tags:
type: array
items:
$ref: '#/components/schemas/HostTagDto'
required:
- id
- name
- description
- type
- locationId
- disabled
- autoRenewing
- minimumAutoRenews
- eventCredits
- moneyCredits
- duration
- durationUnit
- isActivatedOnFirstUse
- activationDeadlineInDays
- hasFreeTrial
- freeTrialDurationInDays
- contractAgreement
- order
- isIntroOffer
- usageLimitForSessions
- usageLimitForAppointments
- combinedUsageLimitEnabled
- combinedUsageLimit
- usageLimitRenewalEnabled
- usageLimitRenewalDuration
- usageLimitRenewalDurationUnit
- usageLimitRolloverEnabled
- usageLimitRolloverMode
- usageLimitRolloverExpirationDuration
- usageLimitRolloverExpirationDurationUnit
- startDate
- endDate
- featured
- priceType
- price
- minimumPrice
- maximumPrice
- recommendedPrice
- priceIncludesTax
- taxRateInPercent
- freeTrialPrice
- tags
MemberHostSessionDto:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: Stretching with John
type:
enum:
- private
- special-event
- special-event-new
- retreat
- fitness
- course
- course-class
- semester
- recital
type: string
example: fitness
x-enumNames:
- PRIVATE
- SPECIAL_EVENT
- SPECIAL_EVENT_NEW
- RETREAT
- FITNESS
- COURSE
- COURSE_CLASS
- SEMESTER
- RECITAL
description:
type: string
nullable: true
example: Our stretching class is a great way to start your day.
startsAt:
type: string
example: '2021-01-01T05:00:00Z'
format: date-time
endsAt:
type: string
example: '2021-01-01T06:00:00Z'
format: date-time
durationInMinutes:
type: integer
example: 60
capacity:
type: integer
nullable: true
description: Maximum session capacity, NULL means unlimited
example: 10
minimum: 0
participants:
type: integer
description: How many bookings the session already has
example: 1
waitlistEnabled:
type: boolean
example: true
waitlistCapacity:
type: integer
nullable: true
description: >-
Maximum number of people on the waitlist if the waitlist is enabled.
NULL means unlimited
example: 5
salesCutoffInMinutes:
type: number
nullable: true
description: How long before the session start the bookings sale stops
example: 10
isCancelled:
type: boolean
example: false
priceType:
enum:
- fixed-price
- dynamic
type: string
example: fixed-price
x-enumNames:
- FIXED
- DYNAMIC
fixedTicketPrice:
type: number
example: 955
dynamicTicketPriceMin:
type: number
nullable: true
example: null
dynamicTicketPriceMax:
type: number
nullable: true
example: null
dynamicTicketFreeOptionEnabled:
type: boolean
nullable: true
example: null
teacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
originalTeacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
additionalTeachers:
type: array
items:
$ref: '#/components/schemas/MemberTeacherDto'
isRecurring:
type: boolean
example: false
isInPerson:
type: boolean
example: false
inPersonLocation:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberLocationDto'
bannerImageUrl:
type: string
nullable: true
example: https://example.com/image.jpg
hostPhotoUrl:
type: string
nullable: true
example: https://example.com/image.jpg
onlineStreamUrl:
type: string
nullable: true
example: https://example.com/online-stream
onlineStreamPassword:
type: string
nullable: true
example: password123
required:
- id
- name
- type
- description
- startsAt
- endsAt
- durationInMinutes
- capacity
- participants
- waitlistEnabled
- waitlistCapacity
- salesCutoffInMinutes
- isCancelled
- priceType
- fixedTicketPrice
- dynamicTicketPriceMin
- dynamicTicketPriceMax
- dynamicTicketFreeOptionEnabled
- teacher
- originalTeacher
- additionalTeachers
- isRecurring
- isInPerson
- inPersonLocation
- bannerImageUrl
- hostPhotoUrl
- onlineStreamUrl
- onlineStreamPassword
HandwrittenElementPointDto:
type: object
properties:
x:
type: integer
minimum: 0
'y':
type: integer
minimum: 0
required:
- x
- 'y'
HandwrittenElementPathDto:
type: object
properties:
points:
type: array
items:
$ref: '#/components/schemas/HandwrittenElementPointDto'
required:
- points
HandwrittenElementDto:
type: object
properties:
paths:
type: array
items:
$ref: '#/components/schemas/HandwrittenElementPathDto'
required:
- paths
MemberSignableDocumentDto:
type: object
properties:
predefinedWaiverType:
enum:
- waiver
- membership-waiver
- child-waiver
- privacy-policy
type: string
x-enumNames:
- CUSTOMER_WAIVER
- MEMBERSHIP_TERMS_AND_CONDITIONS
- CHILD_BOOKING_WAIVER
- PRIVACY_POLICY
customWaiverId:
type: integer
type:
enum:
- predefinedWaiver
- customWaiver
type: string
x-enumNames:
- PredefinedWaiver
- CustomWaiver
name:
type: string
nullable: true
content:
type: string
nullable: true
signedAt:
type: string
nullable: true
format: date-time
signatureStatus:
enum:
- signed
- unsigned
- signature-expired
type: string
x-enumNames:
- SIGNED
- UNSIGNED
- SIGNATURE_EXPIRED
simpleSignature:
type: string
handwrittenSignature:
$ref: '#/components/schemas/HandwrittenElementDto'
required:
- type
- name
- content
- signedAt
- signatureStatus
MemberSignableDocumentsResponseDto:
type: object
properties:
documents:
type: array
items:
$ref: '#/components/schemas/MemberSignableDocumentDto'
required:
- documents
MemberSignDocumentRequestDto:
type: object
properties:
customWaiverIdsToSign:
description: Customer waiver IDs to sign, can be empty
type: array
items:
type: integer
predefinedWaiverTypesToSign:
type: array
items:
enum:
- waiver
- membership-waiver
- child-waiver
- privacy-policy
type: string
x-enumNames:
- CUSTOMER_WAIVER
- MEMBERSHIP_TERMS_AND_CONDITIONS
- CHILD_BOOKING_WAIVER
- PRIVACY_POLICY
description: Predefined waiver types to sign, can be empty
simpleSignature:
type: string
description: >-
This signature can be a customer name; useful for people who prefer
typing instead of drawing their own signature by hand
handwrittenSignature:
description: >-
This signature contains a representation of handwritten vector
element (array of SVG paths), as produced by Konva
allOf:
- $ref: '#/components/schemas/HandwrittenElementDto'
ApiV2MemberSavedPaymentMethodDto:
type: object
properties:
id:
type: integer
example: 1
type:
type: string
enum:
- card
example: card
x-enumNames:
- CARD
last4:
type: string
nullable: true
description: Last 4 digits
example: '4242'
expiresAt:
type: string
nullable: true
description: Expiration date in YYYY-MM-DD format
example: '2022-12-31'
required:
- id
- type
- last4
- expiresAt
ApiV2MemberSavedPaymentMethodsResponseDto:
type: object
properties:
paymentMethods:
type: array
items:
$ref: '#/components/schemas/ApiV2MemberSavedPaymentMethodDto'
required:
- paymentMethods
ApiV2MemberManagePaymentMethodsResponseDto:
type: object
properties:
addPaymentMethodPageUrl:
type: string
description: URL to redirect for adding a payment method
required:
- addPaymentMethodPageUrl
ApiV2MemberManagePaymentMethodsRequestDto:
type: object
properties:
redirectUrl:
type: string
description: URL to redirect after the add operation is completed
redirectUrlOnCancel:
type: string
description: Optional URL to redirect on cancel
required:
- redirectUrl
MemberDeleteSavedPaymentMethodErrorResponseDto:
type: object
properties:
type:
enum:
- err-active-non-cancellable-subscription
- err-no-payment-method-found
type: string
x-enumNames:
- ERR_ACTIVE_NON_CANCELLABLE_SUBSCRIPTION
- ERR_NO_PAYMENT_METHOD_FOUND
message:
type: string
required:
- type
- message
MemberSessionBookingDto:
type: object
properties:
id:
type: integer
example: 1
createdAt:
type: string
example: '2021-08-01T10:00:00Z'
format: date-time
roomSpotId:
type: integer
nullable: true
checkedIn:
type: boolean
cancelledAt:
type: string
nullable: true
example: null
format: date-time
isRecurring:
type: boolean
example: false
session:
$ref: '#/components/schemas/MemberSessionBookingSessionDto'
required:
- id
- createdAt
- roomSpotId
- checkedIn
- cancelledAt
- isRecurring
- session
DateRangeDto:
type: object
properties:
from:
type: string
example: '2026-01-01T00:00:00Z'
format: date-time
to:
type: string
example: '2026-01-01T00:00:00Z'
format: date-time
required:
- from
- to
ApiV2HostReportRunTotalSalesReportRunParametersDto:
type: object
properties:
reportType:
enum:
- total-sales
type: string
x-enumNames:
- TEACHER_PAYROLL
- TEACHER_PAYROLL_UNLIMITED
- ADDITIONAL_TEACHER_PAYROLL
- COMBINED_TEACHER_PAYROLL
- TOTAL_SALES
- VIDEO_VIEWS
- STAFF_TIME_TRACKING
- SERVICE_SALES
- SALES_BY_CATEGORY
- SALES_BY_APPOINTMENT
- APPOINTMENTS_PAYROLL
- APPOINTMENTS_ATTENDANCE
- RETENTION
- PRODUCT_SALES
- PRODUCT_INVENTORY
- ON_DEMAND_SALES
- MEMBERSHIP_SALES
- DISCOUNT_CODE_SALES
- CUSTOMER_LIST
- CUSTOMER_FIELD_VALUES
- CUSTOMER_BIRTHDAYS
- COURSE_SALES
- ATTENDANCE
- DECLINED_RENEWALS
- FAILED_DIRECT_DEBIT_PAYMENTS
- UPCOMING_RENEWALS
- MEMBERSHIP_RENEWALS
- CARDS_EXPIRATION
- PAYMENT_PLANS_PAYMENTS
- PRODUCT_SALES_BY_PRODUCT
- PRODUCT_SALES_BY_SUPPLIER
- MEMBERSHIP_CANCELLATIONS
- ADDITIONAL_BOOKINGS
- TOTAL_BOOKINGS
- NEW_VISITORS
- NEW_MEMBERS
- NEW_CUSTOMERS
- PRODUCT_SALES_BY_CATEGORY
- REFUNDS
- OUTSTANDING_MONEY_CREDITS
- OUTSTANDING_EVENT_CREDITS
- MEMBERSHIP_STATS
- AUTOSUBSTITUTE_RESPONSES
- LATE_CANCELLATIONS
- SALES_BY_TAGS
- FROZEN_MEMBERSHIPS
- STAFF_HOURS
- TEACHERS_BY_PAYRATE
- NO_SHOWS
- APPOINTMENT_NO_SHOWS
- SESSION_BOOKINGS
- APPOINTMENT_BOOKINGS
- UPCOMING_MEMBERSHIPS_EXPIRATION
- MEMBERSHIPS_EXPIRATION
- NOT_ACTIVATED_MEMBERSHIPS
- UNPAID_BOOKINGS
- FAILED_PAYMENT_PLAN_PAYMENTS
- FAILED_TUITION_INSTALLMENT_PAYMENTS
- NON_RETURNING_CUSTOMERS
- NON_MEMBER_CUSTOMERS
- MEMBER_CUSTOMERS
- ACTIVE_MEMBERS
- TOTAL_VISITS
- MEMBER_KEY_SCAN_IDENTIFICATIONS
- VISITS_OVERVIEW
- RECURRING_EVENT_ATTENDANCE
- INTRO_OFFERS_SALES
- INTRO_OFFERS_UPCOMING_EXPIRATIONS
- INTRO_OFFERS_EXPIRED
- INTRO_OFFERS_CONVERSIONS
- CUSTOMER_LEADS_CONVERSIONS
- GIFT_CARD_SALES
- UNSUBSCRIBED_CUSTOMERS_FROM_MARKETING_EMAILS
- CUSTOMER_ATTENDANCE_ANALYSIS
- STUDIO_GROW_KPI
- CUSTOMER_REFERRAL_REWARDS
- PAYROLL
- CUSTOMER_LEADS_FIELD_VALUES
- TIP
- CUSTOMER_LEADS_KPI
- CUSTOMER_LEADS_KPI_NMS
- FACEBOOK_INSTAGRAM_ROI_CALCULATOR
- GUEST_PASS_USAGE_SESSIONS
- CUSTOMER_RANKINGS_MEMBERS
- COMMISSIONS
- FRANCHISE_FEES
- APPOINTMENT_BOOKING_CANCELLATIONS
- NEW_LEADS_AND_CUSTOMERS
- APPOINTMENT_VISITORS_WITHOUT_UPCOMING_BOOKINGS
- COURSE_QUIZ_SUBMISSIONS
- APPOINTMENT_RESERVATIONS
- BUSINESS_AT_GLANCE
- DECLINED_PENALTY_CHARGES
- APPOINTMENT_ADDONS
- SPOTFILLERS
- FRANCHISE_SALES
- APPOINTMENT_SERVICE_AND_RETAIL_ANALYSIS_BY_EMPLOYEE
- MOLONI_TRANSACTIONS
- APPOINTMENTS_PRODUCTS_STAFF_PERFORMANCE
- FRANCHISE_GIFT_CARD_RECONCILIATION
- SESSION_OCCUPANCY
- REVENUE_BREAKDOWN
- OPEN_AREA_VISITS
- SALES_BY_OPEN_AREA_VISIT
- SESSION_ADDONS
- MEMBERSHIP_RECONCILIATION
- REWARDS_POINTS_MOVEMENTS
- REWARDS_POINTS_BALANCES
hostId:
type: integer
dateRange:
$ref: '#/components/schemas/DateRangeDto'
locationId:
type: integer
tagId:
type: integer
moneyCreditSalesFilter:
enum:
- noFilter
- filterOutMoneyCreditSales
- filterOutSalesPaidByMoneyCredits
type: string
x-enumNames:
- NO_FILTER
- FILTER_OUT_MONEY_CREDIT_SALES
- FILTER_OUT_SALES_PAID_BY_MONEY_CREDITS
includeRefunds:
type: boolean
saleTypes:
type: array
items:
enum:
- membership
- session
- appointment
- product
- video
- course
- gift-card
- monthly-subscription
- custom-member-payment-plan-installment
- money-credit
- event-credit
- auto-attendance-penalty
- auto-attendance-penalty-retry-fee
- stripe-refund
- refund
- tips
- appointment-deposit
- tuition-installment
- tuition-registration-fee
- appointment-addon
- open-area-visit
- membership-freeze-fee
- membership-cancellation-fee
- membership-renewal-retry-fee
- membership-transfer-fee
- membership-joining-fee
- session-addon
type: string
x-enumNames:
- MEMBERSHIP
- SESSION
- APPOINTMENT
- PRODUCT
- VIDEO
- COURSE
- GIFT_CARD
- MONTHLY_SUBSCRIPTION
- CUSTOM_MEMBER_PAYMENT_PLAN_INSTALLMENT
- MONEY_CREDIT
- EVENT_CREDIT
- AUTO_ATTENDANCE_PENALTY
- AUTO_ATTENDANCE_PENALTY_RETRY_FEE
- STRIPE_REFUND
- REFUND
- TIPS
- APPOINTMENT_DEPOSIT
- TUITION_INSTALLMENT
- TUITION_REGISTRATION_FEE
- APPOINTMENT_ADDON
- OPEN_AREA_VISIT
- MEMBERSHIP_FREEZE_FEE
- MEMBERSHIP_CANCELLATION_FEE
- MEMBERSHIP_RENEWAL_RETRY_FEE
- MEMBERSHIP_TRANSFER_FEE
- MEMBERSHIP_JOINING_FEE
- SESSION_ADDON
excludeGiftCardPaymentMethod:
type: boolean
excludeTransactionFeesInSaleValue:
type: boolean
required:
- reportType
- hostId
- dateRange
ApiV2HostReportRunFranchiseGiftCardReconciliationReportRunParametersDto:
type: object
properties:
reportType:
enum:
- franchise-gift-card-reconciliation
type: string
x-enumNames:
- TEACHER_PAYROLL
- TEACHER_PAYROLL_UNLIMITED
- ADDITIONAL_TEACHER_PAYROLL
- COMBINED_TEACHER_PAYROLL
- TOTAL_SALES
- VIDEO_VIEWS
- STAFF_TIME_TRACKING
- SERVICE_SALES
- SALES_BY_CATEGORY
- SALES_BY_APPOINTMENT
- APPOINTMENTS_PAYROLL
- APPOINTMENTS_ATTENDANCE
- RETENTION
- PRODUCT_SALES
- PRODUCT_INVENTORY
- ON_DEMAND_SALES
- MEMBERSHIP_SALES
- DISCOUNT_CODE_SALES
- CUSTOMER_LIST
- CUSTOMER_FIELD_VALUES
- CUSTOMER_BIRTHDAYS
- COURSE_SALES
- ATTENDANCE
- DECLINED_RENEWALS
- FAILED_DIRECT_DEBIT_PAYMENTS
- UPCOMING_RENEWALS
- MEMBERSHIP_RENEWALS
- CARDS_EXPIRATION
- PAYMENT_PLANS_PAYMENTS
- PRODUCT_SALES_BY_PRODUCT
- PRODUCT_SALES_BY_SUPPLIER
- MEMBERSHIP_CANCELLATIONS
- ADDITIONAL_BOOKINGS
- TOTAL_BOOKINGS
- NEW_VISITORS
- NEW_MEMBERS
- NEW_CUSTOMERS
- PRODUCT_SALES_BY_CATEGORY
- REFUNDS
- OUTSTANDING_MONEY_CREDITS
- OUTSTANDING_EVENT_CREDITS
- MEMBERSHIP_STATS
- AUTOSUBSTITUTE_RESPONSES
- LATE_CANCELLATIONS
- SALES_BY_TAGS
- FROZEN_MEMBERSHIPS
- STAFF_HOURS
- TEACHERS_BY_PAYRATE
- NO_SHOWS
- APPOINTMENT_NO_SHOWS
- SESSION_BOOKINGS
- APPOINTMENT_BOOKINGS
- UPCOMING_MEMBERSHIPS_EXPIRATION
- MEMBERSHIPS_EXPIRATION
- NOT_ACTIVATED_MEMBERSHIPS
- UNPAID_BOOKINGS
- FAILED_PAYMENT_PLAN_PAYMENTS
- FAILED_TUITION_INSTALLMENT_PAYMENTS
- NON_RETURNING_CUSTOMERS
- NON_MEMBER_CUSTOMERS
- MEMBER_CUSTOMERS
- ACTIVE_MEMBERS
- TOTAL_VISITS
- MEMBER_KEY_SCAN_IDENTIFICATIONS
- VISITS_OVERVIEW
- RECURRING_EVENT_ATTENDANCE
- INTRO_OFFERS_SALES
- INTRO_OFFERS_UPCOMING_EXPIRATIONS
- INTRO_OFFERS_EXPIRED
- INTRO_OFFERS_CONVERSIONS
- CUSTOMER_LEADS_CONVERSIONS
- GIFT_CARD_SALES
- UNSUBSCRIBED_CUSTOMERS_FROM_MARKETING_EMAILS
- CUSTOMER_ATTENDANCE_ANALYSIS
- STUDIO_GROW_KPI
- CUSTOMER_REFERRAL_REWARDS
- PAYROLL
- CUSTOMER_LEADS_FIELD_VALUES
- TIP
- CUSTOMER_LEADS_KPI
- CUSTOMER_LEADS_KPI_NMS
- FACEBOOK_INSTAGRAM_ROI_CALCULATOR
- GUEST_PASS_USAGE_SESSIONS
- CUSTOMER_RANKINGS_MEMBERS
- COMMISSIONS
- FRANCHISE_FEES
- APPOINTMENT_BOOKING_CANCELLATIONS
- NEW_LEADS_AND_CUSTOMERS
- APPOINTMENT_VISITORS_WITHOUT_UPCOMING_BOOKINGS
- COURSE_QUIZ_SUBMISSIONS
- APPOINTMENT_RESERVATIONS
- BUSINESS_AT_GLANCE
- DECLINED_PENALTY_CHARGES
- APPOINTMENT_ADDONS
- SPOTFILLERS
- FRANCHISE_SALES
- APPOINTMENT_SERVICE_AND_RETAIL_ANALYSIS_BY_EMPLOYEE
- MOLONI_TRANSACTIONS
- APPOINTMENTS_PRODUCTS_STAFF_PERFORMANCE
- FRANCHISE_GIFT_CARD_RECONCILIATION
- SESSION_OCCUPANCY
- REVENUE_BREAKDOWN
- OPEN_AREA_VISITS
- SALES_BY_OPEN_AREA_VISIT
- SESSION_ADDONS
- MEMBERSHIP_RECONCILIATION
- REWARDS_POINTS_MOVEMENTS
- REWARDS_POINTS_BALANCES
hostId:
type: integer
dateRange:
$ref: '#/components/schemas/DateRangeDto'
required:
- reportType
- hostId
- dateRange
ApiV2HostCreateReportRunResponseDto:
type: object
properties:
id:
type: integer
required:
- id
ApiV2HostCreateReportRunRequestDto:
type: object
properties:
parameters:
oneOf:
- $ref: >-
#/components/schemas/ApiV2HostReportRunTotalSalesReportRunParametersDto
- $ref: >-
#/components/schemas/ApiV2HostReportRunFranchiseGiftCardReconciliationReportRunParametersDto
required:
- parameters
ApiV2HostReportRunTotalSalesReportRunDataDto:
type: object
properties:
items:
type: array
items:
oneOf:
- $ref: '#/components/schemas/ApiV2HostReportRunEventSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunMembershipSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunCourseSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunVideoSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunProductSaleItemDto'
- $ref: >-
#/components/schemas/ApiV2HostReportRunAutomatedPenaltyChargeDto
- $ref: '#/components/schemas/ApiV2HostReportRunAppointmentSaleItemDto'
- $ref: >-
#/components/schemas/ApiV2HostReportRunAppointmentAddonSaleItemDto
- $ref: >-
#/components/schemas/ApiV2HostReportRunAppointmentDepositSaleItemDto
- $ref: '#/components/schemas/ApiV2HostReportRunGiftCardSaleItemDto'
- $ref: >-
#/components/schemas/ApiV2HostReportRunPaymentPlanInstallmentSaleItemDto
- $ref: '#/components/schemas/ApiV2HostReportRunTipTotalSaleItemDto'
- $ref: >-
#/components/schemas/ApiV2HostReportRunTuitionInstallmentSaleItemDto
- $ref: >-
#/components/schemas/ApiV2HostReportRunTuitionRegistrationFeeSaleItemDto
- $ref: >-
#/components/schemas/ApiV2HostReportRunMembershipRenewalRetryFeeSaleItemDto
- $ref: >-
#/components/schemas/ApiV2HostReportRunMembershipFreezeFeeSaleItemDto
- $ref: >-
#/components/schemas/ApiV2HostReportRunMembershipCancellationFeeSaleItemDto
- $ref: '#/components/schemas/ApiV2HostReportRunRefundSaleItemDto'
reportType:
type: string
enum:
- total-sales
required:
- items
- reportType
TransactionItemDto:
type: object
properties:
paymentTransactionItemId:
type: integer
nullable: true
paymentTransactionId:
type: integer
nullable: true
paymentMethod:
type: string
nullable: true
paidInCurrency:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
vatAmountInCurrency:
type: number
nullable: true
membershipType:
type: string
nullable: true
membershipName:
type: string
nullable: true
homeLocation:
type: string
nullable: true
note:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentMethodWeight:
type: number
nullable: true
saleItemId:
type: integer
required:
- paymentTransactionItemId
- paymentTransactionId
- paymentMethod
- paidInCurrency
- paidInMoneyCredits
- vatAmountInCurrency
- membershipType
- membershipName
- note
- paymentMethodWeight
- saleItemId
ApiV2HostReportRunEventSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- event
type: string
x-enumNames:
- EVENT
eventType:
enum:
- private
- special-event
- special-event-new
- retreat
- fitness
- course
- course-class
- semester
- recital
type: string
x-enumNames:
- PRIVATE
- SPECIAL_EVENT
- SPECIAL_EVENT_NEW
- RETREAT
- FITNESS
- COURSE
- COURSE_CLASS
- SEMESTER
- RECITAL
eventIsSemesterClass:
type: boolean
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- eventType
- eventIsSemesterClass
- details
ApiV2HostReportRunMembershipSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- membership
- pack
- subscription
type: string
x-enumNames:
- MEMBERSHIP
- PACKAGE
- SUBSCRIPTION
membershipType:
enum:
- subscription
- on-demand-subscription
- package-events
- package-money
- patron
type: string
x-enumNames:
- Subscription
- OnDemandSubscription
- PackageEvents
- PackageMoney
- Patron
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- membershipType
- details
ApiV2HostReportRunCourseSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- course
type: string
x-enumNames:
- COURSE
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunVideoSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- on-demand
type: string
x-enumNames:
- ON_DEMAND
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunProductSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- product
type: string
x-enumNames:
- PRODUCT
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunAutomatedPenaltyChargeDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- automatic-penalty-charge
type: string
x-enumNames:
- AUTOMATIC_PENALTY_CHARGE
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunAppointmentSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- appointment
type: string
x-enumNames:
- APPOINTMENT
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunAppointmentAddonSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- appointment
type: string
x-enumNames:
- APPOINTMENT
details:
type: object
additionalProperties: true
isAddonItem:
type: number
enum:
- true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
- isAddonItem
ApiV2HostReportRunAppointmentDepositSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- appointment
type: string
x-enumNames:
- APPOINTMENT
details:
type: object
additionalProperties: true
isDepositItem:
type: number
enum:
- true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
- isDepositItem
ApiV2HostReportRunGiftCardSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- gift-card
type: string
x-enumNames:
- GIFT_CARD
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunPaymentPlanInstallmentSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- payment-plan-installment
type: string
x-enumNames:
- PAYMENT_PLAN_INSTALLMENT
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunTipTotalSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- tip
type: string
x-enumNames:
- TIP
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
ApiV2HostReportRunTuitionInstallmentSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- tuition-installment
type: string
x-enumNames:
- TUITION_INSTALLMENT
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunTuitionRegistrationFeeSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- tuition-registration-fee
type: string
x-enumNames:
- TUITION_REGISTRATION_FEE
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunMembershipRenewalRetryFeeSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- membership-renewal-retry-fee
type: string
x-enumNames:
- MEMBERSHIP_RENEWAL_RETRY_FEE
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunMembershipFreezeFeeSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- membership-freeze-fee
type: string
x-enumNames:
- MEMBERSHIP_FREEZE_FEE
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunMembershipCancellationFeeSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- membership-cancellation-fee
type: string
x-enumNames:
- MEMBERSHIP_CANCELLATION_FEE
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunRefundSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- refund
type: string
x-enumNames:
- REFUND
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
TotalsDto:
type: object
properties:
amountReceivable:
type: number
amountPayable:
type: number
balance:
type: number
required:
- amountReceivable
- amountPayable
- balance
PaymentTransactionItemDto:
type: object
properties:
id:
type: integer
createdAt:
type: string
format: date-time
isAmountReceivable:
type: boolean
transactionHostName:
type: string
giftCardPurchaseHostName:
type: string
giftCardPurchaseHostId:
type: integer
giftCardCode:
type: string
paidInCurrency:
type: number
required:
- id
- createdAt
- isAmountReceivable
- transactionHostName
- giftCardPurchaseHostName
- giftCardPurchaseHostId
- giftCardCode
- paidInCurrency
FranchiseGiftCardReconciliationItemDto:
type: object
properties:
hostName:
type: string
totals:
$ref: '#/components/schemas/TotalsDto'
paymentTransactionItems:
type: array
items:
$ref: '#/components/schemas/PaymentTransactionItemDto'
required:
- hostName
- totals
- paymentTransactionItems
ApiV2HostReportRunFranchiseGiftCardReconciliationReportRunDataDto:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/FranchiseGiftCardReconciliationItemDto'
reportType:
type: string
enum:
- franchise-gift-card-reconciliation
required:
- items
- reportType
ApiV2HostGetReportRunResponseDto:
type: object
properties:
parameters:
oneOf:
- $ref: >-
#/components/schemas/ApiV2HostReportRunTotalSalesReportRunParametersDto
- $ref: >-
#/components/schemas/ApiV2HostReportRunFranchiseGiftCardReconciliationReportRunParametersDto
data:
oneOf:
- $ref: >-
#/components/schemas/ApiV2HostReportRunTotalSalesReportRunDataDto
- $ref: >-
#/components/schemas/ApiV2HostReportRunFranchiseGiftCardReconciliationReportRunDataDto
id:
type: integer
status:
enum:
- queued
- running
- completed
- failed
type: string
x-enumNames:
- QUEUED
- RUNNING
- COMPLETED
- FAILED
required:
- parameters
- data
- id
- status
securitySchemes:
OAuth2:
type: oauth2
flows:
password:
scopes: {}
tokenUrl: /api/v2/auth/token
authorizationCode:
authorizationUrl: /api/v2/auth/authorize
tokenUrl: /api/v2/auth/token
scopes: {}
OAuth2ApiClient:
type: http
scheme: basic
description: Use your `client_id` as username and `client_secret` as password
security:
- OAuth2: []
OAuth2ApiClient: []