BokaMera.API.Host

<back to all web services

PaysonV1CreateCheckout

The following routes are available for this service:
POST/payment/payson/v1/checkoutCreate an checkout for Booking. Note if existing checkouts already exists, i will invalidate those.Create payson checkout (requires settings for Payson Checkout 1.0)
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports BokaMera.API.ServiceModel.Dtos
Imports BokaMera.API.ServiceModel.Enums
Imports PaysonIntegrationCO2.Models.Enums

Namespace Global

    Namespace BokaMera.API.ServiceModel.Dtos

        Public Partial Class ArticleToCreate
            Public Overridable Property ArticleId As Integer
            Public Overridable Property ArticleTypeId As Integer
            Public Overridable Property Quantity As Integer
        End Class

        Public Partial Class PaysonCheckoutV2Response
            '''<Summary>
            '''The checkout id
            '''</Summary>
            <ApiMember(Description:="The checkout id")>
            Public Overridable Property Id As Guid

            '''<Summary>
            '''The code snippet to for checkout module
            '''</Summary>
            <ApiMember(Description:="The code snippet to for checkout module")>
            Public Overridable Property Snippet As String

            '''<Summary>
            '''The checkout status
            '''</Summary>
            <ApiMember(Description:="The checkout status")>
            Public Overridable Property Status As Payson2CheckoutStatus
        End Class

        Public Partial Class PaysonV1CreateCheckout
            Implements ICompany
            Public Sub New()
                Articles = New ArticleToCreate(){}
            End Sub

            '''<Summary>
            '''The company id.
            '''</Summary>
            <ApiMember(Description:="The company id.", IsRequired:=true)>
            Public Overridable Property CompanyId As Nullable(Of Guid)

            '''<Summary>
            '''Internal reference id (Could be booking, could be Article..)
            '''</Summary>
            <ApiMember(Description:="Internal reference id (Could be booking, could be Article..)")>
            Public Overridable Property InternalReferenceId As String

            '''<Summary>
            '''The booking id.
            '''</Summary>
            <ApiMember(Description:="The booking id.", IsRequired:=true)>
            Public Overridable Property BookingId As Integer

            '''<Summary>
            '''Optional to set the checkout url. This url will be redirected to if payment is interupted for some reason.
            '''</Summary>
            <ApiMember(Description:="Optional to set the checkout url. This url will be redirected to if payment is interupted for some reason.")>
            Public Overridable Property CheckoutUrl As Uri

            '''<Summary>
            '''Optional to set your own confirmation url after payment completed.
            '''</Summary>
            <ApiMember(Description:="Optional to set your own confirmation url after payment completed.")>
            Public Overridable Property ConfirmationUrl As Uri

            '''<Summary>
            '''The payment origin id. HomePage = 0, Embedded = 1, Admin = 2, Apps = 3, 4 = HomePageNew
            '''</Summary>
            <ApiMember(Description:="The payment origin id. HomePage = 0, Embedded = 1, Admin = 2, Apps = 3, 4 = HomePageNew", IsRequired:=true)>
            Public Overridable Property PaymentOrigin As PaymentOrigin

            '''<Summary>
            '''If you want to have another language (sv, fi, dk, no, en) than the default language in system settings, specify it here. Leave empty if default language should be used.
            '''</Summary>
            <ApiMember(Description:="If you want to have another language (sv, fi, dk, no, en) than the default language in system settings, specify it here. Leave empty if default language should be used.", IsRequired:=true)>
            Public Overridable Property Language As String

            '''<Summary>
            '''Articles (Could be Service, rebate code types, etc..
            '''</Summary>
            <ApiMember(Description:="Articles (Could be Service, rebate code types, etc..", IsRequired:=true)>
            Public Overridable Property Articles As ArticleToCreate()

            '''<Summary>
            '''Determins if it's a test call
            '''</Summary>
            <ApiMember(Description:="Determins if it's a test call")>
            Public Overridable Property TestMode As String
        End Class
    End Namespace

    Namespace BokaMera.API.ServiceModel.Enums

        Public Enum PaymentOrigin
            HomePage
            Embedded
            Admin
            Apps
            HomePageNew
        End Enum
    End Namespace

    Namespace PaysonIntegrationCO2.Models.Enums

        Public Enum Payson2CheckoutStatus
            None
            Created
            FormsFilled
            ReadyToPay
            ProcessingPayment
            ReadyToShip
            Shipped
            PaidToAccount
            Canceled
            Credited
            Expired
            Denied
        End Enum
    End Namespace
End Namespace

VB.NET PaysonV1CreateCheckout DTOs

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 /payment/payson/v1/checkout HTTP/1.1 
Host: api.bokamera.se 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000","InternalReferenceId":"String","BookingId":0,"PaymentOrigin":"HomePage","Language":"String","Articles":[{"ArticleId":0,"ArticleTypeId":0,"Quantity":0}],"TestMode":"String"}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"Snippet":"String","Status":"None"}