ServiceStack Home (Live)

<back to all web services

Subscriptions

Requires Authentication
The following routes are available for this service:
All Verbs/account/subscription
GET/Subscriptions
import Foundation
import ServiceStack

public class Subscriptions : Codable
{
    public var section:String
    public var success:Bool
    public var activated:Bool
    public var purchasedOrderId:Int?

    required public init(){}
}

public class SubscriptionsResponse : Codable
{
    public var section:String
    public var supportQuantity:Int
    public var activeSku:Sku
    public var activeSubscription:Subscription
    public var inActiveSubscriptions:[Subscription]
    public var purchasedOrder:OrderAnalyticData
    public var responseStatus:ResponseStatus

    required public init(){}
}

public class Sku : Codable
{
    public var id:Int
    public var productId:Int
    public var type:SkuType
    public var feature:LicenseFeature
    public var code:String
    public var name:String
    public var notes:String
    // @Ignore()
    public var minQty:Int?

    public var maxQty:Int?
    public var price:Int
    public var plan:String
    public var discountOff:Int
    public var discountLabelOff:String
    public var actualPrice:Int
    public var isPlan:Bool
    public var isRenewal:Bool
    public var subscriptionDurationDays:Int?
    public var expiryDurationDays:Int?
    public var trialPeriodDays:Int?
    public var supportQty:Int
    public var coresQty:Int?
    public var createdDate:Date
    public var modifiedDate:Date
    public var licenseType:LicenseType
    public var active:Bool

    required public init(){}
}

public enum SkuType : String, Codable
{
    case Product
    case PerDev
    case PerCore
    case Site
    case Support
    case Training
    case Register
    case Payment
}

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

public enum LicenseType : String, Codable
{
    case Free
    case FreeIndividual
    case FreeOpenSource
    case Indie
    case Business
    case Enterprise
    case TextIndie
    case TextBusiness
    case OrmLiteIndie
    case OrmLiteBusiness
    case RedisIndie
    case RedisBusiness
    case AwsIndie
    case AwsBusiness
    case Trial
    case Site
    case TextSite
    case RedisSite
    case OrmLiteSite
}

public class Subscription : Codable
{
    public var id:Int
    public var customerId:Int
    public var email:String
    public var skuId:Int
    public var skuName:String
    public var skuType:SkuType
    public var code:String
    public var quantity:Int
    public var supportQuantity:Int
    public var total:Int
    public var isPlan:Bool
    public var isRenewal:Bool
    public var subscriptionDurationDays:Int
    public var renewalDate:Date?
    public var licenseRef:String
    public var licenseName:String
    public var licenseAddress:String
    public var licenseType:LicenseType
    public var expiryDate:Date
    public var licenseKey:LicenseKey
    public var licenseKeyText:String
    public var createdDate:Date
    public var modifiedDate:Date
    public var cancelledDate:Date?
    public var stripeSubscriptionId:String
    public var emailId:Int?
    public var emailRenewalId:Int?
    public var emailExpiredId:Int?
    public var renewalSubscriptionId:Int?
    public var externalRef:String
    public var notes:String
    public var error:String

    required public init(){}
}

public class LicenseKey : Codable
{
    public var ref:String
    public var name:String
    public var type:LicenseType
    public var meta:Int
    public var hash:String
    public var halg:String
    public var expiry:Date

    required public init(){}
}

public class OrderAnalyticData : Codable
{
    public var productName:String
    public var subTotal:Int
    public var couponId:String
    public var discount:Int
    public var tax:Int
    public var total:Int
    public var paid:Bool
    public var createdDate:Date
    public var modifiedDate:Date
    public var modifiedBy:String
    public var cancelledDate:Date?
    public var cancelledReason:String
    public var orderDetails:[OrderDetail]

    required public init(){}
}

public class OrderDetail : Codable
{
    public var id:Int
    public var orderId:Int
    public var skuId:Int
    public var skuType:SkuType
    public var price:Int
    public var Description:String
    public var quantity:Int
    public var total:Int

    required public init(){}
}


Swift Subscriptions 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 /account/subscription HTTP/1.1 
Host: account.servicestack.net 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"section":"String","success":false,"activated":false,"purchasedOrderId":0}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"section":"String","supportQuantity":0,"activeSku":{"id":0,"productId":0,"type":"Product","feature":0,"code":"String","name":"String","notes":"String","maxQty":0,"price":0,"plan":"String","discountOff":0,"discountLabelOff":"String","actualPrice":0,"isPlan":false,"isRenewal":false,"subscriptionDurationDays":0,"expiryDurationDays":0,"trialPeriodDays":0,"supportQty":0,"coresQty":0,"createdDate":"\/Date(-62135596800000-0000)\/","modifiedDate":"\/Date(-62135596800000-0000)\/","licenseType":"Free","active":false},"activeSubscription":{"id":0,"customerId":0,"email":"String","skuId":0,"skuName":"String","skuType":"Product","code":"String","quantity":0,"supportQuantity":0,"total":0,"isPlan":false,"isRenewal":false,"subscriptionDurationDays":0,"renewalDate":"\/Date(-62135596800000-0000)\/","licenseRef":"String","licenseName":"String","licenseAddress":"String","licenseType":"Free","expiryDate":"\/Date(-62135596800000-0000)\/","licenseKey":{"ref":"String","name":"String","type":"Free","meta":0,"hash":"String","halg":"String","expiry":"\/Date(-62135596800000-0000)\/"},"licenseKeyText":"String","createdDate":"\/Date(-62135596800000-0000)\/","modifiedDate":"\/Date(-62135596800000-0000)\/","cancelledDate":"\/Date(-62135596800000-0000)\/","stripeSubscriptionId":"String","emailId":0,"emailRenewalId":0,"emailExpiredId":0,"renewalSubscriptionId":0,"externalRef":"String","notes":"String","error":"String"},"inActiveSubscriptions":[{"id":0,"customerId":0,"email":"String","skuId":0,"skuName":"String","skuType":"Product","code":"String","quantity":0,"supportQuantity":0,"total":0,"isPlan":false,"isRenewal":false,"subscriptionDurationDays":0,"renewalDate":"\/Date(-62135596800000-0000)\/","licenseRef":"String","licenseName":"String","licenseAddress":"String","licenseType":"Free","expiryDate":"\/Date(-62135596800000-0000)\/","licenseKey":{"ref":"String","name":"String","type":"Free","meta":0,"hash":"String","halg":"String","expiry":"\/Date(-62135596800000-0000)\/"},"licenseKeyText":"String","createdDate":"\/Date(-62135596800000-0000)\/","modifiedDate":"\/Date(-62135596800000-0000)\/","cancelledDate":"\/Date(-62135596800000-0000)\/","stripeSubscriptionId":"String","emailId":0,"emailRenewalId":0,"emailExpiredId":0,"renewalSubscriptionId":0,"externalRef":"String","notes":"String","error":"String"}],"purchasedOrder":{"productName":"String","subTotal":0,"couponId":"String","discount":0,"tax":0,"total":0,"paid":false,"createdDate":"\/Date(-62135596800000-0000)\/","modifiedDate":"\/Date(-62135596800000-0000)\/","modifiedBy":"String","cancelledDate":"\/Date(-62135596800000-0000)\/","cancelledReason":"String","orderDetails":[{"id":0,"orderId":0,"skuId":0,"skuType":"Product","price":0,"description":"String","quantity":0,"total":0}]},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}