AT&T VERIFY CONNECT ( V3.0) INTEGRATION

AT&T VERIFY CONNECT ( V3.0) INTEGRATION

Revision: 1.1 Effective Date: 14 Aug 2014 Owner: AT&T © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY AT&T-­‐UN034 AT&T Verify Connect is powered by SecureKey Technologies Inc. briidge.net Connect service platform. ©2014 SecureKey Technologies Inc. and AT&T Intellectual Property. All Rights Reserved. No part of this document may be copied, modified or disseminated without permission of SecureKey and AT&T. AT&T and the AT&T logo are trademarks of AT&T Intellectual Property. SecureKey and briidge.net are trademarks of SecureKey Technologies. Other marks are property of their respective owners.
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 2 of 63 Table of Contents 1. Introduction . 4 1.1 About AT&T® Verify Connect . 4 1.2 Audience . 4 1.3 Notation . 4 1.4 What’s New in this Version . 4 1.5 Supported Operating Systems and Browsers . 5 1.5.1 Operating Systems . 5 1.5.2 Supported Browsers . 5 1.5.3 AT&T-­‐Certified Card Readers / Devices . 5 2. AT&T® Verify Connect . 6 2.1 Solution Overview . 6 2.1.1 Supported Devices . 7 2.1.2 Localization Support . 7 2.2 Using the JavaScript Library . 8 3. AT&T Verify Connect API Guide . 9 3.1 AT&T Verify Connect URLs . 9 3.2 User Interaction Requests . 10 3.2.1 User Authentication . 11 3.2.2 User Confirmation . 15 3.2.3 Read Card . 18 3.2.4 Get Connected Device ID . 21 3.2.5 Cancel Request . 23 3.3 User Registration / Management . 24 3.3.1 Add User . 25 3.3.2 Get User . 26 3.3.3 Remove User . 27 3.3.4 Update User . 27 3.3.5 VerifyDevice . 29 3.3.6 DeVerifyDevices . 30 3.3.7 Pair Device . 31 3.4 Device Management . 34 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 3 of 63 3.4.1 Get Devices . 34 3.4.2 Get Device by ID . 35 3.4.3 Add Device . 36 3.4.4 Remove Device . 37 3.4.5 Remove All User Devices . 37 3.4.6 Get Device Provision Id . 38 3.5 Attribute Management . 39 3.5.1 Set Attributes . 39 3.5.2 Get All Attributes . 40 3.5.3 Get Attributes . 41 4. AT&T Verify Connect JavaScript Library . 43 4.1 Including the AT&T Verify Connect JavaScript Library . 43 4.2 Setting override parameters . 43 4.3 Initializing the AT&T Verify Connect Widget . 44 4.3.1 SKAP.init parameters . 44 4.3.2 SKAP.init exceptions . 45 4.3.3 Sample design . 46 4.4 Pair Device . 47 4.4.1 SKAP.pairDevice parameters . 47 4.4.2 SKAP.pairDevice exceptions . 48 4.4.3 Callback functions . 48 4.5 Update Plugin . 48 4.5.1 SKAP.updatePlugin parameters . 49 4.5.2 SKAP.updatePlugin exceptions . 50 4.5.3 Callback functions . 50 Appendix A Request Properties . 51 Appendix B Response Properties . 56 Appendix C Error Codes . 61 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 4 of 63 1. Introduction 1.1 About AT&T® Verify Connect AT&T Verify Connect is a cloud-­‐based multi-­‐factor authentication service platform that provides customers the ability to strongly authenticate their users. The platform is designed to support all in-­‐ market devices today, enabling strong security across all delivery channels. 1.2 Audience This guide assumes that the reader is generally familiar with the OAuth 2.0 authorization framework, JSON requests, and using X.509 certificates for secure communication over HTTPS (TLS 1.0+). 1.3 Notation A Relying Party (RP) is a person or organization that is interested in verifying and establishing the credential of another person with AT&T Verify Connect platform. 1.4 What’s New in this Version • AT&T Verify Connect Server has removed session requirement for server calls. However, existing services that use sessions can continue to use sessions in their flows. • Support now available for card readers based on PC/SC (Personal Computer/Smart card) standard framework. This enables the use of widely available in-­‐market card readers with all AT&T Verify Connect offerings. • AT&T Verify Connect Server API has changed the object structure for DeviceConstraints. The Boolean values embeddedLocalAllowed and removableLocalAllowed have been replaced by a List type called allowedSETypes. The default value is null, which means all the supported SE types are allowed. See DeviceConstraints description here. • Attribute locker enables customers to securely store and retrieve end user information from the AT&T Verify Connect servers. This feature is currently available with server-­‐to-­‐server calls only. See the following methods from your integration guide: o set-­‐attributes.action method enables you to store custom attributes on AT&T Verify Connect server using name/value pairs. o get-­‐all-­‐attributes.action method enables you to retrieve all stored attributes for a given user. o get-­‐attributes.action method enables you to retrieve specific attributes for a given user. See Section 3.5: Attribute Management for details. • All user interfaces provided with AT&T Verify Connect offerings are now compliant with WCAG 2.0 web accessibility standards. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 5 of 63 1.5 Supported Operating Systems and Browsers AT&T Verify Connect applications are supported on the following device operating systems, desktop operating systems, and browsers. 1.5.1 Operating Systems • Windows XP • Windows Vista • Windows 7 • Windows 8 • Windows 8.1 • OSX 10.6 “Snow Leopard” • OSX 10.7 “Lion” • OSX 10.8 “Mountain Lion” • OSX 10.9 “Mavericks” 1.5.2 Supported Browsers • Internet Explorer v7+ • Firefox v27-­‐v25 • Chrome v33-­‐v32 • Safari v5.1.10, v6.1.1, and v7.0.1 1.5.3 AT&T-­‐Certified Card Readers / Devices • Advanced Card Systems (ACS) Card Reader (PC/SC-­‐compliant): o ACR122T USB Token NFC Reader o ACR122U USB NFC Reader • SecureKey Card Reader • IPT Card Reader Note: This list is only applicable for Windows platform applications. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 6 of 63 2. AT&T® Verify Connect The following chapter is a summary overview of the AT&T Verify Connect solution for multi-­‐factor authentication. This chapter discusses usage scenarios and their requirements for quickly setting up complete authentication solutions for your application or enhancing existing applications for multi-­‐factor authentication. 2.1 Solution Overview AT&T Verify Connect is an API-­‐based solution with both client and server level integration in a Relying Party (RP) application. The Connect client component communicates with the RP application client to initiate all authentication requests with the AT&T Verify Connect server. The Connect server component communicates directly with the AT&T Verify Connect server to retrieve authentication data. The following diagram shows the logical communication lines between AT&T Verify Connect components and an RP application. A Relying Party (RP) must implement client and server handlers to fully integrate their application with AT&T Verify Connect. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 7 of 63 2.1.1 Supported Devices AT&T Verify Connect can enable second factor authentication using a variety of devices such as: • Smart phones • Tablets • Personal Computers • USB Card Readers for NFC supported cards with Pin-­‐and-­‐Chip technology Each supported device includes a secure applet that is personalized with a unique identifier and cryptographic keys. A separate application on the device provides the user interface for facilitating the authentication flows on the device. This application also facilitates communication with the AT&T Verify Connect server and with the secure applet. Most supported devices support NFC communication and provide the ability to read ISO 14443 smart cards. These devices can be used to: • Provide clients with remote card reading terminals for reading contactless cards that users hold. • Verify user identity based on the presentation of a contactless credential. In this scenario AT&T Verify Connect requires access to a mapping between the user identifier and the on card data (e.g. PAN). 2.1.2 Localization Support RPs integrate with AT&T Verify Connect using a JSON-­‐based API and a JavaScript library that is included in the RP application client. This integration is described in subsequent sections. During runtime, RPs must specify a language code within requests. The following ISO language and country code combinations are supported: • en-­‐CA – English (Canada) • en-­‐US – English (US) • en-­‐AU – English (Australia) • en-­‐GB – English (United Kingdom) • es-­‐ES – Spanish (Spain) • fr-­‐CA – French (Canada) • it-­‐IT – Italian (Italy) • he-­‐IL – Hebrew (Israel) • pt-­‐BR – Portuguese (Brazil) • sv-­‐SE – Swedish (Sweden) 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 8 of 63 2.2 Using the JavaScript Library The following describes the steps involved for an RP application to successfully authenticate users using the JavaScript library. 1. RP Server initiates a request for AT&T Verify Connect functionality. AT&T Verify Connect returns a response containing a transaction identifier and a widget code, where the: • Transaction identifier is used in subsequent server to server calls to AT&T Verify Connect to reference this user; • Widget code is used to initiate the AT&T Verify Connect widget from the client application. The widget provides the necessary UI components for users to select from a list of supported devices. 2. RP Server passes the widget code to the RP client to initiate the AT&T Verify Connect widget. 3. RP Client loads the JavaScript library and calls the widget using the widget code passed from the RP server. The widget guides the end user through the authentication process. 4. RP Client waits while the user interacts with the widget to retrieve the device information. During authentication the widget can trigger the following events: • Successful connection This event indicates the widget has successfully connected with AT&T Verify Connect. • Authentication complete This event indicates the widget flow has completed. The RP Client is expected to implement appropriate handlers to listen for these events. 5. RP Client handles these events and notifies the RP server when the authentication completes. 6. RP Server calls AT&T Verify Connect, referencing the transaction identifier and the access token, to retrieve the device information for this user. After the RP server requests the device information, AT&T Verify Connect returns the appropriate device information, if successful. During this time, the RP can decide to give the user access to the RP resource. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 9 of 63 3. AT&T Verify Connect API Guide The AT&T Verify Connect JSON API is a server-­‐to-­‐server API that facilitates initiation of functional AT&T Verify Connect methods. The following points are common to all calls described in this section: • Transport Protocol HTTPS (TLS 1.0+) is required for communication between the RP’s web site and the AT&T Verify Connect server. Authentication is performed via a client X.509 certificate. Requests will use the POST method. • JSON Requests Many of the requests exposed through the API provide parameters. These parameters are passed in JSON format in the body of the HTTP POST message. • HTTP Responses The HTTP response code will report the status of the HTTP communication and not the status of the AT&T Verify Connect transaction. This means that all messages that are accepted and processed by the server will return an HTTP 200 status code. Responses provided with a 200 response code must be checked for an error element to determine if the request was successful. 3.1 AT&T Verify Connect URLs In the following sections, URLs will be shown with the host portion as [Host]. [Host] is a placeholder for the AT&T Verify Connect server hostname that will be used. There are various AT&T Verify Connect environments, from Sandbox development environments to Production. The appropriate host value to use for a particular purpose is provided by SecureKey. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 10 of 63 3.2 User Interaction Requests All requests that involve the end user follow an asynchronous completion model. User interactions can include activities such as card reading, device recognition, and entering or setting up passcodes. The RP application server initiates an API request with AT&T Verify Connect and passes a unique transaction identifier and widget code to its application client. The application client loads the AT&T Verify Connect JavaScript library with the provided widget code; launching the user interfaces to fulfill the request. After the user completes the transaction a notification is sent to the application client, which in turn is passed to the application server to complete the request. The application server makes an additional API request with AT&T Verify Connect to retrieve the resulting information. Both the initiation request and the data retrieval request must include the access token in the HTTP header. The request must be sent over an HTTPS connection using the POST method, where: • Authorization MUST be included: bearer 1234567890ABCDEF • Content type MUST be: “application/json;charset=UTF-­‐8” • Request content MUST be encoded as a JSON object. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 11 of 63 3.2.1 User Authentication Use AT&T Verify Connect as a first-­‐factor form of authentication, or enhance an existing implementation to introduce second-­‐factor or multi-­‐factor authentication. For example: • First-­‐factor form of authentication AT&T Verify Connect identifies the user before the RP. AT&T Verify Connect requires access to a credential verification service and a service to map the credential identifier (card PAN) to the RP’s user identifier. Currently, only contactless credentials (smartcards) are supported for this form. • Second-­‐factor form of authentication RP identifies the user and requests that AT&T Verify Connect independently verify the user’s identity. Authentication mechanisms can include: o Contactless credential presentation o Phone call or SMS-­‐based message to a registered telephone number o OATH cryptogram generated from a user’s verified device. A verified or “vetted” device is defined by the RP and the RP can provide a credential expiry policy to require the user to periodically re-­‐ verify their device(s). • Multi-­‐factor form of authentication The RP identifies the user and passes this identity to AT&T Verify Connect to verify against the user’s registered device(s) to complete the second-­‐factor authentication as described above. 3.2.1.1 Initiation Request The endpoint for this request is: https://[Host]/otap-­‐client-­‐manager/init-­‐auth .action Requests can contain the following data: { “languge” : “en-­‐CA” “actionText” : “Please confirm access” “userId” : “user123” “configProfile” : “profile1” “allowVerification” : “yes” } Request Property Required? language Required actionText Required userId Optional configProfile Optional context Optional 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 12 of 63 Request Property Required? userIPAddress Optional deviceId Optional sendPush Optional allowVerification Optional (deprecated as of v2.2) For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.2.1.2 Initiation Response Responses can contain the following data: { “txnId” : “987654321”, “widgetCode” : “tGzv3JOkF0XG5Qx2TIKWIA” } Response Property Required? txnId Required widgetCode Required error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_access_token • invalid_request • invalid_request_property • invalid_config_profile • unsupported_language • unknown_user • action_text_required • unsupported_authentication • device_update_required • system_error • plugin_update_required • plugin_update_user_cancelled For a full list of error codes and their descriptions, see Appendix C: Error Codes. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 13 of 63 3.2.1.3 Data Retrieval Request The application client receives a “completed” notification, after user interactions complete, which is then passed to the application server to retrieve the resultant data. The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/auth-­‐data.action Requests must contain the following data: { “txnId” : “987654321” } Request Property Required? txnId Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.2.1.4 Data Retrieval Response Response can contain the following data: { “userId” : “user123”, “verifiedDevice” : true, “deviceInfo “deviceId” : “1234567890”, “deviceType” : “Intel IPT”, “supportsNFC” : true } } Response Property Required? userId Required deviceInfo Optional/Required verifiedDevice Optional (deprecated as of v2.2) error Optional errorDescription Optional reasonCode Optional warnings Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 14 of 63 Error codes for this response can include: • invalid_access_token • unknown_txn • authentication_failed • unknown_user • user_declined • user_cancelled • device_preempted • user_cancelled_update • system_error • txn_not_complete • no_device • invalid_device • device_update_required • timeout • card_read_error • unrecognized_card_type • invalid_card_data • device_removed • device_network_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 15 of 63 3.2.2 User Confirmation Use AT&T Verify Connect to confirm transactions to ensure a user is who they say they are. RPs can display transaction details to the user and users must confirm the transaction from an authenticated device to complete the transaction. Confirmation items are passed to AT&T Verify Connect as an array of custom name-­‐value pairs. 3.2.2.1 Initiation Request The endpoint for this request is: https://[Host]/otap-­‐client-­‐manager/init-­‐conf .action Requests can contain the following data: { “language” : “en-­‐CA”, “actionText” : “Confirm Transfer”, “confirmationItems “name” : “Account From”, “value” : “123987 “name” : “Account To”, “value” : “123654 “name” : “Amount”, “value $1000.00 “userId” : “user123”, “configProfile” : “profile1”, “allowVerification” : “yes” } Request Properties Required? language Required actionText Required confirmationItems Required userId Required configProfile Optional context Optional userIPAddress Optional 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 16 of 63 deviceId Optional sendPush Optional allowVerification Optional (deprecated as of v2.2) For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.2.2.2 Initiation Response Responses can contain the following data: { “txnId” : “987654321”, “widgetCode” : “tGzv3JOkF0XG5Qx2TIKWIA” } Response Properties Required? txnId Required widgetCode Required error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_access_token • invalid_request • invalid_request_property • invalid_config_profile • unsupported_language • unknown_user • action_text_required • confirmation_items_required • system_error • plugin_update_required • plugin_update_user_cancelled For a full list of error codes and their descriptions, see Appendix C: Error Codes. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 17 of 63 3.2.2.3 Data Retrieval Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/conf-­‐data.action Requests contain the following data: { “txnId” : “987654321” } Request Properties Required? txnId Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.2.2.4 Data Retrieval Response Responses can contain the following data: { “userResponse” : “accepted”, “verifiedDevice” : true, “deviceInfo “deviceId” : “1234567890”, “deviceType” : “Intel IPT”, “supportsNFC” : true } } Response Properties Required? userResponse Required deviceInfo Optional error Optional errorDescription Optional reasonCode Optional warnings Optional verifiedDevice Optional (deprecated as of v2.2) For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_access_token
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 18 of 63 • unknown_txn • authentication_failed • user_cancelled • device_preempted • user_cancelled_update • system_error • txn_not_complete • no_device • invalid_device • device_update_required • timeout • device_removed • device_network_error • device_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.2.3 Read Card Use AT&T Verify Connect to authenticate users or transactions with RP-­‐issued or RP-­‐approved contactless credentials. Contactless credentials are typically cards that users can “tap” on supported near field communication (NFC) enabled terminals. Terminals can be NFC-­‐enabled USB sticks or mobile devices. Many contactless cards allow the terminal to provide data to the card during transactions. AT&T Verify Connect enables RPs to specify terminal option data for this purpose. If a required terminal option data element is not provided by the RP, or the provided value does not meet the requirement of the card, the device terminal will provide the terminal option data. The actual values used will be provided in the response. 3.2.3.1 Initiation Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/init-­‐card-­‐read.action Requests can contain the following data: { “language” : “en-­‐CA”, “actionText” : “Please tap card”, “userId” : “123”, “configProfile” : “profile1”, “cardTerminalOptions “tag” : “9fga”, “value” : “01020304 “tag” : “9a”, “value” : “20120326 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 19 of 63 Request Properties Required? language Required actionText Required userId Optional configProfile Optional cardTerminalOptions Optional context Optional userIPAddress Optional deviceId Optional sendPush Optional For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.2.3.2 Initiation Response Responses contain the following data: { “txnId” : “987654321”, “widgetCode” : “tGzv3JOkF0XG5Qx2TIKWIA” } Response Properties Required? txnId Required widgetCode Required error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_access_token • invalid_request • invalid_request_property • invalid_config_profile • unsupported_language
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 20 of 63 • unknown_user • action_text_required • system_error • plugin_update_required • plugin_update_user_cancelled For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.2.3.3 Data Retrieval Request The endpoint for this request is: https://[Host]/otap-­‐client-­‐manager/card-­‐read -­‐data.action Requests must contain the following data: { “txnId” : “987654321”, } Request Properties Required? txnId Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.2.3.4 Data Retrieval Response Responses can include the following data: { “deviceInfo “deviceId” : “1234567890”, “deviceType” : “Intel IPT”, “supportsNFC” : true }, “cardType” : “VISA_QVSDC”, “cardData “tag” : “5f34”, “value” : “01 “cardTerminalOptionsUsed “tag” : “9f37”, “value” : “10000000 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 21 of 63 Response Properties Required? cardType Required interfaceType Required cardData Required cardTerminalOptionsUsed Required deviceInfo Optional error Optional errorDescription Optional reasonCode Optional warnings Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Errors could be: • invalid_access_token • unknown_txn • user_cancelled • device_preeempted • user_cancelled_update • card_read_error • unrecognized_card_type • invalid_card_data • system_error • txn_not_complete • no_device • invalid_device • device_update_required • timeout • card_read_timeout • device_removed • device_network_error • device_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.2.4 Get Connected Device ID This function provides a mechanism for an RP to verify the computer that the user is currently using has a valid SecureKey enabled device connected. AT&T Verify Connect establishes a connection with the device, generates a cryptogram from the device, and then verifies the cryptogram. The device identifier is then returned to the RP. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 22 of 63 3.2.4.1 Initiation Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/init-­‐get-­‐device.actio n Requests can contain the following data: Request Properties Required? language Required userId Optional configProfile Optional context Optional userIPAddress Optional deviceId Optional sendPush Optional For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.2.4.2 Initiation Response Responses can contain the following data: Response Properties Required? txnId Required widgetCode Required error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_access_token • invalid_request • invalid_request_property • invalid_config_profile • system_error • plugin_update_required • plugin_update_user_cancelled For a full list of error codes and their descriptions, see Appendix C: Error Codes. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 23 of 63 3.2.4.3 Data Retrieval Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/get-­‐device-­‐data.actio n Requests must contain the following data: Request Properties Required? txnId Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.2.4.4 Data Retrieval Response Responses can include the following data: Response Properties Required? deviceInfo Required error Optional errorDescription Optional reasonCode Optional warnings Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_access_token • unknown_txn • device_preempted • no_device • invalid_device • device_update_required • system_error • txn_not_complete • timeout • device_network_error • device_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.2.5 Cancel Request Use this method to cancel the current request with AT&T Verify Connect. This is useful if the application client provides the user with a cancel option. Calling this method notifies AT&T Verify Connect to end the request and discard all widget events and notifications. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 24 of 63 If the user is currently interacting with the application, AT&T Verify Connect may not immediately terminate the client interaction, but will discard the response provided through the application when it is submitted. Note: This request has no user interaction and does not require an initiation and data retrieval request. 3.2.5.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/cancel-­‐request.action Requests can contain the following data: Request Properties Required? txnId Required context Optional For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.2.5.2 Response Responses can contain the following data: Response Properties Required? error Optional errorDescription Optional Error codes for this response can include: • invalid_access_token • invalid_request • invalid_request_property • unknown_txn • system_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.3 User Registration / Management AT&T Verify Connect offers user registration and management functions to provide user directory services. RPs can store and access user identifiers, phone numbers and device information in the cloud. Note: RPs can only access users that they have registered. The following sections describe the methods to register and access users; they do not typically involve user interaction and may not require an initiation request. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 25 of 63 3.3.1 Add User Use this method to register a user with AT&T Verify Connect. 3.3.1.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/add-­‐user.action Requests can contain the following data: { “userId” : “user123”, “phone “name” : “Home”, “number” : “4165551234 “name” : “Mobile”, “number” : “9055551234 Request Properties Required? userId Required Phone Optional For a full list of request properties and their descriptions, see Appendix A: Request Properties. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 26 of 63 3.3.1.2 Response Responses can contain the following data: Response Properties Required? txnId Required error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_access_token • user_exists • system_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.3.2 Get User Use this method to access a registered user from AT&T Verify Connect. 3.3.2.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/get-­‐user.action Requests must contain the following data: Request Properties Required? userId Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.3.2.2 Response Responses can contain the following data: Response Properties Required? txnId Required userId Required Phone Optional error Optional errorDescription Optional 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 27 of 63 For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_access_token • unknown_user • system_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.3.3 Remove User Use this method to delete a registered user from AT&T Verify Connect. 3.3.3.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/remove-­‐user.action Requests must contain the following data: Request Properties Required? userId Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.3.3.2 Response Responses can contain the following data: Response Properties Required? txnId Required error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_access_token • unknown_user • system_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.3.4 Update User Use this method to change information about a registered user on AT&T Verify Connect. 3.3.4.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/update-­‐user.action Requests can contain the following data: 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 28 of 63 Request Properties Required? userId Required allowCreate Optional Phone Optional For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.3.4.2 Response Responses can contain the following data: Response Properties Required? txnId Required error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_access_token • unknown_user • system_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 29 of 63 3.3.5 VerifyDevice Use this method to set a given device (for a given user) as verified. The RP indicates if the device is verified or not through their own verification process. For example, an RP can ask the user a number of “challenge” questions to determine if the user is the device owner and store the result with AT&T Verify Connect. 3.3.5.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/verify-­‐device.action Requests can contain the following data: Request Properties Required? userId Required deviceId Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.3.5.2 Response Responses can include the following data: Response Properties Required? txnId Required error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_access_token • unknown_user • invalid_device • system_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 30 of 63 3.3.6 DeVerifyDevices Use this method to unset a given device (for a given user) as verified. A device that is not verified must be re-­‐verified. 3.3.6.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/deverify-­‐device.action Requests can contain the following data: Request Properties Required? userId Required deviceId Optional For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.3.6.2 Response Responses can contain the following data: Response Properties Required? txnId Required error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_access_token • unknown_user • invalid_device • system_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 31 of 63 3.3.7 Pair Device Use this method to associate a device to an existing user. When a device is “paired” with a user, a user passcode (also referred to as QuickCode in the developer documentation) can be set up for this user. 3.3.7.1 Initiation Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/pair-­‐device.action Requests can contain the following data: Note: Object structure for DeviceConstraints has been updated. See here. { “userId” : “123”, “deviceConstraints “embeddedLocalAllowed” : true, “removableLocalAllowed” : true, “remoteAllowed” : true, “nfcRequired” : false, “appType” : null }, “expiry” : “2013-­‐06-­‐14T00:00:00Z”, “verifyDevice” : true, “notificationType” : “httpPost”, “notificationUrl” : “https://notification.rp.com/pairingNotification” } Request Properties Required? userId Required expiry Required language Optional context Optional deviceConstraints Optional verifyDevice Optional notificationType Optional (deprecated as of v2.2) notificationURL Optional (deprecated as of v2.2) For a full list of request properties and their descriptions, see Appendix A: Request Properties. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 32 of 63 3.3.7.2 Initiation Responses Response can include the following data: Response Properties Required? txnId Required pairingCode Required pairingURL Optional notificationChannel Optional error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_request • invalid_request_property • unknown_user • system_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.3.7.3 Data Retrieval Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/pair-­‐device-­‐data.acti on Requests must include the following data: Request Properties Required? txnId Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 33 of 63 3.3.7.4 Data Retrieval Response Response Properties Required? deviceInfo Optional error Optional errorDescription Optional reasonCode Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • unknown_txn • system_error • txn_not_complete • timeout For a full list of error codes and their descriptions, see Appendix C: Error Codes. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 34 of 63 3.4 Device Management AT&T Verify Connect offers device management functions to complement user registration and management functions. RPs can store user device information to complete a user profile. 3.4.1 Get Devices Use this method to obtain a device list for a specific user. 3.4.1.1 Request The endpoint for this request is: https://[Host]/otap-­‐client-­‐manager/get-­‐devic es.action Requests must contain the following data: Request Properties Required userId Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.4.1.2 Response Responses can contain the following data: { “devices “deviceId” : “04a96c35-­‐aef5-­‐4ad7-­‐ac6b-­‐6c5c890d3b1b”, “deviceType” : “SW_SE”, “supportsNFC” : true, “deviceName” : “my phone”, “model” : “ASUS NAKASI”, “pairingDate” : “2013-­‐07-­‐03T10:54:30-­‐0400”, “pushable” : true “deviceId” : “3fcdfa13-­‐5d89-­‐49e7-­‐b1ee-­‐9a72b68d47b1”, “deviceType” : “SW_SE”, “supportsNFC” : true, “deviceName” : “ASUS TABLET”, “model” : “ASUS NAKASI”, “pairingDate” : “2013-­‐07-­‐03T10:54:30-­‐0400”, “last_connected” : “2013-­‐06-­‐28T09:44:48-­‐0400”, “pushable” : true 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 35 of 63 Response Properties Required? txnId Required devices Optional error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_credentials • unknown_user For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.4.2 Get Device by ID Use this method to obtain device information for a specified device identifier. 3.4.2.1 Request The endpoint for this request is: https://[Host]/otap-­‐client-­‐manager/get-­‐devic e-­‐by-­‐id.action Requests must contain the following data: Request Properties Required? deviceId Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.4.2.2 Response Responses can contain the following data: { “devices “deviceId” : “04a96c35-­‐aef5-­‐4ad7-­‐ac6b-­‐6c5c890d3b1b”, “deviceType” : “SW_SE”, “supportsNFC” : true, “deviceName” : “my phone”, “model” : “ASUS NAKASI”, “pairingDate” : “2013-­‐07-­‐03T10:54:30-­‐0400”, “pushable” : true 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 36 of 63 Response Properties Required? txnId Required error Optional errorDescription Optional deviceInfo Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_credentials • no_device For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.4.3 Add Device Use this method to associate a device to an existing user. 3.4.3.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/add-­‐device.action Requests can contain the following data: Request Properties Required? userId Required deviceId Required verifiedDevice Optional For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.4.3.2 Response Responses can contain the following data: Response Properties Required? txnId Required error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 37 of 63 Error codes for this response can include: • invalid_credentials • no_device • unknown_user For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.4.4 Remove Device Use this method to disassociate a device from an existing user. 3.4.4.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/remove-­‐device.action Requests must contain the following data: Request Properties Required? userId Required deviceId Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.4.4.2 Response Responses can contain the following data: Response Properties Required? txnId Required error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_credentials • no_device • unknown_user • device_required For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.4.5 Remove All User Devices Use this method to disassociate all devices for a specified user. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 38 of 63 3.4.5.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/remove-­‐all-­‐user-­‐dev ices.action Requests must contain the following data: Request Properties Required? userId Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.4.5.2 Response Responses can contain the following data: Response Properties Required txnId Required error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_credentials • unknown_user For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.4.6 Get Device Provision Id Use this method to request a time-­‐limited code for use with device provisioning. An RP must first obtain an authorization code by this request before invoking provisionDevice in client SDK. 3.4.6.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/get-­‐device-­‐provision- ­‐id.action There is no request body for this request. 3.4.6.2 Response Responses can contain the following data: Response Properties Required txnId Required provisioningAuthorizationCode Required For a full list of response properties and their descriptions, see Appendix B: Response Properties. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 39 of 63 3.5 Attribute Management AT&T Verify Connect provides functionality for RPs to store a user’s attributes and privately with the user’s profile in the AT&T Verify Connect system, so that they can be released to third party AT&T Verify Connect RPs with the user’s consent. 3.5.1 Set Attributes Use this method to set the attributes for an existing user. 3.5.1.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/set-­‐attributes.action Requests can contain the following data: { “userId” : “0010”, “attributes “name” : “firstName”, “value” : “winter “name” : “company”, “value” : “SecureKey Request Properties Required userId Required attributes Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 40 of 63 3.5.1.2 Response Responses can contain the following data: Response Properties Required? txnId Required error Optional errorDescription Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_credentials • unknown_user • invalid_request • invalid_request_property • system_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 3.5.2 Get All Attributes Use this method to retrieve all attributes for a specified user. 3.5.2.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/get-­‐all-­‐attributes.ac tion Requests must contain the following data: Request Properties Required? userId Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 41 of 63 3.5.3 Get Attributes Use this method to retrieve specific attributes for a specified user. 3.5.3.1 Request The endpoint for this request is: https://[Host] /otap-­‐client-­‐manager/get-­‐attributes.action Requests can contain the following data: { “userId” : “0010”, “attributeNames “firstName”, “company Request Properties Required? userId Required attributeNames Required For a full list of request properties and their descriptions, see Appendix A: Request Properties. 3.5.3.2 Response Responses can contain the following data: { “txnId” : “454c9027-­‐10d4-­‐4435-­‐abe9-­‐f8ff3c263c70”, “attributes “name” : “firstName”, “value” : “winter” "lastUpdated": "2013-­‐11-­‐18T14:05:38-­‐0500 “name” : “company”, “value” : “SecureKey” "lastUpdated": "2013-­‐11-­‐18T14:05:38-­‐0500 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 42 of 63 Response Properties Required? txnId Required error Optional errorDescription Optional attributes Optional For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_credentials • unknown_user • invalid_request • system_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. Response Responses can contain the following data: { “txnId” : “454c9027-­‐10d4-­‐4435-­‐abe9-­‐f8ff3c263c70”, “attributes “name” : “firstName”, “value” : “winter” "lastUpdated": "2013-­‐11-­‐18T14:05:38-­‐0500 “name” : “company”, “value” : “SecureKey” "lastUpdated": "2013-­‐11-­‐18T14:05:38-­‐0500 Response Properties Required? txnId Required error Optional errorDescription Optional attributes Optional 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 43 of 63 For a full list of response properties and their descriptions, see Appendix B: Response Properties. Error codes for this response can include: • invalid_credentials • unknown_user • invalid_request • system_error For a full list of error codes and their descriptions, see Appendix C: Error Codes. 4. AT&T Verify Connect JavaScript Library The AT&T Verify Connect JavaScript library enables web pages to embed and integrate the UI widget to guide end users through the authentication process. The widget is displayed directly on the RP’s web page and the widget content interacts directly with the AT&T Verify Connect cloud-­‐based system. After initializing the widget, notifications are sent to the embedding page to indicate milestones in the authentication process. Note: Only one request to the AT&T Verify Connect JavaScript library can be made, per user, at a time. A second request cannot be made until the current call completes. For asynchronous calls that use callbacks, the callback must return before a new call can be made. A call is considered to be complete when either the or callback handlers are onConnected onConnectionFailure called. 4.1 Including the AT&T Verify Connect JavaScript Library The AT&T Verify Connect JavaScript library is available from SecureKey’s AT&T Verify Connect servers. The RP web page should include the following script on their client page to access and load the library: Note: The [Host] element in the URL is different for sandbox and production environments. 4.2 Setting override parameters To change or explicitly call a specific AT&T Verify Connect host, use the following optional function: setOverrideParameters(parameters) Where is an object with the following properties, parameters [String | Optional] widgetHostOverride The AT&T Verify Connect server to communicate with. This property may be set during testing to point a AT&T Verify Connect test environment. This function can throw the following exception: 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 44 of 63 • Message: This function can only be called once and must be called before init or initIPT • Reason: The function has been called before. 4.3 Initializing the AT&T Verify Connect Widget After the application client receives the widget code (during request initiation), the widget can be loaded onto the web page. To initialize the widget, the following steps must be taken: 1. Load the AT&T Verify Connect JavaScript library. 2. Add a div element to the page where the widget is instantiated. This div element must have its id set to “sk-­‐skap-­‐widget”. The recommended dimensions for the div element are 375 pixels (px) wide by 225 pixels (px) high. If the div element has a larger dimension, the widget UI is centered horizontally only. Note: If the client does not want to display the widget, the div on the client page should be created with height=0. Some browsers do not allocate any resources for a div with style “display=none”, so plugin access within this div will not be possible and the widget would be unable to recognize a local device. 3. Ensure that the event initiation page (skap-­‐callback.html) is hosted on the client’s web site in the same domain as the page containing the widget. This is a static web page that is provided by SecureKey that facilitates the invocation of the client’s event handlers from within the widget. This mechanism for delivering events from the widget is only required for support of Microsoft Internet Explorer v7 (IE7). If the client does not wish to support IE7, the event page is not required and the initialization of the widget must specify “false” for the “ie7Compatibility” property. 4. Initiate the AT&T Verify Connect widget by calling the function provided in the library. SKAP.init See the following section for available parameters. 4.3.1 SKAP.init parameters [String | Required] widgetCode The widget code returned during session initiation. Note session requirements have been removed as of AT&T Verify Connect v2.2. [String | Optional] eventPageUrl The URL of the event page (described above) that is hosted on the client’s web page. The parameter must be specified if ie7Compatibility is set to true (the default). eventPageUrl [Boolean | Optional] ie7Compatibility Indicates whether IE7 support is required, where indicates support is required. When set to true, the must also be true eventPageUrl specified to allow a client event page to be loaded from the client’s domain indicates support is not required. false [Function | Required] onConnected A callback function when the widget has successfully initialized to the AT&T Verify Connect server. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 45 of 63 [Function | Required] onConnectionFailed A callback function if the widget failed to connect or reconnect to the AT&T Verify Connect server. In the case of a failed reconnection, the client may request the response data from AT&T Verify Connect as it is possible that the request may have completed through the device channel. [Function | Required] onCompleted A callback function when the AT&T Verify Connect authentication process completes. The event handler should notify the application server of this event to indicate the data can now be retrieved from the AT&T Verify Connect server. 4.3.2 SKAP.init exceptions Message Reason no params No parameters object was passed in. divId not found The div id specified cannot be found in the document. no eventPageUrl specified No event page was specified and IE 7 compatibility has not been set to false. no widget code specified No widget code was specified onConnected not specified The onConnected callback function has not been specified. onConnectionFailed not specified The onConnectionFailed callback function has not been specified. onCompleted not specified The onCompleted callback function has not been specified. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 46 of 63 4.3.3 Sample design Depending on how the client’s web page flow is designed, the call containing the appropriate widget code could be embedded directly in the page when it is delivered to the browser or a function could be created in the page to accept the widget code dynamically and make the initialization call. The following is an example of a page fragment that includes the AT&T Verify Connect library and a call to initialize the widget: SKAP.init({ widgetCode : “tGzv3JokF0XG5Qx2T1KWTA”, //widget code eventPageUrl /www.client.com/skap_events.html”, //url of event page onConnected : myOnConnectedCallback, //callback functions onConnectionFailed : myOnConnectionFailedCallback, onCompleted : myOnCompletedCallback }); 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 47 of 63 4.4 Pair Device This function can be used to pair a local device (mobile or desktop based device) using a code obtained using the pair device server-­‐to-­‐server call. To pair the device, the following steps must be taken: 1. Load the AT&T Verify Connect JavaScript library. 2. Ensure that the event initiation page (skap-­‐callback.html) is hosted on the client’s web site in the same domain as the page containing the widget. This is a static web page that is provided by SecureKey that facilitates the invocation of the client’s event handlers from within the widget. This mechanism for delivering events from the widget is only required for support of Microsoft Internet Explorer v7 (IE7). If the client does not wish to support IE7, the event page is not required and the initialization of the widget must specify “false” for the “ie7Compatibility” property. 3. Initiate the AT&T Verify Connect pairing by calling the SKAP.pairDevice function provided in the library. See the following section for available properties. 4.4.1 SKAP.pairDevice parameters [String] pairingCode The pairing code returned during pairing initiation. This is required for mobile platforms and optional for desktop. [String | Optional] language A two character language code and optional two character country/region code to specify the language for text appearing in the widget. For example, en-­‐CA represents Canadian English. Note: This is only applicable for desktop devices. [String | Optional] eventPageUrl The URL of the event page (described above) that is hosted on the client’s web page. The parameter must be specified if ie7Compatibility is set to true (the default). eventPageUrl [Boolean | Optional] ie7Compatibility Indicates whether IE7 support is required, where indicates support is required. When set to true, the must also be true eventPageUrl specified to allow a client event page to be loaded from the client’s domain indicates support is not required. false [Function | Required] onComplete A callback function when the AT&T Verify Connect pairing process completes. The event handler should notify the application server of this event to indicate the data can now be retrieved from the AT&T Verify Connect server. Note: This event does not mean that pairing was successful. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 48 of 63 [Function | Required] onError A callback function when the AT&T Verify Connect pairing process fails. This can be due to a technical error such as network or connectivity issues. 4.4.2 SKAP.pairDevice exceptions Message Reason no params No parameters object was passed in. no eventPageUrl specified No event page was specified and IE 7 compatibility has not been set to false. no pairing code specified No pairing code was specified and this is a mobile device. onComplete not specified The onComplete callback function has not been specified. onError not specified The onError callback function has not been specified. Unsupported Platform This platform has not been recognized and is not supported. 4.4.3 Callback functions The onComplete callback function is passed one parameter with the following attributes when the pairing has been completed: [String] success or . If on a mobile platform, no status can be passed back from the mobile “true” “unknown” application, so “unknown” will be returned. The onError callback function is called if an error occurred during the pairing. If it is called the onComplete function will not be called. It is passed one parameter with the following attributes: [String] success “false” [String] category The category of the error such as . “network” [String] reason A text description of the error. 4.5 Update Plugin This function can be used to update the SecureKey plugin to the latest available version. It can only be called from a desktop (Windows or Mac) environment. 1. Load the AT&T Verify Connect JavaScript library. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 49 of 63 2. Ensure that the event initiation page (skap-­‐callback.html) is hosted on the client’s web site in the same domain as the page containing the widget. This is a static web page that is provided by SecureKey that facilitates the invocation of the client’s event handlers from within the widget. This mechanism for delivering events from the widget is only required for support of Microsoft Internet Explorer v7 (IE7). If the client does not wish to support IE7, the event page is not required and the initialization of the widget must specify “false” for the “ie7Compatibility” property. 3. Initiate the AT&T Verify Connect pairing by calling the SKAP.updatePlugin function provided in the library. See the following section for available properties. 4.5.1 SKAP.updatePlugin parameters [Boolean | Optional] silent Defaults to . If set to , then no user UI is displayed and the plugin is updated. If set to , false true true then the user will be prompted if they want to install the plugin. [String | Optional] language A two character language code and optional two character country/region code to specify the language for text appearing in the widget. For example, en-­‐CA represents Canadian English. Note: This is only applicable for desktop devices. [String | Optional] eventPageUrl The URL of the event page (described above) that is hosted on the client’s web page. The parameter must be specified if ie7Compatibility is set to true (the default). eventPageUrl [Boolean | Optional] ie7Compatibility Indicates whether IE7 support is required, where indicates support is required. When set to true, the must also be true eventPageUrl specified to allow a client event page to be loaded from the client’s domain indicates support is not required. false [Function | Required] onComplete A callback function when the AT&T Verify Connect pairing process completes. The event handler should notify the application server of this event to indicate the data can now be retrieved from the AT&T Verify Connect server. Note: This event does not mean that pairing was successful. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 50 of 63 4.5.2 SKAP.updatePlugin exceptions The following exceptions can be thrown from this function. Message Reason no params No parameters object was passed in. no eventPageUrl specified No event page was specified and IE 7 compatibility has not been set to false. onComplete not specified The onComplete callback function has not been specified. 4.5.3 Callback functions The onComplete function is passed one parameter with the following attributes when the pairing has been completed: [String] success “true” or “false” [String] reason If success is , then a reason for failure will be returned: false 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 51 of 63 Appendix A Request Properties Request Properties Type Description language String A two character language code and optional two character country/region code to specify the language for text appearing in the widget. For example, en-­‐CA represents Canadian English. actionText String RP custom text that outlines the purpose of the authentication on end user interfaces. userId String A user identifier in the RP’s namespace. AT&T Verify Connect manages s independently for each RP. userId • If is specified, AT&T Verify Connect confirms the identity userId and uses the provided identifier to determine (or add) authenticating devices. • If is not specified, AT&T Verify Connect performs a first userId factor authentication to determine the user’s identity. context String RP custom text that outlines the context for the request. This value is recorded in AT&T Verify Connect logs and not displayed on end user displays. This may be useful for some client specific report generations. The context string may be up to 30 characters long. configProfile String Clients may have multiple configuration profiles for performing authentication functions. Different contexts may have different authentication requirements. • If is specified, the authentication rules from this configProfile profile are used in this request. • If is not specified, the authentication rules from the configProfile default profile are used in this request. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 52 of 63 Request Properties Type Description allowVerification String Specifies the action to be taken if an authentication device is not in a verified state. Verification is the process of determining the device or credential is in fact under the control of the user. Verification methods include: • Contactless credential mapping, • Phone call or SMS to registered number, • RP-­‐provided challenge questions and verification. Accepted values are to indicate verification is permitted (if possible). Yes • – to indicate forced verification even if device is currently Force verified. Note that is only valid if AT&T Verify Connect is allowVerification managing the device verification status (as defined in the configuration profile). In cases where the client manages the device verification status, should be omitted. allowVerification Note: This property will be deprecated in v2.3.0. userIPAddress String The user’s IP address. This may be matched with the IP address that the user’s browser widget connects to AT&T Verify Connect with. confirmationItems String Array of and pairs to be displayed as-­‐is on end user name value displays. cardTerminalOptions Array An array of -­‐ pairs that specify the options about the type tag value of card being read, where represents the card option encoded as a hex-­‐formatted tag string. The tag may be specific to the card type used by the user represents the proposed value of the terminal option to value be used during the card reading process. If a value required by the card is not provided by the RP, or the proposed value is insufficient, the terminal will create a value for the option. The RP is not required to provide any options for successful card reading. If the RP wants to provide any terminal options to be used during the process, the RP must be aware of which card types may be presented and provide the appropriate tags specified by the relevant card specification. If multiple card types may be presented, the superset of tags for all card types may be provided by the client. The terminal will use the appropriate tags based on the presented card. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 53 of 63 Request Properties Type Description sendPush String Optional, default is true. If a pre-­‐selected mobile device is used, Connect sends a push notification to the device to wake up the mobile application immediately, unless this property is set to false. txnId String The transaction identifier provided in the initiation response. Phone Array An array of -­‐ pairs representing the various phone name number numbers capable of phone or SMS-­‐based verification (if supported by the RP), where represents a descriptive name for a phone number, for name example, “Home” or “Mobile”. This value must be unique for the user. The names may be specified by the RP. AT&T Verify Connect does not associate any meaning to the provided names represents the phone number. number deviceId String A device identifier for the mobile device. This identifier is unique to the user, device and the requesting RP. That is, a different RP will receive a different identifier for the same device and user. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 54 of 63 Request Properties Type Description deviceConstraints Object A constraint on the type of devices that can be paired based on criteria such as device category or capability. This object structure can contain the following optional Boolean fields: – indicates whether the device requires NFC nfcRequired capability. The default value is false. –indicates the types of Secure Elements (SEs) allowedSETypes allowed. SE types include: • Token (e.g. SecureKey token or card reader) • IPT_ME (e.g. hardware secure element from Intel) • SW_SE (e.g. software-­‐emulated secure element) • EMB_SE (e.g. hardware secure element on some BlackBerry and Android devices) • SIM_SE (e.g. secure element on SIM card) • WEB_VSE (e.g. web virtual secure element) – indicates whether a device that can be used as remoteAllowed an out-­‐of-­‐band authentication device is allowed. Remote devices must support push messaging. The default value is . true – a string that indicates type of application that can be appType paired. Omitting this field indicates there is no restriction on the type of application. Otherwise, must be one of the appType following values a SecureKey device application that is capable of SK participating in flows initiated through the SecureKey JSON API A relying party application built using the SecureKey SDK client SDK. These applications cannot participate in flows initiated through the SecureKey JSON API. expiry String The expiry date and time for the pairing request. If the pairing is not complete within the specified expiry, the pairing request terminates in failure. The date and time format should be an ISO-­‐8601 string using UTC. For example, June 04, 2013 at 12am is represented by: 2013-­‐06-­‐04T00:00:00.000Z (milliseconds are optional). verifyDevice Boolean Indicates if a device should be marked as verified for the specified user. The default value is . false
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 55 of 63 Request Properties Type Description notificationType String Indicates how the RP should be notified when the pairing process completes. When the pairing process completes, the application server can perform a data retrieval request to obtain the response data from AT&T Verify Connect. Values include indicates no notification is sent to the RP. none • – indicates a long polling notification notificationChannel channel will be notified once pairing is complete. A notification handle is created and returned in the response to this call. Note that the notification channel response is intended for online pairings as the notification channel remains active for only a short period of time (for example, 15 minutes). The notification message includes the transaction identifier and a status code (success of failure). Full response details can be retrieved from AT&T Verify Connect using the transaction identifier. notificationURL String An RP controlled endpoint where a completion notification is sent using the HTTP POST method. This is only valid if is set to . notificationType httpPost verifiedDevice Boolean Indicates whether or not the device used to authenticate the user was in a verified state. This property is only applicable to authentication processes that utilize a supported mobile device. • If , the device may have been verified while processing this true authentication request or may have been previously verified and that the verification is still valid based on RP policy rules. • If , the verification is not valid based on RP policy rules. false attributeNames Array An array of attribute names in the RP namespace (that is, as specified when attributes were set). 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 56 of 63 Appendix B Response Properties Response Properties Type Description txnId String A transaction identifier for this request. This identifier will be used to get the data associated with this request after the flow is complete. access_token String An opaque value identifying the session established for an individual user. The may be up to 512 ASCII characters long. access_token Note session requirements have been removed as of AT&T Verify Connect v2.2. token_type String The type of authentication performed for the user. This value is always set to “bearer” expires_in Integer The time before the session expires (in seconds). Note session requirements have been removed as of AT&T Verify Connect v2.2. widgetCode String An opaque value providing a key to the session established for widget access. The widget code may be up to 512 ASCII characters long. Note: This value is different from the access_token. Note session requirements have been removed as of AT&T Verify Connect v2.2. error String An error code is returned when the HTTP response code is 400; indicating the request failed. See Appendix C: Error Codes for detailed descriptions. errorDescription String An optional textual description that may provide additional information on the cause of the error. This text is not intended for display to end users but rather to aid in problem determination. This property is optional and will only be provided in error conditions. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 57 of 63 Response Properties Type Description userId String A user identifier in the RP’s namespace. • If was specified in the initiation request, the userId response value must match. • If was not specified in the initiation request, the userId response value represents the user identifier as determined during the authentication. verifiedDevice Boolean Indicates whether or not the device used to authenticate the user was in a verified state. This property is only applicable to authentication processes that utilize a SecureKey enabled device. • If , the device may have been verified while true processing this authentication request or may have been previously verified and that the verification is still valid based on RP policy rules. • If , the verification is not valid based on RP policy false rules. verifiedPasscode Boolean if the passcode was verified, otherwise. True False This property is included in the response unless an error occurs. unknown_txn userResponse String Indicates whether the user accepted or rejected the confirmation, where indicates the user accepted the details of the accepted confirmation indicates the user rejected the details of the rejected confirmation. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 58 of 63 Response Properties Type Description deviceInfo DeviceInfo Object This property returns information about the authenticated device if the authentication was successful. – an optional string that indicates the device deviceId identifier for the device. This identifier is unique to the device and the requesting RP. – a required string that indicates the type of deviceType the devices. Possible values include: • Intel IPT • SecureKey USB • RIM • Android – a required string that indicates whether the supportsNFC device supports NFC reading. Possible values include: • true • false • requiresUpdate If is returned, the device has NFC requiresUpdate capability but requires a software update. The software update will be performed by AT&T Verify Connect if any calls requiring NFC are initiated. userId – an optional string that indicates the user identifier for a paired and verified device. – a required string that indicates the user-­‐ deviceName specified name on the device (if applicable). – a required string that indicates the model of the model device. – an optional string that indicates the date and pairingDate time this device was paired to the specified user. The date and time format is in UTC. – an optional string that indicates the date lastConnected and time this device was last connected to the system. The data and time format is in UTC. – a required Boolean that indicates whether this pushable device supports push messages. – an optional string about the verification verificationType type set by the RP. – an optional string specifying the date the verificationDate device was last verified. reasonCode String A reason code may be returned with an error code to provide authentication engine specific reason codes. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 59 of 63 Response Properties Type Description warnings Array A warning may be returned with a completed authentication. One or more of the following messages may be included: – indicates the specified IP client_widget_ip_mismatch address in the request does not match the IP address when checked during authentication via the widget. – indicates the IP address local_device_widget_ip_mismatch of the widget and the IP address of the RP device do not match. This warning is only applicable in a local device scenario. cardType String The supported card types for this request. Possible values are: • VISA_MSD • VISA_QVSDC • VISA_VSDC • MASTERCARD_MAGSTRIPE • MASTERCARD_MCHIP • DISCOVER_MSD • DISCOVER_DCVV • INTERAC • AMEX_MSD • AMEX_EMV • UNKNOWN interfaceType String The supported card interface types for this request. Possible values are: • Contactless • Contact cardData Array An array of -­‐ pairs that specify the type of card tag value being read, where represents the card data encoded as a hex-­‐ tag formatted string represents the card data bytes encoded as a hex value string. cardTerminalOptionsUsed Array An array of tag-­‐value pairs that specify the type of card being read, where represents the card data encoded as a hex-­‐ tag formatted string represents the card data bytes encoded as a hex value string. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 60 of 63 Response Properties Type Description Phone Array An array of -­‐ pairs representing the various name number phone numbers capable of phone or SMS-­‐based verification (if supported by the RP), where: – represents a descriptive name for a phone name number, for example, “Home” or “Mobile”. This value must be unique for the user. The names may be specified by the RP. AT&T Verify Connect does not associate any meaning to the provided names. – represents the phone number. number pairingCode String A code used to initiate pairing from the client application. The is referenced in the SDK call from the pairingCode client. pairingURL String A URL to a SecureKey landing page where links and instructions (specific to a client platform) will be provided to invoke the SDK from the client application to initiate pairing. notificationChannel String A notification channel handle to enable a client to wait for a response notification. This will be provided if the request indicated that the notification should be through a notification channel. devices List of DeviceInfo Objects A list of devices for the specified user. Each DeviceInfo object can contain the following properties: See DeviceInfo details here. attributes Array An array of -­‐ pairs describing user attributes, name value where: – represents a descriptive name for this attribute. name The names can be specified by the client. AT&T Verify Connect does not associate any meaning to the provided names. – represents the value of the attribute. The value value must be unique for the user. ProvisioningAuthorizationCode String The authorization code to be passed to the SDK to complete device provisioning. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 61 of 63 Appendix C Error Codes Application server requests to the AT&T Verify Connect server can return an HTTP browser response code of 400 to indicate a request has failed. In the event of request failure, error codes are returned to identify the type of issue. Additionally, an error description ( ) may be returned to provide additional information on errorDescription the cause of the error. This text is not intended for display to end users, but rather to aid in troubleshooting. The following sections list the error codes returned by AT&T Verify Connect with their descriptions. Error Codes Description invalid_access_token Indicates the is invalid, expired, or missing. access_token invalid_credentials Indicates credentials were not provided or are invalid. account_locked Indicates the current RP profile is forbidden from sending requests. invalid_grant_type Indicates was not specified or was not set to grant_type as required. client_credentials invalid_request Indicates the request body does not contain valid JSON content. invalid_request_property Indicates one or more of the request properties is not valid. Additional information may be available in the . errorDescription invalid_config_profile Indicates the specified configProfile in the request is not valid. unsupported_language Indicates no language was specified or the specified language is not supported. unknown_user Indicates the specified in the request is not known for this userId RP. action_text_required Indicates was not specified in the request. actionText confirmation_items_required Indicates the required property was not specified confirmationItems in the request. unsupported_authentication Indicates the specified request attributes are not sufficient for the authentication model specified in the configuration profile. device_update_required Indicates the request could not be completed because the user-­‐ selected device requires a software update. system_error Indicates an unexpected error occurred. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 62 of 63 Error Codes Description plugin_update_required Indicates a plugin update is required and the request was run with no local application UI so it could not be installed. plugin_update_user_cancelled Indicates a plugin update is required and the user cancelled the update so the request could not be completed. unknown_txn Indicates the specified transaction identifier is not recognized. If the request was performed over a protected session, then the transaction identifier was not recognized for the specified . access_token Note session requirements have been removed as of AT&T Verify Connect v2.2. authentication_failed Indicates the user-­‐specified credentials are not valid. user_cancelled Indicates the user cancelled the authentication. user_declined Indicates the user declined the access request. device_preempted Indicates the current request was overridden by a second request. Devices can only process one authentication at a time. user_cancelled_update Indicates the user cancelled a required software update process. txn_not_complete Indicates the transaction specified by the did not complete. txn_id no_device Indicates a connection with the device could not be established. invalid_device Indicates the device could not be authenticated. timeout Indicates the transaction did not complete within the allotted time. device_removed Indicates the device (for example, a USB card reader) was disconnected during the authentication process. device_network_error Indicates the internet connection was disrupted during the authentication process. device_error Indicates an error occurred on the device. card_read_error Indicates an error occurred during an NFC-­‐based card read operation. unrecognized_card_type Indicates the card type presented was not recognized. 
AT&T VERIFY CONNECT (V3.0) INTEGRATION GUIDE FOR JAVASCRIPT LIBRARY © 2014 AT&T intellectual property. all rights reserved. AT&T, the AT&T logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies Effective Date: 14 August 2014 Page 63 of 63 Error Codes Description invalid_card_data Indicates the card returned data that is deemed invalid by the card issuer, and precludes providing the card data. stale_passcode_update Indicates the current user passcode was overridden by another request. user_exists Indicates the user is already registered in the AT&T Verify Connect systems invalid_credentials Indicates credentials were not provided or are invalid. device_required Indicates no was specified. This is a required field. deviceId no_passcode Indicates the specified user has no passcode set.