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