sfgboxapi

<back to all web services

CreateSubscribeCustomer

Requires Authentication
The following routes are available for this service:
POST/create-customer

export enum StripeType
{
    unknown = 'unknown',
    account = 'account',
    card = 'card',
    charge = 'charge',
    coupon = 'coupon',
    customer = 'customer',
    discount = 'discount',
    dispute = 'dispute',
    event = 'event',
    invoiceitem = 'invoiceitem',
    invoice = 'invoice',
    line_item = 'line_item',
    plan = 'plan',
    subscription = 'subscription',
    token = 'token',
    transfer = 'transfer',
    list = 'list',
    product = 'product',
}

export class StripeObject
{
    public object?: StripeType;

    public constructor(init?: Partial<StripeObject>) { (Object as any).assign(this, init); }
}

export class StripeId extends StripeObject
{
    public id: string;

    public constructor(init?: Partial<StripeId>) { super(init); (Object as any).assign(this, init); }
}

export enum StripeCouponDuration
{
    forever = 'forever',
    once = 'once',
    repeating = 'repeating',
}

export class StripeCoupon extends StripeId
{
    public amountOff?: number;
    public created?: string;
    public currency: string;
    public duration: StripeCouponDuration;
    public durationInMonths?: number;
    public livemode: boolean;
    public maxRedemptions?: number;
    public metadata: { [index: string]: string; };
    public percentOff?: number;
    public redeemBy?: string;
    public timesRedeemed: number;
    public valid: boolean;

    public constructor(init?: Partial<StripeCoupon>) { super(init); (Object as any).assign(this, init); }
}

export class StripeDiscount extends StripeId
{
    public customer: string;
    public coupon: StripeCoupon;
    public start?: string;
    public end?: string;

    public constructor(init?: Partial<StripeDiscount>) { super(init); (Object as any).assign(this, init); }
}

export class StripeAddress
{
    public city: string;
    public country: string;
    public line1: string;
    public line2: string;
    public postalCode: string;
    public state: string;

    public constructor(init?: Partial<StripeAddress>) { (Object as any).assign(this, init); }
}

export class StripeShipping
{
    public address: StripeAddress;
    public name: string;
    public phone: string;

    public constructor(init?: Partial<StripeShipping>) { (Object as any).assign(this, init); }
}

export enum StripeCvcCheck
{
    Unknown = 'Unknown',
    Pass = 'Pass',
    Fail = 'Fail',
    Unchecked = 'Unchecked',
}

export class StripeCard extends StripeId
{
    public brand: string;
    public number: string;
    public last4: string;
    public dynamicLast4: string;
    public expMonth: number;
    public expYear: number;
    public cvc: string;
    public name: string;
    public addressCity: string;
    public addressCountry: string;
    public addressLine1: string;
    public addressLine2: string;
    public addressState: string;
    public addressZip: string;
    public cvcCheck?: StripeCvcCheck;
    public addressLine1Check: string;
    public addressZipCheck: string;
    public funding: string;
    public fingerprint: string;
    public customer: string;
    public country: string;

    public constructor(init?: Partial<StripeCard>) { super(init); (Object as any).assign(this, init); }
}

export enum StripeSubscriptionStatus
{
    Unknown = 'Unknown',
    Trialing = 'Trialing',
    Active = 'Active',
    PastDue = 'PastDue',
    Canceled = 'Canceled',
    Unpaid = 'Unpaid',
}

export enum StripePlanInterval
{
    month = 'month',
    year = 'year',
}

export class StripePlan extends StripeId
{
    public amount: number;
    public created?: string;
    public currency: string;
    public interval: StripePlanInterval;
    public intervalCount?: number;
    public livemode: boolean;
    public metadata: { [index: string]: string; };
    public nickname: string;
    public product: string;
    public trialPeriodDays?: number;

    public constructor(init?: Partial<StripePlan>) { super(init); (Object as any).assign(this, init); }
}

export class StripeSubscription extends StripeId
{
    public currentPeriodEnd?: string;
    public status: StripeSubscriptionStatus;
    public plan: StripePlan;
    public currentPeriodStart?: string;
    public start?: string;
    public trialStart?: string;
    public cancelAtPeriodEnd?: boolean;
    public trialEnd?: string;
    public canceledAt?: string;
    public endedAt?: string;
    public customer: string;
    public quantity: number;

    public constructor(init?: Partial<StripeSubscription>) { super(init); (Object as any).assign(this, init); }
}

export class StripeCustomer extends StripeId
{
    public accountBalance: number;
    public businessVatId: string;
    public created?: string;
    public defaultSource: string;
    public delinquent?: boolean;
    public description: string;
    public discount: StripeDiscount;
    public email: string;
    public invoicePrefix: string;
    public livemode: boolean;
    public metadata: { [index: string]: string; };
    public shipping: StripeShipping;
    public sources: StripeCollection<StripeCard>;
    public subscriptions: StripeCollection<StripeSubscription>;
    public deleted: boolean;
    public currency: string;

    public constructor(init?: Partial<StripeCustomer>) { super(init); (Object as any).assign(this, init); }
}

export class CreateSubscribeCustomer implements IPost
{
    public email: string;

    public constructor(init?: Partial<CreateSubscribeCustomer>) { (Object as any).assign(this, init); }
}

export class StripeCollection<T> extends StripeId
{
    public url: string;
    public totalCount: number;
    public hasMore?: boolean;
    public data: T[];

    public constructor(init?: Partial<StripeCollection<T>>) { super(init); (Object as any).assign(this, init); }
}

TypeScript 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: sfgboxapi.dev.scadsoftware.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>