# Visa Subscription Manager
Visa Subscription Manager can help provide cardholders with transparency, ease and control over managing their finances through their issuer’s mobile application, potentially eliminating the need to contact the issuer call center.It provides issuers a fast, easy integration to implement recurring payment management capabilities within their consumer facing applications. 

## Version: 1

### Servers

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

---
## Card-On-File Data Service API
Card-On-File Data API allows to enable digital control capabilities in Issuer’s online mobile application or web application to provide visibility to the consumers where their card (PAN)/token credentials are stored to initiate Card-On-File Data API/e-commerce transactions and where the credentials are updated in case of a card reissuance or token status updates

### [POST] /cofds-web/v1/datainfo
**Card-on-File Merchant Aggregation**

The API will return data layer aggregated at cleansed merchant name level.

#### Request Body

Card-On-File Data request query for merchants

| Required | Schema |
| -------- | ------ |
|  Yes | **application/json**: { **"requestData"**: { **"pANs"**: [ string ], **"group"**: string, <br>**Available values:** "STANDARD" }, **"requestHeader"**: { **"messageDateTime"**: string, **"requestMessageId"**: string } }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Successful | **application/json**: { **"status"**: { **"statusCode"**: string, **"statusDescription"**: string }, **"responseData"**: { **"group"**: string, <br>**Available values:** "STANDARD", **"panList"**: [ { **"panData"**: { **"pAN"**: string, **"merchants"**: [ { **"mCC"**: string, **"mrchRef"**: string, **"mrchURL"**: string, **"mrchAddr"**: string, **"mrchName"**: string, **"mrchDbaId"**: string, **"lastTranAmt"**: string, **"mrchDbaName"**: string, **"mrchLogoURL"**: string, **"mrchPhoneNum"**: string, **"confidenceInd"**: string, **"tokenReqstrId"**: string, **"cardAcceptorId"**: string, **"lastMrchTranDt"**: string, **"lastTranAmtUSD"**: string, **"totalTranCount"**: string, **"tranTypeDetails"**: [ { **"tranType"**: string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION", **"tranCount"**: long, **"lastTranAmt"**: string, **"lastTranAmtUSD"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"lastTranBillCurrency"**: string, **"lastTranAmtBillCurrency"**: string } ], **"vAUUpdateStatus"**: string, **"acctNumOld4Digit"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"vAULastUpdateDate"**: string, **"sponsoredMerchantId"**: string, **"lastTranBillCurrency"**: string, **"paymentFacilitatorId"**: string, **"lastTranAmtBillCurrency"**: string, **"tokenPANReplacementDate"**: string, **"tokenPANReplacementStatus"**: string } ], **"panResponseMsg"**: string } } ] }, **"responseHeader"**: { **"messageDateTime"**: string, **"requestMessageId"**: string, **"responseMessageId"**: string } & { **"numRecordsReturned"**: integer } }<br> |
| 400 | Invalid request | **application/json**: { **"status"**: { **"statusCode"**: string, **"statusDescription"**: string }, **"responseData"**: { **"group"**: string, <br>**Available values:** "STANDARD", **"panList"**: [ { **"panData"**: { **"pAN"**: string, **"merchants"**: [ { **"mCC"**: string, **"mrchRef"**: string, **"mrchURL"**: string, **"mrchAddr"**: string, **"mrchName"**: string, **"mrchDbaId"**: string, **"lastTranAmt"**: string, **"mrchDbaName"**: string, **"mrchLogoURL"**: string, **"mrchPhoneNum"**: string, **"confidenceInd"**: string, **"tokenReqstrId"**: string, **"cardAcceptorId"**: string, **"lastMrchTranDt"**: string, **"lastTranAmtUSD"**: string, **"totalTranCount"**: string, **"tranTypeDetails"**: [ { **"tranType"**: string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION", **"tranCount"**: long, **"lastTranAmt"**: string, **"lastTranAmtUSD"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"lastTranBillCurrency"**: string, **"lastTranAmtBillCurrency"**: string } ], **"vAUUpdateStatus"**: string, **"acctNumOld4Digit"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"vAULastUpdateDate"**: string, **"sponsoredMerchantId"**: string, **"lastTranBillCurrency"**: string, **"paymentFacilitatorId"**: string, **"lastTranAmtBillCurrency"**: string, **"tokenPANReplacementDate"**: string, **"tokenPANReplacementStatus"**: string } ], **"panResponseMsg"**: string } } ] }, **"responseHeader"**: { **"messageDateTime"**: string, **"requestMessageId"**: string, **"responseMessageId"**: string } & { **"numRecordsReturned"**: integer } }<br> |
| 401 | Unauthorized request | **application/json**: { **"status"**: { **"statusCode"**: string, **"statusDescription"**: string }, **"responseData"**: { **"group"**: string, <br>**Available values:** "STANDARD", **"panList"**: [ { **"panData"**: { **"pAN"**: string, **"merchants"**: [ { **"mCC"**: string, **"mrchRef"**: string, **"mrchURL"**: string, **"mrchAddr"**: string, **"mrchName"**: string, **"mrchDbaId"**: string, **"lastTranAmt"**: string, **"mrchDbaName"**: string, **"mrchLogoURL"**: string, **"mrchPhoneNum"**: string, **"confidenceInd"**: string, **"tokenReqstrId"**: string, **"cardAcceptorId"**: string, **"lastMrchTranDt"**: string, **"lastTranAmtUSD"**: string, **"totalTranCount"**: string, **"tranTypeDetails"**: [ { **"tranType"**: string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION", **"tranCount"**: long, **"lastTranAmt"**: string, **"lastTranAmtUSD"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"lastTranBillCurrency"**: string, **"lastTranAmtBillCurrency"**: string } ], **"vAUUpdateStatus"**: string, **"acctNumOld4Digit"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"vAULastUpdateDate"**: string, **"sponsoredMerchantId"**: string, **"lastTranBillCurrency"**: string, **"paymentFacilitatorId"**: string, **"lastTranAmtBillCurrency"**: string, **"tokenPANReplacementDate"**: string, **"tokenPANReplacementStatus"**: string } ], **"panResponseMsg"**: string } } ] }, **"responseHeader"**: { **"messageDateTime"**: string, **"requestMessageId"**: string, **"responseMessageId"**: string } & { **"numRecordsReturned"**: integer } }<br> |
| 500 | Internal service failure | **application/json**: { **"status"**: { **"statusCode"**: string, **"statusDescription"**: string }, **"responseData"**: { **"group"**: string, <br>**Available values:** "STANDARD", **"panList"**: [ { **"panData"**: { **"pAN"**: string, **"merchants"**: [ { **"mCC"**: string, **"mrchRef"**: string, **"mrchURL"**: string, **"mrchAddr"**: string, **"mrchName"**: string, **"mrchDbaId"**: string, **"lastTranAmt"**: string, **"mrchDbaName"**: string, **"mrchLogoURL"**: string, **"mrchPhoneNum"**: string, **"confidenceInd"**: string, **"tokenReqstrId"**: string, **"cardAcceptorId"**: string, **"lastMrchTranDt"**: string, **"lastTranAmtUSD"**: string, **"totalTranCount"**: string, **"tranTypeDetails"**: [ { **"tranType"**: string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION", **"tranCount"**: long, **"lastTranAmt"**: string, **"lastTranAmtUSD"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"lastTranBillCurrency"**: string, **"lastTranAmtBillCurrency"**: string } ], **"vAUUpdateStatus"**: string, **"acctNumOld4Digit"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"vAULastUpdateDate"**: string, **"sponsoredMerchantId"**: string, **"lastTranBillCurrency"**: string, **"paymentFacilitatorId"**: string, **"lastTranAmtBillCurrency"**: string, **"tokenPANReplacementDate"**: string, **"tokenPANReplacementStatus"**: string } ], **"panResponseMsg"**: string } } ] }, **"responseHeader"**: { **"messageDateTime"**: string, **"requestMessageId"**: string, **"responseMessageId"**: string } & { **"numRecordsReturned"**: integer } }<br> |

---
### Schemas

#### Status Schema

Status details, which include the application status code and corresponding message.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| statusCode | string | Status Code of the Service Request.<br>*Example:* `"CDI000"` | Yes |
| statusDescription | string | A string description of the statusCode element. A brief description indicating the result of the service request.<br>*Example:* `"COF Service - Success"` | Yes |

#### TranType Schema

List of transaction details by transaction type. Each transaction type can appear once and only if there’s an associated transaction.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| tranType | string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION" | The transaction type code.<br>*Enum:* `"SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION"`<br>*Example:* `"MERCHANT_COF"` | Yes |
| tranCount | long | Transaction count for the type.<br>*Example:* `10` | Yes |
| lastTranAmt | string | Last transaction amount in currency used in transaction for the type.<br>*Example:* `"22.72"` | Yes |
| lastTranAmtUSD | string | Last transaction amount in USD.<br>*Example:* `"15.22"` | No |
| lastTranCurrency | string | Currency used in last transaction for the type.  Format: ISO 4217 standard<br>*Example:* `"AUD"` | No |
| lastTranDateTime | string | Date and time of last transaction timestamp for the type in UTC time zone.  Format: yyyy-MM-dd HH:mm:ss.SSS (ISO 8601 standard)<br>*Example:* `"2021-07-11 07:05:04.000"` | No |
| lastTranBillCurrency | string | Billing currency of last transaction.  Format: ISO 4217 standard<br>*Example:* `"AUD"` | No |
| lastTranAmtBillCurrency | string | Last transaction amount in billing currency.<br>*Example:* `"22.72"` | No |

#### PANDataWrapper Schema

An array of response objects for each PAN.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| panData | { **"pAN"**: string, **"merchants"**: [ { **"mCC"**: string, **"mrchRef"**: string, **"mrchURL"**: string, **"mrchAddr"**: string, **"mrchName"**: string, **"mrchDbaId"**: string, **"lastTranAmt"**: string, **"mrchDbaName"**: string, **"mrchLogoURL"**: string, **"mrchPhoneNum"**: string, **"confidenceInd"**: string, **"tokenReqstrId"**: string, **"cardAcceptorId"**: string, **"lastMrchTranDt"**: string, **"lastTranAmtUSD"**: string, **"totalTranCount"**: string, **"tranTypeDetails"**: [ { **"tranType"**: string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION", **"tranCount"**: long, **"lastTranAmt"**: string, **"lastTranAmtUSD"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"lastTranBillCurrency"**: string, **"lastTranAmtBillCurrency"**: string } ], **"vAUUpdateStatus"**: string, **"acctNumOld4Digit"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"vAULastUpdateDate"**: string, **"sponsoredMerchantId"**: string, **"lastTranBillCurrency"**: string, **"paymentFacilitatorId"**: string, **"lastTranAmtBillCurrency"**: string, **"tokenPANReplacementDate"**: string, **"tokenPANReplacementStatus"**: string } ], **"panResponseMsg"**: string } | Response Object for a single PAN | No |

#### BaseResponseHeader Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| messageDateTime | string | Date and time at which response is sent (up to milliseconds in UTC).  Format: yyyy-MM-dd HH:mm:ss.SSS (ISO 8601 standard) <br>*Example:* `"2018-09-19 06:01:00.601"` | Yes |
| requestMessageId | string | A string that uniquely identifies the service request. Response will contain the same message ID as received from requesting application.<br>*Example:* `"6da60e1b8b024532a2e0eacb1af5858132a2e0eacb1af58581"` | Yes |
| responseMessageId | string | Correlation id which uniquely identifies the current request-response processing<br>*Example:* `"1561737829_569_743208831_l55c014_VDP_WS"` | Yes |

#### ResponseHeader Schema

Fields contained in the header of each response.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| ResponseHeader | { **"messageDateTime"**: string, **"requestMessageId"**: string, **"responseMessageId"**: string } & { **"numRecordsReturned"**: integer } | Fields contained in the header of each response. |  |

#### RMResponseData Schema

Response data, which includes raw merchant information for the requested PAN and mrchRef.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| mrchRef | string | Correlation ID to uniquely identify the merchant. The reference ID is not static and may change.<br>*Example:* `"MTIzNDU2Nzg5MDEyMzQ1Njc4OTpBTUFaT04="` | Yes |
| responseMsg | string | Indicates whether data retrieval for a given PAN and mrchRef was successful; field contains either "Success" or the reason for the error if data retrieval was not successful.<br>*Example:* `"Success"` | Yes |
| rawMerchants | [ { **"mrchLogoURL"**: string, **"rawMrchName"**: string, **"tokenReqstrId"**: string, **"tranTypeDetails"**: [ { **"tranType"**: string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION", **"tranCount"**: long, **"lastTranAmt"**: string, **"lastTranAmtUSD"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"lastCardAcceptorId"**: string, **"lastTranBillCurrency"**: string, **"lastTranAmtBillCurrency"**: string } ], **"predictedPayments"**: { **"nextPaymentAmt"**: string, **"nextPaymentDate"**: string, **"paymentFrequency"**: string, <br>**Available values:** "WEEKLY, BIWEEKLY, SEMIMONTHLY, MONTHLY, BIMONTHLY, QUARTERLY, SEMIANNUALLY, ANNUALLY, IRREGULAR" }, **"sponsoredMerchantId"**: string, **"paymentFacilitatorId"**: string } ] | List of raw merchants who have Card-On-File Data for the requested PAN and mrchRef. | No |

#### RMRequestData Schema

Request body for querying Card-on-file raw merchant.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| pAN | string | PAN for requesting raw merchant data. The PAN has a format of 12–19 decimal digits starting with a "4" (indicating Visa accounts).<br>*Example:* `"4000123456789010"` | Yes |

#### RMResponseHeader Schema

Fields contained in the header of each response.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| RMResponseHeader | { **"messageDateTime"**: string, **"requestMessageId"**: string, **"responseMessageId"**: string } & { **"numRecordsReturned"**: integer } | Fields contained in the header of each response. |  |

#### RawMerchantTranType Schema

List of transaction details by transaction type. Each transaction type can appear once and only if there’s an associated transaction.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| tranType | string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION" | The transaction type code.<br>*Enum:* `"SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION"`<br>*Example:* `"MERCHANT_COF"` | Yes |
| tranCount | long | Transaction count for the type.<br>*Example:* `10` | Yes |
| lastTranAmt | string | Last transaction amount in currency used in transaction for the type.<br>*Example:* `"22.72"` | Yes |
| lastTranAmtUSD | string | Last transaction amount in USD.<br>*Example:* `"15.22"` | No |
| lastTranCurrency | string | Currency used in last transaction for the type.  Format: ISO 4217 standard<br>*Example:* `"AUD"` | No |
| lastTranDateTime | string | Date and time of last transaction timestamp for the type in UTC time zone.  Format: yyyy-MM-dd HH:mm:ss.SSS (ISO 8601 standard)<br>*Example:* `"2021-07-11 07:05:04.000"` | No |
| lastCardAcceptorId | string | Card Acceptor ID of last transaction.<br>*Example:* `"44186224"` | No |
| lastTranBillCurrency | string | Billing currency of last transaction.  Format: ISO 4217 standard<br>*Example:* `"AUD"` | No |
| lastTranAmtBillCurrency | string | Last transaction amount in billing currency.<br>*Example:* `"22.72"` | No |

#### MResponseData Schema

Response data, which includes merchant information for the requested PANs.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| group | string, <br>**Available values:** "STANDARD" | Identifies the set of response fields the customer is eligible to receive.<br>*Enum:* `"STANDARD"`<br>*Example:* `"STANDARD"` | Yes |
| panList | [ { **"panData"**: { **"pAN"**: string, **"merchants"**: [ { **"mCC"**: string, **"mrchRef"**: string, **"mrchURL"**: string, **"mrchAddr"**: string, **"mrchName"**: string, **"mrchDbaId"**: string, **"lastTranAmt"**: string, **"mrchDbaName"**: string, **"mrchLogoURL"**: string, **"mrchPhoneNum"**: string, **"confidenceInd"**: string, **"tokenReqstrId"**: string, **"cardAcceptorId"**: string, **"lastMrchTranDt"**: string, **"lastTranAmtUSD"**: string, **"totalTranCount"**: string, **"tranTypeDetails"**: [ { **"tranType"**: string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION", **"tranCount"**: long, **"lastTranAmt"**: string, **"lastTranAmtUSD"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"lastTranBillCurrency"**: string, **"lastTranAmtBillCurrency"**: string } ], **"vAUUpdateStatus"**: string, **"acctNumOld4Digit"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"vAULastUpdateDate"**: string, **"sponsoredMerchantId"**: string, **"lastTranBillCurrency"**: string, **"paymentFacilitatorId"**: string, **"lastTranAmtBillCurrency"**: string, **"tokenPANReplacementDate"**: string, **"tokenPANReplacementStatus"**: string } ], **"panResponseMsg"**: string } } ] | An array of response objects for each PAN. | Yes |

#### PANData Schema

Response Object for a single PAN

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| pAN | string | The request account number (PAN value).<br>*Example:* `"4000123456789010"` | Yes |
| merchants | [ { **"mCC"**: string, **"mrchRef"**: string, **"mrchURL"**: string, **"mrchAddr"**: string, **"mrchName"**: string, **"mrchDbaId"**: string, **"lastTranAmt"**: string, **"mrchDbaName"**: string, **"mrchLogoURL"**: string, **"mrchPhoneNum"**: string, **"confidenceInd"**: string, **"tokenReqstrId"**: string, **"cardAcceptorId"**: string, **"lastMrchTranDt"**: string, **"lastTranAmtUSD"**: string, **"totalTranCount"**: string, **"tranTypeDetails"**: [ { **"tranType"**: string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION", **"tranCount"**: long, **"lastTranAmt"**: string, **"lastTranAmtUSD"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"lastTranBillCurrency"**: string, **"lastTranAmtBillCurrency"**: string } ], **"vAUUpdateStatus"**: string, **"acctNumOld4Digit"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"vAULastUpdateDate"**: string, **"sponsoredMerchantId"**: string, **"lastTranBillCurrency"**: string, **"paymentFacilitatorId"**: string, **"lastTranAmtBillCurrency"**: string, **"tokenPANReplacementDate"**: string, **"tokenPANReplacementStatus"**: string } ] | List of merchants who have Card-On-File Data for the requested PAN. | No |
| panResponseMsg | string | Indicates whether data retrieval for a given PAN was successful; field contains either "Success" or the reason for the error if data retrieval was not successful.<br>*Example:* `"Success"` | Yes |

#### MerchantDataResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | { **"statusCode"**: string, **"statusDescription"**: string } | Status details, which include the application status code and corresponding message. | Yes |
| responseData | { **"group"**: string, <br>**Available values:** "STANDARD", **"panList"**: [ { **"panData"**: { **"pAN"**: string, **"merchants"**: [ { **"mCC"**: string, **"mrchRef"**: string, **"mrchURL"**: string, **"mrchAddr"**: string, **"mrchName"**: string, **"mrchDbaId"**: string, **"lastTranAmt"**: string, **"mrchDbaName"**: string, **"mrchLogoURL"**: string, **"mrchPhoneNum"**: string, **"confidenceInd"**: string, **"tokenReqstrId"**: string, **"cardAcceptorId"**: string, **"lastMrchTranDt"**: string, **"lastTranAmtUSD"**: string, **"totalTranCount"**: string, **"tranTypeDetails"**: [ { **"tranType"**: string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION", **"tranCount"**: long, **"lastTranAmt"**: string, **"lastTranAmtUSD"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"lastTranBillCurrency"**: string, **"lastTranAmtBillCurrency"**: string } ], **"vAUUpdateStatus"**: string, **"acctNumOld4Digit"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"vAULastUpdateDate"**: string, **"sponsoredMerchantId"**: string, **"lastTranBillCurrency"**: string, **"paymentFacilitatorId"**: string, **"lastTranAmtBillCurrency"**: string, **"tokenPANReplacementDate"**: string, **"tokenPANReplacementStatus"**: string } ], **"panResponseMsg"**: string } } ] } | Response data, which includes merchant information for the requested PANs. | No |
| responseHeader | { **"messageDateTime"**: string, **"requestMessageId"**: string, **"responseMessageId"**: string } & { **"numRecordsReturned"**: integer } | Fields contained in the header of each response. | Yes |

#### RawMerchant Schema

List of raw merchants who have Card-On-File Data for the requested PAN and mrchRef.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| mrchLogoURL | string | Merchant Logo URL.  Note: This field may return an empty string.<br>*Example:* `"www.anymerchant.com/logo"` | No |
| rawMrchName | string | Raw Merchant Name.<br>*Example:* `"AnyRawMerchant"` | Yes |
| tokenReqstrId | string | The token requestor ID of the merchant or payment facilitator, if any, assigned by Visa Token Service.  Note: This field may return 00000000 when tokenReqstrId is unknown.<br>*Example:* `"1234567890"` | No |
| tranTypeDetails | [ { **"tranType"**: string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION", **"tranCount"**: long, **"lastTranAmt"**: string, **"lastTranAmtUSD"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"lastCardAcceptorId"**: string, **"lastTranBillCurrency"**: string, **"lastTranAmtBillCurrency"**: string } ] | List of transaction details by transaction type. Each transaction type can appear once and only if there’s an associated transaction. | No |
| predictedPayments | { **"nextPaymentAmt"**: string, **"nextPaymentDate"**: string, **"paymentFrequency"**: string, <br>**Available values:** "WEEKLY, BIWEEKLY, SEMIMONTHLY, MONTHLY, BIMONTHLY, QUARTERLY, SEMIANNUALLY, ANNUALLY, IRREGULAR" } | Predicted upcoming payment based on the transaction history. | No |
| sponsoredMerchantId | string | Sponsored Merchant ID.<br>*Example:* `"1234567890"` | No |
| paymentFacilitatorId | string | Payment Facilitator ID.<br>*Example:* `"1234567890"` | No |

#### MRequestData Schema

Request body for querying Card-on-file merchant.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| pANs | [ string ] | List of PANs for requesting merchant data. The PAN has a format of 12–19 decimal digits starting with a "4" (indicating Visa accounts).<br>*Example:* `["4000123456789010"]` | Yes |
| group | string, <br>**Available values:** "STANDARD" | Identifies the set of response fields the customer is eligible to receive. If the group name is "STANDARD", all available response fields are included.<br>*Enum:* `"STANDARD"`<br>*Example:* `"STANDARD"` | Yes |

#### Merchant Schema

List of merchants who have Card-On-File Data for the requested PAN.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| mCC | string | Merchant Category Code.  Note: This field may return an empty string.<br>*Example:* `"5942"` | Yes |
| mrchRef | string | Correlation ID to uniquely identify the merchant. The reference ID is not static and may change.<br>*Example:* `"MTIzNDU2Nzg5MDEyMzQ1Njc4OTpBTUFaT04="` | Yes |
| mrchURL | string | Merchant URL.  Note: This field may return an empty string.<br>*Example:* `"www.anymerchant.com"` | Yes |
| mrchAddr | string | Merchant address.  Note: This field may return an empty string.<br>*Example:* `"111 Any St AnyCity 90000 AnyState USA"` | Yes |
| mrchName | string | Cleansed Merchant Name.<br>*Example:* `"ABC"` | Yes |
| mrchDbaId | string | "Doing Business As" (DBA) ID of the merchant. Use mrchName instead; this field may become deprecated.  Note: This field may return an empty string.<br>*Example:* `"148"` | Yes |
| lastTranAmt | string | Last transaction amount in currency used in transaction; not applicable for “AUTH_VERIFICATION” transaction type.<br>*Example:* `"22.34"` | Yes |
| mrchDbaName | string | Merchant "Doing Business As" name. Use mrchName instead; this field may become deprecated.<br>*Example:* `"ANYMERCHANT"` | Yes |
| mrchLogoURL | string | Merchant Logo URL.  Note: This field may return an empty string.<br>*Example:* `"www.anymerchant.com/logo"` | No |
| mrchPhoneNum | string | Merchant phone number.  Note: This field may return an empty string.<br>*Example:* `"5551212"` | Yes |
| confidenceInd | string | Confidence indicator.  C - Highly likely a COF merchant  M - May be a COF merchant  E - Not a COF merchant<br>*Example:* `"C"` | Yes |
| tokenReqstrId | string | The token requestor ID of the merchant or payment facilitator, if any, assigned by Visa Token Service.  Note: This field may return an empty string.<br>*Example:* `"00000000"` | Yes |
| cardAcceptorId | string | Card Acceptor ID (CAID) of the merchant. The value reflects the most recent CAID included in the last transaction.  Note: This field may return an empty string.<br>*Example:* `"235251000762203"` | Yes |
| lastMrchTranDt | string | Date when the last transaction was made with the merchant in UTC time zone; not applicable for “AUTH_VERIFICATION” transaction type.  Note: This field may return an empty string.  Format: yyyy-MM-dd<br>*Example:* `"2018-07-18"` | Yes |
| lastTranAmtUSD | string | Last transaction amount in USD; not applicable for “AUTH_VERIFICATION” transaction type.<br>*Example:* `"25.68"` | No |
| totalTranCount | string | Total transaction count for all transaction type.<br>*Example:* `"3"` | Yes |
| tranTypeDetails | [ { **"tranType"**: string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION", **"tranCount"**: long, **"lastTranAmt"**: string, **"lastTranAmtUSD"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"lastTranBillCurrency"**: string, **"lastTranAmtBillCurrency"**: string } ] | List of transaction details by transaction type. Each transaction type can appear once and only if there’s an associated transaction. | No |
| vAUUpdateStatus | string | Visa Account Updater (VAU) polling status.  Y - PAN update was polled by the merchant.  N - No PAN update was polled by the merchant.  NA - Issuer has not reissued a PAN nor updated expiry date.  Note: <li>Issuers must be subscribed to VAU to provide updates. Merchants must be subscribed to VAU in order to receive updates.<li>This field may return an empty string.<br>*Example:* `"Y"` | Yes |
| acctNumOld4Digit | string | Last 4 digits of the old account number in Visa Account Updater (VAU).  Note: This field may return an empty string.<br>*Example:* `"1234"` | Yes |
| lastTranCurrency | string | Currency used in last transaction; not applicable for “AUTH_VERIFICATION” transaction type.  Format: ISO 4217 standard<br>*Example:* `"AUD"` | No |
| lastTranDateTime | string | Date and time of last transaction timestamp in UTC time zone; not applicable for “AUTH_VERIFICATION” transaction type.  Format: yyyy-MM-dd HH:mm:ss.SSS (ISO 8601 standard)<br>*Example:* `"2018-10-05 09:45:17.000"` | No |
| vAULastUpdateDate | string | Date when merchant last polled Visa Account Updater (VAU) for new PAN data in UTC time zone.  Note: <li>Issuers must be subscribed to VAU to provide updates. Merchants must be subscribed to VAU in order to receive updates.<li>This field may return an empty string.  Format: yyyy-MM-dd<br>*Example:* `"2018-07-18"` | Yes |
| sponsoredMerchantId | string | Sponsored Merchant ID.<br>*Example:* `"7494990"` | No |
| lastTranBillCurrency | string | Billing currency of last transaction; not applicable for “AUTH_VERIFICATION” transaction type.  Format: ISO 4217 standard<br>*Example:* `"AUD"` | No |
| paymentFacilitatorId | string | Payment Facilitator ID.<br>*Example:* `"10071854"` | No |
| lastTranAmtBillCurrency | string | Last transaction amount in billing currency; not applicable for “AUTH_VERIFICATION” transaction type.<br>*Example:* `"22.34"` | No |
| tokenPANReplacementDate | string | tokenPANReplacementStatus update date in UTC time zone.  Note: This field may return an empty string.  Format: yyyy-MM-dd<br>*Example:* `"2018-07-18"` | Yes |
| tokenPANReplacementStatus | string | Status of whether the token’s underlying PAN has been updated, based on issuer updates sent to Visa.  Y - PAN was updated.  N - PAN was not updated.  Note: This field may return an empty string.<br>*Example:* `"N"` | Yes |

#### MResponseHeader Schema

Fields contained in the header of each response.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| MResponseHeader | { **"messageDateTime"**: string, **"requestMessageId"**: string, **"responseMessageId"**: string } & { **"numRecordsReturned"**: integer } | Fields contained in the header of each response. |  |

#### RequestHeader Schema

Fields contained in the header of each request.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| messageDateTime | string | Date and time at which request is sent (up to milliseconds in UTC).  Format: yyyy-MM-dd HH:mm:ss.SSS (ISO 8601 standard)<br>*Example:* `"2018-09-19 06:01:00.601"` | Yes |
| requestMessageId | string | A string that uniquely identifying the service request. The requesting application creates this unique message ID.<br>*Example:* `"6da60e1b8b024532a2e0eacb1af5858132a2e0eacb1af58581"` | Yes |

#### RawMerchantDataRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| requestData | { **"pAN"**: string } | Request body for querying Card-on-file raw merchant. | Yes |
| requestHeader | { **"messageDateTime"**: string, **"requestMessageId"**: string } | Fields contained in the header of each request. | Yes |

#### RawMerchantDataResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | { **"statusCode"**: string, **"statusDescription"**: string } | Status details, which include the application status code and corresponding message. | Yes |
| responseData | { **"mrchRef"**: string, **"responseMsg"**: string, **"rawMerchants"**: [ { **"mrchLogoURL"**: string, **"rawMrchName"**: string, **"tokenReqstrId"**: string, **"tranTypeDetails"**: [ { **"tranType"**: string, <br>**Available values:** "SCHEDULED_RECURRING, UNSCHEDULED_RECURRING, INSTALLMENT, MERCHANT_COF, CUSTOMER_COF, UNKNOWN_COF, MAIL_TELEPHONE, BILL_PAY, ECOM_OTHER, AUTH_VERIFICATION", **"tranCount"**: long, **"lastTranAmt"**: string, **"lastTranAmtUSD"**: string, **"lastTranCurrency"**: string, **"lastTranDateTime"**: string, **"lastCardAcceptorId"**: string, **"lastTranBillCurrency"**: string, **"lastTranAmtBillCurrency"**: string } ], **"predictedPayments"**: { **"nextPaymentAmt"**: string, **"nextPaymentDate"**: string, **"paymentFrequency"**: string, <br>**Available values:** "WEEKLY, BIWEEKLY, SEMIMONTHLY, MONTHLY, BIMONTHLY, QUARTERLY, SEMIANNUALLY, ANNUALLY, IRREGULAR" }, **"sponsoredMerchantId"**: string, **"paymentFacilitatorId"**: string } ] } | Response data, which includes raw merchant information for the requested PAN and mrchRef. | No |
| responseHeader | { **"messageDateTime"**: string, **"requestMessageId"**: string, **"responseMessageId"**: string } & { **"numRecordsReturned"**: integer } | Fields contained in the header of each response. | Yes |

#### MerchantDataRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| requestData | { **"pANs"**: [ string ], **"group"**: string, <br>**Available values:** "STANDARD" } | Request body for querying Card-on-file merchant. | Yes |
| requestHeader | { **"messageDateTime"**: string, **"requestMessageId"**: string } | Fields contained in the header of each request. | Yes |
