| PUT | /bookings/reschedulebycode/{Id} | Reschedule an existing booking using a cancellation code | Reschedule an existing booking to a new time slot without being authenticated, by providing the booking's cancellation code (the same code used to cancel it, and the one included in the reschedule link sent to customers). The same validations as PUT /bookings/{Id}/reschedule are applied (duration, collisions, schedules, and resource availability). |
|---|
namespace BokaMera.API.ServiceModel.Dtos
open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
type BookingStatusEnum =
| Booked = 1
| Unbooked = 2
| Reserved = 3
| Canceled = 4
| AwaitingPayment = 5
| AwaitingPaymentNoTimeLimit = 6
| Payed = 7
| AwaitingPaymentRequestFromAdmin = 8
| AwaitingPaymentFromProvider = 9
| Invoiced = 10
[<AllowNullLiteral>]
type BookingStatusQueryResponse() =
member val Id:Int32 = new Int32() with get,set
member val Name:String = null with get,set
member val Description:String = null with get,set
member val Icon:String = null with get,set
member val Color:String = null with get,set
[<AllowNullLiteral>]
type CustomFieldValueResponse() =
member val Value:String = null with get,set
[<AllowNullLiteral>]
type CustomFieldConfigData() =
///<summary>
///Custom field id
///</summary>
[<ApiMember(Description="Custom field id")>]
member val Id:Int32 = new Int32() with get,set
///<summary>
///Configuration name. Example: 'Number of persons'.
///</summary>
[<ApiMember(Description="Configuration name. Example: 'Number of persons'.")>]
member val Name:String = null with get,set
///<summary>
///Custom field description. Example: 'For how many persons is this booking?'
///</summary>
[<ApiMember(Description="Custom field description. Example: 'For how many persons is this booking?'")>]
member val Description:String = null with get,set
///<summary>
///Field width. Example: 20 for 20px
///</summary>
[<ApiMember(Description="Field width. Example: 20 for 20px")>]
member val Width:Nullable<Int32> = new Nullable<Int32>() with get,set
///<summary>
///Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'
///</summary>
[<ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'")>]
member val DataType:String = null with get,set
///<summary>
///Default value of the field. Example: '3'
///</summary>
[<ApiMember(Description="Default value of the field. Example: '3'")>]
member val DefaultValue:String = null with get,set
///<summary>
///Determines if the field is required to have a value or not
///</summary>
[<ApiMember(Description="Determines if the field is required to have a value or not")>]
member val IsMandatory:Boolean = new Boolean() with get,set
///<summary>
///Error message shown to the user if the field data is required but not entered
///</summary>
[<ApiMember(Description="Error message shown to the user if the field data is required but not entered")>]
member val MandatoryErrorMessage:String = null with get,set
///<summary>
///Max lenght of the field
///</summary>
[<ApiMember(Description="Max lenght of the field")>]
member val MaxLength:Int32 = new Int32() with get,set
///<summary>
///If the field should have multiple lines
///</summary>
[<ApiMember(Description="If the field should have multiple lines")>]
member val MultipleLineText:Boolean = new Boolean() with get,set
///<summary>
///Regular expression used for validation of the field
///</summary>
[<ApiMember(Description="Regular expression used for validation of the field")>]
member val RegEx:String = null with get,set
///<summary>
///Error message shown if the regular expression validation failed
///</summary>
[<ApiMember(Description="Error message shown if the regular expression validation failed")>]
member val RegExErrorMessage:String = null with get,set
///<summary>
///The values to select from if Datatype is DropDown for this custom field
///</summary>
[<ApiMember(Description="The values to select from if Datatype is DropDown for this custom field")>]
member val Values:ResizeArray<CustomFieldValueResponse> = null with get,set
[<AllowNullLiteral>]
type CustomFieldDataResponse() =
member val Id:Int32 = new Int32() with get,set
member val Column:String = null with get,set
member val Name:String = null with get,set
member val Description:String = null with get,set
member val Value:String = null with get,set
///<summary>
///Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'
///</summary>
[<ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'")>]
member val DataType:String = null with get,set
[<AllowNullLiteral>]
type BookedResource() =
member val Id:Int32 = new Int32() with get,set
member val Name:String = null with get,set
member val Color:String = null with get,set
member val ImageUrl:Uri = null with get,set
member val Email:String = null with get,set
member val MobilePhone:String = null with get,set
member val AccessGroup:String = null with get,set
member val EmailNotification:Boolean = new Boolean() with get,set
member val SMSNotification:Boolean = new Boolean() with get,set
member val EmailReminder:Boolean = new Boolean() with get,set
member val SMSReminder:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type BookedResourceType() =
///<summary>
///The resource type id
///</summary>
[<ApiMember(Description="The resource type id")>]
member val Id:Int32 = new Int32() with get,set
///<summary>
///The resource type name
///</summary>
[<ApiMember(Description="The resource type name")>]
member val Name:String = null with get,set
///<summary>
///The resources inside resource type
///</summary>
[<ApiMember(Description="The resources inside resource type")>]
member val Resources:ResizeArray<BookedResource> = null with get,set
[<AllowNullLiteral>]
type BookedCompany() =
member val Id:Guid = new Guid() with get,set
member val Name:String = null with get,set
member val LogoType:Uri = null with get,set
member val Category:String = null with get,set
member val Street1:String = null with get,set
member val Street2:String = null with get,set
member val ZipCode:String = null with get,set
member val City:String = null with get,set
member val CountryId:String = null with get,set
member val Longitude:String = null with get,set
member val Latitude:String = null with get,set
member val Phone:String = null with get,set
member val Email:String = null with get,set
member val HomePage:String = null with get,set
member val SitePath:String = null with get,set
member val IsFavorite:Boolean = new Boolean() with get,set
member val PaymentProviderId:Nullable<Int32> = new Nullable<Int32>() with get,set
[<AllowNullLiteral>]
type TagResponse() =
member val Id:Int32 = new Int32() with get,set
member val CompanyId:Guid = new Guid() with get,set
member val Name:String = null with get,set
member val Scope:Int32 = new Int32() with get,set
member val Color:String = null with get,set
member val SortOrder:Int32 = new Int32() with get,set
member val Active:Boolean = new Boolean() with get,set
member val CreatedDate:DateTime = new DateTime() with get,set
member val ResponseStatus:ResponseStatus = null with get,set
[<AllowNullLiteral>]
type BookedCustomer() =
member val Id:Guid = new Guid() with get,set
member val Firstname:String = null with get,set
member val Lastname:String = null with get,set
member val Email:String = null with get,set
member val Phone:String = null with get,set
member val FacebookUserName:String = null with get,set
member val ImageUrl:String = null with get,set
member val PersonalIdentityNumber:String = null with get,set
member val CorporateIdentityNumber:String = null with get,set
member val InvoiceAddress1:String = null with get,set
member val InvoiceAddress2:String = null with get,set
member val InvoiceCity:String = null with get,set
member val InvoicePostalCode:String = null with get,set
member val InvoiceCountryCode:String = null with get,set
///<summary>
///Tags attached to this customer.
///</summary>
[<ApiMember(Description="Tags attached to this customer.")>]
member val Tags:ResizeArray<TagResponse> = null with get,set
[<AllowNullLiteral>]
type BookedQuantity() =
///<summary>
///The quantity Id
///</summary>
[<ApiMember(Description="The quantity Id")>]
member val Id:Int32 = new Int32() with get,set
///<summary>
///The quantity for booked on this price category
///</summary>
[<ApiMember(Description="The quantity for booked on this price category")>]
member val Quantity:Int32 = new Int32() with get,set
///<summary>
///The price
///</summary>
[<ApiMember(Description="The price")>]
member val Price:Nullable<Double> = new Nullable<Double>() with get,set
///<summary>
///The price bofore rebate codes
///</summary>
[<ApiMember(Description="The price bofore rebate codes")>]
member val PriceBeforeRebate:Nullable<Double> = new Nullable<Double>() with get,set
///<summary>
///The price currency
///</summary>
[<ApiMember(Description="The price currency")>]
member val CurrencyId:String = null with get,set
///<summary>
///The price sign
///</summary>
[<ApiMember(Description="The price sign")>]
member val PriceSign:String = null with get,set
///<summary>
///The price category
///</summary>
[<ApiMember(Description="The price category")>]
member val Category:String = null with get,set
///<summary>
///The price VAT in percent
///</summary>
[<ApiMember(Description="The price VAT in percent")>]
member val VAT:Nullable<Decimal> = new Nullable<Decimal>() with get,set
///<summary>
///The price text to display
///</summary>
[<ApiMember(Description="The price text to display")>]
member val PriceText:String = null with get,set
///<summary>
///If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.
///</summary>
[<ApiMember(Description="If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.")>]
member val OccupiesSpot:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type GroupBookingSettings() =
member val Active:Boolean = new Boolean() with get,set
member val Min:Int32 = new Int32() with get,set
member val Max:Int32 = new Int32() with get,set
[<AllowNullLiteral>]
type MultipleResourceSettings() =
member val Active:Boolean = new Boolean() with get,set
member val Min:Int32 = new Int32() with get,set
member val Max:Int32 = new Int32() with get,set
[<AllowNullLiteral>]
type ServiceInfoResponse() =
member val Id:Int32 = new Int32() with get,set
member val Name:String = null with get,set
member val Description:String = null with get,set
member val ImageUrl:Uri = null with get,set
member val LengthInMinutes:Nullable<Int32> = new Nullable<Int32>() with get,set
member val MaxNumberOfSpotsPerBooking:Int32 = new Int32() with get,set
member val MinNumberOfSpotsPerBooking:Int32 = new Int32() with get,set
member val GroupBooking:GroupBookingSettings = null with get,set
member val MultipleResource:MultipleResourceSettings = null with get,set
member val IsGroupBooking:Boolean = new Boolean() with get,set
member val IsPaymentEnabled:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type InvoiceAddressResponse() =
member val InvoiceAddressId:Guid = new Guid() with get,set
member val UserId:Nullable<Guid> = new Nullable<Guid>() with get,set
member val CorporateIdentityNumber:String = null with get,set
member val InvoiceAddress1:String = null with get,set
member val InvoiceAddress2:String = null with get,set
member val InvoiceCity:String = null with get,set
member val InvoicePostalCode:String = null with get,set
member val InvoiceCountryCode:String = null with get,set
[<AllowNullLiteral>]
type BookingLogEventTypeResponse() =
///<summary>
///The event type id
///</summary>
[<ApiMember(Description="The event type id")>]
member val Id:Int32 = new Int32() with get,set
///<summary>
///The event type name
///</summary>
[<ApiMember(Description="The event type name")>]
member val Name:String = null with get,set
///<summary>
///The event type description
///</summary>
[<ApiMember(Description="The event type description")>]
member val Description:String = null with get,set
[<AllowNullLiteral>]
type BookingLogQueryResponse() =
///<summary>
///The booking log id
///</summary>
[<ApiMember(Description="The booking log id")>]
member val Id:Int32 = new Int32() with get,set
///<summary>
///The booking id
///</summary>
[<ApiMember(Description="The booking id")>]
member val BookingId:Int32 = new Int32() with get,set
///<summary>
///The type of event
///</summary>
[<ApiMember(Description="The type of event")>]
member val EventTypeId:Int32 = new Int32() with get,set
///<summary>
///The type of event
///</summary>
[<ApiMember(Description="The type of event")>]
member val EventType:BookingLogEventTypeResponse = null with get,set
///<summary>
///Comments that could be added to the event log item
///</summary>
[<ApiMember(Description="Comments that could be added to the event log item")>]
member val Comments:String = null with get,set
///<summary>
///The user created the event
///</summary>
[<ApiMember(Description="The user created the event")>]
member val UserName:String = null with get,set
///<summary>
///The date when the event occurred
///</summary>
[<ApiMember(Description="The date when the event occurred")>]
member val Created:DateTime = new DateTime() with get,set
[<AllowNullLiteral>]
type CurrencyInfoResponse() =
///<summary>
///The currency id
///</summary>
[<ApiMember(Description="The currency id")>]
member val Id:String = null with get,set
///<summary>
///The currency id
///</summary>
[<ApiMember(Description="The currency id")>]
member val Name:String = null with get,set
///<summary>
///The currency id
///</summary>
[<ApiMember(Description="The currency id")>]
member val CurrencySign:String = null with get,set
[<AllowNullLiteral>]
type BookingPaymentLogQueryResponse() =
///<summary>
///The booking payment log id
///</summary>
[<ApiMember(Description="The booking payment log id")>]
member val Id:Int32 = new Int32() with get,set
///<summary>
///The booking id
///</summary>
[<ApiMember(Description="The booking id")>]
member val BookingId:Int32 = new Int32() with get,set
///<summary>
///The payment reference id
///</summary>
[<ApiMember(Description="The payment reference id")>]
member val PaymentReferenceId:String = null with get,set
///<summary>
///The payment order item reference id
///</summary>
[<ApiMember(Description="The payment order item reference id")>]
member val OrderItemReferenceId:String = null with get,set
///<summary>
///The payment reference id
///</summary>
[<ApiMember(Description="The payment reference id")>]
member val PaymentProviderId:Nullable<Int32> = new Nullable<Int32>() with get,set
///<summary>
///The payment amount
///</summary>
[<ApiMember(Description="The payment amount")>]
member val Amount:Double = new Double() with get,set
///<summary>
///The payment VAT in percent
///</summary>
[<ApiMember(Description="The payment VAT in percent")>]
member val VAT:Decimal = new Decimal() with get,set
///<summary>
///The payment amount that is credited
///</summary>
[<ApiMember(Description="The payment amount that is credited")>]
member val AmountCredited:Double = new Double() with get,set
///<summary>
///The payment currency id
///</summary>
[<ApiMember(Description="The payment currency id")>]
member val CurrencyId:String = null with get,set
///<summary>
///The payment currency info
///</summary>
[<ApiMember(Description="The payment currency info")>]
member val CurrencyInfo:CurrencyInfoResponse = null with get,set
///<summary>
///Comments that could be added to the event log item
///</summary>
[<ApiMember(Description="Comments that could be added to the event log item")>]
member val Comments:String = null with get,set
///<summary>
///The date when the payment items was created
///</summary>
[<ApiMember(Description="The date when the payment items was created")>]
member val Created:DateTime = new DateTime() with get,set
///<summary>
///The date when the payment items were updated.
///</summary>
[<ApiMember(Description="The date when the payment items were updated.")>]
member val Updated:DateTime = new DateTime() with get,set
[<AllowNullLiteral>]
type BookingCheckoutQueryResponse() =
///<summary>
///The checkout id
///</summary>
[<ApiMember(Description="The checkout id")>]
member val Id:Guid = new Guid() with get,set
///<summary>
///The booking id
///</summary>
[<ApiMember(Description="The booking id")>]
member val BookingId:Int32 = new Int32() with get,set
///<summary>
///The purchase id
///</summary>
[<ApiMember(Description="The purchase id")>]
member val PurchaseId:Nullable<Int32> = new Nullable<Int32>() with get,set
///<summary>
///The payment checkout expiration datetime
///</summary>
[<ApiMember(Description="The payment checkout expiration datetime")>]
member val ExpirationTime:Nullable<DateTime> = new Nullable<DateTime>() with get,set
///<summary>
///The payment snippet code
///</summary>
[<ApiMember(Description="The payment snippet code")>]
member val Snippet:String = null with get,set
///<summary>
///The payment status
///</summary>
[<ApiMember(Description="The payment status")>]
member val Status:String = null with get,set
///<summary>
///Log message
///</summary>
[<ApiMember(Description="Log message")>]
member val Message:String = null with get,set
///<summary>
///When the checkout log item was created
///</summary>
[<ApiMember(Description="When the checkout log item was created")>]
member val Created:DateTime = new DateTime() with get,set
///<summary>
///When the checkout log item was updated
///</summary>
[<ApiMember(Description="When the checkout log item was updated")>]
member val Updated:DateTime = new DateTime() with get,set
[<AllowNullLiteral>]
type ExternalReferenceResponse() =
member val CompanyId:Guid = new Guid() with get,set
member val Id:Guid = new Guid() with get,set
member val OwnerId:Guid = new Guid() with get,set
member val ReferenceType:String = null with get,set
member val ReferenceTypeId:Int32 = new Int32() with get,set
member val ExternalData:String = null with get,set
member val CreatedBy:String = null with get,set
member val Updated:DateTime = new DateTime() with get,set
member val Created:DateTime = new DateTime() with get,set
[<AllowNullLiteral>]
type BookingQueryResponse() =
member val Id:Int32 = new Int32() with get,set
member val CompanyId:Guid = new Guid() with get,set
member val From:DateTime = new DateTime() with get,set
member val To:DateTime = new DateTime() with get,set
member val Status:BookingStatusEnum = new BookingStatusEnum() with get,set
member val StatusId:Int32 = new Int32() with get,set
member val StatusName:String = null with get,set
member val StatusInfo:BookingStatusQueryResponse = null with get,set
member val SendEmailReminder:Boolean = new Boolean() with get,set
member val SendSmsReminder:Boolean = new Boolean() with get,set
member val SendSmsConfirmation:Boolean = new Boolean() with get,set
member val SendEmailConfirmation:Boolean = new Boolean() with get,set
member val LastTimeToUnBook:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CustomFields:ResizeArray<CustomFieldConfigData> = null with get,set
member val CustomFieldValues:ResizeArray<CustomFieldDataResponse> = null with get,set
member val BookedResourceTypes:ResizeArray<BookedResourceType> = null with get,set
member val Company:BookedCompany = null with get,set
member val Customer:BookedCustomer = null with get,set
member val Quantities:ResizeArray<BookedQuantity> = null with get,set
member val Service:ServiceInfoResponse = null with get,set
member val InvoiceAddress:InvoiceAddressResponse = null with get,set
member val PaymentExpiration:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val Log:ResizeArray<BookingLogQueryResponse> = null with get,set
member val PaymentLog:ResizeArray<BookingPaymentLogQueryResponse> = null with get,set
member val CheckoutLog:ResizeArray<BookingCheckoutQueryResponse> = null with get,set
member val ExternalReference:ResizeArray<ExternalReferenceResponse> = null with get,set
member val ResponseStatus:ResponseStatus = null with get,set
member val LengthInMinutes:Nullable<Int32> = new Nullable<Int32>() with get,set
member val BookedBy:String = null with get,set
member val BookedComments:String = null with get,set
member val UnbookedComments:String = null with get,set
member val CommentsToCustomer:String = null with get,set
member val CreatedDate:DateTime = new DateTime() with get,set
member val UpdatedDate:DateTime = new DateTime() with get,set
member val UnbookedOn:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CancellationCode:String = null with get,set
member val RatingCode:String = null with get,set
///<summary>
///The Google Meet URL for this booking, if Google Meet is enabled and a meeting was created.
///</summary>
[<ApiMember(Description="The Google Meet URL for this booking, if Google Meet is enabled and a meeting was created.")>]
member val GoogleMeetUrl:String = null with get,set
///<summary>
///Tags attached to this booking.
///</summary>
[<ApiMember(Description="Tags attached to this booking.")>]
member val Tags:ResizeArray<TagResponse> = null with get,set
[<AllowNullLiteral>]
type QuantityToBook() =
///<summary>
///If service has a price, enter the price id for that price. If no price exists for the service set 0 as PriceId. If you put 0 and a price exists, it will use that price (only works if just one price exists for the current selected date to book)
///</summary>
[<ApiMember(Description="If service has a price, enter the price id for that price. If no price exists for the service set 0 as PriceId. If you put 0 and a price exists, it will use that price (only works if just one price exists for the current selected date to book)", IsRequired=true)>]
member val PriceId:Int32 = new Int32() with get,set
///<summary>
///Set the number of spots or resources you want to book on the specific price category
///</summary>
[<ApiMember(Description="Set the number of spots or resources you want to book on the specific price category", IsRequired=true)>]
member val Quantity:Int32 = new Int32() with get,set
///<summary>
///If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.
///</summary>
[<ApiMember(Description="If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.")>]
member val OccupiesSpot:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type ResourceToBook() =
member val ResourceTypeId:Int32 = new Int32() with get,set
member val ResourceId:Int32 = new Int32() with get,set
[<AllowNullLiteral>]
type ResourceToUpdate() =
///<summary>
///Set this property to true if you want to autoselected not provided resources. If false you will need to add all resources you want to have booked
///</summary>
[<ApiMember(Description="Set this property to true if you want to autoselected not provided resources. If false you will need to add all resources you want to have booked")>]
member val AutoSelectNotDefinedResources:Boolean = new Boolean() with get,set
///<summary>
///All resources to be booked, if AutoSelectNotDefinedResources is true you will only need to provide the one you want to select, rest will be auto selected if avaiable.
///</summary>
[<ApiMember(Description="All resources to be booked, if AutoSelectNotDefinedResources is true you will only need to provide the one you want to select, rest will be auto selected if avaiable. ")>]
member val Resources:ResizeArray<ResourceToBook> = null with get,set
[<ApiResponse(Description="Booking not found", StatusCode=404)>]
[<ApiResponse(Description="The requested time slot is not available", StatusCode=409)>]
[<AllowNullLiteral>]
type RescheduleBookingByCode() =
///<summary>
///Id of the booking to reschedule
///</summary>
[<ApiMember(Description="Id of the booking to reschedule", IsRequired=true, ParameterType="path")>]
member val Id:Int32 = new Int32() with get,set
///<summary>
///The unique cancelation code for that booking
///</summary>
[<ApiMember(Description="The unique cancelation code for that booking", IsRequired=true)>]
member val CancellationCode:String = null with get,set
///<summary>
///The new datetime you want to start the booking.
///</summary>
[<ApiMember(Description="The new datetime you want to start the booking.", IsRequired=true)>]
member val From:DateTime = new DateTime() with get,set
///<summary>
///The new datetime you want to end the booking.
///</summary>
[<ApiMember(Description="The new datetime you want to end the booking.", IsRequired=true)>]
member val To:DateTime = new DateTime() with get,set
///<summary>
///Set the number of spots/resources you want to book. If null, existing booking quantities are used.
///</summary>
[<ApiMember(Description="Set the number of spots/resources you want to book. If null, existing booking quantities are used.")>]
member val Quantities:QuantityToBook[] = null with get,set
///<summary>
///Resources you want to change. Leave empty to auto-select resources that are available for the new time.
///</summary>
[<ApiMember(Description="Resources you want to change. Leave empty to auto-select resources that are available for the new time.")>]
member val Resources:ResourceToUpdate = null with get,set
///<summary>
///If you want to send SMS confirmation about the reschedule. If null, it will take the default value of the bookings SendSMSConfirmation.
///</summary>
[<ApiMember(Description="If you want to send SMS confirmation about the reschedule. If null, it will take the default value of the bookings SendSMSConfirmation.")>]
member val SendSmsConfirmation:Nullable<Boolean> = new Nullable<Boolean>() with get,set
///<summary>
///If you want to send Email confirmation about the reschedule. If null, it will take the default value of the bookings SendEmailConfirmation.
///</summary>
[<ApiMember(Description="If you want to send Email confirmation about the reschedule. If null, it will take the default value of the bookings SendEmailConfirmation.")>]
member val SendEmailConfirmation:Nullable<Boolean> = new Nullable<Boolean>() with get,set
F# RescheduleBookingByCode DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
PUT /bookings/reschedulebycode/{Id} HTTP/1.1
Host: testapi.bokamera.se
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"Id":0,"CancellationCode":"String","Quantities":[{"PriceId":0,"Quantity":0,"OccupiesSpot":false}],"Resources":{"AutoSelectNotDefinedResources":false,"Resources":[{"ResourceTypeId":0,"ResourceId":0}]},"SendSmsConfirmation":false,"SendEmailConfirmation":false}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"Id":0,"Status":"Booked","StatusId":0,"StatusName":"String","StatusInfo":{"Id":0,"Name":"String","Description":"String","Icon":"String","Color":"String"},"SendEmailReminder":false,"SendSmsReminder":false,"SendSmsConfirmation":false,"SendEmailConfirmation":false,"LastTimeToUnBook":"0001-01-01T00:00:00","CustomFields":[{"Id":0,"Name":"String","Description":"String","Width":0,"DataType":"String","DefaultValue":"String","IsMandatory":false,"MandatoryErrorMessage":"String","MaxLength":0,"MultipleLineText":false,"RegEx":"String","RegExErrorMessage":"String","Values":[{"Value":"String"}]}],"CustomFieldValues":[{"Id":0,"Column":"String","Name":"String","Description":"String","Value":"String","DataType":"String"}],"BookedResourceTypes":[{"Id":0,"Name":"String","Resources":[{"Id":0,"Name":"String","Color":"String","Email":"String","MobilePhone":"String","AccessGroup":"String","EmailNotification":false,"SMSNotification":false,"EmailReminder":false,"SMSReminder":false}]}],"Company":{"Name":"String","Category":"String","Street1":"String","Street2":"String","ZipCode":"String","City":"String","CountryId":"String","Longitude":"String","Latitude":"String","Phone":"String","Email":"String","HomePage":"String","SitePath":"String","IsFavorite":false,"PaymentProviderId":0},"Customer":{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String","FacebookUserName":"String","ImageUrl":"String","PersonalIdentityNumber":"String","CorporateIdentityNumber":"String","InvoiceAddress1":"String","InvoiceAddress2":"String","InvoiceCity":"String","InvoicePostalCode":"String","InvoiceCountryCode":"String","Tags":[{"Id":0,"Name":"String","Scope":0,"Color":"String","SortOrder":0,"Active":false,"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}]},"Quantities":[{"Id":0,"Quantity":0,"Price":0,"PriceBeforeRebate":0,"CurrencyId":"String","PriceSign":"String","Category":"String","VAT":0,"PriceText":"String","OccupiesSpot":false}],"Service":{"Id":0,"Name":"String","Description":"String","LengthInMinutes":0,"MaxNumberOfSpotsPerBooking":0,"MinNumberOfSpotsPerBooking":0,"GroupBooking":{"Active":false,"Min":0,"Max":0},"MultipleResource":{"Active":false,"Min":0,"Max":0},"IsGroupBooking":false,"IsPaymentEnabled":false},"InvoiceAddress":{"UserId":"00000000-0000-0000-0000-000000000000","CorporateIdentityNumber":"String","InvoiceAddress1":"String","InvoiceAddress2":"String","InvoiceCity":"String","InvoicePostalCode":"String","InvoiceCountryCode":"String"},"PaymentExpiration":"0001-01-01T00:00:00","Log":[{"Id":0,"BookingId":0,"EventTypeId":0,"EventType":{"Id":0,"Name":"String","Description":"String"},"Comments":"String","UserName":"String"}],"PaymentLog":[{"Id":0,"BookingId":0,"PaymentReferenceId":"String","OrderItemReferenceId":"String","PaymentProviderId":0,"Amount":0,"VAT":0,"AmountCredited":0,"CurrencyId":"String","CurrencyInfo":{"Id":"String","Name":"String","CurrencySign":"String"},"Comments":"String"}],"CheckoutLog":[{"BookingId":0,"PurchaseId":0,"ExpirationTime":"0001-01-01T00:00:00","Snippet":"String","Status":"String","Message":"String"}],"ExternalReference":[{"ReferenceType":"String","ReferenceTypeId":0,"ExternalData":"String","CreatedBy":"String"}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"LengthInMinutes":0,"BookedBy":"String","BookedComments":"String","UnbookedComments":"String","CommentsToCustomer":"String","UnbookedOn":"0001-01-01T00:00:00","CancellationCode":"String","RatingCode":"String","GoogleMeetUrl":"String","Tags":[{"Id":0,"Name":"String","Scope":0,"Color":"String","SortOrder":0,"Active":false,"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}]}