---
title: "Creates a group booking."
method: POST
path: "/booking/v1/groups"
tags: ["Group"]
---

# Creates a group booking.

`POST /booking/v1/groups`

<br>You must have at least one of these scopes: 'groups.create, reservations.manage'.

## Headers

- `Idempotency-Key` string

## Request body

- CreateGroupModel — With this request you can create a group booking request
  - `name` string, required — Name of the group
  - `booker` BookerModel, required
    - `title` 'Mr' | 'Ms' | 'Dr' | 'Prof' | 'Mrs' | 'Other', nullable — Title of the booker
    - `gender` 'Female' | 'Male' | 'Other' | 'Unknown', nullable — Gender of the booker
    - `firstName` string, nullable — First name of the booker
    - `middleInitial` string, nullable — Middle initial of the booker
    - `lastName` string, required — Last name of the booker
    - `email` string, nullable — Email address of the booker
    - `phone` string, nullable — Phone number of the booker
    - `address` PersonAddressModel
      - `addressLine1` string, nullable
      - `addressLine2` string, nullable
      - `postalCode` string, nullable
      - `city` string, nullable
      - `regionCode` string, nullable — ISO 3166-2 region code including the country prefix (e.g. US-CA, DE-BY).
      - `countryCode` string, nullable
    - `nationalityCountryCode` string, nullable — The booker's nationality, in ISO 3166-1 alpha-2 code
    - `identificationNumber` string, nullable — The booker's identification number for the given identificationType.
    - `identificationIssueDate` string, date, nullable — The issue date of the booker's identification document.
    - `identificationExpiryDate` string, date, nullable — The expiry date of the booker's identification document.
    - `identificationType` 'SocialInsuranceNumber' | 'PassportNumber' | 'IdNumber' | 'DriverLicenseNumber' | 'VisaNumber' | 'ForeignerIdentityNumber' | 'TaxIdentificationNumber' | 'Other', nullable — The type of the identificationNumber
    - `company` PersonCompanyModel
      - `name` string, nullable — Name of the company
      - `taxId` string, nullable — Tax or Vat ID of the company
    - `preferredLanguage` string, nullable — ISO 639-1 language code (the language, not the country code): e.g. vi not vn, ja not jp, cs not cz, zh not cn.
    - `birthDate` string, date, nullable — Birth date
    - `birthPlace` string, nullable — The place of birth
  - `comment` string, nullable — Additional information and comments
  - `bookerComment` string, nullable — Additional information and comment by the booker
  - `paymentAccount` CreatePaymentAccountModel
    - `accountNumber` string, nullable — The account number (e.g. masked credit card number or last 4 digits)
    - `accountHolder` string, nullable — The account holder (e.g. card holder)
    - `expiryMonth` string, nullable — The credit card's expiration month
    - `expiryYear` string, nullable — The credit card's expiration year
    - `paymentMethod` string, nullable — The payment method (e.g. visa)
    - `payerEmail` string, nullable — The email address of the shopper / customer
    - `payerReference` string, nullable — The reference used to uniquely identify the shopper (e.g. user ID or account ID). Used for recurring payments
    - `isVirtual` boolean — Indicates if the payment account is a virtual credit card. If not specified it defaults to 'false'
    - `inactiveReason` string, nullable — A reason why account is inactive when PayerReference was not provided - <b>DEPRECATED: InactiveReason is deprecated. To add a payment account that is not yet active, use a RegisteredCard instead</b>
  - `registeredCard` RegisteredCardModel — Use registered card when you need to show details about a card you intend to add to the booking/reservation in the future as a real payment account. It is NOT a replacement of the deprecated PaymentAccount field.
    - `cardNumber` string, nullable — The last 4 characters of the card number
    - `cardHolder` string, nullable — The account holder (e.g. cardholder)
    - `expiryMonth` string, nullable — The credit card's expiration month
    - `expiryYear` string, nullable — The credit card's expiration year
    - `paymentMethod` string, nullable — The payment method (e.g. Visa)
    - `payerEmail` string, nullable — The email address of the shopper / customer
    - `note` string, nullable — Optional information, e.g. about card activation or failure to do so
    - `isVirtual` boolean — Indicates if the payment account is a virtual credit card.
  - `propertyIds` string[], required — List of property ids the group booking belongs to

## Response `201`

A new group booking was created.

- GroupCreatedModel
  - `id` string, required — Id of newly created group booking

## Other responses

- `400` — Bad request.
- `401` — You are unauthorized.
- `403` — Forbidden.
- `404` — The Request-URI could not be found.
- `415` — Unsupported media type.
- `422` — Validation errors in the request body or query params.
- `499` — Client closed request.
- `500` — An unexpected error occurred.
- `503` — The server is currently unavailable. Please try later.

---

[API](https://skmtc.dev/apaleo/apis/apaleo-booking-api.md) · [All operations](https://skmtc.dev/apaleo/apis/apaleo-booking-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/apaleo/apaleo-booking-api/revisions/6510a7df7143/schema)
