Viviot.Api

<back to all web services

ExternalReservations

Requires Authentication
Requires the role:ReservationPublisher
The following routes are available for this service:
POST/client/reservationAccepts and stores a collection of reservations from an external system.
ExternalReservationsResponse Parameters:
NameParameterData TypeRequiredDescription
ReservationsformList<ReservationView>No
BaseResponse Parameters:
NameParameterData TypeRequiredDescription
ResponseStatusformResponseStatusNo
ReservationView Parameters:
NameParameterData TypeRequiredDescription
IdformGuidNo
StateformReservationStateNo
ReasonDeniedformstringNo
GuestsformList<ReservationGuestDto>No
AdditionalDataformReservationAdditionalDataDtoNo
VisitDataformReservationVisitDataDtoNo
AccessTemplatesformList<ReservationAccessTemplateDto>No
ExternalIdformstringNo
ReservationGuestInfosformList<ReservationGuestInfoDto>No
ReservationState Enum:
NameValue
New0
Assigned10
WaitingForConfirmation15
PendingActivation20
Active30
Expired40
Denied50
Cancelled60
ReservationGuestDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
ViviotIdformstringNo
GuestFirstNameformstringNo
GuestLastNameformstringNo
EmailformstringNo
PhoneformstringNo
GuestTypeformGuestTypeNo
Iso3166alpha2CodeformstringNo
SendInvitationformboolNo
SendAccountActivationEmailformboolNo
GuestType Enum:
NameValue
Business1
Leisure2
ReservationAdditionalDataDto Parameters:
NameParameterData TypeRequiredDescription
LicensePlatesformList<string>No
CommentformstringNo
WelcomeMessageformstringNo
CompanyformstringNo
AccessCardsformList<AccessCardDataDto>No
AccessCardDataDto Parameters:
NameParameterData TypeRequiredDescription
CardNumberformstringNo
ThingIdsformList<Guid>No
ReservationVisitDataDto Parameters:
NameParameterData TypeRequiredDescription
VisitTypeformVisitTypeNo
CheckinformDateTime?No
CheckoutformDateTime?No
DoesNotContainTimeInfoformbool?No
VisitType Enum:
NameValue
DateTime1
AccessCount2
ReservationAccessTemplateDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuidNo
NameformstringNo
DescriptionformstringNo
IsAvailableformboolNo
OccupiedUntilformDateTime?No
ReservationIdentifierformstringNo
AccessCodeInitializationStrategyformintNo
TagsformList<TagDto>No
SmartspacesformList<ReservationSmartSpaceDto>No
ThingsformList<ThingAccessTemplateDto>No
TagDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuidNo
NameformstringNo
TagGroupIdformGuidNo
ReservationSmartSpaceDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuidNo
NameformstringNo
AccessFromformTimeSpan?No
AccessToformTimeSpan?No
AccessCountformint?No
AccessCardNumbersformstringNo
ThingAccessTemplateDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
OrganizationIdformGuidNo
ThingIdformGuidNo
ThingNameformstringNo
ThingTypeNameformstringNo
ExclusiveformboolNo
AvailableFromformint?No
AvailableToformint?No
AccessCountformint?No
AccessLevelformstringNo
PermissionformList<string>No
ReservationGuestInfoDto Parameters:
NameParameterData TypeRequiredDescription
GuestFirstNameformstringNo
GuestLastNameformstringNo
CountryformstringNo
DateOfBirthformDateTimeNo
DocumentTypeformIdDocumentTypeNo
DocumentNumberformstringNo
GenderformGenderNo
TimestampformDateTimeNo
EmailformstringNo
IdDocumentType Enum:
NameValue
ObmejnaPrepustnica1
PotneListinePoMednarodniPogodbi2
OsebnaIzkaznica3
OrozniList4
PotniList5
UpravneListine6
VozniskoDovoljenje7
Gender Enum:
NameValue
Male1
Female2

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

HTTP + JSV

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

POST /client/reservation HTTP/1.1 
Host: api.4spaces.io 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	reservations: 
	[
		{
			id: 00000000000000000000000000000000,
			state: 0,
			reasonDenied: String,
			guests: 
			[
				{
					id: 00000000000000000000000000000000,
					viviotId: String,
					guestFirstName: String,
					guestLastName: String,
					email: String,
					phone: String,
					guestType: 1,
					iso3166alpha2Code: String,
					sendInvitation: False,
					sendAccountActivationEmail: False
				}
			],
			additionalData: 
			{
				licensePlates: 
				[
					String
				],
				comment: String,
				welcomeMessage: String,
				company: String,
				accessCards: 
				[
					{
						cardNumber: String,
						thingIds: 
						[
							00000000000000000000000000000000
						]
					}
				]
			},
			visitData: 
			{
				visitType: 1,
				checkin: -62135596800000,
				checkout: -62135596800000,
				doesNotContainTimeInfo: False
			},
			accessTemplates: 
			[
				{
					id: 00000000000000000000000000000000,
					name: String,
					description: String,
					isAvailable: False,
					occupiedUntil: -62135596800000,
					reservationIdentifier: String,
					accessCodeInitializationStrategy: 0,
					tags: 
					[
						{
							id: 00000000000000000000000000000000,
							name: String,
							tagGroupId: 00000000000000000000000000000000
						}
					],
					smartspaces: 
					[
						{
							id: 00000000000000000000000000000000,
							name: String,
							accessFrom: PT0S,
							accessTo: PT0S,
							accessCount: 0,
							accessCardNumbers: String
						}
					],
					things: 
					[
						{
							id: 00000000000000000000000000000000,
							organizationId: 00000000000000000000000000000000,
							thingId: 00000000000000000000000000000000,
							thingName: String,
							thingTypeName: String,
							exclusive: False,
							availableFrom: 0,
							availableTo: 0,
							accessCount: 0,
							accessLevel: String,
							permission: 
							[
								String
							]
						}
					]
				}
			],
			externalId: String,
			reservationGuestInfos: 
			[
				{
					guestFirstName: String,
					guestLastName: String,
					country: String,
					dateOfBirth: -62135596800000,
					documentType: 1,
					documentNumber: String,
					gender: 1,
					timestamp: -62135596800000,
					email: String
				}
			]
		}
	],
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}