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
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports ClubReady.Web.Api.Sales
Imports ClubReady.Payments
Imports ClubReady.Payments.PaymentsDb

Namespace Global

    Namespace ClubReady.Payments

        Public Partial Class PaymentProfileImportRequest
            Public Overridable Property ProfileToken As String
            Public Overridable Property DoNotUpdatePaymentTypePreference As Boolean
            Public Overridable Property NewOwnerId As Nullable(Of Integer)
        End Class

        Public Partial Class PaymentProfileImportResponse
            Public Overridable Property Success As Boolean
            Public Overridable Property Message As String
            Public Overridable Property PaymentProfile As PaymentProfile
        End Class
    End Namespace

    Namespace ClubReady.Payments.PaymentsDb

        Public Partial Class PaymentProfile
            Implements IFullNameContainer
            Public Overridable Property PaymentProfileId As Integer
            Public Overridable Property AcctToken As String
            Public Overridable Property OwnerId As Integer
            Public Overridable Property OwnerTypeId As Short
            Public Overridable Property AcctTypeId As Short
            Public Overridable Property AcctClassId As Short
            Public Overridable Property PrefixName As String
            Public Overridable Property FirstName As String
            Public Overridable Property MiddleName As String
            Public Overridable Property LastName As String
            Public Overridable Property SuffixName As String
            Public Overridable Property Address1 As String
            Public Overridable Property Address2 As String
            Public Overridable Property Urbanization As String
            Public Overridable Property City As String
            Public Overridable Property State As String
            Public Overridable Property PostalCode As String
            Public Overridable Property CountryCode As String
            Public Overridable Property Last4 As String
            Public Overridable Property CcExpMonth As Nullable(Of Byte)
            Public Overridable Property CcExpYear As Nullable(Of Byte)
            Public Overridable Property IsTemp As Boolean
            Public Overridable Property IsDisabled As Boolean
            Public Overridable Property OnHoldUtc As Nullable(Of Date)
            Public Overridable Property OnHoldReasonCode As Nullable(Of Byte)
            Public Overridable Property OnHoldReasonDetail As String
            Public Overridable Property AcctUpdaterFlagUtc As Nullable(Of Date)
            Public Overridable Property CreatedBy As Integer
            Public Overridable Property CreatedUtc As Date
            Public Overridable Property ModifiedBy As Integer
            Public Overridable Property ModifiedUtc As Date
            Public Overridable Property AcctUpdaterFlag As Boolean
            Public Overridable Property EntryModeId As Short
            Public Overridable Property ExcludeFromAcctUpdater As Boolean
        End Class
    End Namespace

    Namespace ClubReady.Web.Api.Sales

        <ApiResponse(Description:="", ResponseType:=GetType(PaymentProfileImportResponse), StatusCode:=200)>
        Public Partial Class PaymentProfileImportEndpoint
            Inherits PaymentProfileImportRequest
            Implements IApiKeyEndpoint
            '''<Summary>
            '''IP address of the end user
            '''</Summary>
            <ApiMember(Description:="IP address of the end user", Name:="X-Forwarded-For", ParameterType:="header")>
            Public Overridable Property XForwardedFor As String

            '''<Summary>
            '''API Authentication Key
            '''</Summary>
            <ApiMember(Description:="API Authentication Key", IsRequired:=true, ParameterType:="query")>
            Public Overridable Property ApiKey As String

            '''<Summary>
            '''The ProfileToken JWT to import (see description above)
            '''</Summary>
            <ApiMember(Description:="The ProfileToken JWT to import (see description above)", IsRequired:=true)>
            Public Overridable Property ProfileToken As String

            '''<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
set this PaymentMethod as the preferred method. If you do not wish this to be the preferred
method, you can set `DoNotUpdatePaymentTypePreference` to `true`. Otherwise, this can be
omitted or `false`.

For non 'on-file' PaymentMethods, this setting is ignored.")>
            Public Overridable Property DoNotUpdatePaymentTypePreference As Boolean

            '''<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**  

When importing a ProfileToken with an OwnerType of `TempStUser`, the ownership will be changed to
OwnerType 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.")>
            Public Overridable Property NewOwnerId As Nullable(Of Integer)
        End Class
    End Namespace
End Namespace

VB.NET 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: www.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">
  <DoNotUpdatePaymentTypePreference xmlns="http://schemas.datacontract.org/2004/07/ClubReady.Payments">false</DoNotUpdatePaymentTypePreference>
  <NewOwnerId xmlns="http://schemas.datacontract.org/2004/07/ClubReady.Payments">0</NewOwnerId>
  <ProfileToken xmlns="http://schemas.datacontract.org/2004/07/ClubReady.Payments">String</ProfileToken>
  <ApiKey>String</ApiKey>
  <XForwardedFor>String</XForwardedFor>
</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>