/// <summary>
        /// Create profile
        /// </summary>
        /// <param name="profile">Profile</param>
        /// <returns>Profile</returns>
        public Profile create(Profile profile)
        {
            profile.setRequiredFields(new List <string> {
                CustomerVaultConstants.merchantCustomerId,
                CustomerVaultConstants.locale
            });
            profile.setOptionalFields(new List <string> {
                CustomerVaultConstants.firstName,
                CustomerVaultConstants.middleName,
                CustomerVaultConstants.lastName,
                CustomerVaultConstants.dateOfBirth,
                CustomerVaultConstants.ip,
                CustomerVaultConstants.gender,
                CustomerVaultConstants.nationality,
                CustomerVaultConstants.email,
                CustomerVaultConstants.phone,
                CustomerVaultConstants.cellPhone,
                CustomerVaultConstants.card
            });

            Request request = new Request(
                method: RequestType.POST,
                uri: this.prepareURI("/profiles"),
                body: profile
                );
            dynamic response = this.client.processRequest(request);

            return(new Profile(response));
        }