ClubReady Api

<back to all web services

SaleEndpoint

The following routes are available for this service:
POST/sales/agreement/saleComplete the sale of a package set up by /sales/agreement/addSell a package to an existing user. The PaymentMethods property is an array of objects describing how you want ClubReady to take payment while selling the PackageId/InstallmentPlanId. If omitted (or null), the preferred on-file profile will be used. The header `X-Forwarded-For` is required and should be set to the IP address of the end user.
SaleEndpoint Parameters:
NameParameterData TypeRequiredDescription
XForwardedForheaderstringYesIP address of the end user
ApiKeyquerystringYesApi Authentication Key
MemberIdqueryintYesMember Id of the user buying the Package
ChainIdbodyint?No
StoreIdbodyint?YesId of the store for the user
IncompleteAgreementTokenbodystringYesIncompleteAgreementToken from Agreement/ContractText endpoint.
PaymentAmountbodydecimal?YesAmount being paid down, including tax
PromoCodebodystringNoPromo code to apply a discount.
StaffIdbodyint?NoStaff Id of salesperson who sold the agreement.
PaymentMethodsbodyList<PaymentMethodDto>NoAn array of PaymentMethod objects to be used for this purchase. A null array (or omitted property) will use the Preferred method for the total amount. Each object of the array may contain properties: | Property | Description | | --- | --- | | PaymentAmount | The maximum amount to be attempted for this PaymentMethod. When null or omitted, the remaining PaymentAmount will be attempted. | | **Use only one of the following three** | **UsePreferred** or **AcctToken** or **ProfileToken [DoNotUpdatePaymentTypePreference]** | | UsePreferred | Set to `true` to use the Preferred method, otherwise omit the value or set to `null` or `false` | | AcctToken | The AcctToken to attempt payment | | ProfileToken | When provided, a PaymentMethod will be created (this will prevent the requirement to call `/sales/paymentprofile/import`) | | DoNotUpdatePaymentTypePreference | [Optional] When creating a PaymentMethod (ProfileToken), it is set as the preferred method. To not create as preferred, set `DoNotUpdatePaymentTypePreference` to `true`. (for more information, see `/sales/paymentprofile/import`) | | | | Only one of `UsePreferred`, `AcctToken`, `ProfileToken` or is needed. `DoNotUpdatePaymentTypePreference` is optional and only valid with `ProfileToken`. * Scenario #1: Sell $3 contract using an existing PaymentMethod (i.e. AcctToken) for $1 and the Preferred method for $2. JSON: ```json { ... "PaymentAmount": 3.00, "PaymentMethods": [ { "PaymentAmount": "1.00", "AcctToken": "eyJ..." }, { "PaymentAmount": "2.00", "UsePreferred": true } ] } ``` JSV: ``` ...,PaymentAmount:3.00,PaymentMethods:[{PaymentAmount:1.00,AcctToken:eyJ...NdQ},{PaymentAmount:2.00,UsePreferred:true}] ``` * Scenario #2: Sell $3 contract using a new PaymentMethod (i.e. ProfileToken) for $1 and the Preferred method for the remaining. Note, the sum of the PaymentMethod's PaymentAmount ($4) is greater than the agreement amount ($3). PaymentAmount is the maximum amount. This allows the first PaymentMethod to decline or partially approve (common with gift cards). Therefore, if the first PaymentMethod approves for $0.75, the second will be attempted for $2.25. JSON: ```json { ... "PaymentAmount": 3.00, "PaymentMethods": [ { "PaymentAmount": "1.00", "ProfileToken": "eyJ..." }, { "PaymentAmount": "3.00", "UsePreferred": true } ] } ``` JSV: ```jsv ...,PaymentAmount:3.00,PaymentMethods:[{PaymentAmount:1.00,ProfileToken:eyj...NdQ},{PaymentAmount:3.00,UsePreferred:true}] ``` Notes: * AcctTokens should not be parsed or persisted in the client application. They are currently json based, but can be updated without notice. * ProfileToken is used to create a PaymentMethod in the ClubReady system. For more information, see `/sales/paymentprofile/import`. * If `PaymentMethods` is missing or `null`, the Preferred method will be used. * If a `PaymentMethods` `PaymentAmount` is not specified, the remaining amount will be attempted. * If a PaymentMethod is partially approved (common for gift cards), the PaymentMethod with an unspecified PaymentAmount will be charged the remaining amount, including the unapproved amount not. * When testing with this website, the PaymentMethods textbox needs JSV and only the square brackets and contents (e.g. `[{PaymentAmount:1.00,UsePreferred:true}]`).
RestrictedIdbodyint?No
RestrictedResourceTypebodyRestrictedResourceTypeNo
PaymentMethodDto Parameters:
NameParameterData TypeRequiredDescription
AcctTokenformstringNo
ProfileTokenformstringNo
PaymentProfileIdformstringNo
PaymentAmountformdecimal?No
UsePreferredformbool?No
DoNotUpdatePaymentTypePreferenceformbool?No
RestrictedResourceType Enum:
Store
Chain
User
Undefined
ApiResponse2Base Parameters:
NameParameterData TypeRequiredDescription
successformboolNo
messageformstringNo

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/agreement/sale HTTP/1.1 
Host: www.clubready.com 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"XForwardedFor":"String","ApiKey":"String","MemberId":0,"ChainId":0,"StoreId":0,"IncompleteAgreementToken":"String","PaymentAmount":0,"PromoCode":"String","StaffId":0,"PaymentMethods":[{"AcctToken":"String","ProfileToken":"String","PaymentProfileId":"String","PaymentAmount":0,"UsePreferred":false,"DoNotUpdatePaymentTypePreference":false}],"RestrictedId":0,"RestrictedResourceType":"Store"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"success":false,"message":"String"}