| POST | /create-customer |
|---|
namespace sfgboxapi.ServiceModel
open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
type StripeType =
| unknown = 0
| account = 1
| card = 2
| charge = 3
| coupon = 4
| customer = 5
| discount = 6
| dispute = 7
| event = 8
| invoiceitem = 9
| invoice = 10
| line_item = 11
| plan = 12
| subscription = 13
| token = 14
| transfer = 15
| list = 16
| product = 17
[<AllowNullLiteral>]
type StripeObject() =
member val Object:Nullable<StripeType> = new Nullable<StripeType>() with get,set
[<AllowNullLiteral>]
type StripeId() =
inherit StripeObject()
member val Id:String = null with get,set
type StripeCouponDuration =
| forever = 0
| once = 1
| repeating = 2
[<AllowNullLiteral>]
type StripeCoupon() =
inherit StripeId()
member val AmountOff:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Created:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val Currency:String = null with get,set
member val Duration:StripeCouponDuration = new StripeCouponDuration() with get,set
member val DurationInMonths:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Livemode:Boolean = new Boolean() with get,set
member val MaxRedemptions:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
member val PercentOff:Nullable<Int32> = new Nullable<Int32>() with get,set
member val RedeemBy:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val TimesRedeemed:Int32 = new Int32() with get,set
member val Valid:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type StripeDiscount() =
inherit StripeId()
member val Customer:String = null with get,set
member val Coupon:StripeCoupon = null with get,set
member val Start:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val End:Nullable<DateTime> = new Nullable<DateTime>() with get,set
[<AllowNullLiteral>]
type StripeAddress() =
member val City:String = null with get,set
member val Country:String = null with get,set
member val Line1:String = null with get,set
member val Line2:String = null with get,set
member val PostalCode:String = null with get,set
member val State:String = null with get,set
[<AllowNullLiteral>]
type StripeShipping() =
member val Address:StripeAddress = null with get,set
member val Name:String = null with get,set
member val Phone:String = null with get,set
type StripeCvcCheck =
| Unknown = 0
| Pass = 1
| Fail = 2
| Unchecked = 3
[<AllowNullLiteral>]
type StripeCard() =
inherit StripeId()
member val Brand:String = null with get,set
member val Number:String = null with get,set
member val Last4:String = null with get,set
member val DynamicLast4:String = null with get,set
member val ExpMonth:Int32 = new Int32() with get,set
member val ExpYear:Int32 = new Int32() with get,set
member val Cvc:String = null with get,set
member val Name:String = null with get,set
member val AddressCity:String = null with get,set
member val AddressCountry:String = null with get,set
member val AddressLine1:String = null with get,set
member val AddressLine2:String = null with get,set
member val AddressState:String = null with get,set
member val AddressZip:String = null with get,set
member val CvcCheck:Nullable<StripeCvcCheck> = new Nullable<StripeCvcCheck>() with get,set
member val AddressLine1Check:String = null with get,set
member val AddressZipCheck:String = null with get,set
member val Funding:String = null with get,set
member val Fingerprint:String = null with get,set
member val Customer:String = null with get,set
member val Country:String = null with get,set
type StripeSubscriptionStatus =
| Unknown = 0
| Trialing = 1
| Active = 2
| PastDue = 3
| Canceled = 4
| Unpaid = 5
type StripePlanInterval =
| month = 0
| year = 1
[<AllowNullLiteral>]
type StripePlan() =
inherit StripeId()
member val Amount:Int32 = new Int32() with get,set
member val Created:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val Currency:String = null with get,set
member val Interval:StripePlanInterval = new StripePlanInterval() with get,set
member val IntervalCount:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Livemode:Boolean = new Boolean() with get,set
member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
member val Nickname:String = null with get,set
member val Product:String = null with get,set
member val TrialPeriodDays:Nullable<Int32> = new Nullable<Int32>() with get,set
[<AllowNullLiteral>]
type StripeSubscription() =
inherit StripeId()
member val CurrentPeriodEnd:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val Status:StripeSubscriptionStatus = new StripeSubscriptionStatus() with get,set
member val Plan:StripePlan = null with get,set
member val CurrentPeriodStart:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val Start:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val TrialStart:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CancelAtPeriodEnd:Nullable<Boolean> = new Nullable<Boolean>() with get,set
member val TrialEnd:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CanceledAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val EndedAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val Customer:String = null with get,set
member val Quantity:Int32 = new Int32() with get,set
[<AllowNullLiteral>]
type StripeCustomer() =
inherit StripeId()
member val AccountBalance:Int32 = new Int32() with get,set
member val BusinessVatId:String = null with get,set
member val Created:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val DefaultSource:String = null with get,set
member val Delinquent:Nullable<Boolean> = new Nullable<Boolean>() with get,set
member val Description:String = null with get,set
member val Discount:StripeDiscount = null with get,set
member val Email:String = null with get,set
member val InvoicePrefix:String = null with get,set
member val Livemode:Boolean = new Boolean() with get,set
member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
member val Shipping:StripeShipping = null with get,set
member val Sources:StripeCollection<StripeCard> = null with get,set
member val Subscriptions:StripeCollection<StripeSubscription> = null with get,set
member val Deleted:Boolean = new Boolean() with get,set
member val Currency:String = null with get,set
[<AllowNullLiteral>]
type CreateSubscribeCustomer() =
interface IPost
member val Email:String = null with get,set
[<AllowNullLiteral>]
type StripeCollection<T>() =
inherit StripeId()
member val Url:String = null with get,set
member val TotalCount:Int32 = new Int32() with get,set
member val HasMore:Nullable<Boolean> = new Nullable<Boolean>() with get,set
member val Data:ResizeArray<T> = new ResizeArray<T>() with get,set
F# CreateSubscribeCustomer DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
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/jsv
Content-Type: text/jsv
Content-Length: length
{
email: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
accountBalance: 0,
businessVatId: String,
created: 0001-01-01,
defaultSource: String,
delinquent: False,
description: String,
discount:
{
customer: String,
coupon:
{
amountOff: 0,
created: 0001-01-01,
currency: String,
duration: forever,
durationInMonths: 0,
livemode: False,
maxRedemptions: 0,
metadata:
{
String: String
},
percentOff: 0,
redeemBy: 0001-01-01,
timesRedeemed: 0,
valid: False,
id: String,
object: unknown
},
start: 0001-01-01,
end: 0001-01-01,
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: 0001-01-01,
status: Unknown,
plan:
{
amount: 0,
created: 0001-01-01,
currency: String,
interval: month,
intervalCount: 0,
livemode: False,
metadata:
{
String: String
},
nickname: String,
product: String,
trialPeriodDays: 0,
id: String,
object: unknown
},
currentPeriodStart: 0001-01-01,
start: 0001-01-01,
trialStart: 0001-01-01,
cancelAtPeriodEnd: False,
trialEnd: 0001-01-01,
canceledAt: 0001-01-01,
endedAt: 0001-01-01,
customer: String,
quantity: 0,
id: String,
object: unknown
}
],
id: String,
object: unknown
},
deleted: False,
currency: String,
id: String,
object: unknown
}