ClubReady Api

<back to all web services

PaymentProfileImportEndpoint

The following routes are available for this service:
POST/sales/paymentprofile/importImport a Payment Profile (using ProfileToken) After a Payment Profile is created in the ClubReadyGateway API (aka Vault API), the information has to be imported into the ClubReady system. The AcctToken and ProfileToken are created by the ClubReadyGateway API.
namespace ClubReady.Payments

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type PaymentProfileImportRequest() = 
        member val AcctToken:String = null with get,set
        member val ProfileToken:String = null with get,set
        member val DoNotUpdatePaymentTypePreference:Boolean = new Boolean() with get,set
        member val NewOwner:Nullable<ValueTuple<Int32,OwnerType>> = new Nullable<ValueTuple<Int32,OwnerType>>() with get,set

    [<ApiResponse(Description="", ResponseType=typeof<PaymentProfileImportResponse>, StatusCode=200)>]
    [<AllowNullLiteral>]
    type PaymentProfileImportEndpoint() = 
        inherit PaymentProfileImportRequest()
        ///<summary>
        ///Api Authentication Key
        ///</summary>
        [<ApiMember(Description="Api Authentication Key", IsRequired=true, ParameterType="query")>]
        member val ApiKey:String = null with get,set

        ///<summary>
        ///Encoded data uniquely identifying the payment profile.  Long term storage of AcctToken is not recommended, as the token may change over time (for example, by processes like Account Updater).  The length is usually 80 characters.
        ///</summary>
        [<ApiMember(Description="\r\nEncoded data uniquely identifying the payment profile.  \r\nLong term storage of AcctToken is not recommended, as the token may change over time (for example, by processes like Account Updater).  \r\nThe length is usually 80 characters.", IsRequired=true)>]
        member val AcctToken:String = null with get,set

        ///<summary>
        ///Encoded data containing non-PCI information about the Payment Profile.  ProfileTokens contain a timestamp. If the ClubReady API does not process the token within 5 minutes,it cannot be accepted and a new profile will have to be created with a new AcctToken. The timevalidation is to prevent old tokens from be re-played at a later time.  The length is variable, but generally around 1,000 characters.
        ///</summary>
        [<ApiMember(Description="\r\nEncoded data containing non-PCI information about the Payment Profile.  \r\n\r\nProfileTokens contain a timestamp. If the ClubReady API does not process the token within 5 minutes,\r\nit cannot be accepted and a new profile will have to be created with a new AcctToken. The time\r\nvalidation is to prevent old tokens from be re-played at a later time.  \r\n\r\nThe length is variable, but generally around 1,000 characters.", IsRequired=true)>]
        member val ProfileToken:String = null with get,set

        ///<summary>
        ///When adding a Payment Profile that is 'on-file', the default behavior is to update the user's Payment TypePreference to the AcctClass of the new profile. If you wish to not update the preference, you can set`DoNotUpdatePaymentTypePreference` to `true`. Otherwise, this can be omitted or `false`.  For `IsTemp == true` profiles, `DoNotUpdatePaymentTypePreference` is ignored.
        ///</summary>
        [<ApiMember(Description="\r\nWhen adding a Payment Profile that is 'on-file', the default behavior is to update the user's Payment Type\r\nPreference to the AcctClass of the new profile. If you wish to not update the preference, you can set\r\n`DoNotUpdatePaymentTypePreference` to `true`. Otherwise, this can be omitted or `false`.  \r\n\r\nFor `IsTemp == true` profiles, `DoNotUpdatePaymentTypePreference` is ignored.")>]
        member val DoNotUpdatePaymentTypePreference:Boolean = new Boolean() with get,set

        ///<summary>
        ///**Conditionally Required**  When adding a Payment Profile that has an OwnerType of `TempStUser`, the ownership will be changed to OwnerType of `User`with the `UserId` of the supplied `NewOwnerId`.
        ///</summary>
        [<ApiMember(Description="\r\n**Conditionally Required**  \r\n\r\nWhen adding a Payment Profile that has an OwnerType of `TempStUser`, the ownership will be changed to OwnerType of `User`\r\nwith the `UserId` of the supplied `NewOwnerId`.")>]
        member val NewOwnerId:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type PaymentProfile() = 
        member val PaymentProfileId:Int32 = new Int32() with get,set
        member val AcctToken:String = null with get,set
        member val OwnerId:Int32 = new Int32() with get,set
        member val OwnerTypeId:Int16 = new Int16() with get,set
        member val AcctTypeId:Int16 = new Int16() with get,set
        member val AcctClassId:Int16 = new Int16() with get,set
        member val PrefixName:String = null with get,set
        member val FirstName:String = null with get,set
        member val MiddleName:String = null with get,set
        member val LastName:String = null with get,set
        member val SuffixName:String = null with get,set
        member val Address1:String = null with get,set
        member val Address2:String = null with get,set
        member val Urbanization:String = null with get,set
        member val City:String = null with get,set
        member val State:String = null with get,set
        member val PostalCode:String = null with get,set
        member val CountryCode:String = null with get,set
        member val Last4:String = null with get,set
        member val CcExpMonth:Nullable<Byte> = new Nullable<Byte>() with get,set
        member val CcExpYear:Nullable<Byte> = new Nullable<Byte>() with get,set
        member val IsTemp:Boolean = new Boolean() with get,set
        member val IsDisabled:Boolean = new Boolean() with get,set
        member val OnHoldUtc:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val OnHoldReasonCode:Nullable<Byte> = new Nullable<Byte>() with get,set
        member val OnHoldReasonDetail:String = null with get,set
        member val AcctUpdaterFlagUtc:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val CreatedBy:Int32 = new Int32() with get,set
        member val CreatedUtc:DateTime = new DateTime() with get,set
        member val ModifiedBy:Int32 = new Int32() with get,set
        member val ModifiedUtc:DateTime = new DateTime() with get,set
        member val AcctUpdaterFlag:Boolean = new Boolean() with get,set
        member val EntryModeId:Int16 = new Int16() with get,set
        member val ExcludeFromAcctUpdater:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type PaymentProfileImportResponse() = 
        member val Success:Boolean = new Boolean() with get,set
        member val Message:String = null with get,set
        member val PaymentProfile:PaymentProfile = null with get,set

F# PaymentProfileImportEndpoint DTOs

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

HTTP + XML

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: clubready.com 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<PaymentProfileImportEndpoint xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ClubReady.Web.Api.Sales">
  <AcctToken xmlns="http://schemas.datacontract.org/2004/07/ClubReady.Payments">String</AcctToken>
  <DoNotUpdatePaymentTypePreference xmlns="http://schemas.datacontract.org/2004/07/ClubReady.Payments">false</DoNotUpdatePaymentTypePreference>
  <NewOwner xmlns:d2p1="http://schemas.datacontract.org/2004/07/System" xmlns="http://schemas.datacontract.org/2004/07/ClubReady.Payments">
    <d2p1:Item1>0</d2p1:Item1>
    <d2p1:Item2>Unknown</d2p1:Item2>
  </NewOwner>
  <ProfileToken xmlns="http://schemas.datacontract.org/2004/07/ClubReady.Payments">String</ProfileToken>
  <ApiKey>String</ApiKey>
  <NewOwnerId>0</NewOwnerId>
</PaymentProfileImportEndpoint>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<PaymentProfileImportResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ClubReady.Payments">
  <Message>String</Message>
  <PaymentProfile xmlns:d2p1="http://schemas.datacontract.org/2004/07/ClubReady.Payments.PaymentsDb">
    <d2p1:AcctClassId>0</d2p1:AcctClassId>
    <d2p1:AcctToken>String</d2p1:AcctToken>
    <d2p1:AcctTypeId>0</d2p1:AcctTypeId>
    <d2p1:AcctUpdaterFlag>false</d2p1:AcctUpdaterFlag>
    <d2p1:AcctUpdaterFlagUtc>0001-01-01T00:00:00</d2p1:AcctUpdaterFlagUtc>
    <d2p1:Address1>String</d2p1:Address1>
    <d2p1:Address2>String</d2p1:Address2>
    <d2p1:CcExpMonth>0</d2p1:CcExpMonth>
    <d2p1:CcExpYear>0</d2p1:CcExpYear>
    <d2p1:City>String</d2p1:City>
    <d2p1:CountryCode>String</d2p1:CountryCode>
    <d2p1:CreatedBy>0</d2p1:CreatedBy>
    <d2p1:CreatedUtc>0001-01-01T00:00:00</d2p1:CreatedUtc>
    <d2p1:EntryModeId>0</d2p1:EntryModeId>
    <d2p1:ExcludeFromAcctUpdater>false</d2p1:ExcludeFromAcctUpdater>
    <d2p1:FirstName>String</d2p1:FirstName>
    <d2p1:IsDisabled>false</d2p1:IsDisabled>
    <d2p1:IsTemp>false</d2p1:IsTemp>
    <d2p1:Last4>String</d2p1:Last4>
    <d2p1:LastName>String</d2p1:LastName>
    <d2p1:MiddleName>String</d2p1:MiddleName>
    <d2p1:ModifiedBy>0</d2p1:ModifiedBy>
    <d2p1:ModifiedUtc>0001-01-01T00:00:00</d2p1:ModifiedUtc>
    <d2p1:OnHoldReasonCode>0</d2p1:OnHoldReasonCode>
    <d2p1:OnHoldReasonDetail>String</d2p1:OnHoldReasonDetail>
    <d2p1:OnHoldUtc>0001-01-01T00:00:00</d2p1:OnHoldUtc>
    <d2p1:OwnerId>0</d2p1:OwnerId>
    <d2p1:OwnerTypeId>0</d2p1:OwnerTypeId>
    <d2p1:PaymentProfileId>0</d2p1:PaymentProfileId>
    <d2p1:PostalCode>String</d2p1:PostalCode>
    <d2p1:PrefixName>String</d2p1:PrefixName>
    <d2p1:State>String</d2p1:State>
    <d2p1:SuffixName>String</d2p1:SuffixName>
    <d2p1:Urbanization>String</d2p1:Urbanization>
  </PaymentProfile>
  <Success>false</Success>
</PaymentProfileImportResponse>