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 .other suffix or ?format=other

HTTP + OTHER

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/jsonl
Content-Type: text/jsonl
Content-Length: length

{"email":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"accountBalance":0,"businessVatId":"String","created":"\/Date(-62135596800000-0000)\/","defaultSource":"String","delinquent":false,"description":"String","discount":{"customer":"String","coupon":{"amountOff":0,"created":"\/Date(-62135596800000-0000)\/","currency":"String","duration":"forever","durationInMonths":0,"livemode":false,"maxRedemptions":0,"metadata":{"String":"String"},"percentOff":0,"redeemBy":"\/Date(-62135596800000-0000)\/","timesRedeemed":0,"valid":false,"id":"String","object":"unknown"},"start":"\/Date(-62135596800000-0000)\/","end":"\/Date(-62135596800000-0000)\/","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":"\/Date(-62135596800000-0000)\/","status":"Unknown","plan":{"amount":0,"created":"\/Date(-62135596800000-0000)\/","currency":"String","interval":"month","intervalCount":0,"livemode":false,"metadata":{"String":"String"},"nickname":"String","product":"String","trialPeriodDays":0,"id":"String","object":"unknown"},"currentPeriodStart":"\/Date(-62135596800000-0000)\/","start":"\/Date(-62135596800000-0000)\/","trialStart":"\/Date(-62135596800000-0000)\/","cancelAtPeriodEnd":false,"trialEnd":"\/Date(-62135596800000-0000)\/","canceledAt":"\/Date(-62135596800000-0000)\/","endedAt":"\/Date(-62135596800000-0000)\/","customer":"String","quantity":0,"id":"String","object":"unknown"}],"id":"String","object":"unknown"},"deleted":false,"currency":"String","id":"String","object":"unknown"}