# Visa Card Eligibility Service
Provide eligibility access rights to exclusive offers and benefits.

## Version: 1

### Servers

| URL | Description |
| --- | ----------- |
| https://sandbox.api.visa.com | Sandbox server |

---
## Visa Card Eligibility Service
Visa Card Eligibility Service REST API

### [POST] /visacardeligibilityservices/v1/cardeligibility/validate
**Validate**

The Validate operation checks if a credential is eligible for a VUID based on the configured eligibility criteria. The response attributes vary based on each implementation.

#### Request Body

Request body

| Required | Schema |
| -------- | ------ |
|  No | **application/json**: { **"isPan"**: boolean or null, **"aliasId"**: string or null, **"extendedData"**: string or null, **"correlationId"**: string, **"expirationDate"**: { **"year"**: string or null, **"month"**: string or null }, **"vendorUniqueId"**: string, **"requestTimeStamp"**: string, **"tokenAccountNumber"**: string or null, **"permanentAccountNumber"**: string or null, **"numberOfAdditionalRedemptions"**: integer or null }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | OK | **application/json**: { **"rpin"**: string or null, **"cardId"**: string, **"aliasId"**: string or null, **"issuerBid"**: string or null, **"isEligible"**: string, **"statusCode"**: string, **"countryCode"**: string or null, **"productType"**: string or null, **"acctFundSrce"**: string or null, **"binIndicator"**: string or null, **"cardBenefits"**: [ { **"benefitDesc"**: string or null, **"benefitName"**: string or null, **"phoneNumberDetails"**: string or null, **"cardEnhanceTypeCode"**: string or null } ] or null, **"platformCode"**: string or null, **"correlationId"**: string, **"productSubType"**: string or null, **"benefitIndicator"**: string or null, **"eligibilityLevel"**: string, **"entityToBeBilled"**: { **"memberCharge"**: string or null, **"additionalRedemptionCharges"**: [ string ] or null }, **"redemptionDetails"**: { **"used"**: { **"count"**: string or null, **"details"**: { **"timeStamp"**: [ string ] or null }, **"additionalRedemptions"**: integer or null, **"additionalRedemptionDetails"**: { **"timeStamp"**: [ string ] or null } }, **"pooled"**: boolean or null, **"allowed"**: { **"count"**: string or null, **"duration"**: { **"type"**: string or null, **"value"**: string or null }, **"additionalRedemptionsPerTransaction"**: integer or null }, **"isUnlimited"**: string or null, **"eligibleRedemptions"**: { **"count"**: integer, **"coveredAdditionalRedemptions"**: integer, **"requestedAdditionalRedemptions"**: integer } }, **"responseTimeStamp"**: string, **"statusDescription"**: string, **"acctFundSrceSubTyp"**: string or null, **"spendTierSpendAmount"**: string or null, **"spendTierCurrencyCode"**: string or null }<br> |
| 400 | Bad Request |  |
| 403 | Forbidden Operation to requested resource |  |
| 500 | Temporary Downtime - retry operation after waiting |  |
| 503 | Temporary Downtime for maintenance - retry operation after waiting |  |

---
### Schemas

#### ValidateResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| rpin | string or null | Rewards Program Identification Number (RPIN) as defined by Visa. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"123456"` | No |
| cardId | string | VCES generated unique numeric ID corresponding to a credential.<br>*Example:* `"56785678"` | Yes |
| aliasId | string or null | Unique ID (36 characters) generated by VCES corresponding to a credential. VCES will return the AliasId in the response if configured. AliasId can be used in subsequent calls as a credential instead of 16 digit card number or VTS token. AliasIds are PCI compliant and valid for use ONLY in the same vendorUniqueId used to generate the AliasId.<br>*Example:* `"42ef1b00-6315-4868-9618-73e2839fe497"` | No |
| issuerBid | string or null | Business identification (BID) as defined by Visa. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"12345678"` | No |
| isEligible | string | Indicates if a credential is eligible based on the criteria and configuration of the vendorUniqueId.<br>*Example:* `"True"` | Yes |
| statusCode | string | VCES response code indicating result of the operation as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section0" target="_blank">defined by VCES</a>.<br>*Example:* `"000"` | Yes |
| countryCode | string or null | Country Code as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section2" target="_blank">defined by VCES</a>. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"840"` | No |
| productType | string or null | Product Type as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section1" target="_blank">defined by VCES</a>. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"A"` | No |
| acctFundSrce | string or null | Account Funding Source as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section5" target="_blank">defined by VCES</a>. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"C"` | No |
| binIndicator | string or null | **Deprecated** BIN indicator as defined by Visa. For this field to be returned, vendorUniqueId needs to be configured. | No |
| cardBenefits | [ { **"benefitDesc"**: string or null, **"benefitName"**: string or null, **"phoneNumberDetails"**: string or null, **"cardEnhanceTypeCode"**: string or null } ] or null |  | No |
| platformCode | string or null | Product platform, based on account level processing, as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section3" target="_blank">defined by VCES</a>. The broadest categorization of the card product reflecting the general product platform or family that the product exists. | No |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call.<br>*Example:* `"qazwsxedc123"` | Yes |
| productSubType | string or null | Product Sub Type as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section4" target="_blank">defined by VCES</a>. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"AC"` | No |
| benefitIndicator | string or null | **Deprecated** Benefit indicator as defined by Visa. For this field to be returned, vendorUniqueId needs to be configured. | No |
| eligibilityLevel | string | An indicator for the specific eligibility criteria validated within a vendorUniqueId. If a card is eligible for multiple levels, VCES will always return the highest (largest) eligibility level validated.<br>*Example:* `"1"` | Yes |
| entityToBeBilled | { **"memberCharge"**: string or null, **"additionalRedemptionCharges"**: [ string ] or null } | Details of who to bill for redemptions based on vendorUniqueId setup. | No |
| redemptionDetails | { **"used"**: { **"count"**: string or null, **"details"**: { **"timeStamp"**: [ string ] or null }, **"additionalRedemptions"**: integer or null, **"additionalRedemptionDetails"**: { **"timeStamp"**: [ string ] or null } }, **"pooled"**: boolean or null, **"allowed"**: { **"count"**: string or null, **"duration"**: { **"type"**: string or null, **"value"**: string or null }, **"additionalRedemptionsPerTransaction"**: integer or null }, **"isUnlimited"**: string or null, **"eligibleRedemptions"**: { **"count"**: integer, **"coveredAdditionalRedemptions"**: integer, **"requestedAdditionalRedemptions"**: integer } } | Verbose text indicating redemption details based on vendorUniqueId setup. | No |
| responseTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |
| statusDescription | string | Verbose text indicating result of the operation as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section0" target="_blank">defined by VCES</a>.<br>*Example:* `"Success"` | Yes |
| acctFundSrceSubTyp | string or null | Account Funding Source Sub Type as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section6" target="_blank">defined by VCES</a>. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"N"` | No |
| spendTierSpendAmount | string or null | Largest amount of eligible spend performed on a credential based qualified on configured spend tiers. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"100.00"` | No |
| spendTierCurrencyCode | string or null | Currency code of amount returned in spendTierAmount as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section3" target="_blank">defined by VCES</a>. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"840"` | No |

#### ValidationResultRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call used in Get Token operation.<br>*Example:* `"wsxedcrfv234"` | Yes |
| vendorUniqueId | string | Unique ID containing eligibility requirements and custom settings for program. Also referenced as Program ID, VUID, or Promotion ID.<br>*Example:* `"TEST_VUID_456"` | Yes |
| requestTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |

#### AllowedRedemptionDetails Schema

Verbose details on allowed/configured redemptions. Allowed redemptions are the counts per duration configured for the vendorUniqueId or for the corresponding eligibilityLevel.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| count | string or null | Number of allowed redemptions configured based on the vendorUniqueId or eligibilityLevel. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"3"` | No |
| duration | { **"type"**: string or null, **"value"**: string or null } | Details on the period in which redemptions are tracked. | No |
| additionalRedemptionsPerTransaction | integer or null | Number of additional redemptions allowed per redemption. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `2` | No |

#### PrepayRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| isPan | boolean or null | True if permanentAccountNumber is a 16 digit card number. False if permanentAccountNumber is a 16-19 digit VTS token OR if permanentAccountNumber's credential is unknown. This field is set to true by default, so it only needs to be passed if setting to false.<br>*Example:* `true` | No |
| aliasId | string or null | Unique ID (36 characters) generated by VCES corresponding to a credential. VCES will return  AliasId in the response if the vendorUniqueId is configured. AliasId can be used in subsequent calls as a credential instead of 16 digit card number or VTS token. AliasIds are PCI compliant and valid for use ONLY in the same vendorUniqueId used to generate the AliasId. This field is **conditionally required**, as it is mutually exclusive with PAN and VTS token (only use one).<br>*Example:* `"42ef1b00-6315-4868-9618-73e2839fe497"` | No |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call used in the Validate operation.<br>*Example:* `"qazwsxedc123"` | Yes |
| vendorUniqueId | string | Unique ID containing eligibility requirements and custom settings for program. Also referenced as Program ID, VUID, or Promotion ID.<br>*Example:* `"TEST_VUID_123"` | Yes |
| requestTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |
| tokenAccountNumber | string or null | 16-19 digit VTS token. If certain, a VTS token is passed, use this field. If uncertain, whether a 16 digit card number or VTS token is passed, please use the permanentAccountNumber field and set isPan field to False in the API request (VCES will automatically validate both). This field is **conditionally required**, as it is mutually exclusive with aliasId and PAN (only use one).<br>*Example:* `"4222222222222222"` | No |
| permanentAccountNumber | string or null | 16 digit card number OR 16-19 digit VTS token. If a certain 16 digit card number is passed, use this field. If uncertain whether a card number or VTS token is passed, place the 16 digit number in this field and set isPan field to False in the API request (VCES will automatically validate both). This field is **conditionally required**, as it is mutually exclusive with aliasId and tokenAccountNumber (only use one).<br>*Example:* `"4111111111111111"` | No |

#### CardBenefit Schema

Verbose response containing benefit information from VDBP/VFS.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| benefitDesc | string or null | Verbose text describing the CardEnhanceTypeCode from VFS/VDBP. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"High quality emergency assistance for Visa cardholders accessible via tollfree line 24 hours a day, 7 days a week, and 365 days a year. Terms and Conditions apply."` | No |
| benefitName | string or null | Verbose name of the CardEnhanceTypeCode from VFS/VDBP. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"(GCAS) Global Center Customer Services"` | No |
| phoneNumberDetails | string or null | Phone number of service provider for given benefit. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"1-800-847-2911"` | No |
| cardEnhanceTypeCode | string or null | Benefit type code from VFS/VDBP. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"GCAS"` | No |

#### RedemptionDuration Schema

Details on the period in which redemptions are tracked.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| type | string or null | Indicates period type in which redemptions are tracked. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"Years"` | No |
| value | string or null | Indicates the number of periods in which redemptions are tracked. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"1"` | No |

#### PrepayIframeRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| aliasId | string | Unique ID (36 characters) generated by VCES corresponding to a credential. VCES will return the AliasId in the response if configured. AliasId can be used in subsequent calls as a credential instead of 16 digit card number or VTS token. AliasIds are PCI compliant and valid for use ONLY in the same vendorUniqueId used to generate the AliasId.<br>*Example:* `"34ef1b90-6315-6321-7459-73e2839fe497"` | Yes |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call.<br>*Example:* `"qazwsxedc123"` | Yes |
| vendorUniqueId | string | Unique ID containing eligibility requirements and custom settings for program. Also referenced as Program ID, VUID, or Promotion ID.<br>*Example:* `"TEST_VUID_456"` | Yes |
| requestTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |

#### RedeemResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| aliasId | string or null | Unique ID (36 characters) generated by VCES corresponding to a credential. VCES will return the AliasId in the response if configured. AliasId can be used in subsequent calls as a credential instead of 16 digit card number or VTS token. AliasIds are PCI compliant and valid for use ONLY in the same vendorUniqueId used to generate the AliasId.<br>*Example:* `"42ef1b00-6315-4868-9618-73e2839fe497"` | No |
| statusCode | string | VCES response code indicating result of the operation as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section0" target="_blank">defined by VCES</a>.<br>*Example:* `"000"` | Yes |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call used in the Redeem request and Validate and Prepay operations.<br>*Example:* `"qazwsxedc123"` | Yes |
| responseTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |
| statusDescription | string | Verbose text indicating result of the operation.<br>*Example:* `"Success"` | Yes |

#### RedemptionUsageDetails Schema

Timestamp data for used redemptions.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| timeStamp | [ string ] or null | List of timestamps for additional redemptions. For this field to be returned, vendorUniqueId needs to be configured. | No |

#### ValidateRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| isPan | boolean or null | True if permanentAccountNumber is a 16 digit card number. False if permanentAccountNumber is a 16-19 digit VTS token OR if permanentAccountNumber's credential is unknown. This field is set to true by default, so it only needs to be passed if setting to false.<br>*Example:* `true` | No |
| aliasId | string or null | Unique ID (36 characters) generated by VCES corresponding to a credential. VCES will return  AliasId in the response if the vendorUniqueId is configured. AliasId can be used in subsequent calls as a credential instead of 16 digit card number or VTS token. AliasIds are PCI compliant and valid for use ONLY in the same vendorUniqueId used to generate the AliasId. This field is **conditionally required**, as it is mutually exclusive with PAN and VTS token (only use one).<br>*Example:* `"42ef1b00-6315-4868-9618-73e2839fe497"` | No |
| extendedData | string or null | Free text field available for reporting purposes. Do not use commas (,), colons (:), or semicolons (;). This field is optional; most implementations will not use it.<br>*Example:* `"Premium"` | No |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call.<br>*Example:* `"qazwsxedc123"` | Yes |
| expirationDate | { **"year"**: string or null, **"month"**: string or null } | Month (MM) and Year (YYYY) format expiry date of 16 digit card number. This field ONLY needs to be passed if using the $0 authorization (AVS) check. | No |
| vendorUniqueId | string | Unique ID containing eligibility requirements and custom settings for program. Also referenced as Program ID, VUID, or Promotion ID.<br>*Example:* `"TEST_VUID_123"` | Yes |
| requestTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |
| tokenAccountNumber | string or null | 16-19 digit VTS token. If certain, a VTS token is passed, use this field. If uncertain, whether a 16 digit card number or VTS token is passed, please use the permanentAccountNumber field and set isPan field to False in the API request (VCES will automatically validate both). This field is **conditionally required**, as it is mutually exclusive with aliasId and PAN (only use one).<br>*Example:* `"4222222222222222"` | No |
| permanentAccountNumber | string or null | 16 digit card number OR 16-19 digit VTS token. If a certain 16 digit card number is passed, use this field. If uncertain whether a card number or VTS token is passed, place the 16 digit number in this field and set isPan field to False in the API request (VCES will automatically validate both). This field is **conditionally required**, as it is mutually exclusive with aliasId and tokenAccountNumber (only use one).<br>*Example:* `"4111111111111111"` | No |
| numberOfAdditionalRedemptions | integer or null | The number of additional redemptions validated for eligibility. This field is **conditionally optional** (only needs to be passed if using additional redemptions within the same transaction).<br>*Example:* `2` | No |

#### RedemptionDetails Schema

Verbose text indicating redemption details based on vendorUniqueId setup.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| used | { **"count"**: string or null, **"details"**: { **"timeStamp"**: [ string ] or null }, **"additionalRedemptions"**: integer or null, **"additionalRedemptionDetails"**: { **"timeStamp"**: [ string ] or null } } | Verbose details on redemptions already used. | No |
| pooled | boolean or null | For each redemption, if pooled is true, number of redemptions = cardholder (1) + number of additional redemptions. If pooled is false, number of redemptions = cardholder (1). For this field to be returned, vendorUniqueId needs to be configured. | No |
| allowed | { **"count"**: string or null, **"duration"**: { **"type"**: string or null, **"value"**: string or null }, **"additionalRedemptionsPerTransaction"**: integer or null } | Verbose details on allowed/configured redemptions. Allowed redemptions are the counts per duration configured for the vendorUniqueId or for the corresponding eligibilityLevel. | No |
| isUnlimited | string or null | True indicates unlimited redemptions are available. False indicates restrictions are redemptions. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"False"` | No |
| eligibleRedemptions | { **"count"**: integer, **"coveredAdditionalRedemptions"**: integer, **"requestedAdditionalRedemptions"**: integer } | Verbose details on the eligible redemptions available. | No |

#### ValidationResultResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| bin | string or null | Bank Identification Number (BIN) as defined by Visa. For this field to be returned, vendorUniqueId needs to be configured. | No |
| rpin | string or null | Rewards Program Identification Number (RPIN) as defined by Visa. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"123456"` | No |
| cardId | string | VCES generated unique numeric ID corresponding to a credential.<br>*Example:* `"56785678"` | Yes |
| aliasId | string or null | Unique ID (36 characters) generated by VCES corresponding to a credential. VCES will return the AliasId in the response if configured. AliasId can be used in subsequent calls as a credential instead of 16 digit card number or VTS token. AliasIds are PCI compliant and valid for use ONLY in the same vendorUniqueId used to generate the AliasId.<br>*Example:* `"42ef1b00-6315-4868-9618-73e2839fe497"` | No |
| issuerBid | string or null | Business identification (BID) as defined by Visa. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"10009999"` | No |
| isEligible | string | Indicates if a credential is eligible based on the criteria and configuration of the vendorUniqueId.<br>*Example:* `"True"` | Yes |
| statusCode | string | VCES response code indicating result of the operation as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section0" target="_blank">defined by VCES</a>.<br>*Example:* `"000"` | Yes |
| countryCode | string or null | Country Code as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section2" target="_blank">defined by VCES</a>. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"840"` | No |
| productType | string or null | Product Type as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section1" target="_blank">defined by VCES</a>. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"A"` | No |
| acctFundSrce | string or null | Account Funding Source as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section5" target="_blank">defined by VCES</a>. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"C"` | No |
| binIndicator | string or null | **Deprecated** BIN indicator as defined by Visa. For this field to be returned, vendorUniqueId needs to be configured. | No |
| platformCode | string or null | Product platform, based on account level processing, as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section3" target="_blank">defined by VCES</a>. The broadest categorization of the card product reflecting the general product platform or family that the product exists. | No |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call used in Get Token operation and Validate Result request.<br>*Example:* `"wsxedcrfv234"` | Yes |
| lastFourDigits | string or null | Last 4 digits of PAN. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"1111"` | No |
| productSubType | string or null | Product Sub Type as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section4" target="_blank">defined by VCES</a>. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"AC"` | No |
| benefitIndicator | string or null | **Deprecated** Benefit indicator as defined by Visa. For this field to be returned, vendorUniqueId needs to be configured. | No |
| eligibilityLevel | string | An indicator for the specific eligibility criteria validated within a vendorUniqueId. If a card is eligible for multiple levels, VCES will always return the highest (largest) eligibility level validated.<br>*Example:* `"1"` | Yes |
| redemptionDetails | { **"used"**: { **"count"**: string or null, **"details"**: { **"timeStamp"**: [ string ] or null }, **"additionalRedemptions"**: integer or null, **"additionalRedemptionDetails"**: { **"timeStamp"**: [ string ] or null } }, **"pooled"**: boolean or null, **"allowed"**: { **"count"**: string or null, **"duration"**: { **"type"**: string or null, **"value"**: string or null }, **"additionalRedemptionsPerTransaction"**: integer or null }, **"isUnlimited"**: string or null, **"eligibleRedemptions"**: { **"count"**: integer, **"coveredAdditionalRedemptions"**: integer, **"requestedAdditionalRedemptions"**: integer } } | Verbose text indicating redemption details based on vendorUniqueId setup. | No |
| responseTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |
| statusDescription | string | Verbose text indicating result of the operation as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section0" target="_blank">defined by VCES</a>.<br>*Example:* `"Success"` | Yes |
| acctFundSrceSubTyp | string or null | Account Funding Source Sub Type as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section6" target="_blank">defined by VCES</a>. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"N"` | No |
| spendTierSpendAmount | double | Largest amount of eligible spend performed on a credential based qualified on configured spend tiers. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `100` | No |
| spendTierCurrencyCode | string or null | Currency code of amount returned in spendTierAmount as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section3" target="_blank">defined by VCES</a>. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"840"` | No |

#### UsedRedemptionDetails Schema

Verbose details on redemptions already used.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| count | string or null | Count of redemptions used. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"3"` | No |
| details | { **"timeStamp"**: [ string ] or null } | Timestamp data for used redemptions. | No |
| additionalRedemptions | integer or null | Number of additional redemptions used. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `1` | No |
| additionalRedemptionDetails | { **"timeStamp"**: [ string ] or null } | Timestamp data for used additional redemptions. | No |

#### AdditionalRedemptionUsageDetails Schema

Timestamp data for used additional redemptions.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| timeStamp | [ string ] or null | List of timestamps for additional redemptions. For this field to be returned, vendorUniqueId needs to be configured. | No |

#### EntityToBeBilled Schema

Details of who to bill for redemptions based on vendorUniqueId setup.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| memberCharge | string or null | Charge owner for cardholder redemption. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `"Issuer"` | No |
| additionalRedemptionCharges | [ string ] or null | List of charge owners for guest redemptions. For this field to be returned, vendorUniqueId needs to be configured. | No |

#### PrepayResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| aliasId | string or null | Unique ID (36 characters) generated by VCES corresponding to a credential. VCES will return the AliasId in the response if configured. AliasId can be used in subsequent calls as a credential instead of 16 digit card number or VTS token. AliasIds are PCI compliant and valid for use ONLY in the same vendorUniqueId used to generate the AliasId.<br>*Example:* `"42ef1b00-6315-4868-9618-73e2839fe497"` | No |
| statusCode | string | VCES response code indicating result of the operation as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section0" target="_blank">defined by VCES</a>.<br>*Example:* `"000"` | Yes |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call used in the Prepay iFrame request.<br>*Example:* `"qazwsxedc123"` | Yes |
| hasPanMatched | string | True if the credential used during Validate operation matches credential used in Prepay operation. False if the two credentials used during each operation are different.<br>*Example:* `"False"` | Yes |
| responseTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |
| statusDescription | string | Verbose text indicating result of the operation as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section0" target="_blank">defined by VCES</a>.<br>*Example:* `"Success"` | Yes |

#### EligibleRedemptions Schema

Verbose details on the eligible redemptions available.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| count | integer | Total number of eligible redemptions available for redemption for this specific validation. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `3` | No |
| coveredAdditionalRedemptions | integer | Number of eligible additional redemptions available for redemption for this specific validation. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `2` | No |
| requestedAdditionalRedemptions | integer | Total number of requested additional redemptions for this specific validation. For this field to be returned, vendorUniqueId needs to be configured.<br>*Example:* `1` | No |

#### IframeRedeemResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| statusCode | string | VCES response code indicating result of the operation as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section0" target="_blank">defined by VCES</a>.<br>*Example:* `"000"` | Yes |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call used in Get Token, Validate Result, and iFrame Redemption operations and iFrame Redemption request.<br>*Example:* `"wsxedcrfv234"` | Yes |
| responseTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |
| statusDescription | string | Verbose text indicating result of the operation.<br>*Example:* `"Success"` | Yes |

#### ExpirationDate Schema

Month (MM) and Year (YYYY) format expiry date of 16 digit card number. This field ONLY needs to be passed if using the $0 authorization (AVS) check.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| year | string or null | Year (YYYY) format expiry date of 16 digit card number. This field is **conditionally optional** (only needs to be passed if the vendorUniqueId is configured for $0 authorization check).<br>*Example:* `"2000"` | No |
| month | string or null | Month (MM) format expiry date of 16 digit card number. This field is **conditionally optional** (only needs to be passed if the vendorUniqueId is configured for $0 authorization check).<br>*Example:* `"01"` | No |

#### RedeemIframeRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| mode | string or null | Mode = 0 if performing a redemption action. Mode = 1 if performing a reverse redemption action. This field is **conditionally optional** (it is set to 0 by default so it only needs to be passed if setting to 1).<br>*Example:* `"1"` | No |
| aliasId | string | Unique ID (36 characters) generated by VCES corresponding to a credential. AliasIds are PCI compliant and valid for use ONLY in the same vendorUniqueId used to generate the AliasId.<br>*Example:* `"42ef1b00-6315-4868-9618-73e2839fe497"` | Yes |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call used in Validate iFrame operation.<br>*Example:* `"qazwsxedc123"` | Yes |
| vendorUniqueId | string | Unique ID containing eligibility requirements and custom settings for program. Also referenced as Program ID, VUID, or Promotion ID.<br>*Example:* `"TEST_VUID_456"` | Yes |
| requestTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |

#### RedeemRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| mode | string or null | Mode = 0 if performing a redemption action. Mode = 1 if performing a reverse redemption action. This field is **conditionally optional** (it is set to 0 by default so it only needs to be passed if setting to 1).<br>*Example:* `"1"` | No |
| isPan | boolean or null | True if permanentAccountNumber is a 16 digit card number. False if permanentAccountNumber input field is a 16-19 digit VTS token OR if permanentAccountNumber's input value is uncertain. This field is set to True by default, so it only needs to be passed if setting to False. | No |
| aliasId | string or null | Unique ID (36 characters) generated by VCES corresponding to a 16 digit card number. VCES will return the alias ID in the Validate response if configured, and then it can be used in subsequent calls instead of PAN. Alias IDs are PCI compliant and valid for use ONLY in the same vendorUniqueId used to generate them. This field is **conditionally required**, as it is mutually exclusive with PAN and VTS token (only use one).<br>*Example:* `"42ef1b00-6315-4868-9618-73e2839fe497"` | No |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call used in the Validate and Prepay operations.<br>*Example:* `"qazwsxedc123"` | Yes |
| vendorUniqueId | string | Unique ID containing eligibility requirements and custom settings for program. Also referenced as Program ID, VUID, or Promotion ID.<br>*Example:* `"TEST_VUID_123"` | Yes |
| requestTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |
| tokenAccountNumber | string or null | 16-19 digit VTS token. If certain, a VTS token is passed, use this field. If uncertain, whether a 16 digit card number or VTS token is passed, please use the permanentAccountNumber field and set isPan field to False in the API request (VCES will automatically validate both). This field is **conditionally required**, as it is mutually exclusive with aliasId and PAN (only use one).<br>*Example:* `"4222222222222222"` | No |
| permanentAccountNumber | string or null | 16 digit card number OR 16-19 digit VTS token. If a certain 16 digit card number is passed, use this field. If uncertain whether a card number or VTS token is passed, place the 16 digit number in this field and set isPan field to False in the API request (VCES will automatically validate both). This field is **conditionally required**, as it is mutually exclusive with aliasId and VTS token (only use one).<br>*Example:* `"4111111111111111"` | No |

#### ValidateIframeRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| aliasId | string | Unique ID (36 characters) generated by VCES corresponding to a credential. VCES will return the AliasId in the response if configured. AliasId can be used in subsequent calls as a credential instead of 16 digit card number or VTS token. AliasIds are PCI compliant and valid for use ONLY in the same vendorUniqueId used to generate the AliasId.<br>*Example:* `"42ef1b00-6315-4868-9618-73e2839fe497"` | Yes |
| extendedData | string or null | Free text field available for reporting purposes. Do not use commas (,), colons (:), or semicolons (;). This field is optional; most implementations will not use it.<br>*Example:* `"Premium"` | No |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call.<br>*Example:* `"qazwsxedc123"` | Yes |
| vendorUniqueId | string | Unique ID containing eligibility requirements and custom settings for program. Also referenced as Program ID, VUID, or Promotion ID.<br>*Example:* `"TEST_VUID_456"` | Yes |
| requestTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |
| numberOfAdditionalRedemptions | integer or null | The number of additional redemptions to be validated for eligibility. This field is **conditionally optional** (only needs to be passed if using additional redemptions within the same transaction).<br>*Example:* `2` | No |

#### RegisteriFrameRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| extendedData | string or null | Free text field available for reporting purposes. Do not use commas (,), colons (:), or semicolons (;). This field is optional; most implementations will not use it.<br>*Example:* `"Premium"` | No |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call.<br>*Example:* `"wsxedcrfv234"` | Yes |
| vendorUniqueId | string | Unique ID containing eligibility requirements and custom settings for program. Also referenced as Program ID, VUID, or Promotion ID.<br>*Example:* `"TEST_VUID_456"` | Yes |
| requestTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |

#### IframeRedeemRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| mode | string | Mode = 0 if performing a redemption action. Mode = 1 if performing a reverse redemption action. This field is **conditionally optional** (it is set to 0 by default, so it only needs to be passed if setting to 1).<br>*Example:* `"1"` | Yes |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call used in Get Token and Validate Result operations.<br>*Example:* `"wsxedcrfv234"` | Yes |
| vendorUniqueId | string | Unique ID containing eligibility requirements and custom settings for program. Also referenced as Program ID, VUID, or Promotion ID.<br>*Example:* `"TEST_VUID_456"` | Yes |
| requestTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |

#### RegisteriFrameResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| token | string | VCES token for invoking the iFrame.<br>*Example:* `"C56A4180-65AA-42EC-A945-5FD21DEC0538"` | Yes |
| expiresIn | string | Length in seconds the token will remain valid.<br>*Example:* `"600"` | Yes |
| statusCode | string | VCES response code indicating result of the operation as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section0" target="_blank">defined by VCES</a>.<br>*Example:* `"000"` | Yes |
| correlationId | string | Partner generated unique ID (10-25 characters) for the API call used in the Get Token request.<br>*Example:* `"wsxedcrfv234"` | Yes |
| responseTimeStamp | string | The current GMT timestamp in mm/dd/yyyy hh:mm:ss tt format.<br>*Example:* `"2/1/2017 11:05:20 AM"` | Yes |
| statusDescription | string | Verbose text indicating result of the operation as <a href="https://developer.visa.com/capabilities/vces/response-codes-and-descriptions#section0" target="_blank">defined by VCES</a>.<br>*Example:* `"Success"` | Yes |
