{"info":{"_postman_id":"c32dc464-ebbe-4d90-ab95-d1bcd3c22ac7","name":"Wellhub ||  Quick Start Guide | Booking & Access Control API","description":"<html><head></head><body><img src=\"https://content.pstmn.io/fe610d14-b630-4447-b385-8ac7c299ce0f/V0gucG5n\">\n\n<h1 id=\"welcome-to-the-wellhub-getting-started-guide\"><strong>Welcome to the Wellhub Getting Started Guide.</strong></h1>\n<p>Wellhub is a SaaS platform designed to enable companies to extend the fitness and wellness programs to their employees as a wellness benefit. Employees are able to access the largest global network of gym partners fitness facilities and activities at a significantly reduced price.</p>\n<p>This document covers the process of using the Wellhub Booking API to create and edit classes for your gym or studio as well as the booking process for a Wellhub user.</p>\n<h2 id=\"booking-api\">Booking API</h2>\n<p>Our Booking API makes it possible to add classes and schedule them on to the Wellhub platform. This is required for a successful integration with Wellhub as it allows for our partners Class Inventory to be listed and bookable on the Wellhub Ecosystem.</p>\n<p>With our Booking API, you can leverage a seamless flow integrating your class system with our platform, allowing an easier and integrated process for booking.</p>\n<p>With the help from our Webhooks we can then update our partners systems schedule automatically once a Wellhub user has made a booking via our platform. Once you create a class on your system, Wellhub receives the information via the Booking API and our Webhooks do all the work in maintaining synchronised information between both applications once a Wellhub user has made a booking via our platform.</p>\n<h2 id=\"access-control-api\">Access Control API</h2>\n<p>Wellhub has a check-in process that ensures that partners are able to validate legitimate Wellhub subscriber visits to their facilities.</p>\n<p>Check-in is a core part of the Wellhub customer UX and is essential for the correct payment of completed check-ins to our partners.</p>\n<p>For this reason;</p>\n<ol>\n<li><p><strong>Check-ins must be done through the Wellhub app for all visits by subscribers</strong></p>\n</li>\n<li><p><strong>Check-ins must be validated</strong></p>\n</li>\n</ol>\n<p>Once the user performs a check-in on the Wellhub app your system can use our Access Control API to confirm it.</p>\n<p>A check-in has an <strong>expiration time</strong>, which means that it must be validated in this given interval. When called, this API needs to send the gympass_id, which is the user’s unique number.</p>\n<h1 id=\"webhooks\">Webhooks</h1>\n<p>The <a href=\"https://developers.gympass.com/product/booking-api/1.0/webhooks\">Wellhub webhooks</a> will notify you when specific events are triggered. This notification is a HTTP POST request to your registered URL.</p>\n<p>The booking workflow relies on the use of 4 Webhooks:</p>\n<ul>\n<li><p><strong>booking.requested</strong> - Triggered whenever a new booking request is made.</p>\n</li>\n<li><p><strong>booking.cancelation</strong> - Triggered whenever a user cancels a previous booked class.</p>\n</li>\n<li><p><strong>booking.LateCancelation</strong> - Triggered whenever a user cancels a previous booked class AND they cancelled outside of the approved window.</p>\n</li>\n</ul>\n<blockquote>\n<p><strong>We will required you to provide Wellhub with a Webhook handler for us to direct the Wellhub Webhooks to.</strong> </p>\n</blockquote>\n<hr>\n<hr>\n<h1 id=\"getting-started\">Getting Started!</h1>\n<p>Firstly lets get you set up with our API collection.</p>\n<blockquote>\n<p><strong>click the \"Run in Postman\" button in the top right of this page to import our API collection</strong> </p>\n</blockquote>\n<img src=\"https://run.pstmn.io/button.svg\">\n\n<h2 id=\"authentication\">Authentication</h2>\n<p>To be able to use this API Test collection you will require the following:</p>\n<ul>\n<li><p>System ID</p>\n</li>\n<li><p>API Key</p>\n</li>\n</ul>\n<p>The above will be provided to you by your Wellhub Technical Sales contact. Please reach out to them directly referencing \"Test Environment Credentials\"</p>\n<p>The Technical Sales team will produce and provide you with your credentials .</p>\n<p>In this guide you will learn how to:</p>\n<ol>\n<li><p><code>POST - Create</code> - Create a class on the Wellhub Ecosystem.</p>\n</li>\n<li><p><code>POST - Slots</code> - Schedule that class on the Wellhub Platform ready for booking.</p>\n<ol>\n<li>The class you create will be visible on your Wellhub Test site</li>\n</ol>\n</li>\n<li><p><code>GET - List/Get</code> - Get the list of classes and the schedules you have created.</p>\n</li>\n<li><p><code>PATCH - Slots</code> - Update the one of your classes with the <code>class_id</code> and <code>Slot_id</code></p>\n</li>\n<li><p><code>PUT - Slots</code> - Update the Schedule information for one of your classes with the <code>class_id</code> and <code>Slot_id</code>.</p>\n</li>\n</ol>\n<blockquote>\n<p>Once you have completed this getting started guide we'd love to connect with you to discuss moving in to development, Webhook details and provide you with production credentials.<br>We'd also love to hear any feedback on how you found this getting started guide. </p>\n</blockquote>\n<h1 id=\"test-users\">Test users</h1>\n<p>There are 10 users that can be used to simulate activity in the testing environment.</p>\n<p>They are preset, dummy users with fake data.</p>\n<p><strong>They in no way represent real users or Wellhub employees.</strong></p>\n<p>Gympass ID (UUID) || Name of Test user</p>\n<blockquote>\n<p>The Gympass ID will always be a 13 digit integer </p>\n</blockquote>\n<ol>\n<li><p>1000000000001 (Mike Hightower)</p>\n</li>\n<li><p>1000000000002 (Thomas Patrick)</p>\n</li>\n<li><p>1000000000003 (Patty Cork)</p>\n</li>\n<li><p>1000000000004 (Kathleen Young)</p>\n</li>\n<li><p>1000000000005 (Susan Middaugh)</p>\n</li>\n<li><p>1000000000006 (Paul Charleston)</p>\n</li>\n<li><p>1000000000007 (Helen Powell)</p>\n</li>\n<li><p>1000000000008 (John Smith)</p>\n</li>\n<li><p>1000000000009 (Florence Hogan)</p>\n</li>\n<li><p>1000000000010 (Sharon Grace)</p>\n</li>\n</ol>\n<h1 id=\"environment\">Environment</h1>\n<ul>\n<li><p><strong>Production Booking API URL</strong> : <a href=\"https://api.partners.gympass.com\"><b>https://api.partners.gympass.com</b></a></p>\n</li>\n<li><p><strong>Authentication Token</strong> (<em>bearer</em>): Provided to you by the Wellhub Tech Sales team - see <a href=\"https://developers.gympass.com/product/booking-api/1.0/getting-started#authentication\">Authentication</a></p>\n</li>\n</ul>\n<h1 id=\"additional-resources\">Additional Resources:</h1>\n<ul>\n<li><p><a href=\"https://developers.gympass.com/product/booking-api/1.0/getting-started\">Wellhub Developer Portal</a></p>\n</li>\n<li><p><a href=\"https://developers.gympass.com/product/booking-api/1.0/faq\">FAQ</a></p>\n</li>\n<li><p><a href=\"https://developers.gympass.com/product/booking-api/1.0/getting-started\">UML Sequence Diagrams</a></p>\n</li>\n<li><p><a href=\"https://developers.gympass.com/product/booking-api/1.0/getting-started\">Glossary</a></p>\n</li>\n<li><p><a href=\"https://developers.gympass.com/product/booking-api/1.0/getting-started\">Wellhub Customer Journey</a></p>\n</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Welcome to the Wellhub Getting Started Guide.","slug":"welcome-to-the-wellhub-getting-started-guide"},{"content":"Webhooks","slug":"webhooks"},{"content":"Getting Started!","slug":"getting-started"},{"content":"Test users","slug":"test-users"},{"content":"Environment","slug":"environment"},{"content":"Additional Resources:","slug":"additional-resources"}],"owner":"14766562","collectionId":"c32dc464-ebbe-4d90-ab95-d1bcd3c22ac7","publishedId":"2sAYdbPtHN","public":true,"customColor":{"top-bar":"ffffff","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-02-21T09:34:41.000Z"},"item":[{"name":"Booking API","item":[{"name":"Classes","item":[{"name":"Create classes","id":"591e2464-d2da-4e48-a3b7-f4e57f6417ec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer ","type":"text"}],"body":{"mode":"raw","raw":" {\n    \"classes\": [\n        {\n            \"name\": \"Test Class\",\n            \"description\": \"Test class description\",\n            \"notes\": \"Test class notes\",\n            \"bookable\": true,\n            \"visible\": true,\n            \"is_virtual\": true,\n            \"product_id\": 100003\n        }\n    ]\n}\n","options":{"raw":{"language":"json"}}},"url":"https://apitesting.partners.gympass.com/booking/v1/gyms/gym_id/classes","description":"<p>Example of how to create a class on a given gym.</p>\n<p>Request</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\"> {\n    \"classes\": [\n        {\n            \"name\": \"Test Class\",\n            \"description\": \"Test class description\",\n            \"notes\": \"Test class notes\",\n            \"bookable\": true,\n            \"visible\": true,\n            \"is_virtual\": true,\n            \"product_id\": 100003\n        }\n    ]\n}\n\n</code></pre>\n<p>Request Params</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>It's the human-readable name of the class. Max of 255 characters.</td>\n<td>String</td>\n<td>True</td>\n</tr>\n<tr>\n<td>description</td>\n<td>It's the human-readable description of the class.</td>\n<td>String</td>\n<td>True</td>\n</tr>\n<tr>\n<td>notes</td>\n<td>These are the human-readable notes that you can add to the class details.</td>\n<td>String</td>\n<td>False</td>\n</tr>\n<tr>\n<td>bookable</td>\n<td>It indicates if the class can be reserved. Values: True or False.</td>\n<td>Boolean</td>\n<td>True</td>\n</tr>\n<tr>\n<td>visible</td>\n<td>It indicates if the class is visible at Wellhub app and website. Set this field to False if you want to hide the class for a while. If this is set to False, all related slots won’t be shown. Values: True or False.</td>\n<td>Boolean</td>\n<td>True</td>\n</tr>\n<tr>\n<td>product_id</td>\n<td>Gym product identifier. Could be found listing all available gym products.</td>\n<td>Int</td>\n<td>True</td>\n</tr>\n<tr>\n<td>reference</td>\n<td>It's a field used by the partner to link a class between Wellhub Booking API and its integrated system.</td>\n<td>String</td>\n<td>False</td>\n</tr>\n<tr>\n<td>system_id</td>\n<td>Id of partner's integrated system at Wellhub.</td>\n<td>Int</td>\n<td>False</td>\n</tr>\n<tr>\n<td>categories</td>\n<td>Array of IDs chosen from a list of categories provided by Wellhub that specifies what kind of activity that class is about. (e.g. Yoga, Functional, Pilates...).</td>\n<td>List - Int</td>\n<td>False</td>\n</tr>\n</tbody>\n</table>\n</div><p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"classes\": [\n        {\n            \"id\": 8268,\n            \"name\": \"Test Class\",\n            \"links\": [\n                {\n                    \"rel\": \"self\",\n                    \"href\": \"gyms/100001/classes/8268\"\n                }\n            ]\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"path":["gyms","gym_id","classes"],"host":["https://apitesting.partners.gympass.com/booking/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"591e2464-d2da-4e48-a3b7-f4e57f6417ec"},{"name":"List classes","id":"85e1c138-ab66-4189-b627-421aeecddf1e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"Bearer "}],"url":"https://apitesting.partners.gympass.com/booking/v1/gyms/404/classes","description":"<p>Example of how to get a list of classes on a given gym.</p>\n<p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Accept</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"classes\": [\n    {\n      \"id\": 1,\n      \"name\": \"Cycle\",\n      \"slug\": \"cycle\",\n      \"description\": \"Our standard cycle classes\",\n      \"notes\": \"Notes\",\n      \"bookable\": true,\n      \"visible\": true,\n      \"product_id\": 1,\n      \"gym_id\": 123,\n      \"reference\": \"111\",\n      \"created_at\": \"2019-07-03T17:44:22Z[UTC]\"\n    },\n    {\n      \"id\": 2,\n      \"name\": \"Super Cycle\",\n      \"slug\": \"super-cycle\",\n      \"description\": \"Our super advanced cycle class\",\n      \"notes\": \"Notes\",\n      \"bookable\": true,\n      \"visible\": true,\n      \"product_id\": 1,\n      \"gym_id\": 123,\n      \"reference\": \"111\",\n      \"created_at\": \"2019-07-03T17:44:22Z[UTC]\",\n      \"categories\": [\n                      {\n                          \"id\": 1,\n                          \"name\": \"Meditation\",\n                          \"locale\": \"de\"\n                      }\n                  ]\n    }\n  ]\n}\n\n</code></pre>\n","urlObject":{"path":["gyms","404","classes"],"host":["https://apitesting.partners.gympass.com/booking/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"85e1c138-ab66-4189-b627-421aeecddf1e"},{"name":"Get class","id":"f316fe21-b372-42a1-a864-09a1ae89b081","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"Bearer "}],"url":"https://apitesting.partners.gympass.com/booking/v1/gyms/404/classes/class_id?show-deleted=false","description":"<p>Example of how to get a specific class resource.</p>\n<p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n<tr>\n<td>class_id</td>\n<td>The identifier of the class at Wellhub. Returned when creating a Class.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Query String Parameters</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>show-deleted (Optional)</td>\n<td>true Shows the deleted class. false {default} Does not show the deleted class</td>\n</tr>\n</tbody>\n</table>\n</div><p>*<code>show-deleted=true</code> Will show the results for both Class_ids that have been deleted and that are non-deleted. <code>show-deleted=false</code> will only show non-deleted Class_ids</p>\n<p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 1,\n  \"name\": \"Judo\",\n  \"slug\": \"judo-class-with-lasers\",\n  \"description\": \"Description for judo classes.\",\n  \"notes\": \"Some pretty notes here.\",\n  \"bookable\": true,\n  \"visible\": true,\n  \"product_id\": 1,\n  \"gym_id\": 1,\n  \"reference\": \"111\",\n  \"created_at\": \"2019-07-03T17:44:22Z[UTC]\",\n  \"categories\": [\n                  {\n                      \"id\": 1,\n                      \"name\": \"Meditation\",\n                      \"locale\": \"de\"\n                  }\n              ],\n}\n\n</code></pre>\n","urlObject":{"path":["gyms","404","classes","class_id"],"host":["https://apitesting.partners.gympass.com/booking/v1"],"query":[{"key":"show-deleted","value":"false"}],"variable":[]}},"response":[],"_postman_id":"f316fe21-b372-42a1-a864-09a1ae89b081"},{"name":"Update class","id":"7ef2a6e7-3bbb-46cc-9c6b-2968eab9acfc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer "}],"body":{"mode":"raw","raw":"{\n \"name\": \"Super Cycle\",\n \"description\": \"Our standard cycle classes\",\n \"notes\": \"Notes of our standard cycle classes\",\n \"bookable\": true,\n \"visible\": true,\n \"reference\": \"111\",\n \"product_id\": 1,\n \"categories\": [1,2]\n}"},"url":"https://apitesting.partners.gympass.com/booking/v1/gyms/gym_id/classes/class_id/","description":"<p>Example of how to update a class.</p>\n<p>Request</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"Super Cycle\",\n  \"description\": \"Our standard cycle classes\",\n  \"notes\": \"Notes of our standard cycle classes\",\n  \"bookable\": true,\n  \"visible\": true,\n  \"reference\": \"111\",\n  \"product_id\": 1,\n  \"categories\": [\n    1,\n    2\n  ]\n}\n\n</code></pre>\n<p>Request Params</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>It's the human-readable name of the class. Max of 255 characters.</td>\n<td>String</td>\n<td>True</td>\n</tr>\n<tr>\n<td>description</td>\n<td>It's the human-readable description of the class.</td>\n<td>String</td>\n<td>True</td>\n</tr>\n<tr>\n<td>notes</td>\n<td>These are the human-readable notes that you can add to the class details.</td>\n<td>String</td>\n<td>False</td>\n</tr>\n<tr>\n<td>bookable</td>\n<td>It indicates if the class can be reserved. Values: True or False.</td>\n<td>Boolean</td>\n<td>True</td>\n</tr>\n<tr>\n<td>visible</td>\n<td>It indicates if the class is visible at Wellhub app and website. Set this field to False if you want to hide the class for a while. If this is set to False, all related slots won’t be shown. Values: True or False.</td>\n<td>Boolean</td>\n<td>True</td>\n</tr>\n<tr>\n<td>product_id</td>\n<td>Gym product identifier. Could be found listing all available gym products.</td>\n<td>Int</td>\n<td>True</td>\n</tr>\n<tr>\n<td>reference</td>\n<td>It's a field used by the partner to link a class between Wellhub Booking API and its integrated system.</td>\n<td>String</td>\n<td>False</td>\n</tr>\n<tr>\n<td>categories</td>\n<td>Array of IDs chosen from a list of categories provided by Wellhub that specifies what kind of activity that class is about. (e.g. Yoga, Functional, Pilates...).</td>\n<td>List - Int</td>\n<td>False</td>\n</tr>\n</tbody>\n</table>\n</div><p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n<tr>\n<td>class_id</td>\n<td>The identifier of the class at Wellhub. Returned when create a Class.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">204 - NO CONTENT\n\n</code></pre>\n","urlObject":{"path":["gyms","gym_id","classes","class_id",""],"host":["https://apitesting.partners.gympass.com/booking/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"7ef2a6e7-3bbb-46cc-9c6b-2968eab9acfc"}],"id":"46c3a489-d50d-4b64-8bf9-afbc45adfdbb","description":"<p>A <strong>class</strong> represents one of the gym’s classes, like \"weightlifting\" or \"yoga\". To show the class on the Wellhub app and website, you need to create a slot that combines the class with a specific date and time it will occur. See slots session to see how to register a slot.</p>\n","_postman_id":"46c3a489-d50d-4b64-8bf9-afbc45adfdbb"},{"name":"Slots","item":[{"name":"Create slots","id":"346a4d03-12ce-4f14-81b5-bbd038bb3776","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer ","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"occur_date\": \"2022-09-29T22:00:50.000Z\",\n    \"status\": 1,\n    \"room\": \"Virtual test\",\n    \"length_in_minutes\": 60,\n    \"total_capacity\": 15,\n    \"total_booked\": 5,\n    \"product_id\": 100003,\n    \"booking_window\": {\n        \"opens_at\": \"2022-09-29T09:22:50.000Z\",\n        \"closes_at\": \"2022-09-29T21:00:00.000Z\"\n    },\n    \"cancellable_until\": \"2022-09-29T18:05:00.000Z\",\n    \"instructors\": [\n        {\n            \"name\": \"Virtual test\",\n            \"substitute\": true\n        }\n    ],\n    \"rate\": 4.0\n}","options":{"raw":{"language":"json"}}},"url":"https://apitesting.partners.gympass.com/booking/v1/gyms/gym_id/classes/class_id/slots","description":"<p>Example of how to create a slot on a given class.</p>\n<p>Request</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"occur_date\": \"2022-09-29T22:00:50.000Z\",\n    \"status\": 1,\n    \"room\": \"Virtual test\",\n    \"length_in_minutes\": 60,\n    \"total_capacity\": 15,\n    \"total_booked\": 5,\n    \"product_id\": 100003,\n    \"booking_window\": {\n        \"opens_at\": \"2022-09-29T09:22:50.000Z\",\n        \"closes_at\": \"2022-09-29T21:00:00.000Z\"\n    },\n    \"cancellable_until\": \"2022-09-29T18:05:00.000Z\",\n    \"instructors\": [\n        {\n            \"name\": \"Virtual test\",\n            \"substitute\": true\n        }\n    ],\n    \"rate\": 4.0\n}\n\n</code></pre>\n<p>Request Params</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>occur_date</td>\n<td>The class slot time should be entered based on the location of the gym. Ex: 2019-07-30T10:00:00-05:00 will create a class on July 30th 10AM for a gym located in the East Coast timezone, UTC -5.</td>\n<td>Date</td>\n<td>True</td>\n</tr>\n<tr>\n<td>room</td>\n<td>It's the human-readable room name at the gym. Max of 200 characters.</td>\n<td>Int</td>\n<td>False</td>\n</tr>\n<tr>\n<td>status</td>\n<td>It’s the slot status. The default value is 1. Values: inactive = 0 or active = 1.</td>\n<td>Int</td>\n<td>False</td>\n</tr>\n<tr>\n<td>length_in_minutes</td>\n<td>It's the class duration in minutes. Max length duration is 200.</td>\n<td>Int</td>\n<td>True</td>\n</tr>\n<tr>\n<td>total_capacity</td>\n<td>It's the total capacity of users on a given class slot. For example, if you just have 10 bikes, you can set it to 10. Max total capacity is 32000.</td>\n<td>Int</td>\n<td>True</td>\n</tr>\n<tr>\n<td>total_booked</td>\n<td>It's the total amount of bookings on a given class slot. Note that every time a class slot is booked through Wellhub app and website or not, the best practice is that you update this information using this endpoint. This way we can always show properly the slots that you already have available, providing the best experience to the users.</td>\n<td>Int</td>\n<td>True</td>\n</tr>\n<tr>\n<td>product_id</td>\n<td>Gym product identifier. Could be found listing all available gym products.</td>\n<td>Int</td>\n<td>True</td>\n</tr>\n<tr>\n<td>cancellable_until</td>\n<td>The deadline used to control the early cancellation for the booking (without penalty). It should be entered based on the location of the gym. After that, it will be considered a late cancel. Ex: 2019-07-30T15:00:00-05:00.</td>\n<td>Date</td>\n<td>False</td>\n</tr>\n<tr>\n<td>rate</td>\n<td>The max rate is 5.0.</td>\n<td>Decimal</td>\n<td>False</td>\n</tr>\n<tr>\n<td>booking_window</td>\n<td>Booking window represents the date and time that a user can book a slot. If the user is outside of this range of dates and times they can’t book this slot. The booking window is composed of the \"opens_at\" and \"closes_at\" attributes explained below.</td>\n<td>-</td>\n<td>-</td>\n</tr>\n<tr>\n<td>booking_window.opens_at</td>\n<td>The opening time to book a class slot. It should be entered based on the location of the gym. Ex: 2019-07-20T13:00:00-05:00. If none is informed, the slot will be available just after creation.</td>\n<td>Date</td>\n<td>False</td>\n</tr>\n<tr>\n<td>booking_window.closes_at</td>\n<td>The limit time to book a class slot. It should be entered based on the location of the gym. Ex: 2019-07-29T21:00:00-05:00. If none is informed the slot will be considered closed to be booked at occur_date</td>\n<td>Date</td>\n<td>False</td>\n</tr>\n<tr>\n<td>instructors</td>\n<td>You can set none or multiple instructors for a class slot. This represents a list of the instructors, and for each one you can send the instructor's \"name\" and whether they are a \"substitute\" or not, as explained below.</td>\n<td>List</td>\n<td>False</td>\n</tr>\n<tr>\n<td>instructors.name</td>\n<td>The name of the instructor. Max of 100 characters.</td>\n<td>String</td>\n<td>True</td>\n</tr>\n<tr>\n<td>instructors.substitute</td>\n<td>Indicates if it’s a substitute instructor. Values: True or False.</td>\n<td>Boolean</td>\n<td>True</td>\n</tr>\n<tr>\n<td>virtual</td>\n<td>Indicates if the class slots is virtual or presential.</td>\n<td>Boolean</td>\n<td>False</td>\n</tr>\n<tr>\n<td>virtual_class_url</td>\n<td>If this is a virtual class, you can put here the url that the user will need to use to access the class virtually.</td>\n<td>String</td>\n<td>False</td>\n</tr>\n</tbody>\n</table>\n</div><p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Accept</td>\n<td>aplication/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n<tr>\n<td>class_id</td>\n<td>The identifier of the class at Wellhub. Returned when create a Class.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"metadata\": {\n        \"total\": 1,\n        \"errors\": 0\n    },\n    \"results\": [\n        {\n            \"id\": 9325,\n            \"class_id\": 8268,\n            \"occur_date\": \"2022-09-29T23:00:50Z\",\n            \"status\": 1,\n            \"room\": \"Virtual teste\",\n            \"length_in_minutes\": 60,\n            \"total_capacity\": 15,\n            \"total_booked\": 5,\n            \"product_id\": 100003,\n            \"booking_window\": {\n                \"opens_at\": \"2022-09-29T10:22:50Z\",\n                \"closes_at\": \"2022-09-29T22:00:00Z\"\n            },\n            \"cancellable_until\": \"2022-09-29T16:02:00Z\",\n            \"instructors\": [\n                {\n                    \"name\": \"Virtual teste\",\n                    \"substitute\": true\n                }\n            ],\n            \"virtual\": false\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"path":["gyms","gym_id","classes","class_id","slots"],"host":["https://apitesting.partners.gympass.com/booking/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"346a4d03-12ce-4f14-81b5-bbd038bb3776"},{"name":"Get slot","id":"5882011e-f58d-4cdb-937c-1c4898d6e406","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"Bearer "}],"url":"https://apitesting.partners.gympass.com/booking/v1/gyms/gym_id/classes/class_id/slots/slot_id","description":"<p>Example of how to get a specific slot resource.</p>\n<p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Accept</td>\n<td>aplication/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n<tr>\n<td>class_id</td>\n<td>The identifier of the class at Wellhub. Returned when create a Class.</td>\n</tr>\n<tr>\n<td>slot_id</td>\n<td>The identifier of the slot at Wellhub. Returned when create a Slot.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 1,\n  \"class_id\": 1,\n  \"occur_date\": \"2019-07-09T10:00:00-03:00\",\n  \"status\": 1,\n  \"room\": \"Room 1\",\n  \"length_in_minutes\": 60,\n  \"total_capacity\": 15,\n  \"total_booked\": 5,\n  \"product_id\": 1,\n  \"booking_window\": {\n    \"opens_at\": \"2019-07-08T00:00:00-03:00\",\n    \"closes_at\": \"2019-07-09T09:00:00-03:00\"\n  },\n  \"cancellable_until\": \"2019-07-09T09:08:00-03:00\",\n  \"instructors\": [\n    {\n      \"name\": \"Axel\",\n      \"substitute\": false\n    },\n    {\n      \"name\": \"Blaze\",\n      \"substitute\": true\n    }\n  ],\n  \"rate\": 4.5,\n  \"virtual\": true,\n  \"virtual_class_url\": \"http://your_url.com\"\n}\n\n</code></pre>\n","urlObject":{"path":["gyms","gym_id","classes","class_id","slots","slot_id"],"host":["https://apitesting.partners.gympass.com/booking/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"5882011e-f58d-4cdb-937c-1c4898d6e406"},{"name":"List slots","id":"365b9b5a-7ba2-4589-b1a0-f4616558c81a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"Bearer "}],"url":"https://apitesting.partners.gympass.com/booking/v1/gyms/404/classes/12538/slots?from=2026-05-01T00:00:00%2B03:00&to=2026-05-20T23:59:59%2B03:00","description":"<p>Example of how to get a list of slots of a given class in a given range of timezoned dates. If no form/to is informed, we will return all slots on that day.</p>\n<p>Params</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>from</td>\n<td>2019-09-09T00:00:00+03:00  <br />A timezoned date/time to start find slots. It should be entered based on the location of the gym.</td>\n</tr>\n<tr>\n<td>to</td>\n<td>2019-09-09T00:00:00+03:00  <br />A timezoned date/time to start find slots. It should be entered based on the location of the gym.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Accept</td>\n<td>aplication/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n<tr>\n<td>class_id</td>\n<td>The identifier of the class at Wellhub. Returned when create a Class.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"metadata\": {\n      \"page\": 1,\n      \"page_size\": 1000,\n      \"total_elements\": 1,\n      \"total\": 1,\n      \"errors\": 0\n  },\n  \"results\": [\n    {\n      \"id\": 10849748,\n      \"class_id\": 627457,\n      \"occur_date\": \"2021-03-09T07:00:00Z[UTC]\",\n      \"status\": 1,\n      \"room\": \"Room 1\",\n      \"length_in_minutes\": 60,\n      \"total_capacity\": 15,\n      \"total_booked\": 5,\n      \"product_id\": 478142,\n      \"booking_window\": {\n      \"opens_at\": \"2021-03-09T06:30:00Z[UTC]\",\n      \"closes_at\": \"2021-03-09T07:00:00Z[UTC]\"\n    },\n      \"cancellable_until\": \"2021-03-09T07:00:00Z[UTC]\",\n      \"instructors\": [\n        {\n          \"name\": \"GYMPASS TEST\",\n          \"substitute\": false\n        }\n      ],\n      \"rating\": 4.5,\n      \"virtual\": false\n    }\n  ]\n}\n\n</code></pre>\n","urlObject":{"path":["gyms","404","classes","12538","slots"],"host":["https://apitesting.partners.gympass.com/booking/v1"],"query":[{"key":"from","value":"2026-05-01T00:00:00%2B03:00"},{"key":"to","value":"2026-05-20T23:59:59%2B03:00"}],"variable":[]}},"response":[{"id":"75cfc79e-94a1-4ae3-889f-218ddabcd49d","name":"List slots","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://apitesting.partners.gympass.com/booking/v1/gyms/gym_id/classes/class_id/slots?from=2019-09-09T00:00:00%2B03:00&to=2019-09-09T23:59:59%2B03:00","host":["https://apitesting.partners.gympass.com/booking/v1"],"path":["gyms","gym_id","classes","class_id","slots"],"query":[{"key":"from","value":"2019-09-09T00:00:00%2B03:00"},{"key":"to","value":"2019-09-09T23:59:59%2B03:00"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"365b9b5a-7ba2-4589-b1a0-f4616558c81a"},{"name":"Delete slot","id":"b9c774e4-5a57-432d-a195-77c914088e97","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer "}],"url":"https://apitesting.partners.gympass.com/booking/v1/gyms/gym_id/classes/class_id/slots/slot_id","description":"<p>Example of how to delete a slot forever. All bookings already done in this slot will be canceled automatically.</p>\n<p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Accept</td>\n<td>aplication/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n<tr>\n<td>class_id</td>\n<td>The identifier of the class at Wellhub. Returned when create a Class.</td>\n</tr>\n<tr>\n<td>slot_id</td>\n<td>The identifier of the Slot at Wellhub. Returned when create a Slot.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">204 - NO CONTENT\n\n</code></pre>\n","urlObject":{"path":["gyms","gym_id","classes","class_id","slots","slot_id"],"host":["https://apitesting.partners.gympass.com/booking/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"b9c774e4-5a57-432d-a195-77c914088e97"},{"name":"Patch slot","id":"e5ecc31a-66ae-4492-96dd-1cc3d4d81f6e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer "}],"body":{"mode":"raw","raw":"{\n  \"total_capacity\": 15,\n  \"total_booked\": 5,\n  \"virtual_class_url\": \"http://your_url.com\"\n}"},"url":"https://apitesting.partners.gympass.com/booking/v1/gyms/gym_id/classes/class_id/slots/slot_id","description":"<p>Example of how to update partial info of the slot. For now, it is just possible to update <em>total_booked</em> and/or <em>total_capacity</em>. We recommend as good practice inform at least one of these fields. If you need to update other slot's information, please use PUT Update slot.</p>\n<p>Request</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"total_capacity\": 15,\n  \"total_booked\": 5,\n  \"virtual_class_url\": \"http://your_url.com\"\n}\n\n</code></pre>\n<p>Request Params</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>total_capacity</td>\n<td>It's the total capacity of users on a given class slot. For example, if you just have 10 bikes, you can set it to 10. Max total capacity is 32000.</td>\n<td>Int</td>\n<td>True, if total_booked not sent</td>\n</tr>\n<tr>\n<td>total_booked</td>\n<td>It's the total amount of bookings on a given class slot. Note that every time a class slot is booked, through Wellhub app and website or not, the best practice is that you update this information using this endpoint. This way we can properly always show the slots that you already have available, providing the best experience to the users.</td>\n<td>Int</td>\n<td>True, if total_capacity not sent</td>\n</tr>\n<tr>\n<td>virtual_class_url</td>\n<td>If this is a virtual class, you can put here the url that the user will need to use to access the class virtually.</td>\n<td>String</td>\n<td>False</td>\n</tr>\n</tbody>\n</table>\n</div><p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Accept</td>\n<td>aplication/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n<tr>\n<td>class_id</td>\n<td>The identifier of the class at Wellhub. Returned when create a Class.</td>\n</tr>\n<tr>\n<td>slot_id</td>\n<td>The identifier of the Slot at Wellhub. Returned when create a Slot.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">204 - NO CONTENT\n\n</code></pre>\n","urlObject":{"path":["gyms","gym_id","classes","class_id","slots","slot_id"],"host":["https://apitesting.partners.gympass.com/booking/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"e5ecc31a-66ae-4492-96dd-1cc3d4d81f6e"},{"name":"Update slot","id":"2ced20d2-2857-4419-9d38-ac177fca22b8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer "}],"body":{"mode":"raw","raw":"{\n  \"occur_date\": \"2019-07-09T10:00:00-03:00\",\n  \"room\": \"Room 1\",\n  \"status\": 1,\n  \"length_in_minutes\": 60,\n  \"total_capacity\": 15,\n  \"total_booked\": 7,\n  \"product_id\": 1,\n  \"booking_window\": {\n    \"opens_at\": \"2019-07-08T00:00:00-03:00\",\n    \"closes_at\": \"2019-07-09T09:00:00-03:00\"\n  },\n  \"instructors\": [\n    {\n      \"name\": \"Axel\",\n      \"substitute\": false\n    },\n    {\n      \"name\": \"John\",\n      \"substitute\": true\n    }\n  ],\n  \"cancellable_until\": \"2019-07-09T09:00:00-03:00\",\n  \"rate\": 4.5,\n  \"virtual\": true,\n  \"virtual_class_url\": \"http://your_url.com\"\n}"},"url":"https://apitesting.partners.gympass.com/booking/v1/gyms/gym_id/classes/class_id/slots/slot_id","description":"<p>Example of how to update all info of the slot.</p>\n<p>Request</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"occur_date\": \"2019-07-09T10:00:00-03:00\",\n  \"room\": \"Room 1\",\n  \"status\": 1,\n  \"length_in_minutes\": 60,\n  \"total_capacity\": 15,\n  \"total_booked\": 7,\n  \"product_id\": 1,\n  \"booking_window\": {\n    \"opens_at\": \"2019-07-08T00:00:00-03:00\",\n    \"closes_at\": \"2019-07-09T09:00:00-03:00\"\n  },\n  \"instructors\": [\n    {\n      \"name\": \"Axel\",\n      \"substitute\": false\n    },\n    {\n      \"name\": \"John\",\n      \"substitute\": true\n    }\n  ],\n  \"cancellable_until\": \"2019-07-09T09:00:00-03:00\",\n  \"rate\": 4.5,\n  \"virtual\": true,\n  \"virtual_class_url\": \"http://your_url.com\"\n}\n\n</code></pre>\n<p>Request Params</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>occur_date</td>\n<td>The class slot time should be entered based on the location of the gym. Ex: 2019-07-30T10:00:00-05:00 will create a class on July 30th 10AM for a gym located in the East Coast timezone, UTC -5.</td>\n<td>Date</td>\n<td>True</td>\n</tr>\n<tr>\n<td>room</td>\n<td>It's the human-readable room name at the gym. Max of 200 characters.</td>\n<td>Int</td>\n<td>False</td>\n</tr>\n<tr>\n<td>status</td>\n<td>It’s the slot status. The default value is 1. Values: inactive = 0 or active = 1.</td>\n<td>Int</td>\n<td>False</td>\n</tr>\n<tr>\n<td>length_in_minutes</td>\n<td>It's the class duration in minutes. Max length duration is 200.</td>\n<td>Int</td>\n<td>True</td>\n</tr>\n<tr>\n<td>total_capacity</td>\n<td>It's the total capacity of users on a given class slot. For example, if you just have 10 bikes, you can set it to 10. Max total capacity is 32000.</td>\n<td>Int</td>\n<td>True</td>\n</tr>\n<tr>\n<td>total_booked</td>\n<td>It's the total amount of bookings on a given class slot. Note that every time a class slot is booked through Wellhub app and website or not, the best practice is that you update this information using this endpoint. This way we can always show properly the slots that you already have available, providing the best experience to the users.</td>\n<td>Int</td>\n<td>True</td>\n</tr>\n<tr>\n<td>product_id</td>\n<td>Gym product identifier. Could be found listing all available gym products.</td>\n<td>Int</td>\n<td>True</td>\n</tr>\n<tr>\n<td>cancellable_until</td>\n<td>The deadline used to control the early cancellation for the booking (without penalty). It should be entered based on the location of the gym. After that, it will be considered a late cancel. Ex: 2019-07-30T15:00:00-05:00.</td>\n<td>Date</td>\n<td>False</td>\n</tr>\n<tr>\n<td>rate</td>\n<td>The max rate is 5.0.</td>\n<td>Decimal</td>\n<td>False</td>\n</tr>\n<tr>\n<td>booking_window</td>\n<td>Booking window represents the date and time that a user can book a slot. If the user is outside of this range of dates and times they can’t book this slot. The booking window is composed of the \"opens_at\" and \"closes_at\" attributes explained below.</td>\n<td>-</td>\n<td>-</td>\n</tr>\n<tr>\n<td>booking_window.opens_at</td>\n<td>The opening time to book a class slot. It should be entered based on the location of the gym. Ex: 2019-07-20T13:00:00-05:00. If none is informed, the slot will be available just after creation.</td>\n<td>Date</td>\n<td>False</td>\n</tr>\n<tr>\n<td>booking_window.closes_at</td>\n<td>The limit time to book a class slot. It should be entered based on the location of the gym. Ex: 2019-07-29T21:00:00-05:00. If none is informed the slot will be considered closed to be booked at occur_date</td>\n<td>Date</td>\n<td>False</td>\n</tr>\n<tr>\n<td>instructors</td>\n<td>You can set none or multiple instructors for a class slot. This represents a list of the instructors, and for each one you can send the instructor's \"name\" and whether they are a \"substitute\" or not, as explained below.</td>\n<td>List</td>\n<td>False</td>\n</tr>\n<tr>\n<td>instructors.name</td>\n<td>The name of the instructor. Max of 100 characters.</td>\n<td>String</td>\n<td>True</td>\n</tr>\n<tr>\n<td>instructors.substitute</td>\n<td>Indicates if it’s a substitute instructor. Values: True or False.</td>\n<td>Boolean</td>\n<td>True</td>\n</tr>\n<tr>\n<td>virtual</td>\n<td>Indicates if the class slots is virtual or presential.</td>\n<td>Boolean</td>\n<td>False</td>\n</tr>\n<tr>\n<td>virtual_class_url</td>\n<td>If this is a virtual class, you can put here the url that the user will need to use to access the class virtually.</td>\n<td>String</td>\n<td>False</td>\n</tr>\n</tbody>\n</table>\n</div><p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Accept</td>\n<td>aplication/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n<tr>\n<td>class_id</td>\n<td>The identifier of the class at Wellhub. Returned when create a Class.</td>\n</tr>\n<tr>\n<td>slot_id</td>\n<td>The identifier of the Slot at Wellhub. Returned when create a Slot.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"metadata\": {\n    \"total\": 1,\n    \"errors\": 0\n  },\n  \"results\": [\n    {\n      \"id\": 1,\n      \"class_id\": 1,\n      \"occur_date\": \"2019-07-09T10:00:00-03:00\",\n      \"status\": 1,\n      \"room\": \"Room 1\",\n      \"length_in_minutes\": 60,\n      \"total_capacity\": 15,\n      \"total_booked\": 7,\n      \"product_id\": 1,\n      \"booking_window\": {\n        \"opens_at\": \"2019-07-08T00:00:00-03:00\",\n        \"closes_at\": \"2019-07-09T09:00:00-03:00\"\n      },\n      \"cancellable_until\": \"2019-07-09T09:08:00-03:00\",\n      \"instructors\": [\n        {\n          \"name\": \"Axel\",\n          \"substitute\": false\n        },\n        {\n          \"name\": \"John\",\n          \"substitute\": true\n        }\n      ],\n      \"rate\": 4.5,\n      \"virtual\": true\n    }\n  ]\n}\n\n</code></pre>\n","urlObject":{"path":["gyms","gym_id","classes","class_id","slots","slot_id"],"host":["https://apitesting.partners.gympass.com/booking/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"2ced20d2-2857-4419-9d38-ac177fca22b8"}],"id":"7099574b-85fd-4269-8625-f6b642e16073","description":"<p>A slot represents a class with specific date and time. For example, you can have a class called Yoga with a slot on Sunday at 9 AM and another slot on Monday at 8 AM.</p>\n<p>A slot is always related to a class that was previously registered. See class session to find out how to register a class.</p>\n","_postman_id":"7099574b-85fd-4269-8625-f6b642e16073"},{"name":"Bookings","item":[{"name":"Validate Booking","id":"116ab0c2-ef09-4d74-bf93-8d5fc5ea1d63","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer ","type":"text"}],"body":{"mode":"raw","raw":"{\n \"status\": \"REJECTED\",\n \"reason\": \"Class is full\",\n \"reason_category\": \"CLASS_IS_FULL\",\n \"virtual_class_url\": \"http://your_url.com\"\n}","options":{"raw":{"language":"json"}}},"url":"https://apitesting.partners.gympass.com/booking/v2/gyms/:gym_id/bookings/:booking_number","description":"<p>Example of how to update the status of a given booking.</p>\n<p>When calling the PATCH update you must pass through either a 2 (Reserved Booking), a 3 (Rejected Booking) or 5 (Cancelled by the Gym).</p>\n<p>Request</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\"> {\n \"status\": \"REJECTED\",\n \"reason\": \"Class is full\",\n \"reason_category\": \"CLASS_IS_FULL\",\n \"virtual_class_url\": \"http://your_url.com\"\n}\n\n</code></pre>\n<p>Request Params</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>class_id</td>\n<td>The class id related to that booking.</td>\n<td>Int</td>\n<td>True</td>\n</tr>\n<tr>\n<td>status</td>\n<td>If the gym is accepting or rejecting the booking. Values: Reserved = 2 or Rejected = 3.</td>\n<td>Int</td>\n<td>True</td>\n</tr>\n<tr>\n<td>reason</td>\n<td>The reason is used commonly when the booking is rejected.</td>\n<td>String</td>\n<td>False</td>\n</tr>\n<tr>\n<td>virtual_class_url</td>\n<td>If this is a virtual class, you can put here the URL that the user will need to use to access the class virtually.</td>\n<td>String</td>\n<td>False</td>\n</tr>\n</tbody>\n</table>\n</div><p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Accept</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n<tr>\n<td>booking_number</td>\n<td>The booking identifier at Wellhub. Returned when creating a Booking.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">204 - 0K - NO CONTENT\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["booking","v2","gyms",":gym_id","bookings",":booking_number"],"host":["apitesting","partners","gympass","com"],"query":[],"variable":[{"type":"any","value":"","key":"gym_id"},{"type":"any","value":"","key":"booking_number"}]}},"response":[],"_postman_id":"116ab0c2-ef09-4d74-bf93-8d5fc5ea1d63"}],"id":"89759fbb-1008-430d-b44f-39af53e6b8fd","description":"<p><strong>IMPORTANT: Booking requests need to be confirmed under 15 minutes, otherwise they will be automatically rejected.</strong></p>\n","_postman_id":"89759fbb-1008-430d-b44f-39af53e6b8fd"}],"id":"49cb417c-0ddb-4d3a-99cb-286545755d96","description":"<p>Endpoints to perform booking operations in order to test the integration, such as class creation and slot creation (needed to test the booking flow).</p>\n","_postman_id":"49cb417c-0ddb-4d3a-99cb-286545755d96"},{"name":"Partner Products","item":[{"name":"List gym products","id":"140ec58d-bec8-413a-afee-10394df14d64","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"https://apitesting.partners.gympass.com/setup/v1/gyms/gym_id/products","description":"<p>Example of how to list all products of a particular gym.</p>\n<p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Accept</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"gym_id\": 100001,\n   \"products\": [\n       {\n           \"product_id\": 100003,\n           \"name\": \"Virtual Class\",\n           \"updated_at\": \"2022-09-29T14:11:02Z\"\n       },\n       {\n           \"product_id\": 100002,\n           \"name\": \"Outdoor Training\",\n           \"updated_at\": \"2022-09-29T14:11:02Z\"\n       }\n   ]\n}\n\n</code></pre>\n","urlObject":{"path":["gyms","gym_id","products"],"host":["https://apitesting.partners.gympass.com/setup/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"140ec58d-bec8-413a-afee-10394df14d64"}],"id":"08e42375-9c99-44a1-a69e-ff251de44743","description":"<p>A Product determines what Gyms a user can access on a Wellhub plan. In addition, the product also represents an activity that the user can perform, so its data commonly required to provide on some requests, such as for creating a class.</p>\n<p>For this purpose, we provide an API that allows you to retrieve all Products that are associated with a Gym, so you can use the correct Product IDs on your integration setup.</p>\n","_postman_id":"08e42375-9c99-44a1-a69e-ff251de44743"},{"name":"Webhook Events","item":[{"name":"Check-in Event","id":"348c32e8-2be4-4e63-ac4d-dfe6cb64c926","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"X-Gympass-Signature","value":"","type":"text"}],"body":{"mode":"raw","raw":" {\n \"event_type\": \"checkin\",\n \"event_data\": {\n \"user\": {\n \"unique_token\": \"0123456789012\",\n \"first_name\": \"Firstname\",\n \"last_name\": \"Lastname\",\n \"email\": \"user@email.com\",\n \"phone_number\": \"447889123456\"\n },\n \"location\": {\n \"lat\": 51.4937541,\n \"lon\": 0.0633661\n },\n \"gym\": {\n \"id\": 123456,\n \"title\":\" Name of the Gym\",\n \"product\": {\n \"id\": 1\n \"description\":\"Description of product\"\n }\n },\n \"timestamp\": 1666629613\n }\n }"},"url":"https://your-webhook-url-here.com","urlObject":{"protocol":"https","host":["your-webhook-url-here","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"348c32e8-2be4-4e63-ac4d-dfe6cb64c926"},{"name":"Booking Request Event","event":[{"listen":"prerequest","script":{"id":"c0caaf60-1306-4411-b4a9-2f8d73c20723","exec":["const hash = CryptoJS.HmacSHA1(request.data, 'office_eagle_consider').toString(CryptoJS.digest).toUpperCase();","console.log(hash);","pm.globals.set(\"hash\", hash);"],"type":"text/javascript"}}],"id":"05edd434-c90e-44df-a61d-5ba4135f099d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-gympass-signature","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\n \"event_type\": \"booking-requested\",\n \"event_data\": {\n \"user\": {\n \"unique_token\": \"123456789012\",\n \"name\": \"Firstname Lastname\",\n \"email\": \"user@email.com\"\n },\n \"slot\": {\n \"id\": 01234567,\n \"gym_id\": 012345,\n \"class_id\": 654321,\n \"booking_number\": \"BK_A1B2C3\"\n },\n \"timestamp\": 1560983373378,\n \"event_id\": \"7e8cbb0f-9681-4d3e-8c36-2b3dd6ecbadb\"\n }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-webhook-url-here.com","urlObject":{"protocol":"https","host":["your-webhook-url-here","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"05edd434-c90e-44df-a61d-5ba4135f099d"},{"name":"Booking Cancellation Event Copy","event":[{"listen":"prerequest","script":{"id":"c0caaf60-1306-4411-b4a9-2f8d73c20723","exec":["const hash = CryptoJS.HmacSHA1(request.data, 'office_eagle_consider').toString(CryptoJS.digest).toUpperCase();","console.log(hash);","pm.globals.set(\"hash\", hash);"],"type":"text/javascript"}}],"id":"29af6dcf-e919-43d4-aa20-3455104007dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-gympass-signature","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\n \"event_type\": \"booking-canceled\",\n \"event_data\": {\n \"user\": {\n \"unique_token\": \"123456789012\"\n },\n \"slot\": {\n \"id\": 01234567,\n \"gym_id\": 012345,\n \"class_id\": 654321,\n \"booking_number\": \"BK_A1B2C3\"\n },\n \"timestamp\": 1560983373378,\n \"event_id\": \"7e8cab0f-9981-4d3e-8c36-2b3dd6ecbadb\"\n }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-webhook-url-here.com","urlObject":{"protocol":"https","host":["your-webhook-url-here","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"29af6dcf-e919-43d4-aa20-3455104007dd"},{"name":"Booking Late Cancellation Event","id":"212557dc-9458-4206-900f-bff6e43095b3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n \"event_type\": \"booking-late-canceled\",\n \"event_data\": {\n \"user\": {\n \"unique_token\": \"123456789012\"\n },\n \"slot\": {\n \"id\": 01234567,\n \"gym_id\": 012345,\n \"class_id\": 654321,\n \"booking_number\": \"BK_A1B2C3\"\n },\n \"timestamp\": 1560983373378,\n \"event_id\": \"7e8cab0f-9981-4d3e-8c36-2b3dd6ecbadb\"\n }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-webhook-url-here.com","urlObject":{"protocol":"https","host":["your-webhook-url-here","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"212557dc-9458-4206-900f-bff6e43095b3"}],"id":"957ac84f-7ffd-453f-858a-a8a052c26cad","description":"<p>The Gympass webhooks will notify you when specific events are triggered. This notification is an HTTP POST request to your registered URL.</p>\n<p>This document describes both the events that are triggered along with the data they send and the API resources available for the webhooks.</p>\n","_postman_id":"957ac84f-7ffd-453f-858a-a8a052c26cad"},{"name":"Webhook Simulations","item":[{"name":"Create Booking","id":"aecc2e3b-25e3-47ef-8b08-22571ddd9f19","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"gympass_user_id\": \"1000000000007\",\n  \"slot_id\": 264433,\n  \"class_id\": 12538\n}"},"url":"https://apitesting.partners.gympass.com/helper/v1/gyms/:gym_id/simulate/bookings","description":"<p>Example of how to simulate a booking for a specific gym.</p>\n<p>Request</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"gympass_user_id\": \"1000000000002\",\n  \"slot_id\": 9325,\n  \"class_id\": 8268\n}\n\n</code></pre>\n<p>Request Params</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gympass_user_id</td>\n<td>13 digits ID wich identifies the user that will perform the booking.</td>\n</tr>\n<tr>\n<td>slot_id</td>\n<td>The identifier of the slot at GymWellhubpass. Returned when create a Slot.</td>\n</tr>\n<tr>\n<td>class_id</td>\n<td>The identifier of the class at Wellhub. Returned when create a Class.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Accept</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"event_data\": {\n       \"user\": {\n           \"unique_token\": \"1000000000002\",\n           \"name\": \"Thomas Patrick\",\n           \"email\": \"thomas@mail.com\",\n           \"phone_number\": \"+19415693005\"\n       },\n       \"slot\": {\n           \"id\": 9325,\n           \"gym_id\": 100001,\n           \"class_id\": 8268,\n           \"booking_number\": \"BK_HEQYZMK\"\n       },\n       \"timestamp\": 1664461204015,\n       \"event_id\": \"45b4b8a4-f2f3-4b33-adf0-504c33f27642\"\n   },\n   \"event_type\": \"booking-requested\"\n}\n\n</code></pre>\n","urlObject":{"path":["gyms",":gym_id","simulate","bookings"],"host":["https://apitesting.partners.gympass.com/helper/v1"],"query":[],"variable":[{"type":"any","value":"404","key":"gym_id"}]}},"response":[],"_postman_id":"aecc2e3b-25e3-47ef-8b08-22571ddd9f19"},{"name":"Cancel Booking","id":"5442298b-2958-49f9-91a9-afecdbcd41bf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"}],"url":"https://apitesting.partners.gympass.com/helper/v1/gyms/gym_id/simulate/bookings/booking_number/cancel","description":"<p>Example of how to simulate a booking cancellation/late cancel.</p>\n<p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Accept</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer  - If you do not have this api key, ask it to Wellhub contact.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Path Variables</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gym_id</td>\n<td>The identifier of the gym at Wellhub. Provided by Wellhub.</td>\n</tr>\n<tr>\n<td>booking_reference_number</td>\n<td>Booking identifier. Returned when create a booking.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Cancel Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"event_data\": {\n       \"user\": {\n           \"unique_token\": \"1000000000003\",\n           \"name\": \"Patty Cork\",\n           \"email\": \"patty@mail.com\",\n           \"phone_number\": \"+19403811663\"\n       },\n       \"slot\": {\n           \"id\": 9324,\n           \"gym_id\": 100001,\n           \"class_id\": 8268,\n           \"booking_number\": \"BK_VLZNUIJ\"\n       },\n       \"timestamp\": 1664462883131,\n       \"event_id\": \"a42d8911-4447-4df8-8a79-095657c0af26\"\n   },\n   \"event_type\": \"booking-canceled\"\n}\n\n</code></pre>\n<p>Late Cancel Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"event_data\": {\n       \"user\": {\n           \"unique_token\": \"1000000000003\",\n           \"name\": \"Patty Cork\",\n           \"email\": \"patty@mail.com\",\n           \"phone_number\": \"+19403811663\"\n       },\n       \"slot\": {\n           \"id\": 9324,\n           \"gym_id\": 100001,\n           \"class_id\": 8268,\n           \"booking_number\": \"BK_VLZNUIJ\"\n       },\n       \"timestamp\": 1664462883131,\n       \"event_id\": \"a42d8911-4447-4df8-8a79-095657c0af26\"\n   },\n   \"event_type\": \"booking-late-canceled\"\n}\n\n</code></pre>\n","urlObject":{"path":["gyms","gym_id","simulate","bookings","booking_number","cancel"],"host":["https://apitesting.partners.gympass.com/helper/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"5442298b-2958-49f9-91a9-afecdbcd41bf"},{"name":"Check-in","id":"efc21fce-87fe-44a8-878a-8f00d6a00455","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{  \"gympass_user_id\": \"1000000000003\",  \"product_id\": 100003,  \"booking_number\": \"BK_VLZNUIJ\"}\n","options":{"raw":{"language":"json"}}},"url":"https://apitesting.partners.gympass.com/helper/v1/gyms/:gym_id/simulate/checkins","urlObject":{"path":["gyms",":gym_id","simulate","checkins"],"host":["https://apitesting.partners.gympass.com/helper/v1"],"query":[],"variable":[{"id":"74aaf8e1-ea50-49fb-a431-52e943d0e8fe","type":"any","value":"","key":"gym_id"}]}},"response":[],"_postman_id":"efc21fce-87fe-44a8-878a-8f00d6a00455"},{"name":"Checkin-booking-occured","id":"09d5a341-2dae-43ea-bcb7-6e6cf99e193d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\"gympass_user_id\": \"1000000000003\",\n\"product_id\": 100003,\n\"booking_number\": \"BK_VLZNUIJ\"\n}\n","options":{"raw":{"language":"json"}}},"url":"https://apitesting.partners.gympass.com/helper/v1/gyms/:gym_id/simulate/checkins","urlObject":{"path":["gyms",":gym_id","simulate","checkins"],"host":["https://apitesting.partners.gympass.com/helper/v1"],"query":[],"variable":[{"type":"any","value":"404","key":"gym_id"}]}},"response":[],"_postman_id":"09d5a341-2dae-43ea-bcb7-6e6cf99e193d"},{"name":"Cancel Booking","id":"7929708d-5409-4d37-8fb2-ceeae6dd8392","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://apitesting.partners.gympass.com/helper/v1/gyms/:gym_id/simulate/bookings/:booking_number/cancel","urlObject":{"path":["gyms",":gym_id","simulate","bookings",":booking_number","cancel"],"host":["https://apitesting.partners.gympass.com/helper/v1"],"query":[],"variable":[{"id":"a7e5ee22-99ab-4f49-a579-caea81bb41f8","type":"any","value":"","key":"gym_id"},{"id":"5478e67d-5f4f-4b98-8daa-6625332bbaab","type":"any","value":"","key":"booking_number"}]}},"response":[],"_postman_id":"7929708d-5409-4d37-8fb2-ceeae6dd8392"}],"id":"4b5141c4-25e6-467d-9660-ed030791f79a","description":"<p>Endpoints to perform integration simulations.</p>\n","_postman_id":"4b5141c4-25e6-467d-9660-ed030791f79a"},{"name":"Access Control API","item":[{"name":"Validate Checkin","id":"b205ee9c-7833-4832-adb5-5a431a0adaa0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"X-Gym-Id","value":"gym_id","type":"text"}],"body":{"mode":"raw","raw":"{\"gympass_id\":\"1000000000001\"}","options":{"raw":{"language":"json"}}},"url":"https://apitesting.partners.gympass.com/access/v1/validate","description":"<p>Example of how to validate the entry of users at a gym and consequently generate transactions to pay them later.</p>\n<p>Request</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"gympass_id\":\"1000000000001\"}\n\n</code></pre>\n<p>Request Params</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gympass_id</td>\n<td>This is the user’s gympass_id with 13 digits, and the \"value/option\" will require previous check-in at the gym.</td>\n<td>String</td>\n<td>True</td>\n</tr>\n</tbody>\n</table>\n</div><p>Headers</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>X-Gym-Id</td>\n<td><strong>Required field</strong>  <br />This is the ID of the gym you’re setting up. Choose it according to the list of gyms you manage.</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td><strong>Required field</strong>  <br />The Content-Type entity-header is used to indicate the media type of the resource. Use always application/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td><strong>Required field</strong>  <br />The key is a string that is generated for you and identifies you and the gyms you are allowed to validate products for. To request yours please contact Wellhub Technical Sales.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"metadata\": {\n        \"total\": 1,\n        \"errors\": 0\n    },\n    \"results\": {\n        \"user\": {\n            \"gympass_id\": \"1000000000001\"\n        },\n        \"gym\": {\n            \"id\": 1,\n            \"product\": {\n                \"id\": 2,\n                \"description\": \"Produto Teste 2\"\n            }\n        },\n        \"validated_at\": \"2022-09-20T14:24:10Z\"\n    }\n}\n\n</code></pre>\n","urlObject":{"path":["validate"],"host":["https://apitesting.partners.gympass.com/access/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"b205ee9c-7833-4832-adb5-5a431a0adaa0"}],"id":"bc788dda-3551-408c-8289-6a0c0504fae0","description":"<p>Endpoints to perform util operations in order to test the integration, such as class creation and slot creation (needed to test the booking flow).</p>\n","_postman_id":"bc788dda-3551-408c-8289-6a0c0504fae0"}],"event":[{"listen":"prerequest","script":{"id":"a3c9ff2b-06ec-4186-827e-552e99c106a7","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"dca1954c-e22a-47d9-9cac-1540def3cf6b","type":"text/javascript","exec":[""]}}],"variable":[{"key":"partners-testing-helper-api","value":"https://apitesting.partners.gympass.com/helper/v1","type":"string"},{"key":"partners-testing-helper-booking-api","value":"https://apitesting.partners.gympass.com/booking/v1","type":"string"},{"key":"partners-testing-helper-gym-access-api","value":"https://apitesting.partners.gympass.com/access/v1","type":"string"},{"key":"partners-testing-helper-setup-api","value":"https://apitesting.partners.gympass.com/setup/v1","type":"string"},{"key":"api_key","value":""}]}