sfgboxapi

<back to all web services

CreateSubscribeCustomer

Requires Authentication
The following routes are available for this service:
POST/create-customer
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using sfgboxapi.ServiceModel;
using ServiceStack.Stripe.Types;
using ServiceStack.Stripe;

namespace ServiceStack.Stripe
{
    public partial class StripeAddress
    {
        public virtual string City { get; set; }
        public virtual string Country { get; set; }
        public virtual string Line1 { get; set; }
        public virtual string Line2 { get; set; }
        public virtual string PostalCode { get; set; }
        public virtual string State { get; set; }
    }

}

namespace ServiceStack.Stripe.Types
{
    public partial class StripeCard
        : StripeId
    {
        public virtual string Brand { get; set; }
        public virtual string Number { get; set; }
        public virtual string Last4 { get; set; }
        public virtual string DynamicLast4 { get; set; }
        public virtual int ExpMonth { get; set; }
        public virtual int ExpYear { get; set; }
        public virtual string Cvc { get; set; }
        public virtual string Name { get; set; }
        public virtual string AddressCity { get; set; }
        public virtual string AddressCountry { get; set; }
        public virtual string AddressLine1 { get; set; }
        public virtual string AddressLine2 { get; set; }
        public virtual string AddressState { get; set; }
        public virtual string AddressZip { get; set; }
        public virtual StripeCvcCheck? CvcCheck { get; set; }
        public virtual string AddressLine1Check { get; set; }
        public virtual string AddressZipCheck { get; set; }
        public virtual string Funding { get; set; }
        public virtual string Fingerprint { get; set; }
        public virtual string Customer { get; set; }
        public virtual string Country { get; set; }
    }

    public partial class StripeCollection<T>
        : StripeId
    {
        public StripeCollection()
        {
            Data = new List<T>{};
        }

        public virtual string Url { get; set; }
        public virtual int TotalCount { get; set; }
        public virtual bool? HasMore { get; set; }
        public virtual List<T> Data { get; set; }
    }

    public partial class StripeCoupon
        : StripeId
    {
        public StripeCoupon()
        {
            Metadata = new Dictionary<string, string>{};
        }

        public virtual int? AmountOff { get; set; }
        public virtual DateTime? Created { get; set; }
        public virtual string Currency { get; set; }
        public virtual StripeCouponDuration Duration { get; set; }
        public virtual int? DurationInMonths { get; set; }
        public virtual bool Livemode { get; set; }
        public virtual int? MaxRedemptions { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual int? PercentOff { get; set; }
        public virtual DateTime? RedeemBy { get; set; }
        public virtual int TimesRedeemed { get; set; }
        public virtual bool Valid { get; set; }
    }

    public enum StripeCouponDuration
    {
        forever,
        once,
        repeating,
    }

    public partial class StripeCustomer
        : StripeId
    {
        public StripeCustomer()
        {
            Metadata = new Dictionary<string, string>{};
        }

        public virtual int AccountBalance { get; set; }
        public virtual string BusinessVatId { get; set; }
        public virtual DateTime? Created { get; set; }
        public virtual string DefaultSource { get; set; }
        public virtual bool? Delinquent { get; set; }
        public virtual string Description { get; set; }
        public virtual StripeDiscount Discount { get; set; }
        public virtual string Email { get; set; }
        public virtual string InvoicePrefix { get; set; }
        public virtual bool Livemode { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual StripeShipping Shipping { get; set; }
        public virtual StripeCollection<StripeCard> Sources { get; set; }
        public virtual StripeCollection<StripeSubscription> Subscriptions { get; set; }
        public virtual bool Deleted { get; set; }
        public virtual string Currency { get; set; }
    }

    public enum StripeCvcCheck
    {
        Unknown,
        Pass,
        Fail,
        Unchecked,
    }

    public partial class StripeDiscount
        : StripeId
    {
        public virtual string Customer { get; set; }
        public virtual StripeCoupon Coupon { get; set; }
        public virtual DateTime? Start { get; set; }
        public virtual DateTime? End { get; set; }
    }

    public partial class StripeId
        : StripeObject
    {
        public virtual string Id { get; set; }
    }

    public partial class StripeObject
    {
        public virtual StripeType? Object { get; set; }
    }

    public partial class StripePlan
        : StripeId
    {
        public StripePlan()
        {
            Metadata = new Dictionary<string, string>{};
        }

        public virtual int Amount { get; set; }
        public virtual DateTime? Created { get; set; }
        public virtual string Currency { get; set; }
        public virtual StripePlanInterval Interval { get; set; }
        public virtual int? IntervalCount { get; set; }
        public virtual bool Livemode { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual string Nickname { get; set; }
        public virtual string Product { get; set; }
        public virtual int? TrialPeriodDays { get; set; }
    }

    public enum StripePlanInterval
    {
        month,
        year,
    }

    public partial class StripeShipping
    {
        public virtual StripeAddress Address { get; set; }
        public virtual string Name { get; set; }
        public virtual string Phone { get; set; }
    }

    public partial class StripeSubscription
        : StripeId
    {
        public virtual DateTime? CurrentPeriodEnd { get; set; }
        public virtual StripeSubscriptionStatus Status { get; set; }
        public virtual StripePlan Plan { get; set; }
        public virtual DateTime? CurrentPeriodStart { get; set; }
        public virtual DateTime? Start { get; set; }
        public virtual DateTime? TrialStart { get; set; }
        public virtual bool? CancelAtPeriodEnd { get; set; }
        public virtual DateTime? TrialEnd { get; set; }
        public virtual DateTime? CanceledAt { get; set; }
        public virtual DateTime? EndedAt { get; set; }
        public virtual string Customer { get; set; }
        public virtual int Quantity { get; set; }
    }

    public enum StripeSubscriptionStatus
    {
        Unknown,
        Trialing,
        Active,
        PastDue,
        Canceled,
        Unpaid,
    }

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

}

namespace sfgboxapi.ServiceModel
{
    public partial class CreateSubscribeCustomer
        : IPost
    {
        public virtual string Email { get; set; }
    }

}

C# CreateSubscribeCustomer DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

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

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

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