public async Task <IHttpActionResult> GetDigitalWalletSsoRequestPayload(long accountNumber, string accountIdentifier, string deviceIdentifier)
        {
            if (!_settings.MobileConfiguration.DigitalWallet.Enabled)
            {
                return(Ok("no access"));
            }

            // endPointAddress for testing: = "https://cte-cardvalet-ws.fiservapps.com";
            var endPointAddress = _settings.MobileConfiguration.DigitalWallet.EndpointAddress;

            var userId      = _settings.MobileConfiguration.DigitalWallet.userId;
            var decryptedPW = _cryptoProvider.DecryptString(_securityKey, _settings.MobileConfiguration.DigitalWallet.password, EncryptionType.Des);

            // refId example = "9999e999e99999e9e9eee99ee9e9999-9-9-0-9";
            var refId = accountIdentifier;

            // deviceId example = "yahd7864823bjn048pakln";
            var deviceId = deviceIdentifier;

            // testing: "99993576"   production: "99993575"
            var clientId = _settings.MobileConfiguration.DigitalWallet.clientId;

            // Log account number, account identifier and device identifier:
            _logger.Trace($"GetDigitalWalletSsoRequestPayload for {accountNumber}. AccountIdentifier: {accountIdentifier}. DeviceIdentifier: {deviceIdentifier}");

            var request = new DigitalWalletHeaderSignature
            {
                schemaVersion         = _settings.MobileConfiguration.DigitalWallet.schemaVersion,
                clientId              = clientId,
                system                = _settings.MobileConfiguration.DigitalWallet.system.FirstOrDefault(),
                clientApplicationName = _settings.MobileConfiguration.DigitalWallet.clientApplicationName,
                clientVersion         = _settings.MobileConfiguration.DigitalWallet.clientVersion,
                clientVendorName      = _settings.MobileConfiguration.DigitalWallet.clientVendorName,
                clientAuditId         = Guid.NewGuid().ToString().Replace("-", string.Empty).Substring(0, 12),
                subscriberRefID       = refId,
                ssoDeviceId           = deviceId
            };

            var resultString = await MakeSsoRequest(endPointAddress, userId, decryptedPW, request).ConfigureAwait(false);

            _logger.Trace($" ----- DigitalWalletController ------- resultString : {resultString}");

            if (resultString != null)
            {
                var result = JsonConvert.DeserializeObject <DigitalWalletSsoResponse>(resultString);

                var cardValetSsoResponse = new CardValetSsoResponse();

                if (result.CsStatus.StatusCode == "0")
                {
                    cardValetSsoResponse.SsoPayload      = result.SsoPayload;
                    cardValetSsoResponse.AndroidStoreUrl = _settings.MobileConfiguration.DigitalWallet.AndroidStoreUrl;
                    cardValetSsoResponse.IosStoreUrl     = _settings.MobileConfiguration.DigitalWallet.IosStoreUrl;
                    cardValetSsoResponse.UrlScheme       = _settings.MobileConfiguration.DigitalWallet.UrlScheme;
                    cardValetSsoResponse.PackageName     = _settings.MobileConfiguration.DigitalWallet.PackageName;
                }
                else
                {
                    cardValetSsoResponse.StatusDescription = result.CsStatus.StatusDesc;
                }

                return(Ok(cardValetSsoResponse));
            }

            return(BadRequest());
        }