| 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
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"}