# add_services

Create one or more services for a building. Each service requires a name, gross amount, currency, and application unit
(per booking or per unit of service).

<!-- INPUT_BLOCK_START -->

## Input

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `buildingId` | `string` | Yes | The ID of the building to add services to |
| `services` | `Service[]` | Yes | Array of services to create - [Service](#service) |

### Service

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | Yes | Display name of the service (3-64 characters) |
| `amountCents` | `number` | Yes | Price including VAT, in the smallest currency unit (e.g., pence, cents) |
| `amountCurrency` | `string` | Yes | ISO 4217 currency code (e.g., GBP, EUR) |
| `amountType` | `AmountType` | No | Whether the amount includes VAT. Services are priced gross only, so GROSS is the only value and the default. - [AmountType](#amounttype) |
| `applicationUnit` | `ApplicationUnit` | Yes | How the service is charged. Per-billing-period services cannot be created through the API; for a monthly charge use PER_UNIT_OF_SERVICE with occurrenceUnit MONTHS and occurrenceFrequency 1. - [ApplicationUnit](#applicationunit) |
| `occurrenceUnit` | `OccurrenceUnit` | No | How often the service recurs, given together with occurrenceFrequency. Only for PER_UNIT_OF_SERVICE services. - [OccurrenceUnit](#occurrenceunit) |
| `occurrenceFrequency` | `number` | No | The number of occurrence units between charges, at least 1, given together with occurrenceUnit. Only for PER_UNIT_OF_SERVICE services. |
| `prorationPolicy` | `ProrationPolicy` | No | What a partial final occurrence charges. Only for PER_UNIT_OF_SERVICE services; without one, every occurrence is charged in full. - [ProrationPolicy](#prorationpolicy) |
| `vatCodeId` | `string` | No | The ID of a VAT code from the building's workspace. If not provided, the workspace's exempt VAT code is used. |
| `generalLedgerId` | `string` | No | The uuid of a general ledger from the building's workspace, as get_service returns it. Required when invoicing is enabled for the workspace. |
| `chargeTypeId` | `string` | No | The ID of a finance charge type available to the workspace's organisation, used to classify the service |

### AmountType

| Value | Description |
| --- | --- |
| `GROSS` | Amount includes VAT |

### ApplicationUnit

| Value | Description |
| --- | --- |
| `PER_BOOKING` | Charged once per booking |
| `PER_UNIT_OF_SERVICE` | Charged on a recurring schedule, such as monthly |

### OccurrenceUnit

| Value | Description |
| --- | --- |
| `DAYS` | Recurs every given number of days |
| `WEEKS` | Recurs every given number of weeks |
| `MONTHS` | Recurs every given number of months, on the day of the month the service starts |

### ProrationPolicy

| Value | Description |
| --- | --- |
| `FULL_OCCURRENCE` | Every occurrence is charged in full |
| `PRO_RATA` | A partial final occurrence is charged for the share of its days within the booking |

<!-- INPUT_BLOCK_END -->

<!-- OUTPUT_BLOCK_START -->

## Output

| Field | Type | Description |
| --- | --- | --- |
| `content` | `ContentItem[]` | Array of content items returned by the tool - [ContentItem](#contentitem) |
| `isError` | `boolean` | Whether the tool execution resulted in an error |

### ContentItem

| Field | Type | Description |
| --- | --- | --- |
| `type` | `'text'` | Content type (currently only 'text' is supported) |
| `text` | `string` | The text content to display |

<!-- OUTPUT_BLOCK_END -->
