### GET /api/{clientKey}/order/{orderId}/overview Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Retrieves a detailed overview of an order, including line items, pricing, taxes, and schedule information. ```APIDOC ## GET /api/{clientKey}/order/{orderId}/overview ### Description Get a detailed overview of an order including line items, pricing, taxes, and schedule. ### Method GET ### Endpoint /api/{clientKey}/order/{orderId}/overview ### Parameters #### Path Parameters - **orderId** (Long) - Required - Identifier of the order ### Response #### Success Response (200) - **OrderId** (Long) - Order identifier - **OrderReference** (String) - Human-readable order/reservation reference number - **Date** (DateTime) - Order date - **SubTotal** (DisplayPrice[]) - Subtotal before tax - **TotalTax** (DisplayPrice[]) - Total tax amount - **Surcharge** (DisplayPrice[]) - Any surcharges applied - **Total** (DisplayPrice[]) - Grand total - **TotalToDeposit** (Decimal) - Amount required as deposit - **TotalPaid** (Decimal) - Amount already paid - **AppliedPromoCodes** (AppliedPromoCode[]) - Promo codes applied to this order - **Lines** (PublicBillLine[]) - Order line items - **ScheduleDays** (PublicScheduleDay[]) - Schedule grouped by day ``` -------------------------------- ### GET /api/{clientKey}/subscription/{loginCode}/{pageXRef} Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Get bookable subscription products for a user, with an optional filter by product external reference. ```APIDOC ## GET /api/{clientKey}/subscription/{loginCode}/{pageXRef} ### Description Get bookable subscription products for a user. ### Method GET ### Endpoint `/api/{clientKey}/subscription/{loginCode}/{pageXRef}` ### Parameters #### Path Parameters - **clientKey** (string) - Required - The client key for the request. - **loginCode** (String) - Required - User login code. - **pageXRef** (String) - Required - Page external reference. #### Query Parameters - **productXRef** (String) - Optional - Filter by product external reference. ### Response #### Success Response (200 OK) - **Id** (Long?) - Person ID - **FullName** (String) - Person full name - **Alias** (String) - Person Alias - **Email** (String) - Person email - **CreatedClientKey** (String) - Client key this person was created in - **Memberships** (PublicMembershipDto[]) - Memberships (with subscription/external reference) on this person **PublicMembershipDto**: - **ProductXRef** (string) - Subscription product external reference - **Name** (String) - Membership name - **Starts** (DateTime) - Membership valid from - **Stops** (DateTime) - Membership valid to #### Response Example ```json { "Id": 12345, "FullName": "Alice Smith", "Alias": "Ally", "Email": "alice.smith@example.com", "CreatedClientKey": "bmileisure", "Memberships": [ { "ProductXRef": "SUBPROD001", "Name": "Gold Membership", "Starts": "2023-01-01T00:00:00Z", "Stops": "2024-12-31T23:59:59Z" } ] } ``` ``` -------------------------------- ### GET /api/{clientKey}/page/{pageXref} Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Retrieves page information, including configured products, by its external reference. This is useful for fetching specific page details when you have the page's unique external identifier. ```APIDOC ## GET /api/{clientKey}/page/{pageXref} ### Description Retrieves page info with configured products by external reference. Get page info with configured products by external reference. ### Method GET ### Endpoint `/api/{clientKey}/page/{pageXref}` ### Parameters #### Path Parameters - **pageXref** (String) - Required - External reference identifier for the page ### Response #### Success Response (200) - **PublicPageInfo** (object) - Public page information. - **Id** (Long) - Page identifier - **Name** (String) - Page display name - **Kind** (PageKind (int)) - Type of page (see PageKind enum) - **Products** (PublicProduct[]) - Products on this page (see field descriptions in endpoint 2) #### Error Responses - **400 Bad Request** - **401 Unauthorized** - **500 Internal Server Error** ``` -------------------------------- ### GET /api/{clientKey}/locations Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Get all locations from the cluster (multi-site setup). ```APIDOC ## GET /api/{clientKey}/locations ### Description Retrieve all locations from the cluster. ### Method GET ### Endpoint /api/{clientKey}/locations ### Parameters #### Path Parameters - **clientKey** (String) - Required - The unique client key identifier for the location. ### Response #### Success Response (200 OK) - **Locations** (PublicLocation[]) - List of available locations **PublicLocation Fields**: - **ClientKey** (String) - Unique client key identifier for the location - **Name** (String) - Display name of the location #### Response Example { "Locations": [ { "ClientKey": "loc1", "Name": "Main Branch" }, { "ClientKey": "loc2", "Name": "Downtown Office" } ] } #### Other possible responses: - 400 Bad Request - 401 Unauthorized - 500 Internal Server Error ``` -------------------------------- ### GET /api/{clientKey}/page?date={date} Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Retrieves all pages available on a specific date. This endpoint is useful for displaying products grouped into categories for booking flows. ```APIDOC ## GET /api/{clientKey}/page?date={date} ### Description Retrieves all pages available on a specific date. Pages group products into categories for display in booking flows. ### Method GET ### Endpoint `/api/{clientKey}/page?date={date}` ### Parameters #### Query Parameters - **date** (DateTime) - Required - Date on which pages should be available. Example: `2026-05-31T00:00:00.000Z` ### Response #### Success Response (200) - **PublicPageInfo[]** (array) - An array of public page information objects. - **Id** (Long) - Unique page identifier - **Name** (String) - Translated page name - **Kind** (PageKind (int)) - Type of page (see PageKind enum) - **Products** (PublicProduct[]) - Products available on this page - **Id** (Long) - Unique product identifier - **Name** (String) - Product display name - **Info** (String) - Product description (may contain HTML) - **HasPicture** (Boolean) - Whether the product has an image (use Image endpoint to retrieve) - **BookingMode** (BookingMode (int)) - How this product is booked (see BookingMode enum) - **ProductGroup** (String) - Name of the product group - **MinAmount** (Int) - Minimum quantity allowed (-1 = no limit) - **MaxAmount** (Int) - Maximum quantity allowed (-1 = no limit) - **MinAge** (Short?) - Minimum age requirement (null = no restriction) - **MaxAge** (Short?) - Maximum age requirement (null = no restriction) - **Kind** (ProductKind (int)) - Type of product (see ProductKind enum) - **IsCombo** (Boolean) - Whether this is a combo/package product - **IsMembersOnly** (Boolean) - Whether this product requires a membership - **Prices** (PublicPrice[]) - Pricing information - **Amount** (Decimal) - Price amount - **Kind** (PriceKind (int)) - Price type: `0` = price, `1` = return - **ShortName** (String) - Short price label (e.g. "m" for money price, "c" for credits) - **DepositKind** (DepositKind (int)) - Deposit type: `0` = Money, `1` = Point, `2` = Credit - **Resources** (PublicResource[]) - Available resources for this product - **Id** (Long) - Resource identifier - **XRef** (String) - External reference for the resource (null if not set) - **Kind** (String) - Resource kind label - **DynamicGroups** (PublicDynamicAgeGroup[]) - Dynamic age group configuration (null if not applicable) - **Id** (Long) - Age group identifier - **Name** (String) - Display name (e.g. "Adult Drivers Aged 13+") - **Tag** (String) - Machine-readable tag (e.g. "adults", "kids") - **MinQuantity** (Decimal) - Minimum quantity for this age group - **MaxQuantity** (Decimal) - Maximum quantity for this age group - **Quantity** (Decimal) - Default/selected quantity - **XRef** (String) - External reference identifier (null if not set) #### Error Responses - **400 Bad Request** - **401 Unauthorized** - **500 Internal Server Error** ``` -------------------------------- ### GET /api/{clientKey}/person Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Look up a person by email and optional birth date. It returns the first matching person only in case of duplicated profiles. ```APIDOC ## GET /api/{clientKey}/person ### Description Look up a person by email and optional birth date. It returns a first matching person only in case of duplicated profiles. ### Method GET ### Endpoint `/api/{clientKey}/person` ### Parameters #### Query Parameters - **email** (String) - Required - Email address to search for - **birthDate** (DateTime) - Optional - Date of birth filter ### Response #### Success Response (200 OK) - **Id** (String) - Person identifier - **FirstName** (String) - First name - **LastName** (String) - Last name - **LastName2** (String) - Second last name (null if not applicable) - **Alias** (String) - Person alias/nickname - **Birthdate** (DateTime) - Date of birth - **Gender** (Short) - Gender code - **Street** (String) - Street name - **StreetNumber** (String) - Street/house number - **Phone** (String) - Primary phone number - **Phone2** (String) - Secondary phone number - **Mobile** (String) - Mobile phone number - **Email** (String) - Email address - **City** (String) - City - **Zip** (String) - Postal/zip code - **Country** (String) - Country code - **Region** (String) - Region/province - **CityOfBirth** (String) - City of birth - **CountryOfBirth** (String) - Country of birth - **BirthZip** (String) - Birth postal/zip code - **BirthRegion** (String) - Birth region/province - **Nationality** (Long?) - Nationality identifier #### Response Example { "Id": "123e4567-e89b-12d3-a456-426614174000", "FirstName": "John", "LastName": "Doe", "LastName2": null, "Alias": "Johnny", "Birthdate": "1990-05-15T00:00:00Z", "Gender": "M", "Street": "Main St", "StreetNumber": "123", "Phone": "555-1234", "Phone2": null, "Mobile": "555-5678", "Email": "john@example.com", "City": "Anytown", "Zip": "12345", "Country": "US", "Region": "CA", "CityOfBirth": "Somecity", "CountryOfBirth": "US", "BirthZip": "67890", "BirthRegion": "CA", "Nationality": 1 } ``` -------------------------------- ### Return image of a product Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Retrieves the image for a specific product. The response is cached for 1 hour. ```APIDOC ## GET /api/{clientKey}/image/product ### Description Retrieve the image for a product. Response is cached for 1 hour. ### Method GET ### Endpoint `/api/{clientKey}/image/product` ### Query Parameters - **productId** (Long) - Required - Identifier of the product ### Response #### Success Response (200 OK) - Binary image data with appropriate `Content-Type` header (e.g. `image/png`, `image/jpeg`) #### Error Responses - 400 Bad Request - 401 Unauthorized - 404 Not Found - 500 Internal Server Error ``` -------------------------------- ### Retrieve all bookable products Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Fetches a list of all available bookable products. The response is cached for 1 hour. ```APIDOC ## GET /api/{clientKey}/products ### Description Get all available bookable products. Response is cached for 1 hour. ### Method GET ### Endpoint `/api/{clientKey}/products` ### Response #### Success Response (200 OK) - **PublicProduct[]** (array of objects): An array of product objects. - **Id** (Long) - Unique product identifier - **Name** (String) - Product display name - **Info** (String) - Full product description (may contain HTML) - **HasPicture** (Boolean) - Whether the product has an image - **IsCombo** (Boolean) - Whether this is a combo/package product - **MinAge** (Short?) - Minimum age requirement (null = no restriction) - **MaxAge** (Short?) - Maximum age requirement (null = no restriction) - **IsMembersOnly** (Boolean) - Whether this product requires a membership - **MinAmount** (Int) - Minimum quantity allowed (-1 = no limit) - **MaxAmount** (Int) - Maximum quantity allowed (-1 = no limit) - **Kind** (ProductKind (int)) - Type of product (see ProductKind enum) - **BookingMode** (BookingMode (int)) - How this product is booked (see BookingMode enum) - **ProductGroup** (String) - Name of the product group - **IsEntry** (Boolean) - Whether this is an entry/admission product - **Prices** (PublicPrice[]) - Pricing information (same structure as PublicPrice) - **DynamicGroups** (DynamicAgeGroupDto[]) - Dynamic age group configuration (null if not applicable) - **XRef** (String) - External reference identifier (null if not set) #### Error Responses - 400 Bad Request - 401 Unauthorized - 500 Internal Server Error ``` -------------------------------- ### POST /api/{clientKey}/booking/sell Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Adds a product to a reservation, either creating a new order or adding to an existing shopping cart. ```APIDOC ## POST /api/{clientKey}/booking/sell ### Description Adds a product to a reservation (creates a new order or adds to an existing shopping cart). ### Method POST ### Endpoint `/api/{clientKey}/booking/sell` ### Parameters #### Path Parameters - **clientKey** (string) - Required - The client key for the booking system. #### Request Body - **PublicProductSellInfo** (object) - Required - **ProductId** (long) - Optional - Identifier of the product to sell (use either this or `ProductXref`). - **ProductXref** (string) - Optional - External reference of the product (use either this or `ProductId`). - **Quantity** (decimal) - Required - Number of units to sell (must be > 0 and < 1000). - **OrderId** (long) - Optional - Existing order ID to add to (null creates a new order). - **PersonId** (long) - Optional - Person identifier to associate with the sale. - **ParentOrderItemId** (long) - Optional - Parent order item ID (for modifiers/supplements). - **DynamicLines** (array) - Optional - Age group breakdown with quantities. *Note: Provide either `ProductId` or `ProductXref`, not both.* ### Request Example ```json { "ProductId": 12345, "Quantity": 1, "OrderId": 67890 } ``` ### Response #### Success Response (200 OK) - **PublicProductSellResult** (object) - **Success** (boolean) - Whether the operation succeeded. - **ErrorMessage** (string) - Error description (null when successful). - **OrderId** (long) - Identifier of the order (new or existing). - **OrderItemId** (long) - Identifier of the newly created order item. - **Prices** (array) - Calculated prices for the sold product. - **Modifiers** (array) - Available modifier pages (add-ons the customer can choose). - **Supplements** (array) - Available supplements (auto-included extras). #### Response Example ```json { "Success": true, "OrderId": 67890, "OrderItemId": 11223, "Prices": [], "Modifiers": [], "Supplements": [] } ``` #### Error Responses - **400 Bad Request** - **401 Unauthorized** - **500 Internal Server Error** ``` -------------------------------- ### POST /api/{clientKey}/booking/book Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Book a product with a specific time slot and optional contact person. ```APIDOC ## POST /api/{clientKey}/booking/book ### Description Book a product with a specific time slot (proposal) and optional contact person. ### Method POST ### Endpoint /api/{clientKey}/booking/book ### Parameters #### Path Parameters - **clientKey** (String) - Required - The client identifier. #### Request Body - **ProductId** (Long?) - Required* - Identifier of the booked product. - **ProductXref** (String) - Required* - External reference of the product. - **Quantity** (Decimal) - Required - The number of people/units to book. - **OrderId** (Long?) - Optional - Existing order ID to add to. - **PersonId** (Long?) - Optional - Person identifier. - **PageId** (Long?) - Optional - Identifier of the page the product was selected from. - **DynamicLines** (PublicDynamicAgeGroup[]) - Optional - Age group breakdown. - **Proposal** (PublicProposal) - Required - The time slot proposal to book. - **ContactPerson** (PublicContactPerson) - Optional - Contact person information. ### Response #### Success Response (200) - **Schedules** (PublicProductSchedule[]) - Confirmed schedule entries. ``` -------------------------------- ### Return available days of a product in a given period Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Fetches the available days for a product within a specified date range. ```APIDOC ## GET /api/{clientKey}/availability ### Description Return available days of a product in a given period. ### Method GET ### Endpoint `/api/{clientKey}/availability` ### Query Parameters - **productId** (Long) - Required - Identifier of picked product - **dateFrom** (Date) - Required - Beginning date to search availability (e.g. beginning of month) - **dateTill** (Date) - Required - Ending date to search availability (e.g. end of month) ### Response #### Success Response (200 OK) - **AvailabilityInfo** (object): Contains availability information. - **Activities** (ActivityName[]) - List of dates with availability status - **Date** (DateTime) - The date - **Status** (AvailabilityStatus (int)) - Availability status: `0` = Available, `1` = Fully Booked #### Error Responses - 400 Bad Request - 401 Unauthorized - 404 Not Found - 500 Internal Server Error ``` -------------------------------- ### ProductKind Enumeration Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Defines the different types of products available. ```APIDOC ## ProductKind Enumeration ### Description Defines the different types of products available. | Value | Name | Description | |---|---|---| | `1` | Normal | Standard non-activity product | | `2` | Entry | Entry/admission product | | `3` | Membership | Membership | | `4` | Voucher | Voucher | | `5` | GiftCard | Gift card (with user-defined value) | | `6` | Dynamic | Combo with dynamic products, defined by age groups | | `7` | Combo | Combo/package product | | `8` | ServiceCharge | Service charge, applied for the order | ``` -------------------------------- ### Retrieve Proposals (Time Slots) for a Product Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Fetches available time slots for a product on a given date. You must provide either `ProductId` or `ProductXref` in the request body. ```APIDOC ## POST /api/{clientKey}/availability ### Description Retrieves available time slots (proposals) for a product on a specific date. ### Method POST ### Endpoint `/api/{clientKey}/availability` ### Parameters #### Query Parameters - **date** (Date) - Required - Picked date to retrieve available time slots from. Example: `2026-04-21` #### Request Body - **PublicSellInfo** (object) - Required - **ProductId** (Long?) - Optional - Identifier of picked product (use either this or `ProductXref`). - **ProductXref** (String) - Optional - External reference of picked product (use either this or `ProductId`). - **Quantity** (Decimal) - Required - Number of people/units. - **OrderId** (Long?) - Optional - Existing order ID to add to (null for new order). - **PersonId** (Long?) - Optional - Person identifier. - **PageId** (Long?) - Optional - Identifier of the page the product belongs to. - **DynamicLines** (PublicDynamicAgeGroup[]) - Optional - Age group breakdown (empty array if not applicable). *Note: Provide either `ProductId` or `ProductXref`, not both.* ### Request Example ```json { "ProductId": 12345, "Quantity": 2, "Date": "2026-04-21" } ``` ### Response #### Success Response (200 OK) - **Proposals** (PublicProposal[]) - List of available time slot proposals. - **ProductLineId** (Long?) - Product line identifier (null if not applicable). - **Blocks** (PublicProposalItem[]) - List of time blocks in this proposal. - **ProductLineIds** (Long[]) - Product line identifiers associated with this block. - **Block** (PublicPlannerBlock) - Time block details. - **Start** (DateTime) - Start time of the time slot. - **Stop** (DateTime) - End time of the time slot. - **Name** (String) - Display name of the session/time slot. - **ShowSessionTimes** (Boolean) - Whether to display start/stop times to the user. - **Capacity** (Int) - Total capacity for this time slot. - **FreeSpots** (Int) - Number of available spots remaining. - **ResourceId** (Long) - Identifier of the resource (e.g. lane, track). - **BookingMode** (BookingMode (int)) - Booking mode (see BookingMode enum). - **ResourceGroupMode** (ResourceGroupMode (int)) - Resource group mode: `-1` = Resource, `0` = Lanes, `1` = Group, `2` = Rooms. - **Prices** (DisplayPrice[]) - Pricing for this specific time slot. #### Response Example ```json { "Proposals": [ { "ProductLineId": null, "Blocks": [ { "ProductLineIds": [101], "Block": { "Start": "2026-04-21T10:00:00", "Stop": "2026-04-21T11:00:00", "Name": "Morning Session", "ShowSessionTimes": true, "Capacity": 10, "FreeSpots": 5, "ResourceId": 501, "BookingMode": 0, "ResourceGroupMode": 0, "Prices": [ { "Price": 25.00, "Currency": "USD" } ] } } ] } ] } ``` ### Error Handling - **400 Bad Request**: Invalid request parameters or body. - **401 Unauthorized**: Authentication failed. - **404 Not Found**: Resource not found. - **500 Internal Server Error**: Server encountered an error. ``` -------------------------------- ### POST /api/{clientKey}/person/registerProjectPerson Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Register a project person (participant) for an order. This endpoint is similar to registering a contact person but is specifically for project participants. ```APIDOC ## POST /api/{clientKey}/person/registerProjectPerson ### Description Register a project person (participant) for an order. ### Method POST ### Endpoint `/api/{clientKey}/person/registerProjectPerson` ### Parameters #### Request Body - **PersonId** (Long?) - Optional - Existing person ID (null to create new) - **FirstName** (String) - Optional - First name - **LastName** (String) - Optional - Last name - **Email** (String) - Optional - Email address - **Phone** (String) - Optional - Phone number - **OrderId** (Long) - Yes - Order ID to associate the person with ### Request Example ```json { "PersonId": null, "FirstName": "Peter", "LastName": "Jones", "Email": "peter.jones@example.com", "Phone": "555-1122", "OrderId": 54321 } ``` ### Response #### Success Response (200 OK) - **Id** (Long?) - Person ID - **FirstName** (String) - Person first name - **LastName** (String) - Person last name - **Email** (String) - Person email - **Phone** (String) - Person phone - **ExternalReference** (string) - External reference of the person #### Response Example ```json { "Id": 67890, "FirstName": "Peter", "LastName": "Jones", "Email": "peter.jones@example.com", "Phone": "555-1122", "ExternalReference": "EXTREF456" } ``` ``` -------------------------------- ### API Notes Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM General notes and conventions for using the API. ```APIDOC ## API Notes * All date/time values use ISO 8601 format * `{clientKey}` identifies the tenant/location in the multi-tenant system * Product images are served as binary — check `HasPicture` before requesting * The `DisplayPrice` array pattern supports multi-currency and split deposit/full pricing * CORS is enabled for all origins on all endpoints * Enum values are serialized as integers in JSON responses ``` -------------------------------- ### POST /auth/token Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Authenticate and obtain a Bearer JWT token. This endpoint does not require the /api/{clientKey} prefix. ```APIDOC ## POST /auth/token ### Description Authenticate and obtain a Bearer JWT token. ### Method POST ### Endpoint /auth/token ### Request Body - **Username** (String) - Yes - Username to login - **Password** (String) - Yes - Password to login ### Request Example { "Username": "your_username", "Password": "your_password" } ### Response #### Success Response (200 OK) - **TokenType** (String) - Token type, always "bearer" - **AccessToken** (String) - JWT access token to use in `Authorization` header - **ExpiresIn** (String) - Token validity duration in seconds - **IncludedClientKeys** (String[]) - List of client keys this token is authorized for #### Response Example { "TokenType": "bearer", "AccessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "ExpiresIn": "3600", "IncludedClientKeys": ["clientKey1", "clientKey2"] } #### Other possible responses: - 400 Bad Request - 401 Unauthorized ``` -------------------------------- ### POST /api/{clientKey}/booking/memo Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Save a memo or note for an existing order. ```APIDOC ## POST /api/{clientKey}/booking/memo ### Description Save a memo/note for an existing order. ### Method POST ### Endpoint /api/{clientKey}/booking/memo ### Parameters #### Path Parameters - **clientKey** (String) - Required - The client identifier. #### Request Body - **OrderId** (Long) - Required - Identifier of the order. - **Memo** (String) - Required - Memo text to save. ### Response #### Success Response (200) - **Success** (Boolean) - Whether the operation succeeded. - **ErrorMessage** (String) - Error description. ``` -------------------------------- ### PriceKind Enumeration Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Defines the different kinds of prices. ```APIDOC ## PriceKind Enumeration ### Description Defines the different kinds of prices. | Value | Name | Description | |---|---|---| | `0` | Price | Price(cost) per unit/person | | `1` | Return | Price returned on purchase of the product | ``` -------------------------------- ### DepositKind Enumeration Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Defines the different kinds of deposits. ```APIDOC ## DepositKind Enumeration ### Description Defines the different kinds of deposits. | Value | Name | |---|---| | `0` | Money | | `1` | Point | | `2` | Credit | ``` -------------------------------- ### POST /api/{clientKey}/payment/confirm Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Confirms a payment from an external provider and returns the booking confirmation. ```APIDOC ## POST /api/{clientKey}/payment/confirm ### Description Confirm a payment from an external payment provider and receive booking confirmation. ### Method POST ### Endpoint /api/{clientKey}/payment/confirm ### Parameters #### Request Body - **Id** (String) - Required - Identifier of the external payment - **PaymentTime** (DateTime) - Required - UTC datetime when payment was confirmed - **Amount** (Decimal) - Required - The amount that has been paid - **OrderId** (Long) - Required - Identifier of the order - **ExtraData** (Dictionary) - Optional - Additional properties from the payment provider ### Response #### Success Response (200) - **Status** (PaymentStatus) - Payment status - **ReservationNumber** (String) - Reservation reference number - **ReservationCode** (String) - Reservation code - **OrderId** (String) - Order identifier ``` -------------------------------- ### AvailabilityStatus Enumeration Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Defines the possible availability statuses. ```APIDOC ## AvailabilityStatus Enumeration ### Description Defines the possible availability statuses. | Value | Name | Description | |---|---|---| | `0` | Available | Product is available on this date | | `1` | FullyBooked | Product is fully booked on this date | ``` -------------------------------- ### POST /api/{clientKey}/person/registerContactPerson Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Register a contact person for an order. This endpoint allows for the creation of a new contact person or linking an existing person to an order. ```APIDOC ## POST /api/{clientKey}/person/registerContactPerson ### Description Register a contact person for an order. ### Method POST ### Endpoint `/api/{clientKey}/person/registerContactPerson` ### Parameters #### Request Body - **PersonId** (Long?) - Optional - Existing person ID (null to create new) - **FirstName** (String) - Optional - First name - **LastName** (String) - Optional - Last name - **Email** (String) - Optional - Email address - **Phone** (String) - Optional - Phone number - **OrderId** (Long) - Yes - Order ID to associate the person with ### Request Example ```json { "PersonId": null, "FirstName": "Jane", "LastName": "Doe", "Email": "jane.doe@example.com", "Phone": "555-9876", "OrderId": 12345 } ``` ### Response #### Success Response (200 OK) - **Id** (Long?) - Person ID - **FirstName** (String) - Person first name - **LastName** (String) - Person last name - **Email** (String) - Person email - **Phone** (String) - Person phone - **ExternalReference** (string) - External reference of the person #### Response Example ```json { "Id": 98765, "FirstName": "Jane", "LastName": "Doe", "Email": "jane.doe@example.com", "Phone": "555-9876", "ExternalReference": "EXTREF123" } ``` ``` -------------------------------- ### ResourceGroupMode Enumeration Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Defines the modes for resource grouping. ```APIDOC ## ResourceGroupMode Enumeration ### Description Defines the modes for resource grouping. | Value | Name | Description | |---|---|---| | `-1` | Resource | Single resource selection | | `0` | Lanes | Multiple resource selection (auto) | | `1` | Group | Single resource selection from a group | | `2` | Rooms | Single resource selection | ``` -------------------------------- ### DELETE /api/{clientKey}/order/{orderId}/cancel Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Cancels an existing order before payment has been processed. ```APIDOC ## DELETE /api/{clientKey}/order/{orderId}/cancel ### Description Cancel an existing order (before payment). ### Method DELETE ### Endpoint /api/{clientKey}/order/{orderId}/cancel ### Parameters #### Path Parameters - **orderId** (Long) - Required - Identifier of the order to cancel ### Response #### Success Response (200) - Empty response on success ``` -------------------------------- ### PaymentStatus Enumeration Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Defines the possible payment statuses. ```APIDOC ## PaymentStatus Enumeration ### Description Defines the possible payment statuses. | Value | Name | Description | |---|---|---| | `0` | Confirmed | Payment confirmed | | `1` | Cancelled | Payment cancelled | | `2` | Failed | Payment failed | | `3` | Uncertain | Payment status is unknown | | `4` | BillNotFound | Bill was not found | | `5` | Pending | Payment is expected | | `6` | PaymentNotFound | Payment was not found | | `7` | Voided | Bill was voided | | `8` | DepositsNotProcessed | Payment was processed, but deposits associated with bill failed to be processed | ``` -------------------------------- ### PageKind Enumeration Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Defines the different types of pages. ```APIDOC ## PageKind Enumeration ### Description Defines the different types of pages. | Value | Name | Description | |---|---|---| | `0` | Standard | Standard product page | | `1` | Supplement | Supplement page | | `2` | Modifier | Modifier selection page | ``` -------------------------------- ### BillLineKind Enumeration Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Defines the different kinds of bill lines. ```APIDOC ## BillLineKind Enumeration ### Description Defines the different kinds of bill lines. | Value | Name | Description | |---|---|---| | `0` | Normal | Standard sale line | | `1` | Supplement | Supplement line | | `2` | Modifier | Modifier/add-on line | ``` -------------------------------- ### POST /api/{clientKey}/booking/removeItem Source: https://bmileisure.atlassian.net/wiki/external/YTYwMTA3YjAyNWVkNDAzMmJhNDkxZWE5OWZiYTc5YmM Remove a specific item from an order. ```APIDOC ## POST /api/{clientKey}/booking/removeItem ### Description Remove a specific item from an order. ### Method POST ### Endpoint /api/{clientKey}/booking/removeItem ### Parameters #### Path Parameters - **clientKey** (String) - Required - The client identifier. #### Request Body - **OrderId** (Long) - Required - Identifier of the order. - **OrderItemId** (Long) - Required - Identifier of the order item to remove. ### Response #### Success Response (200) - **Success** (Boolean) - Whether the operation succeeded. - **ErrorMessage** (String) - Error description. ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.