BokaMera.API.Host

<back to all web services

PaysonV2CreateCheckout

The following routes are available for this service:
POST/payment/payson/v2/checkoutCreate an checkout for Booking. Note if existing checkouts already exists, i will invalidate those.Create payson checkout (requires settings for Payson Checkout 2.0)

export enum Payson2CheckoutStatus
{
    None = 'None',
    Created = 'Created',
    FormsFilled = 'FormsFilled',
    ReadyToPay = 'ReadyToPay',
    ProcessingPayment = 'ProcessingPayment',
    ReadyToShip = 'ReadyToShip',
    Shipped = 'Shipped',
    PaidToAccount = 'PaidToAccount',
    Canceled = 'Canceled',
    Credited = 'Credited',
    Expired = 'Expired',
    Denied = 'Denied',
}

export class PaysonCheckoutV2Response
{
    /** @description The checkout id */
    // @ApiMember(Description="The checkout id")
    public Id: string;

    /** @description The code snippet to for checkout module */
    // @ApiMember(Description="The code snippet to for checkout module")
    public Snippet: string;

    /** @description The checkout status */
    // @ApiMember(Description="The checkout status")
    public Status: Payson2CheckoutStatus;

    public constructor(init?: Partial<PaysonCheckoutV2Response>) { (Object as any).assign(this, init); }
}

export enum PaymentOrigin
{
    HomePage = 'HomePage',
    Embedded = 'Embedded',
    Admin = 'Admin',
    Apps = 'Apps',
    HomePageNew = 'HomePageNew',
}

export class PaysonV2CreateCheckout implements ICompany
{
    /** @description The company id. */
    // @ApiMember(Description="The company id.", IsRequired=true)
    public CompanyId: string;

    /** @description The reference id. (Could be booking, could be rebate code etc.) */
    // @ApiMember(Description="The reference id. (Could be booking, could be rebate code etc.)")
    public BookingId: string;

    /** @description The reference id. (Could be booking, could be rebate code etc.) */
    // @ApiMember(Description="The reference id. (Could be booking, could be rebate code etc.)", IsRequired=true)
    public InternalReferenceId: string;

    /** @description Optional to set the checkout url. This url will be redirected to if payment is interupted for some reason. */
    // @ApiMember(Description="Optional to set the checkout url. This url will be redirected to if payment is interupted for some reason.")
    public CheckoutUrl: string;

    /** @description Optional to set your own confirmation url after payment completed. */
    // @ApiMember(Description="Optional to set your own confirmation url after payment completed.")
    public ConfirmationUrl: string;

    /** @description The payment origin id. HomePage = 0, Embedded = 1, Admin = 2, Apps = 3 */
    // @ApiMember(Description="The payment origin id. HomePage = 0, Embedded = 1, Admin = 2, Apps = 3", IsRequired=true)
    public PaymentOrigin: PaymentOrigin;

    /** @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. */
    // @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 Language: string;

    /** @description Country code for checkout */
    // @ApiMember(Description="Country code for checkout", IsRequired=true)
    public CountryCode: string;

    /** @description Determins if it's a test call */
    // @ApiMember(Description="Determins if it's a test call")
    public TestMode: boolean;

    /** @description Articles (Could be Service, rebate code types, etc.. */
    // @ApiMember(Description="Articles (Could be Service, rebate code types, etc..", IsRequired=true)
    public Articles: ArticleToCreate[];

    public constructor(init?: Partial<PaysonV2CreateCheckout>) { (Object as any).assign(this, init); }
}

export class ArticleToCreate
{
    public ArticleId: number;
    public ArticleTypeId: number;
    public Quantity: number;

    public constructor(init?: Partial<ArticleToCreate>) { (Object as any).assign(this, init); }
}

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

<PaysonV2CreateCheckout xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <Articles>
    <ArticleToCreate>
      <ArticleId>0</ArticleId>
      <ArticleTypeId>0</ArticleTypeId>
      <Quantity>0</Quantity>
    </ArticleToCreate>
  </Articles>
  <BookingId>String</BookingId>
  <CheckoutUrl i:nil="true" />
  <CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
  <ConfirmationUrl i:nil="true" />
  <CountryCode>String</CountryCode>
  <InternalReferenceId>String</InternalReferenceId>
  <Language>String</Language>
  <PaymentOrigin>HomePage</PaymentOrigin>
  <TestMode>false</TestMode>
</PaysonV2CreateCheckout>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<PaysonCheckoutV2Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <Id>00000000-0000-0000-0000-000000000000</Id>
  <Snippet>String</Snippet>
  <Status>None</Status>
</PaysonCheckoutV2Response>