sfgboxapi

<back to all web services

CreateSubscribeCustomer

Requires Authentication
The following routes are available for this service:
POST/create-customer
import java.math.*
import java.util.*
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*


open class CreateSubscribeCustomer : IPost
{
    var email:String? = null
}

open class StripeCustomer : StripeId()
{
    var accountBalance:Int? = null
    var businessVatId:String? = null
    var created:Date? = null
    var defaultSource:String? = null
    var delinquent:Boolean? = null
    var description:String? = null
    var discount:StripeDiscount? = null
    var email:String? = null
    var invoicePrefix:String? = null
    var livemode:Boolean? = null
    var metadata:HashMap<String,String> = HashMap<String,String>()
    var shipping:StripeShipping? = null
    var sources:StripeCollection<StripeCard>? = null
    var subscriptions:StripeCollection<StripeSubscription>? = null
    var deleted:Boolean? = null
    var currency:String? = null
}

open class StripeId : StripeObject()
{
    var id:String? = null
}

open class StripeObject
{
    @SerializedName("object") var Object:StripeType? = null
}

enum class StripeType
{
    Unknown,
    Account,
    Card,
    Charge,
    Coupon,
    Customer,
    Discount,
    Dispute,
    Event,
    Invoiceitem,
    Invoice,
    LineItem,
    Plan,
    Subscription,
    Token,
    Transfer,
    List,
    Product,
}

open class StripeDiscount : StripeId()
{
    var customer:String? = null
    var coupon:StripeCoupon? = null
    var start:Date? = null
    var end:Date? = null
}

open class StripeCoupon : StripeId()
{
    var amountOff:Int? = null
    var created:Date? = null
    var currency:String? = null
    var duration:StripeCouponDuration? = null
    var durationInMonths:Int? = null
    var livemode:Boolean? = null
    var maxRedemptions:Int? = null
    var metadata:HashMap<String,String> = HashMap<String,String>()
    var percentOff:Int? = null
    var redeemBy:Date? = null
    var timesRedeemed:Int? = null
    var valid:Boolean? = null
}

enum class StripeCouponDuration
{
    Forever,
    Once,
    Repeating,
}

open class StripeShipping
{
    var address:StripeAddress? = null
    var name:String? = null
    var phone:String? = null
}

open class StripeAddress
{
    var city:String? = null
    var country:String? = null
    var line1:String? = null
    var line2:String? = null
    var postalCode:String? = null
    var state:String? = null
}

open class StripeCollection<T> : StripeId()
{
    var url:String? = null
    var totalCount:Int? = null
    var hasMore:Boolean? = null
    @SerializedName("data") var Data:ArrayList<T> = ArrayList<T>()
}

open class StripeCard : StripeId()
{
    var brand:String? = null
    var number:String? = null
    var last4:String? = null
    var dynamicLast4:String? = null
    var expMonth:Int? = null
    var expYear:Int? = null
    var cvc:String? = null
    var name:String? = null
    var addressCity:String? = null
    var addressCountry:String? = null
    var addressLine1:String? = null
    var addressLine2:String? = null
    var addressState:String? = null
    var addressZip:String? = null
    var cvcCheck:StripeCvcCheck? = null
    var addressLine1Check:String? = null
    var addressZipCheck:String? = null
    var funding:String? = null
    var fingerprint:String? = null
    var customer:String? = null
    var country:String? = null
}

enum class StripeCvcCheck
{
    Unknown,
    Pass,
    Fail,
    Unchecked,
}

open class StripeSubscription : StripeId()
{
    var currentPeriodEnd:Date? = null
    var status:StripeSubscriptionStatus? = null
    var plan:StripePlan? = null
    var currentPeriodStart:Date? = null
    var start:Date? = null
    var trialStart:Date? = null
    var cancelAtPeriodEnd:Boolean? = null
    var trialEnd:Date? = null
    var canceledAt:Date? = null
    var endedAt:Date? = null
    var customer:String? = null
    var quantity:Int? = null
}

enum class StripeSubscriptionStatus
{
    Unknown,
    Trialing,
    Active,
    PastDue,
    Canceled,
    Unpaid,
}

open class StripePlan : StripeId()
{
    var amount:Int? = null
    var created:Date? = null
    var currency:String? = null
    var interval:StripePlanInterval? = null
    var intervalCount:Int? = null
    var livemode:Boolean? = null
    var metadata:HashMap<String,String> = HashMap<String,String>()
    var nickname:String? = null
    var product:String? = null
    var trialPeriodDays:Int? = null
}

enum class StripePlanInterval
{
    Month,
    Year,
}

Kotlin CreateSubscribeCustomer 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 /create-customer HTTP/1.1 
Host: sfgboxapi.dev.scadsoftware.com 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"email":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"accountBalance":0,"businessVatId":"String","created":"\/Date(-62135596800000-0000)\/","defaultSource":"String","delinquent":false,"description":"String","discount":{"customer":"String","coupon":{"amountOff":0,"created":"\/Date(-62135596800000-0000)\/","currency":"String","duration":"forever","durationInMonths":0,"livemode":false,"maxRedemptions":0,"metadata":{"String":"String"},"percentOff":0,"redeemBy":"\/Date(-62135596800000-0000)\/","timesRedeemed":0,"valid":false,"id":"String","object":"unknown"},"start":"\/Date(-62135596800000-0000)\/","end":"\/Date(-62135596800000-0000)\/","id":"String","object":"unknown"},"email":"String","invoicePrefix":"String","livemode":false,"metadata":{"String":"String"},"shipping":{"address":{"city":"String","country":"String","line1":"String","line2":"String","postalCode":"String","state":"String"},"name":"String","phone":"String"},"sources":{"url":"String","totalCount":0,"hasMore":false,"data":[{"brand":"String","number":"String","last4":"String","dynamicLast4":"String","expMonth":0,"expYear":0,"cvc":"String","name":"String","addressCity":"String","addressCountry":"String","addressLine1":"String","addressLine2":"String","addressState":"String","addressZip":"String","cvcCheck":"Unknown","addressLine1Check":"String","addressZipCheck":"String","funding":"String","fingerprint":"String","customer":"String","country":"String","id":"String","object":"unknown"}],"id":"String","object":"unknown"},"subscriptions":{"url":"String","totalCount":0,"hasMore":false,"data":[{"currentPeriodEnd":"\/Date(-62135596800000-0000)\/","status":"Unknown","plan":{"amount":0,"created":"\/Date(-62135596800000-0000)\/","currency":"String","interval":"month","intervalCount":0,"livemode":false,"metadata":{"String":"String"},"nickname":"String","product":"String","trialPeriodDays":0,"id":"String","object":"unknown"},"currentPeriodStart":"\/Date(-62135596800000-0000)\/","start":"\/Date(-62135596800000-0000)\/","trialStart":"\/Date(-62135596800000-0000)\/","cancelAtPeriodEnd":false,"trialEnd":"\/Date(-62135596800000-0000)\/","canceledAt":"\/Date(-62135596800000-0000)\/","endedAt":"\/Date(-62135596800000-0000)\/","customer":"String","quantity":0,"id":"String","object":"unknown"}],"id":"String","object":"unknown"},"deleted":false,"currency":"String","id":"String","object":"unknown"}