/// <summary>
        /// Get an authentication usind id
        /// </summary>
        /// <param name="auth">Authentications</param>
        /// <returns>Authentications</returns>
        public Authentications get(Authentications authentications, bool includeEnrollment = false)
        {
            authentications.setRequiredFields(new List <string> {
                ThreeDSecureConstants.id
            });
            authentications.checkRequiredFields();

            Dictionary <string, string> queryStr = new Dictionary <string, string>();
            StringBuilder toInclude = new StringBuilder();

            if (includeEnrollment)
            {
                toInclude.Append("enrollmentchecks");
            }
            queryStr.Add("fields", toInclude.ToString());

            Request request = new Request(
                uri: this.prepareURI("/accounts/" + client.account() + "/authentications/" + authentications.id()),
                queryString: queryStr
                );

            dynamic response = this.client.processRequest(request);

            return(new Authentications(response));
        }
        /// <summary>
        /// Submit an authentications request
        /// </summary>
        /// <param name="Authentications">Authentications</param>
        /// <returns>Authentications</returns>
        public Authentications submit(Authentications authentications)
        {
            authentications.setRequiredFields(new List <string> {
                ThreeDSecureConstants.merchantRefNum,
                ThreeDSecureConstants.paResp,
            });

            authentications.checkRequiredFields();
            Request request = new Request(
                method: RequestType.POST,
                uri: this.prepareURI("/accounts/" + client.account() + "/enrollmentchecks/" + authentications.enrollmentId() + "/authentications"),
                body: authentications
                );
            dynamic response = this.client.processRequest(request);

            return(new Authentications(response));
        }