Self-assessment tutorial: Contacts API¶
In this Self-assessment tutorial, you will use the Contacts API to:
- Create a contact
- Read back the contact
- Add another contact
- Update a contact/change contact details
- Delete a contact
- Contact connectivity support to validate your integration and enable live/production property access
Who is this for¶
You should follow this if you are a developer who has completed the integration of Contact API’s endpoints and is looking to start using this with live properties in production.
Before you start¶
You will need to use an existing test property either created by Property API or see the list of test properties on the provider portal.
Step 1 - Create a Contact¶
Create a contact for a test property within your system that will trigger a request to the create contacts endpoint listed below. Save the RUID to include in your report to connectivity support (see below).
Sample request:¶
PUT
https://supply-xml.booking.com/contacts-api/properties/{propertyID}/contacts
Header parameter¶
The following table describes the elements you can add in the header:
Header | Description | Type | Required/ Optional |
Notes |
---|---|---|---|---|
Content-Type: application/json |
Specifies the expected content type. | string | required | |
Accept-Version |
Specify the version number to get the API functionality specific to that version. | string | optional | Currently supports the value: 1.0 |
Request body¶
The following is a request body example:
{
"contacts": [
{
"contact_profiles": [
{
"type": "invoices"
}
],
"address": {
"city_name": "Amsterdam",
"country_code": "NL",
"postal_code": "1011 DL",
"address_line": "New Straat 123",
"language_code": "en-gb"
},
"contact_person": {
"gender": "female",
"name": "Waddington Bloem",
"job_title": "Administration Employee",
"language_code": "en-gb"
},
"phones": [
{
"phone_number": "+31002666661",
"phone_tech_type": "1",
"extension": "1"
}
],
"email": "test@booking.com"
},
{
"contact_profiles": [
{
"type": "general"
}
],
"address": {
"city_name": "Amsterdam",
"country_code": "NL",
"postal_code": "1011 DL",
"address_line": "New Straat 456",
"language_code": "en-gb"
},
"contact_person": {
"gender": "male",
"name": "Bensen Clay",
"job_title": "Administration Employee",
"language_code": "en-gb"
},
"phones": [
{
"phone_number": "+31002666661",
"phone_tech_type": "1",
"extension": "1"
}
],
"email": "tests@booking.com"
}
]
}
Response body¶
The following is a response body example:
{
"warnings": [],
"meta": {
"ruid": "5rw83de5-54tt-45ad-a75c-af451309f764"
}
}
Step 2 - Read a contact¶
Using your system, trigger a read request of the contact you have just created. Save the RUID to include in your report to connectivity support.
Sample Request:¶
GET
https://supply-xml.booking.com/contacts-api/properties/{propertyID}/contacts
Header parameter¶
The following table describes the elements you can add in the header:
Header | Description | Type | Required/ Optional |
Notes |
---|---|---|---|---|
Accept-Version |
Specify the version number to get the API functionality specific to that version. | string | optional | Currently supports the value: 1.0 |
Response body¶
The following is a response body example:
{
"data": {
"contacts": [
{
"contact_profiles": [
{
"type": "invoices"
}
],
"address": {
"city_name": "Amsterdam",
"country_code": "NL",
"postal_code": "1011 DL",
"address_line": "New Straat 123",
"language_code": "en-gb"
},
"contact_person": {
"gender": "female",
"name": "Waddington Bloem",
"job_title": "Administration Employee",
"language_code": "en-gb"
},
"phones": [
{
"phone_number": "+31002666661",
"phone_tech_type": "1",
"extension": "1"
}
],
"email": "test@booking.com"
},
{
"contact_profiles": [
{
"type": "general"
}
],
"address": {
"city_name": "Amsterdam",
"country_code": "NL",
"postal_code": "1011 DL",
"address_line": "New Straat 456",
"language_code": "en-gb"
},
"contact_person": {
"gender": "male",
"name": "Bensen Clay",
"job_title": "Administration Employee",
"language_code": "en-gb"
},
"phones": [
{
"phone_number": "+31002666661",
"phone_tech_type": "1",
"extension": "1"
}
],
"email": "tests@booking.com"
}
]
},
"meta": {
"ruid": "250r05g4-5fa6-3689-a0f5-xx3416854532"
}
}
Step 3 - Add another contact¶
Add another contact using the same PUT
endpoint as Step 1 but change the content in the body to specify details of a different contact. Save the RUID to include in your report to connectivity support (see below).
Sample Request:¶
PUT
https://supply-xml.booking.com/contacts-api/properties/{propertyID}/contacts
Header parameter¶
The following table describes the elements you can add in the header:
Header | Description | Type | Required/ Optional |
Notes |
---|---|---|---|---|
Content-Type: application/json |
Specifies the expected content type. | string | required | |
Accept-Version |
Specify the version number to get the API functionality specific to that version. | string | optional | Currently supports the value: 1.0 |
Request body¶
The following is a request body example:
{
"contacts": [
{
"contact_profiles": [
{
"type": "invoices"
}
],
"address": {
"city_name": "Amstelveen",
"country_code": "NL",
"postal_code": "1183 DL",
"address_line": "Korvet 123",
"language_code": "en-gb"
},
"contact_person": {
"gender": "female",
"name": "Lieke Bol",
"job_title": "Administration Employee",
"language_code": "en-gb"
},
"phones": [
{
"phone_number": "+31002666661",
"phone_tech_type": "1",
"extension": "1"
}
],
"email": "test-person1@booking.com"
},
{
"contact_profiles": [
{
"type": "general"
}
],
"address": {
"city_name": "Rotterdam",
"country_code": "NL",
"postal_code": "2636 KA",
"address_line": "Albert Verweylaan 456",
"language_code": "en-gb"
},
"contact_person": {
"gender": "male",
"name": "Jan Van Vincent",
"job_title": "Administration Employee",
"language_code": "en-gb"
},
"phones": [
{
"phone_number": "+31021677111",
"phone_tech_type": "1",
"extension": "1"
}
],
"email": "tests-person2@booking.com"
}
]
}
Response body¶
The following is a response body example:
{
"warnings": [],
"meta": {
"ruid": "frw83de5-54tt-45ad-a75c-ab623309f711"
}
}
Step 4 - Update or overwrite the details of a contact¶
If you have already created a contact successfuly in Step 1, update the details of the contact using the following sample:
Sample Request:¶
PUT
https://supply-xml.booking.com/contacts-api/properties/{propertyID}/contacts
Header parameter¶
The following table describes the elements you can add in the header:
Header | Description | Type | Required/ Optional |
Notes |
---|---|---|---|---|
Accept-Version |
Specify the version number to get the API functionality specific to that version. | string | optional | Currently supports the value: 1.0 |
Request body:¶
The following is a request body example:
{
"contacts": [
{
"contact_profiles": [
{
"type": "invoices"
}
],
"address": {
"city_name": "Amsterdam",
"country_code": "NL",
"postal_code": "1011 DL",
"address_line": "New Straat 123",
"language_code": "en-gb"
},
"contact_person": {
"gender": "female",
"name": "Lucy Gilean",
"job_title": "Administration Employee",
"language_code": "en-gb"
},
"phones": [
{
"phone_number": "+31002666661",
"phone_tech_type": "1",
"extension": "1"
}
],
"email": "tests@booking.com"
},
{
"contact_profiles": [
{
"type": "general"
}
],
"address": {
"city_name": "Amsterdam",
"country_code": "NL",
"postal_code": "1011 DL",
"address_line": "New Straat 456",
"language_code": "en-gb"
},
"contact_person": {
"gender": "male",
"name": "Kevin Mcmartin",
"job_title": "General Manager",
"language_code": "en-gb"
},
"phones": [
{
"phone_number": "+31002666661",
"phone_tech_type": "1",
"extension": "1"
}
],
"email": "tests@booking.com"
}
]
}
Response body¶
The following is a response body example:
{
"warnings": [],
"meta": {
"ruid": "cbw22de3-54tt-45ad-a75c-abc23309f822"
}
}
Step 5 - Delete a contact¶
You can delete a contact by using the PUT
method again but omitting the details of the contact that needs to be deleted in the request body. Save the RUID to include in your report to connectivity support (see below).
The sample below deletes all existing contacts except the one in the body.
Sample Request:¶
PUT
https://supply-xml.booking.com/contacts-api/properties/{propertyID}/contacts
Header parameter¶
The following table describes the elements you can add in the header:
Header | Description | Type | Required/ Optional |
Notes |
---|---|---|---|---|
Accept-Version |
Specify the version number to get the API functionality specific to that version. | string | optional | Currently supports the value: 1.0 |
Request body:¶
The following is a request body example:
{
"contacts": [
{
"contact_profiles": [
{
"type": "general"
}
],
"address": {
"city_name": "Rotterdam",
"country_code": "NL",
"postal_code": "2636 KA",
"address_line": "Albert Verweylaan 456",
"language_code": "en-gb"
},
"contact_person": {
"gender": "male",
"name": "Jan Van Vincent",
"job_title": "Administration Employee",
"language_code": "en-gb"
},
"phones": [
{
"phone_number": "+31021677111",
"phone_tech_type": "1",
"extension": "1"
}
],
"email": "tests-person2@booking.com"
}
]
}
Response body¶
The following is a response body example:
{
"warnings": [],
"meta": {
"ruid": "cbw22de3-54tt-45ad-a75c-abc23309f822"
}
}
Step 6 - Send the RUIDs to Booking.com¶
Send via your organisation’s domain email the RUID values obtained in the response bodies of the PUT and GET requests to connectivity@booking.com for validation and certification.
Email template¶
I would like to be certified for production use of Contacts API. Please find the RUIDs for all of the steps in the tutorial.
I look forward to hearing from you.