BokaMera.API.Host

<back to all web services

ConfirmBookingReservationPayment

The following routes are available for this service:
POST/bookingreservations/{SessionKey}/confirmpaymentConfirm a booking reservation payment (synchronous book-and-pay)Verifies a client-confirmed Stripe PaymentIntent server-side and converts the AwaitingPayment reservation into a booking in the same request, returning the created BookingId immediately instead of waiting for the Stripe webhook. Idempotent: replaying the call for an already-converted reservation returns the same BookingId. If the slot was lost between capture and convert the captured payment is refunded.
Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports BokaMera.API.ServiceModel.Dtos

Namespace Global

    Namespace BokaMera.API.ServiceModel.Dtos

        <ApiResponse(Description:="No reservation found for the given session key", StatusCode:=404)>
        <ApiResponse(Description:="The payment could not be verified or the captured amount did not match", StatusCode:=400)>
        <ApiResponse(Description:="The selected slot is no longer available; the payment was refunded", StatusCode:=409)>
        Public Partial Class ConfirmBookingReservationPayment
            Implements ICompany
            '''<Summary>
            '''The opaque session key that identifies the reservation.
            '''</Summary>
            <ApiMember(Description:="The opaque session key that identifies the reservation.", IsRequired:=true, ParameterType:="path")>
            Public Overridable Property SessionKey As Guid

            '''<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.")>
            Public Overridable Property CompanyId As Guid? Implements ICompany.CompanyId

            '''<Summary>
            '''The id of the Stripe PaymentIntent the client has already confirmed for this reservation.
            '''</Summary>
            <ApiMember(Description:="The id of the Stripe PaymentIntent the client has already confirmed for this reservation.", IsRequired:=true)>
            Public Overridable Property PaymentIntentId As String
        End Class

        Public Partial Class ConfirmBookingReservationPaymentResponse
            '''<Summary>
            '''The created booking id once the reservation was converted.
            '''</Summary>
            <ApiMember(Description:="The created booking id once the reservation was converted.")>
            Public Overridable Property BookingId As Integer?

            '''<Summary>
            '''The BookingReservationStatus value after confirmation.
            '''</Summary>
            <ApiMember(Description:="The BookingReservationStatus value after confirmation.")>
            Public Overridable Property StatusCode As Integer

            '''<Summary>
            '''The BookingReservationStatus name after confirmation.
            '''</Summary>
            <ApiMember(Description:="The BookingReservationStatus name after confirmation.")>
            Public Overridable Property StatusName As String

            '''<Summary>
            '''The verified final price of the reservation, if any.
            '''</Summary>
            <ApiMember(Description:="The verified final price of the reservation, if any.")>
            Public Overridable Property Price As Decimal?

            Public Overridable Property ResponseStatus As ResponseStatus
        End Class
    End Namespace
End Namespace

VB.NET ConfirmBookingReservationPayment DTOs

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

HTTP + XML

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

POST /bookingreservations/{SessionKey}/confirmpayment HTTP/1.1 
Host: testapi.bokamera.se 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<ConfirmBookingReservationPayment xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
  <PaymentIntentId>String</PaymentIntentId>
  <SessionKey>00000000-0000-0000-0000-000000000000</SessionKey>
</ConfirmBookingReservationPayment>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ConfirmBookingReservationPaymentResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <BookingId>0</BookingId>
  <Price>0</Price>
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
  <StatusCode>0</StatusCode>
  <StatusName>String</StatusName>
</ConfirmBookingReservationPaymentResponse>