Appointment, bookable appointment and slots operations
PerfectGym Next API (1.28.0)
- Appointment, bookable appointment and slots operations
- Redeem checkin vouchers
- Class and slots operations
- Cross studio operations
- Get customers and contracts
- Retrieve customer accounting details
- Retrieve customer communication details
- Retrieve customer transaction details
- Get device information
- Employee operations
- Debt collection operations
- Leads operations
- Get member lists
- Manage membership contracts
- Membership operations
- Online offer operations
- Payment operations
- Get studio information
- Get trial offers information
https://open-api-demo.open-api.perfectgym.com/
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/balances
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/customers/{customerId}/account/balances
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/balances' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'{ "accountBalance": { "amount": 20, "currency": "EUR" }, "consumptionCredit": { "amount": 20, "currency": "EUR" }, "dunningLevel": "Dunning Level 1", "dunningLevelSince": "2025-08-24", "inDebtCollection": true, "inDebtCollectionSince": "2025-08-24", "lastAccountBalanceUpdated": "2025-08-24" }
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/transactions
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/customers/{customerId}/account/transactions
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/transactions?sliceSize=10&offset=0' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'OK
List of booking entries
Whether or not the booking was transferred into an installment plan
Represents the classification of the charge
| Enum Value | Description |
|---|---|
| IDLE_PERIOD_CHARGE | Charge for a freeze period |
| CREDIT | Credit from a freeze period |
| STARTER_PACKAGE | Initial package or starter kit charge |
| FLAT_FEE | One-time or recurring flat fee for additional services or products |
| CHARGED_BACK_FEE | Fee for chargeback processing |
| DEBT_CLAIM_REDUCTION | Reduction of an existing debt claim |
| DAMAGE_COMPENSATION | Compensation for damages or losses |
| CANCELATION_FEE | Fee for canceling a service or contract |
| MODULE_FEE | One-time or recurring module fee for additional services or products |
| SALES_DIRECT_DEBIT | Sale transaction via direct debit payment |
Start date of the service period (if applicable)
{ "result": [ { … } ], "hasNext": true, "offset": "1234567890" }
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/transactions/upcoming
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/customers/{customerId}/account/transactions/upcoming
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/transactions/upcoming?sliceSize=10&offset=0' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'OK
List of booking entries
Whether or not the booking was transferred into an installment plan
Represents the classification of the charge
| Enum Value | Description |
|---|---|
| IDLE_PERIOD_CHARGE | Charge for a freeze period |
| CREDIT | Credit from a freeze period |
| STARTER_PACKAGE | Initial package or starter kit charge |
| FLAT_FEE | One-time or recurring flat fee for additional services or products |
| CHARGED_BACK_FEE | Fee for chargeback processing |
| DEBT_CLAIM_REDUCTION | Reduction of an existing debt claim |
| DAMAGE_COMPENSATION | Compensation for damages or losses |
| CANCELATION_FEE | Fee for canceling a service or contract |
| MODULE_FEE | One-time or recurring module fee for additional services or products |
| SALES_DIRECT_DEBIT | Sale transaction via direct debit payment |
Start date of the service period (if applicable)
{ "result": [ { … } ], "hasNext": true, "offset": "1234567890" }
Payment Request Token obtained by initializing the Universal Payment Component with a User Payment Session created via the OpenAPI. The token must belong to the same customer for whom the OpenAPI user is posting the payment. If the customer does not match the customer scope of the User Payment Session, an error is returned.
Total monetary amount to be paid, including currency information.
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/payment
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/customers/{customerId}/account/payment
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/payment' \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: YOUR_API_KEY_HERE' \
-d '{
"paymentRequestToken": "string",
"amount": {
"amount": 20,
"currency": "EUR"
},
"debtClaimIds": [
0
]
}'{}
Payment Request Token obtained by initializing the Universal Payment Component with a User Payment Session created via the OpenAPI. The token must belong to the same customer for whom the OpenAPI user is posting the payment. If the customer does not match the customer scope of the User Payment Session, an error is returned.
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/payment-instrument
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/customers/{customerId}/account/payment-instrument
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/payment-instrument' \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: YOUR_API_KEY_HERE' \
-d '{
"paymentRequestToken": "string"
}'{}
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/payment-details
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/customers/{customerId}/account/payment-details
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/payment-details' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'OK
Customer's default payment method
| Enum Value | Description |
|---|---|
| DIRECT_DEBIT | Direct debit payment method |
| TWINT | Twint payment method |
| UNDEFINED | Payment method is undefined |
| BANK_TRANSFER | Bank transfer payment method |
| CASH | Cash payment method |
| CREDIT_CARD | Credit card payment method |
{ "defaultPaymentMethod": "DIRECT_DEBIT", "paymentInstruments": [ { … } ] }
Request
Required Scopes: CUSTOMER_DUNNING_READ
Returns the customer's current dunning together with the debt claims it was raised for, and whether that dunning is currently refusing the customer entry to the studio. Answers whether a member is locked out because of unpaid debt, and which debt - neither the account balance nor the customer endpoint answers that on its own.
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/dunning
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/customers/{customerId}/account/dunning
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/account/dunning' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'{ "dunned": true, "accessRestricted": true, "dunningLevel": "Dunning Level 2", "dunningDate": "2026-06-09", "amount": { "amount": 20, "currency": "EUR" }, "fee": { "amount": 20, "currency": "EUR" }, "inDebtCollection": false, "collectionStop": false, "debtClaims": [ { … } ] }