POST | /sales/paymentprofile/import | Import 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. |
---|
export class PaymentProfileImportRequest
{
public AcctToken?: string;
public ProfileToken?: string;
public DoNotUpdatePaymentTypePreference: boolean;
public NewOwner?: ValueTuple<number,OwnerType>;
public constructor(init?: Partial<PaymentProfileImportRequest>) { (Object as any).assign(this, init); }
}
// @ApiResponse(Description="", ResponseType="typeof(ClubReady.Payments.PaymentProfileImportResponse)", StatusCode=200)
export class PaymentProfileImportEndpoint extends PaymentProfileImportRequest implements IApiKeyEndpoint
{
/**
* Api Authentication Key
*/
// @ApiMember(Description="Api Authentication Key", IsRequired=true, ParameterType="query")
public ApiKey: string;
/**
* 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.
*/
// @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)
public AcctToken: string;
/**
* 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.
*/
// @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)
public ProfileToken: string;
/**
* 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.
*/
// @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.")
public DoNotUpdatePaymentTypePreference: boolean;
/**
* **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`.
*/
// @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`.")
public NewOwnerId?: number;
public constructor(init?: Partial<PaymentProfileImportEndpoint>) { super(init); (Object as any).assign(this, init); }
}
export class PaymentProfile
{
public PaymentProfileId: number;
public AcctToken: string;
public OwnerId: number;
public OwnerTypeId: number;
public AcctTypeId: number;
public AcctClassId: number;
public PrefixName: string;
public FirstName: string;
public MiddleName: string;
public LastName: string;
public SuffixName: string;
public Address1: string;
public Address2: string;
public Urbanization: string;
public City: string;
public State: string;
public PostalCode: string;
public CountryCode: string;
public Last4: string;
public CcExpMonth?: number;
public CcExpYear?: number;
public IsTemp: boolean;
public IsDisabled: boolean;
public OnHoldUtc?: string;
public OnHoldReasonCode?: number;
public OnHoldReasonDetail: string;
public AcctUpdaterFlagUtc?: string;
public CreatedBy: number;
public CreatedUtc: string;
public ModifiedBy: number;
public ModifiedUtc: string;
public AcctUpdaterFlag: boolean;
public EntryModeId: number;
public ExcludeFromAcctUpdater: boolean;
public constructor(init?: Partial<PaymentProfile>) { (Object as any).assign(this, init); }
}
export class PaymentProfileImportResponse
{
public Success: boolean;
public Message?: string;
public PaymentProfile?: PaymentProfile;
public constructor(init?: Partial<PaymentProfileImportResponse>) { (Object as any).assign(this, init); }
}
TypeScript PaymentProfileImportEndpoint DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=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: clubready.com
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"ApiKey":"String","AcctToken":"String","ProfileToken":"String","DoNotUpdatePaymentTypePreference":false,"NewOwnerId":0,"NewOwner":"(0, Unknown)"}
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}}