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)
"use strict";
/** @typedef {'None'|'Created'|'FormsFilled'|'ReadyToPay'|'ProcessingPayment'|'ReadyToShip'|'Shipped'|'PaidToAccount'|'Canceled'|'Credited'|'Expired'|'Denied'} */
export var Payson2CheckoutStatus;
(function (Payson2CheckoutStatus) {
    Payson2CheckoutStatus["None"] = "None"
    Payson2CheckoutStatus["Created"] = "Created"
    Payson2CheckoutStatus["FormsFilled"] = "FormsFilled"
    Payson2CheckoutStatus["ReadyToPay"] = "ReadyToPay"
    Payson2CheckoutStatus["ProcessingPayment"] = "ProcessingPayment"
    Payson2CheckoutStatus["ReadyToShip"] = "ReadyToShip"
    Payson2CheckoutStatus["Shipped"] = "Shipped"
    Payson2CheckoutStatus["PaidToAccount"] = "PaidToAccount"
    Payson2CheckoutStatus["Canceled"] = "Canceled"
    Payson2CheckoutStatus["Credited"] = "Credited"
    Payson2CheckoutStatus["Expired"] = "Expired"
    Payson2CheckoutStatus["Denied"] = "Denied"
})(Payson2CheckoutStatus || (Payson2CheckoutStatus = {}));
export class PaysonCheckoutV2Response {
    /** @param {{Id?:string,Snippet?:string,Status?:Payson2CheckoutStatus}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The checkout id */
    Id;
    /**
     * @type {string}
     * @description The code snippet to for checkout module */
    Snippet;
    /**
     * @type {Payson2CheckoutStatus}
     * @description The checkout status */
    Status;
}
/** @typedef {'HomePage'|'Embedded'|'Admin'|'Apps'|'HomePageNew'} */
export var PaymentOrigin;
(function (PaymentOrigin) {
    PaymentOrigin["HomePage"] = "HomePage"
    PaymentOrigin["Embedded"] = "Embedded"
    PaymentOrigin["Admin"] = "Admin"
    PaymentOrigin["Apps"] = "Apps"
    PaymentOrigin["HomePageNew"] = "HomePageNew"
})(PaymentOrigin || (PaymentOrigin = {}));
export class PaysonV1CreateCheckout {
    /** @param {{CompanyId?:string,InternalReferenceId?:string,BookingId?:number,CheckoutUrl?:string,ConfirmationUrl?:string,PaymentOrigin?:PaymentOrigin,Language?:string,Articles?:ArticleToCreate[],TestMode?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The company id. */
    CompanyId;
    /**
     * @type {string}
     * @description Internal reference id (Could be booking, could be Article..) */
    InternalReferenceId;
    /**
     * @type {number}
     * @description The booking id. */
    BookingId;
    /**
     * @type {string}
     * @description Optional to set the checkout url. This url will be redirected to if payment is interupted for some reason. */
    CheckoutUrl;
    /**
     * @type {string}
     * @description Optional to set your own confirmation url after payment completed. */
    ConfirmationUrl;
    /**
     * @type {PaymentOrigin}
     * @description The payment origin id. HomePage = 0, Embedded = 1, Admin = 2, Apps = 3, 4 = HomePageNew */
    PaymentOrigin;
    /**
     * @type {string}
     * @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. */
    Language;
    /**
     * @type {ArticleToCreate[]}
     * @description Articles (Could be Service, rebate code types, etc.. */
    Articles;
    /**
     * @type {string}
     * @description Determins if it's a test call */
    TestMode;
}
export class ArticleToCreate {
    /** @param {{ArticleId?:number,ArticleTypeId?:number,Quantity?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    ArticleId;
    /** @type {number} */
    ArticleTypeId;
    /** @type {number} */
    Quantity;
}

JavaScript PaysonV1CreateCheckout 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/v1/checkout HTTP/1.1 
Host: testapi.bokamera.se 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<PaysonV1CreateCheckout 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>0</BookingId>
  <CheckoutUrl i:nil="true" />
  <CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
  <ConfirmationUrl i:nil="true" />
  <InternalReferenceId>String</InternalReferenceId>
  <Language>String</Language>
  <PaymentOrigin>HomePage</PaymentOrigin>
  <TestMode>String</TestMode>
</PaysonV1CreateCheckout>
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>