Noona HQ API (0.0.3958)

Overview

Noona provides a powerful REST(y) API that focuses on simplicity and clarity.

  • All API requests must be made over HTTPS. Calls made over plain HTTP will be redirected to HTTPS.

Base Path

https://api.noona.is

The HQ API controls individual companies. A developer writing a plugin for individual hair salons would do so using the HQ API.

Example user: A hair saloon.

Enterprise

Retrieve enterprise

Retrieve the enterprise entity of the current company.

Authorizations:
BearerTokenAuth
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "aqmzX9Cm5tekKecsA",
  • "companies": [
    ],
  • "connections": {
    },
  • "profile": {}
}

Update enterprise

Updates the enterprise containing the users active company.

Authorizations:
BearerTokenAuth
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
object (EnterpriseConnections)
object (EnterpriseProfile)

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "id": "aqmzX9Cm5tekKecsA",
  • "companies": [
    ],
  • "connections": {
    },
  • "profile": {}
}

List enterprise companies

Lists all companies for an enterprise

Authorizations:
BearerTokenAuth
path Parameters
enterprise_id
required
string

Enterprise ID

query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Settlement Accounts

Settlement accounts are used by an enterprise to take payments.

List settlement accounts

Lists the settlement accounts of an enterprise.

Authorizations:
BearerTokenAuth
path Parameters
enterprise_id
required
string

Enterprise ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get settlement account

Retrieves settlement account of an enterprise with ID.

Authorizations:
BearerTokenAuth
path Parameters
enterprise_id
required
string

Enterprise ID

settlement_account_id
required
string

Settlement Account ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "Main account",
  • "description": "I want all the money here!",
  • "ssn": "0503205160",
  • "bank": "0542",
  • "book": "02",
  • "account": "220865",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete settlement account

Deletes a settlement account for an enterprise.

Authorizations:
BearerTokenAuth
path Parameters
enterprise_id
required
string

Enterprise ID

settlement_account_id
required
string

Settlement Account ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

List settlement accounts

Lists the settlement accounts of a user.

Authorizations:
BearerTokenAuth
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Payments

Payments are created by the marketplace when a customer pays for an event, voucher or product.

Payments are bulked and sent to an enterprise as a settlement.

Create a payment

Creates a new payment for a company.

The only payment creation supported through the HQ API is a no-show payment where the following payload is required:

event - An ID reference to the event for which the payment is being created.

reason - A string describing the reason for the payment, in this case noshow.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
reason
required
string <enum>
Value: "noshow"
event
required
string

Responses

Request samples

Content type
application/json
{
  • "reason": "noshow",
  • "event": "7awdXwZoedakjad37a"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "marketplace_user": "string",
  • "customer": "string",
  • "employee": "string",
  • "event": "string",
  • "status": "refunded",
  • "reason": "voucher",
  • "currency": "ISK",
  • "amount": 10000,
  • "settles_to_employee": true,
  • "settled_to": "John The Cutter",
  • "settlement": "7awdXwZoedakjad37a",
  • "refunded_at": "2019-08-24T14:15:22Z",
  • "settled_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

List payments

Lists the payments for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
object (PaymentFilter)
object (Sort)
object (Pagination)
search
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get payment

Get a payment.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
payment_id
required
string

Payment ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "marketplace_user": "string",
  • "customer": "string",
  • "employee": "string",
  • "event": "string",
  • "status": "refunded",
  • "reason": "voucher",
  • "currency": "ISK",
  • "amount": 10000,
  • "settles_to_employee": true,
  • "settled_to": "John The Cutter",
  • "settlement": "7awdXwZoedakjad37a",
  • "refunded_at": "2019-08-24T14:15:22Z",
  • "settled_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update payment

Update a payment.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
payment_id
required
string

Payment ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
ID (string) or CompanyResponse (object) (ExpandableCompany)
ID (string) or MarketplaceUser (object) (ExpandableMarketplaceUser)
ID (string) or Customer (object) (ExpandableCustomer)
ID (string) or Employee (object) (ExpandableEmployee)
ID (string) or Event (object) (ExpandableEvent)
status
string <enum> (PaymentStatus)
Enum: "unsettled" "settled" "refunded" "pending"

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "marketplace_user": "string",
  • "customer": "string",
  • "employee": "string",
  • "event": "string",
  • "status": "refunded"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "marketplace_user": "string",
  • "customer": "string",
  • "employee": "string",
  • "event": "string",
  • "status": "refunded",
  • "reason": "voucher",
  • "currency": "ISK",
  • "amount": 10000,
  • "settles_to_employee": true,
  • "settled_to": "John The Cutter",
  • "settlement": "7awdXwZoedakjad37a",
  • "refunded_at": "2019-08-24T14:15:22Z",
  • "settled_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Send payment receipt

Sends a payment receipt to the specified email address.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
payment_id
required
string

Payment ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
email
string

Responses

Request samples

Content type
application/json
{
  • "email": "example@example.is"
}

Download payment receipt

Downloads a payment receipt.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
payment_id
required
string

Payment ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Settlements

Settlements are the sum of multiple payments that the company has received via different sales channels.

Settlements are transferred to the enterprise's settlement account on a weekly basis.

List settlements

Lists the settlements for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
object (SettlementFilter)
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Voucher Templates

Voucher templates are predefined templates that enable a fast creation of vouchers.

List voucher templates

Lists the voucher templates for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
object (VoucherTemplateFilter)
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create voucher template

Creates a voucher template for company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
company
required
string
currency
required
string
amount
required
number <double> >= 1
type
string
Enum: "amount" "service"
title
string
description
string
marketplace_description
string
ID (string) or EventType (object)
variation_id
string

The ID of the event type variation that the value of the voucher should be calculated from.

number_of_guests
integer <int32>
Default: 1

The number of people this voucher is valid for.

value
number <double>
sessions_total
integer <int32>
marketplace
boolean

If true, voucher is visible on the marketplace.

expiration_months_after_purchase
integer <int32>
Default: 48
Array of objects (Images)
primary_color
string

Responses

Request samples

Content type
application/json
{
  • "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": "7awdXwZoedakjad37a",
  • "number_of_guests": 2,
  • "currency": "ISK",
  • "amount": 10000,
  • "value": 12500,
  • "sessions_total": 5,
  • "marketplace": true,
  • "expiration_months_after_purchase": 12,
  • "images": [],
  • "primary_color": "#0f0f0f"
}

Response samples

Content type
application/json
{
  • "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": "7awdXwZoedakjad37a",
  • "number_of_guests": 2,
  • "currency": "ISK",
  • "amount": 10000,
  • "value": 12500,
  • "sessions_total": 5,
  • "marketplace": true,
  • "expiration_months_after_purchase": 12,
  • "images": [],
  • "primary_color": "#0f0f0f",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get voucher template

Gets a single voucher template.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
voucher_template_id
required
string

Voucher Template ID

query Parameters
select
Array of strings

Responses

Response samples

Content type
application/json
{
  • "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": "7awdXwZoedakjad37a",
  • "number_of_guests": 2,
  • "currency": "ISK",
  • "amount": 10000,
  • "value": 12500,
  • "sessions_total": 5,
  • "marketplace": true,
  • "expiration_months_after_purchase": 12,
  • "images": [],
  • "primary_color": "#0f0f0f",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update voucher template

Updates a voucher template at enterprise.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
voucher_template_id
required
string

Voucher Template ID

query Parameters
select
Array of strings
Request Body schema: application/json
type
string
Enum: "amount" "service"
title
string
description
string
marketplace_description
string
number_of_guests
integer <int32>
Default: 1

The number of people this voucher is valid for.

amount
number <double> >= 1
value
number <double>
sessions_total
integer <int32>
marketplace
boolean

If true, voucher is visible on the marketplace.

expiration_months_after_purchase
integer <int32>
Default: 48
Array of objects (Images)
primary_color
string

Responses

Request samples

Content type
application/json
{
  • "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": "7awdXwZoedakjad37a",
  • "number_of_guests": 2,
  • "currency": "ISK",
  • "amount": 10000,
  • "value": 12500,
  • "sessions_total": 5,
  • "marketplace": true,
  • "expiration_months_after_purchase": 12,
  • "images": [],
  • "primary_color": "#0f0f0f"
}

Response samples

Content type
application/json
{
  • "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": "7awdXwZoedakjad37a",
  • "number_of_guests": 2,
  • "currency": "ISK",
  • "amount": 10000,
  • "value": 12500,
  • "sessions_total": 5,
  • "marketplace": true,
  • "expiration_months_after_purchase": 12,
  • "images": [],
  • "primary_color": "#0f0f0f",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete voucher template

Deletes a voucher template at enterprise.

It is only possible to delete voucher templates that have not been used to create vouchers.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
voucher_template_id
required
string

Voucher Template ID

query Parameters
select
Array of strings

Responses

Get voucher template preview

Retrieves a preview of a voucher template.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Responses

Vouchers

Vouchers are purchased through the marketplace and can be used to pay for a service at an enterprise.

List vouchers

Lists the vouchers for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
object (VoucherFilter)
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get voucher

Retrieves voucher with ID from enterprise.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
voucher_id
required
string

Voucher ID

query Parameters
select
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "currency": "ISK",
  • "amount": 3990,
  • "data": {
    },
  • "code": "A328DB",
  • "color": "#0f0f0f",
  • "message": "You deserve to relax a bit!",
  • "status": "never_used",
  • "phone_country_code": "354",
  • "phone_number": "7134124",
  • "email": "test@testy.is",
  • "marketplace_user": "string",
  • "customer": "string",
  • "company": "string",
  • "template": "string",
  • "expiration": "2022-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deleted_at": "2019-08-24T14:15:22Z"
}

Update voucher

Updates a voucher with ID at enterprise.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
voucher_id
required
string

Voucher ID

query Parameters
select
Array of strings
unset
Array of strings <enum> (VoucherFields)
Items Value: "customer"
Request Body schema: application/json
currency
string
amount
number <double>
any (VoucherData)
color
string
message
string
phone_country_code
string
phone_number
string

If a phone number is provided, it receives news of the newly created voucher.

email
string

If an email is provided, it receives news of the newly created voucher.

ID (string) or MarketplaceUser (object) (ExpandableMarketplaceUser)
ID (string) or Customer (object) (ExpandableCustomer)
ID (string) or CompanyResponse (object) (ExpandableCompany)
ID (string) or VoucherTemplate (object) (ExpandableVoucherTemplate)

Responses

Request samples

Content type
application/json
{
  • "currency": "ISK",
  • "amount": 3990,
  • "data": {
    },
  • "color": "#0f0f0f",
  • "message": "You deserve to relax a bit!",
  • "phone_country_code": "354",
  • "phone_number": "7134124",
  • "email": "test@testy.is",
  • "marketplace_user": "string",
  • "customer": "string",
  • "company": "string",
  • "template": "string"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "currency": "ISK",
  • "amount": 3990,
  • "data": {
    },
  • "code": "A328DB",
  • "color": "#0f0f0f",
  • "message": "You deserve to relax a bit!",
  • "status": "never_used",
  • "phone_country_code": "354",
  • "phone_number": "7134124",
  • "email": "test@testy.is",
  • "marketplace_user": "string",
  • "customer": "string",
  • "company": "string",
  • "template": "string",
  • "expiration": "2022-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deleted_at": "2019-08-24T14:15:22Z"
}

Delete voucher

Deletes a voucher with ID

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
voucher_id
required
string

Voucher ID

query Parameters
select
Array of strings

Responses

Send a voucher notification

Sends a voucher notification to the specified recipient.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
voucher_id
required
string

Voucher ID

query Parameters
select
Array of strings
Request Body schema: application/json
email
string

Email to send voucher to.

Responses

Request samples

Content type
application/json
{
  • "email": "test@testy.is"
}

Companies

List all companies

Lists all companies user has access to.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a company

Creates a new company within the current enterprise. The new company will inherit every needed property not required by the request body definition, from the current active company.

Authorizations:
BearerTokenAuth
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
vertical
required
string
Enum: "appointment" "restaurant"
name
required
string
required
object (CompanyProfileCreate)
required
object (LocationCreate)
ID (string) or Enterprise (object) (ExpandableEnterprise)
object (CompanyMarketplace)
object (CompanyMessaging)
object (CompanyDefaultCurrency)
object (PaymentSettings)
object (VoucherSettings)
object (POSSettings)
last_active_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "vertical": "appointment",
  • "enterprise": "string",
  • "name": "Noonacuts",
  • "profile": {
    },
  • "marketplace": {
    },
  • "messaging": {
    },
  • "location": {
    },
  • "currency": {
    },
  • "payments": {
    },
  • "vouchers": {
    },
  • "pos": {
    },
  • "last_active_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "QwYwhN8HH2CaFtwiW",
  • "vertical": "appointment",
  • "enterprise": "string",
  • "name": "Noonacuts",
  • "phone_country_code": "string",
  • "phone_number": "string",
  • "profile": {
    },
  • "marketplace": {
    },
  • "messaging": {
    },
  • "location": {
    },
  • "currency": {
    },
  • "locale": {
    },
  • "checkin": {
    },
  • "payments": {
    },
  • "payment_fees": {
    },
  • "vouchers": {
    },
  • "pos": {
    },
  • "adyen": {
    },
  • "signup": {
    },
  • "last_active_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a company

Updates a company by ID.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
ID (string) or Enterprise (object) (ExpandableEnterprise)
name
string
object (CompanyProfile)
object (CompanyMarketplace)
object (CompanyMessaging)
object (Location)
object (PaymentSettings)
object (VoucherSettings)
object (POSSettings)
last_active_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "vertical": "appointment",
  • "enterprise": "string",
  • "name": "Noonacuts",
  • "profile": {
    },
  • "marketplace": {
    },
  • "messaging": {
    },
  • "location": {
    },
  • "currency": {
    },
  • "payments": {
    },
  • "vouchers": {
    },
  • "pos": {
    },
  • "last_active_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "QwYwhN8HH2CaFtwiW",
  • "vertical": "appointment",
  • "enterprise": "string",
  • "name": "Noonacuts",
  • "phone_country_code": "string",
  • "phone_number": "string",
  • "profile": {
    },
  • "marketplace": {
    },
  • "messaging": {
    },
  • "location": {
    },
  • "currency": {
    },
  • "locale": {
    },
  • "checkin": {
    },
  • "payments": {
    },
  • "payment_fees": {
    },
  • "vouchers": {
    },
  • "pos": {
    },
  • "adyen": {
    },
  • "signup": {
    },
  • "last_active_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get company

Retrieves company with ID.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "QwYwhN8HH2CaFtwiW",
  • "vertical": "appointment",
  • "enterprise": "string",
  • "name": "Noonacuts",
  • "phone_country_code": "string",
  • "phone_number": "string",
  • "profile": {
    },
  • "marketplace": {
    },
  • "messaging": {
    },
  • "location": {
    },
  • "currency": {
    },
  • "locale": {
    },
  • "checkin": {
    },
  • "payments": {
    },
  • "payment_fees": {
    },
  • "vouchers": {
    },
  • "pos": {
    },
  • "adyen": {
    },
  • "signup": {
    },
  • "last_active_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

List opening hours

Lists opening hours of a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (OpeningHourFilter)

Filtering

Date range must be less than a year.

object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
{
  • "2020-08-24": [
    ]
}

Rule Sets

Rule sets are used to define the behavior of the system. Multiple rules of the same type can be active at the same time within a single rule set, but but can not overlap.

Multiple rule sets can be active at the same time, in that case the rules take priority according to the overlapping rules chapter below.

List of rules

  • availability

    Specifies when company is open or closed for business. By default a business is closed.

  • online_bookings

    Specifies when company accepts online bookings. Can be tied to specific entities.

  • max_total_pax

    Specifies the maximum number of people that can be booked at the same time.

Overlapping rules

If 2 or more rule sets are active during the same period, the comparison is done in the following order:

  1. The rule set with fewer instances (according to the RRule, or the lack of one) takes priority.
  2. If the rule sets have the same number of instances, the rule set with the shorter time period takes priority. (The time period is defined by the starts_at and ends_at of the rule set.)
  3. If the rule sets have the same number of instances and the same time period, the rule set that was most recently updated takes priority.

The priority attribute can be used to override the default priority.

Rules with a priority set will always take precedence over rules without a priority set.

Lower priority values take precedence over higher priority values.

Associated Entities

Rules can be divided into two categories:

  1. General rules
  2. Rules tied to certain entities

Entities:

  • Event Types
  • Resources
  • Employees

When a rule is tied to entities, it will only affect the entities it is tied to. This is achieved through the following attributes, using resources as an example:

  • resources - A list of resource IDs.
  • association - The association type. Can be either include or exclude.

Examples


{
  resources: ["id-1", "id-2"],
  association: "includes",
}

This rule is only applicable to resources with the IDs id-1 and id-2.


{
  resources: ["id-1", "id-2"],
  association: "excludes",
}

This rule is applicable to all resources except those with the IDs id-1 and id-2.


{
  resources: [],
  association: "excludes",
}

This rule is applicable to all resources.


Interval

The interval of a rule set is defined by the starts_at and ends_at attributes.

By default, rules in a set are active in that interval but each rule can overwrite the starts_at and ends_at attributes to define a custom interval.

A rule can however not extend beyond the interval of the rule set.

List all rule sets

Lists all rule sets of a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (RuleSetFilter)
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a rule set

Creates a rule set for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
required
ID (string) or CompanyResponse (string)
date
required
string

The date of the rule set.

For recurring rule sets, this is the date where the recurrance rule starts.

starts_at
required
string

Start time

ends_at
required
string

End time

rrule
string

RRULE string.

The dtstart property is ignored, and the date attribute of the rule set is used to define the beginnin of the reccurence.

rule_set_template_id
string

The template that was used to create this rule set

title
string
priority
integer <int32>

Lower numbers have higher priority.

This can be used to explicitly overwrite certain rules on dates where multiple rules apply.

Array of AvailabilityRule (object) or OnlineBookingsRule (object) or MaxTotalPaxRule (object) or EventTypeDurationRule (object) or PrePaymentRule (object) or CustomMessageRule (object) (Rules)

Responses

Request samples

Content type
application/json
{
  • "date": "2020-08-24",
  • "rrule": "string",
  • "rule_set_template_id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "title": "string",
  • "starts_at": "11:00",
  • "ends_at": "13:00",
  • "priority": 1,
  • "rules": [
    ]
}

Response samples

Content type
application/json
{
  • "date": "2020-08-24",
  • "rrule": "string",
  • "rule_set_template_id": "7awdXwZoedakjad37a",
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "title": "string",
  • "starts_at": "11:00",
  • "ends_at": "13:00",
  • "priority": 1,
  • "rules": [
    ],
  • "future_instance_count": 1,
  • "next_instance": "2020-08-24",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Retrieve a rule set

Retrieves information about a rule set.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
rule_set_id
required
string

Rule Set ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "date": "2020-08-24",
  • "rrule": "string",
  • "rule_set_template_id": "7awdXwZoedakjad37a",
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "title": "string",
  • "starts_at": "11:00",
  • "ends_at": "13:00",
  • "priority": 1,
  • "rules": [
    ],
  • "future_instance_count": 1,
  • "next_instance": "2020-08-24",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a rule set

Updates a rule set at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
rule_set_id
required
string

Rule Set ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
date
string

The date of the rule set.

For recurring rule sets, this is the date where the recurrance rule starts.

rrule
string

RRULE string.

The dtstart property is ignored, and the date attribute of the rule set is used to define the beginnin of the reccurence.

title
string
starts_at
string

Start time

ends_at
string

End time

priority
integer <int32>

Lower numbers have higher priority.

This can be used to explicitly overwrite certain rules on dates where multiple rules apply.

Array of AvailabilityRule (object) or OnlineBookingsRule (object) or MaxTotalPaxRule (object) or EventTypeDurationRule (object) or PrePaymentRule (object) or CustomMessageRule (object) (Rules)

Responses

Request samples

Content type
application/json
{
  • "date": "2020-08-24",
  • "rrule": "string",
  • "rule_set_template_id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "title": "string",
  • "starts_at": "11:00",
  • "ends_at": "13:00",
  • "priority": 1,
  • "rules": [
    ]
}

Response samples

Content type
application/json
{
  • "date": "2020-08-24",
  • "rrule": "string",
  • "rule_set_template_id": "7awdXwZoedakjad37a",
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "title": "string",
  • "starts_at": "11:00",
  • "ends_at": "13:00",
  • "priority": 1,
  • "rules": [
    ],
  • "future_instance_count": 1,
  • "next_instance": "2020-08-24",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a rule set

Deletes a rule set at company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
rule_set_id
required
string
Example: dwawd8awudawd

Rule Set ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Rule Set Templates

Rule Set Templates offer a quick way to create rule sets with predefined rules.

List all rule set templates

Lists all rule set templates of a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a rule set template

Creates a rule set template for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
required
ID (string) or CompanyResponse (string)
starts_at
required
string

Start time

ends_at
required
string

End time

title
string
priority
integer <int32>

Lower numbers have higher priority.

This can be used to explicitly overwrite certain rules on dates where multiple rules apply.

Array of AvailabilityRule (object) or OnlineBookingsRule (object) or MaxTotalPaxRule (object) or EventTypeDurationRule (object) or PrePaymentRule (object) or CustomMessageRule (object) (Rules)

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "title": "string",
  • "starts_at": "11:00",
  • "ends_at": "13:00",
  • "priority": 1,
  • "rules": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "title": "string",
  • "starts_at": "11:00",
  • "ends_at": "13:00",
  • "priority": 1,
  • "rules": [
    ],
  • "future_instance_count": 1,
  • "next_instance": "2020-08-24",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Retrieve a rule set template

Retrieves information about a rule set template.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
rule_set_template_id
required
string

Rule Set Template ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "title": "string",
  • "starts_at": "11:00",
  • "ends_at": "13:00",
  • "priority": 1,
  • "rules": [
    ],
  • "future_instance_count": 1,
  • "next_instance": "2020-08-24",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a rule set template

Updates a rule set template at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
rule_set_template_id
required
string

Rule Set Template ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
title
string
starts_at
string

Start time

ends_at
string

End time

priority
integer <int32>

Lower numbers have higher priority.

This can be used to explicitly overwrite certain rules on dates where multiple rules apply.

Array of AvailabilityRule (object) or OnlineBookingsRule (object) or MaxTotalPaxRule (object) or EventTypeDurationRule (object) or PrePaymentRule (object) or CustomMessageRule (object) (Rules)

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "title": "string",
  • "starts_at": "11:00",
  • "ends_at": "13:00",
  • "priority": 1,
  • "rules": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "title": "string",
  • "starts_at": "11:00",
  • "ends_at": "13:00",
  • "priority": 1,
  • "rules": [
    ],
  • "future_instance_count": 1,
  • "next_instance": "2020-08-24",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a rule set template

Deletes a rule set template at company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
rule_set_template_id
required
string
Example: dwawd8awudawd

Rule Set Template ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Event Types

Event Types describe the different services a company offers.

List event types

Retrieves all event types for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get event type

Retrieves event type by ID

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
event_type_id
required
string

Event Type ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "reference_id": "external-service-id",
  • "company_id": "831dXwZoedakjad40b",
  • "company": "string",
  • "event_type_category": "string",
  • "event_type_category_group": "string",
  • "title": "Men's haircut",
  • "duration": 30,
  • "delay": 30,
  • "beforePause": 30,
  • "pause": 30,
  • "afterPause": 30,
  • "buffer_after_service": 10,
  • "description": "30 minute men's haircut",
  • "min_guests_per_booking": 0,
  • "max_guests_per_booking": 0,
  • "images": [],
  • "color": "#66d8cd",
  • "overbookable": "partially_overbookable",
  • "vat": "string",
  • "variations": [
    ],
  • "price_ranges": [
    ],
  • "connections": {
    },
  • "custom_payment_settings": true,
  • "payments": {
    },
  • "price": {
    },
  • "tax_exemption_reason": "string",
  • "created_at": "2019-01-01T00:00:00.000Z",
  • "updated_at": "2019-01-02T00:00:00.000Z"
}

Update event type

Updates event type by ID

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
event_type_id
required
string

Event Type ID

query Parameters
select
Array of strings
expand
Array of strings
unset
Array of strings <enum> (EventTypeFields)
Items Enum: "payments" "buffer_after_service" "min_guests_per_booking" "max_guests_per_booking" "color"
Request Body schema: application/json
reference_id
string

An ID that can be used to reference the event type in an external system. This ID is not used by Noona and is not guaranteed to be unique.

company_id
string
Deprecated

Deprecated, please use company instead

ID (string) or CompanyResponse (object) (ExpandableCompany)
ID (string) or EventTypeCategory (object) (ExpandableEventTypeCategory)
ID (string) or EventTypeCategoryGroup (object) (ExpandableEventTypeCategoryGroup)
title
string
duration
integer <int32>

Duration of the event type

delay
integer <int32>

Delay in minutes from event start time

beforePause
integer <int32>

The event duration before the pause

pause
integer <int32>

The pause duration

afterPause
integer <int32>

The event duration after the pause

buffer_after_service
integer <int32>

How many minutes of buffer the service needs after it ends. This does not affect the duration of the event shown to customers but is considered when calculating timeslots.

description
string
min_guests_per_booking
integer <int32>
max_guests_per_booking
integer <int32>
thumb
string
Deprecated

Use images instead.

image
string
Deprecated

Use images instead.

Array of objects (Images)
color
string

Color code for the event

overbookable
string <enum>
Enum: "not_overbookable" "partially_overbookable" "fully_overbookable"

How event is overbookable

ID (string) or VAT (object) (ExpandableVAT)
Array of objects (EventTypeVariations)
Array of objects (EventTypePriceRanges)
object (EventTypeConnections)
custom_payment_settings
boolean
Deprecated

By providing a payments object this is implicitly true.

By using the unset query parameter and passing in the payments key this is implicitly false.

object (PaymentSettings)
tax_exemption_reason
string

The reason for tax exemption. This is only used if the event type is tax exempt. If the event type is not tax exempt, this field is ignored.

Responses

Request samples

Content type
application/json
{
  • "reference_id": "external-service-id",
  • "company_id": "831dXwZoedakjad40b",
  • "company": "string",
  • "event_type_category": "string",
  • "event_type_category_group": "string",
  • "title": "Men's haircut",
  • "duration": 30,
  • "delay": 30,
  • "beforePause": 30,
  • "pause": 30,
  • "afterPause": 30,
  • "buffer_after_service": 10,
  • "description": "30 minute men's haircut",
  • "min_guests_per_booking": 0,
  • "max_guests_per_booking": 0,
  • "images": [],
  • "color": "#66d8cd",
  • "overbookable": "partially_overbookable",
  • "vat": "string",
  • "variations": [
    ],
  • "price_ranges": [
    ],
  • "connections": {
    },
  • "custom_payment_settings": true,
  • "payments": {
    },
  • "tax_exemption_reason": "string"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "reference_id": "external-service-id",
  • "company_id": "831dXwZoedakjad40b",
  • "company": "string",
  • "event_type_category": "string",
  • "event_type_category_group": "string",
  • "title": "Men's haircut",
  • "duration": 30,
  • "delay": 30,
  • "beforePause": 30,
  • "pause": 30,
  • "afterPause": 30,
  • "buffer_after_service": 10,
  • "description": "30 minute men's haircut",
  • "min_guests_per_booking": 0,
  • "max_guests_per_booking": 0,
  • "images": [],
  • "color": "#66d8cd",
  • "overbookable": "partially_overbookable",
  • "vat": "string",
  • "variations": [
    ],
  • "price_ranges": [
    ],
  • "connections": {
    },
  • "custom_payment_settings": true,
  • "payments": {
    },
  • "price": {
    },
  • "tax_exemption_reason": "string",
  • "created_at": "2019-01-01T00:00:00.000Z",
  • "updated_at": "2019-01-02T00:00:00.000Z"
}

Delete event type

Deletes event type by ID

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
event_type_id
required
string

Event Type ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Create event type

Creates an event type

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
company_id
required
string
Deprecated

Deprecated, please use company instead

required
ID (string) or VAT (object) (ExpandableVAT)
title
required
string
duration
required
integer <int32>

Duration of the event type

reference_id
string

An ID that can be used to reference the event type in an external system. This ID is not used by Noona and is not guaranteed to be unique.

ID (string) or CompanyResponse (object) (ExpandableCompany)
ID (string) or EventTypeCategory (object) (ExpandableEventTypeCategory)
ID (string) or EventTypeCategoryGroup (object) (ExpandableEventTypeCategoryGroup)
delay
integer <int32>

Delay in minutes from event start time

beforePause
integer <int32>

The event duration before the pause

pause
integer <int32>

The pause duration

afterPause
integer <int32>

The event duration after the pause

buffer_after_service
integer <int32>

How many minutes of buffer the service needs after it ends. This does not affect the duration of the event shown to customers but is considered when calculating timeslots.

description
string
min_guests_per_booking
integer <int32>
max_guests_per_booking
integer <int32>
thumb
string
Deprecated

Use images instead.

image
string
Deprecated

Use images instead.

Array of objects (Images)
color
string

Color code for the event

overbookable
string <enum>
Enum: "not_overbookable" "partially_overbookable" "fully_overbookable"

How event is overbookable

Array of objects (EventTypeVariations)
Array of objects (EventTypePriceRanges)
object (EventTypeConnections)
custom_payment_settings
boolean
Deprecated

By providing a payments object this is implicitly true.

By using the unset query parameter and passing in the payments key this is implicitly false.

object (PaymentSettings)
tax_exemption_reason
string

The reason for tax exemption. This is only used if the event type is tax exempt. If the event type is not tax exempt, this field is ignored.

Responses

Request samples

Content type
application/json
{
  • "reference_id": "external-service-id",
  • "company_id": "831dXwZoedakjad40b",
  • "company": "string",
  • "event_type_category": "string",
  • "event_type_category_group": "string",
  • "title": "Men's haircut",
  • "duration": 30,
  • "delay": 30,
  • "beforePause": 30,
  • "pause": 30,
  • "afterPause": 30,
  • "buffer_after_service": 10,
  • "description": "30 minute men's haircut",
  • "min_guests_per_booking": 0,
  • "max_guests_per_booking": 0,
  • "images": [],
  • "color": "#66d8cd",
  • "overbookable": "partially_overbookable",
  • "vat": "string",
  • "variations": [
    ],
  • "price_ranges": [
    ],
  • "connections": {
    },
  • "custom_payment_settings": true,
  • "payments": {
    },
  • "tax_exemption_reason": "string"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "reference_id": "external-service-id",
  • "company_id": "831dXwZoedakjad40b",
  • "company": "string",
  • "event_type_category": "string",
  • "event_type_category_group": "string",
  • "title": "Men's haircut",
  • "duration": 30,
  • "delay": 30,
  • "beforePause": 30,
  • "pause": 30,
  • "afterPause": 30,
  • "buffer_after_service": 10,
  • "description": "30 minute men's haircut",
  • "min_guests_per_booking": 0,
  • "max_guests_per_booking": 0,
  • "images": [],
  • "color": "#66d8cd",
  • "overbookable": "partially_overbookable",
  • "vat": "string",
  • "variations": [
    ],
  • "price_ranges": [
    ],
  • "connections": {
    },
  • "custom_payment_settings": true,
  • "payments": {
    },
  • "price": {
    },
  • "tax_exemption_reason": "string",
  • "created_at": "2019-01-01T00:00:00.000Z",
  • "updated_at": "2019-01-02T00:00:00.000Z"
}

Stream event types

Streams event types for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Event Type Groups

Event Type Groups are used to group event types into categories. A haircut might, for example, belong to an event type group titled "Haircuts".

Event types can reside in multiple event type groups simultaneously.

List event type groups

Retrieves all event type groups for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get event type group

Retrieves event type group by ID

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
event_type_group_id
required
string

Event Type Group ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "parent_event_type_group": "string",
  • "title": "Haircuts",
  • "order": 1,
  • "is_default_group": true,
  • "ordered_event_types": [
    ]
}

Stream event type groups

Streams event type groups for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Event Type Category Groups

Event Type Category Groups are top level grouping of event type categoires. An example of event type category group is Barbering and event type categories in that group could be Men's haircut and Beard Trimming.

List all event type category groups

Lists all even type category groups

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Event Type Categories

Event Type Categories are used to group event types into categories. An example of an event type category is Men's haircut which is in the event type category group Barbering.

List all event type categories

Lists all even type categories

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Employees

Employees are the individuals that work at a company and provide services to customers.

An employee is a HQ user in the context of a company. A HQ user can be an employee at multiple companies.

The employee resource describes that company specific data for the HQ user.

List all employees

Lists all employees of a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
search
string
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an employee

Creates an employee for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
company_id
string
Deprecated

Use company instead

ID (string) or CompanyResponse (object) (ExpandableCompany)
name
string
description
string
object (Image)
email
string
order
integer <int32>

The order of the employee in the list of employees on the marketplace.

object (EmployeeMarketplaceSettings)
object (EmployeeNotificationSettings)
Array of objects (EventTypePreferences)
ID (string) or Role (object) (ExpandableRole)
available_for_bookings
boolean

Whether the employee is visible on the calendar

object (EmployeeCommissions)
disabled_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "company_id": "98aDWa8da9wda9dwa8",
  • "company": "string",
  • "name": "Noony Adams",
  • "description": "Noony is a great employee",
  • "image": {},
  • "email": "example@example.com",
  • "order": 1,
  • "marketplace": {
    },
  • "notifications": {
    },
  • "event_type_preferences": [
    ],
  • "role": "string",
  • "available_for_bookings": true,
  • "settlement_account": "string",
  • "commissions": {
    },
  • "disabled_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "7awdXawZoolkjad37a",
  • "company_id": "98aDWa8da9wda9dwa8",
  • "company": "string",
  • "name": "Noony Adams",
  • "description": "Noony is a great employee",
  • "image": {},
  • "email": "example@example.com",
  • "email_verified": true,
  • "order": 1,
  • "marketplace": {
    },
  • "notifications": {
    },
  • "event_type_preferences": [
    ],
  • "role": "string",
  • "pending_owner_approval": false,
  • "available_for_bookings": true,
  • "settlement_account": "string",
  • "connected_to_teya": true,
  • "adyen": {
    },
  • "commissions": {
    },
  • "disabled_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Retrieve an employee

Retrieves information about an existing employee.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
employee_id
required
string

Employee ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXawZoolkjad37a",
  • "company_id": "98aDWa8da9wda9dwa8",
  • "company": "string",
  • "name": "Noony Adams",
  • "description": "Noony is a great employee",
  • "image": {},
  • "email": "example@example.com",
  • "email_verified": true,
  • "order": 1,
  • "marketplace": {
    },
  • "notifications": {
    },
  • "event_type_preferences": [
    ],
  • "role": "string",
  • "pending_owner_approval": false,
  • "available_for_bookings": true,
  • "settlement_account": "string",
  • "connected_to_teya": true,
  • "adyen": {
    },
  • "commissions": {
    },
  • "disabled_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update an employee

Updates an employee at a company.

Partially implemented, only supports updating:

  • event_type_preferences
  • pre_payments_enabled
  • own_settlements_preferred
  • own_settlements_allowed
  • commissions
Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
employee_id
required
string
Example: dwawd8awudawd

Employee ID

query Parameters
select
Array of strings
expand
Array of strings
unset
Array of strings <enum> (EmployeeFields)
Items Value: "disabled_at"
Request Body schema: application/json
company_id
string
Deprecated

Use company instead

ID (string) or CompanyResponse (object) (ExpandableCompany)
name
string
description
string
object (Image)
email
string
order
integer <int32>

The order of the employee in the list of employees on the marketplace.

object (EmployeeMarketplaceSettings)
object (EmployeeNotificationSettings)
Array of objects (EventTypePreferences)
ID (string) or Role (object) (ExpandableRole)
available_for_bookings
boolean

Whether the employee is visible on the calendar

object (EmployeeCommissions)
disabled_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "company_id": "98aDWa8da9wda9dwa8",
  • "company": "string",
  • "name": "Noony Adams",
  • "description": "Noony is a great employee",
  • "image": {},
  • "email": "example@example.com",
  • "order": 1,
  • "marketplace": {
    },
  • "notifications": {
    },
  • "event_type_preferences": [
    ],
  • "role": "string",
  • "available_for_bookings": true,
  • "settlement_account": "string",
  • "commissions": {
    },
  • "disabled_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "7awdXawZoolkjad37a",
  • "company_id": "98aDWa8da9wda9dwa8",
  • "company": "string",
  • "name": "Noony Adams",
  • "description": "Noony is a great employee",
  • "image": {},
  • "email": "example@example.com",
  • "email_verified": true,
  • "order": 1,
  • "marketplace": {
    },
  • "notifications": {
    },
  • "event_type_preferences": [
    ],
  • "role": "string",
  • "pending_owner_approval": false,
  • "available_for_bookings": true,
  • "settlement_account": "string",
  • "connected_to_teya": true,
  • "adyen": {
    },
  • "commissions": {
    },
  • "disabled_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete employee

Deletes an employee at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
employee_id
required
string

Employee ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Stream employees

Streams employees for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Resources

Resources that might be required for a service. For example, a massage parlor might have a resource called "Massage Room 1".

An Event Type might then require a resource and an employee to be available in order to be bookable at a certain time.

List all resources

Lists all resources of a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
search
string
object (Sort)
object (Pagination)
object (ResourcesFilter)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a resource

Creates a resource for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
id
string
ID (string) or CompanyResponse (object) (ExpandableCompany)
ID (string) or ResourceGroup (object) (ExpandableResourceGroup)
type
string <enum> (ResourceType)
Enum: "space" "table" "table_combination"
name
string
description
string
priority
string <enum> (ResourcePriority)
Enum: "normal" "high"

Controls the priority of the resource when being randomly selected in the booking process.

object (Image)
marketplace
boolean

If true, resource is visible on the marketplace.

available_for_bookings
boolean

Whether the resource is visible on the calendar

booking_interval
integer <int32> (BookingInterval)
Default: 5
Enum: 5 10 15 20 30 45 50 60 75 90 120 160 180

Booking interval in minutes.

Dictates how often customers can book events with employee or resource.

A booking interval of 15 would render results like: 10:00 10:15 10:30.

A booking interval is set on the company level but can be overridden on the resource/employee level.

order
integer <int32>

The order of the resource in the list of resources on the marketplace and in the HQ UI.

min_capacity
integer <int32>

The mininum capacity of the resource, for example how many people can occupy a table at minimum.

max_capacity
integer <int32>

The maximum capacity of the resource, for example how many people can occupy a table at maximum.

sub_resources
Array of strings
Array of objects (EventTypePreferences)

Responses

Request samples

Content type
application/json
{
  • "id": "7dj29KiAE1wdjw731",
  • "company": "string",
  • "resource_group": "string",
  • "type": "space",
  • "name": "Table 1",
  • "description": "A good window view",
  • "priority": "normal",
  • "image": {},
  • "marketplace": true,
  • "available_for_bookings": true,
  • "booking_interval": 15,
  • "order": 1,
  • "min_capacity": 1,
  • "max_capacity": 2,
  • "sub_resources": [
    ],
  • "event_type_preferences": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "7dj29KiAE1wdjw731",
  • "company": "string",
  • "resource_group": "string",
  • "type": "space",
  • "name": "Table 1",
  • "description": "A good window view",
  • "priority": "normal",
  • "image": {},
  • "marketplace": true,
  • "available_for_bookings": true,
  • "booking_interval": 15,
  • "order": 1,
  • "min_capacity": 1,
  • "max_capacity": 2,
  • "sub_resources": [
    ],
  • "event_type_preferences": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Retrieve a resource

Retrieves information about an existing resource.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
resource_id
required
string

Resource ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7dj29KiAE1wdjw731",
  • "company": "string",
  • "resource_group": "string",
  • "type": "space",
  • "name": "Table 1",
  • "description": "A good window view",
  • "priority": "normal",
  • "image": {},
  • "marketplace": true,
  • "available_for_bookings": true,
  • "booking_interval": 15,
  • "order": 1,
  • "min_capacity": 1,
  • "max_capacity": 2,
  • "sub_resources": [
    ],
  • "event_type_preferences": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a resource

Updates a resource at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
resource_id
required
string
Example: dwawd8awudawd

Refundesource ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
id
string
ID (string) or CompanyResponse (object) (ExpandableCompany)
ID (string) or ResourceGroup (object) (ExpandableResourceGroup)
type
string <enum> (ResourceType)
Enum: "space" "table" "table_combination"
name
string
description
string
priority
string <enum> (ResourcePriority)
Enum: "normal" "high"

Controls the priority of the resource when being randomly selected in the booking process.

object (Image)
marketplace
boolean

If true, resource is visible on the marketplace.

available_for_bookings
boolean

Whether the resource is visible on the calendar

booking_interval
integer <int32> (BookingInterval)
Default: 5
Enum: 5 10 15 20 30 45 50 60 75 90 120 160 180

Booking interval in minutes.

Dictates how often customers can book events with employee or resource.

A booking interval of 15 would render results like: 10:00 10:15 10:30.

A booking interval is set on the company level but can be overridden on the resource/employee level.

order
integer <int32>

The order of the resource in the list of resources on the marketplace and in the HQ UI.

min_capacity
integer <int32>

The mininum capacity of the resource, for example how many people can occupy a table at minimum.

max_capacity
integer <int32>

The maximum capacity of the resource, for example how many people can occupy a table at maximum.

sub_resources
Array of strings
Array of objects (EventTypePreferences)

Responses

Request samples

Content type
application/json
{
  • "id": "7dj29KiAE1wdjw731",
  • "company": "string",
  • "resource_group": "string",
  • "type": "space",
  • "name": "Table 1",
  • "description": "A good window view",
  • "priority": "normal",
  • "image": {},
  • "marketplace": true,
  • "available_for_bookings": true,
  • "booking_interval": 15,
  • "order": 1,
  • "min_capacity": 1,
  • "max_capacity": 2,
  • "sub_resources": [
    ],
  • "event_type_preferences": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "7dj29KiAE1wdjw731",
  • "company": "string",
  • "resource_group": "string",
  • "type": "space",
  • "name": "Table 1",
  • "description": "A good window view",
  • "priority": "normal",
  • "image": {},
  • "marketplace": true,
  • "available_for_bookings": true,
  • "booking_interval": 15,
  • "order": 1,
  • "min_capacity": 1,
  • "max_capacity": 2,
  • "sub_resources": [
    ],
  • "event_type_preferences": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete resource

Deletes a resource at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
resource_id
required
string

Resource ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Stream resource

Streams resource for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Resource Groups

Resource Groups are used to group resources together.

List all resource groups

Lists all resource groups of a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a resource group

Creates a resource group for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
required
ID (string) or CompanyResponse (object)
title
required
string
Array of ID (string) or Resource (object) (ExpandableResources)
order
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "resources": [
    ],
  • "title": "Lunch",
  • "order": 1
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "resources": [
    ],
  • "title": "Lunch",
  • "order": 1,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Retrieve a resource group

Retrieves information about a resource group.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
resource_group_id
required
string

Resource Group ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "resources": [
    ],
  • "title": "Lunch",
  • "order": 1,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a resource group

Updates a resource group at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
resource_group_id
required
string

Resource Group ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
Array of ID (string) or Resource (object)
title
string
order
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "resources": [
    ],
  • "title": "Lunch",
  • "order": 1
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "resources": [
    ],
  • "title": "Lunch",
  • "order": 1,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a resource group

Delete resource group for a company

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
resource_group_id
required
string

Resource Group ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "message": "Customer onboarding error."
}

Events

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.

List events

Lists events for a company with provided filters.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
from
string <date-time>
Deprecated
Example: from=2022-09-12T00:00:00Z

Use filter instead

to
string <date-time>
Deprecated
Example: to=2022-09-19T00:00:00Z

Use filter instead

object (EventFilter)
object (Sort)
object (Pagination)
phone_number
string
Deprecated
Example: phone_number=8576251

Phone number of customer. Deprecated, use filter instead.

phone_country_code
string
Deprecated
Example: phone_country_code=354

Phone country code of customer. Deprecated, use filter instead.

include_count_header
boolean
Default: false
Example: include_count_header=true

Include count header in response.

This is useful when you want to know the total count of events matching a query without fetching all the events.

The count header X-Total-Count is included in the response headers.

Note that performing a count operation can be expensive and slow, especially for large datasets.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an event

Create event for company

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
object (EventCreationBehavior)
Request Body schema: application/json
ID (string) or Event (object)
ID (string) or CompanyResponse (object) (ExpandableCompany)
ID (string) or Employee (object) (ExpandableEmployee)
ID (string) or Customer (object) (ExpandableCustomer)
number_of_guests
integer <int32>

Number of guests for the event.

ID (string) or Space (object)

Use resource instead

Array of ID (string) or Resource (object) (ExpandableResources)
license_plate
string

License plate for the vehicle associated with this event

starts_at
string <date-time>

Start time of event

check_in_origin
string
Array of objects (EventTypes)
Array of objects (VariationSelections)

The variations selected for the event during booking flow.

status
string

The status of the event.

See Event Statuses for more information.

claim_status
string <enum> (ClaimStatus)
Enum: "Unpaid" "Paid" "InProgress" "CompletedWithErrors" "Cancelled" "SecondaryCollection" "LegalCollection"
origin
string <enum> (EventOrigin)
Enum: "calendar" "online" "app" "import" "secretary" "facebook" "instagram" "tripadvisor" "the_michelin_guide"
channel
string

Where did you come to the app from? (Instagram etc.)

So if a user clicks a link on Instagram, that deeplinks into the Noona app - channel should be Instagram.

source
string

Where did the booking come from within the app? (Book again, Quick Book, Search etc.)

Array of objects (LegacyBookingQuestions)
Deprecated

This schema is deprecated. Use booking_question_answers instead.

Array of objects (BookingQuestionAnswers)
comment
string
customer_comment
string

A comment that the customer included during a marketplace booking.

unconfirmed
boolean

Event is unconfirmed if the employee has not yet confirmed the booking. This is only relevant for companies that have the "Require employee confirmation" setting enabled.

special
boolean

A property that users can use to mark events as special. Has no affect on system behavior.

pinned
boolean

A property that users can use to pin events.

object (EventTags)
ID (string) or Sale (object) (ExpandableSale)
ID (string) or Payment (object) (ExpandablePayment)
outstanding_no_show_fee
number <double>

The amount of the no-show fee that is still outstanding.

This is only relevant for events that have a no-show fee and the customer has not yet paid it.

Array of objects (CustomPropertyValues)
object (NotificationPreferences)
Array of objects (Attachments)
waitlist_entry
string

The ID of the waitlist entry that this event is associated with.

Waitlist entries are automatically deleted when the event is created.

ID (string) or BookingOffer (object) (ExpandableBookingOffer)
rrule
string (RRuleString)

RRULE string for recurring events and blocked times.

The dtstart property is ignored, and the start time of the event/blocked time is used instead.

If no until is specified, it will default to 2 years from time of creation.

Until has a maximum value of 2 years from time of creation.

Count can be any value, but generated events/blocked times past the 2 year mark will be ignored.

update_origin
string <enum> (EventOrigin)
Enum: "calendar" "online" "app" "import" "secretary" "facebook" "instagram" "tripadvisor" "the_michelin_guide"
accepted_at
string <date-time>

It is only possible to 'accept' and event once.

declined_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "recurring_event": "string",
  • "company": "string",
  • "employee": "string",
  • "customer": "string",
  • "number_of_guests": 1,
  • "space": "string",
  • "resources": [
    ],
  • "license_plate": "string",
  • "starts_at": "2022-09-12T12:00:00Z",
  • "check_in_origin": "string",
  • "event_types": [
    ],
  • "variation_selections": [
    ],
  • "status": "noshow",
  • "claim_status": "Paid",
  • "origin": "online",
  • "channel": "Instagram",
  • "source": "bookagain",
  • "booking_questions": [
    ],
  • "booking_question_answers": [
    ],
  • "comment": "string",
  • "customer_comment": "string",
  • "unconfirmed": true,
  • "special": true,
  • "pinned": true,
  • "tags": {
    },
  • "sale": "string",
  • "payment": "string",
  • "outstanding_no_show_fee": 1000,
  • "custom_properties": [
    ],
  • "notification_preferences": {
    },
  • "attachments": [],
  • "waitlist_entry": "string",
  • "booking_offer": "string",
  • "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
  • "created_by": "string",
  • "updated_by": "string",
  • "update_origin": "online",
  • "accepted_at": "2019-08-24T14:15:22Z",
  • "declined_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "recurring_event": "string",
  • "company": "string",
  • "employee": "string",
  • "customer_name": "Harry Hairlong",
  • "customer": "string",
  • "number_of_guests": 1,
  • "space": "string",
  • "resources": [
    ],
  • "license_plate": "string",
  • "starts_at": "2022-09-12T12:00:00Z",
  • "ends_at": "2022-09-12T13:00:00Z",
  • "duration": 30,
  • "check_in_at": 1600541746,
  • "check_in_origin": "string",
  • "event_types": [
    ],
  • "variation_selections": [
    ],
  • "invoice_status": "paid",
  • "status": "noshow",
  • "claim_status": "Paid",
  • "origin": "online",
  • "channel": "Instagram",
  • "source": "bookagain",
  • "booking_questions": [
    ],
  • "booking_question_answers": [
    ],
  • "comment": "string",
  • "customer_comment": "string",
  • "unconfirmed": true,
  • "special": true,
  • "pinned": true,
  • "tags": {
    },
  • "cancel_reason": "I'm sick and can't make it",
  • "sale": "string",
  • "payment": "string",
  • "price": {
    },
  • "outstanding_no_show_fee": 1000,
  • "custom_properties": [
    ],
  • "notification_preferences": {
    },
  • "attachments": [],
  • "waitlist_entry": "string",
  • "booking_offer": "string",
  • "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
  • "version": 1,
  • "created_by": "string",
  • "updated_by": "string",
  • "update_origin": "online",
  • "accepted_at": "2019-08-24T14:15:22Z",
  • "declined_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deleted_at": "2019-08-24T14:15:22Z"
}

Retrieve an event

Get a single event by ID.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
event_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "recurring_event": "string",
  • "company": "string",
  • "employee": "string",
  • "customer_name": "Harry Hairlong",
  • "customer": "string",
  • "number_of_guests": 1,
  • "space": "string",
  • "resources": [
    ],
  • "license_plate": "string",
  • "starts_at": "2022-09-12T12:00:00Z",
  • "ends_at": "2022-09-12T13:00:00Z",
  • "duration": 30,
  • "check_in_at": 1600541746,
  • "check_in_origin": "string",
  • "event_types": [
    ],
  • "variation_selections": [
    ],
  • "invoice_status": "paid",
  • "status": "noshow",
  • "claim_status": "Paid",
  • "origin": "online",
  • "channel": "Instagram",
  • "source": "bookagain",
  • "booking_questions": [
    ],
  • "booking_question_answers": [
    ],
  • "comment": "string",
  • "customer_comment": "string",
  • "unconfirmed": true,
  • "special": true,
  • "pinned": true,
  • "tags": {
    },
  • "cancel_reason": "I'm sick and can't make it",
  • "sale": "string",
  • "payment": "string",
  • "price": {
    },
  • "outstanding_no_show_fee": 1000,
  • "custom_properties": [
    ],
  • "notification_preferences": {
    },
  • "attachments": [],
  • "waitlist_entry": "string",
  • "booking_offer": "string",
  • "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
  • "version": 1,
  • "created_by": "string",
  • "updated_by": "string",
  • "update_origin": "online",
  • "accepted_at": "2019-08-24T14:15:22Z",
  • "declined_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deleted_at": "2019-08-24T14:15:22Z"
}

Update an event

Updates an event at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
event_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (EventUpdateBehavior)
unset
Array of strings <enum> (EventFields)
Items Value: "deleted_at"
Request Body schema: application/json
ID (string) or Event (object)
ID (string) or CompanyResponse (object) (ExpandableCompany)
ID (string) or Employee (object) (ExpandableEmployee)
ID (string) or Customer (object) (ExpandableCustomer)
number_of_guests
integer <int32>

Number of guests for the event.

ID (string) or Space (object)

Use resource instead

Array of ID (string) or Resource (object) (ExpandableResources)
license_plate
string

License plate for the vehicle associated with this event

starts_at
string <date-time>

Start time of event

check_in_origin
string
Array of objects (EventTypes)
Array of objects (VariationSelections)

The variations selected for the event during booking flow.

status
string

The status of the event.

See Event Statuses for more information.

claim_status
string <enum> (ClaimStatus)
Enum: "Unpaid" "Paid" "InProgress" "CompletedWithErrors" "Cancelled" "SecondaryCollection" "LegalCollection"
origin
string <enum> (EventOrigin)
Enum: "calendar" "online" "app" "import" "secretary" "facebook" "instagram" "tripadvisor" "the_michelin_guide"
channel
string

Where did you come to the app from? (Instagram etc.)

So if a user clicks a link on Instagram, that deeplinks into the Noona app - channel should be Instagram.

source
string

Where did the booking come from within the app? (Book again, Quick Book, Search etc.)

Array of objects (LegacyBookingQuestions)
Deprecated

This schema is deprecated. Use booking_question_answers instead.

Array of objects (BookingQuestionAnswers)
comment
string
customer_comment
string

A comment that the customer included during a marketplace booking.

unconfirmed
boolean

Event is unconfirmed if the employee has not yet confirmed the booking. This is only relevant for companies that have the "Require employee confirmation" setting enabled.

special
boolean

A property that users can use to mark events as special. Has no affect on system behavior.

pinned
boolean

A property that users can use to pin events.

object (EventTags)
ID (string) or Sale (object) (ExpandableSale)
ID (string) or Payment (object) (ExpandablePayment)
outstanding_no_show_fee
number <double>

The amount of the no-show fee that is still outstanding.

This is only relevant for events that have a no-show fee and the customer has not yet paid it.

Array of objects (CustomPropertyValues)
object (NotificationPreferences)
Array of objects (Attachments)
waitlist_entry
string

The ID of the waitlist entry that this event is associated with.

Waitlist entries are automatically deleted when the event is created.

ID (string) or BookingOffer (object) (ExpandableBookingOffer)
rrule
string (RRuleString)

RRULE string for recurring events and blocked times.

The dtstart property is ignored, and the start time of the event/blocked time is used instead.

If no until is specified, it will default to 2 years from time of creation.

Until has a maximum value of 2 years from time of creation.

Count can be any value, but generated events/blocked times past the 2 year mark will be ignored.

update_origin
string <enum> (EventOrigin)
Enum: "calendar" "online" "app" "import" "secretary" "facebook" "instagram" "tripadvisor" "the_michelin_guide"
accepted_at
string <date-time>

It is only possible to 'accept' and event once.

declined_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "recurring_event": "string",
  • "company": "string",
  • "employee": "string",
  • "customer": "string",
  • "number_of_guests": 1,
  • "space": "string",
  • "resources": [
    ],
  • "license_plate": "string",
  • "starts_at": "2022-09-12T12:00:00Z",
  • "check_in_origin": "string",
  • "event_types": [
    ],
  • "variation_selections": [
    ],
  • "status": "noshow",
  • "claim_status": "Paid",
  • "origin": "online",
  • "channel": "Instagram",
  • "source": "bookagain",
  • "booking_questions": [
    ],
  • "booking_question_answers": [
    ],
  • "comment": "string",
  • "customer_comment": "string",
  • "unconfirmed": true,
  • "special": true,
  • "pinned": true,
  • "tags": {
    },
  • "sale": "string",
  • "payment": "string",
  • "outstanding_no_show_fee": 1000,
  • "custom_properties": [
    ],
  • "notification_preferences": {
    },
  • "attachments": [],
  • "waitlist_entry": "string",
  • "booking_offer": "string",
  • "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
  • "created_by": "string",
  • "updated_by": "string",
  • "update_origin": "online",
  • "accepted_at": "2019-08-24T14:15:22Z",
  • "declined_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "recurring_event": "string",
  • "company": "string",
  • "employee": "string",
  • "customer_name": "Harry Hairlong",
  • "customer": "string",
  • "number_of_guests": 1,
  • "space": "string",
  • "resources": [
    ],
  • "license_plate": "string",
  • "starts_at": "2022-09-12T12:00:00Z",
  • "ends_at": "2022-09-12T13:00:00Z",
  • "duration": 30,
  • "check_in_at": 1600541746,
  • "check_in_origin": "string",
  • "event_types": [
    ],
  • "variation_selections": [
    ],
  • "invoice_status": "paid",
  • "status": "noshow",
  • "claim_status": "Paid",
  • "origin": "online",
  • "channel": "Instagram",
  • "source": "bookagain",
  • "booking_questions": [
    ],
  • "booking_question_answers": [
    ],
  • "comment": "string",
  • "customer_comment": "string",
  • "unconfirmed": true,
  • "special": true,
  • "pinned": true,
  • "tags": {
    },
  • "cancel_reason": "I'm sick and can't make it",
  • "sale": "string",
  • "payment": "string",
  • "price": {
    },
  • "outstanding_no_show_fee": 1000,
  • "custom_properties": [
    ],
  • "notification_preferences": {
    },
  • "attachments": [],
  • "waitlist_entry": "string",
  • "booking_offer": "string",
  • "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
  • "version": 1,
  • "created_by": "string",
  • "updated_by": "string",
  • "update_origin": "online",
  • "accepted_at": "2019-08-24T14:15:22Z",
  • "declined_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deleted_at": "2019-08-24T14:15:22Z"
}

Delete an event

Delete event for a company

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
event_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (EventDeletionBehavior)

Responses

Stream events

Streams events for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (EventFilter)

Responses

Checkout an event

Scaffolds checkout resources for an event.

  • Sale
  • Transaction
  • Line Items
  • Subtransaction in the case of a pre payment

If the event has already been checked out, this will return the existing checkout.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
event_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (CheckoutBehavior)

Responses

Response samples

Content type
application/json
{
  • "id": "8wa9uiah28dawd123",
  • "transactions": [
    ],
  • "events": [
    ],
  • "company": "string",
  • "customer": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Check in a customer

Checks a customer into event. Also triggers a terminal payment if the company has a terminal connected to checkin.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
id
required
string
Example: aw7da9wd8ua28a821

Event ID

query Parameters
select
Array of strings
expand
Array of strings
terminal_id
string
Example: terminal_id=aw7da9wd8ua28a821

ID of the terminal to use for payment during checkin

voucher_id
string
Example: voucher_id=aw7da9wd8ua28a821

ID of the voucher to use for payment during checkin

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "recurring_event": "string",
  • "company": "string",
  • "employee": "string",
  • "customer_name": "Harry Hairlong",
  • "customer": "string",
  • "number_of_guests": 1,
  • "space": "string",
  • "resources": [
    ],
  • "license_plate": "string",
  • "starts_at": "2022-09-12T12:00:00Z",
  • "ends_at": "2022-09-12T13:00:00Z",
  • "duration": 30,
  • "check_in_at": 1600541746,
  • "check_in_origin": "string",
  • "event_types": [
    ],
  • "variation_selections": [
    ],
  • "invoice_status": "paid",
  • "status": "noshow",
  • "claim_status": "Paid",
  • "origin": "online",
  • "channel": "Instagram",
  • "source": "bookagain",
  • "booking_questions": [
    ],
  • "booking_question_answers": [
    ],
  • "comment": "string",
  • "customer_comment": "string",
  • "unconfirmed": true,
  • "special": true,
  • "pinned": true,
  • "tags": {
    },
  • "cancel_reason": "I'm sick and can't make it",
  • "sale": "string",
  • "payment": "string",
  • "price": {
    },
  • "outstanding_no_show_fee": 1000,
  • "custom_properties": [
    ],
  • "notification_preferences": {
    },
  • "attachments": [],
  • "waitlist_entry": "string",
  • "booking_offer": "string",
  • "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
  • "version": 1,
  • "created_by": "string",
  • "updated_by": "string",
  • "update_origin": "online",
  • "accepted_at": "2019-08-24T14:15:22Z",
  • "declined_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deleted_at": "2019-08-24T14:15:22Z",
  • "check_in_success_message": "Thank you for checking in, please wait until your name is called",
  • "sale_id": "8awud8w9a7d9w8a",
  • "transaction_id": "8awud8w9a7d9w8a",
  • "subtransaction_id": "8awud8w9a7d9w8a"
}

Event Statuses

Event statuses are used to describe the current state of an event.

Noona has a set of default statuses:

  • showedUp
  • cancelled
  • noshow
  • checkedOut
  • and the implicit empty status.

Custom statuses can be created to extend the default set.

List all event statuses

Lists all event statuses of a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an event status

Creates an event status for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
id
string
ID (string) or CompanyResponse (object) (ExpandableCompany)
name
string
label
string

The label of the status. This is the label that is shown to the user in the UI.

For default Noona statuses the label is translated according to the Accept-Language header.

For custom statuses the label is simply the value of the label field.

order
integer <int32>

The order of the status. This is the order that the statuses are shown in the UI.

For default Noona statuses the order is always 0.

Order can be used to sort custom statuses.

color
string

Responses

Request samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "name": "showup",
  • "label": "Show-up",
  • "order": 1,
  • "color": "#00FF00"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "name": "showup",
  • "label": "Show-up",
  • "order": 1,
  • "color": "#00FF00",
  • "default": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Retrieve an event status

Retrieves information about an existing event status.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
event_status_id
required
string

Event Status ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "name": "showup",
  • "label": "Show-up",
  • "order": 1,
  • "color": "#00FF00",
  • "default": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update an event status

Updates an event status at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
event_status_id
required
string
Example: dwawd8awudawd

Event Status ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
id
string
ID (string) or CompanyResponse (object) (ExpandableCompany)
name
string
label
string

The label of the status. This is the label that is shown to the user in the UI.

For default Noona statuses the label is translated according to the Accept-Language header.

For custom statuses the label is simply the value of the label field.

order
integer <int32>

The order of the status. This is the order that the statuses are shown in the UI.

For default Noona statuses the order is always 0.

Order can be used to sort custom statuses.

color
string

Responses

Request samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "name": "showup",
  • "label": "Show-up",
  • "order": 1,
  • "color": "#00FF00"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "name": "showup",
  • "label": "Show-up",
  • "order": 1,
  • "color": "#00FF00",
  • "default": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete event status

Deletes an event status at company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
event_status_id
required
string

Event Status ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Time Slots

Time Slots are points in time when a company can provide a specified service.

List time slots

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.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: aw7da9wd8ua28a821

Company ID

query Parameters
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
resource_id
string
Example: resource_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
duration
integer <int32>
Example: duration=30

Duration is by default inferred from event type(s) but can be overwritten with this parameter.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List pax status

Lists pax statuses for date range.

The pax status is based on:

  • Rules in effect
  • Existing events
Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: aw7da9wd8ua28a821

Company ID

query Parameters
select
Array of strings
expand
Array of strings
object (PaxStatusFilter)

Responses

Response samples

Content type
application/json
{
  • "2024-05-02": {
    }
}

List time slot reservations

Lists time slot reservation at company.

Time slot reservations are created when a customer is going through the booking process and selects a time slot on the marketplace.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (TimeSlotReservationFilter)
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get time slot reservation

Get a time slot reservation at company.

Time slot reservations are created when a customer is going through the booking process and selects a time slot on the marketplace.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
time_slot_reservation_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "event_types": [
    ],
  • "starts_at": "2019-08-24T14:15:22Z",
  • "ends_at": "2019-08-24T14:15:22Z",
  • "date": "2022-09-12",
  • "duration": 30,
  • "employee": "string",
  • "space": "string",
  • "resources": [
    ],
  • "expires_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Stream time slot reservations

Streams time slot reservations for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (TimeSlotReservationFilter)

Responses

Holidays

List Holidays

List holidays according to the company's country.

The language of the holiday names is can be controlled by including a Accept-Language header. If the header is not included, the language is the company's default language.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
required
object (HolidaysFilter)
select
Array of strings
expand
Array of strings
header Parameters
Accept-Language
string
Example: is

The language of the holiday names. If not included, the language is the company's default language.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Customers

Customers are individuals that have booked an event with a company.

List all customers

Lists all customers of a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (CustomerFilter)
object (Sort)
object (Pagination)
search
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a customer

Retrieves information about an existing customer.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
customer_id
required
string

Customer ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7dj29KiAE1wdjw731",
  • "name": "Joe the cuttee",
  • "kennitala": "1613772649",
  • "phone_number": 8578844,
  • "phone_country_code": 354,
  • "email": "example@example.com",
  • "license_plate": "DF302",
  • "license_plates": [
    ],
  • "company_id": "2fj29KiKX1wdjw985",
  • "company": "2fj29KiKX1wdjw985",
  • "event_count": 69,
  • "groups": [
    ],
  • "employee_ids": [
    ],
  • "previous_event": "string",
  • "next_event": "string",
  • "duplicates": [
    ],
  • "duplicateStatus": "possible",
  • "notes": "Loves to be called Joe the cuttee",
  • "update_origin": "hq",
  • "updated_by": "2fj29KiKX1wdjw985",
  • "last_employee": "John the hairy",
  • "last_event": "date-time",
  • "custom_properties": [
    ],
  • "attachments": [],
  • "notices": [
    ],
  • "tags": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a customer

Updates a customer at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
customer_id
required
string
Example: dwawd8awudawd

Customer ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
name
string
kennitala
string
phone_number
string
phone_country_code
string
email
string
license_plate
string
license_plates
Array of strings

All different license plates that the customer has used.

company
string

ID of the company that the customer belongs to.

Array of ID (string) or CustomerGroup (object) (ExpandableCustomerGroups)

Customer groups that the customer belongs to.

employee_ids
Array of strings
ID (string) or Event (object) (ExpandableEvent)
ID (string) or Event (object) (ExpandableEvent)
Array of ID (string) or Customer (object) (ExpandableCustomers)
duplicateStatus
string <enum> (DuplicateStatus)
Enum: "possible" "approved"

The customers duplicate status.

If approved the customer has been approved as a duplicate.

If possible the duplication has to be manually resolved.

notes
string
update_origin
string
Array of objects (CustomPropertyValues)
Array of objects (Attachments)
Array of objects (Notices)
object (CustomerTags)

Responses

Request samples

Content type
application/json
{
  • "name": "Joe the cuttee",
  • "kennitala": "1613772649",
  • "phone_number": 8578844,
  • "phone_country_code": 354,
  • "email": "example@example.com",
  • "license_plate": "DF302",
  • "license_plates": [
    ],
  • "company": "2fj29KiKX1wdjw985",
  • "groups": [
    ],
  • "employee_ids": [
    ],
  • "previous_event": "string",
  • "next_event": "string",
  • "duplicates": [
    ],
  • "duplicateStatus": "possible",
  • "notes": "Loves to be called Joe the cuttee",
  • "update_origin": "hq",
  • "custom_properties": [
    ],
  • "attachments": [],
  • "notices": [
    ],
  • "tags": {
    }
}

Response samples

Content type
application/json
{
  • "id": "7dj29KiAE1wdjw731",
  • "name": "Joe the cuttee",
  • "kennitala": "1613772649",
  • "phone_number": 8578844,
  • "phone_country_code": 354,
  • "email": "example@example.com",
  • "license_plate": "DF302",
  • "license_plates": [
    ],
  • "company_id": "2fj29KiKX1wdjw985",
  • "company": "2fj29KiKX1wdjw985",
  • "event_count": 69,
  • "groups": [
    ],
  • "employee_ids": [
    ],
  • "previous_event": "string",
  • "next_event": "string",
  • "duplicates": [
    ],
  • "duplicateStatus": "possible",
  • "notes": "Loves to be called Joe the cuttee",
  • "update_origin": "hq",
  • "updated_by": "2fj29KiKX1wdjw985",
  • "last_employee": "John the hairy",
  • "last_event": "date-time",
  • "custom_properties": [
    ],
  • "attachments": [],
  • "notices": [
    ],
  • "tags": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete customer

Deletes a customer at company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
customer_id
required
string

Customer ID

query Parameters
select
Array of strings
expand
Array of strings
object (CustomerDeletionBehavior)

Responses

Create a customer

Creates a new customer at company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
name
required
string
kennitala
string
phone_number
string
phone_country_code
string
email
string
license_plate
string
license_plates
Array of strings

All different license plates that the customer has used.

company
string

ID of the company that the customer belongs to.

Array of ID (string) or CustomerGroup (object) (ExpandableCustomerGroups)

Customer groups that the customer belongs to.

employee_ids
Array of strings
ID (string) or Event (object) (ExpandableEvent)
ID (string) or Event (object) (ExpandableEvent)
Array of ID (string) or Customer (object) (ExpandableCustomers)
duplicateStatus
string <enum> (DuplicateStatus)
Enum: "possible" "approved"

The customers duplicate status.

If approved the customer has been approved as a duplicate.

If possible the duplication has to be manually resolved.

notes
string
update_origin
string
Array of objects (CustomPropertyValues)
Array of objects (Attachments)
Array of objects (Notices)
object (CustomerTags)

Responses

Request samples

Content type
application/json
{
  • "name": "Joe the cuttee",
  • "kennitala": "1613772649",
  • "phone_number": 8578844,
  • "phone_country_code": 354,
  • "email": "example@example.com",
  • "license_plate": "DF302",
  • "license_plates": [
    ],
  • "company": "2fj29KiKX1wdjw985",
  • "groups": [
    ],
  • "employee_ids": [
    ],
  • "previous_event": "string",
  • "next_event": "string",
  • "duplicates": [
    ],
  • "duplicateStatus": "possible",
  • "notes": "Loves to be called Joe the cuttee",
  • "update_origin": "hq",
  • "custom_properties": [
    ],
  • "attachments": [],
  • "notices": [
    ],
  • "tags": {
    }
}

Response samples

Content type
application/json
{
  • "id": "7dj29KiAE1wdjw731",
  • "name": "Joe the cuttee",
  • "kennitala": "1613772649",
  • "phone_number": 8578844,
  • "phone_country_code": 354,
  • "email": "example@example.com",
  • "license_plate": "DF302",
  • "license_plates": [
    ],
  • "company_id": "2fj29KiKX1wdjw985",
  • "company": "2fj29KiKX1wdjw985",
  • "event_count": 69,
  • "groups": [
    ],
  • "employee_ids": [
    ],
  • "previous_event": "string",
  • "next_event": "string",
  • "duplicates": [
    ],
  • "duplicateStatus": "possible",
  • "notes": "Loves to be called Joe the cuttee",
  • "update_origin": "hq",
  • "updated_by": "2fj29KiKX1wdjw985",
  • "last_employee": "John the hairy",
  • "last_event": "date-time",
  • "custom_properties": [
    ],
  • "attachments": [],
  • "notices": [
    ],
  • "tags": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Customer Groups

Customer Groups are used to group customers into categories. A customer might, for example, belong to a customer group titled "Regulars".

List all customer groups

Lists all customer groups of a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a customer group

Retrieves information about an existing customer group.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
customer_group_id
required
string
Example: dwawd8awudawd

Customer ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7dj29KiAE1wdjw731",
  • "company": "QwYwhN8HH2CaFtwiW",
  • "title": "Regulars",
  • "description": "Customers that come in regularly",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a customer group

Updates a customer group at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
customer_group_id
required
string
Example: dwawd8awudawd

Customer ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
company
string
title
string
description
string

Responses

Request samples

Content type
application/json
{
  • "company": "QwYwhN8HH2CaFtwiW",
  • "title": "Regulars",
  • "description": "Customers that come in regularly"
}

Response samples

Content type
application/json
{
  • "id": "7dj29KiAE1wdjw731",
  • "company": "QwYwhN8HH2CaFtwiW",
  • "title": "Regulars",
  • "description": "Customers that come in regularly",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete customer group

Deletes a customer group at company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
customer_group_id
required
string
Example: dwawd8awudawd

Customer ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Create a customer group

Creates a new customer group at company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
company
string
title
string
description
string

Responses

Request samples

Content type
application/json
{
  • "company": "QwYwhN8HH2CaFtwiW",
  • "title": "Regulars",
  • "description": "Customers that come in regularly"
}

Response samples

Content type
application/json
{
  • "id": "7dj29KiAE1wdjw731",
  • "company": "QwYwhN8HH2CaFtwiW",
  • "title": "Regulars",
  • "description": "Customers that come in regularly",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Blocked Times

List blocked times

Lists blocked times for a company with provided filters. The maximum queryable range is 31 days as repeating blocked times could be expanded infinitely.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
from
required
string <date-time>
Example: from=2022-09-12T00:00:00Z

Include blocked times starting on this date

to
required
string <date-time>
Example: to=2022-09-19T00:00:00Z

Include blocked times ending before this date

select
Array of strings
expand
Array of strings
object (CalendarSlotFilter)
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a blocked time

Creates a blocked time for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
required
ID (string) or CompanyResponse (object)
starts_at
required
string <date-time>

Start time of blocked time

ends_at
required
string <date-time>

End time of blocked time

ID (string) or Employee (object) (ExpandableEmployee)
ID (string) or Space (object) (ExpandableSpace)
ID (string) or Resource (object) (ExpandableResource)
title
string
rrule
string (RRuleString)

RRULE string for recurring events and blocked times.

The dtstart property is ignored, and the start time of the event/blocked time is used instead.

If no until is specified, it will default to 2 years from time of creation.

Until has a maximum value of 2 years from time of creation.

Count can be any value, but generated events/blocked times past the 2 year mark will be ignored.

theme
string <enum> (BlockedTimeTheme)
Enum: "themered" "themepurple" "themeyellow" "themewine" "themeorange" "themegreen" "themeblack" "themegrey" "themeblue" "themecoral" "thememint"

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "employee": "string",
  • "space": "string",
  • "resource": "string",
  • "title": "Lunch",
  • "starts_at": "2022-09-12T12:00:00Z",
  • "ends_at": "2022-09-12T13:00:00Z",
  • "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
  • "theme": "themeblack",
  • "created_by": "string",
  • "updated_by": "string"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "employee": "string",
  • "space": "string",
  • "resource": "string",
  • "title": "Lunch",
  • "starts_at": "2022-09-12T12:00:00Z",
  • "ends_at": "2022-09-12T13:00:00Z",
  • "date": "2022-09-12",
  • "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
  • "duration": 60,
  • "theme": "themeblack",
  • "created_by": "string",
  • "updated_by": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Retrieve a blocked time

Retrieve blocked time for a company

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
blocked_time_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "employee": "string",
  • "space": "string",
  • "resource": "string",
  • "title": "Lunch",
  • "starts_at": "2022-09-12T12:00:00Z",
  • "ends_at": "2022-09-12T13:00:00Z",
  • "date": "2022-09-12",
  • "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
  • "duration": 60,
  • "theme": "themeblack",
  • "created_by": "string",
  • "updated_by": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a blocked time

Updates a blocked time at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
blocked_time_id
required
string
Example: dwawd8awudawd

Blocked Time ID

query Parameters
date
required
string
Example: date=2024-04-01
select
Array of strings
expand
Array of strings
object (BlockedTimeUpdateBehavior)
Request Body schema: application/json
title
string
starts_at
string <date-time>

Start time of blocked time

ends_at
string <date-time>

End time of blocked time

theme
string <enum> (BlockedTimeTheme)
Enum: "themered" "themepurple" "themeyellow" "themewine" "themeorange" "themegreen" "themeblack" "themegrey" "themeblue" "themecoral" "thememint"

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "employee": "string",
  • "space": "string",
  • "resource": "string",
  • "title": "Lunch",
  • "starts_at": "2022-09-12T12:00:00Z",
  • "ends_at": "2022-09-12T13:00:00Z",
  • "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
  • "theme": "themeblack",
  • "created_by": "string",
  • "updated_by": "string"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "employee": "string",
  • "space": "string",
  • "resource": "string",
  • "title": "Lunch",
  • "starts_at": "2022-09-12T12:00:00Z",
  • "ends_at": "2022-09-12T13:00:00Z",
  • "date": "2022-09-12",
  • "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
  • "duration": 60,
  • "theme": "themeblack",
  • "created_by": "string",
  • "updated_by": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a blocked time

Delete blocked time for a company

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
blocked_time_id
required
string
Example: dwawd8awudawd
query Parameters
date
required
string
Example: date=2024-04-01
select
Array of strings
expand
Array of strings
object (BlockedTimeDeletionBehavior)

Responses

Response samples

Content type
application/json
{
  • "message": "Customer onboarding error."
}

Stream blocked times

Streams blocked times for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (BlockedTimeFilter)

Responses

Products

Products describe goods you offer to your customers.

List all products

Lists all products tied to company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
object (ProductFilter)
object (Sort)
object (Pagination)
barcode
string
Deprecated

Use filter instead.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a product

Creates a new product at company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
title
required
string
company
string
description
string
amount
number <double>
Default: 0
sku
string
stock_level
integer <int32>
cost
integer <int32>

The cost of the product from a wholesaler.

In the x100 format.

barcode
string
product_groups
Array of strings

List of product group ids product belongs to.

object (ProductImage)
vat_id
string

Id of VAT to use for product

tax_exemption_reason
string

VAT exemption reason when having a VAT amount of 0%

import_reference_id
string

Set during import of products, usually an identifier from an external system.

Responses

Request samples

Content type
application/json
{
  • "company": "7awdXwZoedakjad37a",
  • "title": "Black Shampoo",
  • "description": "A shampoo for black hair",
  • "amount": 2990,
  • "sku": "ANE123",
  • "stock_level": 10,
  • "cost": 0,
  • "barcode": 8004608258995,
  • "product_groups": [
    ],
  • "image": {
    },
  • "vat_id": "FzGMKqFnCX79N3zWk",
  • "tax_exemption_reason": "M01",
  • "import_reference_id": "FzGMKqFnCX79N3zWk"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "7awdXwZoedakjad37a",
  • "title": "Black Shampoo",
  • "description": "A shampoo for black hair",
  • "amount": 2990,
  • "sku": "ANE123",
  • "stock_level": 10,
  • "cost": 0,
  • "barcode": 8004608258995,
  • "product_groups": [
    ],
  • "image": {
    },
  • "vat_id": "FzGMKqFnCX79N3zWk",
  • "tax_exemption_reason": "M01",
  • "import_reference_id": "FzGMKqFnCX79N3zWk",
  • "created_at": 1631558908,
  • "updated_at": 1631558908
}

Retrieve a product

Retrieves information about an existing product.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
id
required
string

Product ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "7awdXwZoedakjad37a",
  • "title": "Black Shampoo",
  • "description": "A shampoo for black hair",
  • "amount": 2990,
  • "sku": "ANE123",
  • "stock_level": 10,
  • "cost": 0,
  • "barcode": 8004608258995,
  • "product_groups": [
    ],
  • "image": {
    },
  • "vat_id": "FzGMKqFnCX79N3zWk",
  • "tax_exemption_reason": "M01",
  • "import_reference_id": "FzGMKqFnCX79N3zWk",
  • "created_at": 1631558908,
  • "updated_at": 1631558908
}

Delete a product

Deletes a product.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
id
required
string

Product ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Update a product

Updates product by ID by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
id
required
string

Product ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
company
string
title
string
description
string
amount
number <double>
Default: 0
sku
string
stock_level
integer <int32>
cost
integer <int32>

The cost of the product from a wholesaler.

In the x100 format.

barcode
string
product_groups
Array of strings

List of product group ids product belongs to.

object (ProductImage)
vat_id
string

Id of VAT to use for product

tax_exemption_reason
string

VAT exemption reason when having a VAT amount of 0%

import_reference_id
string

Set during import of products, usually an identifier from an external system.

Responses

Request samples

Content type
application/json
{
  • "company": "7awdXwZoedakjad37a",
  • "title": "Black Shampoo",
  • "description": "A shampoo for black hair",
  • "amount": 2990,
  • "sku": "ANE123",
  • "stock_level": 10,
  • "cost": 0,
  • "barcode": 8004608258995,
  • "product_groups": [
    ],
  • "image": {
    },
  • "vat_id": "FzGMKqFnCX79N3zWk",
  • "tax_exemption_reason": "M01",
  • "import_reference_id": "FzGMKqFnCX79N3zWk"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "7awdXwZoedakjad37a",
  • "title": "Black Shampoo",
  • "description": "A shampoo for black hair",
  • "amount": 2990,
  • "sku": "ANE123",
  • "stock_level": 10,
  • "cost": 0,
  • "barcode": 8004608258995,
  • "product_groups": [
    ],
  • "image": {
    },
  • "vat_id": "FzGMKqFnCX79N3zWk",
  • "tax_exemption_reason": "M01",
  • "import_reference_id": "FzGMKqFnCX79N3zWk",
  • "created_at": 1631558908,
  • "updated_at": 1631558908
}

Stream products

Streams products for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Product Groups

Product Groups are used to group products into categories. A shampoo might, for example, belong to a product group titled "Hair Products".

Products can reside in multiple product groups simultaneously.

List all product groups

Returns a list of all product groups tied to company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a product group

Creates a new product group for users company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
title
required
string
company
string
description
string
color
string
parent_group_id
string
order
integer <int32>

Used to control how a product group is ordered with respect to siblings.

is_default_group
boolean

If true the product group is a special, uneditable, group that contains all products that have not been added to user created product groups.

Array of objects (GroupProduct)

Responses

Request samples

Content type
application/json
{
  • "company": "7awdXwZoedakjad37a",
  • "title": "Shampoo",
  • "description": "All shampoo",
  • "color": "#FCB834",
  • "parent_group_id": "7awdUaw31aiwdjIDw",
  • "order": 1,
  • "is_default_group": false,
  • "group_products": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "7awdXwZoedakjad37a",
  • "title": "Shampoo",
  • "description": "All shampoo",
  • "color": "#FCB834",
  • "parent_group_id": "7awdUaw31aiwdjIDw",
  • "order": 1,
  • "is_default_group": false,
  • "group_products": [
    ],
  • "created_at": 1631558908,
  • "updated_at": 1631558908
}

Retrieve a product group

Retrieve information about an existing product group.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
id
required
string

Product Group ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "7awdXwZoedakjad37a",
  • "title": "Shampoo",
  • "description": "All shampoo",
  • "color": "#FCB834",
  • "parent_group_id": "7awdUaw31aiwdjIDw",
  • "order": 1,
  • "is_default_group": false,
  • "group_products": [
    ],
  • "created_at": 1631558908,
  • "updated_at": 1631558908
}

Delete a product group

Deletes product group tied to users comapny.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
id
required
string

Product Group ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Update a product group

Updates a product group with ID by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
id
required
string

Product Group ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
company
string
title
string
description
string
color
string
parent_group_id
string
order
integer <int32>

Used to control how a product group is ordered with respect to siblings.

is_default_group
boolean

If true the product group is a special, uneditable, group that contains all products that have not been added to user created product groups.

Array of objects (GroupProduct)

Responses

Request samples

Content type
application/json
{
  • "company": "7awdXwZoedakjad37a",
  • "title": "Shampoo",
  • "description": "All shampoo",
  • "color": "#FCB834",
  • "parent_group_id": "7awdUaw31aiwdjIDw",
  • "order": 1,
  • "is_default_group": false,
  • "group_products": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "7awdXwZoedakjad37a",
  • "title": "Shampoo",
  • "description": "All shampoo",
  • "color": "#FCB834",
  • "parent_group_id": "7awdUaw31aiwdjIDw",
  • "order": 1,
  • "is_default_group": false,
  • "group_products": [
    ],
  • "created_at": 1631558908,
  • "updated_at": 1631558908
}

List product groups expanded

Retrieve all product groups and products in an ordered manner with respect to hierarchy.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update product groups order

Updates order of multiple product groups. This also applies to the 'root' product groups that have no parent.

All groups in the request array must share the same parent.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
Array
id
required
string

ID of product group.

order
required
integer <int32>

Order of product group.

Responses

Request samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Stream product groups

Streams product groups for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Payment Methods

The various payment methods available in the Noona ecosystem.

List all payment methods

Lists all possible payment methods in the noona ecosystem.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List all card types

Lists all possible card types.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • "visa"
]

Terminals

Terminals are used to charge credit cards for services.

List all terminals

Lists all terminals connected to a company.

The list includes terminals connected to the company directly and terminals connected to the company through a user.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (TerminalsFilter)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get terminal

Retrieves terminal with ID.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
terminal_id
required
string
Example: dwawd8awudawd

Terminal ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "readable_identifier": "Suzy's terminal",
  • "brand": "string",
  • "model": "string",
  • "provider": "Istari",
  • "serial": "string",
  • "issuer": "string",
  • "description": "string",
  • "default": true,
  • "created_at": 0
}

Update a terminal

Updates a terminal connected to a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
terminal_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
readable_identifier
string
description
string
default
boolean

Whether this terminal is the default terminal to use for sales.

Responses

Request samples

Content type
application/json
{
  • "readable_identifier": "Suzy's terminal",
  • "issuer": "string",
  • "description": "string",
  • "default": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "readable_identifier": "Suzy's terminal",
  • "brand": "string",
  • "model": "string",
  • "provider": "Istari",
  • "serial": "string",
  • "issuer": "string",
  • "description": "string",
  • "default": true,
  • "created_at": 0
}

Delete a terminal

Deletes a terminal connected to a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
terminal_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Notifications

Notifications inform users about various things such as new events, cancelled events and more.

Create a notification

Creates a notification at company.

Authorizations:
BearerTokenAuthoAuth 2.0
Request Body schema: application/json
title
required
string
message
required
string
company
required
string
employee
required
string

Responses

Request samples

Content type
application/json
{
  • "title": "Something happened",
  • "message": "This is more details about what happened",
  • "company": "daw89dw9a7wd9a8w7d",
  • "employee": "daw89dw9a7wd9a8w7d"
}

List all notifications

Lists all notifications at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete all notifications

Deletes all notifications that user has access to at a company, including user specific notifications.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "count": 3
}

Stream notifications

Streams all notifications at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Retrieve a notification

Retrieves a notification at a users company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
notification_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
Example
{
  • "id": "8wa9uiah28dawd123",
  • "type": "legacy",
  • "company": "daw89dw9a7wd9a8w7d",
  • "event": "dw89aw8da8wd",
  • "payment_amount": 10000,
  • "payment_currency": "ISK",
  • "payment_status": "refunded",
  • "employee": "daw89dw9a7wd9a8w7d",
  • "space": "daw89dw9a7wd9a8w7d",
  • "priority": 0,
  • "title": "New appointment",
  • "message": "You have a new appointment at 12:00",
  • "side_message": "@ 2022-01-01",
  • "date": "2022-01-01",
  • "icon": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a notification

Deletes a notification at a users company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
notification_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Push Notifications

Push Notifications are used to send notifications to the Noona mobile app, such as new events, cancelled events and more..

List all notifications

Lists all notifications at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
object (PushNotificationFilter)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Custom Properties

Custom properties enable the possibility of extending resources with custom data.

List custom properties

Lists custom properties for a company

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create custom property

Create custom property for a company

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
name
required
string
scope
required
string <enum>
Enum: "events" "customer"
type
required
string <enum>
Enum: "input" "textarea" "select" "options"
company
string
Array of objects (CustomPropertyOptions)
order
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "company": "7awdXwZoedakjad37a",
  • "name": "Age",
  • "scope": "customers",
  • "type": "input",
  • "options": [
    ],
  • "order": 1
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "7awdXwZoedakjad37a",
  • "name": "Age",
  • "scope": "customers",
  • "type": "input",
  • "options": [
    ],
  • "order": 1,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update custom property

Update custom property for a company

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
property_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
company
string
name
string
scope
string <enum>
Enum: "events" "customer"
type
string <enum>
Enum: "input" "textarea" "select" "options"
Array of objects (CustomPropertyOptions)
order
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "company": "7awdXwZoedakjad37a",
  • "name": "Age",
  • "scope": "customers",
  • "type": "input",
  • "options": [
    ],
  • "order": 1
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "7awdXwZoedakjad37a",
  • "name": "Age",
  • "scope": "customers",
  • "type": "input",
  • "options": [
    ],
  • "order": 1,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete custom property

Delete custom property for a company

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
property_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Apps

Apps are 3rd party applications that can be installed by companies to extend the functionality of Noona.

List apps

Lists all apps for the specified company.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (AppFilter)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get app

Gets an app in the context of the specified company.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string
Example: dwawd8awudawd
app_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "client_id": "7awdXwZoedakjad37a",
  • "name": "King Accounting Connection",
  • "developer_name": "King Accounting",
  • "description": "King Accounting Connection automatically syncs your Noona POS system with the King Accounting software.",
  • "redirect_uri": "https://example.com",
  • "scopes": [
    ],
  • "enabled": true,
  • "show_in_navigation": true,
  • "id_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhdzhkYXd1OWQ4dWF3OThkdSIsImVtYWlsIjoic3ZlcnJpckBub29uYS5pcyIsImV4cCI6MTUxNjIzOTEyMiwiaWF0IjoxNTE2MjM5MDIyLCJhdWQiOiI8Y2xpZW50LWlkPiIsImlzcyI6ImFwaS5ub29uYS5pcyJ9.hgK4lcjTHgVMLPwnVHjsGOOK8cC2b8pkZ2VHxBoFwCk",
}

Disable app

Disables the app with the specified id.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string
Example: dwawd8awudawd
app_id
required
string
Example: dwawd8awudawd

Responses

Messaging

List SMS messages

Lists all SMS messages for the specified company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Pagination)
object (SMSFilter)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List emails

Lists all emails for the specified company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Pagination)
object (EmailFilter)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Waitlists

List all waitlist entries

Lists all waitlist entries of a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (WaitlistFilter)
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a waitlist entry

Creates a waitlist entry for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
required
ID (string) or CompanyResponse (object)
required
ID (string) or Customer (object)
required
Array of (ID (string) or EventType (string)) or (ID (object) or EventType (object))
ID (string) or Employee (object)
ID (string) or Resource (object)
number_of_guests
integer <int32>

Number of guests for the event.

notes
string
Array of objects
Array of ID (string) or BookingOffer (object) (ExpandableBookingOffers)
expires_at
string <date-time>
Deprecated

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "customer": "string",
  • "employee": "string",
  • "resource": "string",
  • "event_types": [
    ],
  • "number_of_guests": 1,
  • "notes": "string",
  • "preferred_times": [
    ],
  • "booking_offers": [
    ],
  • "expires_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "customer": "string",
  • "employee": "string",
  • "resource": "string",
  • "event_types": [
    ],
  • "number_of_guests": 1,
  • "notes": "string",
  • "preferred_times": [
    ],
  • "booking_offers": [
    ],
  • "expires_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Retrieve a waitlist entry

Retrieves information about a waitlist entry.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
waitlist_entry_id
required
string

Waitlist Entry ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "customer": "string",
  • "employee": "string",
  • "resource": "string",
  • "event_types": [
    ],
  • "number_of_guests": 1,
  • "notes": "string",
  • "preferred_times": [
    ],
  • "booking_offers": [
    ],
  • "expires_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a waitlist entry

Updates a waitlist entry at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
waitlist_entry_id
required
string
Example: dwawd8awudawd

Waitlist Entry ID

query Parameters
select
Array of strings
expand
Array of strings
unset
Array of strings <enum> (WaitlistEntryFields)
Items Value: "employee"
Request Body schema: application/json
ID (string) or Customer (object)
ID (string) or Employee (object)
ID (string) or Resource (object)
Array of (ID (string) or EventType (string)) or (ID (object) or EventType (object))
number_of_guests
integer <int32>

Number of guests for the event.

notes
string
Array of objects
Array of ID (string) or BookingOffer (object) (ExpandableBookingOffers)
expires_at
string <date-time>
Deprecated

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "customer": "string",
  • "employee": "string",
  • "resource": "string",
  • "event_types": [
    ],
  • "number_of_guests": 1,
  • "notes": "string",
  • "preferred_times": [
    ],
  • "booking_offers": [
    ],
  • "expires_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "customer": "string",
  • "employee": "string",
  • "resource": "string",
  • "event_types": [
    ],
  • "number_of_guests": 1,
  • "notes": "string",
  • "preferred_times": [
    ],
  • "booking_offers": [
    ],
  • "expires_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a waitlist entry

Deletes a waitlist entry at company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
waitlist_entry_id
required
string
Example: dwawd8awudawd

Waitlist Entry ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Memos

List all memos

Lists all memos of a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (MemoFilter)

Filtering options for Memos

object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a memo

Creates a memo for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
required
ID (string) or CompanyResponse (object)
title
required
string
ID (string) or Employee (object)
content
string
date
string

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "employee": "string",
  • "title": "string",
  • "content": "string",
  • "date": "string"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "employee": "string",
  • "title": "string",
  • "content": "string",
  • "date": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Retrieve a memo

Retrieves information about a memo.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
memo_id
required
string

Memo ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "employee": "string",
  • "title": "string",
  • "content": "string",
  • "date": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a memo

Updates a memo for a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
memo_id
required
string
Example: dwawd8awudawd

Memo ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
ID (string) or Employee (object)
title
string
content
string
date
string

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "employee": "string",
  • "title": "string",
  • "content": "string",
  • "date": "string"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "string",
  • "employee": "string",
  • "title": "string",
  • "content": "string",
  • "date": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a memo

Deletes a memo of a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
memo_id
required
string
Example: dwawd8awudawd

Memo ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Categories

Categories are used to group and categorize companies.

List cuisines

Lists available cuisines.

Authorizations:
BearerTokenAuth
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get cuisine

Gets cuisine from ID.

Authorizations:
BearerTokenAuth
path Parameters
cuisine_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "Bistro",
  • "readable_id": "bistro",
  • "order": 1,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

List dietaries

Lists available dietaries.

Authorizations:
BearerTokenAuth
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get dietary

Gets dietary from ID.

Authorizations:
BearerTokenAuth
path Parameters
dietary_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "Bistro",
  • "readable_id": "bistro",
  • "order": 1,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

List ambiences

Lists available ambiences.

Authorizations:
BearerTokenAuth
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get ambience

Gets ambience from ID.

Authorizations:
BearerTokenAuth
path Parameters
ambience_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "Bistro",
  • "readable_id": "bistro",
  • "order": 1,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Webhooks

Webhooks are used to receive notifications about events that occur in the Noona ecosystem.

Multiple events can be tied to a single callback URL.

A callback payload for creation and update reflects the current state of the resource.

A callback payload for deletion reflects the state of the resource before deletion.

List all webhooks

Lists all webhooks of a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a webhook

Creates a webhook for a company. The webhook will be triggered when any of the defined events occur.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
title
string
description
string
callback_url
string
events
Array of strings <enum> (WebhookEvents)
Items Enum: "customer.created" "customer.updated" "event.created" "event.updated" "event.deleted" "transaction.created" "transaction.updated"
Array of objects (WebhookHeaders)
enabled
boolean

Whether the webhook is enabled or not

ID (string) or CompanyResponse (object) (ExpandableCompany)

Responses

Callbacks

Request samples

Content type
application/json
{
  • "title": "Event created",
  • "description": "This webhook is triggered when an event is created",
  • "events": [
    ],
  • "headers": [
    ],
  • "enabled": true,
  • "company": "string",
  • "app": "string"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "title": "Event created",
  • "description": "This webhook is triggered when an event is created",
  • "events": [
    ],
  • "headers": [
    ],
  • "enabled": true,
  • "company": "string",
  • "app": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Callback payload samples

Callback
POST: callback_url
Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "type": "event.created",
  • "data": {
    },
  • "created_at": "2019-08-24T14:15:22Z"
}

Retrieve a webhook

Retrieves information about an existing webhook.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
webhook_id
required
string

Webhook ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "title": "Event created",
  • "description": "This webhook is triggered when an event is created",
  • "events": [
    ],
  • "headers": [
    ],
  • "enabled": true,
  • "company": "string",
  • "app": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a webhook

Updates a webhook at a company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
webhook_id
required
string
Example: dwawd8awudawd

Webhook ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
title
string
description
string
callback_url
string
events
Array of strings <enum> (WebhookEvents)
Items Enum: "customer.created" "customer.updated" "event.created" "event.updated" "event.deleted" "transaction.created" "transaction.updated"
Array of objects (WebhookHeaders)
enabled
boolean

Whether the webhook is enabled or not

ID (string) or CompanyResponse (object) (ExpandableCompany)

Responses

Request samples

Content type
application/json
{
  • "title": "Event created",
  • "description": "This webhook is triggered when an event is created",
  • "events": [
    ],
  • "headers": [
    ],
  • "enabled": true,
  • "company": "string",
  • "app": "string"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "title": "Event created",
  • "description": "This webhook is triggered when an event is created",
  • "events": [
    ],
  • "headers": [
    ],
  • "enabled": true,
  • "company": "string",
  • "app": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete webhook

Deletes a webhook at company.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
webhook_id
required
string

Webhook ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

List all webhook events

Lists all events that can be used to trigger a webhook.

Authorizations:
BearerTokenAuth
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • "event.created",
  • "event.updated",
  • "event.deleted"
]

Webhook Invocations

Webhook Invocations are the actual HTTP requests that are sent to a webhook's callback URL.

Webhook invocations are logged and can be inspected via the API.

List all webhooks invocations

Lists all webhook invocations of a company.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get webhooks invocation

Gets webhook invocation with id.

Authorizations:
BearerTokenAuth
path Parameters
webhook_invocation_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "event": "event.created",
  • "success": true,
  • "responses": [
    ],
  • "webhook": "string",
  • "company": "string",
  • "failed_tries": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a webhook invocation

Updates a webhook invocation.

Authorizations:
BearerTokenAuth
path Parameters
webhook_invocation_id
required
string
Example: dwawd8awudawd

Webhook Invocation ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
callback_url
string
event
string <enum> (WebhookEvent)
Enum: "customer.created" "customer.updated" "event.created" "event.updated" "event.deleted" "transaction.created" "transaction.updated"
Array of objects (WebhookInvocationResponses)
ID (string) or Webhook (object) (ExpandableWebhook)
ID (string) or CompanyResponse (object) (ExpandableCompany)
failed_tries
integer

Responses

Request samples

Content type
application/json
{
  • "event": "event.created",
  • "responses": [
    ],
  • "webhook": "string",
  • "company": "string",
  • "failed_tries": 0
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "event": "event.created",
  • "success": true,
  • "responses": [
    ],
  • "webhook": "string",
  • "company": "string",
  • "failed_tries": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Subscriptions

Subscriptions are the container for plans which can include several powerups. They are used to charge and manage the features used by companies.

Create a payment intent

Create a payment intent to be used for the 3DSecure payment flow

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string
Example: dwawd8awudawd

Company ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "customer_id": "7awdXwZoedakjad37a",
  • "status": "inited",
  • "currency_code": "EUR",
  • "amount": 0,
  • "gateway": "braintree",
  • "gateway_account_id": "gw_7awdXwZoedakjad37a",
  • "expires_at": 1257894000,
  • "created_at": 1257894000,
  • "modified_at": 1257894000,
  • "resource_version": 0,
  • "updated_at": 1257894000
}

Retrieve billing info for company

Retrieves billing information for company

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string

Company id

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "first_name": "John",
  • "last_name": "Smith",
  • "email": "john.smith@example.com",
  • "phone": "string",
  • "company": "Best Company",
  • "business_registration_id": "1234567890",
  • "vat_number": "1234567890",
  • "vat_number_status": "valid",
  • "billing_method": "card",
  • "primary_payment_source_id": "string",
  • "card": {
    },
  • "billing_address": {
    }
}

Create or update billing info for customer

Creates or updates the billing information for this customer

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string
Example: dwawd8awudawd

Company ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
first_name
string
last_name
string
email
string <email>
phone
string
company
string
business_registration_id
string
vat_number
string
payment_intent_id
string
object (Card)
object (BillingAddress)

Responses

Request samples

Content type
application/json
{
  • "first_name": "John",
  • "last_name": "Smith",
  • "email": "john.smith@example.com",
  • "phone": "string",
  • "company": "Best Company",
  • "business_registration_id": "1234567890",
  • "vat_number": "1234567890",
  • "payment_intent_id": "string",
  • "card": {
    },
  • "billing_address": {
    }
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "first_name": "John",
  • "last_name": "Smith",
  • "email": "john.smith@example.com",
  • "phone": "string",
  • "company": "Best Company",
  • "business_registration_id": "1234567890",
  • "vat_number": "1234567890",
  • "vat_number_status": "valid",
  • "billing_method": "card",
  • "primary_payment_source_id": "string",
  • "card": {
    },
  • "billing_address": {
    }
}

Download billing invoice PDF

Download billing invoice PDF

Authorizations:
BearerTokenAuth
path Parameters
invoice_id
required
string

Invoice id

Responses

Retrieve billing invoices for company

Retrieves billing invoices for company

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string

Company id

query Parameters
select
Array of strings
expand
Array of strings
object (InvoicesFilter)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a subscription for company

Creates the subscription for the company and updates the relevant database fields.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string

Company id

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
product
string <enum>
Enum: "appointments_pro" "pos" "restaurants_pro"

Responses

Request samples

Content type
application/json
{
  • "product": "appointments_pro"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "customer": "7awdXwZoedakjad37a",
  • "status": "future",
  • "subscription_items": [
    ],
  • "charged_items": [
    ],
  • "coupons": [
    ],
  • "discounts": [
    ],
  • "currency_code": "str",
  • "exchange_rate": 0,
  • "auto_close_invoices": true,
  • "due_invoices_count": 0,
  • "total_dues": 0,
  • "due_since": "2019-08-24T14:15:22Z",
  • "cancel_reason": "not_paid",
  • "cancelled_at": "2019-08-24T14:15:22Z",
  • "trial_start": "2019-08-24T14:15:22Z",
  • "current_term_start": "2019-08-24T14:15:22Z",
  • "current_term_end": "2019-08-24T14:15:22Z",
  • "next_billing_at": "2019-08-24T14:15:22Z",
  • "started_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deleted": true
}

Retrieve subscription for company

Retrieves subscription information for the company

Authorizations:
BearerTokenAuth
path Parameters
subscription_id
required
string

Subscription id

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "customer": "7awdXwZoedakjad37a",
  • "status": "future",
  • "subscription_items": [
    ],
  • "charged_items": [
    ],
  • "coupons": [
    ],
  • "discounts": [
    ],
  • "currency_code": "str",
  • "exchange_rate": 0,
  • "auto_close_invoices": true,
  • "due_invoices_count": 0,
  • "total_dues": 0,
  • "due_since": "2019-08-24T14:15:22Z",
  • "cancel_reason": "not_paid",
  • "cancelled_at": "2019-08-24T14:15:22Z",
  • "trial_start": "2019-08-24T14:15:22Z",
  • "current_term_start": "2019-08-24T14:15:22Z",
  • "current_term_end": "2019-08-24T14:15:22Z",
  • "next_billing_at": "2019-08-24T14:15:22Z",
  • "started_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deleted": true
}

End subscription

Ends a subscription and deletes the associated fields in the database

Authorizations:
BearerTokenAuth
path Parameters
subscription_id
required
string

Subscription id

query Parameters
select
Array of strings
expand
Array of strings

Responses

Sales

Sales are used to group related transactions, for example product and service sales with different invoice issuers for the same customer or original invoice and a refund.

Customer info for transactions is stored on the sale as well as reference to events that were paid in this sale.

List all sales

Lists all sales for a company

Customer is point in time property and is always expanded.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a sale

Retrieves information about an existing sale.

Customer is point in time property and is always expanded.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
sale_id
required
string

Sale ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "8wa9uiah28dawd123",
  • "transactions": [
    ],
  • "events": [
    ],
  • "company": "string",
  • "customer": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a sale

Allows for a partial update of a sale.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
sale_id
required
string

Sale ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
Array of ID (string) or Transaction (object) (ExpandableTransaction)
Array of ID (string) or Event (object) (ExpandableEvent)
ID (string) or CompanyResponse (object) (ExpandableCompany)
ID (string) or Customer (object) (ExpandableCustomer)

Responses

Request samples

Content type
application/json
{
  • "transactions": [
    ],
  • "events": [
    ],
  • "company": "string",
  • "customer": "string"
}

Response samples

Content type
application/json
{
  • "id": "8wa9uiah28dawd123",
  • "transactions": [
    ],
  • "events": [
    ],
  • "company": "string",
  • "customer": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a sale

Deletes a sale if allowed

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
sale_id
required
string

Sale ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Refund a marketplace sale

Marketplace sales originate from online bookings that include payments (represented as subtransactions in transactions under the sale).

This endpoint allows for a refund of the payments associated with the sale.

A refund is not possible if:

  • The underlying payment of a subtransaction has been settled to the merchant.
  • A subtransaction has been processed through HQ since the sale was created.

The possible error scenarios are explained in the 400 description below.

The refund, when successful, is different in these scenarios:

  • Completed Invoice: All subtransactions are refunded and a credit invoice is created.
  • Draft Invoice: All subtransactions are refunded and the invoice is deleted.
Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
sale_id
required
string

Sale ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "message": "Customer onboarding error.",
  • "code": "payment_has_been_settled"
}

Create a sale

Creates a sale

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
required
ID (string) or CompanyResponse (object) (ExpandableCompany)
Array of ID (string) or Transaction (object) (ExpandableTransaction)
Array of ID (string) or Event (object) (ExpandableEvent)
ID (string) or Customer (object) (ExpandableCustomer)

Responses

Request samples

Content type
application/json
{
  • "transactions": [
    ],
  • "events": [
    ],
  • "company": "string",
  • "customer": "string"
}

Response samples

Content type
application/json
{
  • "id": "8wa9uiah28dawd123",
  • "transactions": [
    ],
  • "events": [
    ],
  • "company": "string",
  • "customer": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Transactions

Transactions are made up of service and products that can be paid in subtransactions

Sends receipt for transaction

Sends a receipt to the specified user for the transaction with transaction_id

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
sale_id
required
string

Sale ID

transaction_id
required
string

Transaction ID

Request Body schema: application/json
email
string
object

Responses

Request samples

Content type
application/json
{
  • "email": "example@example.com",
  • "phone": {
    }
}

List all transactions

Lists all transactions for a company

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
object (TransactionsFilter)
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retreive a single transaction

Retreive a single transaction

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
transaction_id
required
string

Transaction ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "8wa9uiah28dawd123",
  • "company": "string",
  • "sale": "string",
  • "subtransactions": [
    ],
  • "employees": [
    ],
  • "line_items": [
    ],
  • "refunds": [
    ],
  • "refund_origin": "8wa9uiah28dawd123",
  • "invoice_number": 9001,
  • "note": "string",
  • "issuer": {
    },
  • "fiscalization": "string",
  • "currency": "ISK",
  • "total_amount": 1990,
  • "due_amount": 990,
  • "paid_on_marketplace_amount": 1000,
  • "origin": "marketplace",
  • "vat_amount": 478,
  • "tax_exemption_reason": "M01",
  • "type": "invoice",
  • "status": "draft",
  • "drafted_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "voided_at": "2019-08-24T14:15:22Z"
}

Update a transaction

Update a transaction

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
transaction_id
required
string

Transaction ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
ID (string) or CompanyResponse (object) (ExpandableCompany)
ID (string) or Sale (object) (ExpandableSale)
Array of ID (string) or Subtransaction (object) (ExpandableSubtransaction)
Array of ID (string) or Employee (object) (ExpandableEmployee)
Array of ID (string) or LineItem (object) (ExpandableLineItems)
refunds
Array of strings

References refunds for this transaction.

refund_origin
string

References the original transaction that was refunded.

note
string
object (Issuer)
fiscalization
string
currency
string
origin
string
Enum: "marketplace" "pos"

The origin of the transaction.

  • marketplace: The transaction was created via the marketplace.
  • pos: The transaction was created via the POS.
type
string
Enum: "invoice" "return" "refund" "refunded"
status
string
Enum: "draft" "completed"
completed_at
string <date-time>
voided_at
string <date-time>

Only supported to unset this field. That is done by providing the value as "zero date" (0001-01-01T00:00:00Z)

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "sale": "string",
  • "subtransactions": [
    ],
  • "employees": [
    ],
  • "line_items": [
    ],
  • "refunds": [
    ],
  • "refund_origin": "8wa9uiah28dawd123",
  • "note": "string",
  • "issuer": {
    },
  • "fiscalization": "string",
  • "currency": "ISK",
  • "origin": "marketplace",
  • "type": "invoice",
  • "status": "draft",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "voided_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "8wa9uiah28dawd123",
  • "company": "string",
  • "sale": "string",
  • "subtransactions": [
    ],
  • "employees": [
    ],
  • "line_items": [
    ],
  • "refunds": [
    ],
  • "refund_origin": "8wa9uiah28dawd123",
  • "invoice_number": 9001,
  • "note": "string",
  • "issuer": {
    },
  • "fiscalization": "string",
  • "currency": "ISK",
  • "total_amount": 1990,
  • "due_amount": 990,
  • "paid_on_marketplace_amount": 1000,
  • "origin": "marketplace",
  • "vat_amount": 478,
  • "tax_exemption_reason": "M01",
  • "type": "invoice",
  • "status": "draft",
  • "drafted_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "voided_at": "2019-08-24T14:15:22Z"
}

Delete a transaction

Delete a transaction

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
transaction_id
required
string

Transaction ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Create a transaction

Create a transaction

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
object (TransactionCreationBehavior)
Request Body schema: application/json
required
ID (string) or Sale (object) (ExpandableSale)
ID (string) or CompanyResponse (object) (ExpandableCompany)
Array of ID (string) or Subtransaction (object) (ExpandableSubtransaction)
Array of ID (string) or Employee (object) (ExpandableEmployee)
Array of ID (string) or LineItem (object) (ExpandableLineItems)
refunds
Array of strings

References refunds for this transaction.

refund_origin
string

References the original transaction that was refunded.

note
string
object (Issuer)
fiscalization
string
currency
string
origin
string
Enum: "marketplace" "pos"

The origin of the transaction.

  • marketplace: The transaction was created via the marketplace.
  • pos: The transaction was created via the POS.
type
string
Enum: "invoice" "return" "refund" "refunded"
status
string
Enum: "draft" "completed"
completed_at
string <date-time>
voided_at
string <date-time>

Only supported to unset this field. That is done by providing the value as "zero date" (0001-01-01T00:00:00Z)

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "sale": "string",
  • "subtransactions": [
    ],
  • "employees": [
    ],
  • "line_items": [
    ],
  • "refunds": [
    ],
  • "refund_origin": "8wa9uiah28dawd123",
  • "note": "string",
  • "issuer": {
    },
  • "fiscalization": "string",
  • "currency": "ISK",
  • "origin": "marketplace",
  • "type": "invoice",
  • "status": "draft",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "voided_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "8wa9uiah28dawd123",
  • "company": "string",
  • "sale": "string",
  • "subtransactions": [
    ],
  • "employees": [
    ],
  • "line_items": [
    ],
  • "refunds": [
    ],
  • "refund_origin": "8wa9uiah28dawd123",
  • "invoice_number": 9001,
  • "note": "string",
  • "issuer": {
    },
  • "fiscalization": "string",
  • "currency": "ISK",
  • "total_amount": 1990,
  • "due_amount": 990,
  • "paid_on_marketplace_amount": 1000,
  • "origin": "marketplace",
  • "vat_amount": 478,
  • "tax_exemption_reason": "M01",
  • "type": "invoice",
  • "status": "draft",
  • "drafted_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "voided_at": "2019-08-24T14:15:22Z"
}

Line Items

List line items

List line items on a transaction

Product, event type and voucher are point in time properties

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
transaction_id
required
string

Transaction ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve line item

Retrieve a single line item

Product, event type and voucher are point in time properties

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
line_item_id
required
string

Line Item ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "8wa9uiah28dawd123",
  • "company": "string",
  • "title": "Awesome shampoo",
  • "quantity": 1,
  • "unit_price": {
    },
  • "discount": 20,
  • "vat_amount": 0.24,
  • "tax_exemption_reason": "M01",
  • "is_returning": false,
  • "employee": "string",
  • "product": "string",
  • "event_type": "string",
  • "voucher": {
    },
  • "event": "string",
  • "variation_id": "string",
  • "booked_by": "8wa9uiah28dawd123"
}

Update a line item

Update a line item if allowed

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
line_item_id
required
string

Line Item ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
transaction
string
ID (string) or CompanyResponse (object) (ExpandableCompany)
title
string
quantity
integer <int32>
object (UnitPrice)
discount
number <double> [ 0 .. 100 ]

Discount percentage

vat_amount
number <double>

The VAT ratio

tax_exemption_reason
string

The VAT exemption reason when the VAT amount is equal to 0

is_returning
boolean

True if the item was returned. Quantity and all amounts are positive for returning items.

ID (string) or Employee (object) (ExpandableEmployee)
ID (string) or Product (object) (ExpandableProduct)
ID (string) or EventType (object) (ExpandableEventType)
voucher_template
string
object (LineItemVoucher)

The voucher object is only returned when the line item is a voucher template.

The voucher object is accepted and returned when the line item is an amount voucher.

event
string
variation_id
string
booked_by
string

ID of the employee that booked the service on the appointment linked to the transaction. This is used to calculate commissions for the employee that booked the service.

Responses

Request samples

Content type
application/json
{
  • "transaction": "8wa9uiah28dawd123",
  • "company": "string",
  • "title": "Awesome shampoo",
  • "quantity": 1,
  • "unit_price": {
    },
  • "discount": 20,
  • "vat_amount": 0.24,
  • "tax_exemption_reason": "M01",
  • "is_returning": false,
  • "employee": "string",
  • "product": "string",
  • "event_type": "string",
  • "voucher_template": "string",
  • "voucher": {
    },
  • "event": "string",
  • "variation_id": "string",
  • "booked_by": "8wa9uiah28dawd123"
}

Response samples

Content type
application/json
{
  • "id": "8wa9uiah28dawd123",
  • "company": "string",
  • "title": "Awesome shampoo",
  • "quantity": 1,
  • "unit_price": {
    },
  • "discount": 20,
  • "vat_amount": 0.24,
  • "tax_exemption_reason": "M01",
  • "is_returning": false,
  • "employee": "string",
  • "product": "string",
  • "event_type": "string",
  • "voucher": {
    },
  • "event": "string",
  • "variation_id": "string",
  • "booked_by": "8wa9uiah28dawd123"
}

Delete a line item

Deletes a line item if allowed

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
line_item_id
required
string

Line Item ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Create a line item

Create a line item

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
transaction
required
string
title
required
string
required
object (UnitPrice)
ID (string) or CompanyResponse (object) (ExpandableCompany)
quantity
integer <int32>
discount
number <double> [ 0 .. 100 ]

Discount percentage

vat_amount
number <double>

The VAT ratio

tax_exemption_reason
string

The VAT exemption reason when the VAT amount is equal to 0

is_returning
boolean

True if the item was returned. Quantity and all amounts are positive for returning items.

ID (string) or Employee (object) (ExpandableEmployee)
ID (string) or Product (object) (ExpandableProduct)
ID (string) or EventType (object) (ExpandableEventType)
voucher_template
string
object (LineItemVoucher)

The voucher object is only returned when the line item is a voucher template.

The voucher object is accepted and returned when the line item is an amount voucher.

event
string
variation_id
string
booked_by
string

ID of the employee that booked the service on the appointment linked to the transaction. This is used to calculate commissions for the employee that booked the service.

Responses

Request samples

Content type
application/json
{
  • "transaction": "8wa9uiah28dawd123",
  • "company": "string",
  • "title": "Awesome shampoo",
  • "quantity": 1,
  • "unit_price": {
    },
  • "discount": 20,
  • "vat_amount": 0.24,
  • "tax_exemption_reason": "M01",
  • "is_returning": false,
  • "employee": "string",
  • "product": "string",
  • "event_type": "string",
  • "voucher_template": "string",
  • "voucher": {
    },
  • "event": "string",
  • "variation_id": "string",
  • "booked_by": "8wa9uiah28dawd123"
}

Response samples

Content type
application/json
{
  • "id": "8wa9uiah28dawd123",
  • "company": "string",
  • "title": "Awesome shampoo",
  • "quantity": 1,
  • "unit_price": {
    },
  • "discount": 20,
  • "vat_amount": 0.24,
  • "tax_exemption_reason": "M01",
  • "is_returning": false,
  • "employee": "string",
  • "product": "string",
  • "event_type": "string",
  • "voucher": {
    },
  • "event": "string",
  • "variation_id": "string",
  • "booked_by": "8wa9uiah28dawd123"
}

Subtransactions

Subtransactions make up the individual payment methods used in a single transaction.

A transaction of $20 might be split into subtransactions of $5 in cash and $15 by card.

List all subtransactions

Lists all subtransactions that belong to a transaction.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
transaction_id
required
string

Transaction ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a subtransaction

Creates a new subtransaction for a transaction or sale.

Cash and Other payment methods are settled immedietly.

The Card payment method gets created in the unprocessed state, wakes up the companies terminal and will be updated to successful once a payment has been made.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings
object (SubtransactionCreationBehavior)
Request Body schema: application/json
payment_method_id
required
string
transaction_id
required
string
amount
required
number <double>
currency
required
string
SubtransactionDataTerminal (object) or SubtransactionDataVoucher (object) or SubtransactionDataPrePayment (object) or SubtransactionDataPaylink (object) (SubtransactionData)
note
string

Responses

Request samples

Content type
application/json
{
  • "amount": 2990,
  • "currency": "ISK",
  • "payment_method_id": "31aadiah28usli390",
  • "data": {
    },
  • "transaction_id": "8wa9uiah28dawd123",
  • "note": "string"
}

Response samples

Content type
application/json
{
  • "id": "8wa9uiah28dawd123",
  • "amount": 2990,
  • "currency": "ISK",
  • "state": "pending",
  • "failure_state": "declined",
  • "origin": "checkin",
  • "payment_method_id": "31aadiah28usli390",
  • "note": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Retrieve a subtransaction

Retrieves information about an existing subtransaction.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
subtransaction_id
required
string

Subtransaction ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "8wa9uiah28dawd123",
  • "amount": 2990,
  • "currency": "ISK",
  • "state": "pending",
  • "failure_state": "declined",
  • "origin": "checkin",
  • "payment_method_id": "31aadiah28usli390",
  • "note": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a subtransaction

Deletes a subtransaction.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
subtransaction_id
required
string

Subtransaction ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Issuers

List available invoice issuers

Lists all available invoice issuers for a company.

This includes the company and all employees that issue their own invoices.

Disabled employees are not included.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
object (IssuersFilter)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Claims

List all claims

Lists all claims for a company

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
object (ClaimsFilter)
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

User

User management.

Get user

Gets current user information, inferred from token.

This endpoint is subject to extreme change in the near future and offers no promise of backwards compatability.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "email": "example@example.com",
  • "locale": "en",
  • "image": {},
  • "companies": [
    ],
  • "connections": {
    },
  • "employees": [
    ]
}

OAuth

Starts an OAuth flow for a user.

Authorizations:
BearerTokenAuth
query Parameters
provider
required
string
Enum: "google" "saltpay"
redirect_uri
string

The URI to redirect to after the OAuth flow is complete.

Responses

Tokens

API Tokens can be used to authenticate requests to the API.

Create token

Creates a personal API token that can be used for API interaction.

Authorizations:
Email/Password
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
name
string

Responses

Request samples

Content type
application/json
{
  • "name": "My token"
}

Response samples

Content type
application/json
{
  • "id": "7awdXawZoolkjad37a",
  • "name": "My token",
  • "token": "c33d249421c46ae3f0962d5449cfabd8d43c7aa634789afb4e65fa9d94f94138",
  • "created_at": "2019-08-24T14:15:22Z"
}

List tokens

Lists existing tokens tied to user.

Authorizations:
BearerTokenAuth
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get token

Gets a token tied to user.

Authorizations:
BearerTokenAuth
path Parameters
token_id
required
string

Token ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXawZoolkjad37a",
  • "name": "My token",
  • "token": "c33d249421c46ae3f0962d5449cfabd8d43c7aa634789afb4e65fa9d94f94138",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete a token

Deletes a token.

Authorizations:
Email/Password
path Parameters
token_id
required
string

Token ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Terminals

Terminals are used to charge credit cards for services.

List all user terminals

Lists all terminals connected to user.

Authorizations:
BearerTokenAuthoAuth 2.0
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get user terminal

Retrieves user terminal with ID.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
terminal_id
required
string
Example: dwawd8awudawd

Terminal ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "readable_identifier": "Suzy's terminal",
  • "brand": "string",
  • "model": "string",
  • "provider": "Istari",
  • "serial": "string",
  • "issuer": "string",
  • "description": "string",
  • "default": true,
  • "created_at": 0
}

Delete a user terminal

Deletes a terminal connected to user.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
terminal_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Google Calendar

Get Google Calendar connection

Returns the Google Calendar connection for the user.

Authorizations:
BearerTokenAuth

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "Noona",
  • "sync_events": true,
  • "sync_blocked_times_to_google": true,
  • "sync_blocked_times_to_noona": true
}

Create Google Calendar connection

Creates a new Google Calendar connection for the user.

Authorizations:
BearerTokenAuth
Request Body schema: application/json
sync_events
boolean
Default: true

Whether events should be synced between Noona and Google Calendar.

sync_blocked_times_to_google
boolean
Default: true

Whether blocked times should be synced from Noona to Google.

sync_blocked_times_to_noona
boolean
Default: true

Whether blocked times should be synced from Google to Noona.

Responses

Request samples

Content type
application/json
{
  • "sync_events": true,
  • "sync_blocked_times_to_google": true,
  • "sync_blocked_times_to_noona": true
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "Noona",
  • "sync_events": true,
  • "sync_blocked_times_to_google": true,
  • "sync_blocked_times_to_noona": true
}

Delete Google Calendar connection

Deletes the Google Calendar connection for the user.

Authorizations:
BearerTokenAuth

Responses

Metrics

Retrieve sales metrics

Retrieves sales metrics for a company for a specific timeframe.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "transactions": {
    },
  • "payments": {
    }
}

Retrieve events metrics

Retrieves event/booking metrics for a company for a specific timeframe.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
object (EventsMetricsFilter)

Responses

Response samples

Content type
application/json
{
  • "events": {
    },
  • "guests": {
    },
  • "marketplace_events": {
    },
  • "new_customers": {
    },
  • "occupancy": {
    }
}

Stream sales metrics

Streams sales metrics for a company for a specific timeframe

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Retrieve aggregated bookings data

Retrieves aggregated bookings data for a company for a specific timeframe.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
group_by
required
Array of strings <enum>
Items Enum: "booking_day" "created_day" "booking_source_group" "number_of_guests" "status" "duration" "start_time" "event_type"
required
object (EventsAggregateFilter)
select
Array of strings
expand
Array of strings
aggregated_fields
Array of strings <enum>
Items Enum: "count" "hours" "new_customers" "number_of_guests"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve aggregated customers data

Retrieves aggregated customers data for a company for a specific timeframe.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
group_by
required
Array of strings <enum>
Items Value: "time_bucket"
required
object (CustomersAggregateFilter)
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve aggregated SMS messages data

Retrieves aggregated SMS messages data for a company for a specific timeframe.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string

Company ID

query Parameters
group_by
required
Array of strings <enum>
Items Value: "time_bucket"
required
object (SMSMessagesAggregateFilter)
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Activities

Activities are used to track changes to resources in the Noona ecosystem.

List all activities at company

Lists activities for all resources at company. (Last 100)

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (ActivityFilter)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List activities for event

Lists activities for event. Activities are sorted in descending order by occurrance.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
event_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List activities for event type

Lists activities for event type. Activities are sorted in descending order by occurrance.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
event_type_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List activities for customer

Lists activities for customer. Activities are sorted in descending order by occurrance.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
customer_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List activities for payment

Lists activities for payment. Activities are sorted in descending order by occurrance.

Authorizations:
BearerTokenAuthoAuth 2.0
path Parameters
payment_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

OAuth

OAuth is used to authenticate users and applications to the Noona API.

Get OAuth public key

Returns the Noona OAuth public key.

The public can be used to verify the signatures of identity tokens issued by Noona.

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "kty": "RSA",
  • "use": "sig",
  • "kid": "1",
  • "n": "string",
  • "e": "string",
  • "alg": "RS256"
}

Get OAuth token

Returns an OAuth token. This is the final step of the flow. Needs a valid authorization code that was generated from the consent screen. Also needs the client_id and client_secret of the application.

query Parameters
client_id
required
string
Example: client_id=
client_secret
required
string
Example: client_secret=
Request Body schema:
grant_type
required
string <enum>
Enum: "authorization_code" "refresh_token"
code
string
refresh_token
string

Responses

Request samples

Content type
No sample

Response samples

Content type
application/json
{
  • "token_type": "Bearer",
  • "expires_at": "2020-08-24T14:15:22Z",
  • "access_token": "7awdXwZoedakjad37a7awdXwZoedakjad37a7awdXwZoedakjad37a",
  • "refresh_token": "7awdXwZoedakjad37a7awdXwZoedakjad37a"
}

Create OAuth consent

Approves the OAuth consent for the user against a specific application.

Authorizations:
BearerTokenAuth
Request Body schema: application/json
company_id
required
string
client_id
required
string
redirect_uri
required
string
response_type
required
string <enum>
Value: "code"
scopes
required
Array of strings <enum> (OAuthScopes)
Items Enum: "activities:read" "blocked_times:read" "blocked_times:write" "claims:read" "companies:read" "customer_groups:read" "customer_groups:write" "customers:read" "customers:write" "emails:read" "employees:read" "employees:write" "event_statuses:read" "event_statuses:write" "event_type_groups:read" "event_types:read" "event_types:write" "events:read" "events:write" "issuers:read" "memos:read" "memos:write" "metrics:read" "notifications:read" "notifications:write" "payment_methods:read" "payments:read" "payments:write" "product_groups:read" "product_groups:write" "products:read" "products:write" "properties:read" "properties:write" "push_notifications:read" "resources:read" "resources:write" "rule_set_templates:read" "rule_set_templates:write" "rule_sets:read" "rule_sets:write" "sales:read" "sales:write" "settlements:read" "sms_messages:read" "terminals:read" "terminals:write" "time_slots:read" "user:read" "voucher_templates:read" "voucher_templates:write" "vouchers:read" "vouchers:write" "waitlists:read" "waitlists:write"
state
string

Responses

Request samples

Content type
application/json
{
  • "company_id": "7awdXwZoedakjad37a",
  • "client_id": "7awdXwZoedakjad37a",
  • "redirect_uri": "https://example.com",
  • "state": "1234567890",
  • "response_type": "code",
  • "scopes": [
    ]
}

Response samples

Content type
application/json

Start OAuth flow

Redirects the user to the consent screen with the appropriate parameters.

query Parameters
client_id
required
string
Example: client_id=dwawd8awudawd
redirect_uri
required
string
Example: redirect_uri=https://example.com
response_type
required
string
Example: response_type=code
scope
required
Array of strings <enum> (OAuthScopes)
Items Enum: "activities:read" "blocked_times:read" "blocked_times:write" "claims:read" "companies:read" "customer_groups:read" "customer_groups:write" "customers:read" "customers:write" "emails:read" "employees:read" "employees:write" "event_statuses:read" "event_statuses:write" "event_type_groups:read" "event_types:read" "event_types:write" "events:read" "events:write" "issuers:read" "memos:read" "memos:write" "metrics:read" "notifications:read" "notifications:write" "payment_methods:read" "payments:read" "payments:write" "product_groups:read" "product_groups:write" "products:read" "products:write" "properties:read" "properties:write" "push_notifications:read" "resources:read" "resources:write" "rule_set_templates:read" "rule_set_templates:write" "rule_sets:read" "rule_sets:write" "sales:read" "sales:write" "settlements:read" "sms_messages:read" "terminals:read" "terminals:write" "time_slots:read" "user:read" "voucher_templates:read" "voucher_templates:write" "vouchers:read" "vouchers:write" "waitlists:read" "waitlists:write"
state
string
Example: state=dwawd8awudawd

Responses

List OAuth scopes

Lists all available OAuth scopes.

Responses

Response samples

Content type
application/json
[
  • "activities:read"
]

Applications

Applications are created by third party developers to gain scoped access to the Noona API on behalf of users.

List applications

Lists all oauth applications that the user has access to.

Authorizations:
BearerTokenAuth
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create application

Creates a new oauth application.

Authorizations:
BearerTokenAuth
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
id
string
logo
string
name
string

Shown to the user when they are asked to give consent.

object

Localized titles for the application in different languages.

developer_name
string
developer_url
string

Home page or documentation for your application.

description
string

Short text about the functionality of the app that appears next to the icon in the list.

object

Localized short descriptions for the application.

about
string

A longer description of the application which opens in a modal and support HTML.

redirect_uris
Array of strings
scopes
Array of strings <enum> (OAuthScopes)
Items Enum: "activities:read" "blocked_times:read" "blocked_times:write" "claims:read" "companies:read" "customer_groups:read" "customer_groups:write" "customers:read" "customers:write" "emails:read" "employees:read" "employees:write" "event_statuses:read" "event_statuses:write" "event_type_groups:read" "event_types:read" "event_types:write" "events:read" "events:write" "issuers:read" "memos:read" "memos:write" "metrics:read" "notifications:read" "notifications:write" "payment_methods:read" "payments:read" "payments:write" "product_groups:read" "product_groups:write" "products:read" "products:write" "properties:read" "properties:write" "push_notifications:read" "resources:read" "resources:write" "rule_set_templates:read" "rule_set_templates:write" "rule_sets:read" "rule_sets:write" "sales:read" "sales:write" "settlements:read" "sms_messages:read" "terminals:read" "terminals:write" "time_slots:read" "user:read" "voucher_templates:read" "voucher_templates:write" "vouchers:read" "vouchers:write" "waitlists:read" "waitlists:write"
public
boolean

If true, the application will be usable from outside of the company.

app_store
boolean

If true, the application will be listed in the Noona App Store.

show_in_navigation
boolean

If true, the application will appear in the navigation within Noona HQ.

When clicked, the application's main redirect_uri will be displayed in an iFrame.

verticals
Array of strings (CompanyVertical)
Items Enum: "appointment" "restaurant"

The verticals the application is available in.

If omitted or empty, the application is available for all verticals.

countries
Array of strings

The countries the application is available in.

If omitted or empty, the application is available in all countries.

payment_type
string
Enum: "free" "one-time" "subscription"
price
integer <int32>

Price in x100 format. (100 is 1.00)

currency
string
approved
boolean

Responses

Request samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "King Accounting Connection",
  • "name_translations": {
    },
  • "developer_name": "King Accounting",
  • "description": "King Accounting Connection automatically syncs your Noona POS system with the King Accounting software.",
  • "description_translations": {
    },
  • "about": "string",
  • "redirect_uris": [],
  • "scopes": [
    ],
  • "public": true,
  • "app_store": true,
  • "show_in_navigation": true,
  • "verticals": [
    ],
  • "countries": [
    ],
  • "payment_type": "free",
  • "price": 1000,
  • "currency": "ISK",
  • "approved": true
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "King Accounting Connection",
  • "name_translations": {
    },
  • "developer_name": "King Accounting",
  • "description": "King Accounting Connection automatically syncs your Noona POS system with the King Accounting software.",
  • "description_translations": {
    },
  • "about": "string",
  • "redirect_uris": [],
  • "scopes": [
    ],
  • "public": true,
  • "app_store": true,
  • "show_in_navigation": true,
  • "verticals": [
    ],
  • "countries": [
    ],
  • "payment_type": "free",
  • "price": 1000,
  • "currency": "ISK",
  • "client_id": "7awdXwZoedakjad37a",
  • "client_secret": "7awdXwZoedakjad37a7awdXwZoedakjad37a7awdXwZoedakjad37a",
  • "approved": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get application

Returns the oauth application with the specified id.

Authorizations:
BearerTokenAuth
path Parameters
application_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "King Accounting Connection",
  • "name_translations": {
    },
  • "developer_name": "King Accounting",
  • "description": "King Accounting Connection automatically syncs your Noona POS system with the King Accounting software.",
  • "description_translations": {
    },
  • "about": "string",
  • "redirect_uris": [],
  • "scopes": [
    ],
  • "public": true,
  • "app_store": true,
  • "show_in_navigation": true,
  • "verticals": [
    ],
  • "countries": [
    ],
  • "payment_type": "free",
  • "price": 1000,
  • "currency": "ISK",
  • "client_id": "7awdXwZoedakjad37a",
  • "client_secret": "7awdXwZoedakjad37a7awdXwZoedakjad37a7awdXwZoedakjad37a",
  • "approved": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update application

Updates the oauth application with the specified id.

Authorizations:
BearerTokenAuth
path Parameters
application_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
id
string
logo
string
name
string

Shown to the user when they are asked to give consent.

object

Localized titles for the application in different languages.

developer_name
string
developer_url
string

Home page or documentation for your application.

description
string

Short text about the functionality of the app that appears next to the icon in the list.

object

Localized short descriptions for the application.

about
string

A longer description of the application which opens in a modal and support HTML.

redirect_uris
Array of strings
scopes
Array of strings <enum> (OAuthScopes)
Items Enum: "activities:read" "blocked_times:read" "blocked_times:write" "claims:read" "companies:read" "customer_groups:read" "customer_groups:write" "customers:read" "customers:write" "emails:read" "employees:read" "employees:write" "event_statuses:read" "event_statuses:write" "event_type_groups:read" "event_types:read" "event_types:write" "events:read" "events:write" "issuers:read" "memos:read" "memos:write" "metrics:read" "notifications:read" "notifications:write" "payment_methods:read" "payments:read" "payments:write" "product_groups:read" "product_groups:write" "products:read" "products:write" "properties:read" "properties:write" "push_notifications:read" "resources:read" "resources:write" "rule_set_templates:read" "rule_set_templates:write" "rule_sets:read" "rule_sets:write" "sales:read" "sales:write" "settlements:read" "sms_messages:read" "terminals:read" "terminals:write" "time_slots:read" "user:read" "voucher_templates:read" "voucher_templates:write" "vouchers:read" "vouchers:write" "waitlists:read" "waitlists:write"
public
boolean

If true, the application will be usable from outside of the company.

app_store
boolean

If true, the application will be listed in the Noona App Store.

show_in_navigation
boolean

If true, the application will appear in the navigation within Noona HQ.

When clicked, the application's main redirect_uri will be displayed in an iFrame.

verticals
Array of strings (CompanyVertical)
Items Enum: "appointment" "restaurant"

The verticals the application is available in.

If omitted or empty, the application is available for all verticals.

countries
Array of strings

The countries the application is available in.

If omitted or empty, the application is available in all countries.

payment_type
string
Enum: "free" "one-time" "subscription"
price
integer <int32>

Price in x100 format. (100 is 1.00)

currency
string
approved
boolean

Responses

Request samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "King Accounting Connection",
  • "name_translations": {
    },
  • "developer_name": "King Accounting",
  • "description": "King Accounting Connection automatically syncs your Noona POS system with the King Accounting software.",
  • "description_translations": {
    },
  • "about": "string",
  • "redirect_uris": [],
  • "scopes": [
    ],
  • "public": true,
  • "app_store": true,
  • "show_in_navigation": true,
  • "verticals": [
    ],
  • "countries": [
    ],
  • "payment_type": "free",
  • "price": 1000,
  • "currency": "ISK",
  • "approved": true
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "King Accounting Connection",
  • "name_translations": {
    },
  • "developer_name": "King Accounting",
  • "description": "King Accounting Connection automatically syncs your Noona POS system with the King Accounting software.",
  • "description_translations": {
    },
  • "about": "string",
  • "redirect_uris": [],
  • "scopes": [
    ],
  • "public": true,
  • "app_store": true,
  • "show_in_navigation": true,
  • "verticals": [
    ],
  • "countries": [
    ],
  • "payment_type": "free",
  • "price": 1000,
  • "currency": "ISK",
  • "client_id": "7awdXwZoedakjad37a",
  • "client_secret": "7awdXwZoedakjad37a7awdXwZoedakjad37a7awdXwZoedakjad37a",
  • "approved": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete application

Deletes the oauth application with the specified id.

Authorizations:
BearerTokenAuth
path Parameters
application_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "King Accounting Connection",
  • "name_translations": {
    },
  • "developer_name": "King Accounting",
  • "description": "King Accounting Connection automatically syncs your Noona POS system with the King Accounting software.",
  • "description_translations": {
    },
  • "about": "string",
  • "redirect_uris": [],
  • "scopes": [
    ],
  • "public": true,
  • "app_store": true,
  • "show_in_navigation": true,
  • "verticals": [
    ],
  • "countries": [
    ],
  • "payment_type": "free",
  • "price": 1000,
  • "currency": "ISK",
  • "client_id": "7awdXwZoedakjad37a",
  • "client_secret": "7awdXwZoedakjad37a7awdXwZoedakjad37a7awdXwZoedakjad37a",
  • "approved": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get application metrics

Returns the metrics for the oauth application with the specified id.

Authorizations:
BearerTokenAuth
path Parameters
application_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "approved": true,
  • "users": {
    },
  • "revenue": {
    }
}

List application events

Returns the events for the oauth application with the specified id.

Authorizations:
BearerTokenAuth
path Parameters
application_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)
object (ApplicationEventFilter)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List application payouts

Returns the payouts for the oauth application with the specified id.

Authorizations:
BearerTokenAuth
path Parameters
application_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List application users

Returns the users for the oauth application with the specified id.

Authorizations:
BearerTokenAuth
path Parameters
application_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
expand
Array of strings
object (Sort)
object (Pagination)

Responses

Response samples

Content type
application/json
[]

Saltpay

The Saltpay integration enables connecting and sending payments to a Saltpay terminal.

List all Saltpay companies

Lists all Saltpay companies.

Authorizations:
BearerTokenAuth
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List all Saltpay stores at company

Lists all Saltpay stores at company.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string

Saltpay Company ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Link Saltpay bank account

Links a Saltpay bank account as a settlement account for the provided entity.

The entities that can be linked to a Saltpay bank account are:

  • Company

    Payments made to that company through the Noona marketplace will be settled to the linked Saltpay bank account.

  • User

    If a user is linked to a Saltpay bank account, and the company allows it, the user can receive payments through the Noona marketplace to the linked Saltpay bank account.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string

Saltpay Company ID

bank_account_id
required
string

Saltpay Bank Account ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
enterprise_id
string
Deprecated

Deprecated: use company_id instead

company_id
string

The company ID tied to the bank account.

user_id
string

The user ID tied to the bank account.

Note: A user can only tie a bank account to his own user ID.

Responses

Request samples

Content type
application/json
{
  • "enterprise_id": "7awdXwZoedakjad37a",
  • "company_id": "7awdXwZoedakjad37a",
  • "user_id": "7awdXwZoedakjad37a"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "Main account",
  • "description": "I want all the money here!",
  • "ssn": "0503205160",
  • "bank": "0542",
  • "book": "02",
  • "account": "220865",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

List all Saltpay stores

Lists all Saltpay stores.

Authorizations:
BearerTokenAuth
query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List all Saltpay terminals at a store

Lists all Saltpay terminals at a store.

Authorizations:
BearerTokenAuth
path Parameters
store_id
required
string

Store id

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update Saltpay terminal

Updates a Saltpay terminal. Used to control whether and how a terminal is connected to an issuer.

Authorizations:
BearerTokenAuth
path Parameters
store_id
required
string

Store id

terminal_id
required
string

Terminal id

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
issuer
string

The issuer tied to the terminal.

Responses

Request samples

Content type
application/json
{
  • "issuer": "string"
}

Response samples

Content type
application/json
{
  • "terminal_id": "7awdXwZoedakjad37a",
  • "terminal_name": "string",
  • "serial_number": "string",
  • "issuer": "string"
}

Fiscalization

Fiscalization is the process of sending data to an external system for the purpose of tax reporting.

Fiscalize transaction

If the transaction is not fiscalized, it will be fiscalized. If the transaction is already fiscalized, the fiscalization record will be returned.

Authorizations:
BearerTokenAuth
path Parameters
transaction_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings
Request Body schema: application/json
customer_tax_id
string

The customer's identification number in the tax authority's system.

Different between markets but an example is NIF in Portugal.

country_code
string

The customer's country code in the tax authority's system.

Different between markets but an example is PT in Portugal.

Responses

Request samples

Content type
application/json
{
  • "customer_tax_id": "dwawd8awudawd",
  • "country_code": "PT"
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "company": "7awdXwZoedakjad37a",
  • "data": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Refund fiscalized transaction

Creates a credit invoice for a fiscalized transaction in the Noona system, along with a fiscalization record for the credit invoice in the tax authority's system.

If the transaction is not fiscalized, an error will be returned.

Authorizations:
BearerTokenAuth
path Parameters
transaction_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings

Responses

Response samples

Content type
application/json
{
  • "id": "8wa9uiah28dawd123",
  • "company": "string",
  • "sale": "string",
  • "subtransactions": [
    ],
  • "employees": [
    ],
  • "line_items": [
    ],
  • "refunds": [
    ],
  • "refund_origin": "8wa9uiah28dawd123",
  • "invoice_number": 9001,
  • "note": "string",
  • "issuer": {
    },
  • "fiscalization": "string",
  • "currency": "ISK",
  • "total_amount": 1990,
  • "due_amount": 990,
  • "paid_on_marketplace_amount": 1000,
  • "origin": "marketplace",
  • "vat_amount": 478,
  • "tax_exemption_reason": "M01",
  • "type": "invoice",
  • "status": "draft",
  • "drafted_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "voided_at": "2019-08-24T14:15:22Z"
}

Download fiscalized transaction PDF

Download fiscalized transaction PDF

Authorizations:
BearerTokenAuth
path Parameters
transaction_id
required
string
Example: dwawd8awudawd

Responses

Send fiscalized transaction PDF

Sends fiscalized transaction PDF to an email address

Authorizations:
BearerTokenAuth
path Parameters
transaction_id
required
string
Example: dwawd8awudawd
Request Body schema: application/json
email
string

The email address to send the PDF to.

Responses

Request samples

Content type
application/json
{
  • "email": "dwawd8awudawd"
}

Get fiscalization onboarding data

Fetches the data fiscalization for the company.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
select
Array of strings

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Upsert fiscalization onboarding data

Uses the provided data to setup the fiscalization for the company.

If the company already has fiscalization data, it will be updated.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string
Example: dwawd8awudawd
Request Body schema: application/json
FiscalizationOnboardingDataSaltPay (object) (FiscalizationOnboardingData)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete fiscalization onboarding data

Deletes the fiscalization data for the company.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string
Example: dwawd8awudawd

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Download fiscalization report

Downloads fiscalization report for the company over a specified period.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string
Example: dwawd8awudawd
query Parameters
from
required
string <date-time>
Example: from=2020-01-01T00:00:00.000Z
to
required
string <date-time>
Example: to=2020-02-01T00:00:00.000Z

Responses

Adyen

The Adyen integration enables activating various payment services.

Adyen company onboarding status

Gets the status of the Adyen KYC process for a company.

The onboarding process is a series of steps that must be completed before a company can receive payments through Adyen.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "onboarding_link": "string",
  • "onboarded_at": "2019-08-24T14:15:22Z",
  • "onboarding_status": "not_started",
  • "error_codes": [
    ],
  • "transfer_instrument": {
    }
}

Adyen company onboarding

Initiates or resumes the Adyen KYC process for a company.

The onboarding process is a series of steps that must be completed before a company can receive payments through Adyen.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
redirect_url
required
string

The URL that Adyen should redirect to after the onboarding process is complete.

Responses

Request samples

Content type
application/json
{
  • "redirect_url": "string"
}

Response samples

Content type
application/json
{
  • "onboarding_link": "string",
  • "onboarded_at": "2019-08-24T14:15:22Z",
  • "onboarding_status": "not_started",
  • "error_codes": [
    ],
  • "transfer_instrument": {
    }
}

Adyen user onboarding status

Gets the status of the Adyen KYC process for a user.

This is only applicable for users that issue their own invoices.

The onboarding process is a series of steps that must be completed before a user can receive payments through Adyen.

Authorizations:
BearerTokenAuth
path Parameters
user_id
required
string

User ID

query Parameters
select
Array of strings
expand
Array of strings

Responses

Response samples

Content type
application/json
{
  • "onboarding_link": "string",
  • "onboarded_at": "2019-08-24T14:15:22Z",
  • "onboarding_status": "not_started",
  • "error_codes": [
    ],
  • "transfer_instrument": {
    }
}

Adyen user onboarding

Initiates or resumes the Adyen KYC process for a user.

This is only applicable for users that issue their own invoices.

The onboarding process is a series of steps that must be completed before a user can receive payments through Adyen.

Authorizations:
BearerTokenAuth
path Parameters
user_id
required
string

User ID

query Parameters
select
Array of strings
expand
Array of strings
Request Body schema: application/json
redirect_url
required
string

The URL that Adyen should redirect to after the onboarding process is complete.

Responses

Request samples

Content type
application/json
{
  • "redirect_url": "string"
}

Response samples

Content type
application/json
{
  • "onboarding_link": "string",
  • "onboarded_at": "2019-08-24T14:15:22Z",
  • "onboarding_status": "not_started",
  • "error_codes": [
    ],
  • "transfer_instrument": {
    }
}

Mozrest

The Mozrest integration allows companies to appear on various external booking platforms.

List booking channels

Lists all Mozrest booking channels in the context of a specific company.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string

Company ID

query Parameters
select
Array of strings
expand
Array of strings
object (MozrestQueryBehavior)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update booking channel

Updates a Mozrest booking channel in the context of a company.

Authorizations:
BearerTokenAuth
path Parameters
company_id
required
string

Company ID

booking_channel_id
required
string

Booking Channel ID

query Parameters
select
Array of strings
expand
Array of strings
object (MozrestQueryBehavior)
Request Body schema: application/json
enabled
required
boolean

Responses

Request samples

Content type
application/json
{
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "id": "7awdXwZoedakjad37a",
  • "name": "Tripadvisor",
  • "enabled": true,
  • "status": "not_enabled",
  • "install_link": "https://meta.oauth/mozrest"
}