# Visa Transaction Controls

## Alert History and Customer Profiles API

The Alert History and Customer Profile APIs are used to manage customer profiles and their contact information for issuers who participate in the Visa Alert Delivery Service. All issuers can use this API to retrieve a history of VTC notifications.

**NOTE:** Future enhancements to this API may introduce new data elements being available in the payload. Client implementations should be designed to accommodate these enhancements to ensure existing behavior and functionality are not adversely impacted.

## Retrieve an Existing Customer Profile by the userIdentifier v1

Retrieves an existing customer profile by the user identifier

### Request

##### path Parameters

|     |     |
| --- | --- |
| userIdentifier<br>required | string<br>Uniquely identifies the cardholder who is to receive the alert message. The userIdentifier should be a GUID but at a minimum it must be unique per enrolling application and must not contain any PII data. It is mandatory for all VTC notifications. The maximum number of characters allowed is 72. |

### Responses

**200 OK**

##### Response Schema: application/json

|     |     |
| --- | --- |
| processingTimeinMs<br>required | integer <int64> <br>Processing time in milliseconds.<br>Example: 15 |
| receivedTimestamp<br>required | string<br>Time, in UTC, the request is received.<br>Example: "2023-05-21 03:40:32.847" |
| resource<br>required | object |
| |     |     |
| --- | --- |
| defaultAlertsPreferences<br>required | Array of objects<br>List of contact types that can be used as defaults for any alert. If no alert preference has been defined, the alert will be delivered with default contact. |

| Array

|     |     |
| --- | --- |
| contactType<br>required | string<br>Channel to deliver alert message. Supported channels include SMS, Push, Email. (Only email is supported in sandbox.)<br>Example: "Email" |
| contactValue<br>required | string \[ 0 .. 254 \] characters <br>Email address, phone number or device ID associated with contactType.<br>Example: "alexmiller@example.com" |
| callingCode | string \[ 1 .. 3 \] characters \\\d{1,3}<br>Code for SMS contact types. If not set for an SMS contact, default value is "1".<br>Example: "52" |
| isVerified | boolean<br>Indicates if the contact type has been verified by the issuer. Contacts mapped to cardholder must be verified. For SMS-type contacts, VISA only supports double opt-in verification if this field is set to false. For other contact types, Visa will not conduct additional verification. Issuers should only allow verified contacts to be used as contact preferences. The double opt-in feature is not supported in sandbox. For last mile alert delivery testing in sandbox, this field must be set to true.<br>Enum:truefalse<br>Example: true |
| preferredEmailFormat | string<br>Preferred email format for email contact types. If not provided for an email contact, default value is set to "Plain".<br>Enum:"Plain""RichText""Html"<br>Example: "Plain" |
| status | string<br>Status of contact. Valid values are "Active" and "InActive". If set to "InActive", default contact preferences will deliver last mile alerts to the cardholder.<br>Example: "Active" |

| firstName<br>required | string \[ 1 .. 25 \] characters <br>First name of the cardholder.<br>Example: "Alex" |
| isProfileActive<br>required | boolean<br>Indicates if customer profile is active. If set to false, alerts cannot be delivered.<br>Enum:truefalse |
| lastName<br>required | string \[ 1 .. 25 \] characters <br>Last name of the cardholder.<br>Example: "Miller" |
| preferredCountryCode<br>required | string 3 characters <br>Uppercase ISO ALPHA-3 3-letter country code. Currently only "USA" supported.<br>Example: "USA" |
| preferredLanguage<br>required | string 5 characters <br>Preferred language for last mile alerts. Current languages supported are "en-us" (English US) and "es-us"(Spanish US).<br>Example: "en-us" |
| userIdentifier<br>required | string<br>Uniquely identifies the cardholder to receive the alert. Should be a GUID, must be unique per enrolling application. Must not contain any PII data. Mandatory for all VTC notifications. Maximum of 72 characters.<br>Example: "b2d1b9cc-fc3f-4a37-b431-ebf04f20a3e9" |
| alertsPreferences | Array of objects<br>List of alert preferences for specific alert types. |

| Array

|     |     |
| --- | --- |
| alertType<br>required | string<br>Transaction events supported with generated alerts. ALL is the only control type value supported with DECLINE_BY_ISSUER.<br>Enum:"DECLINE_ALL""DECLINE_BREACHED_AMT""ALERT_BREACHED_AMT""DECLINE_BY_SPEND_LIMIT""ALERT_BREACHED_SPEND""DECLINE_BY_ISSUER"<br>Example: "DECLINE_ALL" |
| contacts<br>required | Array of objects<br>List of contacts associated with alert preference. |

| Array

| Array

|     |     |
| --- | --- |
| alertsPreferences<br>required | Array of objects<br>List of alert preferences for specific alert types. |

| Array

| Array

**400 Bad Request**

##### Response Schema: application/json

_Schema not provided_

**403 Forbidden Access**

##### Response Schema: application/json

_Schema not provided_

**404 Not Found**

##### Response Schema: application/json

_Schema not provided_

**405 Method Not Allowed**

##### Response Schema: application/json

_Schema not provided_

**406 Not Acceptable**

##### Response Schema: application/json

_Schema not provided_

**409 Conflict**

##### Response Schema: application/json

_Schema not provided_

**422 Invalid Data**

##### Response Schema: application/json

_Schema not provided_

**500 Internal Server Error**

##### Response Schema: application/json

_Schema not provided_

**503 Service Unavailable**

##### Response Schema: application/json

_Schema not provided_
