> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.duve.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.duve.com/_mcp/server.

# Accommodation

POST https://sandbox.duve.com/api/v1/hooks/accommodation/connect
Content-Type: application/json

Create or update an accommodation in Duve

Reference: https://developers.duve.com/api-references/pms-api/pms/accommodation/connect-accommodation

## Request

### Body (application/json)

This endpoint expects an object.

- `accountId` (string, required) — The source id that you recieved in Your Duve account.
- `event` (enum, required)
  - Allowed values: `create`, `update`
- `entity` (enum, required)
  - Allowed values: `accommodation`
- `resource` (ApiV1HooksAccommodationConnectPostRequestBodyContentApplicationJsonSchemaResource, required) — The entity payload body

## Response

### 200

Webhook received and processed successfully.

- `savedProperties` (integer, optional) — Number of properties successfully saved during the sync.
- `skippedProperties` (integer, optional) — Number of properties skipped during the sync.
- `summary` (string, optional) — Summary of the synchronization process.

## Errors

### 400 Bad Request Error

Bad request or invalid webhook payload.

- `string`

### 401 Unauthorized Error

Unauthorized - invalid or missing authorization token.

- `string`

### 403 Forbidden Error

Forbidden - request is not allowed.

- `string`

### 500 Internal Server Error

Internal server error.

- `string`

## Types

### ApiV1HooksAccommodationConnectPostRequestBodyContentApplicationJsonSchemaResource

The entity payload body

- `id` (string, required) — your accommodation unit system id
- `status` (enum, required)
  - Allowed values: `ACTIVE`, `INACTIVE`
- `name` (string, required) — The name of the unit
- `street` (string, required) — The unit address street name
- `streetNumber` (string, required) — The unit address street number
- `country` (string, required) — Country code two digits ISO code
- `city` (string, required) — The city of the unit
- `wifiName` (string, required) — Unit wifi name
- `wifiCode` (string, required) — Unit wifi code
- `doorCode` (string, required) — Unit door code or code instructions
- `apartmentNumber` (string, optional) — The apartment/door number of the unit
- `floor` (string, optional) — The flow number of the unit
- `state` (string, optional) — The state of the unit
- `area` (string, optional) — The area/region of the unit
- `postalCode` (string, optional) — The unit address postal code
- `buildingEntrance` (string, optional) — Unit address building entrance description
- `buildingCode` (string, optional) — The building entrance code
- `minimumCheckInTime` (string, optional) — The minimum check in time to the unit in format HH:mm
- `maximumCheckOutTime` (string, optional) — The maximum check out time to the unit in format HH:mm
- `bedroomsNumber` (integer, optional) — Bedrooms number
- `numberOfToilets` (integer, optional) — Toilets number
- `numberOfBathrooms` (integer, optional) — Bathrooms number
- `maxNumberOfGuests` (integer, optional) — Maximum number of guests
- `propertyType` (integer, optional) — The type of unit code default is apartment 14
- `coordinates` (ApiV1HooksAccommodationConnectPostRequestBodyContentApplicationJsonSchemaResourceCoordinates, optional) — The unit location coordinates latitude & longitude
- `checkInOptions` (list of string, optional) — Array of the specific check in options to set to this unit
- `lateCheckOutOverride` (boolean, optional) — Override the late check out upsell global settings
- `bedTypes` (list of ApiV1HooksAccommodationConnectPostRequestBodyContentApplicationJsonSchemaResourceBedTypesItems, optional) — Array of the bedTypes for the rental
- `additionalFields` (list of ApiV1HooksAccommodationConnectPostRequestBodyContentApplicationJsonSchemaResourceAdditionalFieldsItems, optional) — Additional fields for the property (Rental)
- `sizeSqM` (integer, optional)
- `roomType` (ApiV1HooksAccommodationConnectPostRequestBodyContentApplicationJsonSchemaResourceRoomType, optional)

### ApiV1HooksAccommodationConnectPostRequestBodyContentApplicationJsonSchemaResourceCoordinates

The unit location coordinates latitude & longitude

- `lat` (double, optional)
- `lon` (double, optional)

### ApiV1HooksAccommodationConnectPostRequestBodyContentApplicationJsonSchemaResourceBedTypesItems

- `bedType` (integer, required)
- `amount` (integer, required)

### ApiV1HooksAccommodationConnectPostRequestBodyContentApplicationJsonSchemaResourceAdditionalFieldsItems

- `fieldName` (string, required)
- `content` (string, required)

### ApiV1HooksAccommodationConnectPostRequestBodyContentApplicationJsonSchemaResourceRoomType

- `id` (string, optional) — The external id of the room type in your system
- `name` (string, optional) — The name of the room type of the room
- `code` (string, optional) — The room type code used as the external Id
- `description` (string, optional) — The description of the room type
- `features` (list of string, optional) — An array of strings with the aminities of the room type
- `sizeSqM` (integer, optional) — The room size in sqM
- `numberOfToilets` (integer, optional) — Toilets number
- `bedroomsNumber` (integer, optional)
- `additionalFields` (list of ApiV1HooksAccommodationConnectPostRequestBodyContentApplicationJsonSchemaResourceRoomTypeAdditionalFieldsItems, optional) — The Additional fields of the room type

### ApiV1HooksAccommodationConnectPostRequestBodyContentApplicationJsonSchemaResourceRoomTypeAdditionalFieldsItems

- `fieldName` (string, optional) — field name matching the property field name of the company
- `content` (string, optional) — field value

## Examples

**Request**

```json
{
  "accountId": "12345",
  "event": "create",
  "entity": "accommodation",
  "resource": {
    "id": "room_123",
    "status": "ACTIVE",
    "name": "Room 2323",
    "street": "Champs-Élysées",
    "streetNumber": "66",
    "country": "FR",
    "city": "Paris",
    "wifiName": "DemoWifi",
    "wifiCode": "dummypass1234",
    "doorCode": "#Your rental door code",
    "apartmentNumber": "4",
    "floor": "4",
    "state": "",
    "area": "",
    "postalCode": "2323 ZE",
    "buildingEntrance": "B",
    "buildingCode": "#Your entrance code",
    "minimumCheckInTime": "14:00",
    "maximumCheckOutTime": "11:00",
    "bedroomsNumber": 2,
    "numberOfToilets": 1,
    "numberOfBathrooms": 1,
    "maxNumberOfGuests": 1,
    "propertyType": 14,
    "coordinates": {
      "lat": 48.8709165,
      "lon": 2.305427
    },
    "checkInOptions": [
      "5b2f7cffdfc0e8591b0e0016"
    ],
    "lateCheckOutOverride": false,
    "bedTypes": [
      {
        "bedType": 2,
        "amount": 1
      }
    ],
    "additionalFields": [
      {
        "fieldName": "NEW FIELD",
        "content": "Today is Sunday, September 03"
      }
    ],
    "sizeSqM": 55,
    "roomType": {
      "id": "12345678",
      "name": "Superior queen room",
      "code": "stg4",
      "description": "This is a Superior queen room type",
      "features": [
        "phone",
        "wifi",
        "sea view"
      ],
      "sizeSqM": 60,
      "numberOfToilets": 2,
      "bedroomsNumber": 3,
      "additionalFields": [
        {
          "fieldName": "TestName3",
          "content": "test2"
        }
      ]
    }
  },
  "apiToken": {
    "type": "string",
    "example": "************"
  }
}
```

**Response**

```json
{
  "savedProperties": 1,
  "skippedProperties": 0,
  "summary": "WishboxConnect properties sync completed, synced 1 properties"
}
```

**SDK Code**

```python
import requests

url = "https://sandbox.duve.com/api/v1/hooks/accommodation/connect"

payload = {
    "accountId": "12345",
    "event": "create",
    "entity": "accommodation",
    "resource": {
        "id": "room_123",
        "status": "ACTIVE",
        "name": "Room 2323",
        "street": "Champs-Élysées",
        "streetNumber": "66",
        "country": "FR",
        "city": "Paris",
        "wifiName": "DemoWifi",
        "wifiCode": "dummypass1234",
        "doorCode": "#Your rental door code",
        "apartmentNumber": "4",
        "floor": "4",
        "state": "",
        "area": "",
        "postalCode": "2323 ZE",
        "buildingEntrance": "B",
        "buildingCode": "#Your entrance code",
        "minimumCheckInTime": "14:00",
        "maximumCheckOutTime": "11:00",
        "bedroomsNumber": 2,
        "numberOfToilets": 1,
        "numberOfBathrooms": 1,
        "maxNumberOfGuests": 1,
        "propertyType": 14,
        "coordinates": {
            "lat": 48.8709165,
            "lon": 2.305427
        },
        "checkInOptions": ["5b2f7cffdfc0e8591b0e0016"],
        "lateCheckOutOverride": False,
        "bedTypes": [
            {
                "bedType": 2,
                "amount": 1
            }
        ],
        "additionalFields": [
            {
                "fieldName": "NEW FIELD",
                "content": "Today is Sunday, September 03"
            }
        ],
        "sizeSqM": 55,
        "roomType": {
            "id": "12345678",
            "name": "Superior queen room",
            "code": "stg4",
            "description": "This is a Superior queen room type",
            "features": ["phone", "wifi", "sea view"],
            "sizeSqM": 60,
            "numberOfToilets": 2,
            "bedroomsNumber": 3,
            "additionalFields": [
                {
                    "fieldName": "TestName3",
                    "content": "test2"
                }
            ]
        }
    },
    "apiToken": {
        "type": "string",
        "example": "************"
    }
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://sandbox.duve.com/api/v1/hooks/accommodation/connect';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{"accountId":"12345","event":"create","entity":"accommodation","resource":{"id":"room_123","status":"ACTIVE","name":"Room 2323","street":"Champs-Élysées","streetNumber":"66","country":"FR","city":"Paris","wifiName":"DemoWifi","wifiCode":"dummypass1234","doorCode":"#Your rental door code","apartmentNumber":"4","floor":"4","state":"","area":"","postalCode":"2323 ZE","buildingEntrance":"B","buildingCode":"#Your entrance code","minimumCheckInTime":"14:00","maximumCheckOutTime":"11:00","bedroomsNumber":2,"numberOfToilets":1,"numberOfBathrooms":1,"maxNumberOfGuests":1,"propertyType":14,"coordinates":{"lat":48.8709165,"lon":2.305427},"checkInOptions":["5b2f7cffdfc0e8591b0e0016"],"lateCheckOutOverride":false,"bedTypes":[{"bedType":2,"amount":1}],"additionalFields":[{"fieldName":"NEW FIELD","content":"Today is Sunday, September 03"}],"sizeSqM":55,"roomType":{"id":"12345678","name":"Superior queen room","code":"stg4","description":"This is a Superior queen room type","features":["phone","wifi","sea view"],"sizeSqM":60,"numberOfToilets":2,"bedroomsNumber":3,"additionalFields":[{"fieldName":"TestName3","content":"test2"}]}},"apiToken":{"type":"string","example":"************"}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://sandbox.duve.com/api/v1/hooks/accommodation/connect"

	payload := strings.NewReader("{\n  \"accountId\": \"12345\",\n  \"event\": \"create\",\n  \"entity\": \"accommodation\",\n  \"resource\": {\n    \"id\": \"room_123\",\n    \"status\": \"ACTIVE\",\n    \"name\": \"Room 2323\",\n    \"street\": \"Champs-Élysées\",\n    \"streetNumber\": \"66\",\n    \"country\": \"FR\",\n    \"city\": \"Paris\",\n    \"wifiName\": \"DemoWifi\",\n    \"wifiCode\": \"dummypass1234\",\n    \"doorCode\": \"#Your rental door code\",\n    \"apartmentNumber\": \"4\",\n    \"floor\": \"4\",\n    \"state\": \"\",\n    \"area\": \"\",\n    \"postalCode\": \"2323 ZE\",\n    \"buildingEntrance\": \"B\",\n    \"buildingCode\": \"#Your entrance code\",\n    \"minimumCheckInTime\": \"14:00\",\n    \"maximumCheckOutTime\": \"11:00\",\n    \"bedroomsNumber\": 2,\n    \"numberOfToilets\": 1,\n    \"numberOfBathrooms\": 1,\n    \"maxNumberOfGuests\": 1,\n    \"propertyType\": 14,\n    \"coordinates\": {\n      \"lat\": 48.8709165,\n      \"lon\": 2.305427\n    },\n    \"checkInOptions\": [\n      \"5b2f7cffdfc0e8591b0e0016\"\n    ],\n    \"lateCheckOutOverride\": false,\n    \"bedTypes\": [\n      {\n        \"bedType\": 2,\n        \"amount\": 1\n      }\n    ],\n    \"additionalFields\": [\n      {\n        \"fieldName\": \"NEW FIELD\",\n        \"content\": \"Today is Sunday, September 03\"\n      }\n    ],\n    \"sizeSqM\": 55,\n    \"roomType\": {\n      \"id\": \"12345678\",\n      \"name\": \"Superior queen room\",\n      \"code\": \"stg4\",\n      \"description\": \"This is a Superior queen room type\",\n      \"features\": [\n        \"phone\",\n        \"wifi\",\n        \"sea view\"\n      ],\n      \"sizeSqM\": 60,\n      \"numberOfToilets\": 2,\n      \"bedroomsNumber\": 3,\n      \"additionalFields\": [\n        {\n          \"fieldName\": \"TestName3\",\n          \"content\": \"test2\"\n        }\n      ]\n    }\n  },\n  \"apiToken\": {\n    \"type\": \"string\",\n    \"example\": \"************\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://sandbox.duve.com/api/v1/hooks/accommodation/connect")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"accountId\": \"12345\",\n  \"event\": \"create\",\n  \"entity\": \"accommodation\",\n  \"resource\": {\n    \"id\": \"room_123\",\n    \"status\": \"ACTIVE\",\n    \"name\": \"Room 2323\",\n    \"street\": \"Champs-Élysées\",\n    \"streetNumber\": \"66\",\n    \"country\": \"FR\",\n    \"city\": \"Paris\",\n    \"wifiName\": \"DemoWifi\",\n    \"wifiCode\": \"dummypass1234\",\n    \"doorCode\": \"#Your rental door code\",\n    \"apartmentNumber\": \"4\",\n    \"floor\": \"4\",\n    \"state\": \"\",\n    \"area\": \"\",\n    \"postalCode\": \"2323 ZE\",\n    \"buildingEntrance\": \"B\",\n    \"buildingCode\": \"#Your entrance code\",\n    \"minimumCheckInTime\": \"14:00\",\n    \"maximumCheckOutTime\": \"11:00\",\n    \"bedroomsNumber\": 2,\n    \"numberOfToilets\": 1,\n    \"numberOfBathrooms\": 1,\n    \"maxNumberOfGuests\": 1,\n    \"propertyType\": 14,\n    \"coordinates\": {\n      \"lat\": 48.8709165,\n      \"lon\": 2.305427\n    },\n    \"checkInOptions\": [\n      \"5b2f7cffdfc0e8591b0e0016\"\n    ],\n    \"lateCheckOutOverride\": false,\n    \"bedTypes\": [\n      {\n        \"bedType\": 2,\n        \"amount\": 1\n      }\n    ],\n    \"additionalFields\": [\n      {\n        \"fieldName\": \"NEW FIELD\",\n        \"content\": \"Today is Sunday, September 03\"\n      }\n    ],\n    \"sizeSqM\": 55,\n    \"roomType\": {\n      \"id\": \"12345678\",\n      \"name\": \"Superior queen room\",\n      \"code\": \"stg4\",\n      \"description\": \"This is a Superior queen room type\",\n      \"features\": [\n        \"phone\",\n        \"wifi\",\n        \"sea view\"\n      ],\n      \"sizeSqM\": 60,\n      \"numberOfToilets\": 2,\n      \"bedroomsNumber\": 3,\n      \"additionalFields\": [\n        {\n          \"fieldName\": \"TestName3\",\n          \"content\": \"test2\"\n        }\n      ]\n    }\n  },\n  \"apiToken\": {\n    \"type\": \"string\",\n    \"example\": \"************\"\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://sandbox.duve.com/api/v1/hooks/accommodation/connect")
  .header("Content-Type", "application/json")
  .body("{\n  \"accountId\": \"12345\",\n  \"event\": \"create\",\n  \"entity\": \"accommodation\",\n  \"resource\": {\n    \"id\": \"room_123\",\n    \"status\": \"ACTIVE\",\n    \"name\": \"Room 2323\",\n    \"street\": \"Champs-Élysées\",\n    \"streetNumber\": \"66\",\n    \"country\": \"FR\",\n    \"city\": \"Paris\",\n    \"wifiName\": \"DemoWifi\",\n    \"wifiCode\": \"dummypass1234\",\n    \"doorCode\": \"#Your rental door code\",\n    \"apartmentNumber\": \"4\",\n    \"floor\": \"4\",\n    \"state\": \"\",\n    \"area\": \"\",\n    \"postalCode\": \"2323 ZE\",\n    \"buildingEntrance\": \"B\",\n    \"buildingCode\": \"#Your entrance code\",\n    \"minimumCheckInTime\": \"14:00\",\n    \"maximumCheckOutTime\": \"11:00\",\n    \"bedroomsNumber\": 2,\n    \"numberOfToilets\": 1,\n    \"numberOfBathrooms\": 1,\n    \"maxNumberOfGuests\": 1,\n    \"propertyType\": 14,\n    \"coordinates\": {\n      \"lat\": 48.8709165,\n      \"lon\": 2.305427\n    },\n    \"checkInOptions\": [\n      \"5b2f7cffdfc0e8591b0e0016\"\n    ],\n    \"lateCheckOutOverride\": false,\n    \"bedTypes\": [\n      {\n        \"bedType\": 2,\n        \"amount\": 1\n      }\n    ],\n    \"additionalFields\": [\n      {\n        \"fieldName\": \"NEW FIELD\",\n        \"content\": \"Today is Sunday, September 03\"\n      }\n    ],\n    \"sizeSqM\": 55,\n    \"roomType\": {\n      \"id\": \"12345678\",\n      \"name\": \"Superior queen room\",\n      \"code\": \"stg4\",\n      \"description\": \"This is a Superior queen room type\",\n      \"features\": [\n        \"phone\",\n        \"wifi\",\n        \"sea view\"\n      ],\n      \"sizeSqM\": 60,\n      \"numberOfToilets\": 2,\n      \"bedroomsNumber\": 3,\n      \"additionalFields\": [\n        {\n          \"fieldName\": \"TestName3\",\n          \"content\": \"test2\"\n        }\n      ]\n    }\n  },\n  \"apiToken\": {\n    \"type\": \"string\",\n    \"example\": \"************\"\n  }\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://sandbox.duve.com/api/v1/hooks/accommodation/connect', [
  'body' => '{
  "accountId": "12345",
  "event": "create",
  "entity": "accommodation",
  "resource": {
    "id": "room_123",
    "status": "ACTIVE",
    "name": "Room 2323",
    "street": "Champs-Élysées",
    "streetNumber": "66",
    "country": "FR",
    "city": "Paris",
    "wifiName": "DemoWifi",
    "wifiCode": "dummypass1234",
    "doorCode": "#Your rental door code",
    "apartmentNumber": "4",
    "floor": "4",
    "state": "",
    "area": "",
    "postalCode": "2323 ZE",
    "buildingEntrance": "B",
    "buildingCode": "#Your entrance code",
    "minimumCheckInTime": "14:00",
    "maximumCheckOutTime": "11:00",
    "bedroomsNumber": 2,
    "numberOfToilets": 1,
    "numberOfBathrooms": 1,
    "maxNumberOfGuests": 1,
    "propertyType": 14,
    "coordinates": {
      "lat": 48.8709165,
      "lon": 2.305427
    },
    "checkInOptions": [
      "5b2f7cffdfc0e8591b0e0016"
    ],
    "lateCheckOutOverride": false,
    "bedTypes": [
      {
        "bedType": 2,
        "amount": 1
      }
    ],
    "additionalFields": [
      {
        "fieldName": "NEW FIELD",
        "content": "Today is Sunday, September 03"
      }
    ],
    "sizeSqM": 55,
    "roomType": {
      "id": "12345678",
      "name": "Superior queen room",
      "code": "stg4",
      "description": "This is a Superior queen room type",
      "features": [
        "phone",
        "wifi",
        "sea view"
      ],
      "sizeSqM": 60,
      "numberOfToilets": 2,
      "bedroomsNumber": 3,
      "additionalFields": [
        {
          "fieldName": "TestName3",
          "content": "test2"
        }
      ]
    }
  },
  "apiToken": {
    "type": "string",
    "example": "************"
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://sandbox.duve.com/api/v1/hooks/accommodation/connect");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"accountId\": \"12345\",\n  \"event\": \"create\",\n  \"entity\": \"accommodation\",\n  \"resource\": {\n    \"id\": \"room_123\",\n    \"status\": \"ACTIVE\",\n    \"name\": \"Room 2323\",\n    \"street\": \"Champs-Élysées\",\n    \"streetNumber\": \"66\",\n    \"country\": \"FR\",\n    \"city\": \"Paris\",\n    \"wifiName\": \"DemoWifi\",\n    \"wifiCode\": \"dummypass1234\",\n    \"doorCode\": \"#Your rental door code\",\n    \"apartmentNumber\": \"4\",\n    \"floor\": \"4\",\n    \"state\": \"\",\n    \"area\": \"\",\n    \"postalCode\": \"2323 ZE\",\n    \"buildingEntrance\": \"B\",\n    \"buildingCode\": \"#Your entrance code\",\n    \"minimumCheckInTime\": \"14:00\",\n    \"maximumCheckOutTime\": \"11:00\",\n    \"bedroomsNumber\": 2,\n    \"numberOfToilets\": 1,\n    \"numberOfBathrooms\": 1,\n    \"maxNumberOfGuests\": 1,\n    \"propertyType\": 14,\n    \"coordinates\": {\n      \"lat\": 48.8709165,\n      \"lon\": 2.305427\n    },\n    \"checkInOptions\": [\n      \"5b2f7cffdfc0e8591b0e0016\"\n    ],\n    \"lateCheckOutOverride\": false,\n    \"bedTypes\": [\n      {\n        \"bedType\": 2,\n        \"amount\": 1\n      }\n    ],\n    \"additionalFields\": [\n      {\n        \"fieldName\": \"NEW FIELD\",\n        \"content\": \"Today is Sunday, September 03\"\n      }\n    ],\n    \"sizeSqM\": 55,\n    \"roomType\": {\n      \"id\": \"12345678\",\n      \"name\": \"Superior queen room\",\n      \"code\": \"stg4\",\n      \"description\": \"This is a Superior queen room type\",\n      \"features\": [\n        \"phone\",\n        \"wifi\",\n        \"sea view\"\n      ],\n      \"sizeSqM\": 60,\n      \"numberOfToilets\": 2,\n      \"bedroomsNumber\": 3,\n      \"additionalFields\": [\n        {\n          \"fieldName\": \"TestName3\",\n          \"content\": \"test2\"\n        }\n      ]\n    }\n  },\n  \"apiToken\": {\n    \"type\": \"string\",\n    \"example\": \"************\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = [
  "accountId": "12345",
  "event": "create",
  "entity": "accommodation",
  "resource": [
    "id": "room_123",
    "status": "ACTIVE",
    "name": "Room 2323",
    "street": "Champs-Élysées",
    "streetNumber": "66",
    "country": "FR",
    "city": "Paris",
    "wifiName": "DemoWifi",
    "wifiCode": "dummypass1234",
    "doorCode": "#Your rental door code",
    "apartmentNumber": "4",
    "floor": "4",
    "state": "",
    "area": "",
    "postalCode": "2323 ZE",
    "buildingEntrance": "B",
    "buildingCode": "#Your entrance code",
    "minimumCheckInTime": "14:00",
    "maximumCheckOutTime": "11:00",
    "bedroomsNumber": 2,
    "numberOfToilets": 1,
    "numberOfBathrooms": 1,
    "maxNumberOfGuests": 1,
    "propertyType": 14,
    "coordinates": [
      "lat": 48.8709165,
      "lon": 2.305427
    ],
    "checkInOptions": ["5b2f7cffdfc0e8591b0e0016"],
    "lateCheckOutOverride": false,
    "bedTypes": [
      [
        "bedType": 2,
        "amount": 1
      ]
    ],
    "additionalFields": [
      [
        "fieldName": "NEW FIELD",
        "content": "Today is Sunday, September 03"
      ]
    ],
    "sizeSqM": 55,
    "roomType": [
      "id": "12345678",
      "name": "Superior queen room",
      "code": "stg4",
      "description": "This is a Superior queen room type",
      "features": ["phone", "wifi", "sea view"],
      "sizeSqM": 60,
      "numberOfToilets": 2,
      "bedroomsNumber": 3,
      "additionalFields": [
        [
          "fieldName": "TestName3",
          "content": "test2"
        ]
      ]
    ]
  ],
  "apiToken": [
    "type": "string",
    "example": "************"
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://sandbox.duve.com/api/v1/hooks/accommodation/connect")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```