BokaMera.API.Host

<back to all web services

StripeV1CreateCheckout

The following routes are available for this service:
POST/payment/stripe/v1/checkoutCreate an checkout for Payble entity. Note if existing checkouts already exists, it will invalidate those.Create Stripe checkout (requires settings for Stripe Checkout 1.0)
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StripeCheckoutQueryResponse:
    # @ApiMember(Description="The checkout session id")
    number: Optional[str] = None
    """
    The checkout session id
    """


    # @ApiMember(Description="The url for checkout module to be placed in a iframe")
    url: Optional[str] = None
    """
    The url for checkout module to be placed in a iframe
    """


    # @ApiMember(Description="The checkout status")
    status: Optional[str] = None
    """
    The checkout status
    """


    # @ApiMember(Description="Client secret to be used when initializing Stripe.js embedded checkout.")
    client_secret: Optional[str] = None
    """
    Client secret to be used when initializing Stripe.js embedded checkout.
    """


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StripeV1CreateCheckout(ICompany):
    # @ApiMember(Description="The company id.", IsRequired=true)
    company_id: Optional[str] = None
    """
    The company id.
    """


    # @ApiMember(Description="Country code for checkout", IsRequired=true)
    country_code: Optional[str] = None
    """
    Country code for checkout
    """


    # @ApiMember(Description="Articles (Could be Service, rebate code types, etc..", IsRequired=true)
    articles: Optional[List[ArticleToCreate]] = None
    """
    Articles (Could be Service, rebate code types, etc..
    """


    # @ApiMember(Description="An internal reference id (Could be booking, rebate code etc.)", IsRequired=true)
    internal_reference_id: Optional[str] = None
    """
    An internal reference id (Could be booking, rebate code etc.)
    """


    # @ApiMember(Description="Optional to set your own confirmation url after payment completed.")
    confirmation_url: Optional[str] = None
    """
    Optional to set your own confirmation url after payment completed.
    """


    # @ApiMember(Description="If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website. This parameter is not allowed if ui_mode is <c>embedded</c>.")
    cancel_url: Optional[str] = None
    """
    If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website. This parameter is not allowed if ui_mode is <c>embedded</c>.
    """


    # @ApiMember(Description="The UI mode of the Session. Defaults to <c>hosted</c>; One of: <c>embedded</c>, or <c>hosted</c>", IsRequired=true)
    ui_mode: Optional[str] = None
    """
    The UI mode of the Session. Defaults to <c>hosted</c>; One of: <c>embedded</c>, or <c>hosted</c>
    """


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ArticleToCreate:
    article_id: int = 0
    article_type_id: int = 0
    quantity: int = 0

Python StripeV1CreateCheckout DTOs

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

HTTP + CSV

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

POST /payment/stripe/v1/checkout HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000","CountryCode":"String","Articles":[{"ArticleId":0,"ArticleTypeId":0,"Quantity":0}],"InternalReferenceId":"String","ConfirmationUrl":"String","CancelUrl":"String","UiMode":"String"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Number":"String","Url":"String","Status":"String","ClientSecret":"String"}