| 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 .xml suffix or ?format=xml
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: api.sfgtec.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<CreateSubscribeCustomer xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/sfgboxapi.ServiceModel">
<Email>String</Email>
</CreateSubscribeCustomer>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<StripeCustomer xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ServiceStack.Stripe.Types">
<Object>unknown</Object>
<Id>String</Id>
<AccountBalance>0</AccountBalance>
<BusinessVatId>String</BusinessVatId>
<Created>0001-01-01T00:00:00</Created>
<Currency>String</Currency>
<DefaultSource>String</DefaultSource>
<Deleted>false</Deleted>
<Delinquent>false</Delinquent>
<Description>String</Description>
<Discount>
<Object>unknown</Object>
<Id>String</Id>
<Coupon>
<Object>unknown</Object>
<Id>String</Id>
<AmountOff>0</AmountOff>
<Created>0001-01-01T00:00:00</Created>
<Currency>String</Currency>
<Duration>forever</Duration>
<DurationInMonths>0</DurationInMonths>
<Livemode>false</Livemode>
<MaxRedemptions>0</MaxRedemptions>
<Metadata xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:KeyValueOfstringstring>
<d4p1:Key>String</d4p1:Key>
<d4p1:Value>String</d4p1:Value>
</d4p1:KeyValueOfstringstring>
</Metadata>
<PercentOff>0</PercentOff>
<RedeemBy>0001-01-01T00:00:00</RedeemBy>
<TimesRedeemed>0</TimesRedeemed>
<Valid>false</Valid>
</Coupon>
<Customer>String</Customer>
<End>0001-01-01T00:00:00</End>
<Start>0001-01-01T00:00:00</Start>
</Discount>
<Email>String</Email>
<InvoicePrefix>String</InvoicePrefix>
<Livemode>false</Livemode>
<Metadata xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:KeyValueOfstringstring>
<d2p1:Key>String</d2p1:Key>
<d2p1:Value>String</d2p1:Value>
</d2p1:KeyValueOfstringstring>
</Metadata>
<Shipping>
<Address xmlns:d3p1="http://schemas.datacontract.org/2004/07/ServiceStack.Stripe">
<d3p1:City>String</d3p1:City>
<d3p1:Country>String</d3p1:Country>
<d3p1:Line1>String</d3p1:Line1>
<d3p1:Line2>String</d3p1:Line2>
<d3p1:PostalCode>String</d3p1:PostalCode>
<d3p1:State>String</d3p1:State>
</Address>
<Name>String</Name>
<Phone>String</Phone>
</Shipping>
<Sources>
<Object>unknown</Object>
<Id>String</Id>
<Data>
<StripeCard>
<Object>unknown</Object>
<Id>String</Id>
<AddressCity>String</AddressCity>
<AddressCountry>String</AddressCountry>
<AddressLine1>String</AddressLine1>
<AddressLine1Check>String</AddressLine1Check>
<AddressLine2>String</AddressLine2>
<AddressState>String</AddressState>
<AddressZip>String</AddressZip>
<AddressZipCheck>String</AddressZipCheck>
<Brand>String</Brand>
<Country>String</Country>
<Customer>String</Customer>
<Cvc>String</Cvc>
<CvcCheck>Unknown</CvcCheck>
<DynamicLast4>String</DynamicLast4>
<ExpMonth>0</ExpMonth>
<ExpYear>0</ExpYear>
<Fingerprint>String</Fingerprint>
<Funding>String</Funding>
<Last4>String</Last4>
<Name>String</Name>
<Number>String</Number>
</StripeCard>
</Data>
<HasMore>false</HasMore>
<TotalCount>0</TotalCount>
<Url>String</Url>
</Sources>
<Subscriptions>
<Object>unknown</Object>
<Id>String</Id>
<Data>
<StripeSubscription>
<Object>unknown</Object>
<Id>String</Id>
<CancelAtPeriodEnd>false</CancelAtPeriodEnd>
<CanceledAt>0001-01-01T00:00:00</CanceledAt>
<CurrentPeriodEnd>0001-01-01T00:00:00</CurrentPeriodEnd>
<CurrentPeriodStart>0001-01-01T00:00:00</CurrentPeriodStart>
<Customer>String</Customer>
<EndedAt>0001-01-01T00:00:00</EndedAt>
<Plan>
<Object>unknown</Object>
<Id>String</Id>
<Amount>0</Amount>
<Created>0001-01-01T00:00:00</Created>
<Currency>String</Currency>
<Interval>month</Interval>
<IntervalCount>0</IntervalCount>
<Livemode>false</Livemode>
<Metadata xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d6p1:KeyValueOfstringstring>
<d6p1:Key>String</d6p1:Key>
<d6p1:Value>String</d6p1:Value>
</d6p1:KeyValueOfstringstring>
</Metadata>
<Nickname>String</Nickname>
<Product>String</Product>
<TrialPeriodDays>0</TrialPeriodDays>
</Plan>
<Quantity>0</Quantity>
<Start>0001-01-01T00:00:00</Start>
<Status>Unknown</Status>
<TrialEnd>0001-01-01T00:00:00</TrialEnd>
<TrialStart>0001-01-01T00:00:00</TrialStart>
</StripeSubscription>
</Data>
<HasMore>false</HasMore>
<TotalCount>0</TotalCount>
<Url>String</Url>
</Subscriptions>
</StripeCustomer>