Bypass Bookings

If your integration books reservations on behalf of your users and does not bill those users for those reservations within Mariana Tek, you're in the right place. To get started building, you'll first need to request an API Key and a sandbox by contacting integrations@marianatek.com. Once you have credentials, you can use the Admin API to list classes and create reservations for your users.

List Classes

For users to be able to book into classes, you'll most likely want to show them a list of the classes that are available to book for a brand, and give them the ability to filter this list. In Mariana Tek, an individual occurrence of a class that can be booked is called a class session. To display a schedule, you should use the Admin API to retrieve a list of class sessions and apply filters as query parameters.

Example Request:

curl -X GET -H 'Authorization: Bearer {API_KEY}' 'https://{SUBDOMAIN}.marianatek.com/api/class_sessions'

Available Filters:

ParameterDescription
min_dateExcludes classes that are scheduled before this date.
max_dateExcludes classes that are scheduled after this date.
classroomA comma-separated list of classroom IDs.
locationA comma-separated list of location IDs.
class_session_typeA comma=separated list of class_session_type IDs.
employee_public_profilesA comma-separated list of instructor profile IDs.
class_tagsA comma-separated list of class tag IDs.

Book a Reservation

Each of the reservations that your integration creates will be considered guest reservations within Mariana Tek. We consider a guest reservation any reservation that is paid for by a different user than the participant. For Bypass Booking, the user in your system who will be participating in the class will be considered a guest of the service user configured for your integration.

Example Request:

curl -X POST -H 'Authorization: Bearer {API_KEY}' -H "Content-type: application/vnd.api+json" -d '{
"data": {
"type": "reservations",
"attributes": {
"guest_email": "{GUEST_EMAIL}",
"guest_name": "{GUEST_NAME}",
"reservation_type": "standard",
"reserved_for_guest": true
},
"relationships": {
"class_session": {
"data": {
"type": "class_sessions",
"id": "{CLASS_SESSION_ID}"
}
},
"user": {
"data": {
"type": "users",
"id": "{SERVICE_USER_ID}"
}
}
}
}
}' 'https://{SUBDOMAIN}.marianatek.com/api/reservations'
ParameterRequired?Description
subdomain yesThe subdomain corresponding to the brand where you would like to book.
api_keyyesThe api_key credential issued for your integration.
guest_emailyesThe email of the user participating in the class. If there is an account associated with this reservation, the account will be linked automatically.
guest_namenoThe full name of the user participating in the class.
reservation_typenoValues are standard, standby or waitlist. This should be determined by the availability of the class.
reserved_for_guestyesFor bypass bookings, this should always be true.
class_session_idyesThe ID of the class that the user would like to book.
service_user_idyesThe ID of the service user associated with your application.

Cancel a Reservation

Once a reservation has been booked, users may realize they cannot attend. If this is the case, users should be allowed to cancel their reservations.

Example Request:

curl -X POST -H 'Authorization: Bearer {API_KEY}'
'https://{SUBDOMAIN}.marianatek.com/api/reservations/{RESERVATION_ID}/cancel'