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