### API v1 Endpoint Example Source: https://help.perfectgym.com/hc/en-001/articles/39318538813073-API-v1-phase-out An example of an API v1 endpoint structure. Integrations using this format should be migrated. ```text Classes/UserClasses ``` -------------------------------- ### API v2 Endpoint Example Source: https://help.perfectgym.com/hc/en-001/articles/39318538813073-API-v1-phase-out An example of an API v2 endpoint structure. This is the recommended format for new and updated integrations. ```text /v2.1/odata/Classes ``` -------------------------------- ### Gantner CARD reader FID Configuration Example Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJG9zuXBIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBGlKwrCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOy9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTU2OTExOTE2OTctQ2FyZC1yZWFkZXJzLXNldC11cAY7CFQ6CXJhbmtpCQ%3D%3D--dfb1ea3ffd73df88d41021261c7f10cc075b0968 This example shows how to configure the CARD reader FID for Gantner online locker systems. Ensure the GAT Direct Connect service is running. ```text 172.24.21.20:8207 ``` -------------------------------- ### Example Welcome Email Body Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBFIWdlDJDoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJHYXe7BIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiWy9oYy9lbi0wMDEvYXJ0aWNsZXMvMzk4NzM4Mjc5MTU3OTMtQXV0b21hdGlvbi1SdWxlLVVzZXItR3Vlc3QtQWNjb3VudC1IYXMtQmVlbi1DcmVhdGVkBjsIVDoJcmFua2kK--904b3ff23fc118f8b673435c8585f90c8deb628f A sample email body to welcome new guests, providing essential information for their first visit and encouraging engagement. ```html Hi [USER_FIRST_NAME], Thank you for signing up for a guest pass at [USER_HOME_CLUB_NAME]]! We're excited to show you everything our club has to offer. Your pass is now active, so you can come in for your first visit anytime. When you arrive, please check in at the front desk, and our team will be happy to give you a tour and answer any questions you might have. We recommend bringing a water bottle and a towel for your workout. If you have any questions before you arrive, please don't hesitate to call us at [CLUB_PHONE]. We can't wait to meet you! Sincerely, The Team at [CLUB_NAME] ``` -------------------------------- ### Access Server Configuration File Example Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJFomTZTKzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBGQMcxSKzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkidS9oYy9lbi0wMDEvYXJ0aWNsZXMvNDc2MzYzOTgzMDMzNzctSG93LXRvLWNoZWNrLXdoZXRoZXItYW4tQWNjZXNzLUNvbnRyb2wtZGV2aWNlLWlzLXByZXNlbnQtaW4tdGhlLWxvY2FsLW5ldHdvcmsGOwhUOglyYW5raQo%3D--0bc2f03e4c1f16c3964ef8524a14ff23a77e2953 Examine the `` section for direct IP devices or compare the count of `` with IP Scanner results for ID-connected devices. ```xml ``` -------------------------------- ### Example Welcome Email Subject Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBFIWdlDJDoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJHYXe7BIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiWy9oYy9lbi0wMDEvYXJ0aWNsZXMvMzk4NzM4Mjc5MTU3OTMtQXV0b21hdGlvbi1SdWxlLVVzZXItR3Vlc3QtQWNjb3VudC1IYXMtQmVlbi1DcmVhdGVkBjsIVDoJcmFua2kK--904b3ff23fc118f8b673435c8585f90c8deb628f Use this subject line to personalize welcome emails for new guests, including the club name. ```text Subject: We're Excited to Welcome You to [CLUB_NAME]! ``` -------------------------------- ### Unicard Reader COM Port Configuration Example Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJG9zuXBIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBGlKwrCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOy9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTU2OTExOTE2OTctQ2FyZC1yZWFkZXJzLXNldC11cAY7CFQ6CXJhbmtpCQ%3D%3D--dfb1ea3ffd73df88d41021261c7f10cc075b0968 Example configuration for Unicard readers operating in COM port emulation mode. Adjust baud rate, port number, and data format as needed. ```text UnicardBaudRate - 19200 UnicardPortNumber - COM3 UnicardMode - TextWithEOL UnicardLength - 14 UnicardLengthDecoded - 14 ``` -------------------------------- ### OData Query Example Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJEX96bCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBGDKLXCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiSC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg5MzE4Mzg4NjUtQVBJLUludHJvZHVjdGlvbi10by1DUVJTLWNvbmNlcHQGOwhUOglyYW5raQo%3D--94e0a96c961a2d11940f99baff54ca278f234c83 Demonstrates how to query members using OData, including filtering by name and expanding related data like 'homeClub'. ```APIDOC ## GET /api/v2/odata/Members ### Description Queries the Members entity using OData. ### Method GET ### Endpoint /api/v2/odata/Members ### Query Parameters - **$filter** (string) - Optional - Filters the results based on specified criteria. Example: `firstName eq 'John'` - **$expand** (string) - Optional - Expands related entities. Example: `homeClub` ### Request Example ``` GET /api/v2/odata/Members?$filter=firstName eq 'John'&$expand=homeClub ``` ### Response #### Success Response (200) Returns a collection of members matching the query criteria. ``` ```APIDOC ## GET /api/v2/odata/PaymentPlans ### Description Retrieves payment plans with specific criteria, such as being not deleted and available in a particular club. ### Method GET ### Endpoint /api/v2/odata/PaymentPlans ### Query Parameters - **$top** (integer) - Optional - Limits the number of results. Example: `100` - **$filter** (string) - Optional - Filters the results. Example: `isDeleted eq false and availableInClubs/any(c: c/id eq 1)` ### Request Example ``` GET /api/v2/odata/PaymentPlans?$top=100&$filter=isDeleted eq false and availableInClubs/any(c: c/id eq 1) ``` ### Response #### Success Response (200) Returns a collection of payment plans matching the query criteria. ``` -------------------------------- ### Unicard Length Decoding Example Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJG9zuXBIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBGlKwrCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOy9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTU2OTExOTE2OTctQ2FyZC1yZWFkZXJzLXNldC11cAY7CFQ6CXJhbmtpCQ%3D%3D--dfb1ea3ffd73df88d41021261c7f10cc075b0968 Illustrates how to set UnicardLength and UnicardLengthDecoded parameters to format card numbers. This example transforms a 6-character input into a 10-character format. ```text UnicardLength - 6 UnicardLengthDecoded - 10 ``` -------------------------------- ### JSON Patch Update Example Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJEX96bCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBGDKLXCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiSC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg5MzE4Mzg4NjUtQVBJLUludHJvZHVjdGlvbi10by1DUVJTLWNvbmNlcHQGOwhUOglyYW5raQo%3D--94e0a96c961a2d11940f99baff54ca278f234c83 Illustrates how to perform partial updates on a resource using the HTTP PATCH method with JSON Patch syntax. ```APIDOC ## PATCH /Api/v2/Members/UpdateMemberDetails/{memberId} ### Description Updates specific details of a member using JSON Patch format. ### Method PATCH ### Endpoint /Api/v2/Members/UpdateMemberDetails/{memberId} ### Path Parameters - **memberId** (string) - Required - The ID of the member to update. ### Request Body - **Operations** (array) - Required - A list of operations to apply. Each operation object should contain: - **op** (string) - Required - The operation type (e.g., 'replace', 'add', 'remove'). - **path** (string) - Required - The path to the field to modify (e.g., 'PersonalData/Email'). - **value** (any) - Required - The new value for the field. ### Request Example ```json [ { "op": "replace", "path": "PersonalData/Email", "value": "test1234@perfectgym.com" } ] ``` ### Response #### Success Response (200) Indicates that the partial update was successful. The response body may contain the updated resource or a confirmation. ``` -------------------------------- ### Configuring chd_fdrv.ini for CHD Printer Source: https://help.perfectgym.com/hc/en-001/articles/39315682735249-How-to-install-Fiscal-Printers-for-POSweb Example configuration for the chd_fdrv.ini file, specifying the COM number for the CHD printer. ```ini ComNumber = 2 ``` -------------------------------- ### Example Barcode Scan Input Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBH6AoDCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBFrC8LCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiPy9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTgyNzgzMDYzMjEtS2V5Ym9hcmQtU2Nhbm5lci1zZXQtdXAGOwhUOglyYW5raQo%3D--6bca83af9442f7d6fd29997bdb9234256637730c Scan a barcode in a notepad to check reader configuration, including suffix and prefix settings. Ensure to include the expected prefix and suffix characters. ```text ~1234567 ``` ```text @1234567 ``` -------------------------------- ### Access Access Server Configuration File Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJFomTZTKzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJFR8JzCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkidS9oYy9lbi0wMDEvYXJ0aWNsZXMvNDc2MzYzOTgzMDMzNzctSG93LXRvLWNoZWNrLXdoZXRoZXItYW4tQWNjZXNzLUNvbnRyb2wtZGV2aWNlLWlzLXByZXNlbnQtaW4tdGhlLWxvY2FsLW5ldHdvcmsGOwhUOglyYW5raQo%3D--7e214d53a43d041124980e67b0948f431d353157 Locate and open the `AccessServerConfig` file using a text editor to review registered device IP addresses and IDs. This file is typically found in the Perfect Gym AccessServer installation directory. ```plaintext C:\Program Files (x86)\Perfect Gym\AccessServer ``` ```plaintext AccessServerConfig ``` -------------------------------- ### Example 'Test' Event Payload Source: https://help.perfectgym.com/hc/en-001/articles/39316107659665-How-to-use-and-set-up-Webhooks A specific example of a 'Test' event payload. This payload is sent when you perform a test of your configured webhook to ensure it is receiving events correctly. ```json { "event": "Test", "triggeredDate": "2020-06-01T14:44:46Z", "data": { "valueLong": 12345678, "valueText": "some text value", "nestedData": { "text": "nested some text value", "date": "2020-06-01T14:44:46Z", "amount": 33.78 } } } ``` -------------------------------- ### NFC Reader Card Number Format Example Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJG9zuXBIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBGlKwrCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOy9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTU2OTExOTE2OTctQ2FyZC1yZWFkZXJzLXNldC11cAY7CFQ6CXJhbmtpCQ%3D%3D--dfb1ea3ffd73df88d41021261c7f10cc075b0968 Example configuration for NFC readers, specifying the format for reading card numbers. Choose between Hexadecimal or Decimal representation. ```text NfcCardNumberFormat - Hex ``` -------------------------------- ### Get IPv4 Address using ipconfig Source: https://help.perfectgym.com/hc/en-001/articles/47636398303377-How-to-check-whether-an-Access-Control-device-is-present-in-the-local-network Use the `ipconfig` command in the Command Prompt to find your computer's IPv4 address. This is essential for setting up network scans. ```bash ipconfig ``` -------------------------------- ### Configuring sdrv.ini for CHD Printer Source: https://help.perfectgym.com/hc/en-001/articles/39315682735249-How-to-install-Fiscal-Printers-for-POSweb Example configuration for the sdrv.ini file, specifying serial port and protocol version for CHD printer integration. ```ini [ECR_1] ComNumber = 1 SerialProtocolVersion=3 ``` -------------------------------- ### First Request for Keyset Paging Source: https://help.perfectgym.com/hc/en-001/articles/41042960463889-Efficient-Paging-in-OData-APIs The initial OData request to start keyset paging. It fetches the first batch of records, ordered by 'id' in ascending order, and includes various expansions for related data. ```http GET /Api/v2.2/odata/Members ?$expand=familyParents,familyChildren,customAttributes,consultant,paymentSources,memberBalance,marketingSources,agreementAnswers &$filter=isDeleted eq false and memberType eq 'Member' &$orderby=id asc &$top=50 ``` -------------------------------- ### Complex OData Query for Payment Plans Source: https://help.perfectgym.com/hc/en-001/articles/39318931838865-API-Introduction-to-CQRS-concept Example of a complex OData query combining $top, $filter, and the 'any' operator to retrieve specific payment plans. ```http GET /api/v2/odata/PaymentPlans?$top=100&$filter=isDeleted eq false and availableInClubs/any(c: c/id eq 1) ``` -------------------------------- ### CHD Printer Error Code Example Source: https://help.perfectgym.com/hc/en-001/articles/39315682735249-How-to-install-Fiscal-Printers-for-POSweb This snippet shows an example of an error message found in the Archive folder for CHD printer issues, indicating an internal driver error. ```ini [CHD_FDRV] ResultCode=2 Message=SDRV error ErrorCode=99 – it is “Internal driver error” ``` -------------------------------- ### Get Members with Member Type Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJEZdbTCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJF6NrnCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiQi9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkxNTgyMDA3MjEtUmVsZWFzZS1ub3Rlcy1SLTkwLVEzLTIwMjMGOwhUOglyYW5raQg%3D--83292fe317b7983b0dc2331b8227b280bdb28700 Retrieves member information, including a 'memberType' property (guest, member, lead). ```APIDOC ## GET /v2.1/odata/Members ### Description Retrieves a list of members. The response includes a 'memberType' property which can be 'guest', 'member', or 'lead', providing information on all types of users. ### Method GET ### Endpoint /v2.1/odata/Members ### Query Parameters - **memberType** (string) - Optional - Filters members by type (guest, member, lead). ``` ```APIDOC ## GET /v2.1/odata/Member/{key} ### Description Retrieves a specific member's details. The response includes a 'memberType' property which can be 'guest', 'member', or 'lead'. ### Method GET ### Endpoint /v2.1/odata/Member/{key} ### Parameters #### Path Parameters - **key** (string) - Required - The unique identifier of the member. ``` -------------------------------- ### Example Webhook Payload Structure Source: https://help.perfectgym.com/hc/en-001/articles/39316107659665-How-to-use-and-set-up-Webhooks This is the typical JSON structure for a webhook event payload sent by the Perfect Gym system. It includes the event name, the date and time it was triggered, and the specific data associated with the event. ```json { "event": "event-technical-name-here", "triggeredDate": "utc-based-time", "data": { event data fields here } } ``` -------------------------------- ### Get Specific Member with Member Type Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJEZdbTCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJHf1v%2FBIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiQi9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkxNTgyMDA3MjEtUmVsZWFzZS1ub3Rlcy1SLTkwLVEzLTIwMjMGOwhUOglyYW5raQk%3D--93bc7d215a748db93e6eb09eecb42fa8e3786e4d Retrieves a specific member by key, including their type (guest, member, lead). ```APIDOC ## GET /v2.1/odata/Member/{key} ### Description Retrieves a specific member by their unique key. The response includes a 'memberType' property which can be 'guest', 'member', or 'lead'. ### Method GET ### Endpoint /v2.1/odata/Member/{key} ### Parameters #### Path Parameters - **key** (string) - Required - The unique identifier of the member. ``` -------------------------------- ### Get CRM Events Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJEZdbTCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJF6NrnCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiQi9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkxNTgyMDA3MjEtUmVsZWFzZS1ub3Rlcy1SLTkwLVEzLTIwMjMGOwhUOglyYW5raQg%3D--83292fe317b7983b0dc2331b8227b280bdb28700 Retrieves existing events from the CRM, providing information about the event's time and assigned employees to avoid double bookings. ```APIDOC ## GET /v2.1/odata/Crm2Events ### Description Retrieves a list of existing events from the CRM. This endpoint helps in avoiding double bookings by providing details on event times and assigned employees. ### Method GET ### Endpoint /v2.1/odata/Crm2Events ``` -------------------------------- ### /v2/Product/Use Source: https://help.perfectgym.com/hc/en-001/articles/39318578182801-Release-notes-R-86-Q2-2022 Request to use a product. ```APIDOC ## POST /v2/Product/Use ### Description Initiates a request to utilize a specific product. ### Method POST ### Endpoint /v2/Product/Use ### Parameters ### Request Body ### Request Example ### Response #### Success Response (200) #### Response Example ``` -------------------------------- ### Users/SignUp Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Handles the sign-up process for a new user, adding them with a contract or as a guest. Also supports adding a guest member. ```APIDOC ## POST /v2.1/Members/AddContractMember ### Description Manages the sign-up process for new users, allowing them to be added with a contract or as a guest. This endpoint also facilitates adding guest members. ### Method POST ### Endpoint /v2.1/Members/AddContractMember ``` -------------------------------- ### Example 499 Business Validation Error Response Source: https://help.perfectgym.com/hc/en-001/articles/39319169958673-API-errors This JSON structure details business validation errors returned by the API. It includes a list of errors, each with a human-readable message, an error code, and the property that caused the error. ```json { "errors": [ { "message": "Value must be number greater than 0", "property": "PaymentPlanId", "code": "ValueMustBeGreaterThan0", "nestedBusinessErrors": [], "data": null }, { "message": "The StartDate field is required.", "property": "StartDate", "code": "MissingRequiredField", "nestedBusinessErrors": [], "data": null } ] } ``` -------------------------------- ### Create Product for Booking Event Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJEhSovCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJFL%2F0jCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiWS9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg0Njc1MTg4NjUtSG93LXRvLWNvbmZpZ3VyZS1BZGRpdGlvbmFsbHktUGFpZC1DbGFzc2VzLWluLVBHTQY7CFQ6CXJhbmtpBg%3D%3D--3d2b4043a26be33c1591ec523ccf09de81a2cffb This describes how to create a new product that is a 'Booking Event' and associate it with a specific Class Category. Ensure 'Store state for a user' is marked for visibility and 'Service type' is set to 'Booking Event'. ```text Once you have created it's necessary to create **Product**(ticket, entrance) connected with **Class Category**. For more information about new product go to the following article. 11. Go to **Sales - >** **Products** 12.**** Click on **Add New Product.** 13. Fill all required fields: * **Name.** * **Store state for a user** it's important to mark it, otherwise product won't be visible in member's profile. * **Sell Price.** * **Clubs.** * **Type** it has to be service. * **Available for.** * **Service type** It has to be **Booking Event.** Once**Booking Event** is set up click **Related Time Table Events** and connect this product with specific **Class Category.** It's connected with class category, not class type! For more information go to this article. 14. On the bottom of the screen click on **Insert** button. **You have created product which is associated with specific Class Category.** ``` -------------------------------- ### Products/Products Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Retrieves a list of available products. ```APIDOC ## GET /v2.1/odata/Products ### Description Retrieves a list of all available products. ### Method GET ### Endpoint /v2.1/odata/Products ``` -------------------------------- ### Access Server Configuration File Name Source: https://help.perfectgym.com/hc/en-001/articles/47636398303377-How-to-check-whether-an-Access-Control-device-is-present-in-the-local-network Open the `AccessServerConfig` file with a text editor to review device configurations. This file is crucial for verifying device IP addresses and IDs. ```plaintext AccessServerConfig ``` -------------------------------- ### Configure Access Server Network Settings Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJFomTZTKzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBGMGVdTKzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkidS9oYy9lbi0wMDEvYXJ0aWNsZXMvNDc2MzYzOTgzMDMzNzctSG93LXRvLWNoZWNrLXdoZXRoZXItYW4tQWNjZXNzLUNvbnRyb2wtZGV2aWNlLWlzLXByZXNlbnQtaW4tdGhlLWxvY2FsLW5ldHdvcmsGOwhUOglyYW5raQY%3D--f7f6c579e95a7da1cdd6a6c2c5919c3e55b31be0 Examine the `` section in the `AccessServerConfig` file to verify the IP addresses of direct IP devices like Gantner. This helps in comparing scanner results with the server's configuration. ```xml ``` -------------------------------- ### Workaround: Enable Paying for Classes via Contract Settings Source: https://help.perfectgym.com/hc/en-001/articles/39318467518865-How-to-configure-Additionally-Paid-Classes-in-PGM This is an alternative method to Step 2, allowing all extra-paid classes to be included in a payment plan by ticking a checkbox in the payment plan's settings. It's less specific than using contract extras. ```text Instead of step 2 you can make a work around and go to the **Payment Plan** configuration screen and in the **Settings** field tick the **Can pay for classes using contract.** If you tick this checkbox then all class categories, which are marked in the system as extra paid, will be included in this payment plan. It shows how to make individual category as included in the payment plan. That is why we recommend using **Step 2** because otherwise there is no option to select a particular class category connected with that payment plan. ``` -------------------------------- ### Create a Class Category for Additionally Paid Classes Source: https://help.perfectgym.com/hc/en-001/articles/39318467518865-How-to-configure-Additionally-Paid-Classes-in-PGM This involves creating a new class category and marking it as 'Class are additionally paid'. This is the first step in setting up paid classes. ```text STEP 1 How to create additionally paid classes? The very first step you need to do is to create a **Class Category** with **Classes Are Additionally Paid** checkbox ticket. Go to this article for additional information. 1. Go to **PGM - > Classes -> Class Categories.** 2. Then click on **Add Class Category.** 3. Provide the **Name of the Class**. 4.Tick on **Class are additionally paid.** 5. Click on **Save.** Then create **Class Type** connected with created **Class Category.** 6. Go to**Classes - > Class types.** 7.**** Click on**Add Class** button. 8. Fill in **Class Name.** 9. Select **Class Category** that you have already added in previous points 1 - 5. 10. Click on **Save** button. Once you have created it's necessary to create **Product**(ticket, entrance) connected with **Class Category**. For more information about new product go to the following article. 11. Go to **Sales - >** **Products** 12.**** Click on **Add New Product.** 13. Fill all required fields: * **Name.** * **Store state for a user** it's important to mark it, otherwise product won't be visible in member's profile. * **Sell Price.** * **Clubs.** * **Type** it has to be service. * **Available for.** * **Service type** It has to be **Booking Event.** Once**Booking Event** is set up click **Related Time Table Events** and connect this product with specific **Class Category.** It's connected with class category, not class type! For more information go to this article. 14. On the bottom of the screen click on **Insert** button. **You have created product which is associated with specific Class Category.** ``` -------------------------------- ### Register wgssSTU.dll (x64) Source: https://help.perfectgym.com/hc/en-001/articles/39319362536977-Signature-reader-troubleshooting Registers the wgssSTU.dll file for the x64 system architecture. This is typically done when troubleshooting signature reader issues. ```bash cd C:\Program Files\PerfectGym\DeviceIntegrator\Wacom\x64 regsvr32.exe wgssSTU.dll ``` -------------------------------- ### Ping Device via Command Line Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJEluSvCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJEDFp7CIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiUS9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTY4NjQxODE2NDktQWNjZXNzLUNvbnRyb2wtRGV2aWNlcy1JbnN0YWxsYXRpb24tZ3VpZGUGOwhUOglyYW5raQc%3D--aefccbc31cd5d417cd8e1e94c2ca6d92905c645b Use this command to test network connectivity to your Access Control devices. Replace '127.0.0.1' with the actual IP address assigned to your device. ```bash ping 127.0.0.1 ``` -------------------------------- ### Unknown User Message Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBGMGVdTKzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBG9QbPCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiZi9oYy9lbi0wMDEvYXJ0aWNsZXMvNDc2MzY5NDM1NzE5ODUtSG93LXRvLWludGVycHJldC1hY2Nlc3MtY29udHJvbC1sb2ctbWVzc2FnZXMtYW5kLVFSLWNvZGUtc2NhbnMGOwhUOglyYW5raQk%3D--f1723b7e6ac91e9f47158fe57972cc4f71d84ce2 The system does not recognize the credentials (QR code, fingerprint, card) used for access. ```text AccessLogic:Enter gate; Unknown user; Message key: UnknownUser ``` -------------------------------- ### Reset Device Integrator Service (Script Process) Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJFMRrXCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBFY7rTCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiPS9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkxNzE5MTA4MDEtSG93LXRvLWluc3RhbGwtUE9Td2ViBjsIVDoJcmFua2kG--2068f82e6d4a6579750e707b2a475c4d2925292e Automate the process of resetting the Device Integrator service by running a batch script. This is an alternative to the manual steps for quicker resets. ```batch Save and run the following as a .bat file to automate steps above. Link. ``` -------------------------------- ### CSV File Structure for Inventory Upload Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBER9IPCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBGio%2BS6JjoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiTi9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTgzNDQ0MzgwMzMtV2FyZWhvdXNlLVdhcmVob3VzZS1pbnZlbnRvcnktb3ZlcnZpZXcGOwhUOglyYW5raQg%3D--27ab060b2d82ea111636941876dd89b2d0cc28cc Prepare your CSV file with 'ProductId' and 'Quantity' as headers. Ensure the file is semicolon-delimited and saved with a .csv extension. ```CSV ProductId;Quantity ``` -------------------------------- ### Discounts/DiscountedFees Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Simulates a new contract with applied discounts. ```APIDOC ## POST /v2.1/Contracts/SimulateNewContract ### Description Simulates the creation of a new contract, including the application of discounts and calculation of fees. ### Method POST ### Endpoint /v2.1/Contracts/SimulateNewContract ``` -------------------------------- ### Products/Product/Use Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Marks a product as used. ```APIDOC ## POST /v2.1/Products/Use ### Description Marks a product as having been used. ### Method POST ### Endpoint /v2.1/Products/Use ``` -------------------------------- ### Regular Scan vs. QR Code Generation Comments Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBGMGVdTKzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBHOUZ3CIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiZi9oYy9lbi0wMDEvYXJ0aWNsZXMvNDc2MzY5NDM1NzE5ODUtSG93LXRvLWludGVycHJldC1hY2Nlc3MtY29udHJvbC1sb2ctbWVzc2FnZXMtYW5kLVFSLWNvZGUtc2NhbnMGOwhUOglyYW5raQo%3D--bb4126fc4f98634874de3877bf4862bb1febdaec Differentiate between actual gate entries and QR code generations by checking the comments in the 'More Info' section. 'AccessLogic:Enter gate; Action on confirmation executed' indicates a regular scan, while 'AccessLogic:QrCodeAccess' suggests QR code generation. ```text AccessLogic:Enter gate; Action on confirmation executed ``` ```text AccessLogic:QrCodeAccess ``` -------------------------------- ### Recommended Calendar Embedding Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJFF663CIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBERV%2FCyJjoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiUC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkwNDg1MDQ3MjEtWm9uZS1PY2N1cGFuY3ktQ2FsZW5kYXItaW4tQ2xpZW50LVBvcnRhbAY7CFQ6CXJhbmtpBw%3D%3D--63c743d7c4e316a44f179e927e3f6887f601d34d Embed the calendar by creating a div, including the SDK script, and initializing the calendar with specific options. Ensure the 'element' parameter matches the div's ID. ```html
``` -------------------------------- ### Access Server Configuration File Path Source: https://help.perfectgym.com/hc/en-001/articles/47636398303377-How-to-check-whether-an-Access-Control-device-is-present-in-the-local-network Locate the Access Server configuration file on your computer. This file contains details about connected devices and their network settings. ```plaintext C:\Program Files (x86)\Perfect Gym\AccessServer ``` -------------------------------- ### Configure Access Server Gate Readers Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJFomTZTKzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBGMGVdTKzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkidS9oYy9lbi0wMDEvYXJ0aWNsZXMvNDc2MzYzOTgzMDMzNzctSG93LXRvLWNoZWNrLXdoZXRoZXItYW4tQWNjZXNzLUNvbnRyb2wtZGV2aWNlLWlzLXByZXNlbnQtaW4tdGhlLWxvY2FsLW5ldHdvcmsGOwhUOglyYW5raQY%3D--f7f6c579e95a7da1cdd6a6c2c5919c3e55b31be0 Check the `` section in the `AccessServerConfig` file to count the number of devices configured for ID-connected readers, such as Suprema. This count should be compared with the number of devices detected by your IP scanner. ```xml ``` -------------------------------- ### Register wgssSTU.dll (x86) Source: https://help.perfectgym.com/hc/en-001/articles/39319362536977-Signature-reader-troubleshooting Registers the wgssSTU.dll file for the x86 system architecture. This is typically done when troubleshooting signature reader issues. ```bash cd C:\Program Files\PerfectGym\DeviceIntegrator\Wacom\x86 regsvr32.exe wgssSTU.dll ``` -------------------------------- ### Embed Calendar with Responsive Div and Script Source: https://help.perfectgym.com/hc/en-001/articles/39319048504721-Zone-Occupancy-Calendar-in-Client-Portal Use this method for better responsiveness. Ensure the 'element' parameter matches the ID of your created div. Contact Perfect Gym Support to enable ClientPortal.AllowedDomains. ```html
``` -------------------------------- ### Connect Booking Event Product with Payment Plan using Contract Extras Source: https://help.perfectgym.com/hc/en-001/articles/39318467518865-How-to-configure-Additionally-Paid-Classes-in-PGM This section details how to link a booking event product to a specific payment plan using contract extras. This ensures members with that payment plan can book additionally paid classes. ```text STEP 2 How to connect booking event product with a specific payment plan by use of contract extras? 1. Go to **PGM - > Sale -> Contract extras (Membership add-ons)** 2. Click on**Add new contract extras.** 3. In **Contract Extras** , please fill all required data: * **Name** - it won't be visible for your customers * **Gross fee** - it should be 0 if contracts pays for the classes * **Vat** - 0 * **Clubs** * **Club service type** - **Booking event** and choose **class category** you created * **Quantity** - you can create quantity of events if you wish * **Penalty fee** - 0 * **Active** For more information go to this article. 4. Click on **Insert** button**.** Connect contract extras with a specific payment plan. 5. Go to **Sale - > Payment plans.** 6. Choose**Payment Plan** to which you want to assign the **contract extras.** 7. In order to edit it click on the **blue pencil icon** on the left side of the selected **Payment Plan.** 8. Scroll down and find at the bottom **contract extras (membership add-ons).** 9. Select the proper **contract extras** in this field. 10. Click on the**Update** button. You have assigned contract extras with payment plan which means that your members with this payment plan will be able to book additionally paid classes within their payment plan. ``` -------------------------------- ### Enable Automatic Retries (Remain In Progress) Source: https://help.perfectgym.com/hc/en-001/articles/39319398402577-How-to-cancel-a-Success-retry-when-a-payment-is-made-via-another-method-GoCardless Set this configuration to true to allow members to continue accessing services while a payment is being retried automatically by GoCardless. ```csharp EPaymentProvider.GoCardless.AutomaticallyRetryPayments.RemainInProgress = true ``` -------------------------------- ### Users/User [POST] Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Adds a new user (member) with a contract or as a guest. Also supports adding a guest member. ```APIDOC ## POST /v2.1/Members/AddContractMember ### Description Adds a new member to the system, either with a contract or as a guest. This endpoint also handles adding guest members. ### Method POST ### Endpoint /v2.1/Members/AddContractMember ``` -------------------------------- ### Verify Direct IP Device Settings Source: https://help.perfectgym.com/hc/en-001/articles/47636398303377-How-to-check-whether-an-Access-Control-device-is-present-in-the-local-network Check the `` section within the `AccessServerConfig` file for direct IP devices like Gantner. Compare the listed IPs with your IP Scanner results. ```xml ``` -------------------------------- ### Users/CreditCard Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Initiates the external registration process for a user's credit card. ```APIDOC ## POST /v2.1/CreditCards/InitExternalCreditCardRegistration ### Description Initiates the process for a user to register their credit card externally. ### Method POST ### Endpoint /v2.1/CreditCards/InitExternalCreditCardRegistration ``` -------------------------------- ### Classes/BookClass/PersonalTraining Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Books a personal training session. ```APIDOC ## POST /v2.1/PersonalTrainings/BookPersonalTraining ### Description Books a personal training session for the user. ### Method POST ### Endpoint /v2.1/PersonalTrainings/BookPersonalTraining ``` -------------------------------- ### MemberProductStateDeliveryChange Endpoint Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBHSvsHCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBE2gsTCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiPi9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkzODExMzU4ODktUmVsZWFzZS1Ob3Rlcy1NYXktMjAyNQY7CFQ6CXJhbmtpBw%3D%3D--46d7d90dd088d2fbe3d74718f8349fb69e11c22f Additional endpoints, specifically `MemberProductStateDeliveryChange`, have been created for the car parking integration. These endpoints allow for managing the product state for casual guest users, particularly for entry permissions. ```APIDOC ## MemberProductStateDeliveryChange Endpoint ### Description Provides endpoints for managing product states related to car parking integration, specifically for casual guest users requiring entry. ### Method Not specified (Implied new endpoints) ### Endpoint /MemberProductStateDeliveryChange (Specific path details not provided) ### Parameters Details on specific parameters and their types are not provided in the source text. ``` -------------------------------- ### Retrieve PaymentPlans with currentMembershipFee and taxes Source: https://help.perfectgym.com/hc/en-001/articles/39319089758993-API-changelog Use this endpoint to retrieve a list of PaymentPlans, expanding to include their currentMembershipFee and associated taxes. This is the first step in determining applicable tax rates for membership fees. ```http /odata/PaymentPlans?$expand=currentMembershipFee($expand=taxes) ``` -------------------------------- ### Instructors/Instructor/Sheduler Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Retrieves the schedule for personal training bookings. ```APIDOC ## GET /v2.1/odata/PersonalTrainingBookings ### Description Retrieves the schedule for personal training bookings. ### Method GET ### Endpoint /v2.1/odata/PersonalTrainingBookings ``` -------------------------------- ### Discounts/Discounts Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Retrieves a list of discount definitions for contracts. ```APIDOC ## GET /v2.1/odata/ContractDiscountDefinitions ### Description Retrieves a list of available discount definitions applicable to contracts. ### Method GET ### Endpoint /v2.1/odata/ContractDiscountDefinitions ``` -------------------------------- ### Products/CategoryTypes Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Retrieves a list of product category types. ```APIDOC ## GET /v2.1/odata/ProductCategories ### Description Retrieves a list of available category types for products. ### Method GET ### Endpoint /v2.1/odata/ProductCategories ``` -------------------------------- ### Automate Device Integrator Service Reset with Batch Script Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJFMRrXCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBEZMTLCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiPS9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkxNzE5MTA4MDEtSG93LXRvLWluc3RhbGwtUE9Td2ViBjsIVDoJcmFua2kG--6deae34777d52712f466526529b61531e1271882 This batch script automates the process of stopping the Device Integrator service, deleting its configuration file, and restarting the service. It's an alternative to the manual process for resetting POS station configurations. ```batch @echo off REM Stop the Device Integrator service net stop "Device Integrator" REM Delete the configuration file if exist "C:\ProgramData\Creadhoc\PerfectGym\app.cfg.json" ( del "C:\ProgramData\Creadhoc\PerfectGym\app.cfg.json" echo Configuration file deleted. ) else ( echo Configuration file not found. ) REM Restart the Device Integrator service net start "Device Integrator" echo Device Integrator service has been reset. ``` -------------------------------- ### Prepare CSV for Inventory Upload Source: https://help.perfectgym.com/hc/en-001/articles/39318344438033-Warehouse-Warehouse-inventory-overview Use this formula in Excel to prepare data for CSV upload. Ensure the file is saved as .csv with 'All Files' type. ```excel =CONCATENATE(A5,";",D5) ``` -------------------------------- ### PaymentPlans/PaymentPlans Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Retrieves a list of payment plans. ```APIDOC ## GET /v2.1/odata/PaymentPlans ### Description Retrieves a list of available payment plans. ### Method GET ### Endpoint /v2.1/odata/PaymentPlans ``` -------------------------------- ### Users/UserProducts Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Retrieves a list of products associated with a user. ```APIDOC ## GET /v2.1/odata/MemberProducts ### Description Retrieves a list of products assigned to a specific member. ### Method GET ### Endpoint /v2.1/odata/MemberProducts ``` -------------------------------- ### Products/Product/Buy Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Records a point-of-sale purchase transaction for a product. ```APIDOC ## POST /v2.1/Products/AddPosPurchaseTransaction ### Description Records a point-of-sale purchase transaction for a product. ### Method POST ### Endpoint /v2.1/Products/AddPosPurchaseTransaction ``` -------------------------------- ### Users/Contract Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Adds a contract for a user. ```APIDOC ## POST /v2.1/Contracts/AddContract ### Description Adds a new contract for a user. ### Method POST ### Endpoint /v2.1/Contracts/AddContract ``` -------------------------------- ### Enable Contract Withdrawal Settings Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBH3zVVuKzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG6XJvCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiaC9oYy9lbi0wMDEvYXJ0aWNsZXMvNDc3NTI4ODU5NTg0MTctSG93LXRvLXVzZS1hLXJpZ2h0LW9mLXdpdGhkcmF3YWwtYWZ0ZXItc2lnbmluZy1hLWNvbnRyYWN0LW9ubGluZQY7CFQ6CXJhbmtpCQ%3D%3D--3a9ef345f403f1ebdb2229828b1a23a92c16437d Enables the contract withdrawal feature and defines the withdrawal period in days. Set 'ClientPortal.Contract.Withdrawal.IsEnabled' to 'True' to activate. ```text ClientPortal.Contract.Withdrawal.IsEnabled ClientPortal.Contract.WithdrawalPeriodDays ``` -------------------------------- ### Retrieve PaymentPlans with currentMembershipFee (simplified tax handling) Source: https://help.perfectgym.com/hc/en-001/articles/39319089758993-API-changelog If your organization uses a single tax rate across all clubs, you can use this simplified endpoint. The currentMembershipFee.net and currentMembershipFee.gross values will already include the applicable tax, eliminating the need for additional tax resolution. ```http /odata/PaymentPlans?$expand=currentMembershipFee ``` -------------------------------- ### Enable Endpoint Register Report Setting Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBHFxdhDJDoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJGqhY9hJjoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiAYUvaGMvZW4tMDAxL2FydGljbGVzLzM5ODczODE4MjQ4NDY1LUhvdy10by12ZXJpZnktY2FzaC1hY2N1cmFjeS1hbmQtZ2VuZXJhdGUtZW5kcG9pbnQtcmVnaXN0ZXItcmVwb3J0LWluLVBPU3dlYi1FeHRlbmRlZC1zaGlmdC1jbG9zaW5nBjsIVDoJcmFua2kJ--9c4556fb21d5c8d08c248933c5ad4aa379c7e68a To enable the Endpoint Register Report, ensure the technical setting `CloseShiftCommand.PrintEndpointRegisterReport` is set to `True`. Alternatively, configure this in PGM settings. ```text CloseShiftCommand.PrintEndpointRegisterReport ``` ```text PGM Settings → PosWeb → Endpoint register report ``` -------------------------------- ### /v2/CreditCards/InitExternalCreditCardRegistration Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJG64pHCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBGHMnrCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiQi9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1NzgxODI4MDEtUmVsZWFzZS1ub3Rlcy1SLTg2LVEyLTIwMjIGOwhUOglyYW5raQc%3D--fb881e4de3b4fa7fba599d402d2f37e6cb216edb Initialize external credit card registration, with automatic assignment to an active contract. ```APIDOC ## POST /v2/CreditCards/InitExternalCreditCardRegistration ### Description Initializes the process for external credit card registration. This enables the automatic assignment of the newly registered payment source to an active contract. ### Method POST ### Endpoint /v2/CreditCards/InitExternalCreditCardRegistration ### Parameters #### Request Body - **(object)** - Required - Contains details required to initiate the external registration process. ### Request Example { "example": "{\"memberId\": \"mem_abcde\", \"redirectUrl\": \"https://example.com/callback\"}" } ### Response #### Success Response (200) - **(object)** - Provides information to proceed with the external registration, such as a registration URL. #### Response Example { "example": "{\"registrationUrl\": \"https://external-payment.com/register?id=reg_pqrst\"}" } ``` -------------------------------- ### Inefficient Deep Pagination with $skip Source: https://help.perfectgym.com/hc/en-001/articles/41042960463889-Efficient-Paging-in-OData-APIs Demonstrates an inefficient OData query using $skip for deep pagination, which can lead to slow database performance due to the need to process and sort all preceding rows. ```http GET /Api/v2.2/odata/Members?$filter=isDeleted eq false&$orderby=id asc&$skip=9500&$top=50 ``` -------------------------------- ### Classes/Classes Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Retrieves a list of classes. ```APIDOC ## GET /v2.1/odata/Classes ### Description Retrieves a list of all classes. ### Method GET ### Endpoint /v2.1/odata/Classes ``` -------------------------------- ### Workaround: Enable All Additionally Paid Classes in Payment Plan Settings Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJEhSovCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJGRawzCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiWS9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg0Njc1MTg4NjUtSG93LXRvLWNvbmZpZ3VyZS1BZGRpdGlvbmFsbHktUGFpZC1DbGFzc2VzLWluLVBHTQY7CFQ6CXJhbmtpCg%3D%3D--a9a1e0310888edcdba61f838ac0c85587ccda2cc This is an alternative method to include all additionally paid classes in a payment plan by ticking a checkbox in the payment plan's settings. However, it does not allow for individual class category selection. ```text Hints Instead of step 2 you can make a work around and go to the **Payment Plan** configuration screen and in the **Settings** field tick the **Can pay for classes using contract.** If you tick this checkbox then all class categories, which are marked in the system as extra paid, will be included in this payment plan. It shows how to make individual category as included in the payment plan. That is why we recommend using **Step 2** because otherwise there is no option to select a particular class category connected with that payment plan. ``` -------------------------------- ### Reset Device Integrator Configuration using .bat script Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJFMRrXCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBHlr0%2FCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiPS9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkxNzE5MTA4MDEtSG93LXRvLWluc3RhbGwtUE9Td2ViBjsIVDoJcmFua2kK--40235cb2e337cf620b33eb6e53c5e9e623eebe76 Automate the process of stopping the Device Integrator service, deleting its configuration file, and restarting the service by running this .bat script. This is useful for moving POS stations or resolving configuration issues. ```batch @echo off REM Stop the Device Integrator service net stop "Device Integrator" REM Delete the configuration file if exist "C:\ProgramData\Creadhoc\PerfectGym\app.cfg.json" ( del "C:\ProgramData\Creadhoc\PerfectGym\app.cfg.json" echo Configuration file deleted. ) else ( echo Configuration file not found. ) REM Restart the Device Integrator service net start "Device Integrator" echo Device Integrator service restarted. REM Keep the console window open until a key is pressed pause ``` -------------------------------- ### Instructors/Instructor/Available Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Retrieves available time slots for instructors. ```APIDOC ## GET /v2.1/odata/EmployeeAvailabilitySlots ### Description Retrieves the available time slots for instructors. ### Method GET ### Endpoint /v2.1/odata/EmployeeAvailabilitySlots ``` -------------------------------- ### Configuration Path for Endpoint Register Report Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBHFxdhDJDoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJGqJ%2BzBIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiAYUvaGMvZW4tMDAxL2FydGljbGVzLzM5ODczODE4MjQ4NDY1LUhvdy10by12ZXJpZnktY2FzaC1hY2N1cmFjeS1hbmQtZ2VuZXJhdGUtZW5kcG9pbnQtcmVnaXN0ZXItcmVwb3J0LWluLVBPU3dlYi1FeHRlbmRlZC1zaGlmdC1jbG9zaW5nBjsIVDoJcmFua2kK--62fafc4aa0a5799fcc190f8983b884a606cab5f4 This is the path within PGM Settings to enable the Endpoint Register Report feature. Verify this setting is correctly configured. ```text PGM Settings → PosWeb → Endpoint register report ``` -------------------------------- ### Enable Amount Value for Deposit Configuration Source: https://help.perfectgym.com/hc/en-001/articles/41994654682129-Polish-Deposit-Return-System-Polski-System-Kaucyjny-in-Perfect-Gym-How-it-works This configuration setting is required for certain Novitus printer models to correctly handle multiple deposit items on a single receipt and avoid TP100 errors. ```ini PosnetThermalPrinter.UseAmountValueForDeposit = true ``` -------------------------------- ### RDLC File and Dataset for Report Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBHFxdhDJDoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBFH8AXCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiAYUvaGMvZW4tMDAxL2FydGljbGVzLzM5ODczODE4MjQ4NDY1LUhvdy10by12ZXJpZnktY2FzaC1hY2N1cmFjeS1hbmQtZ2VuZXJhdGUtZW5kcG9pbnQtcmVnaXN0ZXItcmVwb3J0LWluLVBPU3dlYi1FeHRlbmRlZC1zaGlmdC1jbG9zaW5nBjsIVDoJcmFua2kK--b4ab412563a2e1410f98b51e62dc7f564361b47e The RDLC file 'EndpointsRegisterReport.rdlc' with the 'Comments' dataset must be added to your File Store for the report to function correctly. ```text EndpointsRegisterReport.rdlc ``` -------------------------------- ### Embed Calendar using ClientPortal.Embed Source: https://help.perfectgym.com/hc/en-001/articles/39319048504721-Zone-Occupancy-Calendar-in-Client-Portal Embed the calendar using the ClientPortal.Embed method. The 'url' option should point to the ClubZoneOccupancyCalendar endpoint with the necessary parameters. Ensure the 'pg-client-portal' element exists in your HTML. ```javascript window.onload = function () { var ClientPortal = window.PerfectGym.ClientPortal; // element to which ClientPortal will be appended var clientPortalElement = document.getElementById('pg-client-portal'); var options = { url: "https://COMPANYNAME.perfectgym.com/ClientPortal2/ClubZoneOccupancyCalendar?ClubZoneId=5" } var embeddedClientPortal = new ClientPortal(clientPortalElement, options); } ``` -------------------------------- ### Checking API Version in URLs Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBG%2FyKnCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBEAgPfBIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiNi9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg5NzkxMzMyMDEtQVBJLXZlcnNpb25pbmcGOwhUOglyYW5raQg%3D--c227a81d23c3858e1a6450a539b0b89ce7cc8640 API versions are indicated in the URL path by a 'v' or 'V' followed by a number. Use these to identify the specific API version being accessed. ```text https://presentation.perfectgym.pl/api/v2/AccessControl/OpenGate        // version 2.0 https://presentation.perfectgym.pl/api//v2.1/odata/ActivityCategories  // version 2.1 ``` -------------------------------- ### RDLC File and Dataset for Report Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBHFxdhDJDoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJGqJ%2BzBIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiAYUvaGMvZW4tMDAxL2FydGljbGVzLzM5ODczODE4MjQ4NDY1LUhvdy10by12ZXJpZnktY2FzaC1hY2N1cmFjeS1hbmQtZ2VuZXJhdGUtZW5kcG9pbnQtcmVnaXN0ZXItcmVwb3J0LWluLVBPU3dlYi1FeHRlbmRlZC1zaGlmdC1jbG9zaW5nBjsIVDoJcmFua2kK--62fafc4aa0a5799fcc190f8983b884a606cab5f4 This RDLC file and its associated dataset are required for generating the Endpoint Register Report. Ensure they are correctly added to your File Store. ```text EndpointsRegisterReport.rdlc ``` ```text Comments ``` -------------------------------- ### Classes/UserClasses Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Retrieves a list of classes booked by the user. ```APIDOC ## GET /v2.1/odata/ClassBookings ### Description Retrieves a list of classes that the user has booked. ### Method GET ### Endpoint /v2.1/odata/ClassBookings ``` -------------------------------- ### Configure Virtual Receipt Printer and Transaction Terminal Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJFMRrXCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBFY7rTCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiPS9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkxNzE5MTA4MDEtSG93LXRvLWluc3RhbGwtUE9Td2ViBjsIVDoJcmFua2kG--2068f82e6d4a6579750e707b2a475c4d2925292e Set virtual devices for receipt printing and transactions within POSweb. This is useful when compatible physical devices are not available. ```text Set Virtual Posnet Therma l for ReceiptPrinter : Set Virtual Transaction Terminal for TransactionTerminal : ``` -------------------------------- ### Configure Virtual Terminals in POSweb Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJFMRrXCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBHlr0%2FCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiPS9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkxNzE5MTA4MDEtSG93LXRvLWluc3RhbGwtUE9Td2ViBjsIVDoJcmFua2kK--40235cb2e337cf620b33eb6e53c5e9e623eebe76 Set Virtual Posnet Therma for ReceiptPrinter and Virtual Transaction Terminal for TransactionTerminal in POSweb configuration. This is used when compatible hardware is not available. ```text Set Virtual Posnet Therma for ReceiptPrinter: Set Virtual Transaction Terminal for TransactionTerminal: ``` -------------------------------- ### Checking API Versions in URLs Source: https://help.perfectgym.com/hc/en-001/articles/39318979133201-API-versioning API versions are indicated by a 'v' or 'V' followed by a number in the API URL. This helps identify the specific version being used. ```url https://presentation.perfectgym.pl/api/v2/AccessControl/OpenGate https://presentation.perfectgym.pl/api//v2.1/odata/ActivityCategories ``` -------------------------------- ### Verify ID-Connected Device Count Source: https://help.perfectgym.com/hc/en-001/articles/47636398303377-How-to-check-whether-an-Access-Control-device-is-present-in-the-local-network For ID-connected devices such as Suprema, compare the total number of devices shown in your IP Scanner with the count under the `` section in `AccessServerConfig`. ```xml ``` -------------------------------- ### Payments/Prepaid/Bonus Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Retrieves information about bonus stages for prepaid top-ups. ```APIDOC ## GET /v2.1/odata/CashlessBonusStages ### Description Retrieves information regarding bonus stages applicable to cashless or prepaid top-ups. ### Method GET ### Endpoint /v2.1/odata/CashlessBonusStages ``` -------------------------------- ### Manual POS Station Reset Script Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJFMRrXCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBHzuRzCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiPS9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkxNzE5MTA4MDEtSG93LXRvLWluc3RhbGwtUE9Td2ViBjsIVDoJcmFua2kH--8bceea8df44e014031d298edd409d9d30d481302 A manual process to reset the POS station configuration by stopping the Device Integrator service, deleting the configuration file, and restarting the service. This is for system administrators. ```powershell 1. Open Windows Services Navigate to the **Services** window in Windows and search for **Device Integrator**. 2. Stop the Service Click on **Device Integrator** in the list, then select **Stop the service** from the options on the left. 3. Delete the Configuration File Locate and delete the file at:`C:\ProgramData\Creadhoc\PerfectGym\app.cfg.json` 4. Restart the Service Return to the **Services** window and restart the **Device Integrator** service. ``` -------------------------------- ### Automate Device Integrator Reset with Batch Script Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJFMRrXCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJHj237CIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiPS9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkxNzE5MTA4MDEtSG93LXRvLWluc3RhbGwtUE9Td2ViBjsIVDoJcmFua2kH--cfc6b7e0a593a54f89c9cf72b9004b59791e1b53 This batch script automates the process of stopping the Device Integrator service, deleting its configuration file, and restarting the service. It is intended for system administrators to resolve issues with assigned stations or clubs. ```batch @echo off echo Stopping Device Integrator service... sc stop "Device Integrator" echo Deleting configuration file... if exist "C:\ProgramData\Creadhoc\PerfectGym\app.cfg.json" ( del "C:\ProgramData\Creadhoc\PerfectGym\app.cfg.json" echo Configuration file deleted. ) else ( echo Configuration file not found. ) echo Starting Device Integrator service... sc start "Device Integrator" echo Process completed. Device Integrator service has been restarted. pause ``` -------------------------------- ### /v2/Products/SettlePosDebt Source: https://help.perfectgym.com/hc/en-001/articles/39318578182801-Release-notes-R-86-Q2-2022 Settle a debt by manual POS transaction. ```APIDOC ## POST /v2/Products/SettlePosDebt ### Description Settle a debt using a manual Point of Sale transaction. ### Method POST ### Endpoint /v2/Products/SettlePosDebt ### Parameters ### Request Body ### Request Example ### Response #### Success Response (200) #### Response Example ``` -------------------------------- ### Reset Device Integrator Service using .bat script Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJFMRrXCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBHlTqrCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiPS9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkxNzE5MTA4MDEtSG93LXRvLWluc3RhbGwtUE9Td2ViBjsIVDoJcmFua2kI--d529c1a5c3c02b3f679247d91bda640c88af3326 Automate the process of stopping the Device Integrator service, deleting its configuration file, and restarting the service. This script is intended for system administrators. ```batch @echo off REM Stop the Device Integrator service net stop "Device Integrator" REM Delete the configuration file if exist "C:\ProgramData\Creadhoc\PerfectGym\app.cfg.json" ( del "C:\ProgramData\Creadhoc\PerfectGym\app.cfg.json" echo Configuration file deleted. ) else ( echo Configuration file not found. ) REM Restart the Device Integrator service net start "Device Integrator" echo Device Integrator service has been reset. pause ``` -------------------------------- ### Log File Path for POS and Access Control Issues Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBEJOMHCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBFXvsPCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiZi9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkzNzIzMDI2MDktSG93LXRvLWZpbmQtYW5kLXVwbG9hZC1zeXN0ZW0tbG9ncy10by1hbi1leGlzdGluZy1zdXBwb3J0LWNhc2UGOwhUOglyYW5raQk%3D--87200a13858d3cc2d1bfb12ca8edc33022f9d3bd This path is used to locate log files for both POS and Access Control devices. Ensure you navigate to the correct subfolder based on the issue type and date. ```plaintext C:\ProgramData\Creadhoc\PerfectGym\Logs ``` -------------------------------- ### Payments/Prepaid Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Handles prepaid top-up operations. Available from version R88. ```APIDOC ## POST /v2.1/Payments/PrepaidTopup ### Description Manages prepaid balance top-up operations. This endpoint is available starting from version R88. ### Method POST ### Endpoint /v2.1/Payments/PrepaidTopup ``` -------------------------------- ### Configure Debt Collection Stage - Stage 1 Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJGTurjCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBG9QbPCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiZS9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkyMjk4NjI4MDEtUmVtaW5kLU1lbWJlcnMtYWJvdXQtVGltZWx5LVBheW1lbnRzLURlYnQtQ29sbGVjdGlvbi1Vc2UtQ2FzZQY7CFQ6CXJhbmtpBg%3D%3D--6929b373f78c60dc18bdc67b7eb1b3fad0ac09c5 Set up an automation event to change a member's debt collection stage. This is triggered when the number of days in debt increases and the user is not already in the collection process. Use this to transition members into Stage 1. ```Automation Name: Event Name Action: Change debt collection stage. Event: Number of days in debt increased. Conditions: Match type: Match all. NUMBER_OF_DAYS_ON_DEBT: Greater than or equal 15. NUMBER_OF_DAYS_ON_DEBT: Less than or equal 31. USER_IS_ALREADY_IN_DEBT_COLLECTION_PROCESS: No Action Details: Debt collection stage: Stage 1 ``` -------------------------------- ### Memberships/Memberships Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Retrieves a list of membership rules. ```APIDOC ## GET /v2.1/odata/MembershipRules ### Description Retrieves a list of available membership rules. ### Method GET ### Endpoint /v2.1/odata/MembershipRules ``` -------------------------------- ### Accept-Language Header Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJEX96bCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCBGDKLXCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiSC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg5MzE4Mzg4NjUtQVBJLUludHJvZHVjdGlvbi10by1DUVJTLWNvbmNlcHQGOwhUOglyYW5raQo%3D--94e0a96c961a2d11940f99baff54ca278f234c83 Explains how to request specific language translations for API responses using the `Accept-Language` header. ```APIDOC ### Request Headers - **Accept-Language** (string) - Optional - Specifies the preferred language for translations. Example: `da, en-gb;q=0.8, en;q=0.7` ``` -------------------------------- ### Subsequent Request for Keyset Paging Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCBE4FA9UJToYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJEX96bCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiRi9oYy9lbi0wMDEvYXJ0aWNsZXMvNDEwNDI5NjA0NjM4ODktRWZmaWNpZW50LVBhZ2luZy1pbi1PRGF0YS1BUElzBjsIVDoJcmFua2kK--1f812aef7abdc9db2fdec3e7372aee92f858c4b5 Fetches the next page of data by filtering based on the maximum ID from the previous batch using 'id gt maximum_id'. This method maintains stable performance. ```http GET /Api/v2.2/odata/Members ?$expand=familyParents,familyChildren,customAttributes,consultant,paymentSources,memberBalance,marketingSources,agreementSources &$filter=isDeleted eq false and memberType eq 'Member' and **id gt maximum_id** &$orderby=id asc &$top=50 ``` -------------------------------- ### Classes/UserPresence Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Sets the presence of a user for a specific class. Available in version R88 and higher. ```APIDOC ## POST /v2.1/ClassBooking/SetMembersPresenceOnClass ### Description Sets the presence status for members attending a specific class. This endpoint is available starting from version R88. ### Method POST ### Endpoint /v2.1/ClassBooking/SetMembersPresenceOnClass ``` -------------------------------- ### Contracts/Contracts Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Retrieves a list of contracts. ```APIDOC ## GET /v2.1/odata/Contracts ### Description Retrieves a list of all contracts. ### Method GET ### Endpoint /v2.1/odata/Contracts ``` -------------------------------- ### Users/Agreements Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJH%2BiY%2FCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJG64pHCIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiOC9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTg1Mzg4MTMwNzMtQVBJLXYxLXBoYXNlLW91dAY7CFQ6CXJhbmtpBw%3D%3D--4c3509468f7a39d5ab947e72a4b4042919068dfd Sets or updates user agreements. ```APIDOC ## POST /v2.1/MemberAgreements/Set ### Description Sets or updates the agreements associated with a member. ### Method POST ### Endpoint /v2.1/MemberAgreements/Set ``` -------------------------------- ### Add Guest Member Error Handling Source: https://help.perfectgym.com/hc/en-001/related/click?data=BAh7CjobZGVzdGluYXRpb25fYXJ0aWNsZV9pZGwrCJEZdbTCIzoYcmVmZXJyZXJfYXJ0aWNsZV9pZGwrCJHf1v%2FBIzoLbG9jYWxlSSILZW4tMDAxBjoGRVQ6CHVybEkiQi9oYy9lbi0wMDEvYXJ0aWNsZXMvMzkzMTkxNTgyMDA3MjEtUmVsZWFzZS1ub3Rlcy1SLTkwLVEzLTIwMjMGOwhUOglyYW5raQk%3D--93bc7d215a748db93e6eb09eecb42fa8e3786e4d Provides detailed error information when a user/contract agreement is missing during the addition of a guest member. ```APIDOC ## POST /v2.1/Members/AddGuestMember (Error Handling) ### Description When adding a guest member, if a user/contract agreement is missing, this endpoint will return detailed error information via 'nestedBusinessErrors' to indicate which agreement is not present. ### Method POST ### Endpoint /v2.1/Members/AddGuestMember ``` -------------------------------- ### /v2/Contracts/Freeze Source: https://help.perfectgym.com/hc/en-001/articles/39318578182801-Release-notes-R-86-Q2-2022 Request to freeze a contract. ```APIDOC ## POST /v2/Contracts/Freeze ### Description Submits a request to temporarily freeze an active contract. ### Method POST ### Endpoint /v2/Contracts/Freeze ### Parameters ### Request Body ### Request Example ### Response #### Success Response (200) #### Response Example ``` -------------------------------- ### Partial Update using JSON Patch Source: https://help.perfectgym.com/hc/en-001/articles/39318931838865-API-Introduction-to-CQRS-concept Demonstrates a PATCH request using JSON Patch syntax to replace a specific field ('PersonalData/Email') in a member's details. This is the command part of CQRS. ```http PATCH /Api/v2/Members/UpdateMemberDetails/12345 Host: company.perfectgym.pl Content-Type: application/json-patch+json [ { "op": "replace", "path": "PersonalData/Email", "value": "test1234@perfectgym.com" } ] ```