# Entrance Fees

Entrance fees represent fixed charges applied to an order (e.g. cover charges, service fees) and can be associated with pricing rules. They support per-restaurant overrides and shift-level schedules.

### Get Entrance Fee

### `GET /entrance_fees/{entranceFeeId}` - Get Entrance Fee by ID

Returns the entrance fee identified by entranceFeeId.

#### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| entranceFeeId | integer | Yes | ID of the entrance fee. |

#### Response

```json
{
  "status": 200,
  "code": "entrance_fee_found",
  "message": "Entrance fee found.",
  "data": {
    "entranceFeeId": 5,
    "brandId": 22,
    "code": "COVER_CHARGE",
    "labelTicket": "Couvert",
    "amount": 150,
    "dailyLimit": 1,
    "strategy": 1,
    "vat": 1000,
    "type": null,
    "restaurants": []
  }
}
```

##### Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

| Property | Type | Example | Description |
| --- | --- | --- | --- |
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "entrance\_fee\_found" | Machine-readable application code for the result. |
| message | string | "Entrance fee found." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.entranceFeeId | integer | 5 | Identifier of the associated entrance fee. |
| data.brandId | integer | 22 | Identifier of the brand. |
| data.code | string | "COVER\_CHARGE" | Machine-readable application code for the result. |
| data.labelTicket | string | "Couvert" | The label ticket value. |
| data.amount | integer | 150 | The amount value. |
| data.dailyLimit | integer | 1 | The daily limit value. |
| data.strategy | integer | 1 | The strategy value. |
| data.vat | integer | 1000 | The vat value. |
| data.type | null | null | The type value. |
| data.restaurants | array | \[\] | List of restaurants entries. |

### Create Entrance Fee

Create a new entrance fee for a brand. Entrance fees can have per-restaurant overrides and shift-level schedules.

### `POST /entrance_fees` - Create Entrance Fee

Creates an entrance fee with optional restaurant-level overrides and shift schedules.

#### Request Body

```json
{
  "brandId": 22,
  "code": "COVER_CHARGE",
  "labelTicket": "Couvert",
  "amount": 150,
  "dailyLimit": 1,
  "strategy": 1,
  "vat": 1000,
  "type": "fixed",
  "restaurants": [
    {
      "restaurantId": 195,
      "restaurant_entrance_fee": {
        "amount": 150,
        "dailyLimit": 1,
        "strategy": 1,
        "vat": 1000
      },
      "shiftEntranceFees": [
        {
          "shiftId": "shift-uuid-1",
          "amount": 150,
          "vat": null
        }
      ]
    }
  ]
}
```

##### Request Body Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

| Property | Type | Example | Description |
| --- | --- | --- | --- |
| brandId | integer | 22 | Identifier of the brand. |
| code | string | "COVER\_CHARGE" | Machine-readable application code for the result. |
| labelTicket | string | "Couvert" | The label ticket value. |
| amount | integer | 150 | The amount value. |
| dailyLimit | integer | 1 | The daily limit value. |
| strategy | integer | 1 | The strategy value. |
| vat | integer | 1000 | The vat value. |
| type | string | "fixed" | The type value. |
| restaurants | array | \[…\] | List of restaurants entries. |
| restaurants\[\] | object | {…} | Object containing restaurants fields. |
| restaurants\[\].restaurantId | integer | 195 | Identifier of the restaurant. |
| restaurants\[\].restaurant\_entrance\_fee | object | {…} | Object containing restaurant entrance fee fields. |
| restaurants\[\].restaurant\_entrance\_fee.amount | integer | 150 | The amount value. |
| restaurants\[\].restaurant\_entrance\_fee.dailyLimit | integer | 1 | The daily limit value. |
| restaurants\[\].restaurant\_entrance\_fee.strategy | integer | 1 | The strategy value. |
| restaurants\[\].restaurant\_entrance\_fee.vat | integer | 1000 | The vat value. |
| restaurants\[\].shiftEntranceFees | array | \[…\] | List of shift entrance fees entries. |
| restaurants\[\].shiftEntranceFees\[\] | object | {…} | Object containing shift entrance fees fields. |
| restaurants\[\].shiftEntranceFees\[\].shiftId | string | "shift-uuid-1" | Identifier of the associated shift. |
| restaurants\[\].shiftEntranceFees\[\].amount | integer | 150 | The amount value. |
| restaurants\[\].shiftEntranceFees\[\].vat | null | null | The vat value. |

#### Response

```json
{
  "status": 200,
  "code": "entrance_fee_created",
  "message": "Entrance fee created.",
  "data": {
    "entranceFeeId": 5,
    "brandId": 22,
    "code": "COVER_CHARGE",
    "labelTicket": "Couvert",
    "amount": 150,
    "strategy": 1,
    "vat": 1000
  }
}
```

##### Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

| Property | Type | Example | Description |
| --- | --- | --- | --- |
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "entrance\_fee\_created" | Machine-readable application code for the result. |
| message | string | "Entrance fee created." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.entranceFeeId | integer | 5 | Identifier of the associated entrance fee. |
| data.brandId | integer | 22 | Identifier of the brand. |
| data.code | string | "COVER\_CHARGE" | Machine-readable application code for the result. |
| data.labelTicket | string | "Couvert" | The label ticket value. |
| data.amount | integer | 150 | The amount value. |
| data.strategy | integer | 1 | The strategy value. |
| data.vat | integer | 1000 | The vat value. |

#### Field Reference

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| brandId | Integer | Yes | The brand this entrance fee belongs to. |
| code | String | Yes | Unique code identifying this entrance fee. |
| labelTicket | String | Yes | Label printed on the receipt/ticket. |
| amount | Integer | Yes | Fee amount in cents (e.g. 150 = 1.50 EUR). |
| dailyLimit | Integer | Yes | Maximum number of times this fee can be applied per customer per day. |
| strategy | Integer | Yes | Application strategy identifier. |
| vat | Integer | Yes | VAT rate in basis points (e.g. 1000 = 10%). |
| type | String | No | Optional type descriptor for the entrance fee. |
| restaurants | Array&lt;Object&gt; | No | Per-restaurant overrides. Each entry contains `restaurantId`, `restaurant_entrance_fee` (amount, dailyLimit, strategy, vat), and optional `shiftEntranceFees` array. |

### Update Entrance Fee

Update an existing entrance fee. The full configuration including restaurant-level overrides must be provided.

### `PUT /entrance_fees/{entranceFeeId}` - Update Entrance Fee

Replaces the entrance fee configuration identified by entranceFeeId.

#### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| entranceFeeId | integer | Yes | ID of the entrance fee to update. |

#### Request Body

```json
{
  "code": "COVER_CHARGE_V2",
  "labelTicket": "Couvert v2",
  "amount": 200,
  "dailyLimit": 2,
  "strategy": 1,
  "vat": 1000,
  "brandId": 22,
  "restaurants": [
    {
      "restaurantId": 195,
      "restaurant_entrance_fee": {
        "amount": 200,
        "dailyLimit": 2,
        "strategy": 1,
        "vat": 1000
      },
      "shiftEntranceFees": []
    }
  ],
  "shouldUpdateShifts": true
}
```

##### Request Body Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

| Property | Type | Example | Description |
| --- | --- | --- | --- |
| code | string | "COVER\_CHARGE\_V2" | Machine-readable application code for the result. |
| labelTicket | string | "Couvert v2" | The label ticket value. |
| amount | integer | 200 | The amount value. |
| dailyLimit | integer | 2 | The daily limit value. |
| strategy | integer | 1 | The strategy value. |
| vat | integer | 1000 | The vat value. |
| brandId | integer | 22 | Identifier of the brand. |
| restaurants | array | \[…\] | List of restaurants entries. |
| restaurants\[\] | object | {…} | Object containing restaurants fields. |
| restaurants\[\].restaurantId | integer | 195 | Identifier of the restaurant. |
| restaurants\[\].restaurant\_entrance\_fee | object | {…} | Object containing restaurant entrance fee fields. |
| restaurants\[\].restaurant\_entrance\_fee.amount | integer | 200 | The amount value. |
| restaurants\[\].restaurant\_entrance\_fee.dailyLimit | integer | 2 | The daily limit value. |
| restaurants\[\].restaurant\_entrance\_fee.strategy | integer | 1 | The strategy value. |
| restaurants\[\].restaurant\_entrance\_fee.vat | integer | 1000 | The vat value. |
| restaurants\[\].shiftEntranceFees | array | \[\] | List of shift entrance fees entries. |
| shouldUpdateShifts | boolean | true | The should update shifts value. |

#### Response

```json
{
  "status": 200,
  "code": "entrance_fee_updated",
  "message": "Entrance fee updated.",
  "data": {
    "entranceFeeId": 5,
    "code": "COVER_CHARGE_V2",
    "labelTicket": "Couvert v2",
    "amount": 200
  }
}
```

##### Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

| Property | Type | Example | Description |
| --- | --- | --- | --- |
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "entrance\_fee\_updated" | Machine-readable application code for the result. |
| message | string | "Entrance fee updated." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.entranceFeeId | integer | 5 | Identifier of the associated entrance fee. |
| data.code | string | "COVER\_CHARGE\_V2" | Machine-readable application code for the result. |
| data.labelTicket | string | "Couvert v2" | The label ticket value. |
| data.amount | integer | 200 | The amount value. |

### Delete Entrance Fee

Permanently delete an entrance fee. This will also remove it from any associated pricing rules.

### `DELETE /entrance_fees/{entranceFeeId}` - Delete Entrance Fee

Deletes the entrance fee identified by entranceFeeId.

#### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| entranceFeeId | integer | Yes | ID of the entrance fee to delete. |

#### Response

```json
{
  "status": 200,
  "code": "entrance_fee_deleted",
  "message": "Entrance fee deleted."
}
```

##### Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

| Property | Type | Example | Description |
| --- | --- | --- | --- |
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "entrance\_fee\_deleted" | Machine-readable application code for the result. |
| message | string | "Entrance fee deleted." | Human-readable result message. Do not use this value for program logic. |

### Brand Entrance Fees

Retrieve entrance fees configured at the brand level. Entrance fees define admission pricing that can be applied to customers (commonly used in collective catering contexts).

### `GET /brands/{brandId}/entrance_fees` - Get Entrance Fees by Brand

Retrieve all entrance fees associated with a brand, including their configuration details.

#### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| brandId | integer | Yes | The unique identifier of the brand. |

#### Response

```json
{
  "status": 200,
  "code": "entrance_fees_found",
  "data": [
    {
      "entranceFeeId": 201,
      "name": "Standard Entry",
      "code": "STD",
      "amount": 350,
      "brandId": 100
    }
  ]
}
```

##### Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

| Property | Type | Example | Description |
| --- | --- | --- | --- |
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "entrance\_fees\_found" | Machine-readable application code for the result. |
| data | array | \[…\] | Endpoint-specific response payload. |
| data\[\] | object | {…} | Endpoint-specific response payload. |
| data\[\].entranceFeeId | integer | 201 | Identifier of the associated entrance fee. |
| data\[\].name | string | "Standard Entry" | The name value. |
| data\[\].code | string | "STD" | Machine-readable application code for the result. |
| data\[\].amount | integer | 350 | The amount value. |
| data\[\].brandId | integer | 100 | Identifier of the brand. |

### `GET /brands/{brandId}/entrance_fees/list` - Get Entrance Fees List

Retrieve a simplified list of entrance fees for a brand. This returns a lighter response format optimized for dropdown or selection lists.

#### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| brandId | integer | Yes | The unique identifier of the brand. |

#### Response

```json
{
  "status": 200,
  "code": "entrance_fees_found",
  "data": [
    {
      "entranceFeeId": 201,
      "name": "Standard Entry",
      "code": "STD"
    },
    {
      "entranceFeeId": 202,
      "name": "VIP Entry",
      "code": "VIP"
    }
  ]
}
```

##### Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

| Property | Type | Example | Description |
| --- | --- | --- | --- |
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "entrance\_fees\_found" | Machine-readable application code for the result. |
| data | array | \[…\] | Endpoint-specific response payload. |
| data\[\] | object | {…} | Endpoint-specific response payload. |
| data\[\].entranceFeeId | integer | 201 | Identifier of the associated entrance fee. |
| data\[\].name | string | "Standard Entry" | The name value. |
| data\[\].code | string | "STD" | Machine-readable application code for the result. |
