sfgboxapi

<back to all web services

CreateSubscribeCustomer

Requires Authentication
The following routes are available for this service:
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

HTTP + 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>