ServiceStack Home (Live)

<back to all web services

Buy

The following routes are available for this service:
All Verbs/buy/{Id}
GET/Buy/{Id}
All Verbs/buy/{Id}/{Quantity}
GET/Buy

export enum SkuType
{
    Product = 'Product',
    PerDev = 'PerDev',
    PerCore = 'PerCore',
    Site = 'Site',
    Support = 'Support',
    Training = 'Training',
    Register = 'Register',
    Payment = 'Payment',
}

// @Flags()
export enum LicenseFeature
{
    None = 0,
    Free = 0,
    Premium = 1,
    Text = 2,
    Client = 4,
    Common = 8,
    Redis = 16,
    RedisSku = 18,
    OrmLite = 32,
    OrmLiteSku = 34,
    ServiceStack = 64,
    Server = 128,
    Razor = 256,
    Admin = 512,
    Aws = 1024,
    AwsSku = 1026,
    All = 2047,
}

export enum LicenseType
{
    Free = 'Free',
    FreeIndividual = 'FreeIndividual',
    FreeOpenSource = 'FreeOpenSource',
    Indie = 'Indie',
    Business = 'Business',
    Enterprise = 'Enterprise',
    TextIndie = 'TextIndie',
    TextBusiness = 'TextBusiness',
    OrmLiteIndie = 'OrmLiteIndie',
    OrmLiteBusiness = 'OrmLiteBusiness',
    RedisIndie = 'RedisIndie',
    RedisBusiness = 'RedisBusiness',
    AwsIndie = 'AwsIndie',
    AwsBusiness = 'AwsBusiness',
    Trial = 'Trial',
    Site = 'Site',
    TextSite = 'TextSite',
    RedisSite = 'RedisSite',
    OrmLiteSite = 'OrmLiteSite',
}

export class Sku
{
    public id: number;
    public productId: number;
    public type: SkuType;
    public feature: LicenseFeature;
    public code: string;
    public name: string;
    public notes: string;
    // @Ignore()
    public minQty?: number;

    public maxQty?: number;
    public price: number;
    public plan: string;
    public discountOff: number;
    public discountLabelOff: string;
    public actualPrice: number;
    public isPlan: boolean;
    public isRenewal: boolean;
    public subscriptionDurationDays?: number;
    public expiryDurationDays?: number;
    public trialPeriodDays?: number;
    public supportQty: number;
    public coresQty?: number;
    public createdDate: string;
    public modifiedDate: string;
    public licenseType: LicenseType;
    public active: boolean;

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

export class QuoteResponse
{
    public skuId: number;
    public code: string;
    public customerId?: number;
    public modifyingExistingSubscription: boolean;
    public changingSubscriptions: boolean;
    public switchingLicensingModels: boolean;
    public replacesExistingQuantity: boolean;
    public existingSubscriptionQuantity?: number;
    public newSubscriptionQuantity?: number;
    public unusedAmount: string;
    public manualProrating: boolean;
    public unusedDays: number;
    public quantity: number;
    public minQuantity: number;
    public maxQuantity?: number;
    public subtotal: string;
    public discountDescription: string;
    public discountReceived: string;
    public discount: string;
    public total: string;
    public expiryDate: string;
    public renewalDate: string;
    public isReferrer: boolean;
    public responseStatus: ResponseStatus;

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

export class BuyResponse
{
    public coupon: string;
    public renewalRef: string;
    public upgradeRef: string;
    public sku: Sku;
    public quote: QuoteResponse;
    public responseStatus: ResponseStatus;

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

export class Buy implements IGet
{
    public id: string;
    public coupon: string;
    public quantity?: number;
    public renewalRef: string;
    public upgradeRef: string;

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

TypeScript Buy 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 /buy/{Id} HTTP/1.1 
Host: account.servicestack.net 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<Buy xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyApp.ServiceModel">
  <Coupon>String</Coupon>
  <Id>String</Id>
  <Quantity>0</Quantity>
  <RenewalRef>String</RenewalRef>
  <UpgradeRef>String</UpgradeRef>
</Buy>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<BuyResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyApp.ServiceModel">
  <Coupon>String</Coupon>
  <Quote>
    <ChangingSubscriptions>false</ChangingSubscriptions>
    <Code>String</Code>
    <CustomerId>0</CustomerId>
    <Discount>String</Discount>
    <DiscountDescription>String</DiscountDescription>
    <DiscountReceived>String</DiscountReceived>
    <ExistingSubscriptionQuantity>0</ExistingSubscriptionQuantity>
    <ExpiryDate>String</ExpiryDate>
    <IsReferrer>false</IsReferrer>
    <ManualProrating>false</ManualProrating>
    <MaxQuantity>0</MaxQuantity>
    <MinQuantity>0</MinQuantity>
    <ModifyingExistingSubscription>false</ModifyingExistingSubscription>
    <NewSubscriptionQuantity>0</NewSubscriptionQuantity>
    <Quantity>0</Quantity>
    <RenewalDate>String</RenewalDate>
    <ReplacesExistingQuantity>false</ReplacesExistingQuantity>
    <ResponseStatus xmlns:d3p1="http://schemas.servicestack.net/types">
      <d3p1:ErrorCode>String</d3p1:ErrorCode>
      <d3p1:Message>String</d3p1:Message>
      <d3p1:StackTrace>String</d3p1:StackTrace>
      <d3p1:Errors>
        <d3p1:ResponseError>
          <d3p1:ErrorCode>String</d3p1:ErrorCode>
          <d3p1:FieldName>String</d3p1:FieldName>
          <d3p1:Message>String</d3p1:Message>
          <d3p1:Meta xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d3p1:Meta>
        </d3p1:ResponseError>
      </d3p1:Errors>
      <d3p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d3p1:Meta>
    </ResponseStatus>
    <SkuId>0</SkuId>
    <Subtotal>String</Subtotal>
    <SwitchingLicensingModels>false</SwitchingLicensingModels>
    <Total>String</Total>
    <UnusedAmount>String</UnusedAmount>
    <UnusedDays>0</UnusedDays>
  </Quote>
  <RenewalRef>String</RenewalRef>
  <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>
  <Sku>
    <Active>false</Active>
    <Code>String</Code>
    <CoresQty>0</CoresQty>
    <CreatedDate>0001-01-01T00:00:00</CreatedDate>
    <DiscountLabelOff>String</DiscountLabelOff>
    <DiscountOff>0</DiscountOff>
    <ExpiryDurationDays>0</ExpiryDurationDays>
    <Feature>None</Feature>
    <Id>0</Id>
    <IsPlan>false</IsPlan>
    <IsRenewal>false</IsRenewal>
    <LicenseType>Free</LicenseType>
    <MaxQty>0</MaxQty>
    <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
    <Name>String</Name>
    <Notes>String</Notes>
    <Plan>String</Plan>
    <Price>0</Price>
    <ProductId>0</ProductId>
    <SubscriptionDurationDays>0</SubscriptionDurationDays>
    <SupportQty>0</SupportQty>
    <TrialPeriodDays>0</TrialPeriodDays>
    <Type>Product</Type>
  </Sku>
  <UpgradeRef>String</UpgradeRef>
</BuyResponse>