Viviot.Api

<back to all web services

InsertService

Requires Authentication
Requires any of the roles:Admin, TenantAdmin, MarketplaceAdmin
The following routes are available for this service:
POST/serviceInserts a new service.
InsertService Parameters:
NameParameterData TypeRequiredDescription
OrganizationIdbodystringYesOrganization Id (GUID)
ServiceTypebodyServiceTypeYesService type (reservation, request, external)

Allowable Values

  • Reservation
  • Request
  • External
  • Ticket
ImagebodyImageDtoNoImage object for setting image name, content and mime type.
NamebodystringYesService name
DescriptionbodystringNoService description
SubTitlebodystringNoSub title intended to end up under the service title in the app.
IsPublicbodybooleanNoValue indicating whether the service is public or private (default private)
RequireConfirmationbodybooleanNoValue indicating whether the reservation has to be confirmed before it can be actualized.
RequirePaymentbodybooleanNoValue indicating whether a payment should be completed before the service can be reserved.
CurrencyIdbodystringNoCurrency Id (GUID)
VATPercentagebodyintegerNoVAT percentage for each proddcut and addon in the service.
PaymentProviderConfigIdbodystringNoPayment provider Id (GUID)
InvoicingProviderConfigIdbodystringNoInvoicing provider Id (GUID)
ProductsbodyList<ServiceProductDto>YesList of service products.
AddonsbodyList<ServiceAddonDto>NoList of service addons.
TimeOptionbodyServiceTimeOptionDtoNoTime & date configuration options.
PersonOptionbodyServicePersonOptionDtoNoPerson configuration options for a service.
BaseRequest Parameters:
NameParameterData TypeRequiredDescription
VersionformintegerNoApi version
ServiceType Enum:
NameValue
Reservation1
Request2
External3
Ticket4
ImageDto Parameters:
NameParameterData TypeRequiredDescription
FileNameformstringNo
ContentformstringNo
MimeTypeformstringNo
ServiceProductDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
NameformstringNo
DescriptionformstringNo
UnitPriceformdecimal?No
VATPercentageformdecimal?No
ImageformImageDtoNo
ExternalIdformstringNo
ReservationDataformServiceProductReservationDtoNo
RequestDataformServiceProductRequestDtoNo
ExternalDataformServiceProductExternalDtoNo
TicketDataformServiceProductTicketDtoNo
ServiceProductReservationDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
AccessTemplateGroupIdformGuid?No
AccessTemplateIdformGuid?No
AutoAssignAccessTemplateformbool?No
ServiceProductRequestDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
OptionsformList<string>No
AllowCommentsformboolNo
ApprovedTemplateformstringNo
DeniedTemplateformstringNo
ProcessingTemplateformstringNo
ServiceProductExternalDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
ServiceUrlformstringNo
Latitudeformdecimal?No
Longitudeformdecimal?No
Ratingformdecimal?No
ServiceProductTicketDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
AccessTemplateIdformGuidNo
ServiceAddonDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
NameformstringNo
UnitPriceformdecimal?No
VATPercentageformdecimal?No
MaxQuantityformint?No
ExternalIdformstringNo
ServiceTimeOptionDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
TypeformServiceTimeOptionTypeNo
DailyOptionsformTimeDailyDtoNo
TimespanOptionsformTimespanDtoNo
ServiceTimeOptionType Enum:
NameValue
Daily0
Timespan1
TimeDailyDto Parameters:
NameParameterData TypeRequiredDescription
CheckinformTimeSpan?No
CheckoutformTimeSpan?No
TimespanDto Parameters:
NameParameterData TypeRequiredDescription
MinDurationformintNo
MaxDurationformintNo
Incrementformint?No
IncrementPriceMultiplierformdecimal?No
ServicePersonOptionDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
CanSelectChildrenformboolNo
MaxAdultCountformint?No
MaxChildrenCountformint?No
AdultPriceMultiplierformdecimalNo
ChildPriceMultiplierformdecimalNo
ServiceResponse Parameters:
NameParameterData TypeRequiredDescription
DataformServiceViewNo
BaseResponse Parameters:
NameParameterData TypeRequiredDescription
ResponseStatusformResponseStatusNo
ServiceView Parameters:
NameParameterData TypeRequiredDescription
IdformGuidNo
OrganizationIdformGuidNo
ServiceTypeformServiceTypeNo
NameformstringNo
DescriptionformstringNo
SubTitleformstringNo
ImageUrlformstringNo
IsPublicformboolNo
RequireConfirmationformbool?No
RequirePaymentformbool?No
Latitudeformdecimal?No
Longitudeformdecimal?No
CurrencyformCurrencyDtoNo
VATPercentageformdecimal?No
ProductsformList<ServiceProductView>No
AddonsformList<ServiceAddonDto>No
TimeOptionformServiceTimeOptionDtoNo
PersonOptionformServicePersonOptionDtoNo
ProvidersformDictionary<string, Guid>No
OrganizationformOrganizationDtoNo
CurrencyDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuidNo
NameformstringNo
CodeformstringNo
SymbolformstringNo
ServiceProductView Parameters:
NameParameterData TypeRequiredDescription
IdformGuidNo
NameformstringNo
DescriptionformstringNo
UnitPriceformdecimal?No
MinimalPriceformdecimal?No
VATPercentageformdecimal?No
ImageUrlformstringNo
ExternalIdformList<string>No
ReservationDataformServiceProductReservationDtoNo
RequestDataformServiceProductRequestDtoNo
ExternalDataformServiceProductExternalDtoNo
TicketDataformServiceProductTicketDtoNo
OrganizationDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
CodeformstringNo

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /service HTTP/1.1 
Host: api.4spaces.io 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"organizationId":"00000000000000000000000000000000","serviceType":1,"image":{"fileName":"String","content":"String","mimeType":"String"},"name":"String","description":"String","subTitle":"String","isPublic":false,"requireConfirmation":false,"requirePayment":false,"currencyId":"00000000000000000000000000000000","vatPercentage":0,"paymentProviderConfigId":"00000000000000000000000000000000","invoicingProviderConfigId":"00000000000000000000000000000000","products":[{"id":"00000000000000000000000000000000","name":"String","description":"String","unitPrice":0,"vatPercentage":0,"image":{"fileName":"String","content":"String","mimeType":"String"},"externalId":"String","reservationData":{"id":"00000000000000000000000000000000","accessTemplateGroupId":"00000000000000000000000000000000","accessTemplateId":"00000000000000000000000000000000","autoAssignAccessTemplate":false},"requestData":{"id":"00000000000000000000000000000000","options":["String"],"allowComments":false,"approvedTemplate":"String","deniedTemplate":"String","processingTemplate":"String"},"externalData":{"id":"00000000000000000000000000000000","serviceUrl":"String","latitude":0,"longitude":0,"rating":0},"ticketData":{"id":"00000000000000000000000000000000","accessTemplateId":"00000000000000000000000000000000"}}],"addons":[{"id":"00000000000000000000000000000000","name":"String","unitPrice":0,"vatPercentage":0,"maxQuantity":0,"externalId":"String"}],"timeOption":{"id":"00000000000000000000000000000000","type":0,"dailyOptions":{"checkin":"00:00:00","checkout":"00:00:00"},"timespanOptions":{"minDuration":0,"maxDuration":0,"increment":0,"incrementPriceMultiplier":0}},"personOption":{"id":"00000000000000000000000000000000","canSelectChildren":false,"maxAdultCount":0,"maxChildrenCount":0,"adultPriceMultiplier":0,"childPriceMultiplier":0},"version":0}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"data":{"id":"00000000000000000000000000000000","organizationId":"00000000000000000000000000000000","serviceType":1,"name":"String","description":"String","subTitle":"String","imageUrl":"String","isPublic":false,"requireConfirmation":false,"requirePayment":false,"latitude":0,"longitude":0,"currency":{"id":"00000000000000000000000000000000","name":"String","code":"String","symbol":"String"},"vatPercentage":0,"products":[{"id":"00000000000000000000000000000000","name":"String","description":"String","unitPrice":0,"minimalPrice":0,"vatPercentage":0,"imageUrl":"String","externalId":["String"],"reservationData":{"id":"00000000000000000000000000000000","accessTemplateGroupId":"00000000000000000000000000000000","accessTemplateId":"00000000000000000000000000000000","autoAssignAccessTemplate":false},"requestData":{"id":"00000000000000000000000000000000","options":["String"],"allowComments":false,"approvedTemplate":"String","deniedTemplate":"String","processingTemplate":"String"},"externalData":{"id":"00000000000000000000000000000000","serviceUrl":"String","latitude":0,"longitude":0,"rating":0},"ticketData":{"id":"00000000000000000000000000000000","accessTemplateId":"00000000000000000000000000000000"}}],"addons":[{"id":"00000000000000000000000000000000","name":"String","unitPrice":0,"vatPercentage":0,"maxQuantity":0,"externalId":"String"}],"timeOption":{"id":"00000000000000000000000000000000","type":0,"dailyOptions":{"checkin":"00:00:00","checkout":"00:00:00"},"timespanOptions":{"minDuration":0,"maxDuration":0,"increment":0,"incrementPriceMultiplier":0}},"personOption":{"id":"00000000000000000000000000000000","canSelectChildren":false,"maxAdultCount":0,"maxChildrenCount":0,"adultPriceMultiplier":0,"childPriceMultiplier":0},"providers":{"String":"00000000000000000000000000000000"},"organization":{"id":"00000000000000000000000000000000","code":"String"}},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}