| 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 .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: api.sfgtec.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>