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