PaymentMethods | body | List<PaymentMethodDto> | No | An 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}]`). |