Visa Transaction Controls API Reference

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
required
string
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
required
integer
Processing time in milliseconds.
Example: 15
receivedTimestamp
required
string
Time, in UTC, the request is received.
Example: "2023-05-21 03:40:32.847"
resource
required
object
--- ---
defaultAlertsPreferences
required
Array of objects
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
required
string
Channel to deliver alert message. Supported channels include SMS, Push, Email. (Only email is supported in sandbox.)
Example: "Email"
contactValue
required
string [ 0 .. 254 ] characters
Email address, phone number or device ID associated with contactType.
Example: "alexmiller@example.com"
callingCode string [ 1 .. 3 ] characters \\d{1,3}
Code for SMS contact types. If not set for an SMS contact, default value is "1".
Example: "52"
isVerified boolean
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.
Enum:truefalse
Example: true
preferredEmailFormat string
Preferred email format for email contact types. If not provided for an email contact, default value is set to "Plain".
Enum:"Plain""RichText""Html"
Example: "Plain"
status string
Status of contact. Valid values are "Active" and "InActive". If set to "InActive", default contact preferences will deliver last mile alerts to the cardholder.
Example: "Active"

| firstName
required | string [ 1 .. 25 ] characters
First name of the cardholder.
Example: "Alex" | | isProfileActive
required | boolean
Indicates if customer profile is active. If set to false, alerts cannot be delivered.
Enum:truefalse | | lastName
required | string [ 1 .. 25 ] characters
Last name of the cardholder.
Example: "Miller" | | preferredCountryCode
required | string 3 characters
Uppercase ISO ALPHA-3 3-letter country code. Currently only "USA" supported.
Example: "USA" | | preferredLanguage
required | string 5 characters
Preferred language for last mile alerts. Current languages supported are "en-us" (English US) and "es-us"(Spanish US).
Example: "en-us" | | userIdentifier
required | string
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.
Example: "b2d1b9cc-fc3f-4a37-b431-ebf04f20a3e9" | | alertsPreferences | Array of objects
List of alert preferences for specific alert types. |

| Array

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

| Array

| Array

alertsPreferences
required
Array of objects
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