BokaMera.API.Host

<back to all web services

CommitBookingReservation

The following routes are available for this service:
POST/bookingreservations/{SessionKey}/commitCommit a booking reservationCommits a reservation. If the service has no payment or the final price is zero the reservation is converted to a real booking synchronously and PaymentRequired is false. Otherwise the reservation is moved to AwaitingPayment and PaymentRequired is true.
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

    [<AllowNullLiteral>]
    type CommitBookingReservationResponse() = 
        ///<summary>
        ///The opaque session key that identifies the reservation.
        ///</summary>
        [<ApiMember(Description="The opaque session key that identifies the reservation.")>]
        member val SessionKey:Guid = new Guid() with get,set

        ///<summary>
        ///The BookingReservationStatus value after commit.
        ///</summary>
        [<ApiMember(Description="The BookingReservationStatus value after commit.")>]
        member val StatusCode:Int32 = new Int32() with get,set

        ///<summary>
        ///The BookingReservationStatus name after commit.
        ///</summary>
        [<ApiMember(Description="The BookingReservationStatus name after commit.")>]
        member val StatusName:String = null with get,set

        ///<summary>
        ///True when the customer still needs to pay (reservation moved to AwaitingPayment).
        ///</summary>
        [<ApiMember(Description="True when the customer still needs to pay (reservation moved to AwaitingPayment).")>]
        member val PaymentRequired:Boolean = new Boolean() with get,set

        ///<summary>
        ///The created booking id, set when the reservation was converted without payment.
        ///</summary>
        [<ApiMember(Description="The created booking id, set when the reservation was converted without payment.")>]
        member val BookingId:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///The computed final price of the reservation, if any.
        ///</summary>
        [<ApiMember(Description="The computed final price of the reservation, if any.")>]
        member val Price:Nullable<Decimal> = new Nullable<Decimal>() with get,set

        ///<summary>
        ///The reservation payable reference to use as the checkout InternalReferenceId when PaymentRequired is true.
        ///</summary>
        [<ApiMember(Description="The reservation payable reference to use as the checkout InternalReferenceId when PaymentRequired is true.")>]
        member val InternalReferenceId:String = null with get,set

        member val ResponseStatus:ResponseStatus = null with get,set

    [<ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)>]
    [<ApiResponse(Description="No reservation found for the given session key", StatusCode=404)>]
    [<ApiResponse(Description="The selected slot is no longer available", StatusCode=409)>]
    [<AllowNullLiteral>]
    type CommitBookingReservation() = 
        ///<summary>
        ///The opaque session key that identifies the reservation.
        ///</summary>
        [<ApiMember(Description="The opaque session key that identifies the reservation.", IsRequired=true, ParameterType="path")>]
        member val SessionKey:Guid = new Guid() with get,set

        ///<summary>
        ///The company id, if empty will use the company id for the user you are logged in with.
        ///</summary>
        [<ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")>]
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///Rebate codes to apply when computing the final price.
        ///</summary>
        [<ApiMember(Description="Rebate codes to apply when computing the final price.")>]
        member val RebateCodeIds:ResizeArray<Int32> = null with get,set

F# CommitBookingReservation DTOs

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

HTTP + OTHER

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

POST /bookingreservations/{SessionKey}/commit HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000","RebateCodeIds":[0]}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"StatusCode":0,"StatusName":"String","PaymentRequired":false,"BookingId":0,"Price":0,"InternalReferenceId":"String","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}