ClubReady Api

<back to all web services

AddPaymentAccount

The following routes are available for this service:
POST/sales/member/{MemberId}/payment/profileAdd Payment Profile for a Member
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using ClubReady.Web.Api.Sales.Model;
using ClubReady.Core.Api.Models;
using ClubReadyGateway.Vault;
using ClubReady.Web.Api;

namespace ClubReady.Core.Api.Models
{
    public partial class AddPaymentProfileRequest
        : ApiDtoBase
    {
        public virtual int UserId { get; set; }
        public virtual string AcctToken { get; set; }
        public virtual string Last4 { get; set; }
        public virtual int? ExpMonth { get; set; }
        public virtual int? ExpYear { get; set; }
        public virtual AcctType? AcctType { get; set; }
        public virtual int? BnkRoute { get; set; }
        public virtual string FirstName { get; set; }
        public virtual string MiddleName { get; set; }
        public virtual string LastName { get; set; }
        public virtual string Address1 { get; set; }
        public virtual string Address2 { get; set; }
        public virtual string City { get; set; }
        public virtual string State { get; set; }
        public virtual string PostalCode { get; set; }
        public virtual string CountryCode { get; set; }
        public virtual string Urbanization { get; set; }
        public virtual bool DoNotUpdatePaymentTypePreference { get; set; }
        public virtual bool IsTemp { get; set; }
    }

    public partial class AddPaymentProfileResponse
    {
        public virtual string Success { get; set; }
        public virtual string Message { get; set; }
    }

    public partial class ApiDtoBase
    {
        public virtual string ApiKey { get; set; }
        public virtual int? StoreId { get; set; }
        public virtual int? ChainId { get; set; }
    }

}

namespace ClubReady.Web.Api
{
    public enum RestrictedResourceType
    {
        Store,
        Chain,
        User,
        Undefined,
    }

}

namespace ClubReady.Web.Api.Sales.Model
{
    [ApiResponse(Description="", ResponseType=typeof(ClubReady.Core.Api.Models.AddPaymentProfileResponse), StatusCode=200)]
    public partial class AddPaymentAccount
        : AddPaymentProfileRequest, IRestrictedApiRequest
    {
        ///<summary>
        ///Api Authentication Key
        ///</summary>
        [ApiMember(Description="Api Authentication Key", IsRequired=true, ParameterType="query")]
        public virtual string ApiKey { get; set; }

        ///<summary>
        ///Id of the store for the user
        ///</summary>
        [ApiMember(Description="Id of the store for the user", IsRequired=true, ParameterType="query")]
        public virtual int? StoreId { get; set; }

        ///<summary>
        ///Member Id of the user to update their Payment Profile
        ///</summary>
        [ApiMember(Description="Member Id of the user to update their Payment Profile", IsRequired=true, ParameterType="path")]
        public virtual int MemberId { get; set; }

        ///<summary>
        ///The AcctToken provided by creating a Payment Profile with the Vault Api
        ///</summary>
        [ApiMember(Description="The AcctToken provided by creating a Payment Profile with the Vault Api", IsRequired=true)]
        public virtual string AcctToken { get; set; }

        ///<summary>
        ///Last 4 digits of the Payment Profile
        ///</summary>
        [ApiMember(Description="Last 4 digits of the Payment Profile")]
        public virtual string Last4 { get; set; }

        ///<summary>
        ///2 digit expiration month  **Required for Credit Card**
        ///</summary>
        [ApiMember(Description="2 digit expiration month  \n**Required for Credit Card**")]
        public virtual int? ExpMonth { get; set; }

        ///<summary>
        ///2 digit expiration year  **Required for Credit Card**
        ///</summary>
        [ApiMember(Description="2 digit expiration year  \n**Required for Credit Card**")]
        public virtual int? ExpYear { get; set; }

        ///<summary>
        ///The Account Type of the Payment Profile  **Required when adding Gift Card**<details><summary>Common Values</summary><table>    <thead>        <tr><th>Text</th><th>Numerical</th><th>Account Type</th></tr>    </thead>    <tbody>        <tr><td>VISA</td><td>1</td><td>Visa</td></tr>        <tr><td>MC</td><td>2</td><td>MasterCard</td></tr>        <tr><td>Disc</td><td>3</td><td>Discover</td></tr>        <tr><td>Amex</td><td>4</td><td>American Express</td></tr>        <tr><td>PC</td><td>11</td><td>Personal Checking</td></tr>        <tr><td>PS</td><td>12</td><td>Personal Savings</td></tr>        <tr><td>BC</td><td>13</td><td>Business Checking</td></tr>        <tr><td>Factor4</td><td>42</td><td>Factor4 Gift Card</td></tr>    </tbody></table><p>You may use the Text or the Numerical value.</p></details>
        ///</summary>
        [ApiMember(Description="\r\nThe Account Type of the Payment Profile  \r\n**Required when adding Gift Card**\r\n\r\n<details>\r\n<summary>Common Values</summary>\r\n<table>\r\n    <thead>\r\n        <tr><th>Text</th><th>Numerical</th><th>Account Type</th></tr>\r\n    </thead>\r\n    <tbody>\r\n        <tr><td>VISA</td><td>1</td><td>Visa</td></tr>\r\n        <tr><td>MC</td><td>2</td><td>MasterCard</td></tr>\r\n        <tr><td>Disc</td><td>3</td><td>Discover</td></tr>\r\n        <tr><td>Amex</td><td>4</td><td>American Express</td></tr>\r\n        <tr><td>PC</td><td>11</td><td>Personal Checking</td></tr>\r\n        <tr><td>PS</td><td>12</td><td>Personal Savings</td></tr>\r\n        <tr><td>BC</td><td>13</td><td>Business Checking</td></tr>\r\n        <tr><td>Factor4</td><td>42</td><td>Factor4 Gift Card</td></tr>\r\n    </tbody>\r\n</table>\r\n<p>You may use the Text or the Numerical value.</p>\r\n</details>")]
        public virtual AcctType? AcctType { get; set; }

        ///<summary>
        ///Bank Routing Number  **Required for Bank Accounts**
        ///</summary>
        [ApiMember(Description="Bank Routing Number  \n**Required for Bank Accounts**")]
        public virtual int? BnkRoute { get; set; }

        ///<summary>
        ///Set to `true` to not set the user's Payment Type Preference when adding an on-file profile
        ///</summary>
        [ApiMember(Description="Set to `true` to not set the user's Payment Type Preference when adding an on-file profile")]
        public virtual bool DoNotUpdatePaymentTypePreference { get; set; }

        ///<summary>
        ///Whether the Payment Profile is Temporary (One time transactions and Gift Cards are IsTemp = `true`)
        ///</summary>
        [ApiMember(Description="Whether the Payment Profile is Temporary (One time transactions and Gift Cards are IsTemp = `true`)")]
        public virtual bool IsTemp { get; set; }

        public virtual int? RestrictedId { get; set; }
        public virtual RestrictedResourceType RestrictedResourceType { get; set; }
    }

}

namespace ClubReadyGateway.Vault
{
    [DataContract]
    public enum AcctType
    {
        Uninitialized = 0,
        Visa = 1,
        MC = 2,
        Disc = 3,
        Amex = 4,
        Diners = 5,
        JCB = 6,
        enRoute = 7,
        PayPal = 8,
        BillMe = 9,
        PC = 11,
        PS = 12,
        BC = 13,
        BS = 14,
        Becs = 15,
        Bacs = 16,
        Maestro = 20,
        Solo = 21,
        VisaElectron = 22,
        CIBC = 23,
        RoyalBankCa = 24,
        TDCaTrust = 25,
        Scotia = 26,
        BMO = 27,
        HSBCCa = 28,
        UnionPay = 29,
        InterPayment = 30,
        Laser = 31,
        UnknownCredit = 40,
        TransArmor = 41,
        Factor4 = 42,
        XPass = 43,
        ConnectedAccount = 44,
        UnknownBank = 45,
        Error = -1,
    }

}

C# AddPaymentAccount 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 /sales/member/{MemberId}/payment/profile HTTP/1.1 
Host: clubready.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	ApiKey: String,
	StoreId: 0,
	MemberId: 0,
	AcctToken: String,
	AuthToken: String,
	Last4: String,
	ExpMonth: 0,
	ExpYear: 0,
	AcctType: Uninitialized,
	CardType: 0,
	BnkRoute: 0,
	DoNotUpdatePaymentTypePreference: False,
	IsTemp: False,
	RestrictedId: 0,
	RestrictedResourceType: Chain,
	UserId: 0,
	FirstName: String,
	MiddleName: String,
	LastName: String,
	Address1: String,
	Address2: String,
	City: String,
	State: String,
	PostalCode: String,
	CountryCode: String,
	Urbanization: String,
	ChainId: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Success: String,
	Message: String
}