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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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: application/json
Content-Type: application/json
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: application/json
Content-Length: length

{"Success":"String","Message":"String"}