ServiceStack Home (Live)

<back to all web services

Customer

The following routes are available for this service:
All Verbs/Customer
All Verbs/Customer/{Id}
import Foundation
import ServiceStack

public class Customer : IAddress, Codable
{
    public var id:Int
    public var email:String
    public var displayName:String
    public var firstName:String
    public var lastName:String
    public var company:String
    public var phoneNumber:String
    public var addressLine1:String
    public var addressLine2:String
    public var addressCity:String
    public var addressZip:String
    public var addressState:String
    public var addressCountry:String
    public var stripeCustomerId:String
    public var stripeCouponId:String
    public var plan:String
    public var createdDate:Date
    public var isReferrer:Bool
    public var orders:[Order]
    public var subscriptions:[Subscription]

    required public init(){}
}

public class Order : IAddress, Codable
{
    public var id:Int
    public var customerId:Int
    public var productName:String
    public var firstName:String
    public var lastName:String
    public var email:String
    public var company:String
    public var phoneNumber:String
    public var addressLine1:String
    public var addressLine2:String
    public var addressCity:String
    public var addressZip:String
    public var addressState:String
    public var addressCountry:String
    public var agreeTerms:Bool
    public var notes:String
    public var last4:String
    public var subTotal:Int
    public var couponId:String
    public var discount:Int
    public var tax:Int
    public var total:Int
    public var itemQuantity:Int
    public var authorizedQuantity:Int?
    public var subscriptionId:Int?
    public var licenseRef:String
    public var paymentId:Int?
    public var emailId: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 ipAddress: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(){}
}

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

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 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 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(){}
}


Swift Customer DTOs

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

HTTP + OTHER

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

POST /Customer HTTP/1.1 
Host: account.servicestack.net 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"id":0,"email":"String","displayName":"String","firstName":"String","lastName":"String","company":"String","phoneNumber":"String","addressLine1":"String","addressLine2":"String","addressCity":"String","addressZip":"String","addressState":"String","addressCountry":"String","stripeCustomerId":"String","stripeCouponId":"String","plan":"String","createdDate":"\/Date(-62135596800000-0000)\/","isReferrer":false,"orders":[{"id":0,"customerId":0,"productName":"String","firstName":"String","lastName":"String","email":"String","company":"String","phoneNumber":"String","addressLine1":"String","addressLine2":"String","addressCity":"String","addressZip":"String","addressState":"String","addressCountry":"String","agreeTerms":false,"notes":"String","last4":"String","subTotal":0,"couponId":"String","discount":0,"tax":0,"total":0,"itemQuantity":0,"authorizedQuantity":0,"subscriptionId":0,"licenseRef":"String","paymentId":0,"emailId":0,"paid":false,"createdDate":"\/Date(-62135596800000-0000)\/","modifiedDate":"\/Date(-62135596800000-0000)\/","modifiedBy":"String","cancelledDate":"\/Date(-62135596800000-0000)\/","cancelledReason":"String","ipAddress":"String","orderDetails":[{"id":0,"orderId":0,"skuId":0,"skuType":"Product","price":0,"description":"String","quantity":0,"total":0}]}],"subscriptions":[{"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"}]}