Skip to content

Marketplace service endpoints

General headers

Header Name Type Description
Ocp-Apim-Subscription-Key string Appropriate subscription key you can get in the developer portal
Accept-Timezone string Supply a TimeZone id property acquired from Infocenter /timezones route or IANA code in order to get data with desired time offset. The default is UTC.
Content-Type string default: application/json;charset=UTF-8
Use a different charset if your application is not sending the data in utf-8. for example: application/json;charset=ISO-8859-1

Order (shopping cart)

url verb request response description
/orders POST Order OrderUpdateResponse if the object is technically correct it is created even when there are validation errors
/orders/{id} PUT Order OrderUpdateResponse if the object is technically correct it is updated even when there are validation errors
/orders/{id} GET id (orderNumber) OrderUpdateResponse Can be used to poll the order status or to get other known orders
get all ticket from the order /orders/{id}/tickets GET id (orderNumber) Ticket[]
/orders/{id} DELETE id (orderNumber) 200: -
error: OrderUpdateResponse
depending on the status of the order it removes it from the database or sets the status to deleted or cancelled.
/orders/{id}/items POST id (orderNumber)
OrderItem
OrderItemUpdateResponse add new order item to existing order
/orders/{id}/items/{itemId} PUT id (orderNumber)
itemId (orderItemNumber)
OrderItem
OrderItemUpdateResponse update existing order item in the order
/orders/{id}/items/{itemId} GET id (orderNumber)
itemId (orderItemNumber)
OrderItem
OrderItemUpdateResponse get existing order item in the order
/orders/{id}/items/{itemId} DELETE id (orderNumber)
itemId (orderItemNumber)
OrderItem
200: -
error: OrderItemUpdateResponse)
delete existing order item in the order
/orders/{id}/additionalproperty GET id (orderNumber) PropertyValueUpdateResponse get all additional properties in the order
/orders/{id}/additionalproperty/{propertyId} GET id (orderNumber)
propertyId
PropertyValueUpdateResponse get existing additional property in the order
/orders/{id}/additionalproperty POST id (orderNumber)
PropertyValue
PropertyValueUpdateResponse add new additional property to existing order
/orders/{id}/additionalproperty/{propertyId} PUT id (orderNumber)
propertyId
PropertyValue
PropertyValueUpdateResponse update existing additional property in the order
/orders/{id}/additionalproperty/{propertyId} DELETE id (orderNumber)
propertyId
200: -
error: PropertyValueUpdateResponse
delete existing additional property in the order
/orders/{id}/offers POST id (orderNumber)
ProductConfiguration
FindOfferResponse returns list of the offer bundles for provided product configurations
/orders/{id}/customer PUT id (orderNumber) OrderUpdateResponse updates the order with the person in the profile
/orders/{id}/billingaddress PUT id (orderNumber)
FullAddress
OrderUpdateResponse updates the order billing address with address provided in the body
/orders/{id}/shippingaddress PUT id (orderNumber)
FullAddress
OrderUpdateResponse updates the order shipping address with address provided in the body
/orders/{id}/billingaddress DELETE id (orderNumber) OrderUpdateResponse removes the order billing address
/orders/{id}/shippingaddress DELETE id (orderNumber) OrderUpdateResponse removes the order shipping address
/orders/{id}/place PUT id (orderNumber) OrderUpdateResponse moves the order forward to placed and goes through all statuses

If there are validation errors, http status code will be 400.

Keycard

url verb request response description
/keycard/validate PUT ValidateKeyCardRequest ValidateKeyCardResponse checks keycard for validity

ValidateKeyCardResponse

Property Type Description
validationMessages ValidationMessage[] validation messages
isValid boolean contains true if provided keycard is valid

Product

name url verb request response
Get product /products/{id} GET id Product
List of product availabilities /productavailability POST ProductAvailabilityRequest ProductAvailabilityResponse
List of product variant availabilities /productvariantavailability POST ProductVariantAvailabilityRequest ProductVariantAvailabilityResponse

Note

Whenever possible we try to supply information for the next 60 days. If there is no entry in the result for a specific day for the requested product or variant it means that we do not have any availability information, if there is an entry and the count=0, then the product is not available that day.

Note

For table reservation we try to supply information for the next 20 days. We create product and product variant availability entries.
Product and product variant availability entries have same values inside and there is no difference what to use.
Table reservation availability entry have additionaly AreaServed property which contains id of food establishment.
For Foratable and Aleno we do not provide actual amount of seats but just a possibility to host particular amount of guests on particular day.
For Resmio we provide actual amount of seats.

ProductAvailabilityRequest

Property Type Description
dateFrom DateTime? starting date of the period to query
dateUntil DateTime? end date of the period to query
availableDatesOnly bool true in the result are only entries with availabilities (with Count more than 0)
product string[] list of products to query
сontinuationToken string used for pagination
top int number of items in result
includeCount bool if there is total items count in response
partner string

ProductVariantAvailabilityRequest

Property Type Description
dateFrom DateTime? starting date of the period to query
dateUntil DateTime? end date of the period to query
availableDatesOnly bool true in the result are only entries with availabilities (with Count more than 0)
ProductVariant string[] list of product variants to query
сontinuationToken string used for pagination
top int number of items in result
includeCount bool if there is total items count in response
partner string

ProductAvailabilityResponse

Property Type Description
productIdentifier string
@product string full url to load the product
date DateTime the date of the availability
count int count of available seats
- an entry with count 0 means no availability
- no entry in the database or result means no information
service string the service identifier

ProductVariantAvailabilityResponse

Property Type Description
productIdentifier string
ProductVariantIdentifier string
@product string full url to load the product
@productVariant string full url to load the product variant
date DateTime the date of the availability
count int count of available seats
- an entry with count 0 means no availability
- no entry in the database or result means no information
service string the service identifier

OrderUpdateResponse

Property Type Description
validationMessages ValidationMessage[] validation messages occured during the order processing
order Order order object and terms to accept
itemOffers OrderItemResponse

OrderItemUpdateResponse

Property Type Description
validationMessages ValidationMessage[] validation messages occured during the order processing
orderItem OrderItem order item object
itemOffers OrderItemResponse

PropertyValueUpdateResponse

Property Type Description
validationMessages ValidationMessage[] validation messages occured during the order processing
propertyValues PropertyValue[] additional property objects

FindOfferResponse

Property Type Description
validationMessages ValidationMessage[] messages from the state machine
offerBundle OfferBundle[] offers to order items if there must be something chosen by the client

Accept terms

To accept the terms and conditions inside the order and any time during the process. This endpoint is using the same objects like the terms-endpoint in the profile service.

url verb request response
/orders/{id}/terms/{termCode} PUT TermVersionCheckRequest TermVersion

Info

Accepting the terms by using this call does not change the status of the order.

Initialize payment

This creates a checkout session - to use the web checkout - or a PaymentIntent - to proceed with a client api from Stripe - and returns everything which is needed to start the payment process on client side.

url verb request response
/orders/{id}/payment PUT InitPaymentDataRequest InitPaymentDataResponse
/orders/{id}/paymentforfutureusage PUT InitPaymentDataResponse
/orders/{id}/paymentforfutureusage DELETE InitPaymentDataResponse
/paymentmethod GET PaymentMethodListResponse
/paymentmethod/{id} DELETE PaymentMethodListResponse

InitPaymentDataRequest

Property Type Description
CreateCheckoutSession string true: creates a web checkout session
see https://stripe.com/en-ch/payments/checkout
false: creates a payment intent (default)
https://stripe.com/docs/payments/payment-intents
SuccessUrl string url to redirect after successful checkout (*)
ErrorUrl string url to return on error during the check out procedure at stripe (*)
Reference string any small text you want to appear in our/your invoice. For example you session-id or your order-number
PaymentMethodId string selected by the guest from the list of saved payment-method id's

(*) only if web checkout session was requested

InitPaymentDataResponse

Property Type Description
validationMessages ValidationMessage[] messages from the state machine
InitPaymentData InitPaymentData terms to accept in the TermVersionCheck objects of the order

InitPaymentData

Property Type Description
SessionId string Payment session id (third-party payment system)
only if web checkout session was requested
ClientSecret string important for native client integration with stripe api's
only if web a payment intent was requested
PaymentApiKey string client api key
Result bool true if successful
SetupForFutureUsage bool true when it is necessary to save payment method which will be used during the payment
PaymentProviderCustomerId string contains an information about customer which will be atteached to the user

PaymentMethodListResponse

Property Type Description
validationMessages ValidationMessage[] validation messages
PaymentMethodResponse PaymentMethodResponse[] payment methods

PaymentMethodResponse

Property Type Description
id string id of payment method
type string type of payment method (e.g. card)
brand string information about brand
expMonth string expiration month of payment method
expYear string expiration year of payment method
lastFour string last four numbers on the card
holder string information about holder
walletType string wallet type

Product

url verb request response
/products/{id} GET identifier Product

Partner

url verb request response
/partners/current GET Partner

OpenAPI document

All methods and response models can be viewed in the Developer Portal. To generate an API client you can use the following URLs without user authentication but still with the Subscription Key in the Header (Ocp-Apim-Subscription-Key) or as Query Parameter (subscription-key=<your-surbscription-key>):