---
title: "POST /data/v0-nsfw/bookings"
method: POST
path: "/data/v0-nsfw/bookings"
tags: ["BookingMigration"]
---

# POST /data/v0-nsfw/bookings

`POST /data/v0-nsfw/bookings`

## Request

- Base URL: `https://api.apaleo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.apaleo.com/data/v0-nsfw/bookings`
- Auth: OAuth 2
  - Implicit: `https://identity.apaleo.com/connect/authorize`
  - Scopes: `reservations.import`

<br>You must have this scope: 'reservations.import'.

## Headers

- `Idempotency-Key` string

## Request body

- CreateBookingMigrationModel: With this request you can migrate a booking from other PMS system
  - `paymentAccount` CreatePaymentAccountMigrationModel: DEPRECATED: CreatePaymentAccountMigrationModel is deprecated, use `/booking/v1/payment-accounts` instead. This model will be removed on May 15, 2026.
    - `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
  - `booker` BookerMigrationModel, 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` PersonCompanyMigrationModel
      - `name` string, nullable: Name of the company
      - `taxId` string, nullable: Tax or Vat ID of the company
    - `preferredLanguage` string, nullable: Preferred contact two-letter language code (ISO Alpha-2)
    - `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 comments by the booker
  - `reservations` CreateReservationMigrationModel[], required: List of reservations to create
    - `arrival` string, required: Date and optional time of arrival<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
    - `departure` string, required: Date and optional time of departure. Cannot be more than 5 years after arrival.<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
    - `adults` integer, required: Number of adults
    - `childrenAges` integer[], nullable: Ages of the children
    - `comment` string, nullable: Additional information and comments
    - `guestComment` string, nullable: Additional information and comments by the guest
    - `externalCode` string, nullable: Code in some system
    - `channelCode` 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu' | 'Gimsi', required: Channel code
    - `source` string, nullable: Source of the reservation
    - `primaryGuest` GuestMigrationModel
      - `title` 'Mr' | 'Ms' | 'Dr' | 'Prof' | 'Mrs' | 'Other', nullable: Title of the guest
      - `gender` 'Female' | 'Male' | 'Other' | 'Unknown', nullable: Gender of the booker
      - `firstName` string, nullable: First name of the guest
      - `middleInitial` string, nullable: Middle initial of the guest
      - `lastName` string, required: Last name of the guest
      - `secondLastName` string, nullable: Second last name of the guest
      - `email` string, nullable: Email address of the guest
      - `phone` string, nullable: Phone number of the guest
      - `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 guest's nationality, in ISO 3166-1 alpha-2 code
      - `identificationNumber` string, nullable: The guest's identification number for the given identificationType.
      - `identificationAdditionalNumber` string, nullable: The guest's additional identification number for the given identificationType.
      - `identificationIssueDate` string, date, nullable: The issue date of the guest's identification document.
      - `identificationExpiryDate` string, date, nullable: The expiry date of the guest's identification document.
      - `identificationIssuePlace` string, nullable: The issue place of the guest's identification document.
      - `identificationType` 'SocialInsuranceNumber' | 'PassportNumber' | 'IdNumber' | 'DriverLicenseNumber' | 'VisaNumber' | 'ForeignerIdentityNumber' | 'TaxIdentificationNumber' | 'Other', nullable: The type of the identificationNumber
      - `personalTaxId` string, nullable: The personal tax id of the guest
      - `company` PersonCompanyMigrationModel
        - `name` string, nullable: Name of the company
        - `taxId` string, nullable: Tax or Vat ID of the company
      - `preferredLanguage` string, nullable: Two-letter code (ISO Alpha-2) of a language preferred for contact
      - `birthDate` string, date, nullable: Guest's birthdate
      - `birthPlace` string, nullable: Guest's place of birth
      - `birthFirstName` string, nullable: Guest's first name right after birth
      - `birthLastName` string, nullable: Guest's last name right after birth
      - `motherFirstName` string, nullable: Guest's mother's first name
      - `motherLastName` string, nullable: Guest's mother's last name
      - `borderCrossingPlace` string, nullable: The place through which the guest crossed the border
      - `borderCrossingDate` string, date, nullable: Date on which the guest crossed the border
      - `nextDestination` string, nullable: The guest's next destination address
      - `relationshipToPrimaryGuest` 'Grandparent' | 'Grandchild' | 'GreatGrandparent' | 'GreatGrandchild' | 'Parent' | 'Child' | 'Sibling' | 'ParentInLaw' | 'ChildInLaw' | 'SiblingInLaw' | 'Spouse' | 'UncleOrAunt' | 'NephewOrNiece' | 'Guardian' | 'Other', nullable: The relationship of the guest to the primary guest
    - `additionalGuests` GuestMigrationModel[], nullable: Additional guests of the reservation.
      - `title` 'Mr' | 'Ms' | 'Dr' | 'Prof' | 'Mrs' | 'Other', nullable: Title of the guest
      - `gender` 'Female' | 'Male' | 'Other' | 'Unknown', nullable: Gender of the booker
      - `firstName` string, nullable: First name of the guest
      - `middleInitial` string, nullable: Middle initial of the guest
      - `lastName` string, required: Last name of the guest
      - `secondLastName` string, nullable: Second last name of the guest
      - `email` string, nullable: Email address of the guest
      - `phone` string, nullable: Phone number of the guest
      - `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 guest's nationality, in ISO 3166-1 alpha-2 code
      - `identificationNumber` string, nullable: The guest's identification number for the given identificationType.
      - `identificationAdditionalNumber` string, nullable: The guest's additional identification number for the given identificationType.
      - `identificationIssueDate` string, date, nullable: The issue date of the guest's identification document.
      - `identificationExpiryDate` string, date, nullable: The expiry date of the guest's identification document.
      - `identificationIssuePlace` string, nullable: The issue place of the guest's identification document.
      - `identificationType` 'SocialInsuranceNumber' | 'PassportNumber' | 'IdNumber' | 'DriverLicenseNumber' | 'VisaNumber' | 'ForeignerIdentityNumber' | 'TaxIdentificationNumber' | 'Other', nullable: The type of the identificationNumber
      - `personalTaxId` string, nullable: The personal tax id of the guest
      - `company` PersonCompanyMigrationModel
        - `name` string, nullable: Name of the company
        - `taxId` string, nullable: Tax or Vat ID of the company
      - `preferredLanguage` string, nullable: Two-letter code (ISO Alpha-2) of a language preferred for contact
      - `birthDate` string, date, nullable: Guest's birthdate
      - `birthPlace` string, nullable: Guest's place of birth
      - `birthFirstName` string, nullable: Guest's first name right after birth
      - `birthLastName` string, nullable: Guest's last name right after birth
      - `motherFirstName` string, nullable: Guest's mother's first name
      - `motherLastName` string, nullable: Guest's mother's last name
      - `borderCrossingPlace` string, nullable: The place through which the guest crossed the border
      - `borderCrossingDate` string, date, nullable: Date on which the guest crossed the border
      - `nextDestination` string, nullable: The guest's next destination address
      - `relationshipToPrimaryGuest` 'Grandparent' | 'Grandchild' | 'GreatGrandparent' | 'GreatGrandchild' | 'Parent' | 'Child' | 'Sibling' | 'ParentInLaw' | 'ChildInLaw' | 'SiblingInLaw' | 'Spouse' | 'UncleOrAunt' | 'NephewOrNiece' | 'Guardian' | 'Other', nullable: The relationship of the guest to the primary guest
    - `guaranteeType` 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company', nullable: The guarantee that has to be applied for this reservation. It has to be the same or stronger than the minimum guarantee required by the selected rate plan
    - `travelPurpose` 'Business' | 'Leisure', nullable: Purpose of the trip, leisure or business
    - `timeSlices` CreateReservationTimeSliceMigrationModel[], required: Gross prices including services and taxes for each time slice. They will be applied to the reservation timeslices in the order specified from arrival to departure
      - `ratePlanId` string, required: The rate plan id for this time slice
      - `totalAmount` MonetaryValueModel
        - `amount` number, double, required
        - `currency` string, required
    - `services` BookReservationServiceMigrationModel[], nullable: Additional services (extras, add-ons) that should be added to the reservation
      - `serviceId` string, required: The id of the service you want to book
      - `count` integer, nullable: The number of services to book for each service date. It defaults to the service offer count when not specified.
      - `amount` MonetaryValueModel
        - `amount` number, double, required
        - `currency` string, required
      - `dates` Date[], nullable: The optional dates you want to book the service for; if not specified the default service pattern will be used (e.g. whole stay).
        - `serviceDate` string, date, required: The date the service is delivered
        - `count` integer, nullable: The number of services to book for this date. It defaults to the service offer count when not specified.
        - `amount` MonetaryValueModel
          - `amount` number, double, required
          - `currency` string, required
    - `companyId` string, nullable: Set this if this reservation belongs to a company
    - `corporateCode` string, nullable: Corporate code provided during creation. Used to find offers during amend.
    - `prePaymentAmount` MonetaryValueModel
      - `amount` number, double, required
      - `currency` string, required
    - `commission` CommissionModel
      - `commissionAmount` MonetaryValueModel, required
        - `amount` number, double, required
        - `currency` string, required
      - `beforeCommissionAmount` MonetaryValueModel
        - `amount` number, double, required
        - `currency` string, required
    - `promoCode` string, nullable: The promo code associated with a certain special offer
    - `externalReferences` ExternalReferencesMigrationModel
      - `globalDistributionSystemId` string, nullable: The ID of the global distribution system.
      - `onlineTravelAgencyId` string, nullable: The ID of the online travel agency.
      - `onlineBookingToolId` string, nullable: The ID of the online booking tool.
      - `channelManagerId` string, nullable: The ID of the channel manager.
      - `centralReservationSystemId` string, nullable: The ID of the central reservation system.
      - `legacyId` string, nullable: The ID of the legacy PMS system.
    - `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.
  - `transactionReference` string, nullable: The reference of a payment transaction. This should be set when a payment transaction has been initiated and should be used to complete the transaction upon reservation creation. When set, the payment transaction completion is always triggered regardless of the reservation guarantee type and payment automation settings.
  - `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.

## Response `201`

Created

- BookingCreatedMigrationModel
  - `id` string, required: Booking id
  - `reservationIds` ReservationCreatedMigrationModel[], required: List of ids for newly created reservations
    - `id` string, required: Id of the reservation

## 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-data-api-not-safe-for-work.md) - [All operations](https://skmtc.dev/apaleo/apis/apaleo-data-api-not-safe-for-work/llms.txt) - [OpenAPI document](https://skmtc.dev/apaleo/apis/apaleo-data-api-not-safe-for-work/revisions/d4b58f551d6f?raw)
