ClubReady Api

<back to all web services

PaymentProfileImportEndpoint

The following routes are available for this service:
POST/sales/paymentprofile/importImport a Payment Method (using ProfileToken)After a Payment Method is created in the Vault API (www.clubreadygateway.com), the information has to be imported into the ClubReady system. The Vault API will return a ProfileToken and AcctToken. This endpoint will import a ProfileToken as a separate step. If the ProfileToken is sent to any other endpoints, those endpoints will import the ProfileToken and this endpoint is not needed. ### ProfileToken * JSON Web Token (JWT) * Length is variable, but generally around 1,000 to 4,000 characters * Contains non-PCI information about the Payment Method * Signed by the Vault API, preventing modification * Must be sent to ClubReady API within 5 minutes of creation * Can only be used once (though retrying is allowed) * You can parse and read the JWT, but the format is subject to change without notice * You cannot validate the signature in the JWT as the public key is not available ### AcctToken * A short string that is used to reference the Payment Method in the ClubReady system * Usually around 60 to 80 characters * Should not be stored for long-term use as it can change
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using ClubReady.Web.Api.Sales;
using ClubReady.Payments;
using ClubReady.Payments.PaymentsDb;

namespace ClubReady.Payments
{
    public partial class PaymentProfileImportRequest
    {
        public virtual string ProfileToken { get; set; }
        public virtual bool DoNotUpdatePaymentTypePreference { get; set; }
        public virtual int? NewOwnerId { get; set; }
    }

    public partial class PaymentProfileImportResponse
    {
        public virtual bool Success { get; set; }
        public virtual string Message { get; set; }
        public virtual PaymentProfile PaymentProfile { get; set; }
    }

}

namespace ClubReady.Payments.PaymentsDb
{
    public partial class PaymentProfile
        : IFullNameContainer
    {
        public virtual int PaymentProfileId { get; set; }
        public virtual string AcctToken { get; set; }
        public virtual int OwnerId { get; set; }
        public virtual short OwnerTypeId { get; set; }
        public virtual short AcctTypeId { get; set; }
        public virtual short AcctClassId { get; set; }
        public virtual string PrefixName { get; set; }
        public virtual string FirstName { get; set; }
        public virtual string MiddleName { get; set; }
        public virtual string LastName { get; set; }
        public virtual string SuffixName { get; set; }
        public virtual string Address1 { get; set; }
        public virtual string Address2 { get; set; }
        public virtual string Urbanization { 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 Last4 { get; set; }
        public virtual byte? CcExpMonth { get; set; }
        public virtual byte? CcExpYear { get; set; }
        public virtual bool IsTemp { get; set; }
        public virtual bool IsDisabled { get; set; }
        public virtual DateTime? OnHoldUtc { get; set; }
        public virtual byte? OnHoldReasonCode { get; set; }
        public virtual string OnHoldReasonDetail { get; set; }
        public virtual DateTime? AcctUpdaterFlagUtc { get; set; }
        public virtual int CreatedBy { get; set; }
        public virtual DateTime CreatedUtc { get; set; }
        public virtual int ModifiedBy { get; set; }
        public virtual DateTime ModifiedUtc { get; set; }
        public virtual bool AcctUpdaterFlag { get; set; }
        public virtual short EntryModeId { get; set; }
        public virtual bool ExcludeFromAcctUpdater { get; set; }
    }

}

namespace ClubReady.Web.Api.Sales
{
    [ApiResponse(Description="", ResponseType=typeof(ClubReady.Payments.PaymentProfileImportResponse), StatusCode=200)]
    public partial class PaymentProfileImportEndpoint
        : PaymentProfileImportRequest, IApiKeyEndpoint
    {
        ///<summary>
        ///IP address of the end user
        ///</summary>
        [ApiMember(Description="IP address of the end user", Name="X-Forwarded-For", ParameterType="header")]
        public virtual string XForwardedFor { get; set; }

        ///<summary>
        ///API Authentication Key
        ///</summary>
        [ApiMember(Description="API Authentication Key", IsRequired=true, ParameterType="query")]
        public virtual string ApiKey { get; set; }

        ///<summary>
        ///The ProfileToken JWT to import (see description above)
        ///</summary>
        [ApiMember(Description="The ProfileToken JWT to import (see description above)", IsRequired=true)]
        public virtual string ProfileToken { get; set; }

        ///<summary>
        ///When adding a PaymentMethod that is 'on-file' (`IsTemp == true`), the default behavior is toset this PaymentMethod as the preferred method. If you do not wish this to be the preferredmethod, you can set `DoNotUpdatePaymentTypePreference` to `true`. Otherwise, this can beomitted or `false`.For non 'on-file' PaymentMethods, this setting is ignored.
        ///</summary>
        [ApiMember(Description="When adding a PaymentMethod that is 'on-file' (`IsTemp == true`), the default behavior is to\r\nset this PaymentMethod as the preferred method. If you do not wish this to be the preferred\r\nmethod, you can set `DoNotUpdatePaymentTypePreference` to `true`. Otherwise, this can be\r\nomitted or `false`.\r\n\r\nFor non 'on-file' PaymentMethods, this setting is ignored.")]
        public virtual bool DoNotUpdatePaymentTypePreference { get; set; }

        ///<summary>
        ///**Conditionally Required**  When importing a ProfileToken with an OwnerType of `TempStUser`, the ownership will be changed toOwnerType of `User` with the userId of the supplied `NewOwnerId`.This is needed when a PaymentMethod is created for a User that has not been selected or created, yet.
        ///</summary>
        [ApiMember(Description="**Conditionally Required**  \r\n\r\nWhen importing a ProfileToken with an OwnerType of `TempStUser`, the ownership will be changed to\r\nOwnerType of `User` with the userId of the supplied `NewOwnerId`.\r\n\r\nThis is needed when a PaymentMethod is created for a User that has not been selected or created, yet.")]
        public virtual int? NewOwnerId { get; set; }
    }

}

C# PaymentProfileImportEndpoint DTOs

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

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /sales/paymentprofile/import HTTP/1.1 
Host: www.clubready.com 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"XForwardedFor":"String","ApiKey":"String","ProfileToken":"String","DoNotUpdatePaymentTypePreference":false,"NewOwnerId":0}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Success":false,"Message":"String","PaymentProfile":{"PaymentProfileId":0,"AcctToken":"String","OwnerId":0,"OwnerTypeId":0,"AcctTypeId":0,"AcctClassId":0,"PrefixName":"String","FirstName":"String","MiddleName":"String","LastName":"String","SuffixName":"String","Address1":"String","Address2":"String","Urbanization":"String","City":"String","State":"String","PostalCode":"String","CountryCode":"String","Last4":"String","CcExpMonth":0,"CcExpYear":0,"IsTemp":false,"IsDisabled":false,"OnHoldUtc":"0001-01-01T00:00:00.0000000","OnHoldReasonCode":0,"OnHoldReasonDetail":"String","AcctUpdaterFlagUtc":"0001-01-01T00:00:00.0000000","CreatedBy":0,"CreatedUtc":"0001-01-01T00:00:00.0000000","ModifiedBy":0,"ModifiedUtc":"0001-01-01T00:00:00.0000000","AcctUpdaterFlag":false,"EntryModeId":0,"ExcludeFromAcctUpdater":false}}