Noona provides a powerful REST(y) API that focuses on simplicity and clarity.
Base Path
https://api.noona.is
The Marketplace API allows various 'customer' interactions with the companies in the Noona ecosystem.
Example user: An individual seeking a haircut.
Verifies a phone number by sending a unique code to it.
The code is then used in conjuction with the phone number to create a new user or verify an existing one.
This endpoint can also be used to verify phone numbers of users that have authenticated with external identity providers.
phone_number | string |
phone_country_code | string |
{- "phone_number": "8124132",
- "phone_country_code": "354"
}
{- "next_retry_at": "2022-01-01T00:00:00Z"
}
Creates a new user with a verified phone number.
select | Array of strings |
expand | Array of strings |
phone_number | string |
phone_country_code | string |
verification_code | string |
{- "phone_number": "8124132",
- "phone_country_code": "354",
- "verification_code": "123456"
}
{- "id": "7awdXwZoedakjad37a",
- "name": "string",
- "phone_number": "string",
- "phone_country_code": "44 (for UK)",
- "phone_number_verified": true,
- "favorite_companies": [
- "string"
], - "push_token": {
- "platform": 0,
- "token": "string"
}, - "kennitala": "string",
- "email": "string",
- "email_verified": true,
- "license_plate": "string",
- "token": "string",
- "locale": {
- "ui_language": "string"
}, - "device_info": {
- "battery_level": 0.72,
- "brand": "Apple",
- "build_number": 1626691095,
- "carrier": "Vodafone",
- "device_id": "iPhone13,1",
- "device_name": "John's iPhone",
- "manufacturer": "Apple",
- "model": "iPhone 12 mini",
- "system_version": "15.0.1",
- "is_emulator": true,
- "readable_version": "1.4.1.1626691095",
- "android_api_level": 0,
- "code_push_app_version": "1.4.1_v74"
}, - "created_at": 1631558908,
- "updated_at": 1631558908
}
Gets current marketplace user, inferred from token.
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "name": "string",
- "phone_number": "string",
- "phone_country_code": "44 (for UK)",
- "phone_number_verified": true,
- "favorite_companies": [
- "string"
], - "push_token": {
- "platform": 0,
- "token": "string"
}, - "kennitala": "string",
- "email": "string",
- "email_verified": true,
- "license_plate": "string",
- "token": "string",
- "locale": {
- "ui_language": "string"
}, - "device_info": {
- "battery_level": 0.72,
- "brand": "Apple",
- "build_number": 1626691095,
- "carrier": "Vodafone",
- "device_id": "iPhone13,1",
- "device_name": "John's iPhone",
- "manufacturer": "Apple",
- "model": "iPhone 12 mini",
- "system_version": "15.0.1",
- "is_emulator": true,
- "readable_version": "1.4.1.1626691095",
- "android_api_level": 0,
- "code_push_app_version": "1.4.1_v74"
}, - "created_at": 1631558908,
- "updated_at": 1631558908
}
Updates current marketplace user, inferred from token.
select | Array of strings |
expand | Array of strings |
name | string |
favorite_companies | Array of strings |
object (PushToken) | |
kennitala | string Icelandic SSN |
string | |
license_plate | string |
object (LocaleForUser) | |
object (DeviceInfo) See https://github.com/react-native-device-info/react-native-device-info for more info. |
{- "name": "string",
- "favorite_companies": [
- "string"
], - "push_token": {
- "platform": 0,
- "token": "string"
}, - "kennitala": "string",
- "email": "string",
- "license_plate": "string",
- "locale": {
- "ui_language": "string"
}, - "device_info": {
- "battery_level": 0.72,
- "brand": "Apple",
- "build_number": 1626691095,
- "carrier": "Vodafone",
- "device_id": "iPhone13,1",
- "device_name": "John's iPhone",
- "manufacturer": "Apple",
- "model": "iPhone 12 mini",
- "system_version": "15.0.1",
- "is_emulator": true,
- "readable_version": "1.4.1.1626691095",
- "android_api_level": 0,
- "code_push_app_version": "1.4.1_v74"
}
}
{- "id": "7awdXwZoedakjad37a",
- "name": "string",
- "phone_number": "string",
- "phone_country_code": "44 (for UK)",
- "phone_number_verified": true,
- "favorite_companies": [
- "string"
], - "push_token": {
- "platform": 0,
- "token": "string"
}, - "kennitala": "string",
- "email": "string",
- "email_verified": true,
- "license_plate": "string",
- "token": "string",
- "locale": {
- "ui_language": "string"
}, - "device_info": {
- "battery_level": 0.72,
- "brand": "Apple",
- "build_number": 1626691095,
- "carrier": "Vodafone",
- "device_id": "iPhone13,1",
- "device_name": "John's iPhone",
- "manufacturer": "Apple",
- "model": "iPhone 12 mini",
- "system_version": "15.0.1",
- "is_emulator": true,
- "readable_version": "1.4.1.1626691095",
- "android_api_level": 0,
- "code_push_app_version": "1.4.1_v74"
}, - "created_at": 1631558908,
- "updated_at": 1631558908
}
Logs in a marketplace user with Apple or Google Sign-In ID token
select | Array of strings |
expand | Array of strings |
provider required | string <enum> (SocialLoginProvider) Enum: "google" "apple" |
id_token required | string |
name | string |
{- "provider": "google",
- "id_token": "eyJhbGciOi",
- "name": "John Doe"
}
{- "id": "7awdXwZoedakjad37a",
- "name": "string",
- "phone_number": "string",
- "phone_country_code": "44 (for UK)",
- "phone_number_verified": true,
- "favorite_companies": [
- "string"
], - "push_token": {
- "platform": 0,
- "token": "string"
}, - "kennitala": "string",
- "email": "string",
- "email_verified": true,
- "license_plate": "string",
- "token": "string",
- "locale": {
- "ui_language": "string"
}, - "device_info": {
- "battery_level": 0.72,
- "brand": "Apple",
- "build_number": 1626691095,
- "carrier": "Vodafone",
- "device_id": "iPhone13,1",
- "device_name": "John's iPhone",
- "manufacturer": "Apple",
- "model": "iPhone 12 mini",
- "system_version": "15.0.1",
- "is_emulator": true,
- "readable_version": "1.4.1.1626691095",
- "android_api_level": 0,
- "code_push_app_version": "1.4.1_v74"
}, - "created_at": 1631558908,
- "updated_at": 1631558908
}
Verify email with a token from the verification email.
select | Array of strings |
expand | Array of strings |
token required | string |
{- "token": "AwxswpSz06iTefog91MMAG6X9fS7ZOsPwO7NMa5"
}
{- "type": "generic_error",
- "message": "Time slot is not available."
}
Lists companies that have some association with the user.
Companies the user has favorites or has booked events at.
select | Array of strings |
expand | Array of strings |
object (Sort) | |
object (Pagination) | |
object (UserCompaniesFilter) |
[- {
- "id": "7dj29KiAE1wdjw731",
- "vertical": "appointment",
- "enterprise": "string",
- "profile": {
- "store_name": "John's Hair Salon",
- "description": "string",
- "favorites": 0,
- "company_types": [
- "string"
], - "cuisines": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "dietaries": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "ambiences": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "settings": {
- "license_plate": true
}, - "image": {
- "type": "thumbnail",
}, - "cover_images": [
- {
- "type": "thumbnail",
}
], - "phone_country_code": 354,
- "phone_number": "string",
- "prefer_12_hours": true,
- "price_category": 3,
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "exceed_max_guests_message": "string"
}, - "connections": {
- "multiple_services": true,
- "url_name": "string",
- "contact_email": "string",
- "required_fields": {
- "kennitala": true,
- "email": true
}, - "opening_hours": [
- {
- "opens_at": "08:00",
- "closes_at": "18:00",
- "is_closed": true
}
], - "max_future": 0,
- "min_cancel_notice": 0,
- "location": {
- "google_place_id": "string",
- "formatted_address": "string",
- "lat_lng": {
- "lat": 0,
- "lng": 0
}, - "country": {
- "short_name": "IS",
- "long_name": "Iceland"
}, - "time_zone": "Atlantic/Reykjavik"
}, - "booking_redirect_url": "string",
- "web_auth_opt_out": true,
- "booking_success_message": "string",
- "timatorg": true,
- "enable_vouchers": true,
- "enable_amount_vouchers": true,
- "min_move_notice": 0,
- "waitlist_enabled": true,
- "show_booking_ends_at": true
}, - "no_show_enabled": true,
- "most_recently_visited_company": true,
- "locale": {
- "ui_language": "is",
- "messaging_language": "is",
- "default_currency": {
- "code": "EUR",
- "name": "Euro",
- "symbol": "€"
}
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "payment_provider": "teya"
}
]
Lists categories that the user has booked in.
select | Array of strings |
expand | Array of strings |
object (UserLocation) | |
object (UserCategoriesFilter) |
{- "categories": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
]
}
Lists customers that user has ties with at company.
company_id required | string Company ID |
select | Array of strings |
expand | Array of strings |
object (Sort) | |
object (Pagination) |
[- {
- "id": "7awdXwZoedakjad37a",
- "name": "John Doe",
- "ssn": 101011234,
- "email": "example@example.com",
- "license_plate": "ABC123",
- "default": true
}
]
Lists the cards of a marketplace user.
select | Array of strings |
expand | Array of strings |
object (Sort) | |
object (Pagination) |
[- {
- "method": "Card",
- "id": "7awdXwZoedakjad37a",
- "cardholder_name": "Dee Hock",
- "masked_pan": "1564854695481453",
- "expiry_month": "02",
- "expiry_year": "02",
- "temporary": true,
- "type": "visa",
- "provider": "teya",
- "save_card": true,
- "return_url": "string",
- "channel": "iOS",
- "three_ds2_sdk_version": "string",
- "PARes": "string",
- "CRes": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
]
Creates a card for a marketplace user.
select | Array of strings |
expand | Array of strings |
pan required | string |
expiry_month required | string |
expiry_year required | string |
cvc required | string |
method required | string <enum> Value: "Card" |
return_url required | string If provided, the user is redirected to this URL after the payment is processed. This is required for 3D Secure payments. |
channel required | string (PaymentChannel) Enum: "iOS" "Android" "Web" |
cardholder_name | string |
temporary | boolean Whether the card is temporary or not. A temporary card is only valid for a short amount of time and can only be used once. |
save_card | boolean Whether the card should be saved for future use. If the card is saved, it can be used for future payments without having to enter the card details again. |
object (PaymentBrowserInformation) | |
three_ds2_sdk_version | string |
PARes | string The |
CRes | string The |
{- "method": "Card",
- "cardholder_name": "Dee Hock",
- "pan": "1564854695481453",
- "expiry_month": "02",
- "expiry_year": "02",
- "cvc": "070",
- "temporary": true,
- "save_card": true,
- "return_url": "string",
- "browser_information": {
- "language": "en-US",
- "color_depth": 0,
- "javascript_enabled": true,
- "screen_width": 0,
- "screen_height": 0,
- "time_zone_offset": 0
}, - "channel": "iOS",
- "three_ds2_sdk_version": "string",
- "PARes": "string",
- "CRes": "string"
}
{- "method": "Card",
- "id": "7awdXwZoedakjad37a",
- "cardholder_name": "Dee Hock",
- "masked_pan": "1564854695481453",
- "expiry_month": "02",
- "expiry_year": "02",
- "temporary": true,
- "type": "visa",
- "provider": "teya",
- "save_card": true,
- "return_url": "string",
- "channel": "iOS",
- "three_ds2_sdk_version": "string",
- "PARes": "string",
- "CRes": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
Gets card with specified ID.
card_id required | string Card ID |
select | Array of strings |
expand | Array of strings |
{- "method": "Card",
- "id": "7awdXwZoedakjad37a",
- "cardholder_name": "Dee Hock",
- "masked_pan": "1564854695481453",
- "expiry_month": "02",
- "expiry_year": "02",
- "temporary": true,
- "type": "visa",
- "provider": "teya",
- "save_card": true,
- "return_url": "string",
- "channel": "iOS",
- "three_ds2_sdk_version": "string",
- "PARes": "string",
- "CRes": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
Deletes card with specified ID.
card_id required | string Card ID |
select | Array of strings |
expand | Array of strings |
{- "type": "generic_error",
- "message": "Time slot is not available."
}
Lists the payments of a marketplace user.
select | Array of strings |
expand | Array of strings |
object (Sort) | |
object (Pagination) | |
object (PaymentFilter) |
[- {
- "id": "7awdXwZoedakjad37a",
- "company": "string",
- "user": "string",
- "currency": "ISK",
- "amount": 10000,
- "status": "refunded",
- "provider": "teya",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
Gets payment with ID.
payment_id required | string Payment ID |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "company": "string",
- "user": "string",
- "currency": "ISK",
- "amount": 10000,
- "status": "refunded",
- "provider": "teya",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Deletes payment with ID.
It is only possible to delete pending payments that have not yet been processed.
payment_id required | string Payment ID |
select | Array of strings |
expand | Array of strings |
{- "type": "generic_error",
- "message": "Time slot is not available."
}
Pays for a pending payment.
It is only possible to pay for pending payments that have not yet been processed.
payment_id required | string Payment ID |
select | Array of strings |
expand | Array of strings |
SavedCard (object) or Card (object) or GooglePay (object) or ApplePay (object) or ActionResult (object) (PaymentInformation) |
{- "payment": {
- "method": "SavedCard",
- "card_id": "9d8aj2oi2audawo",
- "cvc": "070",
- "return_url": "string",
- "browser_information": {
- "language": "en-US",
- "color_depth": 0,
- "javascript_enabled": true,
- "screen_width": 0,
- "screen_height": 0,
- "time_zone_offset": 0
}, - "channel": "iOS",
- "three_ds2_sdk_version": "string",
- "PARes": "string",
- "CRes": "string"
}
}
{- "id": "7awdXwZoedakjad37a",
- "company": "string",
- "user": "string",
- "currency": "ISK",
- "amount": 10000,
- "status": "refunded",
- "provider": "teya",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
List available payment methods for a company.
company_id required | string Company ID |
select | Array of strings |
expand | Array of strings |
channel | string (PaymentChannel) Enum: "iOS" "Android" "Web" Payment channel |
object (Sort) | |
object (Pagination) |
[- {
- "type": "Card",
- "provider": "teya"
}
]
Requests an Apple Pay Payment Session.
The session is required for Apple Pay on web.
company_id required | string Company ID |
select | Array of strings |
expand | Array of strings |
{- "data": "dGhlIGFwcGxlIHBheSBzZXNzaW9uIHBheWxvYWQ="
}
Receives a 3ds callback from Teya.
select | Array of strings |
expand | Array of strings |
pares | string The |
cres | string The |
threeDSSessionData | string The |
{- "pares": "string",
- "cres": "string",
- "threeDSSessionData": "string"
}
{- "type": "generic_error",
- "message": "Time slot is not available."
}
Vouchers are purchased through the marketplace and can be used to pay for a service at an enterprise.
Lists the vouchers of a marketplace user.
select | Array of strings |
expand | Array of strings |
object (Sort) | |
object (Pagination) | |
object (VoucherFilter) |
[- {
- "id": "7awdXwZoedakjad37a",
- "currency": "ISK",
- "amount": 3990,
- "voucher_template": "string",
- "data": {
- "type": "service",
- "sessions_used": 0,
- "sessions_total": 0,
- "event_type_name": "Quicky Haircut",
- "event_type_id": "d0a9w8da09w8dindwa",
- "number_of_guests": 2,
- "voucher_template": "7awdXwZoedakjad37a",
- "voucher_template_amount": 0,
- "voucher_template_value": 0
}, - "color": "#0f0f0f",
- "message": "You deserve to relax a bit!",
- "is_gift": true,
- "code": "A328DB",
- "phone_country_code": "354",
- "phone_number": "7134124",
- "send_to_user": {
- "phone_number": "8124132",
- "phone_country_code": "354"
}, - "email": "test@testy.is",
- "user": "string",
- "company": "7awdXwZoedakjad37a",
- "expiration": "2022-08-24T14:15:22Z",
- "payment_information": {
- "payment_method": "ApplePay",
- "pan": "1842********8123"
}, - "fully_used": true,
- "original_owner": true,
- "bought_by": "7awdXwZoedakjad37a",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
Creates a voucher for a marketplace user.
There are two voucher types that are supported:
company and payment are always required fields. But depending on the voucher type, additional fields are required.
Amount vouchers represent a monetary value that can be used to pay for services at a company.
The following fields are required when creating an amount voucher:
Service vouchers represent a service that can be redeemed at a company.
The following fields are required when creating a service voucher:
select | Array of strings |
expand | Array of strings |
required | SavedCard (object) or Card (object) or GooglePay (object) or ApplePay (object) or ActionResult (object) (PaymentInformation) |
required | Company ID (string) or Company (object) |
currency | string |
amount | number <double> |
ID (string) or VoucherTemplate (object) (ExpandableVoucherTemplate) | |
any (VoucherData) | |
color | string |
message | string |
is_gift | boolean |
phone_country_code | string |
phone_number | string If a phone number is provided, it receives news of the newly created voucher. This keeps the original owner, while send_to_user transfers it to a different user. |
object (Phone) | |
string If an email is provided, it receives news of the newly created voucher. | |
ID (string) or User (object) (ExpandableUser) | |
bought_by | string ID of the user who bought the voucher. |
{- "currency": "ISK",
- "amount": 3990,
- "voucher_template": "string",
- "data": {
- "type": "service",
- "number_of_guests": 2
}, - "color": "#0f0f0f",
- "message": "You deserve to relax a bit!",
- "is_gift": true,
- "phone_country_code": "354",
- "phone_number": "7134124",
- "send_to_user": {
- "phone_number": "8124132",
- "phone_country_code": "354"
}, - "email": "test@testy.is",
- "user": "string",
- "company": "7awdXwZoedakjad37a",
- "payment": {
- "method": "SavedCard",
- "card_id": "9d8aj2oi2audawo",
- "cvc": "070",
- "return_url": "string",
- "browser_information": {
- "language": "en-US",
- "color_depth": 0,
- "javascript_enabled": true,
- "screen_width": 0,
- "screen_height": 0,
- "time_zone_offset": 0
}, - "channel": "iOS",
- "three_ds2_sdk_version": "string",
- "PARes": "string",
- "CRes": "string"
}, - "bought_by": "7awdXwZoedakjad37a"
}
{- "id": "7awdXwZoedakjad37a",
- "currency": "ISK",
- "amount": 3990,
- "voucher_template": "string",
- "data": {
- "type": "service",
- "sessions_used": 0,
- "sessions_total": 0,
- "event_type_name": "Quicky Haircut",
- "event_type_id": "d0a9w8da09w8dindwa",
- "number_of_guests": 2,
- "voucher_template": "7awdXwZoedakjad37a",
- "voucher_template_amount": 0,
- "voucher_template_value": 0
}, - "color": "#0f0f0f",
- "message": "You deserve to relax a bit!",
- "is_gift": true,
- "code": "A328DB",
- "phone_country_code": "354",
- "phone_number": "7134124",
- "send_to_user": {
- "phone_number": "8124132",
- "phone_country_code": "354"
}, - "email": "test@testy.is",
- "user": "string",
- "company": "7awdXwZoedakjad37a",
- "expiration": "2022-08-24T14:15:22Z",
- "payment_information": {
- "payment_method": "ApplePay",
- "pan": "1842********8123"
}, - "fully_used": true,
- "original_owner": true,
- "bought_by": "7awdXwZoedakjad37a",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Gets voucher with specified ID.
voucher_id required | string Voucher ID |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "currency": "ISK",
- "amount": 3990,
- "voucher_template": "string",
- "data": {
- "type": "service",
- "sessions_used": 0,
- "sessions_total": 0,
- "event_type_name": "Quicky Haircut",
- "event_type_id": "d0a9w8da09w8dindwa",
- "number_of_guests": 2,
- "voucher_template": "7awdXwZoedakjad37a",
- "voucher_template_amount": 0,
- "voucher_template_value": 0
}, - "color": "#0f0f0f",
- "message": "You deserve to relax a bit!",
- "is_gift": true,
- "code": "A328DB",
- "phone_country_code": "354",
- "phone_number": "7134124",
- "send_to_user": {
- "phone_number": "8124132",
- "phone_country_code": "354"
}, - "email": "test@testy.is",
- "user": "string",
- "company": "7awdXwZoedakjad37a",
- "expiration": "2022-08-24T14:15:22Z",
- "payment_information": {
- "payment_method": "ApplePay",
- "pan": "1842********8123"
}, - "fully_used": true,
- "original_owner": true,
- "bought_by": "7awdXwZoedakjad37a",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Sends a voucher notification to the specified recipients.
If send_to_user is provided, voucher ownership will be transferred to the user.
voucher_id required | string Voucher ID |
phone_country_code | string |
phone_number | string If a phone number is provided, it receives news of the newly created voucher. |
string If an email is provided, it receives news of the newly created voucher. | |
object (Phone) |
{- "phone_country_code": "354",
- "phone_number": "7134124",
- "email": "test@testy.is",
- "send_to_user": {
- "phone_number": "8124132",
- "phone_country_code": "354"
}
}
{- "id": "7awdXwZoedakjad37a",
- "currency": "ISK",
- "amount": 3990,
- "voucher_template": "string",
- "data": {
- "type": "service",
- "sessions_used": 0,
- "sessions_total": 0,
- "event_type_name": "Quicky Haircut",
- "event_type_id": "d0a9w8da09w8dindwa",
- "number_of_guests": 2,
- "voucher_template": "7awdXwZoedakjad37a",
- "voucher_template_amount": 0,
- "voucher_template_value": 0
}, - "color": "#0f0f0f",
- "message": "You deserve to relax a bit!",
- "is_gift": true,
- "code": "A328DB",
- "phone_country_code": "354",
- "phone_number": "7134124",
- "send_to_user": {
- "phone_number": "8124132",
- "phone_country_code": "354"
}, - "email": "test@testy.is",
- "user": "string",
- "company": "7awdXwZoedakjad37a",
- "expiration": "2022-08-24T14:15:22Z",
- "payment_information": {
- "payment_method": "ApplePay",
- "pan": "1842********8123"
}, - "fully_used": true,
- "original_owner": true,
- "bought_by": "7awdXwZoedakjad37a",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Suggestions are user specific suggestions - based on trivial things like booking history etc.
Returns a suggested company type based on the user's location, booking history and behavior.
select | Array of strings |
expand | Array of strings |
object (UserLocation) |
{- "id": "7awdXwZoedakjad37a",
- "name": "Hair salons",
- "promotion": "Did you know you can book a haircut on Noona?",
- "locale_key": "hairstyling",
}
Returns a list of suggested vouchers based on the user's location, booking history and behavior.
select | Array of strings |
expand | Array of strings |
object (UserLocation) | |
object (Pagination) |
[- {
- "id": "7dj29KiAE1wdjw731",
- "vertical": "appointment",
- "enterprise": "string",
- "profile": {
- "store_name": "John's Hair Salon",
- "description": "string",
- "favorites": 0,
- "company_types": [
- "string"
], - "cuisines": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "dietaries": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "ambiences": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "settings": {
- "license_plate": true
}, - "image": {
- "type": "thumbnail",
}, - "cover_images": [
- {
- "type": "thumbnail",
}
], - "phone_country_code": 354,
- "phone_number": "string",
- "prefer_12_hours": true,
- "price_category": 3,
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "exceed_max_guests_message": "string"
}, - "connections": {
- "multiple_services": true,
- "url_name": "string",
- "contact_email": "string",
- "required_fields": {
- "kennitala": true,
- "email": true
}, - "opening_hours": [
- {
- "opens_at": "08:00",
- "closes_at": "18:00",
- "is_closed": true
}
], - "max_future": 0,
- "min_cancel_notice": 0,
- "location": {
- "google_place_id": "string",
- "formatted_address": "string",
- "lat_lng": {
- "lat": 0,
- "lng": 0
}, - "country": {
- "short_name": "IS",
- "long_name": "Iceland"
}, - "time_zone": "Atlantic/Reykjavik"
}, - "booking_redirect_url": "string",
- "web_auth_opt_out": true,
- "booking_success_message": "string",
- "timatorg": true,
- "enable_vouchers": true,
- "enable_amount_vouchers": true,
- "min_move_notice": 0,
- "waitlist_enabled": true,
- "show_booking_ends_at": true
}, - "no_show_enabled": true,
- "most_recently_visited_company": true,
- "locale": {
- "ui_language": "is",
- "messaging_language": "is",
- "default_currency": {
- "code": "EUR",
- "name": "Euro",
- "symbol": "€"
}
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "payment_provider": "teya"
}
]
Returns a list of suggested companies based on the user's location, booking history and behavior.
select | Array of strings |
expand | Array of strings |
object (UserLocation) | |
object (Pagination) |
[- {
- "id": "7dj29KiAE1wdjw731",
- "vertical": "appointment",
- "enterprise": "string",
- "profile": {
- "store_name": "John's Hair Salon",
- "description": "string",
- "favorites": 0,
- "company_types": [
- "string"
], - "cuisines": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "dietaries": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "ambiences": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "settings": {
- "license_plate": true
}, - "image": {
- "type": "thumbnail",
}, - "cover_images": [
- {
- "type": "thumbnail",
}
], - "phone_country_code": 354,
- "phone_number": "string",
- "prefer_12_hours": true,
- "price_category": 3,
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "exceed_max_guests_message": "string"
}, - "connections": {
- "multiple_services": true,
- "url_name": "string",
- "contact_email": "string",
- "required_fields": {
- "kennitala": true,
- "email": true
}, - "opening_hours": [
- {
- "opens_at": "08:00",
- "closes_at": "18:00",
- "is_closed": true
}
], - "max_future": 0,
- "min_cancel_notice": 0,
- "location": {
- "google_place_id": "string",
- "formatted_address": "string",
- "lat_lng": {
- "lat": 0,
- "lng": 0
}, - "country": {
- "short_name": "IS",
- "long_name": "Iceland"
}, - "time_zone": "Atlantic/Reykjavik"
}, - "booking_redirect_url": "string",
- "web_auth_opt_out": true,
- "booking_success_message": "string",
- "timatorg": true,
- "enable_vouchers": true,
- "enable_amount_vouchers": true,
- "min_move_notice": 0,
- "waitlist_enabled": true,
- "show_booking_ends_at": true
}, - "no_show_enabled": true,
- "most_recently_visited_company": true,
- "locale": {
- "ui_language": "is",
- "messaging_language": "is",
- "default_currency": {
- "code": "EUR",
- "name": "Euro",
- "symbol": "€"
}
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "payment_provider": "teya"
}
]
Recommendations are user specific recommendations - based on machine learning algorithms and models.
Returns a list of trending companies based on the user's location, booking history and behavior.
select | Array of strings |
expand | Array of strings |
object (UserLocation) | |
full_list | boolean Default: false Return full list of trending companies. Including competitors to companies user has booked at. |
object (TrendingCompaniesFilter) |
[- {
- "company": "string",
- "fav_delta_7_days": 10
}
]
Returns a list of recommended categories based on the user's location, booking history and behavior.
select | Array of strings |
expand | Array of strings |
object (Pagination) | |
object (UserLocation) | |
object (RecommendedCategoriesFilter) |
{- "categories": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
]
}
Returns a list of recommended companies tailored to the user.
select | Array of strings |
expand | Array of strings |
object (UserLocation) | |
object (Pagination) | |
object (RecommendedCompaniesFilter) |
[- {
- "id": "7dj29KiAE1wdjw731",
- "vertical": "appointment",
- "enterprise": "string",
- "profile": {
- "store_name": "John's Hair Salon",
- "description": "string",
- "favorites": 0,
- "company_types": [
- "string"
], - "cuisines": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "dietaries": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "ambiences": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "settings": {
- "license_plate": true
}, - "image": {
- "type": "thumbnail",
}, - "cover_images": [
- {
- "type": "thumbnail",
}
], - "phone_country_code": 354,
- "phone_number": "string",
- "prefer_12_hours": true,
- "price_category": 3,
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "exceed_max_guests_message": "string"
}, - "connections": {
- "multiple_services": true,
- "url_name": "string",
- "contact_email": "string",
- "required_fields": {
- "kennitala": true,
- "email": true
}, - "opening_hours": [
- {
- "opens_at": "08:00",
- "closes_at": "18:00",
- "is_closed": true
}
], - "max_future": 0,
- "min_cancel_notice": 0,
- "location": {
- "google_place_id": "string",
- "formatted_address": "string",
- "lat_lng": {
- "lat": 0,
- "lng": 0
}, - "country": {
- "short_name": "IS",
- "long_name": "Iceland"
}, - "time_zone": "Atlantic/Reykjavik"
}, - "booking_redirect_url": "string",
- "web_auth_opt_out": true,
- "booking_success_message": "string",
- "timatorg": true,
- "enable_vouchers": true,
- "enable_amount_vouchers": true,
- "min_move_notice": 0,
- "waitlist_enabled": true,
- "show_booking_ends_at": true
}, - "no_show_enabled": true,
- "most_recently_visited_company": true,
- "locale": {
- "ui_language": "is",
- "messaging_language": "is",
- "default_currency": {
- "code": "EUR",
- "name": "Euro",
- "symbol": "€"
}
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "payment_provider": "teya"
}
]
Returns a list of suggested quick booking searches based on the user's location, booking history and behavior.
select | Array of strings |
expand | Array of strings |
object (UserLocation) |
Accept-Language | string Example: is The language to return quick booking searches suggestions in. |
[- {
- "keyword": "Men's haircut"
}
]
An enterprise is an umbrella entity which purpose is maintaining a relation between multiple companies.
Retrieves all enterprises, and their companies, accessible on the Noona marketplace.
Navigation of the data; filtering, sorting, pagination etc. is based on the company.
Using this endpoint opposed to /companies has the advantage of returning companies grouped within their respective enterprises.
select | Array of strings |
expand | Array of strings |
object (CompanyFilter) | |
object (CompanySort) | |
object (Pagination) | |
search | string |
sort_by | string Deprecated Enum: "popular" "distance" Use sort instead. |
lat | number <double> Deprecated Use filter instead. |
lng | number <double> Deprecated Use filter instead. |
radius | integer <int64> Deprecated Default: 100000 Use filter instead. |
enterprise_ids | Array of strings Deprecated Example: enterprise_ids=te7da9wd8ua28a1ab&enterprise_ids=xa7da9wd8ua01a134 Use filter instead. |
company_type_id | string Deprecated Use filter instead. |
limit_companies | integer <int64> Deprecated Use pagination object instead. |
skip_companies | integer <int64> Deprecated Use pagination object instead. |
[- {
- "id": "aqmzX9Cm5tekKecsA",
- "companies": [
- {
- "id": "7dj29KiAE1wdjw731",
- "vertical": "appointment",
- "enterprise": "string",
- "profile": {
- "store_name": "John's Hair Salon",
- "description": "string",
- "favorites": 0,
- "company_types": [
- "string"
], - "cuisines": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "dietaries": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "ambiences": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "settings": {
- "license_plate": true
}, - "image": {
- "type": "thumbnail",
}, - "cover_images": [
- {
- "type": "thumbnail",
}
], - "phone_country_code": 354,
- "phone_number": "string",
- "prefer_12_hours": true,
- "price_category": 3,
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "exceed_max_guests_message": "string"
}, - "connections": {
- "multiple_services": true,
- "url_name": "string",
- "contact_email": "string",
- "required_fields": {
- "kennitala": true,
- "email": true
}, - "opening_hours": [
- {
- "opens_at": "08:00",
- "closes_at": "18:00",
- "is_closed": true
}
], - "max_future": 0,
- "min_cancel_notice": 0,
- "location": {
- "google_place_id": "string",
- "formatted_address": "string",
- "lat_lng": {
- "lat": 0,
- "lng": 0
}, - "country": {
- "short_name": "IS",
- "long_name": "Iceland"
}, - "time_zone": "Atlantic/Reykjavik"
}, - "booking_redirect_url": "string",
- "web_auth_opt_out": true,
- "booking_success_message": "string",
- "timatorg": true,
- "enable_vouchers": true,
- "enable_amount_vouchers": true,
- "min_move_notice": 0,
- "waitlist_enabled": true,
- "show_booking_ends_at": true
}, - "no_show_enabled": true,
- "most_recently_visited_company": true,
- "locale": {
- "ui_language": "is",
- "messaging_language": "is",
- "default_currency": {
- "code": "EUR",
- "name": "Euro",
- "symbol": "€"
}
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "payment_provider": "teya"
}
], - "connections": {
- "available_on_marketplace": true,
- "url_name": "noonacuts",
- "allows_booking_without_auth": true,
- "marketplace": {
- "enable_vouchers": true
}
}, - "profile": {
- "name": "Noonacuts",
- "image": {
- "type": "thumbnail",
}
}, - "favorites": 0
}
]
Retrieves an enterprise from its url_name (slug).
url_name required | string Example: big_barber_shops The urlname (slug) of the enterprise to retrieve. |
select | Array of strings |
expand | Array of strings |
{- "id": "aqmzX9Cm5tekKecsA",
- "companies": [
- {
- "id": "7dj29KiAE1wdjw731",
- "vertical": "appointment",
- "enterprise": "string",
- "profile": {
- "store_name": "John's Hair Salon",
- "description": "string",
- "favorites": 0,
- "company_types": [
- "string"
], - "cuisines": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "dietaries": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "ambiences": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "settings": {
- "license_plate": true
}, - "image": {
- "type": "thumbnail",
}, - "cover_images": [
- {
- "type": "thumbnail",
}
], - "phone_country_code": 354,
- "phone_number": "string",
- "prefer_12_hours": true,
- "price_category": 3,
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "exceed_max_guests_message": "string"
}, - "connections": {
- "multiple_services": true,
- "url_name": "string",
- "contact_email": "string",
- "required_fields": {
- "kennitala": true,
- "email": true
}, - "opening_hours": [
- {
- "opens_at": "08:00",
- "closes_at": "18:00",
- "is_closed": true
}
], - "max_future": 0,
- "min_cancel_notice": 0,
- "location": {
- "google_place_id": "string",
- "formatted_address": "string",
- "lat_lng": {
- "lat": 0,
- "lng": 0
}, - "country": {
- "short_name": "IS",
- "long_name": "Iceland"
}, - "time_zone": "Atlantic/Reykjavik"
}, - "booking_redirect_url": "string",
- "web_auth_opt_out": true,
- "booking_success_message": "string",
- "timatorg": true,
- "enable_vouchers": true,
- "enable_amount_vouchers": true,
- "min_move_notice": 0,
- "waitlist_enabled": true,
- "show_booking_ends_at": true
}, - "no_show_enabled": true,
- "most_recently_visited_company": true,
- "locale": {
- "ui_language": "is",
- "messaging_language": "is",
- "default_currency": {
- "code": "EUR",
- "name": "Euro",
- "symbol": "€"
}
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "payment_provider": "teya"
}
], - "connections": {
- "available_on_marketplace": true,
- "url_name": "noonacuts",
- "allows_booking_without_auth": true,
- "marketplace": {
- "enable_vouchers": true
}
}, - "profile": {
- "name": "Noonacuts",
- "image": {
- "type": "thumbnail",
}
}, - "favorites": 0
}
Companies are individual service providers such as Hair salons, Chiropractors and Veterinarians.
Retrieves all companies accessible on the Noona marketplace.
select | Array of strings |
expand | Array of strings |
object (CompanyFilter) | |
object (CompanySort) | |
object (Pagination) | |
search | string |
sort_by | string Deprecated Enum: "popular" "distance" Use sort instead. |
lat | number <double> Deprecated Use filter instead. |
lng | number <double> Deprecated Use filter instead. |
radius | integer <int64> Deprecated Default: 100000 Use filter instead. |
company_type_id | string Deprecated Use filter instead. |
enterprise_id | string Deprecated Example: enterprise_id=7awdXawZoolkjad37a Use filter instead. |
limit | integer <int64> Deprecated Use pagination object instead. |
skip | integer <int64> Deprecated Use pagination object instead. |
[- {
- "id": "7dj29KiAE1wdjw731",
- "vertical": "appointment",
- "enterprise": "string",
- "profile": {
- "store_name": "John's Hair Salon",
- "description": "string",
- "favorites": 0,
- "company_types": [
- "string"
], - "cuisines": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "dietaries": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "ambiences": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "settings": {
- "license_plate": true
}, - "image": {
- "type": "thumbnail",
}, - "cover_images": [
- {
- "type": "thumbnail",
}
], - "phone_country_code": 354,
- "phone_number": "string",
- "prefer_12_hours": true,
- "price_category": 3,
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "exceed_max_guests_message": "string"
}, - "connections": {
- "multiple_services": true,
- "url_name": "string",
- "contact_email": "string",
- "required_fields": {
- "kennitala": true,
- "email": true
}, - "opening_hours": [
- {
- "opens_at": "08:00",
- "closes_at": "18:00",
- "is_closed": true
}
], - "max_future": 0,
- "min_cancel_notice": 0,
- "location": {
- "google_place_id": "string",
- "formatted_address": "string",
- "lat_lng": {
- "lat": 0,
- "lng": 0
}, - "country": {
- "short_name": "IS",
- "long_name": "Iceland"
}, - "time_zone": "Atlantic/Reykjavik"
}, - "booking_redirect_url": "string",
- "web_auth_opt_out": true,
- "booking_success_message": "string",
- "timatorg": true,
- "enable_vouchers": true,
- "enable_amount_vouchers": true,
- "min_move_notice": 0,
- "waitlist_enabled": true,
- "show_booking_ends_at": true
}, - "no_show_enabled": true,
- "most_recently_visited_company": true,
- "locale": {
- "ui_language": "is",
- "messaging_language": "is",
- "default_currency": {
- "code": "EUR",
- "name": "Euro",
- "symbol": "€"
}
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "payment_provider": "teya"
}
]
Retrieves a company type from its url_name (slug).
url_name required | string Example: john_salon The urlname (slug) of the company to retrieve. |
select | Array of strings |
expand | Array of strings |
{- "id": "7dj29KiAE1wdjw731",
- "vertical": "appointment",
- "enterprise": "string",
- "profile": {
- "store_name": "John's Hair Salon",
- "description": "string",
- "favorites": 0,
- "company_types": [
- "string"
], - "cuisines": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "dietaries": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "ambiences": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "settings": {
- "license_plate": true
}, - "image": {
- "type": "thumbnail",
}, - "cover_images": [
- {
- "type": "thumbnail",
}
], - "phone_country_code": 354,
- "phone_number": "string",
- "prefer_12_hours": true,
- "price_category": 3,
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "exceed_max_guests_message": "string"
}, - "connections": {
- "multiple_services": true,
- "url_name": "string",
- "contact_email": "string",
- "required_fields": {
- "kennitala": true,
- "email": true
}, - "opening_hours": [
- {
- "opens_at": "08:00",
- "closes_at": "18:00",
- "is_closed": true
}
], - "max_future": 0,
- "min_cancel_notice": 0,
- "location": {
- "google_place_id": "string",
- "formatted_address": "string",
- "lat_lng": {
- "lat": 0,
- "lng": 0
}, - "country": {
- "short_name": "IS",
- "long_name": "Iceland"
}, - "time_zone": "Atlantic/Reykjavik"
}, - "booking_redirect_url": "string",
- "web_auth_opt_out": true,
- "booking_success_message": "string",
- "timatorg": true,
- "enable_vouchers": true,
- "enable_amount_vouchers": true,
- "min_move_notice": 0,
- "waitlist_enabled": true,
- "show_booking_ends_at": true
}, - "no_show_enabled": true,
- "most_recently_visited_company": true,
- "locale": {
- "ui_language": "is",
- "messaging_language": "is",
- "default_currency": {
- "code": "EUR",
- "name": "Euro",
- "symbol": "€"
}
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "payment_provider": "teya"
}
Lists opening hours of a company.
company_id required | string Example: dwawd8awudawd |
select | Array of strings |
expand | Array of strings |
object (OpeningHourFilter) Date range must be less than a year. |
{- "2020-08-24": [
- {
- "starts_at": "11:00",
- "ends_at": "13:00"
}, - {
- "starts_at": "18:00",
- "ends_at": "21:00"
}
]
}
Retrieves all companies accessible on the Noona marketplace for map view.
The response is optimized for map view.
select | Array of strings |
expand | Array of strings |
object (MapCompanyFilter) | |
search | string |
[- {
- "p": "string",
- "i": "string",
- "a": 0,
- "o": 0,
- "u": "string"
}
]
List all company types and metadata about company types.
Providing a latitude and longitude causes results to be specific to the relevant country.
select | Array of strings |
expand | Array of strings |
object (Sort) | |
object (Pagination) | |
lat | number <double> Longitude |
lng | number <double> Latitude |
{- "company_types": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Hair salons",
- "promotion": "Did you know you can book a haircut on Noona?",
- "locale_key": "hairstyling",
}
]
}
Retrieves a company type by ID.
company_type_id required | string Example: aw7da9wd8ua28a821 |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "name": "Hair salons",
- "promotion": "Did you know you can book a haircut on Noona?",
- "locale_key": "hairstyling",
}
List all service types and metadata about service types.
select | Array of strings |
expand | Array of strings |
object (UserLocation) | |
object (Sort) | |
object (Pagination) |
{- "categories": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
]
}
Retrieves a service type by ID.
service_type_id required | string Example: aw7da9wd8ua28a821 |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
Lists available cuisines.
select | Array of strings |
expand | Array of strings |
object (UserLocation) | |
object (Sort) | |
object (Pagination) |
{- "categories": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
]
}
Gets cuisine from ID.
cuisine_id required | string Example: dwawd8awudawd |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
Gets cuisine from readable ID.
readable_id required | string Example: asian |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
Lists available dietaries.
select | Array of strings |
expand | Array of strings |
object (UserLocation) | |
object (Sort) | |
object (Pagination) |
{- "categories": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
]
}
Gets dietary from ID.
dietary_id required | string Example: dwawd8awudawd |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
Gets dietary from readable ID.
readable_id required | string Example: vegan |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
Lists available ambiences.
select | Array of strings |
expand | Array of strings |
object (UserLocation) | |
object (Sort) | |
object (Pagination) |
{- "categories": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
]
}
Gets ambience from ID.
ambience_id required | string Example: dwawd8awudawd |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
Gets ambience from readable ID.
readable_id required | string Example: cozy |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
Searches employees across all companies accessible on the Noona marketplace.
select | Array of strings |
expand | Array of strings |
object (UserLocation) | |
search | string |
object (Pagination) |
[- {
- "id": "7dj29KiAE1wdjw731",
- "profile": {
- "name": "Joe the cutter",
- "description": "Joe is the cutter of many hairs",
- "image": {
- "type": "thumbnail",
}
}, - "marketplace": true,
- "event_type_preferences": [
- {
- "id": "dw7aw7da6w8d76aw",
- "can_perform": true,
- "custom_duration": 30,
- "custom_duration_before_pause": 15,
- "custom_duration_pause": 30,
- "custom_duration_after_pause": 15
}
], - "exclude_from_randomization_pool": true,
- "bookable": "bookable",
- "verification": {
- "verification_status": "pending",
- "certification_title": "Verified master",
- "certification_description": "This staff member is a master hairdresser",
- "certification_level": "apprentice",
- "certification_type": "cosmetology",
- "approved_at": "2019-08-24T14:15:22Z"
}, - "deleted_at": "2019-08-24T14:15:22Z",
- "company": {
- "id": "7dj29KiAE1wdjw731",
- "vertical": "appointment",
- "enterprise": "string",
- "profile": {
- "store_name": "John's Hair Salon",
- "description": "string",
- "favorites": 0,
- "company_types": [
- "string"
], - "cuisines": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "dietaries": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "ambiences": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "settings": {
- "license_plate": true
}, - "image": {
- "type": "thumbnail",
}, - "cover_images": [
- {
- "type": "thumbnail",
}
], - "phone_country_code": 354,
- "phone_number": "string",
- "prefer_12_hours": true,
- "price_category": 3,
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "exceed_max_guests_message": "string"
}, - "connections": {
- "multiple_services": true,
- "url_name": "string",
- "contact_email": "string",
- "required_fields": {
- "kennitala": true,
- "email": true
}, - "opening_hours": [
- {
- "opens_at": "08:00",
- "closes_at": "18:00",
- "is_closed": true
}
], - "max_future": 0,
- "min_cancel_notice": 0,
- "location": {
- "google_place_id": "string",
- "formatted_address": "string",
- "lat_lng": {
- "lat": 0,
- "lng": 0
}, - "country": {
- "short_name": "IS",
- "long_name": "Iceland"
}, - "time_zone": "Atlantic/Reykjavik"
}, - "booking_redirect_url": "string",
- "web_auth_opt_out": true,
- "booking_success_message": "string",
- "timatorg": true,
- "enable_vouchers": true,
- "enable_amount_vouchers": true,
- "min_move_notice": 0,
- "waitlist_enabled": true,
- "show_booking_ends_at": true
}, - "no_show_enabled": true,
- "most_recently_visited_company": true,
- "locale": {
- "ui_language": "is",
- "messaging_language": "is",
- "default_currency": {
- "code": "EUR",
- "name": "Euro",
- "symbol": "€"
}
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "payment_provider": "teya"
}
}
]
Lists employees at a given company.
company_id required | string Example: aw7da9wd8ua28a821 Company ID |
select | Array of strings |
expand | Array of strings |
object (Sort) | |
object (Pagination) | |
object (EmployeeFilter) | |
event_type_ids | Array of strings Deprecated Example: event_type_ids=te7da9wd8ua28a1ab&event_type_ids=xa7da9wd8ua01a134 Use filter object instead. |
[- {
- "id": "7dj29KiAE1wdjw731",
- "profile": {
- "name": "Joe the cutter",
- "description": "Joe is the cutter of many hairs",
- "image": {
- "type": "thumbnail",
}
}, - "marketplace": true,
- "event_type_preferences": [
- {
- "id": "dw7aw7da6w8d76aw",
- "can_perform": true,
- "custom_duration": 30,
- "custom_duration_before_pause": 15,
- "custom_duration_pause": 30,
- "custom_duration_after_pause": 15
}
], - "exclude_from_randomization_pool": true,
- "bookable": "bookable",
- "verification": {
- "verification_status": "pending",
- "certification_title": "Verified master",
- "certification_description": "This staff member is a master hairdresser",
- "certification_level": "apprentice",
- "certification_type": "cosmetology",
- "approved_at": "2019-08-24T14:15:22Z"
}, - "deleted_at": "2019-08-24T14:15:22Z"
}
]
Get employee with ID at a given company.
company_id required | string Example: aw7da9wd8ua28a821 Company ID |
employee_id required | string Example: pe7da9wd8ua28a114 Employee ID |
select | Array of strings |
expand | Array of strings |
{- "id": "7dj29KiAE1wdjw731",
- "profile": {
- "name": "Joe the cutter",
- "description": "Joe is the cutter of many hairs",
- "image": {
- "type": "thumbnail",
}
}, - "marketplace": true,
- "event_type_preferences": [
- {
- "id": "dw7aw7da6w8d76aw",
- "can_perform": true,
- "custom_duration": 30,
- "custom_duration_before_pause": 15,
- "custom_duration_pause": 30,
- "custom_duration_after_pause": 15
}
], - "exclude_from_randomization_pool": true,
- "bookable": "bookable",
- "verification": {
- "verification_status": "pending",
- "certification_title": "Verified master",
- "certification_description": "This staff member is a master hairdresser",
- "certification_level": "apprentice",
- "certification_type": "cosmetology",
- "approved_at": "2019-08-24T14:15:22Z"
}, - "deleted_at": "2019-08-24T14:15:22Z"
}
Lists spaces at a given company.
company_id required | string Example: aw7da9wd8ua28a821 Company ID |
select | Array of strings |
expand | Array of strings |
object (Sort) | |
object (Pagination) | |
object (SpaceFilter) |
[- {
- "id": "7dj29KiAE1wdjw731",
- "name": "Room 3",
- "description": "The room where the magic happens",
- "image": {
- "type": "thumbnail",
}, - "company": "string",
- "event_type_preferences": [
- {
- "id": "dw7aw7da6w8d76aw",
- "can_perform": true
}
], - "marketplace": true,
- "deleted_at": "2019-08-24T14:15:22Z"
}
]
Get space with ID at a given company.
space_id required | string Example: pe7da9wd8ua28a114 Employee ID |
select | Array of strings |
expand | Array of strings |
{- "id": "7dj29KiAE1wdjw731",
- "name": "Room 3",
- "description": "The room where the magic happens",
- "image": {
- "type": "thumbnail",
}, - "company": "string",
- "event_type_preferences": [
- {
- "id": "dw7aw7da6w8d76aw",
- "can_perform": true
}
], - "marketplace": true,
- "deleted_at": "2019-08-24T14:15:22Z"
}
Searches event types across all companies accessible on the Noona marketplace.
select | Array of strings |
expand | Array of strings |
search | string |
object (EventTypeSearchFilter) | |
object (Pagination) |
[- {
- "id": "7awdXwZoedakjad37a",
- "title": "Men's haircut",
- "company": "string",
- "minutes": 30,
- "description": "30 minute men's haircut",
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "thumb": "api.noona.is/static/haircut.png",
- "images": [
- {
- "type": "thumbnail",
}
], - "variations": [
- {
- "id": "string",
- "label": "Premium",
- "description": "Premium service with extra attention",
- "customer_group": "7awdXwZoedakjad37a",
- "prices": [
- {
- "currency": "EUR",
- "amount": 40
}
], - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}
}
], - "price_ranges": [
- {
- "min": 10,
- "max": 30,
- "currency": "EUR"
}
], - "connections": {
- "customer_selects": "employee",
- "service_needs": "employee",
- "booking_question": "string",
- "booking_questions": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string"
}
], - "booking_success_message": "Remember to bring your smile with you!",
- "marketplace": true
}, - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "created_at": 1631558908,
- "updated_at": 1631558908,
- "deleted_at": "2019-08-24T14:15:22Z"
}
]
Retrieves all event types for a company.
company_id required | string Company ID |
select | Array of strings |
expand | Array of strings |
object (Sort) | |
object (Pagination) | |
object (EventTypeFilter) | |
employee_id | string Deprecated Use filter instead |
event_type_ids | Array of strings Deprecated Example: event_type_ids=te7da9wd8ua28a1ab&event_type_ids=xa7da9wd8ua01a134 Use filter instead |
[- {
- "id": "7awdXwZoedakjad37a",
- "title": "Men's haircut",
- "company": "string",
- "minutes": 30,
- "description": "30 minute men's haircut",
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "thumb": "api.noona.is/static/haircut.png",
- "images": [
- {
- "type": "thumbnail",
}
], - "variations": [
- {
- "id": "string",
- "label": "Premium",
- "description": "Premium service with extra attention",
- "customer_group": "7awdXwZoedakjad37a",
- "prices": [
- {
- "currency": "EUR",
- "amount": 40
}
], - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}
}
], - "price_ranges": [
- {
- "min": 10,
- "max": 30,
- "currency": "EUR"
}
], - "connections": {
- "customer_selects": "employee",
- "service_needs": "employee",
- "booking_question": "string",
- "booking_questions": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string"
}
], - "booking_success_message": "Remember to bring your smile with you!",
- "marketplace": true
}, - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "created_at": 1631558908,
- "updated_at": 1631558908,
- "deleted_at": "2019-08-24T14:15:22Z"
}
]
Gets event type with specified ID.
event_type_id required | string Event Type ID |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "title": "Men's haircut",
- "company": "string",
- "minutes": 30,
- "description": "30 minute men's haircut",
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "thumb": "api.noona.is/static/haircut.png",
- "images": [
- {
- "type": "thumbnail",
}
], - "variations": [
- {
- "id": "string",
- "label": "Premium",
- "description": "Premium service with extra attention",
- "customer_group": "7awdXwZoedakjad37a",
- "prices": [
- {
- "currency": "EUR",
- "amount": 40
}
], - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}
}
], - "price_ranges": [
- {
- "min": 10,
- "max": 30,
- "currency": "EUR"
}
], - "connections": {
- "customer_selects": "employee",
- "service_needs": "employee",
- "booking_question": "string",
- "booking_questions": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string"
}
], - "booking_success_message": "Remember to bring your smile with you!",
- "marketplace": true
}, - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "created_at": 1631558908,
- "updated_at": 1631558908,
- "deleted_at": "2019-08-24T14:15:22Z"
}
Retrieves all event types for a company in their respective groups.
If a marketplace user token is passed in an event type group, which lists previous event types the user has booked, will be generated and returned.
company_id required | string Company ID |
select | Array of strings |
expand | Array of strings |
object (Sort) | |
object (Pagination) | |
object (EventTypeFilter) | |
employee_id | string Deprecated Use filter instead |
event_type_ids | Array of strings Deprecated Example: event_type_ids=te7da9wd8ua28a1ab&event_type_ids=xa7da9wd8ua01a134 Use filter instead |
[- {
- "id": "7awdXwZoedakjad37a",
- "title": "Haircuts",
- "company_id": "831dXwZoedakjad40b",
- "description": "Description field",
- "image": {
- "type": "thumbnail",
}, - "user_specific_event_types": false,
- "parent_group_id": "dw7ADw8adawdok",
- "order": 1,
- "group_event_types": [
- {
- "id": "7awdXwZoedakjad37a",
- "order": 1,
- "title": "Men's haircut",
- "company": "string",
- "minutes": 30,
- "description": "30 minute men's haircut",
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "thumb": "api.noona.is/static/haircut.png",
- "images": [
- {
- "type": "thumbnail",
}
], - "variations": [
- {
- "id": "string",
- "label": "Premium",
- "description": "Premium service with extra attention",
- "customer_group": "7awdXwZoedakjad37a",
- "prices": [
- {
- "currency": "EUR",
- "amount": 40
}
], - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}
}
], - "price_ranges": [
- {
- "min": 10,
- "max": 30,
- "currency": "EUR"
}
], - "connections": {
- "customer_selects": "employee",
- "service_needs": "employee",
- "booking_question": "string",
- "booking_questions": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string"
}
], - "booking_success_message": "Remember to bring your smile with you!",
- "marketplace": true
}, - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "created_at": 1631558908,
- "updated_at": 1631558908,
- "deleted_at": "2019-08-24T14:15:22Z"
}
], - "created_at": 1631558908,
- "updated_at": 1631558908,
- "group_event_types_count": 7,
- "group_event_type_groups": [
- null
]
}
]
Event Type Categories are used to group and categorize event types.
This is useful since a company might call a haircut a Haircut and another company might call it a Hair styling.
Lists event type categories.
select | Array of strings |
expand | Array of strings |
Accept-Language | string Example: is The language to return event type categories in. It is also possible to query for all languages by passing in "*". |
[- {
- "titles": {
- "en": "Men's haircut",
- "is": "Karlaklipping",
- "fr": "Coupe pour homme"
}
}
]
Events are the center point of our whole system.
A haircut that an HQ user performs on some marketplace user at a specified time is an event.
Lists events for marketplace user.
select | Array of strings |
expand | Array of strings |
object (Sort) | |
object (Pagination) | |
object (EventFilter) |
[- {
- "id": "7awdXwZoedakjad37a",
- "time_slot_reservation": "7awdXwZoedakjad37a",
- "starts_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "duration": 60,
- "number_of_guests": 1,
- "customer_name": "John Doe",
- "ssn": "0101011234",
- "email": "example@example.com",
- "license_plate": "ABC123",
- "phone_country_code": "354",
- "phone_number": "7771122",
- "booking_questions": [
- {
- "question": "What color is your hair?",
- "answer": "Blonde"
}
], - "booking_question_answers": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string",
- "answer": "string"
}
], - "comment": "I have blonde hair",
- "origin": "online",
- "channel": "google maps",
- "source": "quick bookings",
- "partner": "string",
- "no_show_acknowledged": false,
- "event_types": [
- {
- "id": "7awdXwZoedakjad37a",
- "title": "Men's haircut",
- "company": "string",
- "minutes": 30,
- "description": "30 minute men's haircut",
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "thumb": "api.noona.is/static/haircut.png",
- "images": [
- {
- "type": "thumbnail",
}
], - "variations": [
- {
- "id": "string",
- "label": "Premium",
- "description": "Premium service with extra attention",
- "customer_group": "7awdXwZoedakjad37a",
- "prices": [
- {
- "currency": "EUR",
- "amount": 40
}
], - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}
}
], - "price_ranges": [
- {
- "min": 10,
- "max": 30,
- "currency": "EUR"
}
], - "connections": {
- "customer_selects": "employee",
- "service_needs": "employee",
- "booking_question": "string",
- "booking_questions": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string"
}
], - "booking_success_message": "Remember to bring your smile with you!",
- "marketplace": true
}, - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "created_at": 1631558908,
- "updated_at": 1631558908,
- "deleted_at": "2019-08-24T14:15:22Z"
}
], - "variation_selections": [
- {
- "variation_id": "7awdXwZoedakjad37a",
- "event_type_id": "7awdXwZoedakjad37a",
- "quantity": 1
}
], - "confirmed": true,
- "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
- "employee": "string",
- "space": "string",
- "company": "string",
- "specific_employee_requested": true,
- "specific_space_requested": true,
- "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "payment": "string",
- "payment_intents": [
- {
- "id": "7awdXwZoedakjad37a",
- "method": "VoucherPayment",
- "voucher_code": "D6XC8A",
- "voucher": "string",
- "event_type_id": "7awdXwZoedakjad37a",
- "total_amount": 10000,
- "amount_to_use": 10000,
- "title": "Haircut",
- "sessions_total": 5
}
], - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
Creates an event for marketplace user from a time slot reservation.
select | Array of strings |
expand | Array of strings |
time_slot_reservation required | string The time slot reservation ID. |
number_of_guests | integer <int32> Number of guests for the event. |
customer_name | string |
ssn | string |
string | |
license_plate | string |
phone_country_code | string |
phone_number | string |
Array of objects (LegacyBookingQuestions) Deprecated This schema is deprecated. Use | |
Array of objects (BookingQuestionAnswers) | |
comment | string |
origin | string |
channel | string |
source | string |
partner | string The identifier for the partner system that created the event. |
no_show_acknowledged | boolean |
Array of objects (VariationSelections) The variations selected for the event type in a time slot reservation. The total quantity of all variation selections must match the number of guests. | |
booking_for_other | boolean Whether the booking is for someone else. When When |
customer | string When booking for other. The customer ID of the person being booked for. If a customer ID is not provided, a new customer will be created. |
SavedCard (object) or Card (object) or GooglePay (object) or ApplePay (object) or ActionResult (object) (PaymentInformation) | |
Array of VoucherPayment (object) or VoucherTemplatePayment (object) (PaymentIntents) |
{- "time_slot_reservation": "7awdXwZoedakjad37a",
- "starts_at": "2019-08-24T14:15:22Z",
- "number_of_guests": 1,
- "customer_name": "John Doe",
- "ssn": "0101011234",
- "email": "example@example.com",
- "license_plate": "ABC123",
- "phone_country_code": "354",
- "phone_number": "7771122",
- "booking_questions": [
- {
- "question": "What color is your hair?",
- "answer": "Blonde"
}
], - "booking_question_answers": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string",
- "answer": "string"
}
], - "comment": "I have blonde hair",
- "origin": "online",
- "channel": "google maps",
- "source": "quick bookings",
- "partner": "string",
- "no_show_acknowledged": false,
- "event_types": [
- {
- "title": "Men's haircut",
- "company": "string",
- "minutes": 30,
- "description": "30 minute men's haircut",
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "thumb": "api.noona.is/static/haircut.png",
- "images": [
- {
- "type": "thumbnail",
}
], - "variations": [
- {
- "id": "string",
- "label": "Premium",
- "description": "Premium service with extra attention",
- "customer_group": "7awdXwZoedakjad37a",
- "prices": [
- {
- "currency": "EUR",
- "amount": 40
}
]
}
], - "price_ranges": [
- {
- "min": 10,
- "max": 30,
- "currency": "EUR"
}
], - "connections": {
- "customer_selects": "employee",
- "service_needs": "employee",
- "booking_question": "string",
- "booking_questions": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string"
}
], - "booking_success_message": "Remember to bring your smile with you!",
- "marketplace": true
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}
}
], - "variation_selections": [
- {
- "variation_id": "7awdXwZoedakjad37a",
- "event_type_id": "7awdXwZoedakjad37a",
- "quantity": 1
}
], - "status": "cancelled",
- "cancel_reason": "I'm sick and can't make it",
- "employee": "string",
- "space": "string",
- "company": "string",
- "booking_for_other": false,
- "customer": "7awdXwZoedakjad37a",
- "payment_information": {
- "method": "SavedCard",
- "card_id": "9d8aj2oi2audawo",
- "cvc": "070",
- "return_url": "string",
- "browser_information": {
- "language": "en-US",
- "color_depth": 0,
- "javascript_enabled": true,
- "screen_width": 0,
- "screen_height": 0,
- "time_zone_offset": 0
}, - "channel": "iOS",
- "three_ds2_sdk_version": "string",
- "PARes": "string",
- "CRes": "string"
}, - "payment": "string",
- "payment_intents": [
- {
- "method": "VoucherPayment",
- "voucher_code": "D6XC8A",
- "voucher": "string"
}
]
}
{- "id": "7awdXwZoedakjad37a",
- "time_slot_reservation": "7awdXwZoedakjad37a",
- "starts_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "duration": 60,
- "number_of_guests": 1,
- "customer_name": "John Doe",
- "ssn": "0101011234",
- "email": "example@example.com",
- "license_plate": "ABC123",
- "phone_country_code": "354",
- "phone_number": "7771122",
- "booking_questions": [
- {
- "question": "What color is your hair?",
- "answer": "Blonde"
}
], - "booking_question_answers": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string",
- "answer": "string"
}
], - "comment": "I have blonde hair",
- "origin": "online",
- "channel": "google maps",
- "source": "quick bookings",
- "partner": "string",
- "no_show_acknowledged": false,
- "event_types": [
- {
- "id": "7awdXwZoedakjad37a",
- "title": "Men's haircut",
- "company": "string",
- "minutes": 30,
- "description": "30 minute men's haircut",
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "thumb": "api.noona.is/static/haircut.png",
- "images": [
- {
- "type": "thumbnail",
}
], - "variations": [
- {
- "id": "string",
- "label": "Premium",
- "description": "Premium service with extra attention",
- "customer_group": "7awdXwZoedakjad37a",
- "prices": [
- {
- "currency": "EUR",
- "amount": 40
}
], - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}
}
], - "price_ranges": [
- {
- "min": 10,
- "max": 30,
- "currency": "EUR"
}
], - "connections": {
- "customer_selects": "employee",
- "service_needs": "employee",
- "booking_question": "string",
- "booking_questions": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string"
}
], - "booking_success_message": "Remember to bring your smile with you!",
- "marketplace": true
}, - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "created_at": 1631558908,
- "updated_at": 1631558908,
- "deleted_at": "2019-08-24T14:15:22Z"
}
], - "variation_selections": [
- {
- "variation_id": "7awdXwZoedakjad37a",
- "event_type_id": "7awdXwZoedakjad37a",
- "quantity": 1
}
], - "confirmed": true,
- "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
- "employee": "string",
- "space": "string",
- "company": "string",
- "specific_employee_requested": true,
- "specific_space_requested": true,
- "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "payment": "string",
- "payment_intents": [
- {
- "id": "7awdXwZoedakjad37a",
- "method": "VoucherPayment",
- "voucher_code": "D6XC8A",
- "voucher": "string",
- "event_type_id": "7awdXwZoedakjad37a",
- "total_amount": 10000,
- "amount_to_use": 10000,
- "title": "Haircut",
- "sessions_total": 5
}
], - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Retrieves an event for marketplace user.
event_id required | string Example: dwawd8awudawd Event ID |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "time_slot_reservation": "7awdXwZoedakjad37a",
- "starts_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "duration": 60,
- "number_of_guests": 1,
- "customer_name": "John Doe",
- "ssn": "0101011234",
- "email": "example@example.com",
- "license_plate": "ABC123",
- "phone_country_code": "354",
- "phone_number": "7771122",
- "booking_questions": [
- {
- "question": "What color is your hair?",
- "answer": "Blonde"
}
], - "booking_question_answers": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string",
- "answer": "string"
}
], - "comment": "I have blonde hair",
- "origin": "online",
- "channel": "google maps",
- "source": "quick bookings",
- "partner": "string",
- "no_show_acknowledged": false,
- "event_types": [
- {
- "id": "7awdXwZoedakjad37a",
- "title": "Men's haircut",
- "company": "string",
- "minutes": 30,
- "description": "30 minute men's haircut",
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "thumb": "api.noona.is/static/haircut.png",
- "images": [
- {
- "type": "thumbnail",
}
], - "variations": [
- {
- "id": "string",
- "label": "Premium",
- "description": "Premium service with extra attention",
- "customer_group": "7awdXwZoedakjad37a",
- "prices": [
- {
- "currency": "EUR",
- "amount": 40
}
], - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}
}
], - "price_ranges": [
- {
- "min": 10,
- "max": 30,
- "currency": "EUR"
}
], - "connections": {
- "customer_selects": "employee",
- "service_needs": "employee",
- "booking_question": "string",
- "booking_questions": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string"
}
], - "booking_success_message": "Remember to bring your smile with you!",
- "marketplace": true
}, - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "created_at": 1631558908,
- "updated_at": 1631558908,
- "deleted_at": "2019-08-24T14:15:22Z"
}
], - "variation_selections": [
- {
- "variation_id": "7awdXwZoedakjad37a",
- "event_type_id": "7awdXwZoedakjad37a",
- "quantity": 1
}
], - "confirmed": true,
- "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
- "employee": "string",
- "space": "string",
- "company": "string",
- "specific_employee_requested": true,
- "specific_space_requested": true,
- "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "payment": "string",
- "payment_intents": [
- {
- "id": "7awdXwZoedakjad37a",
- "method": "VoucherPayment",
- "voucher_code": "D6XC8A",
- "voucher": "string",
- "event_type_id": "7awdXwZoedakjad37a",
- "total_amount": 10000,
- "amount_to_use": 10000,
- "title": "Haircut",
- "sessions_total": 5
}
], - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Updates an event for marketplace user.
If employee and space are not provided, new employee and space will be selected at random for the new time.
If the intent is to only move between resources (employee or space) and not change the time, starts_at will have to be passed in as the current value.
If the intent is to only change number of guests, starts_at will have to be passed in as the current value.
event_id required | string Example: dwawd8awudawd Event ID |
select | Array of strings |
expand | Array of strings |
starts_at | string <date-time> |
number_of_guests | integer <int32> Number of guests for the event. |
Array of objects (LegacyBookingQuestions) Deprecated This schema is deprecated. Use | |
Array of objects (BookingQuestionAnswers) | |
source | string |
partner | string The identifier for the partner system that created the event. |
Array of objects (VariationSelections) The variations selected for the event type in a time slot reservation. The total quantity of all variation selections must match the number of guests. | |
status | string <enum> Value: "cancelled" The status of the event. Cancelled events are not returned in list of events. |
cancel_reason | string Should be provided if the status is being updated to cancelled. |
ID (string) or Employee (object) (ExpandableEmployee) | |
ID (string) or Space (object) (ExpandableSpace) |
{- "time_slot_reservation": "7awdXwZoedakjad37a",
- "starts_at": "2019-08-24T14:15:22Z",
- "number_of_guests": 1,
- "customer_name": "John Doe",
- "ssn": "0101011234",
- "email": "example@example.com",
- "license_plate": "ABC123",
- "phone_country_code": "354",
- "phone_number": "7771122",
- "booking_questions": [
- {
- "question": "What color is your hair?",
- "answer": "Blonde"
}
], - "booking_question_answers": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string",
- "answer": "string"
}
], - "comment": "I have blonde hair",
- "origin": "online",
- "channel": "google maps",
- "source": "quick bookings",
- "partner": "string",
- "no_show_acknowledged": false,
- "event_types": [
- {
- "title": "Men's haircut",
- "company": "string",
- "minutes": 30,
- "description": "30 minute men's haircut",
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "thumb": "api.noona.is/static/haircut.png",
- "images": [
- {
- "type": "thumbnail",
}
], - "variations": [
- {
- "id": "string",
- "label": "Premium",
- "description": "Premium service with extra attention",
- "customer_group": "7awdXwZoedakjad37a",
- "prices": [
- {
- "currency": "EUR",
- "amount": 40
}
]
}
], - "price_ranges": [
- {
- "min": 10,
- "max": 30,
- "currency": "EUR"
}
], - "connections": {
- "customer_selects": "employee",
- "service_needs": "employee",
- "booking_question": "string",
- "booking_questions": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string"
}
], - "booking_success_message": "Remember to bring your smile with you!",
- "marketplace": true
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}
}
], - "variation_selections": [
- {
- "variation_id": "7awdXwZoedakjad37a",
- "event_type_id": "7awdXwZoedakjad37a",
- "quantity": 1
}
], - "status": "cancelled",
- "cancel_reason": "I'm sick and can't make it",
- "employee": "string",
- "space": "string",
- "company": "string",
- "booking_for_other": false,
- "customer": "7awdXwZoedakjad37a",
- "payment_information": {
- "method": "SavedCard",
- "card_id": "9d8aj2oi2audawo",
- "cvc": "070",
- "return_url": "string",
- "browser_information": {
- "language": "en-US",
- "color_depth": 0,
- "javascript_enabled": true,
- "screen_width": 0,
- "screen_height": 0,
- "time_zone_offset": 0
}, - "channel": "iOS",
- "three_ds2_sdk_version": "string",
- "PARes": "string",
- "CRes": "string"
}, - "payment": "string",
- "payment_intents": [
- {
- "method": "VoucherPayment",
- "voucher_code": "D6XC8A",
- "voucher": "string"
}
]
}
{- "id": "7awdXwZoedakjad37a",
- "time_slot_reservation": "7awdXwZoedakjad37a",
- "starts_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "duration": 60,
- "number_of_guests": 1,
- "customer_name": "John Doe",
- "ssn": "0101011234",
- "email": "example@example.com",
- "license_plate": "ABC123",
- "phone_country_code": "354",
- "phone_number": "7771122",
- "booking_questions": [
- {
- "question": "What color is your hair?",
- "answer": "Blonde"
}
], - "booking_question_answers": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string",
- "answer": "string"
}
], - "comment": "I have blonde hair",
- "origin": "online",
- "channel": "google maps",
- "source": "quick bookings",
- "partner": "string",
- "no_show_acknowledged": false,
- "event_types": [
- {
- "id": "7awdXwZoedakjad37a",
- "title": "Men's haircut",
- "company": "string",
- "minutes": 30,
- "description": "30 minute men's haircut",
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "thumb": "api.noona.is/static/haircut.png",
- "images": [
- {
- "type": "thumbnail",
}
], - "variations": [
- {
- "id": "string",
- "label": "Premium",
- "description": "Premium service with extra attention",
- "customer_group": "7awdXwZoedakjad37a",
- "prices": [
- {
- "currency": "EUR",
- "amount": 40
}
], - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}
}
], - "price_ranges": [
- {
- "min": 10,
- "max": 30,
- "currency": "EUR"
}
], - "connections": {
- "customer_selects": "employee",
- "service_needs": "employee",
- "booking_question": "string",
- "booking_questions": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string"
}
], - "booking_success_message": "Remember to bring your smile with you!",
- "marketplace": true
}, - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "created_at": 1631558908,
- "updated_at": 1631558908,
- "deleted_at": "2019-08-24T14:15:22Z"
}
], - "variation_selections": [
- {
- "variation_id": "7awdXwZoedakjad37a",
- "event_type_id": "7awdXwZoedakjad37a",
- "quantity": 1
}
], - "confirmed": true,
- "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
- "employee": "string",
- "space": "string",
- "company": "string",
- "specific_employee_requested": true,
- "specific_space_requested": true,
- "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "payment": "string",
- "payment_intents": [
- {
- "id": "7awdXwZoedakjad37a",
- "method": "VoucherPayment",
- "voucher_code": "D6XC8A",
- "voucher": "string",
- "event_type_id": "7awdXwZoedakjad37a",
- "total_amount": 10000,
- "amount_to_use": 10000,
- "title": "Haircut",
- "sessions_total": 5
}
], - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Sends an event notification to the specified recipient.
event_id required | string Example: dwawd8awudawd Event ID |
string Send an email notification to this email address about event. |
{- "email": "test@testy.is"
}
Validates data gathered in the booking/event-creation flow.
id required | string Company ID |
name | string |
phone_country_code | string |
phone_number | string |
license_plate | string |
ssn | string |
string |
{- "name": "Johnny The Second",
- "phone_country_code": "354",
- "phone_number": "7134124",
- "license_plate": "df302",
- "ssn": "1302782649",
- "email": "some@email.com"
}
{- "name": "",
- "phone_country_code": "",
- "phone_number": "",
- "license_plate": "",
- "ssn": "",
- "email": ""
}
Gets all available tima slots for company based on filter.
Either event_type_ids or event_id must be provided.
Capacity is the number of customers in booking.
id required | string Example: aw7da9wd8ua28a821 Company ID |
start_date required | string Example: start_date=2021-01-01 |
end_date required | string Example: end_date=2021-01-31 |
select | Array of strings |
expand | Array of strings |
employee_id | string Example: employee_id=8a1da9wd8ua28aa9d |
space_id | string Example: space_id=ea7da9wd8ua28a134 |
event_type_ids | Array of strings Example: event_type_ids=te7da9wd8ua28a1ab&event_type_ids=xa7da9wd8ua01a134 |
event_id | string Example: event_id=xa7da9wd8ua01a134 |
capacity | integer <int32> Default: 1 Example: capacity=5 |
type | string Default: "available" Enum: "available" "unavailable" "all" Filter by type of time slots to return.
|
[- {
- "status": "closed",
- "date": "2021-01-03",
- "slots": [
- {
- "time": "08:00",
- "employeeIds": [
- "string"
], - "spaceIds": [
- "string"
]
}
], - "unavailable_slots": [
- {
- "time": "08:00",
- "employeeIds": [
- "string"
], - "spaceIds": [
- "string"
]
}
]
}
]
Gets all available tima slots for company based on filter for multiple event types.
This endpoint allows for fetching time slots for multiple event types at once. Opposed to /time_slots which only allows for fetching time slots for a single event type.
If event_id is provided, event_type_ids will be ignored and the event type of the event will be used.
id required | string Example: aw7da9wd8ua28a821 Company ID |
start_date required | string Example: start_date=2021-01-01 |
end_date required | string Example: end_date=2021-01-31 |
select | Array of strings |
expand | Array of strings |
employee_id | string Example: employee_id=8a1da9wd8ua28aa9d |
space_id | string Example: space_id=ea7da9wd8ua28a134 |
event_type_ids | Array of strings Example: event_type_ids=te7da9wd8ua28a1ab&event_type_ids=xa7da9wd8ua01a134 |
event_id | string Example: event_id=xa7da9wd8ua01a134 |
capacity | integer <int32> Default: 1 Example: capacity=5 |
type | string Default: "available" Enum: "available" "unavailable" "all" Filter by type of time slots to return.
|
[- {
- "event_type": {
- "id": "7awdXwZoedakjad37a",
- "title": "Men's haircut",
- "company": "string",
- "minutes": 30,
- "description": "30 minute men's haircut",
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "thumb": "api.noona.is/static/haircut.png",
- "images": [
- {
- "type": "thumbnail",
}
], - "variations": [
- {
- "id": "string",
- "label": "Premium",
- "description": "Premium service with extra attention",
- "customer_group": "7awdXwZoedakjad37a",
- "prices": [
- {
- "currency": "EUR",
- "amount": 40
}
], - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}
}
], - "price_ranges": [
- {
- "min": 10,
- "max": 30,
- "currency": "EUR"
}
], - "connections": {
- "customer_selects": "employee",
- "service_needs": "employee",
- "booking_question": "string",
- "booking_questions": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string"
}
], - "booking_success_message": "Remember to bring your smile with you!",
- "marketplace": true
}, - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "created_at": 1631558908,
- "updated_at": 1631558908,
- "deleted_at": "2019-08-24T14:15:22Z"
}, - "time_slots": [
- {
- "status": "closed",
- "date": "2021-01-03",
- "slots": [
- {
- "time": "08:00",
- "employeeIds": [
- "string"
], - "spaceIds": [
- "string"
]
}
], - "unavailable_slots": [
- {
- "time": "08:00",
- "employeeIds": [
- "string"
], - "spaceIds": [
- "string"
]
}
]
}
]
}
]
Creates a time slot reservation for a specific event type at a company.
The reservation can then be used to create an event.
select | Array of strings |
expand | Array of strings |
ID (string) or Company (object) (ExpandableCompany) | |
Array of ID (string) or EventType (object) (ExpandableEventType) | |
Array of objects (VariationSelections) The variations selected for the event type in a time slot reservation. The total quantity of all variation selections must match the number of guests. | |
number_of_guests | integer <int32> The total number of guests to book for. |
starts_at | string <date-time> |
ID (string) or Employee (object) (ExpandableEmployee) | |
ID (string) or Space (object) (ExpandableSpace) | |
Array of objects (BookingQuestionAnswers) | |
ID (string) or BookingOffer (object) (ExpandableBookingOffer) | |
Array of VoucherPayment (object) or VoucherTemplatePayment (object) (PaymentIntents) | |
payment_type | string <enum> Default: "full" Enum: "required" "full" What to do with payment when creating an event.
|
phone_country_code | string |
phone_number | string |
{- "company": "string",
- "event_types": [
- "string"
], - "variation_selections": [
- {
- "variation_id": "7awdXwZoedakjad37a",
- "event_type_id": "7awdXwZoedakjad37a",
- "quantity": 1
}
], - "number_of_guests": 10,
- "starts_at": "2019-08-24T14:15:22Z",
- "employee": "string",
- "space": "string",
- "booking_question_answers": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string",
- "answer": "string"
}
], - "booking_offer": "string",
- "payment_intents": [
- {
- "method": "VoucherPayment",
- "voucher_code": "D6XC8A",
- "voucher": "string"
}
], - "payment_type": "full",
- "phone_country_code": 354,
- "phone_number": "string"
}
{- "id": "7awdXwZoedakjad37a",
- "company": "string",
- "event_types": [
- "string"
], - "variation_selections": [
- {
- "variation_id": "7awdXwZoedakjad37a",
- "event_type_id": "7awdXwZoedakjad37a",
- "quantity": 1
}
], - "number_of_guests": 10,
- "time_zone": "Atlantic/Reykjavik",
- "starts_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "employee": "string",
- "space": "string",
- "booking_question_answers": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string",
- "answer": "string"
}
], - "booking_offer": "string",
- "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "payment_intents": [
- {
- "id": "7awdXwZoedakjad37a",
- "method": "VoucherPayment",
- "voucher_code": "D6XC8A",
- "voucher": "string",
- "event_type_id": "7awdXwZoedakjad37a",
- "total_amount": 10000,
- "amount_to_use": 10000,
- "title": "Haircut",
- "sessions_total": 5
}
], - "payment_type": "full",
- "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Gets a time slot reservation.
time_slot_reservation_id required | string Example: dwawd8awudawd |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "company": "string",
- "event_types": [
- "string"
], - "variation_selections": [
- {
- "variation_id": "7awdXwZoedakjad37a",
- "event_type_id": "7awdXwZoedakjad37a",
- "quantity": 1
}
], - "number_of_guests": 10,
- "time_zone": "Atlantic/Reykjavik",
- "starts_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "employee": "string",
- "space": "string",
- "booking_question_answers": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string",
- "answer": "string"
}
], - "booking_offer": "string",
- "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "payment_intents": [
- {
- "id": "7awdXwZoedakjad37a",
- "method": "VoucherPayment",
- "voucher_code": "D6XC8A",
- "voucher": "string",
- "event_type_id": "7awdXwZoedakjad37a",
- "total_amount": 10000,
- "amount_to_use": 10000,
- "title": "Haircut",
- "sessions_total": 5
}
], - "payment_type": "full",
- "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Updates a time slot reservation.
time_slot_reservation_id required | string Example: dwawd8awudawd |
select | Array of strings |
expand | Array of strings |
Array of objects (VariationSelections) The variations selected for the event type in a time slot reservation. The total quantity of all variation selections must match the number of guests. | |
phone_country_code | string |
phone_number | string |
Array of objects (BookingQuestionAnswers) | |
Array of VoucherPayment (object) or VoucherTemplatePayment (object) (PaymentIntents) | |
payment_type | string <enum> Default: "full" Enum: "required" "full" What to do with payment when creating an event.
|
{- "variation_selections": [
- {
- "variation_id": "7awdXwZoedakjad37a",
- "event_type_id": "7awdXwZoedakjad37a",
- "quantity": 1
}
], - "phone_country_code": 354,
- "phone_number": "string",
- "booking_question_answers": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string",
- "answer": "string"
}
], - "payment_intents": [
- {
- "method": "VoucherPayment",
- "voucher_code": "D6XC8A",
- "voucher": "string"
}
], - "payment_type": "full"
}
{- "id": "7awdXwZoedakjad37a",
- "company": "string",
- "event_types": [
- "string"
], - "variation_selections": [
- {
- "variation_id": "7awdXwZoedakjad37a",
- "event_type_id": "7awdXwZoedakjad37a",
- "quantity": 1
}
], - "number_of_guests": 10,
- "time_zone": "Atlantic/Reykjavik",
- "starts_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "employee": "string",
- "space": "string",
- "booking_question_answers": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string",
- "answer": "string"
}
], - "booking_offer": "string",
- "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "payment_intents": [
- {
- "id": "7awdXwZoedakjad37a",
- "method": "VoucherPayment",
- "voucher_code": "D6XC8A",
- "voucher": "string",
- "event_type_id": "7awdXwZoedakjad37a",
- "total_amount": 10000,
- "amount_to_use": 10000,
- "title": "Haircut",
- "sessions_total": 5
}
], - "payment_type": "full",
- "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Lists speedy slots, availble for booking, for a specific event type at a company.
The returned companies are solely within the appointment vertical.
start_date required | string Example: start_date=2022-11-01 |
end_date required | string Example: end_date=2022-11-03 |
required | object (SpeedySlotsSearchFilter) |
select | Array of strings |
expand | Array of strings |
search | string |
[- {
- "company": {
- "id": "7dj29KiAE1wdjw731",
- "vertical": "appointment",
- "enterprise": "string",
- "profile": {
- "store_name": "John's Hair Salon",
- "description": "string",
- "favorites": 0,
- "company_types": [
- "string"
], - "cuisines": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "dietaries": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "ambiences": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "settings": {
- "license_plate": true
}, - "image": {
- "type": "thumbnail",
}, - "cover_images": [
- {
- "type": "thumbnail",
}
], - "phone_country_code": 354,
- "phone_number": "string",
- "prefer_12_hours": true,
- "price_category": 3,
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "exceed_max_guests_message": "string"
}, - "connections": {
- "multiple_services": true,
- "url_name": "string",
- "contact_email": "string",
- "required_fields": {
- "kennitala": true,
- "email": true
}, - "opening_hours": [
- {
- "opens_at": "08:00",
- "closes_at": "18:00",
- "is_closed": true
}
], - "max_future": 0,
- "min_cancel_notice": 0,
- "location": {
- "google_place_id": "string",
- "formatted_address": "string",
- "lat_lng": {
- "lat": 0,
- "lng": 0
}, - "country": {
- "short_name": "IS",
- "long_name": "Iceland"
}, - "time_zone": "Atlantic/Reykjavik"
}, - "booking_redirect_url": "string",
- "web_auth_opt_out": true,
- "booking_success_message": "string",
- "timatorg": true,
- "enable_vouchers": true,
- "enable_amount_vouchers": true,
- "min_move_notice": 0,
- "waitlist_enabled": true,
- "show_booking_ends_at": true
}, - "no_show_enabled": true,
- "most_recently_visited_company": true,
- "locale": {
- "ui_language": "is",
- "messaging_language": "is",
- "default_currency": {
- "code": "EUR",
- "name": "Euro",
- "symbol": "€"
}
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "payment_provider": "teya"
}, - "event_types": [
- {
- "event_type": {
- "id": "7awdXwZoedakjad37a",
- "title": "Men's haircut",
- "company": "string",
- "minutes": 30,
- "description": "30 minute men's haircut",
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "thumb": "api.noona.is/static/haircut.png",
- "images": [
- {
- "type": "thumbnail",
}
], - "variations": [
- {
- "id": "string",
- "label": "Premium",
- "description": "Premium service with extra attention",
- "customer_group": "7awdXwZoedakjad37a",
- "prices": [
- {
- "currency": "EUR",
- "amount": 40
}
], - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}
}
], - "price_ranges": [
- {
- "min": 10,
- "max": 30,
- "currency": "EUR"
}
], - "connections": {
- "customer_selects": "employee",
- "service_needs": "employee",
- "booking_question": "string",
- "booking_questions": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string"
}
], - "booking_success_message": "Remember to bring your smile with you!",
- "marketplace": true
}, - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "created_at": 1631558908,
- "updated_at": 1631558908,
- "deleted_at": "2019-08-24T14:15:22Z"
}, - "time_slots": [
- {
- "status": "closed",
- "date": "2021-01-03",
- "slots": [
- {
- "time": "08:00",
- "employeeIds": [
- "string"
], - "spaceIds": [
- "string"
]
}
], - "unavailable_slots": [
- {
- "time": "08:00",
- "employeeIds": [
- "string"
], - "spaceIds": [
- "string"
]
}
]
}
]
}
]
}
]
Lists speedy slots, availble for booking, for a specific event type (experience) at a company.
The returned companies are solely within the restaurant vertical.
start_date required | string Example: start_date=2022-11-01 |
end_date required | string Example: end_date=2022-11-03 |
required | object (SpeedyTablesSearchFilter) |
select | Array of strings |
expand | Array of strings |
capacity | integer <int32> Default: 1 Example: capacity=5 |
[- {
- "company": {
- "id": "7dj29KiAE1wdjw731",
- "vertical": "appointment",
- "enterprise": "string",
- "profile": {
- "store_name": "John's Hair Salon",
- "description": "string",
- "favorites": 0,
- "company_types": [
- "string"
], - "cuisines": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "dietaries": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "ambiences": [
- {
- "id": "7awdXwZoedakjad37a",
- "name": "Bistro",
- "readable_id": "bistro",
- "vertical": "appointment",
- "type": "service_type",
- "available": true
}
], - "settings": {
- "license_plate": true
}, - "image": {
- "type": "thumbnail",
}, - "cover_images": [
- {
- "type": "thumbnail",
}
], - "phone_country_code": 354,
- "phone_number": "string",
- "prefer_12_hours": true,
- "price_category": 3,
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "exceed_max_guests_message": "string"
}, - "connections": {
- "multiple_services": true,
- "url_name": "string",
- "contact_email": "string",
- "required_fields": {
- "kennitala": true,
- "email": true
}, - "opening_hours": [
- {
- "opens_at": "08:00",
- "closes_at": "18:00",
- "is_closed": true
}
], - "max_future": 0,
- "min_cancel_notice": 0,
- "location": {
- "google_place_id": "string",
- "formatted_address": "string",
- "lat_lng": {
- "lat": 0,
- "lng": 0
}, - "country": {
- "short_name": "IS",
- "long_name": "Iceland"
}, - "time_zone": "Atlantic/Reykjavik"
}, - "booking_redirect_url": "string",
- "web_auth_opt_out": true,
- "booking_success_message": "string",
- "timatorg": true,
- "enable_vouchers": true,
- "enable_amount_vouchers": true,
- "min_move_notice": 0,
- "waitlist_enabled": true,
- "show_booking_ends_at": true
}, - "no_show_enabled": true,
- "most_recently_visited_company": true,
- "locale": {
- "ui_language": "is",
- "messaging_language": "is",
- "default_currency": {
- "code": "EUR",
- "name": "Euro",
- "symbol": "€"
}
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "payment_provider": "teya"
}, - "event_types": [
- {
- "event_type": {
- "id": "7awdXwZoedakjad37a",
- "title": "Men's haircut",
- "company": "string",
- "minutes": 30,
- "description": "30 minute men's haircut",
- "min_guests_per_booking": 0,
- "max_guests_per_booking": 0,
- "thumb": "api.noona.is/static/haircut.png",
- "images": [
- {
- "type": "thumbnail",
}
], - "variations": [
- {
- "id": "string",
- "label": "Premium",
- "description": "Premium service with extra attention",
- "customer_group": "7awdXwZoedakjad37a",
- "prices": [
- {
- "currency": "EUR",
- "amount": 40
}
], - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}
}
], - "price_ranges": [
- {
- "min": 10,
- "max": 30,
- "currency": "EUR"
}
], - "connections": {
- "customer_selects": "employee",
- "service_needs": "employee",
- "booking_question": "string",
- "booking_questions": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "answer_required": true,
- "answer_type": "string"
}
], - "booking_success_message": "Remember to bring your smile with you!",
- "marketplace": true
}, - "payments": {
- "pre_payment_enabled": true,
- "pre_payment_type": "payment",
- "pre_payment_required": true,
- "pre_payment_min_pax": 1,
- "flat_fee": 100000,
- "pre_payment_ratio": 20,
- "optional_full_payment": true,
- "pre_payment_amount": 2000,
- "optional_pre_payment_amount": 10000,
- "on_location_payment_amount": 8000,
- "on_location_payment_amount_upper_limit": 8000,
- "pre_payment_currency": "ISK",
- "total_payment": 10000,
- "total_payment_upper_limit": 10000
}, - "pending_payment_details": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_required": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "pending_payment_details_full": {
- "outstanding": 2000,
- "on_location": 8000,
- "on_location_upper_limit": 8000,
- "total": 10000,
- "total_upper_limit": 10000
}, - "relative_location": {
- "lat": 0,
- "lng": 0,
- "distance": 0
}, - "created_at": 1631558908,
- "updated_at": 1631558908,
- "deleted_at": "2019-08-24T14:15:22Z"
}, - "time_slots": [
- {
- "status": "closed",
- "date": "2021-01-03",
- "slots": [
- {
- "time": "08:00",
- "employeeIds": [
- "string"
], - "spaceIds": [
- "string"
]
}
], - "unavailable_slots": [
- {
- "time": "08:00",
- "employeeIds": [
- "string"
], - "spaceIds": [
- "string"
]
}
]
}
]
}
]
}
]
Voucher templates are predefined templates that enable a fast creation of vouchers.
Lists all voucher templates.
select | Array of strings |
expand | Array of strings |
object (ListAllVoucherTemplatesFilter) | |
object (Sort) | |
object (Pagination) |
[- {
- "id": "7awdXwZoedakjad37a",
- "type": "amount",
- "title": "Voucher for the men's haircut",
- "description": "Please note that the voucher is only valid between 10:00 and 14:00, Monday to Friday.",
- "marketplace_description": "A short form description displayed on the Noona marketplace.",
- "event_type": "string",
- "variation_id": "7awdXwZoedakjad37a",
- "company": "string",
- "number_of_guests": 2,
- "currency": "ISK",
- "amount": 10000,
- "value": 12500,
- "expiration_months_after_purchase": 12,
- "images": [
- {
- "type": "thumbnail",
}
], - "preview_image": {
- "type": "thumbnail",
}, - "primary_color": "#0f0f0f",
- "sessions_total": 5,
- "is_promoted": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
Lists the voucher templates of a company.
company_id required | string Company ID |
select | Array of strings |
expand | Array of strings |
object (VoucherTemplateFilter) | |
object (Sort) | |
object (Pagination) |
[- {
- "id": "7awdXwZoedakjad37a",
- "type": "amount",
- "title": "Voucher for the men's haircut",
- "description": "Please note that the voucher is only valid between 10:00 and 14:00, Monday to Friday.",
- "marketplace_description": "A short form description displayed on the Noona marketplace.",
- "event_type": "string",
- "variation_id": "7awdXwZoedakjad37a",
- "company": "string",
- "number_of_guests": 2,
- "currency": "ISK",
- "amount": 10000,
- "value": 12500,
- "expiration_months_after_purchase": 12,
- "images": [
- {
- "type": "thumbnail",
}
], - "preview_image": {
- "type": "thumbnail",
}, - "primary_color": "#0f0f0f",
- "sessions_total": 5,
- "is_promoted": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
Gets a voucher template.
voucher_template_id required | string Voucher Template ID |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "type": "amount",
- "title": "Voucher for the men's haircut",
- "description": "Please note that the voucher is only valid between 10:00 and 14:00, Monday to Friday.",
- "marketplace_description": "A short form description displayed on the Noona marketplace.",
- "event_type": "string",
- "variation_id": "7awdXwZoedakjad37a",
- "company": "string",
- "number_of_guests": 2,
- "currency": "ISK",
- "amount": 10000,
- "value": 12500,
- "expiration_months_after_purchase": 12,
- "images": [
- {
- "type": "thumbnail",
}
], - "preview_image": {
- "type": "thumbnail",
}, - "primary_color": "#0f0f0f",
- "sessions_total": 5,
- "is_promoted": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Creates a waitlist entry at a company.
select | Array of strings |
expand | Array of strings |
required | ID (string) or Company (object) |
required | Array of (ID (string) or EventType (string)) or (ID (object) or EventType (object)) |
name | string The name of the person on the waitlist entry. Only needed if the waitlist entry is not created by an authenticated marketplace user. |
string The email of the person on the waitlist entry. Only needed if the waitlist entry is not created by an authenticated marketplace user. | |
phone_country_code | string The country code of the phone number of the person on the waitlist entry. Only needed if the waitlist entry is not created by an authenticated marketplace user. |
phone_number | string The phone number of the person on the waitlist entry. Only needed if the waitlist entry is not created by an authenticated marketplace user. |
ID (string) or Employee (object) (ExpandableEmployee) | |
ID (string) or Resource (object) (ExpandableResource) | |
number_of_guests | integer <int32> Number of guests for the event. |
notes | string |
Array of objects (PreferredTimes) | |
expires_at | string <date-time> Deprecated The date and time when the waitlist entry expires. |
{- "name": "John Doe",
- "email": "john.doe@example.com",
- "phone_country_code": "354",
- "phone_number": "12345678",
- "company": "string",
- "event_types": [
- "string"
], - "employee": "string",
- "resource": "string",
- "number_of_guests": 1,
- "notes": "I can only make it after noon",
- "preferred_times": [
- {
- "date": "2024-10-08",
- "times": [
- "11:00"
]
}
], - "expires_at": "2024-10-08T11:00:00Z"
}
{- "id": "7awdXwZoedakjad37a",
- "company": "string",
- "event_types": [
- "string"
], - "employee": "string",
- "resource": "string",
- "number_of_guests": 1,
- "notes": "I can only make it after noon",
- "preferred_times": [
- {
- "date": "2024-10-08",
- "times": [
- "11:00"
]
}
], - "expires_at": "2024-10-08T11:00:00Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Lists all waitlist entries for user.
select | Array of strings |
expand | Array of strings |
object (WaitlistFilter) |
[- {
- "id": "7awdXwZoedakjad37a",
- "company": "string",
- "event_types": [
- "string"
], - "employee": "string",
- "resource": "string",
- "number_of_guests": 1,
- "notes": "I can only make it after noon",
- "preferred_times": [
- {
- "date": "2024-10-08",
- "times": [
- "11:00"
]
}
], - "expires_at": "2024-10-08T11:00:00Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
Get a waitlist entry by ID.
waitlist_entry_id required | string Waitlist Entry ID |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "company": "string",
- "event_types": [
- "string"
], - "employee": "string",
- "resource": "string",
- "number_of_guests": 1,
- "notes": "I can only make it after noon",
- "preferred_times": [
- {
- "date": "2024-10-08",
- "times": [
- "11:00"
]
}
], - "expires_at": "2024-10-08T11:00:00Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Deletes a waitlist entry by ID.
waitlist_entry_id required | string Waitlist Entry ID |
select | Array of strings |
expand | Array of strings |
{- "type": "generic_error",
- "message": "Time slot is not available."
}
Booking offers are suggestions made to a marketplace user for a specific service at a specific time.
Lists booking offers for the marketplace user.
select | Array of strings |
expand | Array of strings |
object (Sort) | |
object (Pagination) |
[- {
- "id": "7awdXwZoedakjad37a",
- "company": "string",
- "employee": "string",
- "time_slot_reservation": "string",
- "waitlist_entry": "string",
- "is_desired_time": true,
- "message": "We have an opening for your requested service!",
- "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
Retrieves a specific booking offer by ID.
booking_offer_id required | string |
select | Array of strings |
expand | Array of strings |
{- "id": "7awdXwZoedakjad37a",
- "company": "string",
- "employee": "string",
- "time_slot_reservation": "string",
- "waitlist_entry": "string",
- "is_desired_time": true,
- "message": "We have an opening for your requested service!",
- "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
Deletes a specific booking offer by ID.
booking_offer_id required | string |
select | Array of strings |
expand | Array of strings |
{- "type": "generic_error",
- "message": "Time slot is not available."
}