US Pat. No. 9,083,702

SYSTEM AND METHOD FOR PROVIDING INTERNAL SERVICES TO EXTERNAL ENTERPRISES

Bank of America Corporati...

1. A system for providing internal services to third party enterprises, comprising:
an authentication gateway module comprising memory, an interface, and a processor, the authentication module operable to:
receive a request for authentication from a particular third party enterprise of a plurality of third party enterprises, the
request for authentication comprising credentials associated with the particular third party enterprise;

authenticate the particular third party enterprise based on the credentials;
store the credentials associated with the particular third party enterprise at an audit module, the audit module being architecturally
distinct from the authentication gateway module such that access to the authentication gateway module does not provide access
to the audit module;

generate an authentication token associated with the particular third party enterprise; and
send the authentication token to the particular third party enterprise;
a services gateway module comprising memory, an interface, and a processor, the services gateway module operable to:
receive a service request associated with the particular third party enterprise, the service request including the authentication
token associated with the particular third party enterprise;

validate the particular third party enterprise based on a comparison of the authentication token associated with the particular
third party enterprise and the credentials associated with the particular third party enterprise stored at the audit module;

determine, based on one or more attributes of the service request, a particular internal service among a plurality of internal
services offered by an enterprise that is the subject of the service request;

forward the service request to the particular internal service;
receive results corresponding to the service request generated by the particular internal service;
communicate the results corresponding to the service request to the particular third party enterprise; and
store the results corresponding to the service request.

US Pat. No. 9,489,693

MULTI-PURPOSE, MULTI-TENANT KIOSK

Bank of America Corporati...

1. A kiosk, wherein the kiosk is deployed at a customer location and is operable to:
determine a subset of financial products to communicate to a user, the subset of financial products determined from a plurality
of financial products available for provisioning by the kiosk;

communicate the subset of financial products to the user;
receive a first user input indicating a selected financial product of the subset of financial products;
determine a subset of vendors to communicate to the user, the subset of vendors determined from a plurality of vendors that
offer the plurality of financial products available for provisioning by the kiosk;

communicate the subset of vendors to the user;
receive a second user input indicating a selected vendor of the subset of vendors; and
provision the selected financial product on behalf of the selected vendor based on the first user input and the second user
input;

wherein:
the subset of financial products to communicate to the user comprises fewer than all of a plurality of financial products
available for provisioning by the kiosk, and the subset of financial products is determined based on a user profile that indicates
products of interest to the user;

the subset of financial products includes at least one financial product selected from the group consisting of a credit account,
a debit account, a prepaid account, and an affinity account; and

to provision the selected financial product, the kiosk is further operable to apply a rule that determines between (a) provisioning
the selected financial product independently of communication with the vendor of the selected financial product, and (b) provisioning
the selected financial product using communication with the vendor of the selected financial product to approve the provisioning.

US Pat. No. 9,412,083

AGGREGATION AND WORKFLOW ENGINES FOR MANAGING PROJECT INFORMATION

Bank of America Corporati...

1. A system, comprising a first interface module, a memory, processor a second interface module, and a receiving interface
module and further comprising:
an aggregation engine, executed by the processor to:
initiate the first interface module in response to a first request from a first user, the first request indicating a first
type of project information, wherein the first type of project information comprises project requirements information;

receive, via the first interface module, the first type of project information;
store the first type of project information in the memory;
initiate the second interface module in response to a second request from a second user, the second request indicating a second
type of project information, wherein the second type of project information comprises project assumptions information;

receive, via the second interface module, the second type of project information; and
store the second type of project information in the memory;
a workflow engine, executed by the processor to:
initiate one or more of a plurality of workflows, wherein the initiated one or more workflows indicate certain project information
for approval by an external group;

retrieve, from the memory and based upon the initiated one or more workflows, a first subset of the first type of project
information and a second subset of the second type of project information;

format the first subset and second subset of project information according to the initiated one or more workflows;
an export engine, executed by the processor to transmit the formatted first and second subset of project information and a
request for approval to a first external group and a second external group according to the initiated one or more workflows;

receive, via the receiving interface module, a first response from the first external group and a second response from the
second external group, the first and second responses comprising one of an approve response and a deny response;

upon a determination that the first response is an approve response and the second response is an approve response, communicate
the first and second responses to at least one of the first user and the second user; and

store, in the memory, audit approval data in an audit log, the audit approval indicating the identity of the first and second
external groups, the time the first and second responses were received, and whether the first and second responses were approve
responses or deny responses, wherein the data aggregation engine is further operable to logically group the first and second
type of project information before storage in the memory.

US Pat. No. 9,317,673

PROVIDING AUTHENTICATION USING PREVIOUSLY-VALIDATED AUTHENTICATION CREDENTIALS

Bank of America Corporati...

1. An apparatus for providing authentication using previously-validated authentication credentials, the apparatus comprising:
a memory;
one or more processors; and
computer executable code stored in memory, wherein the computer executable code, when executed by the one or more processors,
is configured to cause the one or more processors to:

receive a request, from a user, to access a framework application, wherein access to the framework application requires a
primary level of user authentication comprising one of a plurality of authentication types that is selectable by the user,
wherein the plurality of authentication types comprises at least one of a hard authentication, a soft authentication, and
a zero authentication, wherein the hard authentication is a multi-factor verification requiring the user present at least
two authentication credentials, wherein the soft authentication is at least a single factor verification requiring the user
to present at least one authentication credential, wherein zero authentication requires the user to present no authentication
credentials;

receive a user selected authentication type of the primary level of user authentication, wherein the user selected authentication
type is selected from at least one of a hard authentication, a soft authentication, and a zero authentication;

request, from the user, one or more authentication credentials corresponding to the user selected authentication type of the
primary level of user authentication;

receive the one or more authentication credentials from the user;
validate the one or more authentication credentials, thereby resulting in a validation of the user selected authentication
type of the primary level of user authentication

create, using the framework application, an authentication token corresponding to the user selected authentication type based
at least partially on the validation of the user selected authentication type of the primary level of user authentication,
wherein the authentication token is accessible by at least one non-framework application;

receive a request, from the user, to access the at least one non-framework application;
access the authentication token created by the framework application; and
at least partially authenticate the at least one non-framework application using the authentication token such that the authentication
of the at least one non-framework application is at least partially based on the user selected authentication type of the
primary level of user authentication,

wherein authentication of the user selected authentication type of the primary level of authentication decreases a degree
of confidence required for authenticating the one or more non-framework applications from at least a first degree of confidence
to a second degree of confidence, and wherein the first degree of confidence is stronger than the second degree of confidence.

US Pat. No. 9,466,053

ATM CUSTOMER DEFINED USER INTERFACE FOR SECURITY PURPOSES

BANK OF AMERICA CORPORATI...

1. A system for displaying a custom interface associated with a customer on a screen of an automated teller machine (ATM),
the system comprising
a non-transitory storage device;
a communication device;
a processing device operatively coupled to the storage device and the communication device;
at least one module stored in said storage device and comprising instruction code that is executable by at least one processor
and configured to cause said at least one processor to:

present, to the customer, an option to create a customization for displaying on the screen of the ATM when the customer initiates
a session with the ATM, wherein the customization is associated with a function to perform a financial transaction when the
customer interacts with the customization on the screen of the ATM;

receive the customization, wherein the customization comprises a restriction for displaying the customization on the ATM;
receive a request to display the customization on the screen of the ATM based on the customer initiating the session with
the ATM;

communicate the customization to display on the screen of the ATM based on receiving the request to display the customization,
wherein communicating the customization to the ATM is based on the restriction for displaying the customization;

receive a request to perform the financial transaction based on the customer interacting with the customization on the screen
of the ATM; and

perform the financial transaction based on receiving the request to perform the financial transaction.

US Pat. No. 9,432,804

PROCESSING OF PRE-STAGED TRANSACTIONS

Bank of America Corporati...

1. A method, comprising:
pre-staging, at a first location, a plurality of transactions;
receiving, by a location determination and user identification system having at least one processor, data associated with
a signal detected by a personal computing device, the signal being emitted from a location beacon at a second location, the
second location being a banking center of a financial institution and being different from the first location;

determining, by the location determination and user identification system, a location of the personal computing device based
on the received data associated with the signal emitted from the location beacon, wherein the location of the personal computing
device is within a predefined proximity of the second location at which the location beacon is located;

extracting, by the location determination and user identification system, a unique identifier associated with the personal
computing device;

determining, by the location determination and user identification system and based on the extracted unique identifier associated
with the personal computing device, an identity of a user associated with the personal computing device located at the determined
location;

identifying at least one pre-staged transaction of the plurality of transactions that is associated with the identified user
associated with the personal computing device;

based on the determined location of the personal computing device being within the predefined proximity of the second location
at which the location beacon is located and the determined identity of the user, authorizing the at least one identified pre-staged
transaction for further processing, the authorizing being based on the determined location of the personal computing device
being within the predefined proximity of the second location and the determined identity of the user and without additional
authorization;

processing the at least one identified pre-staged transaction based on the authorization based on the determination of the
location of the personal computing device being within the predefined proximity of the second location at which the location
beacon is located and the determined identity of the user; and

generating a notification indicating processing of the at least one identified pre-staged transaction.

US Pat. No. 9,344,449

RISK RANKING REFERENTIAL LINKS IN ELECTRONIC MESSAGES

Bank of America Corporati...

1. An apparatus comprising:
at least one memory device; and
at least one processor coupled to the at least one memory and configured to perform, based on instructions stored in the at
least one memory:

receiving a request, from one of a plurality of users, to access a replaced web link that is contained in an electronic message,
wherein the replaced web link replaces an original web link that addresses an original webpage;

determining a risk score for the original webpage from an indication about the original webpage and from a social feedback
metric, wherein the social feedback metric is indicative of a user action and wherein the social feedback metric represents
a collective opinion of the original webpage regarding risk by other users of the plurality of users;

when the risk score for the original webpage is greater than a first predetermined threshold, providing an intermediate webpage,
wherein the intermediate webpage provides at least one webpage characteristic about the original webpage and displays a first
selection option whether to access the original webpage and a second selection option not to access the original webpage;

when the first selection option is selected from the intermediate webpage, accessing the original webpage; and
updating a vote count about the social feedback metric for the original webpage based on the selected option.

US Pat. No. 9,503,686

REVIEW BUCKET FOR VIDEO CONFERENCES

Bank of America Corporati...

1. A system for providing a discussion topic reviewing tool, the system comprising:
a video conferencing apparatus including a processor, a memory, a first display in communication with the processor, a video
camera in communication with the processor, a speaker in communication with the processor, and a microphone in communication
with the processor; and

a video conferencing module stored in the memory, comprising executable instructions that when executed by the processor cause
the processor to:

initiate presentation on the first display a review bucket configured to receive from a customer a plurality of discussion
topics for use in a video conference communication session between the customer and a business agent that represents a particular
entity;

receive from the customer, within the review bucket, an identifier associated with a first discussion topic that the customer
is interested in discussing during the video conference communication session;

initiate transmission of the first discussion topic to the business agent via an agent-implemented apparatus, the agent-implemented
apparatus comprising a second display;

initiate a video conference communication session between the customer and the business agent to discuss the first discussion
topic transmitted to the business agent;

present the review bucket on the first display, wherein the review bucket is configured to be dynamically positioned about
the first display in one or more non-fixed orientations by the customer, wherein the review bucket is configured to allow
both the customer and the business agent to view, edit, reorder and remove discussion topics within the review bucket in real
time;

present a replication of the review bucket on the second display;
receive from the customer during the video conference communication session, within the review bucket, one or more identifiers
associated with one or more second discussion topics from the plurality of discussion topics; and

place the one or more identifiers associated with the one or more second discussion topics in a video conference communication
queue based on at least an order in which the one or more second discussion topics are received, wherein the order is determined
by the customer.

US Pat. No. 9,467,651

DETERMINING ELECTRONIC MEDIA FORMAT WHEN TRANSFERRING A CUSTOMER BETWEEN SPECIALISTS OR AMONGST COMMUNICATION SOURCES AT A CUSTOMER SERVICE OUTLET

BANK OF AMERICA CORPORATI...

1. A system for selecting the electronic media format when transferring a user between knowledge sources, the system comprising:
an apparatus including a computing platform having a memory and at least one processor in communication with the apparatus,
wherein the apparatus further includes one or more of a display, a video camera, a speaker and a microphone, each of which
is operatively in communication with the processor,

wherein the apparatus is configured to implement one or more of the display, the video camera, the speaker and the microphone
to provide a user a communication platform for conducting a communication session with a first specialist; and

a user transferring module stored in a memory, executable by a processor and configured to (1) receive a request to transfer
a user from the first specialist to a second specialist during the communication session, (2) in response to receiving the
request, apply at least one business rule to determine a media format to implement for communication between the user and
the second specialist, and (3) transfer the user from the first specialist to the second specialist using the determined media
format.

US Pat. No. 9,363,263

JUST IN TIME POLYMORPHIC AUTHENTICATION

Bank of America Corporati...

1. A method, comprising:
at a computing platform comprising at least one processor, memory, and a communication interface:
receiving, by the at least one processor, via the communication interface, and from a first computing device, a request to
access a first user account;

in response to receiving the request to access the first user account, dynamically selecting, by the at least one processor,
based on one or more polymorphic authentication factors, a first authentication method for authenticating a user of the first
computing device, the first authentication method being selected from a plurality of predefined authentication methods;

generating, by the at least one processor, one or more authentication prompts based on the selected first authentication method;
providing, by the at least one processor, the one or more authentication prompts to the user of the first computing device;
receiving, by the at least one processor, via the communication interface, and from a second computing device different from
the first computing device, a request to access a second user account different from the first user account;

in response to receiving the request to access the second user account, dynamically selecting, by the at least one processor,
based on the one or more polymorphic authentication factors, a second authentication method for authenticating a user of the
second computing device, the second authentication method being selected from the plurality of predefined authentication methods;

generating, by the at least one processor, one or more second authentication prompts based on the selected second authentication
method; and

providing, by the at least one processor, the one or more second authentication prompts to the user of the second computing
device,

wherein the second authentication method for authenticating the user of the second computing device is different from the
first authentication method for authenticating the user of the first computing device, and

wherein providing the one or more second authentication prompts to the user of the second computing device includes providing,
to the user of the second computing device, the one or more authentication prompts that were provided to the user of the first
computing device in a different sequence.

US Pat. No. 9,407,655

MONITORING SECURITY RISKS TO ENTERPRISE CORRESPONDING TO ACCESS RIGHTS AND ACCESS RISK CALCULATION

Bank of America Corporati...

1. An access risk calculation system, comprising:
an interface that retrieves access information corresponding to a plurality of assets, the access information comprising access
rights to the plurality of assets;

a memory that stores one or more risk categories and one or more risk factors; and
one or more processors communicatively coupled to the interface and the memory and that:
determines the one or more risk categories corresponding to the access information;
determines the one or more risk factors corresponding to the one or more risk categories;
calculates a first access risk score for the plurality of assets based at least in part upon the one or more risk factors;
generates data visualization corresponding to the first access risk score and the plurality of assets;
determine a change in the access right corresponding to one or more assets of the plurality of assets;
in response to determining the change in the access right, determine an updated access risk score for the plurality of assets
based on the change in the access right;

determine a difference between the first access risk score and the updated access risk score;
determine whether the difference is greater than a threshold;
in response to determining that the difference is greater than the threshold, create a notification indicating the change
in the access right corresponding to one or more assets of the plurality of assets and that the change is above the threshold;
and

the interface communicates the notification for display.

US Pat. No. 9,471,909

ATM CUSTOMER DEFINED USER INTERFACE FOR SECURITY PURPOSES

BANK OF AMERICA CORPORATI...

1. A system for displaying a custom interface associated with a customer on a screen of an automated teller machine (ATM),
the system comprising
a non-transitory storage device;
a communication device;
a processing device operatively coupled to the storage device and the communication device;
at least one module stored in said storage device and comprising instruction code that is executable by at least one processor
and configured to cause said at least one processor to:

present, to the customer, an option to create a customization for displaying on the screen of the ATM when the customer initiates
a session with the ATM, wherein the customization is associated with a function to perform a financial transaction when the
customer interacts with the customization on the screen of the ATM;

receive the customization, wherein the customization is an icon;
receive an indication that the customer is visually impaired;
receive a request to display the customization on the screen of the ATM based on the customer initiating the session with
the ATM;

communicate the customization to display on the screen of the ATM based on receiving the request to display the customization;
communicate an instruction to the ATM, while communicating the customization to the ATM, to enlarge the customization based
on receiving the indication that the customer is visually impaired;

receive a request to perform the financial transaction based on the customer interacting with the customization on the screen
of the ATM; and

perform the financial transaction based on receiving the request to perform the financial transaction.

US Pat. No. 9,305,228

PROCESSING DAMAGED ITEMS USING IMAGE DATA LIFT

Bank of America Corporati...

1. A system, comprising:
at least one processor;
a communication interface communicatively coupled to the at least one processor; and
memory storing computer-readable instructions that, when executed by the at least one processor, cause the system to:
receive, via the communication interface, and from a computing device, image data of a deposit item captured by the computing
device;

determine whether a magnetic ink character recognition (MICR) line of the deposit item is readable based on the image data
of the deposit item captured by the computing device;

if the MICR line of the deposit item is readable, process the deposit item for deposit based on the MICR line of the deposit
item; and

if the MICR line of the deposit item is not readable:
perform an image data lift on the image data of the deposit item to extract information from one or more visible fields of
the deposit item;

identify a payor of the deposit item based on the information extracted from the one or more visible fields of the deposit
item;

determine, based on the payor of the deposit item, whether the deposit item is an on-us item, wherein the deposit item is
an on-us item if the deposit item is drawn on a financial institution that operates the system;

if the deposit item is not an on-us item, reject the deposit item; and
if the deposit item is an on-us item:
rebuild MICR information for the deposit item based on the payor of the deposit item identified based on the information extracted
from the one or more visible fields of the deposit item; and

process the deposit item for deposit based on the MICR information for the deposit item rebuilt based on the payor of the
deposit item identified based on the information extracted from the one or more visible fields of the deposit item.

US Pat. No. 9,185,117

USER AUTHENTICATION BY GEO-LOCATION AND PROXIMITY TO USER'S CLOSE NETWORK

Bank of America Corporati...

1. An apparatus for user authentication based on proximity to a close network of a user, the apparatus comprising:
a memory;
a processor; and
computer-executable instructions stored in the memory, executable by the processor, and configured to cause the processor
to:

receive from a user, a request to execute a user action associated with an application, wherein execution of the user action
requires validation of one or more authentication credentials;

collect a set of data comprising information related to a physical location of the user;
determine a close network score associated with the user, comprising:
selecting at least one member of a close network of the user;
determining a proximity threshold associated with the at least one member and the user;
determining whether the at least one member is within the proximity threshold, comprising:
determining a location of the apparatus of the user by a GPS application running on the apparatus of the user and a location
of an apparatus associated with the at least one member by a GPS application running on the apparatus of the at least one
member;

calculating a distance between the determined location of the user apparatus and the at least one member apparatus;
comparing the calculated distance to the determined proximity threshold; and
based at least in part on the determination of whether the at least one member is within the proximity threshold, assigning
a close network score;

determine a level of authentication associated with the determined close network score;
determine which one or more authentication types from a plurality of authentication types are associated with the level of
authentication associated with the close network score;

request one or more authentication credentials corresponding to the determined one or more authentication types;
receive one or more authentication credentials from the user;
validate the one or more authentication credentials, thereby resulting in a successful validation of the one or more authentication
credentials; and

in response to the successful validation of the one or more authentication credentials, execute the user action.

US Pat. No. 9,201,665

OUTPUTTING PRESENTATION CODE UPDATED FOR A PARTICULAR USER IN RESPONSE TO RECEIVING A PAGE IDENTIFIER

Bank of America Corporati...

1. An electronic apparatus for outputting presentation code in response to receiving at least a page identifier of an application
code comprises content retrieved from at least one data storage system and formatted by a rendering engine, the apparatus
comprising:
an electronic processor;
a tangible computer-readable medium storing:
a mapping table comprising a plurality of page identifiers associated with the application;
a template file associated with the page identifier;
presentation rules associated with the page identifier; and
business rules associated with the page identifier; and
the tangible computer-readable medium further storing computer-executable instructions that when executed by the processor
cause the apparatus to perform steps comprising:

determining that the mapping table includes the page identifier;
invoking an interceptor associated with the page identifier;
retrieving a template file associated with the page identifier;
applying the presentation rules associated with the page identifier to update the template file for a particular user;
executing business rules associated with the page identifier to update the template file for a particular user;
retrieving content from at least one data storage system based on the updated template file and the business and presentation
rules;

generating presentation code using the updated template file and the retrieved content, where the presentation code is in
a desired format; and

sending the generated presentation code.

US Pat. No. 9,405,518

LEVERAGING LEGACY APPLICATIONS FOR USE WITH MODERN APPLICATIONS

Bank of America Corporati...

1. A method for translating computer code, comprising:
receiving a compiler output, wherein the compiler output comprises a first set of data structures that are associated with
a source code written in a first programming language;

analyzing the first set of data structures within the compiler output;
building an internal representation of the source code based on the compiler output, wherein building the internal representation
comprises mapping the first set of data structures to a second set of data structures associated with a second programming
language;

creating a source code template using the second set of data structures associated with the second programming language; and
transforming a plurality of source code of the first programming language into a plurality of comments in the source code
template of the second programming language;

wherein building an internal representation of the source code based on the compiler output comprises:
generating a list of the data structures within the first set of data structures within the compiler output;
mapping the first set of data structures within the compiler output to a plurality of classes and objects associated with
the second programming language;

assigning to the classes and object associated with the second programming language, a name that corresponds to the first
set of data structures contained in the compiler output.

US Pat. No. 9,384,514

ACTIVITY LIST FILTERS FOR A FINANCIAL AND SOCIAL MANAGEMENT SYSTEM

BANK OF AMERICA CORPORATI...

1. A system for filtering transactions within an integrated financial and social networking activity interface formed from
activities from a financial account and activity information captured from a social networking account, the system comprising:
one or more memory devices having computer readable program code store thereon; and
one or more processing devices operatively coupled to the one or more memory devices, wherein the one or more processing devices
are configured to execute the computer readable program code to:

receive an indication that a first user has participated in the activities, wherein the activities comprise participating
in transactions with entities for products using the financial account of the first user at a financial institution;

associate activity information with the activities, wherein the activity information is at least partially received from the
social networking account, and the activity information comprises at least a second user associated with one or more of the
activities;

display the activities and the associated activity information in the integrated financial and social networking activity
interface, wherein the activities have a location tag for a location associated with one or more of the activities, a user
tag for the second user associated with one or more of the activities, an entity tag for an entity associated with one or
more of the activities, and a category tag for a category associated with one or more of the activities;

receive an indication from the first user to filter the activities into filtered activities based on the location tag, the
user tag, the entity tag, or the category tag, wherein the indication to filter the activities is at least based on the category
tag; and

display the filtered activities and the associated activity information in a filtered activity interface within the integrated
financial and social networking activity interface, wherein the filtered activity interface is at least a category interface
comprising an image associated with the category, the activity list illustrating the filtered activities and the activity
information associated with the category, and an interactive map illustrating the location of the filtered activities associated
with the category.

US Pat. No. 9,306,930

SERVICE CHANNEL AUTHENTICATION PROCESSING HUB

Bank of America Corporati...

1. An apparatus comprising:
at least one memory device;
at least one processor coupled to the at least one memory device and configured to perform, based on instructions stored in
the at least one memory device:

receiving a service request over a first service channel from a user device, wherein the first service channel is one of a
plurality of service channels and wherein each of the plurality of service channels is uniquely specified by a device type
of the user device and a service type of the requested service;

initiating a first challenge message to the user device requesting initial authentication information based on a set of authenticators,
wherein a plurality of authenticators includes the set of authenticators;

in response to receiving the initial authentication information from the user device, determining an initial level of authentication,
wherein the initial level of authentication is one of a plurality of authentication levels;

when the initial level of authentication is not sufficient for the first service channel, generating a second challenge message
to the user device requesting a further authentication information based on at least one additional authenticator;

determining an achieved level of authentication based on the further authentication information; and
when the achieved level of authentication is at least as great as a first target authentication level for the first service
channel, continue processing the service request by the first service channel.

US Pat. No. 9,396,058

ENHANCED ERROR DETECTION WITH BEHAVIOR PROFILES

Bank of America Corporati...

1. A computer implemented method, comprising:
at a first time:
receiving, at a computing device, a plurality of user requests, wherein the first user requests include one or more parameters;
servicing the first user requests, wherein a least a portion of the first user requests generate errors when serviced; and
determining profiles for serviced first user requests, wherein the profiles are determined based on the parameters included
in the first user requests and for a plurality of groups of serviced first user requests, the serviced first user requests
being grouped based on parameters for each serviced first user request, and wherein the profiles include an error rate for
the groups of serviced first user requests;

at a second time:
receiving a second plurality of user requests, wherein the second user requests include one or more parameters;
servicing the second user requests, wherein a least a portion of the second user requests generate an error when serviced;
logging the serviced second user requests, wherein the logging includes the parameters included in the second user requests;
comparing the logged serviced second user requests to the profiles determined based on the serviced first user requests by
comparing an error rate for the logged service second user requests to an error rate for the determined profiles; and

flagging a portion of the serviced second user requests based on the comparison.

US Pat. No. 9,378,477

FRAMEWORK FOR INTERNAL QUALITY ANALYSIS

BANK OF AMERICA CORPORATI...

1. An apparatus for a quality analysis framework for assessing and controlling the quality of a project, the apparatus comprising:
at least one memory device;
at least one processing device operatively coupled to the at least one memory device; and
a module stored in the at least one memory device comprising executable instructions that when executed by the at least one
processing device cause the at least one processing device to:

receive electronic data associated with the project using a network of distributed servers, wherein the project comprises
one or more project phases, each of the one or more project phases comprises one or more deliverables and each of the one
or more deliverables comprises one or more sub-deliverables;

initiate presentation of a user interface for display on mobile devices of one or more users using a user application, the
user interface comprising information associated with the project;

wherein the project information comprises a phase level, a deliverable level and a deliverable level artifact, wherein the
phase level comprises information associated with one or more project phases, the deliverable level comprises information
associated with one or more deliverables and the deliverable level artifact comprises information associated with one or more
deliverables and information associated with one or more sub-deliverables;

initiate access to the project information from the mobile devices of the one or more users, wherein initiating access further
comprises:

receiving a first set of authentication credentials from a first user via the mobile device;
verifying the first set of authentication credentials;
enabling the first user to view the information presented on the user interface based on at least the verification of the
first set of authentication credentials;

receiving a second set of authentication credentials from the first user via the mobile device;
verifying the second set of authentication credentials; and
enabling the first user to modify the information presented on the user interface based on at least the verification of the
first set of authentication credentials and the second set of authentication credentials;

process the one or more deliverables, wherein processing the one or more deliverables comprises:
evaluating the one or more sub-deliverables associated with each of the one or more deliverables, wherein evaluating the one
or more sub-deliverables further comprises implementing a deliverable quality assurance program to evaluate the quality of
the one or more deliverables, wherein implementing the deliverable quality assurance program, for each deliverable of the
one or more deliverables, further comprises:

receiving a first score, wherein the first score comprises a first numerical value associated with a first level of quality,
wherein the first level of quality is associated with a sub-deliverable associated with the deliverable;

receiving a second score, wherein the second score comprises a second numerical value associated with a second level of quality,
wherein the second level of quality is associated with the sub-deliverable associated with the deliverable;

processing the first score and the second score to generate a third score, wherein the third score is a review score for the
sub-deliverable associated with the deliverable; and

receiving a weight corresponding to the sub-deliverable associated with the deliverable;
assigning a total quality score to each of the one or more deliverables using the deliverable quality assurance program based
on the review scores and the weights associated with the each of the one or more sub-deliverables; and

determining an overall score for each of the one or more project phases by combining the total quality scores of each of the
one or more deliverables;

compare the total quality score value of each of the one or more deliverables to a first threshold value and each of the overall
scores to a second threshold value;

determine if one or more deliverables require action in response to comparing each of the total quality score values to the
first threshold value;

determine if the one or more project phases require action in response to comparing each of the overall scores to the second
threshold value; and

transmit control signals configured to cause the mobile devices of the one or more users to receive a message based on at
least determining whether the one or more deliverables and/or the one or more project phases requires action.

US Pat. No. 9,407,660

MALICIOUS REQUEST ATTRIBUTION

Bank of America Corporati...

1. A method, comprising:
at a computing platform comprising at least one processor, a memory, and a communication interface:
receiving, via the communication interface and from a first computing device, a non-malicious request for account balance
data stored in the memory;

receiving, via the communication interface and from a second computing device, a malicious request for the account balance
data stored in the memory;

determining, by the at least one processor, that the non-malicious request is not of a malicious nature;
responsive to determining, by the at least one processor, that the non-malicious request is not of the malicious nature:
generating, by the at least one processor, a web page component comprising the account balance data; and
communicating, via the communication interface and to the first computing device, the web page component; and
determining, by the at least one processor, that the malicious request is of a malicious nature;
responsive to determining, by the at least one processor, that the malicious request is of the malicious nature:
generating, by the at least one processor, one or more requests configured to cause the second computing device to fail to
properly render at least a portion of a web page comprising the account balance data; and

communicating, via the communication interface and via at least one router, and to the second computing device, the one or
more requests and data configured to cause the second computing device to indicate a false balance different from an account
balance associated with the account balance data.

US Pat. No. 9,379,897

METHOD AND APPARATUS FOR PROVIDING AN INTERACTIVE HIERARCHICAL ENTITLEMENT MAP

Bank of America Corporati...

1. A method for providing a hierarchal client entitlement map, the method comprising:
querying a list of entitlements for a client;
displaying the list of entitlements for the client, said list comprising a list of signatories with entitlement authorization;
receiving, from the client, entitlement authorization for a new signatory;
adding the new signatory to the list of signatories;
linking the new signatory to one or more signature documents associated with the signatory's authorization;
receiving a modification to client information;
transmitting, only if the modification is input by the new signatory, the modification, independent of any human input, to
a System of Record; and

transforming, when received by the System of Record, the client information into updated client information reflecting the
modification.

US Pat. No. 9,299,069

GRANULAR, USER-ACCESSIBLE PAPER PAYMENT PROCESSING INDICATORS

Bank of America Corporati...

1. An article of manufacture comprising a non-transitory computer usable medium having computer readable program code embodied
therein, the code when executed by a processor causes a computer associated with a financial institution to electronically
notify an individual of a received correspondence item, and to provide payment status indication in response, at least in
part, to the received correspondence item, the computer readable program code in said article comprising:
computer readable program code for causing the computer to receive a paper correspondence item;
computer readable program code for causing the computer to derive a digital image from the correspondence item;
computer readable program code for causing the computer to identify, based on the derived digital image, whether the correspondence
item is classified as one of a deposit, a payment or a legal order processing document, and to identify, based on the derived
digital image of the correspondence item, the individual associated with the correspondence item;

computer readable program code for causing the computer to, in response to the classification of the correspondence item as
one of a deposit, a payment or a legal order processing document, route the correspondence item to a sub-entity of the financial
institution, said sub-entity being associated with a classification associated with the correspondence item; and

computer readable program code for causing the computer to use a real-time notification channel to notify the individual of
receipt of the correspondence item based, at least in part, on the identification of the individual and on a communication
protocol associated with the sub-entity;

computer readable program code for causing the computer to use the real-time notification channel to transmit to the individual
a payment status indicator, said payment status indicator selected from a group consisting of “timely received,” “timely paid”
and “amount paid;”

wherein the real-time notification channel is a system-set notification channel, and wherein the real-time notification channel
is selected in response to a determination of the channel corresponding to the greatest magnitude of receipt confirmations
received from the individual over a pre-determined number of previous receipt confirmations;

wherein, when the correspondence item is a payment, the status indicator “timely received” corresponds to a comparison of
a ledger cutoff time to the due date for the payment; and

computer readable code for causing the computer to notify, using an electronic communication channel, the sub-entity regarding
an identity of a drawing institution associated with the payment, the notifying being based, at least in part, on the communication
protocol associated with the sub-entity.

US Pat. No. 9,069,812

METHOD AND APPARATUS FOR ASSEMBLING A BUSINESS DOCUMENT

Bank of America Corporati...

1. A business document aggregation system comprising:
a plurality of spreadsheets,
wherein, at least one spreadsheet included in the plurality of spreadsheets is created by a first user using Microsoft Excel
software;

wherein the at least one spreadsheet is tagged with a category by the first user;
wherein the at least one spreadsheet comprises at least one asset located within the at least one spreadsheet, said at least
one asset comprising at least one of a chart, graph or other display of information created by the first user;

a memory configured to store execution instructions, the plurality of spreadsheets and the at least one asset; and
a processor coupled with the memory, the processor configured to execute the instructions, the instructions configured to
cause the processor to:

detect a creation, by a second user using Microsoft PowerPoint software, of a slide presentation tagged by the second user
with the same category as the at least one spreadsheet from the plurality of spreadsheets;

in response to the creation of the slide presentation, display an asset library to the second user, said asset library being
tagged with the same category as the at least one asset created by the first user, said asset library including the at least
one asset, said at least one asset being displayed in the asset library, based on metadata;

provide a platform within the Microsoft PowerPoint software for the inclusion of the at least one asset created by the first
user in the slide presentation created by the second user; and

update, utilizing ReprEsentational State Transfer (“REST”) protocol, the at least one asset included in the slide presentation
created by the second user:

after information associated with the spreadsheet created by the first user has been altered; and
after receiving an update request corresponding to the at least one spreadsheet by the second user.

US Pat. No. 9,280,437

DYNAMICALLY SCALABLE REAL-TIME SYSTEM MONITORING

Bank of America Corporati...

1. A system comprising:
at least one processor; and
at least one memory storing instructions that when executed by the at least one processor cause the system to:
for each server of a server platform comprising a plurality of servers executing different operating systems and a common
application:

identify, via a discovery service of the system, a performance-metric-collection agent running on the server and configured
to make one or more system calls specific to an operating system of the server to retrieve a plurality of performance metrics
associated with the common application;

communicate, for each performance metric of the plurality of performance metrics associated with the common application, via
the discovery service of the system, and to the performance-metric-collection agent running on the server, an interval specifying
a frequency at which the performance metric should be collected from the server by the performance-metric-collection agent
running on the server and an interval specifying a frequency at which the performance metric should be communicated by the
performance-metric-collection agent running on the server to a common message bus comprising a shared database running on
the plurality of servers executing the different operating systems and the common application, the shared database comprising
a plurality of persistent data repositories running on each of the plurality of servers; and

receive, for each performance metric of the plurality of performance metrics associated with the common application, via the
common message bus comprising the shared database running on the plurality of servers executing the different operating systems
and the common application, from the performance-metric-collection agent running on the server, and at the interval specifying
the frequency at which the performance metric should be communicated by the performance-metric-collection agent running on
the server to the common message bus comprising the shared database running on the plurality of servers executing the different
operating systems and the common application, the performance metric as collected by the performance-metric-collection agent
running on the server at the interval specifying the frequency at which the performance metric should be collected from the
server by the performance-metric-collection agent running on the server;

identify the plurality of performance metrics based on their association with the common application;
determine, based on the plurality of performance metrics associated with the common application and historical performance
metrics associated with the common application and stored in the shared database across a data fabric of the server platform
comprising the plurality of persistent data repositories and configured to share and synchronize the historical performance
metrics across the plurality of servers executing the different operating systems and the common application, that the plurality
of performance metrics associated with the common application indicate a growth rate exceeding a dynamic threshold associated
with the common application relative to the historical performance metrics associated with the common application and stored
in the shared database across the data fabric of the server platform comprising the plurality of persistent data repositories
and configured to share and synchronize the historical performance metrics across the plurality of servers executing the different
operating systems and the common application; and

responsive to determining that the plurality of performance metrics associated with the common application indicate the growth
rate exceeding the dynamic threshold associated with the common application relative to the historical performance metrics
associated with the common application and stored in the shared database across the data fabric of the server platform comprising
the plurality of persistent data repositories and configured to share and synchronize the historical performance metrics across
the plurality of servers executing the different operating systems and the common application:

generate an alert indicating that the plurality of performance metrics associated with the common application indicate the
growth rate exceeding the dynamic threshold associated with the common application relative to the historical performance
metrics associated with the common application and stored in the shared database across the data fabric of the server platform
comprising the plurality of persistent data repositories and configured to share and synchronize the historical performance
metrics across the plurality of servers executing the different operating systems and the common application; and

publish, to the common message bus comprising the shared database running on the plurality of servers executing the different
operating systems and the common application, for subsequent retrieval by a subscriber device associated with an administrator
of the common application and configured to periodically retrieve alerts associated with the common application from the common
message bus comprising the shared database running on the plurality of servers executing the different operating systems and
the common application, the alert indicating that the plurality of performance metrics associated with the common application
indicate the growth rate exceeding the dynamic threshold associated with the common application relative to the historical
performance metrics associated with the common application and stored in the shared database across the data fabric of the
server platform comprising the plurality of persistent data repositories and configured to share and synchronize the historical
performance metrics across the plurality of servers executing the different operating systems and the common application.

US Pat. No. 9,390,454

INTERACTIVE MAP FOR GROUPED ACTIVITIES WITHIN A FINANCIAL AND SOCIAL MANAGEMENT SYSTEM

BANK OF AMERICA CORPORATI...

1. A system providing an integrated financial and social networking activity interface having an interactive map and an activity
list illustrating transactions made by a user through a financial account and activity information associated with the transactions,
the system comprising:
one or more memory devices having computer readable program code store thereon; and
one or more processing devices operatively coupled to the one or more memory devices, wherein the one or more processing devices
are configured to execute the computer readable program code to:

receive an indication that a user has participated in a plurality of activities, wherein the plurality of activities at least
comprise participating in the transactions with one or more entities;

access one or more sources of information to determine the activity information associated with the plurality of activities
wherein the one or more sources of information at least comprise a social networking account of the user and the financial
account of the user;

determine the activity information associated with the plurality of activities from the one or more sources, wherein the activity
information comprises at least activity locations, activity times, one or more other users, categories, entities, and activity
images associated with the plurality of activities;

wherein determining the one or more other users comprises:
determining the one or more other users associated with the plurality of activities from the social networking account based
on users tagged in the social networking account at the activity locations or at the activity times of the plurality of activities;
and

associating the one or more other users with the plurality of activities;
wherein determining the activity images comprises:
determining the activity images from the social networking account based on image time periods corresponding to the activity
times for the plurality of activities, or based on image locations corresponding to the activity locations for the plurality
of activities; and

associating the activity images with the plurality of activities, wherein the activity images comprise at least a location
image and a user image;

generate the integrated financial and social networking activity interface, wherein the activity interface comprises:
the interactive map for the plurality of activities, wherein the interactive map comprises the plurality of activities, the
activity locations, the activity times, the one or more other users, the categories, the entities, and the activity images
for the plurality of activities; and

an activity list for the plurality of activities, wherein the activity list comprises the plurality of activities, the activity
images, a location tag for a location associated with one or more of the plurality of activities, a user tag for the one or
more other users associated with one or more of the plurality of activities, an entity tag for an entity associated with one
or more of the plurality of activities, and a category tag for a category associated with one or more of the plurality of
activities;

display the integrated financial and social networking activity interface to the user in a user computer system, wherein the
user may filter the plurality of activities in the interactive map and the activity list, by selecting at least one of the
location tag, the user tag, the entity tag, and the category tag.

US Pat. No. 9,390,242

DETERMINING USER AUTHENTICATION REQUIREMENTS BASED ON THE CURRENT LOCATION OF THE USER BEING WITHIN A PREDETERMINED AREA REQUIRING ALTERED AUTHENTICATION REQUIREMENTS

Bank of America Corporati...

1. An apparatus for determining authentication requirements for accessing a network service, the apparatus comprising:
a computing platform including a memory and a processor in communication with the memory;
an authentication requirements module stored in the memory, executable by the processor and configured to,
receive, from a mobile communication device, a request for a user to access a network service, accessible via an executable
application stored on the mobile communication device, that requires user authentication,

in response to receiving the request, determine a current physical location of the user and a time associated with the request,
determine that the current location of the user and the time within a predefined physical area during a designated time period
associated with the predefined physical area, wherein the predefined physical area has altered authentication requirements,
and wherein the altered authentication requirements provide for one of (1) increased or (2) decreased authentication requirements
in comparison to standard authentication requirements used to access the network service, and

identify the altered authentication requirements associated with the predefined physical area and the designated time period,
wherein the user is provided access to the network service in response to the user meeting the altered authentication requirements.

US Pat. No. 9,317,821

SYSTEM FOR ANALYZING DEVICE PERFORMANCE DATA

Bank of America Corporati...

1. A system for analyzing performance data associated with a mail processing device, comprising:
a hardware interface configured to receive, over a network, first data related to the operation of a mail processing device
at one of a plurality of mail processing sites, wherein each of the plurality of mail processing sites is associated with
a database accessible over the network;

a processor communicatively coupled to the interface and configured to:
store the first data in a database associated with the mail processing site that includes the mail processing device; and
calculate device performance data and operator performance data from the received first data, wherein the calculated device
and operator performance data includes:

an outsort rate representing a number of articles that were not successfully opened by the mail processing device per unit
time;

a reunite rate representing a number of articles that were not successfully extracted by the mail processing device per unit
time; and

a device idle time representing the amount of time between when an operator turns the mail processing device on and the time
the mail processing device begins processing articles, excluding the time it takes for the mail processing device to startup;

the interface further configured to receive, over the network, second data identifying filter criteria for the first data;
the processor further configured to:
filter the first data with the second data;
generate a report based on the filtered first data that includes the calculated outsort rate and the calculated reunite rate;
and

the interface further configured to communicate the report over the network.

US Pat. No. 9,407,704

VIRTUAL POSITION DISPLAY AND INDICATORS

Bank of America Corporati...

1. An apparatus, comprising:
at least one processor; and
a memory storing computer-readable instructions that, when executed by the at least one processor, cause the apparatus to:
receive data identifying a plurality of users and a location within a building of each user of the plurality of users;
generate a virtual position display including a plurality of user indicators and displaying the location of each user of the
plurality of users, each user indicator of the plurality of user indicators being associated with a user of the plurality
of users;

communicate the virtual position display including the plurality of user indicators to the plurality of users including at
least a first user and a second user, the plurality of user indicators including at least a first user indicator associated
with the first user and a second user indicator associated with the second user;

determine, whether a proximity between the first user indicator and the second user indicator on the virtual position display
is at or within a predetermined first threshold distance;

responsive to determining that the proximity is at or within the predetermined first threshold distance, provide, on the virtual
position display, an indication of a first availability of one of the first user and the second user;

responsive to determining that the proximity is not at or within the predetermined first threshold distance, determine whether
a proximity between the first user indicator and the second user indicator on the virtual position display is at or within
a predetermined second threshold distance different from the first threshold distance;

responsive to determining that the proximity is at or within the predetermined second threshold distance, provide, on the
virtual position display, an indication of a second availability of one of the first user and the second user, the second
availability being different from the first availability;

responsive to determining that the proximity is not at or within the predetermined first threshold distance or the predetermined
second threshold distance, provide, on the virtual position display, an indication of a third availability of one of the first
user and the second user, the third availability being different from the first availability and the second availability,

wherein a position of one or more of the plurality of user indicators may be adjusted to adjust the identified first availability;
receive, from a motion sensing device in a location of the first user, motion information indicating a level of activity of
the first user;

receive, from a camera associated with the first user, image information indicating the level of activity of the first user;
receive, from a noise sensing device, audio information indicating the level of activity of the first user, the audio information
including an audio signal;

determine whether a conflict exists between the motion information, image information, and audio information;
responsive to determining that the conflict exists, prioritize one of the motion information, image information, and audio
information based on a predetermined priority; and

provide, to the plurality of users including the second user via the virtual position display, an indication of the level
of activity of the first user based on the predetermined priority of the motion information, image information and audio information.

US Pat. No. 9,305,149

SORTING MOBILE BANKING FUNCTIONS INTO AUTHENTICATION BUCKETS

Bank of America Corporati...

1. A mobile device for sorting mobile banking application functions into authentication buckets, the mobile device comprising:
a memory;
a processor; and
a module stored in the memory, executable by the processor, and configured to:
determine, for each of a plurality of mobile banking application functions, a corresponding one of a plurality of authentication
buckets;

wherein each of the plurality of authentication buckets corresponds with one of a plurality of levels of authentication, which
together comprise a continuum of authentication;

receive a request, from a user, to access one of the plurality of mobile banking application functions of a mobile banking
application running on the mobile device;

access the plurality of authentication buckets to determine which of the authentication buckets corresponds with the requested
function;

determine the level of authentication associated with the determined authentication bucket;
determine which one or more authentication types from a plurality of authentication types are associated with the level of
authentication associated with the determined authentication bucket;

determine that the mobile device has recently performed an authenticated transaction;
determine that a location of the mobile device is within a certain geography;
based on the recently performed authenticated transaction and the location of the mobile device, change the authentication
bucket that corresponds with the requested function so that a lower level of authentication is required;

determine which second one or more authentication types from the plurality of authentication types are associated with the
lower level of authentication;

request, from the user by the mobile device, one or more authentication credentials corresponding to the determined second
one or more authentication types;

receive one or more authentication credentials from the user;
validate the one or more authentication credentials, thereby resulting in a successful validation of the one or more authentication
credentials; and

in response to the successful validation of the one or more authentication credentials, enable access to the function requested
by the user.

US Pat. No. 9,373,120

REVERSE COUPONING

BANK OF AMERICA CORPORATI...

1. An apparatus for reverse couponing, the apparatus comprising:
at least one memory comprising a volatile memory and a non-volatile memory, wherein the volatile memory and the non-volatile
memory are independent of each other;

at least one processor; and
a first module stored in the non-volatile memory, executable by the at least one processor, and configured to cause the at
least one processor to:

electronically receive a first input information associated with a user, wherein the first input information comprises user
information associated with a user logged into an online banking website, the user information comprising account information
associated with the user's financial institution account and personal information associated with the user;

store the first input information in a queue associated with the volatile memory until a second input information is received,
wherein queuing further comprises reorganizing the first input information into the volatile memory;

receive second input information associated with the user, wherein the second input information comprises social network information
associated with the user;

store the second input information in the queue associated with the volatile memory, wherein queuing the second input information
further comprises reorganizing the second input information into the volatile memory; and

determine a user profile based on at least the first input information and the second input information stored in the queue
associated with the volatile memory;

a second module stored in the non-volatile memory, executable by the at least one processor, and configured to cause the at
least one processor to:

determine offer information associated with an offer based on at least the user profile determined using the first input information
and the second input information stored in the queue associated with the volatile memory, the offer being associated with
a variable discount or a rebate;

adjust the offer information associated with the offer based on the user information and the account information, wherein
the offer enables the user to receive at least one of a discount or a rebate on a purchase from a merchant associated with
a financial institution, wherein adjusting the offer information comprises increasing the discount or the rebate, wherein
adjusting further comprises:

determining that the user is not excluded from receiving at least one offer based on at least a first user exclusion rule;
and

determining that the offer from the merchant associated with a predetermined category code is not excluded from being presented
to the user based on at least a first merchant exclusion rule;

wherein the first user exclusion rule and the first merchant exclusion rule are applied before the purchase is executed by
the user;

establish a communication link with a mobile device of the user, wherein establishing further comprises creating a wireless
data channel with the mobile device of the user;

transmit, via the established communication link, the offer to the user for display on the mobile device of the user; and
determine that the user has executed the purchase with the merchant, wherein determining further comprises:
determining that the user is excluded from receiving the offer for the purchase based on at least a second user exclusion
rule; and

determining that the offer from the merchant is excluded from being presented to the user based on at least a second merchant
exclusion rule;

wherein the second user exclusion rule and the second merchant exclusion rule are applied after the purchase is executed by
the user and before the purchase is settled at a predetermined future settlement date; and

apply the at least one offer to the purchase executed by the user at the predetermined future settlement date based on at
least determining that the user and the offer from the merchant are not excluded at the time of the execution of the purchase
and are excluded at the predetermined future settlement date.

US Pat. No. 9,111,269

TRANSACTION DEVICE AND PROCESSING SYSTEM

Bank of America Corporati...

1. A transaction processing system for selecting an account for a transaction between a customer accessing a transaction device
comprising a point of sale interface and a merchant having a point of sale receiver, the system comprising:
an account selection engine that:
receives information identifying a merchant name, a merchant category, a product name, a product category, and an amount of
a proposed transaction;

identifies a plurality of accounts associated with the customer;
determines an account status of the plurality of accounts;
determines account selection criteria of the plurality of accounts;
determines a plurality of selection rules associated with the customer, the account status, and the account selection criteria,
wherein each selection rule is associated with a prioritization category and the plurality of selection rules comprises at
least one selection rule associated with a mandatory rule category, at least one selection rule associated with a preferential
rule category, and at least one selection rule associated with an optimal rule category;

prioritizes the plurality of selection rules from the mandatory rule category, the preferential rule category, and the optimal
rule category based on a monetary amount classification of the customer; and

selects a first account from among the plurality of accounts based on the at least one characteristic merchant name, the merchant
category, the product name, the product category, and the amount of the proposed transaction, the account status, the account
selection criteria, and the prioritization of the plurality of selection rules; and

a communication link that transmits identification of the first account to the point of sale interface of the transaction
device, the point of sale interface transmits a transaction request to the point of sale receiver associated with the merchant,
the transaction request comprising an account number associated with the first account.

US Pat. No. 9,082,150

APPARATUS AND METHOD FOR MANAGEMENT OF ELECTRONIC NOTICES

Bank of America Corporati...

1. An apparatus comprising:
a memory operable to store user preferences associated with a user; and
a processor communicatively coupled to the memory, the processor operable to:
present, in a first region of a display, information associated with a first service based at least in part upon the user
preferences;

present, in a second region of the display, information associated with a second service based at least in part upon the user
preferences;

present, in a third region of the display, information associated with a third service based at least in part upon the user
preferences;

present, in a fourth region of the display, information associated with a fourth service based at least in part upon the user
preferences;

receive an update to the information associated with the first service;
present, in the first region of the display, the update to the information associated with the first service, wherein not
all of the information associated with the first service is visible in the first region of the display due to space constraints
and at least one unread event is not visible in the first region;

detect a first touch on the first region of the display indicating a selection of the first service;
in response to scrolling by the user, determine that each one of the at least one unread events in the first region have been
presented to the user; and

when each of the at least one unread events have been displayed in the first region of the display, merge the first region
and the second region of the display together visually to enable the user to scroll the first region in conjunction with the
second region as a single list.

US Pat. No. 9,443,241

DYNAMIC CARD VALIDATION USING PERIODICALLY COMMUNICATED CELL IDENTIFIERS

Bank of America Corporati...

1. A card validation system, comprising:
one or more processors operable to determine a first set of cell identifiers of a card validation matrix to associate with
a first merchant and a user; and

an interface communicatively coupled to the processors and operable to:
transmit a first set of cell identifiers of a card validation matrix to a first merchant;
receive a first request to validate a card;
receive, from the first merchant, a first set of received cell values corresponding to the first set of cell identifiers;
and

wherein the one or more processors are further operable to:
determine a first set of stored cell values corresponding to the first set of cell identifiers;
compare the first set of received cell values to the first set of stored cell values; and
based at least in part upon the comparison, determine whether the card is validated.

US Pat. No. 9,407,633

SYSTEM AND METHOD FOR CROSS-CHANNEL AUTHENTICATION

Bank of America Corporati...

1. An authentication system comprising:
a memory operable to:
store a user account identifier associated with a user account, wherein the user account is associated with an enterprise;
and

a processor communicatively coupled to the memory, the memory including executable instructions that upon execution cause
the system to:

receive at least one user credential;
authenticate the user account based at least in part on the at least one user credential;
receive a first request after authenticating the user account, from a mobile device associated with the user account, to generate
a one-time password;

generate the one-time password in response to receiving the first request;
associate the one-time password to the user account;
communicate the one-time password to the mobile device associated with the user account;
receive a second request, from a transaction device associated with the enterprise, the second request comprising an attempted
one-time password, wherein the transaction device is an automated teller machine (ATM);

determine whether the attempted one-time password is valid; and
communicate, to the transaction device, an indication that the attempted one-time password is valid in response to determining
that the attempted one-time password is valid;

wherein the first request comprises information associated with the transaction device and the second request further comprises
a mobile device identifier; and

wherein determining whether the attempted one-time password is valid comprises:
determining whether the mobile device identifier is associated with the user account; and
determining whether the attempted one-time password matches the one-time password associated with the user account.

US Pat. No. 9,286,394

DETERMINING A QUALITY SCORE FOR INTERNAL QUALITY ANALYSIS

BANK OF AMERICA CORPORATI...

1. An apparatus for internal quality analysis, for assessing and controlling the quality of a project, the apparatus comprising:
at least one memory device;
at least one processing device operatively coupled to the at least one memory device; and
a module stored in the at least one memory device comprising executable instructions that when executed by the at least one
processing device cause the at least one processing device to:

receive electronic data associated with the project using a network of distributed servers, wherein the project comprises
one or more project phases, each of the one or more project phases comprises one or more deliverables and each of the one
or more deliverables comprises one or more sub-deliverables;

initiate presentation of a user interface for display on electronic devices of one or more users using a user application,
the user interface comprising information associated with the project; wherein the project information comprises a phase level,
a deliverable level and a deliverable level artifact, wherein the phase level comprises information associated with one or
more project phases, the deliverable level comprises information associated with one or more deliverables and the deliverable
level artifact comprises information associated with one or more deliverables and information associated with one or more
sub-deliverables;

initiate access to the project information from the electronic devices of the one or more users, wherein initiating access
further comprises:

receiving a first set of authentication credentials from a first user via the electronic device;
verifying the first set of authentication credentials; and
enabling the first user to view and/or modify the information presented on the user interface based on at least the verification
of the first set of authentication credentials;

implement a deliverable quality assurance program to evaluate the quality of each of the one or more deliverables, wherein
the deliverable quality assurance program comprises a checklist for each of the one or more deliverables, wherein the checklist
comprises a scoring criteria and a comment for each of the one or more sub-deliverables associated with a deliverable, wherein
implementing the deliverable quality assurance program, based on the scoring criteria for each of the one or more sub-deliverables
associated with the deliverable, further comprises:

receiving a first score, wherein the first score comprises a first numerical value associated with a first level of quality,
wherein the first level of quality is associated with a sub-deliverable associated with the deliverable;

receiving a second score, wherein the second score comprises a second numerical value associated with a second level of quality,
wherein the second level of quality is associated with the sub-deliverable associated with the deliverable;

processing the first score and the second score to generate a third score, wherein the third score is a review score for the
sub-deliverable associated with the deliverable; and

receiving a weight corresponding the sub-deliverable associated with the deliverable;
calculate the total quality score for each of the one or more deliverables based on at least the review scores and the weights
associated with each of the one or more sub-deliverables;

compare the total quality score of each of the one or more deliverables to a first threshold value;
determine if one or more deliverables require action in response to comparing each of the total quality scores to the first
threshold value; and

transmit control commands configured to cause the electronic devices of the one or more users to receive a message based on
at least determining whether the one or more deliverables requires action.

US Pat. No. 9,171,296

MOBILE CHECK GENERATOR

Bank of America Corporati...

1. A mobile device for generating a virtual check using a digital wallet module running on the mobile device of a user, whereby
the virtual check is used to perform a transaction with a merchant, the mobile device comprising:
a computer apparatus including a processor and a memory; and
a digital wallet module stored in the memory, comprising executable instructions that when executed by the processor cause
the processor to:

receive a request, from the user, to perform a transaction with a merchant;
generate a virtual check comprising a checking account number, a bank routing number, and a date;
initiate display of the virtual check on a display of the mobile device;
receive input from the user corresponding to at least one of a plurality of check fields;
populate the virtual check based on the received input; and
receive information indicating that the populated virtual check has been scanned by the merchant, thereby completing the transaction.

US Pat. No. 9,396,730

CUSTOMER IDENTIFICATION THROUGH VOICE BIOMETRICS

Bank of America Corporati...

1. A method for determining an identity of an individual comprising:
receiving audio that includes a key phrase spoken by the individual and the key phrase includes an identifier spoken by the
individual;

obtaining a key phrase voice print corresponding to the audio;
obtaining key phrase text corresponding to the audio wherein the key phrase text includes text corresponding to the identifier
spoken by the individual;

retrieving a set of voice prints based on the text corresponding to the identifier;
determining that a total number of voice prints in the set of voice prints exceeds a predetermined size threshold;
selecting at least one of the voice prints in the set of voice prints to exclude from comparison to the key phrase voice print;
and

providing the key phrase voice print and one or more voice prints in the set of voice prints, other than the at least one
voice print selected for exclusion, to a voice biometric engine for comparison.

US Pat. No. 9,391,955

FIREWALL POLICY CONVERTER

Bank of America Corporati...

1. A method, comprising:
identifying a plurality of firewall policies in a network, each identified firewall policy of the plurality of firewall policies
having an original firewall configuration format, identifying the plurality of firewall policies including reading stored
data associated with the firewall policies in a unified configuration format different from the original firewall configuration
format of each firewall policy;

populating a firewall policy menu with the identified plurality of firewall policies and associated original firewall configuration
formats;

receiving a first firewall policy in a first original firewall configuration format;
converting the first firewall policy into the unified configuration format;
receiving a command to convert the first firewall policy from the unified configuration format into a first target configuration
format;

in response to receiving the command, converting the first firewall policy from the unified configuration format into the
first target configuration format, the converting further including:

receiving a selection, from the firewall policy menu, of the first firewall policy;
receiving a selection, from a target firewall configuration format menu listing the plurality of original firewall configuration
formats associated with each firewall policy of the plurality of firewall policies, of the first target configuration format;

converting the selected first firewall policy from the unified format to the first target configuration format; and
outputting the first firewall policy in the first target configuration format.

US Pat. No. 9,384,454

ENTERPRISE COMPONENTIZED WORKFLOW APPLICATION

Bank of America Corporati...

1. A system for providing a business application platform, the system comprising:
a plurality of components, each component comprising a processor and a memory, wherein the processor is configured to process
a set of business processes and each business process is executed with a set of pre-injected task instructions, wherein each
component is a self-contained modular logical application node capable of independent deployment and execution, and wherein
each of the plurality of components has an equal initial capability of processing power, memory capacity, and ability to implement
rules or actions;

a plurality of communication conduits linking the plurality of components, the plurality of components and communication conduits
defining a component tier;

a rules archive comprising responsibility rules and capability rules;
a management console, used to configure an injection to the component tier with responsibility rules and capability rules
to perform one or more external requests;

a determining module stored in the memory, comprising computer executable instructions that when executed by the processor
cause the processor to:

receive an external request;
determine, based on the external request, a need for a specialized component at a location of a first component of the plurality
of components in the system, wherein the specialized component includes a specialized capability comprising an adjustment
to the initial capability of the first component to meet the need;

determine an additional capability, wherein the additional capability comprises a difference between the required specialized
capability and the initial capability of the first component, and wherein the additional capability comprises an addition
to the processing power, the memory capacity, or the ability to implement rules or actions for the first component;

receive, from a user device associated with a user, the additional capability; and
inject the additional capability dynamically into the first component in the system using the management console, whereby
injecting the additional capability dynamically into the first component creates the specialized component without requiring
an inclusion of an additional component into the system.

US Pat. No. 9,380,041

IDENTIFICATION, VERIFICATION, AND AUTHENTICATION SCORING

Bank of America Corporati...

1. A computer-implemented method of responding to a communication from an individual comprising:
storing a set of identification rules comprising, for each of a plurality of identification information types, an identification
rule that indicates a weight for that identification information type;

storing a set of verification rules comprising, for each of a plurality of communication source types, a verification rule
that indicates a weight for that communication type;

receiving a communication from an individual requesting access to protected information;
obtaining an identification score for the communication based on one or more identification information items, wherein the
identification score indicates a likelihood that a claimed identity of the individual is an actual identity of the individual
and wherein obtaining the identification score comprises weighting each identification information item of the one or more
identification items according to the weight indicated in the identification rule for an identification information type of
that identification information item;

obtaining a verification score for the communication and weighting the verification score according to the weight indicated
in the verification rule for a communication type of that communication, wherein the verification score indicates a likelihood
that a purported source of the communication is an actual source of the communication;

obtaining an authentication score for the communication wherein the authentication score indicates a likelihood that the individual
has been authenticated;

generating an overall score for the communication by aggregating the identification score, the verification score, and the
authentication score; and

determining whether to grant or deny the individual access to the protected information based on the overall score.

US Pat. No. 9,275,418

PROVIDING E-RECEIPTS TO CUSTOMERS

Bank of America Corporati...

1. A financial institution system for providing e-receipts to customers, the system comprising:
a computer apparatus including a processor and a memory; and
a software module stored in the memory, comprising executable instructions that when executed by the processor cause the processor
to:

receive authorization from a customer for the customer to be enrolled in a point of transaction e-receipt communication program;
receive transaction data corresponding to at least one transaction performed by the customer at a point of transaction of
a merchant;

initiate communication, to the customer, of an e-receipt based at least in part on the received transaction data;
access a cooperating merchant list comprising information corresponding to a plurality of merchants cooperating with a financial
institution implementing the point of transaction e-receipt communication program; and

for each of the plurality of cooperating merchants, request authorization from the customer for transaction data associated
with any transactions performed by the customer at the cooperating merchant to be communicated to the financial institution
for the purpose of providing e-receipts to the customer.

US Pat. No. 9,058,488

MALWARE DETECTION AND COMPUTER MONITORING METHODS

Bank of America Corporati...

1. A computer-implemented method comprising:
installing, using a computer processor, at least one benign malware indicator on one or more computing devices, wherein the
at least one benign malware indicator is an installed malware program;

configuring, using the computer processor, an antivirus program used to protect the one or more computing devices to prevent
one or more undesired effects attributable to the installed malware program;

monitoring, using the computer processor, the one or more computing devices for the at least one benign malware indicator,
and

responsive to determining that the at least one benign malware indicator is no longer detected as present on at least one
of the one or more computing devices, sending, using the computer processor, a notification indicating that the at least one
benign malware indicator is no longer detected as present on the at least one of the one or more computing devices.

US Pat. No. 9,176,728

GLOBAL SOFTWARE DEPLOYMENT/REMEDIATION MANAGEMENT AND ASSOCIATED ANALYTICS

Bank of America Corporati...

1. An apparatus for globally managing computing network infrastructure remediation, the apparatus comprising:
a computing platform including a memory and at least one processor in communication with the memory; and
an infrastructure remediation module stored in the memory, executable by the processor and configured to:
receive, from a plurality of data sources, data associated with deploying software updates on a plurality of globally distributed
computing servers in a networked infrastructure;

based on an indication that an updated version of a software application requires deployment, determine from the data (a)
which of the plurality of computing servers implement the software application, (b) a current version of the software application
being executed on each of the computing servers that implement the software application, and (c) based on the current version,
which of the plurality of computing servers that implement the software application meet a version pre-requisite for installing
the updated version;

determine, for each of the computing servers meeting the version pre-requisite, one or more recommended optimal dates and
times for deploying the updated version of the determined software application to the computing servers requiring the update
version;

generate and initiate communication of software update deployment notifications to each entity controlling each of the computing
servers meeting the version pre-requisite, wherein the notifications include the one or more recommended optimal dates and
times for deploying the updated version;

in response to communicating the notifications, receive a scheduling input from each of the entities that confirms or selects
one of the recommended optimal dates and times for deploying the updated version; and

deploy the updated version of the software application to each of the computing servers meeting the version pre-requisite
in accordance with the scheduling inputs.

US Pat. No. 9,251,672

STACKING PURGE-BIN

Bank of America Corporati...

1. A retraction system for an automated teller machine (“ATM”), the system comprising:
a separator storage-bin holding a separator;
a printer configured to print information on the separator;
a feeder network configured to:
transfer the separator from the separator storage-bin to the printer; and
position the separator adjacent to a plurality of bills;
a dispenser configured to:
present the plurality of bills to a customer; and
retract the plurality of bills after an expiration of a time period; and
a purge-bin configured to receive the plurality of bills after the retracting;wherein the feeder network is configured to position the plurality of bills and the separator in the purge-bin; andwherein the purge-bin comprises a floor, the floor configured to rotate about an axis.

US Pat. No. 9,185,128

MALWARE ANALYSIS METHODS AND SYSTEMS

Bank of America Corporati...

1. A method comprising:
initializing, by an administrative computing device, a virtual machine;
installing, by the administrative computing device, a first malware sample onto the virtual machine;
analyzing, by the administrative computing device, the behavior of the first malware sample on the virtual machine;
causing, by the administrative computing device, a physical computing device to be booted from a secondary boot source different
from a primary boot source, the primary boot source being a hard disk on the physical computing device;

installing, by the administrative computing device, the first malware sample onto the physical computing device;
analyzing, by the administrative computing device, the behavior of the first malware sample on the physical computing device;
determining, by the administrative computing device, based on the analyzing, whether the behavior of the first malware sample
on the virtual machine was different from the behavior of the first malware sample on the physical computing device:

wherein the determining comprises one or more of:
comparing files that were accessed or were subject to an access attempt on the virtual machine to files that were accessed
or were subject to an access attempt on the physical computing device;

comparing data written on the virtual machine to data written on the physical computing device;
comparing modifications made to files on the virtual machine to modifications made to files on the physical computing device;
comparing operating system application programming interface commands invoked on the virtual machine to operating system application
programming interface commands invoked on the physical computing device; and

comparing network data sent or received on the virtual machine to network data sent or received on the physical computing
device;

responsive to determining that the behavior of the first malware sample on the virtual machine was different from the behavior
of the first malware sample on the physical computing device, generating, by the administrative computing device, a notification
indicating the first malware sample behaved differently;

restarting, by the administrative computing device, the virtual machine such that it is ready for subsequent malware analysis;
causing, by the administrative computing device, the physical computing device to be rebooted using an IP-enabled power strip,
wherein the physical computing device is configured to be rebooted from the secondary boot source such that it is ready for
subsequent malware analysis;

installing, by the administrative computing device, at least a second malware sample onto the physical computing device and
the virtual machine;

analyzing, by the administrative computing device, the behavior of the at least a second malware sample on the virtual machine;
analyzing, by the administrative computing device, the behavior of the at least a second malware sample on the physical computing
device;

determining, by the administrative computing device, based on the analyzing, whether the behavior of the at least a second
malware sample on the virtual machine was different from the behavior of the at least a second malware sample on the physical
computing device; and

responsive to determining that the behavior of the at least a second malware sample on the virtual machine was different from
the behavior of the at least a second malware sample on the physical computing device, generating, by the administrative computing
device, a notification indicating the at least a second malware sample behaved differently.

US Pat. No. 9,070,125

MODE SWITCHING TO PROVIDE SECURITY FOR CASH HANDLING DEVICE

Bank of America Corporati...

1. A cash handling device comprising:
a processor;
a scanning unit configured to scan currency that is inserted into the cash handling device;
one or more stackers configured to store and organize currency based on denomination;
a communication interface; and
memory storing machine executable instructions that, when executed by the processor, cause the cash handling device to:
receive a first selection that indicates a request for an exchange transaction;
enable inserted currency to be inserted into the cash handling device by a user of the cash handling device;
determine whether a second selection is received that indicates at least one denomination;
switch from the exchange transaction to a deposit transaction if the at least one denomination is not selected within a pre-determined
period of time, wherein:

the exchange transaction and the deposit transaction are separate transactions that are conditionally performed by the cash
handling device for the inserted currency during a single transaction occurrence;

the exchange transaction causes the cash handling device to exchange returned currency having the at least one denomination
for the inserted currency; and

the deposit transaction causes the cash handling device to credit an account for the inserted currency; and
perform only one of the exchange transaction and the deposit transaction for the inserted currency,
wherein performing only of the exchange transaction and the deposit transaction for the inserted currency includes:
performing the exchange transaction if the at least one denomination is selected within the pre-determined period of time;
and

performing the deposit transaction if the at least one denomination is not selected within the pre-determined period of time,
wherein performing the deposit transaction includes transmitting, via the communication interface, deposit information associated
with the inserted currency to a financial institution for immediate, real-time recognition, and

wherein the deposit information associated with the inserted currency that is transmitted to the financial institution for
immediate, real-time recognition is configured to cause the financial institution to apply a non-provisional credit that is
not conditioned on the inserted currency being transported from a client site where the cash handling device is located to
the financial institution, the non-provisional credit being applied to a client account associated with the cash handling
device.

US Pat. No. 9,384,477

ATM CUSTOMER DEFINED USER INTERFACE FOR SECURITY PURPOSES

BANK OF AMERICA CORPORATI...

1. A system for displaying a custom interface associated with a customer on a screen of an automated teller machine (ATM),
the system comprising a non-transitory storage device;
a communication device;
a processing device operatively coupled to the storage device and the communication device;
at least one module stored in said storage device and comprising instruction code that is executable by at least one processor
and configured to cause said at least one processor to:

present, to the customer, an option to create a customization for displaying on the screen of the ATM when the customer initiates
a session with the ATM, wherein the customization is associated with a function to perform a financial transaction when the
customer interacts with the customization on the screen of the ATM;

communicate, to the customer, a suggested customization based in part on a financial transaction history of the customer;
receive the customization;
receive a request to display the customization on the screen of the ATM based on the customer initiating the session with
the ATM;

communicate the customization to display on the screen of the ATM based on receiving the request to display the customization;
receive a request to perform the financial transaction based on the customer interacting with the customization on the screen
of the ATM; and

perform the financial transaction based on receiving the request to perform the financial transaction.

US Pat. No. 9,471,759

ENABLING DEVICE FUNCTIONALITY BASED ON INDOOR POSITIONING SYSTEM DETECTION OF PHYSICAL CUSTOMER PRESENCE

Bank of America Corporati...

1. A method, comprising:
at a computing platform comprising at least one processor, a memory, and a communication interface:
receiving, via the communication interface and from an indoor positioning system located at a physical banking center location
of a financial institution, a plurality of messages comprising data indicating physical presence of customers of the financial
institution at the physical banking center location of the financial institution;

responsive to receiving the plurality of messages comprising the data indicating the physical presence of the customers of
the financial institution at the physical banking center location of the financial institution, determining, by the at least
one processor, that one or more customers of the customers of the financial institution at the physical banking center location
of the financial institution are authorized to utilize one or more functions of one or more computing devices physically located
at the physical banking center location of the financial institution; and

communicating via the communication interface to one or more personal computing devices in possession of the one or more customers
of the financial institution at the physical banking center location of the financial institution, displaying on the one or
more personal computing devices that of the one or more computing devices physically located at the physical banking center
location of the financial institution that the one or more customers is authorized to use, and the identity of the one or
more functions of the one or more the financial institution that the one or more customers is authorized to use.

US Pat. No. 9,324,114

INTERACTIVE MAP FOR GROUPED ACTIVITIES WITHIN A FINANCIAL AND SOCIAL MANAGEMENT SYSTEM

BANK OF AMERICA CORPORATI...

1. A system providing an interactive map illustrating transactions made by a user through a financial account and activity
information associated with the transactions, the system comprising:
one or more memory devices having computer readable program code store thereon; and
one or more processing devices operatively coupled to the one or more memory devices, wherein the one or more processing devices
are configured to execute the computer readable program code to:

receive an indication that a user has participated in a plurality of activities, wherein the plurality of activities at least
comprises participating in the transactions with one or more entities;

access one or more sources of information to determine activity information associated with the plurality of activities wherein
the one or more sources of information at least comprises a social networking account of the user and the financial account
of the user;

determine the activity information associated with the plurality of activities from the one or more sources, wherein the activity
information comprises at least activity locations, activity times, one or more other users, categories, entities, and activity
images for the plurality of activities,

wherein determining the one or more other users comprises:
determining the one or more other users associated with the plurality of activities from the social networking account based
on users tagged in the social networking account at the activity locations or at the activity times of the plurality of activities;
and

associate the one or more other users with the plurality of activities;
wherein determining the images comprises:
determining the activity images from the social networking account based on image time periods corresponding the activity
times for the plurality of activities, or based on image locations corresponding to the activity locations for the plurality
of activities; and

associating the activity images with the plurality of activities, wherein the activity images comprise at least a location
image and a user image;

generate an activity interface, wherein the activity interface comprises:
the interactive map for the plurality of activities, wherein the interactive map comprises the plurality of activities, the
activity locations, the activity times, the one or more other users, the categories, the entities, and the activity images
for the plurality of activities; and

an activity list for the plurality of activities, wherein the activity list comprises the plurality of activities, the associated
images, a location tag for a location associated with one or more of the plurality of activities, a user tag for the one or
more other users associated with one or more of the plurality of activities, an entity tag for an entity associated with one
or more of the plurality of activities, and a category tag for a category associated with one or more of the plurality of
activities;

display the activity interface to the user in a user computer system, wherein the user may filter the plurality of activities
in the interactive map and activity list, by selecting at least one of the location tag, the user tag, the entity tag, and
the category tag.

US Pat. No. 10,021,672

RESOURCE ALLOCATION BASED ON AVAILABLE RESOURCES VIA INTERACTIVE INTERFACE

BANK OF AMERICA CORPORATI...

1. A system for resource allocation based on available resources, whereby the system provides a comprehensive integrated platform for optimal allocation of resources via an interactive resource allocation interface in real-time, the system comprising:a memory device with computer-readable program code stored thereon;
a communication device;
a processing device operatively coupled to the memory device and the communication device, wherein the processing device is configured to execute the computer-readable program code to:
establish an operative communication link with a mobile device associated with a user and provide a user resource application on the mobile device;
determine user resources associated with the user, wherein determining the user resources comprises analyzing mobile device data associated with the user, wherein determining user resources further comprises:
analyzing contents of an electronic mail associated with the user;
identifying an attachment of the electronic mail, the attachment comprising an image of a check;
analyzing the image of the check, wherein analyzing the image of the check comprises converting the attachment to a predetermined structured format; and
determining at least one of the user resources based on analyzing the image of the check;
receive authorization credentials from the user to access the user resources;
extract, for each of the user resources, resource data from a source of the user resource, wherein the resource data comprises real-time resource level, resource transfer history, resource transfer schedules and user goals for the user resource;
transform the extracted resource data into a textual format encrypted for use only on an interactive resource tracking and allocation interface of the user resource application;
transmit control instructions to the mobile device that cause the user resource application to present the interactive resource allocation interface on a display of the mobile device, wherein the interactive resource interface is configured to receive user input comprising one or more physical gestures;
identify at least one first trigger event comprising a first physical gesture of the one or more physical gestures from the user;
determine one or more gesture attributes associated with the first physical gesture, wherein each gesture attribute of the one or more gesture attributes is associated with at least one user resource of the user resources;
determine a first user resource of the user resources that is associated with the one or more gesture attributes, wherein the first user resource comprises a first resource level;
determine a second user resource of the user resources that is associated with the one or more gesture attributes, wherein the second user resource comprises a second resource level; and
initiate, automatically and in real-time, a resource transfer from the first user resource to the second resource such that a first resource transfer value of the first user resource is transferred to the second user resource based on the first physical gesture, wherein the resource transfer causes a decrease in the first resource level and an increase in the second resource level.

US Pat. No. 9,477,953

ATM CUSTOMER DEFINED USER INTERFACE FOR SECURITY PURPOSES

BANK OF AMERICA CORPORATI...

1. A system for displaying a custom interface associated with a customer on a screen of an automated teller machine (ATM),
the system comprising
a non-transitory storage device;
a communication device;
a processing device operatively coupled to the storage device and the communication device;
at least one module stored in said storage device and comprising instruction code that is executable by at least one processor
and configured to cause said at least one processor to:

present, to the customer, an option to create a customization for displaying on the screen of the ATM when the customer initiates
a session with the ATM, wherein the customization is associated with a function to perform a financial transaction when the
customer interacts with the customization on the screen of the ATM;

receive the customization, wherein the customization comprises sensitive information related to the customer;
receive a request to display the customization on the screen of the ATM based on the customer initiating the session with
the ATM;

communicate the customization to display on the screen of the ATM based on receiving the request to display the customization;
communicate an instruction to the ATM to display the sensitive information to prevent another individual from viewing the
sensitive information;

receive a request to perform the financial transaction based on the customer interacting with the customization on the screen
of the ATM; and

perform the financial transaction based on receiving the request to perform the financial transaction.

US Pat. No. 10,089,313

CONVERSION OF DATA INTEGRATION SYSTEM FILES

Bank of America Corporati...

1. A system, comprising:a memory operable to store data associated with at a least one data integration system; and
a processor communicatively coupled to the memory and the processor is operable to:
identify a first data integration system that uses a first operating system;
identify a first file format associated with data for the first data integration system, wherein the first file format is specific to the first operating system;
identify a second data integration system that that uses a second operating system, wherein the first operating system is different than the second operating system;
identify a second file format associated with data for the second data integration system, wherein the second file format is specific to the second operating system;
determine a plurality of differences between the first data integration system and the second data integration system, wherein the plurality of differences comprises:
format differences between the first file format and the second file format; and
operation differences between the first data integration system and the second data integration system;
determine a set of transformation rules, based at least in part on at least one of the plurality of differences, wherein the set of transformation rules describe how to convert data from the first file format to the second file format;
create a conversion algorithm, based at least in part on the set of transformation rules;
execute the conversion algorithm to convert a set of files associated with the first data integration system to a corresponding set of files associated with the second data integration system, wherein converting the set of files associated with the first data integration system comprises:
parsing the set of files associated with the first data integration system into a plurality of source tokens;
identifying source tokens from among the plurality of source tokens to convert to a target token;
converting the identified source tokens into target tokens;
sending the target tokens to a post-conversion file;
sending source tokens from among the plurality of source files that were not converted to target tokens to the post-conversion file; and
assembling the file associated with the second data integration system using source tokens and target tokens in the post-conversion file; and
execute the second data integration system, wherein the second data integration system uses at least one of the converted files associated with the second data integration system.

US Pat. No. 9,213,682

METHOD AND APPARATUS FOR AUDITING A BUSINESS DOCUMENT

Bank of America Corporati...

1. A business document auditing device comprising:
a receiver configured to receive:
a set of universal presentation rules comprising one or more parameters, said universal presentation rules configured to override
all other presentation rules, wherein said universal presentation rules are enforced, irrespective of a user's wishes, across
substantially every business document of the user, wherein the universal presentation rules comprise:

page word count rules which limit the total word count on each page of each business document of the user;
bullet point word count rules which limit the total word count on each bullet point included on each business document of
the user;

line count rules which limit the total number of lines on each page of each business document of the user;
color rules which limit the palette of colors used on each page of each business document of the user; and
density rules which limit the amount of white space on each page of each business document of the user; and
a set of customized presentation rules comprising one or more parameters, said customized presentation rules customized by
the user, wherein said customized presentation rules allow the user to enforce the customized presentation rules on a single
business document, wherein the customized presentation rules are included on a displayable audit panel, wherein the displayable
audit panel is viewable adjacent to the business document;

a memory configured to store:
execution instructions;
one or more business documents;
the set of universal presentation rules; and
the set of customized presentation rules; and
a processor coupled with the memory, the processor configured to execute the instructions, the instructions configured to
cause the processor to:

compare a parameter of an element of a business document of the one or more business documents to a first parameter of the
universal presentation rules, wherein, when the parameter of the element of the business document is a non-compliant parameter,
the processor is further configured to conform the element of the business document to the first parameter of the universal
presentation rules; and

compare the universal presentation rules to the customized presentation rules, wherein:
when the universal presentation rules are in conflict with the customized presentation rules, the processor is further configured
to cause the universal presentation rules to override the customized presentation rules; and

when the universal presentation rules are not in conflict with the customized presentation rules, the processor is further
configured to:

compare the parameter of the element of the business document to a second parameter of the customized presentation rules,
and cause the processor to, when the parameter of the element of the business document is a non-compliant parameter, present
an option to the user to conform the element of the business document to the second parameter of the customized presentation
rules.

US Pat. No. 9,317,674

USER AUTHENTICATION BASED ON FOB/INDICIA SCAN

Bank of America Corporati...

1. An apparatus for authenticating a user, the apparatus comprising:
a memory;
a processor;
at least one sensor for continuously sensing an authentication validating carrier and communicating carrier information based
on the authentication validating carrier to the processor, wherein the carrier information comprises a continuous stream of
data; and

a module stored in the memory, executable by the processor, and configured to cause the processor to:
receive a first request from a user to access at least one first function associated with a first application;
determine that access to the at least one first function requires user authentication;
initiate sensing of the authentication validating carrier comprising a first credential, wherein initiating sensing of the
authentication validating carrier comprises a continuous process;

determine the first credential based at least in part on the sensed authentication validating carrier, wherein determining
the first credential is based at least in part on the carrier information, wherein determining the first credential comprises
continuously analyzing the stream of data thereby resulting in the first credential;

validate the first credential, thereby resulting in a first successful user authentication; and
grant access to the at least one first function associated with the first application based at least in part on the first
successful user authentication.

US Pat. No. 9,442,925

REGULATED TEXTING SOLUTION FOR MOBILE DEVICES

Bank of America Corporati...

9. A method for consolidating a plurality of data messages, comprising:
receiving a plurality of data messages, each of the plurality of data messages comprising a user field, an outside party field,
and a timestamp field, and the plurality of data messages comprising:

a first data message, the user field associated with a first user, the outside party field associated with a first outside
party, and the timestamp field associated with a first timestamp;

a second data message, the user field associated with a second user, the outside party field associated with a second outside
party, and the timestamp field associated with a second timestamp; and

a third data message, the user field associated with the first user, the outside party field associated with the first outside
party, and the timestamp field associated with a third timestamp;

determining a mobile device associated with at least one from the plurality of received data messages;
generating a confirmation message for the mobile device instructing the mobile device to delete a copy of the received data
message from the mobile device;

communicating the confirmation message to the mobile device;
receiving an identification of the first user, the first outside party, and a time interval;
grouping the first data message and the third data message based at least in part upon the received identification of the
first user, the received identification of the first outside party, the received identification of the time interval, the
user field, the outside party field, and if the first timestamp and the third timestamp are within the received time interval;
and

combining the first data message and the third data message into a consolidated data message, wherein the first data message,
the third data message, and the consolidated message are in different messaging formats.

US Pat. No. 9,298,899

CONTINUOUS MONITORING OF ACCESS OF COMPUTING RESOURCES

Bank of America Corporati...

1. A computer-implemented method of monitoring access of computing resources comprising:
creating one or more usage rules each defining a usage constraint;
receiving a set of login credentials from a first user;
authorizing the first user to access a computing resource based on the set of login credentials received from the first user;
monitoring one or more actions the first user has requested to be performed at the computing resource by applying at least
one of the one or more usage rules, wherein the one or more usage rules comprise a first usage rule defining a first usage
constraint that is based on a total number of authorizations performed responsive to a usage constraint violation;

determining that one of the actions violates a usage constraint;
halting performance of the action until a second user authorizes the action; and
notifying a third user responsive to determining that a total number of authorizations performed by the second user for the
first user exceeds a predetermined threshold.

US Pat. No. 9,160,711

INTERNET CLEANING AND EDGE DELIVERY

Bank of America Corporati...

1. A computer implemented method, comprising:
receiving, at a cleansing farm, a plurality of customer requests from a network wherein at least one of the customer requests
includes an application layer comprising confidential customer information;

inspecting a plurality of layers of the customer requests that include confidential customer information by inspecting the
application layer and at least one other layer to assess the confidential customer information;

determining one or more parameters associated with the customer requests based on the inspecting, wherein the one or more
parameters are at least partially based on the inspection of the application layer comprising the confidential customer information;

comparing the parameters associated with the customer requests to one or more filtering rules, wherein the filtering rules
comprise rules to mitigate against a cyber attack;

determining whether the customer requests should be filtered based on the comparison;
filtering a first part of the customer requests when it is determined that the first part of the customer requests should
be filtered, wherein filtering the first part of the customer request comprises routing a customer request associated with
a flagged message source to a non-existent address; and

routing a second part of the customer requests to a destination within an internal network when it is determined that the
second part of the customer requests should not be filtered.

US Pat. No. 9,298,696

SEMANTIC APPLICATION LOGGING AND ANALYTICS

Bank of America Corporati...

1. A method comprising:
determining that a data security event or a data logging event occurs at an application running on a computing domain;
in response to determining that the data security event or the data logging event occurs at the application running on the
computing domain, determining, by a computing device having a processor and memory, that the application uses a first concept
name from an application dictionary associated with the application to describe the data security event or the data logging
event;

generating, by the computing device, an entry for the data security event or the data logging event and adding the entry to
a data log for the application running on the computing domain, wherein the entry includes the first concept name from the
application dictionary associated with the application;

determining, by the computing device, that the first concept name from the application dictionary corresponds to a second
concept name from a domain dictionary associated with a plurality of applications running on the computing domain; and

generating a mapping of the first concept name from the application dictionary to the second concept name from the domain
dictionary associated with the plurality of applications running on the computing domain.

US Pat. No. 9,262,622

SECURE CONNECTION BETWEEN A DATA REPOSITORY AND AN INTELLIGENCE APPLICATION

Bank of America Corporati...

1. An apparatus for establishing a secure connection between a data repository and an intelligence application for exchanging
authentication credentials and secured data, whereby data repository authentication credentials are protected from compromise
due to user groups potentially accessing the data repository over insecure channels, the apparatus comprising:
a memory;
a processor; and
a data repository JDBC driver stored in the memory, executable by the processor, and configured to:
interface between a data virtualization layer and a data repository layer comprising a data repository, wherein the data repository
JDBC is in operative communication with an intelligence application layer comprising an intelligence application through the
data virtualization layer;

receive a request from the intelligence application, originating from a user device, the request communicated from the intelligence
application through a data virtualization application and for obtaining access to the data repository, wherein the data repository
is configured for access by multiple user groups each using the same repository authentication credential;

respond to the request comprising preparing and sending an authentication request through the data virtualization application
to the intelligence application;

receive authentication credentials from the intelligence application through the data virtualization application, the authentication
credentials associated with one or more users of a plurality of users authorized to access the data repository;

determine that the authentication credentials are valid; and
in response to determining the user authentication credentials are valid, establish a secure communication channel between
the intelligence application layer and the data repository layer through the data virtualization layer in order to provide
the repository authentication credential to the data repository layer for authentication and access to the data repository.

US Pat. No. 9,184,918

TRUSTED HARDWARE FOR ATTESTING TO AUTHENTICITY IN A CLOUD ENVIRONMENT

Bank of America Corporati...

1. An apparatus comprising:
at least one processor; and
at least one memory storing computer executable instructions that, when executed, cause the apparatus at least to:
store, in a trusted protection module (TPM), a first measurement of a virtualization platform;
store, in the TPM, a second measurement of a measured virtual machine;
generate a TPM quote using a key, wherein the TPM quote is based on the first measurement and the second measurement; and
provide the TPM quote for attesting to authenticity of the virtualization platform and of the measured virtual machine,
wherein the TPM quote is uniquely tied to an individual piece of hardware of physical infrastructure hardware on which the
virtualization platform runs, and a cloud provider creates an association between the TPM and the generated TPM quote, the
association between the TPM and the generated TPM quote identifying to at least one tenant of the cloud provider the individual
piece of hardware of the physical infrastructure hardware on which the virtualization platform runs.

US Pat. No. 9,122,558

SOFTWARE UPDATES USING DELTA PATCHING

Bank of America Corporati...

1. A method comprising:
combining into a compound image, by a first computer, a first image generated from a first software stack on the first computer
and a second image generated from a separate second software stack residing on the first computer;

comparing, by the first computer, the compound image and the first image to determine a difference between the compound image
and the first image;

generating, by the first computer, a file representative of the difference between the compound image and the first image,
wherein generating the file includes generating a metadata catalog identifying a correlation between a particular software
component of the first image and a particular software component of the second image;

generating a separate task sequence for installation of the file on a second computer;
recording to a logically protected region of a computer-readable storage medium of the first computer data representing the
file and the separate task sequence;

reading from the logically protected region of the computer-readable medium of the first computer the recorded data representing
the file and the separate task sequence on the first computer; and

transmitting the read data and the separate task sequence from the logically protected region of the computer-readable storage
medium of the first computer to a logically protected region of a computer-readable storage medium of the second computer.

US Pat. No. 9,477,960

USER AUTHENTICATION BASED ON HISTORICAL TRANSACTION DATA

BANK OF AMERICA CORPORATI...

1. A method for increasing confidence in user authentication based on transaction data indicating that one or more geographically
proximate, card-present transactions were recently approved, the method comprising:
receiving, by a mobile device of a user and from the user, a request to execute a user action associated with a software application,
wherein execution of the user action requires validation of one or more authentication credentials;

collecting a transaction set of data comprising information related to one or more card-present transactions conducted by
the user, the information indicating that the one or more card-present transactions were approved, card-present transactions
and indicating one or more transaction locations at which the one or more card-present transactions were approved;

collecting, by the mobile device, a location set of data comprising information related to a physical location of the user;
determining a current time of day;
determining, by the mobile device, a transaction proximity score associated with the user and the one or more card-present
transactions, comprising:

determining a geographic distance between one or more of the card-present transactions represented in the transaction set
of data and the location of the user;

determining an amount of time expired between approval of the one or more card-present transactions and the current time of
day;

retrieving a proximity threshold associated with the one or more card-present transactions and the amount of time expired;
determining whether the user is within the proximity threshold based at least in part on the geographic distance; and
determining the transaction proximity score based at least in part on the determination whether the user is within the proximity
threshold;

determining, by the mobile device, a level of authentication associated with the determined transaction proximity score, wherein
the determined level of authentication varies as the geographic distance varies;

determining, by the mobile device, which one or more authentication types from a plurality of authentication types are associated
with the level of authentication associated with the transaction proximity score;

requesting, by the mobile device, from the user one or more authentication credentials corresponding to the determined one
or more authentication types;

receiving, by the mobile device and from the user, one or more authentication credentials from the user;
validating, by the mobile device, the one or more authentication credentials, thereby resulting in a successful validation
of the one or more authentication credentials; and

in response to the successful validation of the one or more authentication credentials, allowing, by the mobile device, the
user action on the software application.

US Pat. No. 9,465,845

DYNAMIC CARD VALIDATION

Bank of America Corporati...

1. A card validation system, comprising:
an interface operable to:
receive a request to validate a card;
receive a set of cell identifiers of a card validation matrix from a user, the set of cell identifiers determined by the user;
receive one or more received cell values corresponding to the set of cell identifiers of the card validation matrix;
one or more processors communicatively coupled to the interface and operable to:
determine a set of stored cell values corresponding to the set of cell identifiers of the card validation matrix;
compare the set of received cell values to the set of stored cell values; and
based at least in part upon the comparison, determine whether the card is validated.

US Pat. No. 9,355,392

GIFT CARD ASSOCIATION WITH ACCOUNT

BANK OF AMERICA CORPORATI...

1. An apparatus for associating a gift card with an account, the apparatus comprising:
a memory;
at least one processor; and
a module stored in the memory, executable by the at least one processor, and configured to cause the at least one processor
to:

electronically receive information associated with a gift card, wherein the gift card is associated with funds, and not associated
with points, wherein the information is extracted from images of a front face of the gift card and a back face of the gift
card, wherein the information comprises an identification code associated with the gift card and an amount associated with
the gift card;

associate the gift card with an account, wherein associating the gift card with an account further comprises:
initiating a presentation of a user interface for display on a user device, the user interface comprises one or more options
to enable the user to establish a communicable link for transfer of information between the gift card and an account;

receiving a user selection of at least one of the one or more options, wherein the user selection comprises an indication
that the user has initiated a communicable link for the transfer of information between the gift card and the account; and

establishing the communicable link based on at least receiving the user selection;
determine a user is within a predetermined distance of a merchant, but not at the merchant, based on determining global positioning
system (GPS) coordinates associated with a mobile device associated with the user;

electronically transmit a message to the user's mobile device informing the user of the gift card previously associated with
the account, the message also comprising a new offer for a second merchant and specifying an expiry date for the new offer,
wherein a discount or rebate of the new offer for the second merchant is based on an age of the gift card, a period of inactivity
of the gift card, and a balance of the gift card;

determine execution of a transaction;
electronically receive information associated with the transaction;
determine the transaction qualifies for the gift card; and
apply funds associated with the gift card to the transaction, wherein the transaction is executed using a payment method associated
with the account, and wherein the transaction is not executed using the gift card.

US Pat. No. 9,280,740

TRANSFORMING PREDICTIVE MODELS

Bank of America Corporati...

1. A method for translating a boosting algorithm, comprising:
receiving, at a hardware interface, a trained boosting model;
identifying, using a processor communicatively coupled to the interface, a plurality of one-level, binary split-node variables
associated with the trained boosting model, wherein each of the plurality of one-level, binary split-node variables comprises
a variable name, a cutoff point, and a weight;

identifying, using the microprocessor, a group of one-level, binary split-node variables that have the same variable name
and cutoff point within the plurality of one-level, binary split-node variables;

combining, using the processor, the weights of each of the one-level, binary split-node in the group of one-level, binary
split-node variables to calculate a combined weight for the one-level, binary split-node variables in the group of one-level,
binary split-node variables, wherein combining the weights comprises summing the weights of the one-level, binary split-node
variables in the group of one-level, binary split-node variables; and

creating, using the processor, a linear model based on the variable name, the cutoff point, and the combined weight.

US Pat. No. 9,380,068

MODIFICATION OF COMPUTING RESOURCE BEHAVIOR BASED ON AGGREGATED MONITORING INFORMATION

Bank of America Corporati...

1. A computer system comprising:
a second computing device; and
a first computing device comprising:
a first memory device;
a resource allocation module;
a first shared computing resource; and
a first processing device coupled to the first memory device and configured to perform, based on instructions stored in the
first memory device:

in response to an occurrence of an external event, managing a first load level and a second load level of the first shared
computing resource by a first software application and a second software application, respectively;

mapping a plurality of policies to a plurality of previous event patterns, wherein the plurality of policies comprises a first
policy and a second policy;

determining a first load level and a second load level of the first shared computing resource by the first software application
and the second software application, respectively, that are executing on the first computing device;

when the first load level exceeds a first predetermined threshold,
obtaining a first event data stream for the first software application;
selecting a first filter from a plurality of filters for the first software application;
transforming the first event data stream with the first filter to obtain a first detected event pattern;
detecting whether the first detected event pattern comprises an ordered sequence of events; and
when the first detected event pattern matches a first previous event pattern of the plurality of previous event patterns,
instructing the resource allocation module to apply the first policy to the first software application for the first shared
computing resource, and wherein detecting whether the first detected event pattern comprises the ordered sequence of events
before instructing the resource allocation to apply the first policy; and

when the second load level exceeds a second predetermined threshold,
obtaining a second event data stream for the second software application;
selecting a second filter from a plurality of filters for the second software application, wherein the second filter is different
from the first filter;

transforming the second event data stream to obtain a second detected event pattern; and
when the second detected event pattern matches a second previous event pattern of the plurality of previous event patterns,
instructing the resource allocation module to apply the second policy to the second software application for the first shared
computing resource;

wherein when the first detected event pattern does not match any of the plurality of previous event patterns, sending an event
request to the second computing device, wherein the event request includes event information indicative of the first detected
event pattern; and receiving an event response from the second computing device, wherein the event response is indicative
of whether the first detected event pattern matches any event pattern that has occurred in the computer system.

US Pat. No. 9,313,190

SHUTTING DOWN ACCESS TO ALL USER ACCOUNTS

Bank of America Corporati...

1. A system for restricting access to a user's account via one or more account access channels, comprising:
a computer apparatus including a processor and a memory; and
an access restriction module stored in the memory, executable by the processor and configured for:
integrating a first account access channel associated with the user's account with a first access restriction procedure, wherein
the first access channel comprises a mobile device associated with the user's account, wherein integrating the first account
access channel with the first access restriction procedure comprises integrating device identification information associated
with the mobile device with the first access restriction procedure;

integrating a third account access channel associated with the user's account with the first access restriction procedure,
the third account access channel comprising an online banking account associated with the user's account;

receiving a request from the user to implement the first access restriction procedure via a second account access channel,
the second account access channel comprising an online banking interface or an automated teller machine interface; and

based on receiving the request via the second account access channel from the user to implement the first access restriction
procedure, implementing the first access restriction procedure, wherein implementing the first access restriction procedure
comprises (i) disabling access to the user's account via the mobile device and (ii) implementing an authentication procedure
that requires secondary authentication before permitting access to the user's account via the online banking account.

US Pat. No. 9,064,366

BLIND WITHDRAWAL FOR TRANSPORTATION

Bank of America Corporati...

1. A method of providing a blind withdrawal of currency for transportation, comprising:
receiving, by a cash recycler that comprises one or more stackers that store and organize currency based on denomination and
that further comprises one or more cartridges that store overflow currency for transport, a request to withdraw currency for
transport;

calculating, by the cash recycler, an amount of currency to dispense to bring one or more denominations of currency stored
in the one or more stackers and the one or more cartridges of the cash recycler to one or more predefined levels;

dispensing, by the cash recycler, the amount of currency into a container having indicia that identifies the container;
storing, by the cash recycler, information associated with the indicia that identifies the container; and
after storing the information associated with the indicia that identifies the container, allowing, by the cash recycler, the
container to be withdrawn from the cash recycler.

US Pat. No. 9,305,181

OBFUSCATING PRIVATE INFORMATION USING A TRANSACTION IDENTIFIER

Bank of America Corporati...

1. A system, comprising:
a network interface operable to receive transaction information;
a processor communicatively coupled to the network interface and operable to determine private information and public information
from the transaction information;

the network interface further operable to:
communicate the private information to a obfuscation engine; and
receive obfuscated private information from the obfuscation engine;
the processor further operable to:
merge the obfuscated private information with the public information to create a temporary identifier; and
convert the temporary identifier into a transaction identifier, wherein the transaction identifier comprises a hexadecimal
representation of the temporary identifier; and

a printer communicatively coupled to the network interface and processor and operable to print a portion of the public information
and the transaction identifier on a transaction receipt.

US Pat. No. 9,218,596

METHOD AND APPARATUS FOR PROVIDING REAL TIME MUTABLE CREDIT CARD INFORMATION

Bank of America Corporati...

1. A smartcard apparatus comprised of:
a microprocessor chip;
a button;
a dynamic transaction authorization number; and
a Bluetooth low energy device (“BLE”) which is configured to:
transmit an instruction to a smartphone for a request for a dynamic transaction authorization number, when the button is depressed;
receive the dynamic transaction authorization number from a smartphone;
a battery configured to power the BLE and the microprocessor chip;
memory configured to store the dynamic transaction authorization number; and
a dynamic magnetic strip comprising a digital representation of the dynamic transaction authorization number.

US Pat. No. 9,087,330

GEOGRAPHY BASED TRANSACTION COST RECOVERY

Bank of America Corporati...

1. An article of manufacture comprising a non-transitory computer usable medium having computer readable program code embodied
therein, the computer readable program code when executed by a processor on a computer system, performs a method for recovering
an interchange fee associated with a credit card payment made by a customer using a payment instrument, the interchange fee
imposed on a merchant that accepts the credit card payment from the customer, the method comprising:
associating a geographic value with the credit card payment; determining whether the geographic value satisfies a geographic
criterion;

if the geographic value satisfies the geographic criterion:
determining a surcharge amount to be charged by the merchant to the customer, for the payment instrument, based on at least:
a sensitivity which indicates how the surcharge amount positively or negatively affects overall sales associated with the
geographic criterion;

a net cost of the interchange fee imposed on the merchant being reduced by a pre-determined percentage when the surcharge
amount is collected by the merchant; and

a net profit of the merchant being maintained above a pre-determined amount with respect to a plurality of credit card payments
accepted by the merchant within the geographic criterion when the surcharge amount is collected by the merchant; and

transmitting an authorization request to charge a first amount to an account of the customer associated with the payment instrument,
the first amount not less than a sum of a price and the surcharge amount; and

if the geographic value does not satisfy the geographic criterion, transmitting an authorization request to charge the account
of the customer a second amount not less than the price.

US Pat. No. 9,412,135

CHECK DATA LIFT FOR ONLINE ACCOUNTS

Bank of America Corporati...

1. A system for extracting check data from images of paper checks for online accounts, the system comprising:
a computer apparatus including a processor and a memory;
an image capture device; and
a software module stored in the memory, comprising executable instructions that when executed by the processor cause the processor
to:

receive a paper check associated with a customer, and capture a check image of the paper check using the image capture device;
apply an optical character recognition process to at least a portion of the check image;
convert at least a portion of image based data from the check image to text based data, wherein converting the image based
data to the text based data comprises encoding the image based data into text based files that are configured to be edited
and searched;

identify check data in the text based data comprising at least one of a payee name, a payor name, a date, a payment amount,
a check number, and an endorsement;

identify online data associated with the customer, from the check data and from inputted information based on customer requests,
customer online activity, transaction criteria and account criteria, wherein identifying the online data further comprises:

identifying the image based data not converted to text based data, the image based data comprising at least one of a time
stamp, a logo or a symbol related to an entity associated with authorizing a transaction with the paper check;

tracking customer online activity associated with an online banking account associated with the entity identified from the
image based data, including tracking a number of times each of a plurality of online account pages is visited during an online
banking session and an amount of time spent on each of the plurality of online account pages during the online banking session;

determining that one of the online account pages is potentially more interesting to the customer based on the customer visiting
the online account page more than others and spending more time on the online account page than others during the online banking
session; and

determining customer preferences based on the customer online activity and the online account page that is potentially more
interesting to the customer;

format the online data based on online account criteria, wherein the formatted online data comprises stable metadata;
initiate automated processing of the transaction associated with the paper check, based on at least the stable metadata;
incorporate at least a portion of the online data into a portion of an online account of the customer, wherein at least the
portion of the online data is determined based on at least the check data and the online data; and

provide the online account portion to the customer on a customer computing device, wherein providing the online account portion
to the customer further comprises:

initiating presentation of a graphical user interface associated with an online banking account of the customer; and
inserting the online account portion in the graphical user interface, proximate to a display of one or more transactions associated
with the online banking account.

US Pat. No. 9,311,631

SYSTEM AND METHOD FOR SMART DEPOSIT RETRIEVAL

Bank of America Corporati...

1. A system comprising:
one or more processors, the one or more processors operable to:
receive a deposit identifier for a deposit bag, the deposit identifier associated with planned-deposit information and printed
at a terminal located remotely from a deposit location, the deposit identifier received from a scanner that scans the deposit
bag at the deposit location;

send a command to release an opening of a depository located at the deposit location, the command sent in response to receiving
the deposit identifier from the scanner;

determine that the depository has received the deposit bag;
update a manifest to indicate that the deposit bag was received;
post the planned-deposit immediately in response to determining, based on deposit-location information and the deposit identifier,
that the planned-deposit has been authorized for immediate posting;

determine that the depository has received a second deposit bag associated with a second deposit identifier for a second planned-deposit;
post the second planned-deposit after a specified period of time in response to determining, based on second deposit-location
information and the second deposit identifier, that the second planned-deposit has not been authorized for immediate posting
and that the second planned-deposit has been authorized for posting after the specified period of time;

determine that the depository has received a third deposit bag associated with a third deposit identifier for a third planned-deposit;
and

post the third planned-deposit after receiving a verification in response to determining, based on third deposit-location
information and the third deposit identifier, that the third planned-deposit has not been authorized for immediate posting
and has not been authorized for posting after the specified period of time.

US Pat. No. 9,262,152

MODULAR SYSTEM INCLUDING MANAGEMENT AND DEPLOYMENT OF SOFTWARE UPDATES AND REVISIONS

BANK OF AMERICA CORPORATI...

1. A system for managing deployment and update of services within an enterprise, the system comprising:
a distributed network of servers, wherein each server has an assigned lifecycle level;
a computing platform including network memory and a processor in communication with the memory; and
an operating system-agnostic, modular-based, service delivery application stored in the network memory, executable by the
processor and including a plurality of modules, each module configured to deliver a service to the enterprise, wherein the
modules include:

a provisioning module configured to provide management over deployment of the services delivered by the modules and version
updates to the services delivered by the modules, including:

determine and automatically implement an optimal schedule for service deployment and service version updates based on predetermined
lifecycle levels assigned to networked devices in the enterprise executing the service delivery application,

deny execution of non-permitted service versions by requiring networked devices in the enterprise that execute the service
delivery application to verify a version being launched prior to executing the version, and

schedule deactivation of a declining service version and alert service delivery application users of the scheduled deactivation
of the declining service version and a need to download an emerging version.

US Pat. No. 9,251,637

METHOD AND APPARATUS FOR USING AT LEAST A PORTION OF A ONE-TIME PASSWORD AS A DYNAMIC CARD VERIFICATION VALUE

BANK OF AMERICA CORPORATI...

1. A method for authorizing a transaction, wherein the transaction involves a credit/debit card, the method comprising:
receiving a transaction authorization request associated with the transaction involving the credit/debit card, wherein the
transaction authorization request comprises a prompt for a card verification value (CVV) for authenticating the transaction,
wherein the credit/debit card comprises:

one or more input devices positioned on the credit/debit card enabling a user of the credit/debit card to input information
into the credit/debit card including a challenge response, wherein the one or more input devices comprise a plurality of buttons
corresponding to a plurality of alpha-numeric characters;

a processor in communication with the one or more input devices positioned on the credit/debit card, wherein the processor
is configured to:

generate a challenge;
present, via a visual display and a speaker of the credit/debit card, the challenge;
receive, via the plurality of buttons on the credit/debit card, a challenge response comprising alpha-numeric characters;
and

determine whether or not the challenge response received into the credit/debit card is successful;
a one-time password generator automatically generating a one-time password or value based at least partially on receiving
the challenge response into the credit/debit card and determining that the challenge response is successful;

presenting, via the visual display and the speaker of the credit/debit card, the one-time password, wherein a portion of the
one-time password comprises a dynamic card verification value (CVV) for authenticating the transaction;

receiving the dynamic CVV; and
authorizing the transaction involving the credit/debit card if the dynamic CVV generated by the credit/debit card matches
at least a portion of an externally generated one-time password for the credit/debit card.

US Pat. No. 9,430,852

DIGITAL CHECK IMAGE SHIFTING IN A CAROUSEL DISPLAY

Bank of America Corporati...

1. is amended to read as follows:
A treasury management system comprising:
a processor; and
a non-transitory computer readable media storing instructions that when executed by the processor configure a computer to:
generate an issue file, the issue file comprising a plurality of payments and a check service associated with each payment
entries, each entry corresponding to a check issued by a payer, wherein each entry comprises a check identifier and a pre-selected
check service;

receive a plurality of check images, each check image generated based on a check deposited by a payee; and
for each of the plurality of check images, determine if the deposited check corresponds to a check identifier from an entry
included in the issue file and:

if the deposited check corresponds to a check identifier from an entry included in the issue file:
display to the payer in a first carousel view a corresponding check image, wherein the first carousel view comprises a first
position that displays the entire surface area of the check image and a second position that displays less than the entire
surface area of the check image, wherein the first position is a reference position and the second position is defined by
an angular distance from the reference position; and

apply a watermark to the check image, the watermark including text associated with the pre-selected check service from the
entry, wherein the watermark is viewable only when the check image is in the first position; and

if the deposited check does not correspond to a check identifier from an entry included in the issue file:
display to the payer in a second carousel view a corresponding check image, wherein the second carousel view comprises a first
position that displays the entire surface area of the check image and a second position that displays less than the entire
surface area of the check image, wherein the first position is a reference position and the second position is defined by
an angular distance from the reference position;

embed in the check image an available check service and a selectable option to apply the available check service to the deposited
check, wherein the available check service and the selectable option are viewable only when the check image is in the first
position; and

display an indication of time remaining to apply the available check services to the deposited check.

US Pat. No. 9,391,976

USER AUTHENTICATION BASED ON SELF-SELECTED PREFERENCES

BANK OF AMERICA CORPORATI...

1. A system for user authentication based on self-selected preferences, the system comprising:
at least one processor;
at least one memory;
a module stored in memory executable by the at least one processor, and configured to execute computer-readable code to cause
the at least one processor to:

receive a request to execute a user action from a user associated with an application, wherein the user action requires validation
of one or more authentication credentials;

access a user-selected preference indicating a level of authentication associated with a user-selected preference predefined
by the user, wherein the user-selected preference comprises a time duration, a geographic location, and one or more features
associated with the application, wherein the time duration is scheduled dynamically;

determine one or more authentication types from a plurality of authentication types associated with the level of authentication
and the user-selected preference, wherein the one or more authentication types comprises at least one of a hard authentication,
a soft authentication, and a zero authentication, wherein the hard authentication is a multi-step verification requiring a
user presentation of at least two authentication credentials, wherein the soft authentication is a secondary verification
requiring a user presentation of at least one authentication credential associated with the authentication types, wherein
zero authentication requires no authentication credentials;

determine that at least one of the user-selected preferences are satisfied by the user;
request one or more authentication credentials corresponding to the determined one or more authentication types based on at
least determining that at least one of the user-selected preferences are satisfied;

receive one or more authentication credentials from the user;
validate the one or more authentication credentials, thereby resulting in a successful validation of the one or more authentication
credentials; and

in response to the successful validation of the one or more authentication credentials, execute the user action, wherein executing
the user action further comprises enabling the user to access one or more features associated with the application, wherein
the one or more features are pre-selected by the user based on the user-selected preferences.

US Pat. No. 9,286,467

EVALUATING CUSTOMER SECURITY PREFERENCES

Bank of America Corporati...

1. A method, comprising:
at a security score computing platform comprising at least one processor, a memory, and a communication interface:
receiving, by the at least one processor via the communication interface, from a security dashboard computing platform, a
request for a security score associated with a customer of a financial institution, the customer of the financial institution
having a customer account for accessing an online banking interface associated with the financial institution;

in response to receiving the request for the security score associated with the customer of the financial institution, requesting,
by the at least one processor via the communication interface, from a customer portal computing platform configured to provide
the online banking interface associated with the financial institution, one or more security preferences associated with the
customer of the financial institution;

receiving, by the at least one processor via the communication interface, from the customer portal computing platform, the
one or more security preferences associated with the customer of the financial institution;

determining, by the at least one processor, based on at least one security score definition file and based on the one or more
security preferences associated with the customer of the financial institution, a security score for the customer of the financial
institution; and

providing, by the at least one processor via the communication interface, to the security dashboard computing platform, the
determined security score for the customer of the financial institution, wherein the security dashboard computing platform
is configured to generate a security dashboard user interface for the customer of the financial institution based on the determined
security score for the customer of the financial institution,

wherein the at least one security score definition file specifies one or more weighted criteria for evaluating customer security
preferences, and

wherein the one or more weighted criteria comprises an indication of an amount of time elapsed since a password change event
associated with the customer account of the customer of the financial institution, an indication of whether a one-time passcode
is required at login for the customer account of the customer of the financial institution, and an indication of whether a
one-time passcode is required when responding to a challenge question for the customer account of the customer of the financial
institution.

US Pat. No. 9,219,746

RISK IDENTIFICATION BASED ON IDENTIFIED PARTS OF SPEECH OF TERMS IN A STRING OF TERMS

Bank of America Corporati...

8. An apparatus, comprising:
at least one processor; and
a memory storing computer-readable instructions that, when executed by the at least one processor, cause the apparatus to:
receive a string of terms;
determine whether the string of terms includes at least one word matching a keyword of a keyword listing;
responsive to determining that the string of terms includes at least one word matching the keyword, identify at least a noun
and a verb in the string of terms;

identify a category of risk associated with the noun and a category of risk associated with the verb;
determine whether the identified category of risk associated with the identified noun and the identified category of risk
associated with the identified verb are a same category of risk;

responsive to determining that the identified category of risk associated with the identified noun and the identified category
of risk associated with the identified verb are the same category, determine a first risk rating of the received string of
terms including the identified noun and the identified verb, the first risk rating being based on the identified noun, the
identified verb and the same category; and

responsive to determining that the identified category of risk associated with the identified noun and the identified category
of risk associated with the identified verb are different categories, determine a second risk rating of the received string
of terms including the identified noun and identified verb, the second risk rating being based on the identified noun, the
identified verb, the identified category of risk associated with the noun and the identified category of risk associated with
the verb, the second risk rating being different from the first risk rating.

US Pat. No. 9,177,451

MOBILE DEVICE AS POINT OF TRANSACTION FOR IN-STORE PURCHASES

Bank of America Corporati...

1. A system for conducting purchase transactions within a retail location, the system comprising:
a mobile communication device including a computing platform comprising a processor, a memory in communication with the processor,
an image capture device in communication with the processor, a location-determining mechanism in communication with the processor
and a time measurement mechanism in communication with the processor;

a product selection application stored in the memory of the mobile communication, executable by the processor of the mobile
communication device and configured to:

implement the image capturing device to capture computer-readable indicia associated with one or more products that a customer
desires to purchase, wherein the computer-readable indicia is captured prior to the customer encountering a check-out location
within the retail location and, wherein the computer-readable indicia, when read by a computing device processor, provides
information operable to purchase an associated product,

implement the location-determining mechanism to determine that the mobile communication device has moved a predetermined distance
from a location at which the computer-readable indicia was captured, wherein movement of the mobile communication device by
the predetermined distance results in the product associated with the computer-readable indicia being queued for a purchase
transaction, and

implement the time measurement mechanism to determine when a predetermined period of time lapses, wherein the predetermined
period of time starts when a first computer-readable indicia is captured by the mobile communication device at the retail
location;

a computing device including a computing platform comprising a processor and a memory in communication with the processor;
a purchase transaction application stored in the memory of the computing device, executable by the processor of the computing
device and configured to:

receive, from the mobile communication device, the information associated with the one or more products queued for the purchase
transaction, and

conduct the purchase transaction of the one or more products for the customer in automatic response to receiving an indication
from the mobile communication device that the predetermined period of time has lapsed.

US Pat. No. 9,165,250

DYNAMIC INCIDENT RESPONSE

Bank of America Corporati...

1. A computing device, comprising:
at least one processor; and
memory storing computer readable instructions that, when executed by the at least one processor, cause the computing device
to:

determine that a security incident has occurred, the security incident being a physical security incident or a cyber security
incident;

load a predefined response template, the predefined response template comprising a plurality of parameters for responding
to the security incident;

utilize a data platform to identify one or more potential responders for the security incident based on the predefined response
template, wherein the data platform maintains physical access information, logical access information, hybrid access information,
and availability information for an organization, and wherein the one or more potential responders are associated with the
organization;

contact the one or more potential responders for the security incident identified based on the predefined response template;
monitor communications by the one or more potential responders for the security incident identified based on the predefined
response template, the monitored communications being responsive to the contact;

update historical interaction data maintained by the data platform, based on the monitored communications by the one or more
potential responders for the security incident identified based on the predefined response template; and

calculate, based on the historical interaction data maintained by the data platform, a response likelihood value for at least
one potential responder of the one or more potential responders for the security incident identified based on the predefined
response template, the response likelihood value for the at least one potential responder being indicative of a likelihood
that the at least one potential responder will respond to a future security incident.

US Pat. No. 9,104,872

MEMORY WHITELISTING

Bank of America Corporati...

1. A method comprising:
(i) loading a plurality of known clean files into a volatile computer memory, the computer hashing the plurality of known
clean files to generate a plurality of first hashes in a table;

(ii) receiving a second hash of an unknown file, the second hash generated on an unknown system;
(iii) storing the second hash in a nonvolatile memory;
(iv) using a processor of the computer, comparing the plurality of first hashes in the table with the second hash to compute
match scores, wherein the match scores are indicative of a relative degree to which the plurality of hashes in the table and
the unknown file are similar to accommodate for trivial changes in the unknown file and wherein the match scores are determined
using weights to reflect the severity of certain changes and wherein the weights are configured to be dynamically changed
by a user; and

(v) determining whether there is a match between the second hash and one of the plurality of first hashes in the table, wherein
if there is a match between the second hash and one of the plurality of the first hashes in the table whitelisting the unknown
file;

(vi) wherein if there is not a match between the second hash and one of the plurality of the first hashes in the table determining
whether the match scores are above a designated threshold numerical value that is between a first numerical value and a second
numerical value greater than the first numerical value, and whitelisting the unknown file;

(vii) transmitting the match scores information to the unknown system; and
(viii) periodically checking the whitelisted unknown file for further threats.

US Pat. No. 9,519,474

MODULAR SYSTEM INCLUDING MANAGEMENT AND DEPLOYMENT OF SOFTWARE UPDATES AND REVISIONS

BANK OF AMERICA CORPORATI...

1. A computer program product comprising:
a non-transitory computer-readable medium comprising:
a first set of codes for causing a computer to determine and automatically implement an optimal schedule for service deployment
and service version updates based at least on (i) three or more predetermined lifecycle levels, each predetermined lifecycle
level being assigned to one of at least three or more networked devices in the enterprise executing the service delivery application
and (ii) segments within the enterprise, wherein each of the three or more predetermined lifecycle levels is selected from
the group consisting of (1) development, (2) System Integration Testing (SIT), (3) User Acceptance Testing (UAT), (4) pre-production
and (5) production, and wherein each of the at least three or more networked devices has a different one of the three or more
predetermined lifecycle levels;

a second set of codes for causing a computer to deny execution of non-permitted service versions by requiring networked devices
in the enterprise that execute the service delivery application to verify a version being launched prior to executing the
version; and

a third set of codes for causing a computer to schedule deactivation of a declining service version and alert service delivery
application users of the scheduled deactivation of the declining service version and a need to download an emerging version.

US Pat. No. 9,508,057

AUTOMATICALLY UPDATING ACCOUNT INFORMATION

Bank of America Corporati...

1. A method for updating account information, the method comprising:
receiving, by an interface, first account information associated with a payment account of a user;
storing, by a first memory, the first account information;
receiving, by the interface, payee system information associated with a plurality of payee systems, wherein the payee system
information comprises encryption information for accessing the payee system and the plurality of payee systems store one or
more portions of the first account information;

storing, by a second memory, the payee system information associated with the plurality of payee systems;
automatically determining, by a processor, that a first type of payment transaction from the payment account has occurred,
the payment transaction generating an update event, wherein the payment transaction comprises at least an attempted transfer
of funds into or out of the payment account;

updating, based on the update event, at least a portion of the account information;
automatically determining, by a processor, whether one or more of the plurality of payee systems is configured to initiate
recurring payments from the payment account of the user; and

if one or more of the payee systems is configured to initiate recurring payments, automatically communicating, by the interface,
a payee update message comprising the updated account information to the one or more configured payee systems.

US Pat. No. 9,483,634

PASSWORD GENERATOR

Bank of America Corporati...

1. A method, comprising:
receiving, at a processor, a current request to generate a current single-use, short-term password, wherein the current request
comprises prompts for entry of a data warehouse environment, an ID name, and a text box for typing a reason for password reset;

determining, at the processor, a current time that the current request to generate the current single-use, short-term password
is received at the processor;

identifying, at the processor, a latest prior request to generate a prior single-use, short-term password initiated for the
same ID name and the data warehouse environment, wherein the identifying comprises determining a prior time that the latest
prior request was received at the processor;

calculating, at the processor, a time difference between the current time that the current request to generate the current
single-use, short-term password is received at the processor and the prior time the latest prior request to generate the prior
single-use, short-term password was received at the processor;

determining whether a previous user who initiated the latest prior request with the same ID name and data warehouse environment
has logged on using the prior single-use, short-term generated password;

comparing, at the processor, the time difference with a short term time limit;
if the previous user who initiated the latest prior request with the same ID name and data warehouse environment has not logged
on with the prior single-use, short-term password generated by the latest prior request and the time difference is less than
the short term time limit, outputting, by the processor, a denial message; and

if the time difference is greater than the short term time limit or the previous user who initiated the latest prior request
to generate the prior single-use, short-term password has logged in using the prior single-use, short-term password, randomly
generating and outputting, by the processor, the current single-use, short-term password.

US Pat. No. 9,477,492

DEPLOYING MULTI-CHANNEL OR DEVICE AGNOSTIC APPLICATIONS

Bank of America Corporati...

1. A computer-implemented method for developing a device agnostic application comprising:
extracting one or more user interface input components from a user interface of an application;
building a corresponding user interface with user interface input components from a centralized repository; and
extending the application to a plurality of channels or devices by adapting the corresponding user interface for use on each
channel or device such that each input component of the corresponding user interface is included only if the channel or device
supports the input component.

US Pat. No. 9,465,722

ERROR ASSESSMENT TOOL

BANK OF AMERICA CORPORATI...

1. A system for assessing error notifications associated with one or more application functions and determining remediation
steps to rectify the error, the system comprising:
a memory;
a processor; and
a module stored in the memory, executable by the processor, and configured to:
receive an indication of an error associated with at least one function in an application, wherein the application is dynamically
hosted by one or more servers, wherein the one or more servers are associated with a back-end system;

extract information associated with the application from one or more sources, wherein the information comprises at least one
of one or more known errors associated with the at least one function, one or more resolutions associated with the one or
more known errors, and/or impacts associated with the at least one function;

determine that the error associated with the at least one function in the application is not associated with the back-end
system;

initiate an external communication with one or more vendors associated with the application indicating the error to determine
that the error associated with the at least one function is to be resolved by the one or more vendors; and

initiate a presentation of a second user-interface to enable a user to begin an error resolution process with the one or more
vendors associated with the application to resolve the error, wherein the second user-interface comprises at least one of
an aggregation of the information extracted from the one or more sources, a summary of the error, an error type, and/or access
to one or more tools used to resolve the error.

US Pat. No. 9,417,868

ENTITY WIDE SOFTWARE TRACKING AND MAINTENANCE REPORTING TOOL

BANK OF AMERICA CORPORATI...

1. A system for entity wide software tracking and monitoring, the system comprising:
a memory device with computer-readable program code stored thereon;
a communication device;
a processing device operatively coupled to the memory device and the communication device, wherein the processing device is
configured to execute the computer-readable program code to:

receive maintenance update products from one or more vendors;
generate tracking modules for the maintenance update products, wherein one tracking module is designated to each maintenance
update product from the one or more vendors, wherein the tracking modules are self-contained and self-describing that create
an executable load module in a run-time library of the maintenance update products;

create an entity internal standard name for the maintenance update product with the incorporated tracking module, wherein
the entity internal standard name is coded for retention;

allow user input of maintenance information into scripting language of the tracking module designated to the maintenance update
product, wherein user input of maintenance information into scripting language of the tracking modules includes contact information
for an individual to receive, automatically, the generated report for the progress of the maintenance update;

incorporate the tracking module into the maintenance update product and apply maintenance update to appropriate location within
the entity information technology infrastructure;

execute the tracking module incorporated into the maintenance update product, wherein executing the tracking module allows
the tracking module to communicate a progress of the maintenance update that the tracking module is incorporated therewith;

generate a report of the progress of the maintenance update based on the executed tracking module for each of one or more
maintenance update products applied within the entity; and

provide the user with the report of the progress of the maintenance update associated with the tracking module, wherein the
provided report is based on a user query for the report or user input of maintenance information into the scripting language
of the tracking module.

US Pat. No. 9,369,307

OPTIMIZED SERVICE INTEGRATION

Bank of America Corporati...

1. A non-transitory computer-readable storage medium having computer-executable program instructions stored thereon that when
executed by a processor, cause the processor to perform:
(a) receiving, by a service router from a client device associated with a service requestor, a service request associated
with a service implemented by at least one of a plurality of service providers;

(b) analyzing, by the service router, information within the service request to determine at least one policy for handling
the service request based on information stored in an enhanced service repository;

(c) determining, by the service router, whether there exists, in a cache of the service router, a valid token associated with
the service and the at least one policy;

(d) responsive to a determination that no valid token exists, transmitting, by the service router, the service request to
an integration service;

(e) receiving, by the integration service, a generic token having a plurality of fields from a token service;
(f) generating, by the integration service, from the generic token, a customized token by populating each field of the generic
token based, at least in part, on information within the service request and the at least one policy;

(g) receiving, by the service router from the integration service, the customized token for handling the service request;
(h) caching the customized token by the service router; and
(i) routing, by the service router, the customized token to one of the plurality of service providers.

US Pat. No. 9,317,411

TESTING COORDINATOR

Bank of America Corporati...

1. A system for testing two or more applications associated with a computerized process, the system including:
a central repository configured to store one or more test cases, wherein each test case includes a test data set, a first
set of test scripts associated with a first test tool and a second set of test scripts associated with a second test tool;

a user interface, the user interface to facilitate a selection of one or more test cases for use by the testing coordinator;
a testing coordinator in communication with the repository and the user interface, the testing coordinator including a processor
configured to test operation of the computerized process by coordinating testing of the two or more applications according
to the test case selected from the central repository, the processor configured to:

determine an efficient use of available testing resources based on the operation of at least the first test tool and the second
test tool, any dependencies between the two or more applications, and an amount of resources available to process the first
set of scripts and the second set of scripts;

initiate testing of the first application by the first test tool using the test data set and the first set of scripts from
the selected test case, wherein the first application updates the test data set with data output from the first application;
and

initiate testing of the second application by the second test tool using the updated test data set and the second set of scripts
from the selected test case, wherein a selection of the second set of scripts is based on the data output from the first application;
and

wherein the first set of scripts is incompatible with the second test tool.

US Pat. No. 9,292,849

MOBILE ONE-TIME CARD NUMBER GENERATOR FOR ATM USAGE

Bank of America Corporati...

1. A mobile device for generating a one-time bank card number for automated teller machine (ATM) usage, the mobile device
comprising:
a memory;
a processor;
a display; and
a module stored in the memory, when executed by the processor, causes the processor to:
present, using the display, a digital wallet, wherein the digital wallet is configured to represent storage of a plurality
of one-time bank card numbers and/or readable indicia in the memory of the mobile device, the digital wallet comprising:

a transfer input configured to receive input from the user and initiate a transfer of funds to a third party;
a purchase input configured to receive input from the user and initiate a purchase with a merchant;
a withdraw input configured to receive input from the user and initiate an ATM transaction on an account owned by the user;
and

a generate input configured to receive input from the user and initiate generation of a readable indicia;
receive a request from a user, by the withdraw input of the digital wallet, to perform the ATM transaction on the account
owned by the user;

in response to the request to perform the ATM transaction, generate a one-time bank card number associated with the account
owned by the user;

generate the readable indicia based at least in part on the one-time bank card number; and
initiate communication of the readable indicia to an ATM by causing the display to display the readable indicia, wherein the
ATM receives a user authentication credential from the user, a bank system validates the user authentication credential and
in response to validating the user authentication credential, approves the ATM transaction for the user's account.

US Pat. No. 9,218,438

COMPUTING ARCHITECTURE FOR STORING A GRAPH DATABASE BASED ON TEMPORAL ASPECTS OF ITS EDGES

Bank of America Corporati...

1. A method comprising:
at a computing platform comprising at least one processor, a memory, and a communication interface:
receiving, via the communication interface, data specifying a new edge of a graph database and comprising information identifying
a first node of the graph database and a second node of the graph database, the new edge associating the first node with the
second node;

identifying, by the at least one processor, from amongst a plurality of data stores utilized to store one or more portions
of the graph database, and based on a time when an element represented by the first node was associated with an element represented
by the second node, a data store for storing the new edge, each data store of the plurality of data stores being associated
with a time range corresponding to when elements represented by nodes of the graph database associated by edges of the graph
database stored in the data store were associated with one another, and the data store for storing the new edge being associated
with a time range comprising the time;

deleting, by the at least one processor, one or more edges of the graph database stored by a data store of the plurality of
data stores associated with a time range comprising one or more past times;

altering, by the at least one processor, the time range comprising the one or more past times to comprise one or more future
times; and

querying, by the at least one processor, the graph database for one or more values associated with a specified time range.

US Pat. No. 9,215,590

AUTHENTICATION USING VEHICLE DATA PAIRING

Bank of America Corporati...

1. A method, comprising:
wirelessly pairing a portable electronic device with an on-board computer of a vehicle;
wirelessly conducting a transaction between the portable electronic device and a third party wherein the third party is located
external to the vehicle; and

authenticating the transaction with the third party based on the level of trust established by the pairing of the portable
electronic device with the on-board computer of the vehicle.

US Pat. No. 9,197,643

APPLICATION AND PERMISSION INTEGRATION

Bank of America Corporati...

1. An apparatus, comprising:
at least one processor; and
memory storing computer-readable instructions that, when executed by the at least one processor, cause the apparatus to:
identify a first set of applications having a first set of permissions, the first set of permissions being based on a type
of application of applications in the first set of applications;

identify a second set of applications having a second set of permissions, the second set of permissions being different from
the first set of permissions and being based on a type of application of applications in the second set of applications, the
applications in the second set of applications being different from the applications in the first set of applications;

integrate the first set of applications with the second set of applications in an application region, wherein the first set
of applications and the second set of applications are configured to be in communication with each other and share data with
each other within the application region; and

define a third set of permissions for the application region and the integrated applications within the application region,
the third set of permissions identifying rules for communication and data sharing between at least one application of the
first set of applications and at least one application of the second set of applications.

US Pat. No. 9,189,377

AUTOMATION TESTING USING DESCRIPTIVE MAPS

Bank of America Corporati...

1. An article of manufacture comprising:
a non-transitory machine readable memory having computer readable program code embodied therein;
one or more processors configured to execute the computer readable program code; and
a system bus configured to transfer the computer readable program code from the machine readable memory to the processor;the code when executed by the one or more processors, performs a method for automation testing of a webpage of a User Interface
(“UI”), the method comprising:
receiving an Instruction Sheet comprising:
an automation test scenario; and
a reference to a Data Sheet;
extracting from the Data Sheet:
a reference to a first UI Map; and
a testing parameter for a first UI control;
extracting, from the first UI Map, metadata associated with the first UI control, the metadata comprising:
the webpage that comprises the first UI control;
a name of the first UI control;
a control type associated with the first UI control on the webpage;
a category associated with the first UI control on the webpage;
a default value for the first UI control on the webpage; and
a reference to a second UI control triggered in response to user manipulation of the first UI control;
initializing the first UI control based on the metadata;
applying the automation test scenario to the first UI control using the testing parameter; and
in response to applying the automation test scenario the first UI control, initializing the second UI control based on a second
UI Map associated with the second UI control;

wherein:
the applying of the automation test scenario comprises initializing a class object using a two-part keyword;
a first part of the keyword initializes computer code that is configured to:
identify the first UI Map; and
extract the metadata from the first UI Map; and
a second part of the keyword initializes computer code that is configured to execute the automation test scenario using the
testing parameter.

US Pat. No. 9,177,138

CHANGE CONVERGENCE RISK PLANNING AND AVOIDANCE

Bank of America Corporati...

1. A change convergence risk mitigation system, comprising:
a processor;
a memory;
a risk mitigation module stored in the memory, executable by the processor and configured for:
receiving information associated with a plurality of events occurring during a plurality of time periods, wherein the information
associated with each event includes event timing information and event risk information;

determining an event risk score for each of the plurality of events;
aggregating the event risk scores of the plurality of events occurring during a time period and, based on the event risk scores,
determining a total risk level for each of the plurality of time periods;

determining that the total risk level for a first time period of the plurality of time periods is at least equal to a predefined
risk level;

identifying a risk mitigation event occurring in the first time period where the risk mitigation event has an associated event
risk score that would cause the first time period to have a total risk level that is lower than the predefined risk level
if the risk mitigation event was not scheduled to occur in the first time period,

wherein receiving information associated with a plurality of events further comprises receiving information associated with
the risk mitigation event, wherein the information associated with the risk mitigation event includes event timing information
and event risk information, the event timing information associated with the risk mitigation event indicating that the risk
mitigation event is associated with the first time period;

based on the event risk score associated with the risk mitigation event, determining a risk mitigation time period from the
plurality of time periods such that the risk mitigation time period would not have the predefined risk level if the risk mitigation
event occurred during the risk mitigation time period;

providing a recommendation that the risk mitigation event occur during the risk mitigation time period comprising transmitting
electronically the recommendation to a user computing device;

receiving from the user computing device a decision to move the risk mitigation event to the risk mitigation period; and
modifying the information associated with the risk mitigation event to indicate that the risk mitigation event will occur
during the risk mitigation time period.

US Pat. No. 9,100,188

HARDWARE-BASED ROOT OF TRUST FOR CLOUD ENVIRONMENTS

Bank of America Corporati...

1. An apparatus comprising:
at least one processor; and
at least one memory storing computer executable instructions that, when executed by the at least one processor, cause the
apparatus at least to:

initiate creation of a measured virtual machine (VM) associated with a virtualization platform provided by a cloud provider;
initiate establishment of a secure tunnel for communication with the measured VM;
receive a quote generated by a trusted protection module (TPM) included in physical infrastructure associated with the virtualization
platform, the quote being generated based on a measurement of the measured VM, wherein the quote is uniquely tied to hardware
included in the physical infrastructure, and the cloud provider creates an association between the TPM and the quote for confirming
authenticity of the physical infrastructure associated with the virtualization platform; and

determine whether the measured VM is authentic based on the quote and the association between the TPM and the quote created
by the cloud provider.

US Pat. No. 9,520,033

TRANSACTION MACHINE WITH MULTIPLE TRANSACTION ACCESS POINTS

Bank of America Corporati...

1. An automated teller machine (ATM) comprising:
a housing having a first side that faces a first direction and a second side that faces a second direction different than
the first direction;

a first ATM transaction access point positioned at the first side of the housing and configured to provide a first set of
ATM transaction options;

a second ATM transaction access point positioned at the second side of the housing and configured to provide a second set
of ATM transaction options wherein the second set of ATM transaction options are a subset of the first set of ATM transaction
options and includes only a withdrawal transaction option and a fast cash transaction option;

a bill cartridge configured to store bills of a denomination and provide the bills to the first ATM transaction access point
and the second ATM transaction access point;

a routing mechanism configured to route at least one bill from the bill cartridge to one of a first bill dispenser of the
first ATM transaction access point and a second bill dispenser of the second ATM transaction access point during a transaction;
and

a controller configured to control operation of the routing mechanism during the transaction.

US Pat. No. 9,477,700

DATA ENVIRONMENT CHANGE NOTIFICATION

BANK OF AMERICA CORPORATI...

1. A method of monitoring and providing notification of changes to a data environment, using a notification server, the method
comprising:
storing, on the notification server in a monitoring parameters data store, parameters of interest for monitoring of changes
that are made to at least one selected metadata data store, the at least one metadata data store including metadata corresponding
to data in at least one local server;

storing, on the notification server in a notification instructions data store, instructions related to notification of the
changes;

monitoring, using a change monitor executed by the notification server and based on the parameters of interest, the at least
one metadata data store for changes;

initiating creation of a change notification communication, using a notification engine executed by the notification server,
to a recipient based on the instructions related to notification of the changes, in response to one or more changes detected
in the metadata data store, the change notification communication comprising information indicating that one or more changes
has been detected in the metadata data store;

communicating, using the notification engine executed by the notification server, the change notification communication to
the recipient, the notification communication comprising a notification instruction;

in response to detecting one or more changes in the metadata data store, communicating a remote procedure call using an application
programming interface (API) protocol to an automated workflow system for responding to the one or more changes based on a
defined automated process;

determining whether the one or more changes detected in the metadata store matches one or more changes with corresponding
one or more automated actions stored in a notification instructions data store;

in response to determining that the one or more changes in the metadata data store matches the one or more changes with corresponding
one or more automated actions, initiating a remote procedure call from the notification instructions data store to execute
the one or more corresponding automated actions in the metadata data store; and

maintaining auditability of notification engine actions and communications to data consumers and communications to a workflow
system for automated review of the changes and responsive action, the maintaining comprising:

tracking and storing, using the notification engine, a history of change notification communications comprising a history
of change notification communication creations and distributions.

US Pat. No. 9,460,188

DATA WAREHOUSE COMPATIBILITY

Bank of America Corporati...

1. A system for establishing compatibility between an open-source data warehouse and a proprietary data warehouse, the system
comprising:
a distribution processing module which receives a set of unprocessed, raw data points;
a distributed file system which stores the set of data points according to a first data format;
a first data warehouse which executes an extract, transform, and load (ETL) operation on the set of data points, the ETL operation
comprising an extract process which selects from the set of data points a subset of data points for transformation and loading
into a second data warehouse that uses a second data format; and

a workflow scheduler which schedules execution of the ETL operation according to a workflow implemented as a directed acyclic
graph comprising a plurality of action nodes that each specify an action to perform for the ETL operation wherein the plurality
of action nodes comprise at least one action node that specifies a map and reduce process to perform on the subset of data
points;

wherein the ETL operation further comprises one or more transformation processes, each transformation process comprising transforming
individual data points in the subset of data points to obtain a set of transformed data points having the second data format;

wherein the one or more transformation processes comprise a group rank process, the group rank process comprising ranking
a data subset that comprises a plurality of data points from the set of data points, the ranking based on a plurality of metrics,
and the group rank process further comprising storing the data subset in a ranked data table comprising a first column corresponding
to a first metric of the plurality of metrics, a second column corresponding to a second metric of the plurality of metrics,
and a third column corresponding to a rank; and

wherein the ETL operation further comprises a load process comprising loading the set of transformed data points into the
second data warehouse.

US Pat. No. 9,378,416

CHECK DATA LIFT FOR CHECK DATE LISTING

BANK OF AMERICA CORPORATI...

1. A system for extracting check data and determining a disposition of a check, the system comprising:
a computer apparatus including a processor and a memory; and
a software module stored in the memory, comprising executable instructions that when executed by the processor cause the processor
to:

receive an image of a check;
apply an optical character recognition process to at least a portion of the image of the check;
convert one or more image portions of the at least a portion of the image to text based data based at least partially on the
application;

identify a date of the check based on the text based data obtained from the one or more image portions, wherein the date of
the check is a deposit date of the check;

compare the date of the check to one or more authorization parameters, wherein the authorization parameters include a posting
date of the check, wherein the posting data of the check is the date the check is applied to an account;

identify a derivation between the date of the check and the posting date of the check; and
provide, based on the identified derivation being outside an accepted deviation range, a disposition of the check including
triggering, automatically upon a predetermined derivation between the date of the check and the posting date of the check,
additional check verification processing.

US Pat. No. 9,368,002

SENSOR SYSTEM FOR DETECTION OF A PARTIAL RETRIEVAL OF DISPENSED CURRENCY AT AN AUTOMATED TELLER MACHINE

Bank of America Corporati...

1. An apparatus for detecting a partial retrieval of currency dispensed from an automated teller machine (“ATM”), the apparatus
comprising:
a track comprising three track segments, wherein
a first track segment is positioned substantially parallel to a second track segment; and
a third track segment is positioned substantially perpendicular to the first segment and substantially perpendicular to the
second segment;

a first heat-sensitive sensor moveable along each of the three segments of the track such that the first heat-sensitive sensor
is focused on a portion of a dispenser of the ATM that is visible to an ATM customer and configured to capture first data
showing:

cash dispensed from the dispenser and awaiting retrieval by the ATM customer;
the ATM customer retrieving a first portion of the dispensed cash; and
a second portion of the dispensed cash being retracted into the ATM by the dispenser;
a second sensor oriented toward an identifying characteristic of an ATM customer and configured to capture second data comprising
the identifying characteristic of the ATM customer during a time the first sensor is capturing the first data; and

a computer system comprising:
a non-transitory computer readable medium having computer readable program code embodied therein; and
a processor configured to execute the computer readable program code; and
the computer readable program code in said computer system when executed by the processor causes the computer system to:
to determine if the first data corresponds to a partial withdrawal of cash from the ATM;
produce a fraud record when the first data corresponds to the partial withdrawal, the fraud record comprising:
at least a portion of:
 the first data captured by the first sensor; and
 the second data captured by the second sensor; and
a transaction identifier associated with the partial withdrawal;
wherein the first heat-sensitive sensor is configured to move along the track to be positioned a pre-determined distance away
from heat associated with the ATM customer to avoid the ATM customer obstructing the first heat-sensitive sensor from capturing
the first data.

US Pat. No. 9,331,917

INTEGRATED PRODUCTION SUPPORT

Bank of America Corporati...

1. A system for integrating production support, the system comprising:
a computer apparatus including a processor and a memory; and
a production support software module stored in the memory, comprising executable instructions that when executed by the processor
cause the processor to:

receive a plurality of client modules from a client application associated with an operator device in communication with the
system;

initiate recording of events occurring on the client application, wherein the events comprise opening windows, requesting
data, logging events, updating procedures, opening tools, and archiving;

receive event data associated with the recorded events from the client application;
modify the event data based on display parameters associated with a display of a user device associated with a user;
provide the modified event data to the display of the user device in real time;
increase a workload for the client application;
receive an indication of a failure of the client application from the user via the user device;
identify a first client module of the plurality of client modules, wherein the first client module is associated with the
failure of the client application;

identify a trace objective for the first client module, wherein the trace objective includes a reason for tracing the first
client module;

determine a data collection level based on the trace objective, wherein the data collection level indicates a type and an
amount of data needed to allow the user to test or correct the client module;

collect first client module data of the type and the amount of data indicated by the determined data collection level; and
provide the collected first client module data to the display of the user device.

US Pat. No. 9,298,528

EVALUATING AND SERVICING PROBLEMATIC CASH-HANDLING MACHINES

Bank of America Corporati...

1. A computer-implemented method comprising:
determining whether a determined fault exists in a cash-handling machine;
when the determined fault occurs, assigning a first chronic value to the cash-handling machine based on a predetermined set
of criteria, wherein the determined fault comprises at least one of a cash reject rate fault type, an image handling fault
type, a crash rate fault type, a user claim rate fault type, and a check handling accuracy fault type;

outputting the first chronic value of the cash-handling machine; and
when the cash-handling machine is assigned the first chronic value and the cash-handling machine operates without faults for
a predetermined time period without servicing, re-assigning a second chronic value to the cash-handling machine, wherein:

the second chronic value corresponds to a less problematic condition than the first chronic value.

US Pat. No. 9,176,950

SYSTEM AND METHOD FOR PREDICTING CUSTOMER SATISFACTION

Bank of America Corporati...

1. A system, comprising:
a telephone operable to facilitate an interaction between a customer and an associate of an entity;
one or more memory units; and
a processor communicatively coupled to the telephone and the one or more memory units and operable to:
record the interaction between the customer and the associate of the entity and store the interaction in the one or more memory
units;

using the recorded interaction, automatically generate interaction data and store the interaction data in the one or more
memory units, wherein the interaction data comprises:

speaker separation data indicating whether the customer or the associate of the entity is speaking in the interaction; and
talk-over data indicating one or more instances when the customer and the associate of the entity are speaking over each other;
retrieve the stored interaction data and determine, from the retrieved interaction data, one or more keywords in the interaction
between the customer and the associate;

determine, from the retrieved interaction data, an order of the one or more keywords;
determine, from the retrieved interaction data, a grouping of the one or more keywords;
determine, based on the keywords, order, grouping, speaker separation data, and talk-over data, a perception of the entity
by the customer, the determination of the perception of the entity occurring in real-time after the interaction between the
customer and the associate.

US Pat. No. 9,171,148

PROCESS FOR REPORTING AND REMEDIATING APPLICATION DEVELOPMENT STANDARDS

Bank of America Corporati...

1. An apparatus for monitoring application development standards, wherein the apparatus evaluates application source code
and identifies non-approved application code, whereby recommended alternative application code may be recommended, the apparatus
comprising:
a memory;
a computing processor; and
a module stored in the memory, said module comprising instruction code executable by one or more computing processors, and
configured to cause the one or more computing processors to:

access application code on a server associated with a network, wherein the application code is installed on the server;
scan the application code to identify applications or portions of applications that are integrated into the application code;
identify products in the application code based on the scan, wherein the product is identified based on a diagnostic feature
of the product determined based on the scan of the application, wherein the diagnostic feature is selected from the group
consisting of metadata associated with the product, directory structure associated with the product, and keywords associated
with the product;

compare the products identified in the application code to a list of non-allowed products, wherein the list is stored in a
database;

identify non-allowed products in the application code based on the comparison of the products to the list;
determine an allowed product as an alternative to the non-allowed product;
remove the non-allowed product from the server;
install the alternative allowed product on the server; and
provide a report to a user comprising the non-allowed product, the alternative allowed product, identities of persons that
installed the non-allowed products on the server, and a length of time the non-allowed product was installed on the server.

US Pat. No. 9,105,011

PREPOPULATING APPLICATION FORMS USING REAL-TIME VIDEO ANALYSIS OF IDENTIFIED OBJECTS

Bank of America Corporati...

1. A computer-implemented method for populating a document with user information based on identification of an object associated
with the document in an augmented reality environment, the method comprising:
receiving a request from a user, wherein the request is associated with populating one or more documents with information
associated with a user, wherein the one or more documents comprises one or more indicators to assist in populating at least
a portion of the document;

capturing a real-time video stream using a mobile device, wherein the mobile device includes a video camera and a screen for
displaying the real-time video stream to the user, wherein the real-time video stream comprises an object;

analyzing, via a computing device processor, the video stream to identify the object based on at least one or more markers
in a database, wherein identifying the object further comprises comparing the object in the real-time video stream with the
one or more markers to determine a match;

extracting one or more data associated with the object from the real-time video stream, wherein the one or more data comprises
user information;

identifying, via a computing device processor, the one or more documents associated with the object in the database based
on at least comparing one or more markers used to identify the object with a reference image associated with the document
stored in the database to determine a match;

initiate a presentation of a user interface on the screen of the device comprising the one or more identified documents, wherein
the user interface enables the user to select at least one of the one or more identified documents to be populated;

displaying an image of the at least one selected document identified in the database on the screen of the device;
determining one or more additional information required to populate the at least one selected document, wherein the one or
more additional information is associated with the user;

retrieving the one or more additional information from one or more personal documents associated with the user stored in a
remote database, wherein retrieving further comprises extracting the one or more additional information from the one or more
personal documents;

populating at least a portion of the at least one selected document with one or more data extracted from the object using
the one or more indicators associated with the one or more documents and the one or more additional information retrieved
from the one or more personal documents associated with the user; and

displaying the at least one populated document to the user via the screen of the device.

US Pat. No. 9,094,391

DYNAMIC TRUST FEDERATION

Bank of America Corporati...

1. A computer implemented method in an electronic computer network, comprising:
electronically maintaining a plurality of different applications associated with a plurality of different user accounts in
a database of computer readable memory connected to an electronic computer network; the plurality of different applications
forming an electronic federated group having a computer readable security token of the federated group associated therewith;
the security token having a first level of authentication stored therein for access to the federated group, the security token
including a federation identification attribute for identification of the federation group, and a geo-location attribute;

at a computer processor server, electronically receiving a request for sign-on to at least one of the different applications
in the federated group associated with at least one user account, wherein the request for sign-on originates from a mobile
computing device connected to the electronic computer network;

responsive to the request for the sign-on at a computer processor server, electronically determining a level of authentication
associated with the least one user account;

electronically validating the level of authentication with the first level of authentication of the security token associated
with the federated group;

electronically transmitting the security token to a computer readable memory of the mobile computing device;
electronically receiving a request to change the first level of authentication; and electronically modifying at the first
level of authentication associated with the security token stored in the computer readable memory of the mobile computing
device for the federated group to a second level of authentication and electronically storing the second level of authentication
in the security token for the federated group thereby permitting a subsequent request for sign-on by another user account
on another computing device to be validated with the second level of authentication, the first level of authentication being
different from the second level of authentication.

US Pat. No. 9,047,590

SINGLE IDENTIFIABLE ENTRY POINT FOR ACCESSING CONTACT INFORMATION VIA A COMPUTER NETWORK

Bank of America Corporati...

1. A method comprising:
presenting, via a computing device processor, for electronic display an activatable indicium configured as an entry point
for accessing contact information, wherein the activatable indicium comprises a contact option;

determining, via a computing device processor, an estimated waiting time for the contact option based on a number of users
attempting to establish contact via the contact option and a number of agents available for responding via the contact option;

presenting, via a computing device processor, the estimated waiting time for the contact option, wherein the estimated waiting
time is presented on the electronic display in conjunction with the presentation of the contact option;

determining, via a computing device processor, a preference index for the contact option, the preference index being based
on a first cost for a user to establish contact with an agent via the contact option and a second cost for the agent to establish
contact with the user via the contact option;

presenting, via a computing device processor, the preference index for the contact option, wherein the preference index is
presented on the electronic display in conjunction with the presentation of the contact option;

determining, via a computing device processor, a preference index for a particular contact option is below a threshold index;
and

graphically presenting, via a computing device processor, the particular contact option as being unavailable.

US Pat. No. 9,633,094

DATA LOAD PROCESS

Bank of America Corporati...

1. A computer-implemented method for loading a source data file comprising:
extracting, by a computing device, data from a source data file;
validating, by the computing device, the data from the source data file;
transforming, by the computing device, the data from the source data file to generate transformed data;
sending, to a first message processor, a first request for the transformed data to be transferred to a first database;
in response to the first request for the transformed data to be transferred to the first database, delivering the transformed
data to the first database;

sending, to a second message processor, a second request for the transformed data to be transferred to a second database;
in response to the second request for the transformed data to be transferred to the second database, delivering the transformed
data to the second database;

generating, by the first message processor and the second message processor, a response that the transformed data has been
transferred to the first database and the second database; and

based on the response that the transformed data has been transferred to the first database and the second database, generating,
by the computing device, an acknowledgement indicating that the first database and the second database received the transformed
data.

US Pat. No. 9,589,147

STEGANOGRAPHY DETECTION

Bank of America Corporati...

1. A system comprising:
one or more processors;
a data store that stores a set of steganographic criteria; and
memory storing computer-executable instructions that, when executed by one of the processors, cause the system to
determine whether to analyze a first computer file for potential use of steganography based, at least in part, on an analysis
of an electronic communication associated with the first computer file, and

responsive to determining to analyze the first computer file for potential use of steganography,
perform a comparison of the first computer file to a second computer file that at least appears to be a copy of the first
computer file based on a file characteristic that the first and second computer files have in common,

apply at least one steganographic criterion in the set of steganographic criteria to at least one result of the comparison,
and

determine whether the first computer file potentially includes hidden content based on whether one or more of the steganographic
criteria are satisfied.

US Pat. No. 9,432,354

ROLE-BASED ACCESS TOOL

Bank of America Corporati...

1. A system for providing a role-based access tool, the system comprising:
a memory device having computer readable program code store thereon; and
a processing device coupled to the memory device, wherein the processing device executes the computer readable program code
to:

receive a single sign-on login from a user;
determine an identity of the user based on the single sign-on login;
authorize a defined role of the user by:
accessing a database comprising a plurality of users and associated roles; and
determining a level of the user in an organization;
determining the defined role based on the identity of the user and the associated roles in the database and the level of the
user;

wherein the level is selected from the group consisting of a system administrator, a middleware administrator, a midrange
administrator, a database administrator, and an application support specialist;

present one or more service catalogs to the user based on the defined role of the user, wherein the one or more service catalogs
comprise a listing of actions that the user is authorized to perform;

receive a request to complete an action associated with the listing of actions from the one or more service catalogs, wherein
the request comprises a plurality of systems on which to complete the action;

process the action for execution after receiving the request by:
identifying system parameters associated with the action;
evaluating each of the plurality of systems on which the action will be run to determine whether each of the plurality of
systems meet the system parameters;

determining that each of the plurality of systems meet the system parameters; and
validating the action based on determining that each of the plurality of systems meet the system parameters; and
run the action on each of the plurality of systems, wherein the user does not provide an additional sign-in login for each
of the plurality of systems.

US Pat. No. 9,367,875

MOBILE KIOSK FOR ENHANCED FINANCIAL PRODUCT OFFERINGS

Bank of America Corporati...

1. A mobile kiosk comprising a vehicle and a kiosk portion coupled to the vehicle, the mobile kiosk operable to:
receive information for a first configuration of financial products, the first configuration determined according to a first
vendor;

apply the first configuration to the mobile kiosk;
provision a first set of the financial products while the mobile kiosk is configured according to the first configuration;
receive information for a second configuration of the financial products, the second configuration determined according to
a second vendor, wherein the second configuration differs from the first configuration and the second vendor differs from
the first vendor;

apply the second configuration to the mobile kiosk; and
provision a second set of the financial products while the mobile kiosk is configured according to the second configuration.

US Pat. No. 9,330,374

SOURCE-TO-PROCESSING FILE CONVERSION IN AN ELECTRONIC DISCOVERY ENTERPRISE SYSTEM

Bank of America Corporati...

1. A method for electronic communication file conversion in an enterprise-wide electronic data discovery system, the method
comprising:
creating, in a computing device memory, one or more custodian profiles comprising a history of storage locations used by the
one or more custodians, wherein the history is automatically generated in response to monitoring the computer usage of the
one or more custodians, wherein the storage locations are locations in which multiple files are stored, and wherein the storage
locations comprise at least one of a personal computing device, an email account, network storage area, and shared drive,
and wherein creating the one or more custodian profiles further comprises:

associating each individual custodian profile with an identifier of the custodian associated with the individual custodian
profile; and

updating each individual custodian profile at regularly scheduled intervals based at least partially in response to determining
the update is related to the identifier of the custodian associated with the individual custodian profile;

receiving, by a computer processing device, a data request to capture electronic data including electronic communication files
for one or more custodians, wherein at least one of the electronic communication files is a meeting request, and wherein the
electronic data is one or more compression scheme files;
determining, by a computing processing device, based on the one or more custodian profiles, one or more storage locations
in which the one or more custodians stored the electronic data;
capturing the electronic data including electronic communication files from the one or more custodians based on the data request,
wherein at least a portion of the electronic data is captured from the one or more storage locations determined;

storing, in computing device memory, the captured electronic data;
copying, by a computing device processor, the electronic data to a conversion server;
extracting the electronic communication files from the one or more compression scheme files;
automatically identifying, by a computing device processor, at least one of the electronic communication files as a meeting
request;

determining, for each of the meeting requests, one or more task requests associated with the electronic communication files;
automatically determining, by a computing device processor, that file conversion is necessary for one or more of the electronic
communication files;

automatically determining, by a computing device processor, a predetermined file format to which the electronic communication
files will be converted, wherein the predetermined file format is a meeting appointment where the electronic communication
file is a meeting request;

automatically converting, by a computing device processor, one or more of the electronic communication files to the predetermined
file format, wherein converting the electronic communication files comprises re-formatting the electronic communication files,
and wherein one or more of the meeting requests are converted to meeting appointments, wherein converting further comprises
converting the one or more task requests to a file format compatible to be associated with the meeting appointment;

storing, in the computing device memory, the converted one or more electronic communication files;
removing the electronic communication files from the one or more compression scheme files based on the electronic communication
files being converted;

determining whether the one or more compression scheme files are empty based on removing the electronic communication files;
removing, from memory, the one or more compression scheme files that are empty;
forward the compression scheme files that are not empty for quality control processing;
and
outputting, by a computing device processor, indices related to file conversion of the electronic communication files, wherein
the indices include, a number of files undergoing format change, type of format change, number of email messages, number of
other type entries, the number messages/entries undergoing form change, the type of form change, the number of email messages
undergoing form change, and the number of appointments undergoing form change.

US Pat. No. 9,218,701

IMAGE OVERLAY FOR DUPLICATE IMAGE DETECTION

Bank of America Corporati...

1. A system for detecting duplicate images, the system comprising:
a computer apparatus including a processor and a memory; and
a duplicate detection software module stored in the memory, comprising executable instructions that when executed by the processor
cause the processor to:

receive multiple images;
determine that a first image of the multiple images and a second image of the multiple images have similar key attributes;
determine that the first image and the second image are not identical;
retrieve a document template associated with the first and second images;
superimpose the first image over the second image, wherein the first image and the second image are further superimposed over
the document template;

compare the first image with the second image and the document template;
identify differences between the first image and the second image relative to the document template, the differences comprising
a portion of the first image containing first markings and a portion of the second image containing second markings;

determine that the portion of the first image and the portion of the second image are positioned in different and separate
areas of each of the first and second images, wherein the first markings and the second markings are identical; and

discard at least one of the first image and second image based on one or more sources of the first image and the second image,
image quality of the first image and the second image, or receipt date of the first image and the second image.

US Pat. No. 9,212,007

CORRECTION OF CUSTOMER MAILING INFORMATION

Bank of America Corporati...

1. Apparatus for applying a mailing label, the apparatus comprising:
a mail receipt conveyor;
a mail registration station that is configured to receive from the mail receipt conveyor a mail item that includes on an exterior
surface of an envelope a printed message indicating that a customer name appearing on the mail item does not correspond to
an address on the mail item;

an imaging device that is configured to capture a delivery error segment of the surface;
a processor device that is configured to identify an electronic mail address that corresponds to a customer name in the addressee
segment of the surface;

a transmitter device that is configured to transmit to the email address an electronic form for electronically receiving a
different address;

the processor device being further configured to:
route the envelope from a mail item digitization process to a holding bin;
at the termination of a wait period during which the different address is not received:
route the envelope back to the mail item digitization process; and
route an electronic image of a part of the mail item to a destination corresponding to the part; and
flag the electronic image as exceptional based on the printed message.

US Pat. No. 9,105,020

TRANSACTION DEVICE AND PROCESSING SYSTEM

Bank of America Corporati...

1. A transaction processing system for evaluating transactions between a customer and a merchant, the customer being associated
with a plurality of accounts, the system comprising:
a transaction tracker that identifies a transaction executed by a customer using a transaction device, the transaction device
being operable to execute a transaction with a point of sale receiver associated with the merchant by providing an account
number for a first account of the plurality of accounts;

an account selection engine that:
receives information identifying a merchant name, a merchant category, a product name, a product category, and an amount of
the transaction;

determines a plurality of selection rules associated with the customer;
determines user criteria selected by the customer, the user criteria comprising one or more weights of the plurality of selection
rules; and

selects a recommended account based on the merchant name, the merchant category, the product name, the product category, the
amount of the transaction, the selection rules, and the user criteria; and

a performance module that:
compares the first account with the recommended account;
based on the comparison of the first account with the recommended account, determines that the recommended account is the
same as the first account used for the transaction;

determines that enabling a rewards program associated with the first account provides the customer with a financial benefit;
based on the determination that enabling the rewards program associated with the first account provides the customer with
the financial benefit, proposes enabling the rewards program associated with the first account;

compares the user criteria selected by the customer and default criteria; and
based on comparing the user criteria selected by the customer and default criteria, proposes changing the user criteria.

US Pat. No. 9,076,135

APPARATUS, METHOD AND COMPUTER-READABLE MEDIA FOR PRE-PROCESSING INFORMATION ASSOCIATED WITH A NEGOTIABLE INSTRUMENT TO IDENTIFY OPTIONS FOR PROCESSING THE NEGOTIABLE INSTRUMENT

Bank of America Corporati...

1. An apparatus, comprising:
at least one processor; and
a memory storing computer-readable instructions that, when executed by the at least one processor, cause the apparatus to:
receive an image of a portion of a negotiable instrument, the portion including a quick response (QR) code and a convenience
area;

determine information associated with the negotiable instrument based on data from the QR code;
determine an amount of the negotiable instrument based on the amount indicated in the convenience area;
pre-process the information associated with the negotiable instrument based on data from the QR code and the determined amount
to identify options to provide for available processing of the negotiable instrument; and

provide the plurality of options for selection.

US Pat. No. 9,588,745

CUSTOMIZABLE SERVICE DELIVERY SYSTEM WITH SCALABLE WORKFLOW

BANK OF AMERICA CORPORATI...

1. A system for customizable application building, servicing, and delivering, the system comprising:
a memory device with computer-readable program code stored thereon; a communication device;
a processor operatively coupled to the memory device and the communication device, wherein the processor is configured to
execute the computer-readable program code to:

compile applications available across an entire entity into a centralized location database;
separate each function of the compiled applications and store each function separately;
generate an interface for user interaction, wherein the interface is provided to a user via a user device through a secure
communicable link generated for interface interaction;

receive a request for a customized application via the interface, wherein the customized application includes applications
and functions of applications;

deploy a liaison assigned to the user and the customized application and allow for user interaction with the liaison via the
secure communicable link generated for the interface interaction for planning and implementing the customized application:

plan the customized application based on the received request, wherein planning the customized application comprises performing
a capacity assessment of the user device, wherein the capacity assessment of the user device further comprises generation
of a communicably linkage with the user device and using the communicable linkage to extract memory capacity and queue the
memory capacity of the user device for the customized application and processing compatibility of the user device to ensure
application functionality upon implementation;

implement the customized application on the user device, wherein implementation includes creating a second secure communicable
link to transmit the customized application to the user device; and

track via coded tracking module inserted into the customize application for the entity audit and maintenance; and
synchronize the customized application with entity servers and coordinate update and maintenance requirements for the customized
application.

US Pat. No. 9,466,059

SYSTEM AND METHOD FOR INVESTIGATING FRAUDULENT ACTIVITY

Bank of America Corporati...

1. An apparatus, comprising:
a memory operable to store information associated with a user account; and
a processor communicatively coupled to the memory and operable to:
receive a message indicating that a transaction associated with a card has occurred;
in response to the message, receive a first input indicating that the transaction is fraudulent;
receive a second input indicating that a report should be filed;
in response to receiving the second input, present, on a display, a plurality of questions to determine whether the card has
been stolen;

receive a third input indicating an answer to each of the plurality of questions;
in response to receiving the third input, present, on the display, an affidavit;
receive a fourth input indicating the affidavit has been electronically signed;
in response to receiving the fourth input, present, on the display, a confirmation message indicating that the report has
been filed;

receive a request for a police report associated with the transaction;
take, using a camera, a picture of the police report; and
communicate the picture in response to the request for the police report.

US Pat. No. 9,432,369

SECURE DATA CONTAINERS

Bank of America Corporati...

1. A system for providing secure data containers, wherein the system provides a virtual container providing selective access
to and selective actions regarding files stored in the virtual container, the system comprising:
a computer apparatus including a processor and a memory; and
a software module stored in the memory, comprising executable instructions that when executed by the processor cause the processor
to:

receive a request to create a container, wherein the container is a file system comprising access parameters that define one
or more permitted actions and one or more permitted users for the container;

determine a duration parameter for the container, wherein the duration parameter comprises a time duration during which the
container may be accessed;

determine a fingerprint of the container, the fingerprint being a record of a structure, a content, and communication channels
of the container at a first point in time for comparison to the container at a later time, wherein the fingerprint is stored
locally within the container;

generate the container with the access parameters, the duration parameters, and the fingerprint;
determine that a user is accessing one or more of the files stored in the container;
determine that the user is performing an action related to the one or more files;
determine that the action is a permitted action;
permit the action to occur on the one or more files when the action is a permitted action;
update the fingerprint when the action is a permitted action;
continually monitor the container for compliance with the access parameters, the duration parameters, and the fingerprint;
determine, based on monitoring the container, that the container is not in compliance with the access parameters, the duration
parameters, or the fingerprint;

automatically, in response to determining that the container is not in compliance, erase contents of the container; and
transmit an alert to a creator of the container, wherein the alert notifies the creator of the container that the container
is not in compliance.

US Pat. No. 9,389,967

METHOD AND APPARATUS FOR IMPROVING ACCESS TO AN ATM DURING A DISASTER

Bank of America Corporati...

1. A self-service device connected to a server, said server comprising a memory, the self-service device comprising:
a first chute for physically coupling an item cartridge with an item counter;
a second chute for providing a redundant physical path for physically coupling the item cartridge with the item counter;
a first portion for maintaining the connection to the memory at the server;
a second portion for maintaining a local computer memory, wherein a database of trusted self-service users is maintained within
the second portion of the self-service device; and

a processor for:
determining whether a functionality of the first chute has been destroyed by physical damage and, in the event the functionality
of the first chute has been destroyed by physical damage, replacing the functionality of the first chute with the second chute;
and

determining whether a functionality of the connection to the memory at the server has been destroyed by physical damage and,
in the event the functionality of the connection to the memory at the server has been destroyed by physical damage:

checking a potential user of the self-service device against a list of trusted users to determine whether a potential user
is stored as a trusted user; and

when the potential user is determined to be a trusted user and a self-service transaction requested by the potential user
is for an amount deemed by the self-service device to be an acceptable transaction, executing the transaction independent
of a connection to the server.

US Pat. No. 9,317,745

DATA LIFTING FOR EXCEPTION PROCESSING

BANK OF AMERICA CORPORATI...

1. A system for exception processing of financial documents, the system comprising:
a memory device with computer-readable program code stored thereon;
a communication device;
a processing device operatively coupled to the memory device and the communication device, wherein the processing device is
configured to execute the computer-readable program code to:

receive an indication of a user transaction, wherein receiving an indication of the user transaction comprises receiving a
copy of the financial documents associated with the user transaction for processing;

identify data from the financial document, wherein the data from the financial document is extracted from the financial document
using optical character recognition and the data is stored as metadata;

process the financial document by identifying exceptions in the financial documents being processed, wherein identifying exceptions
further comprises identifying a type of financial document as a credit document or a debit document;

determine known data associated with financial accounts of user based on the metadata, wherein the financial accounts are
identified by comparing the metadata not associated with the exception to financial institution records to generate the known
data;

compare the exceptions identified from the extracted metadata from the financial document to the known data associated with
the financial accounts of the user;

match an appropriate financial account to the financial document comprising exceptions, wherein the match is based on the
comparison between the extracted metadata from the financial document comprising exceptions to the known data associated with
financial accounts;

replace the exception by identifying one or more resolutions associated with the identified exceptions in the financial documents,
wherein identifying one or more resolutions further comprises comparing the extracted metadata with data associated with financial
institution records and correcting, automatically, the identified exceptions in the financial documents based on the one or
more resolutions.

US Pat. No. 9,317,266

LEVERAGING LEGACY APPLICATIONS FOR USE WITH MODERN APPLICATIONS

Bank of America Corporati...

1. A method for translating computer code, comprising:
receiving a compiler output, wherein the compiler output comprises a first set of data structures that are associated with
a source code written in a first programming language;

analyzing the first set of data structures within the compiler output;
building an internal representation of the source code based on the compiler output, wherein building the internal representation
comprises mapping the first set of data structures to a second set of data structures associated with a second programming
language; and

creating a source code template using the second set of data structures associated with the second programming language.

US Pat. No. 9,246,912

PASSWORD GENERATOR

Bank of America Corporati...

1. A method, comprising:
receiving, at a processor, a request to generate a single use short term password, wherein the request comprises prompts for
entry of a data warehouse environment, an ID name, and a text box for typing a reason for password reset;

determining, at the processor, the time that the request to generate the single use short term password is received at the
processor;

identifying, at the processor, the latest previous request to generate a single use short term password initiated for the
same ID name and the data warehouse environment, wherein the identifying comprises determining the time that the latest previous
request was received at the processor;

calculating, at the processor, a time difference between the time the request to generate the single use short term password
is received at the processor and the time the latest previous request to generate the single use short term password was received
at the processor,

determining whether a previous user who initiated the latest previous request with the same ID name and data warehouse environment
has logged on using the single use short term generated password;

comparing, at the processor, the time difference with a short term time limit;
outputting, by the processor, a denial message if the previous user who initiated the latest previous request with the same
ID name and data warehouse environment has not logged on with a previously generated single use short term password generated
by the latest previous request or the time difference is less than the short term time limit

randomly generating, by the processor, a single use short term password when the time difference is greater than the short
term time limit or the previous user who initiated the latest previous request to generate a single use short term password
has logged in using the single use short term password generated from the latest previous request; and

outputting, at the processor, the single use short term password after randomly generating the short term password.

US Pat. No. 9,215,321

UTILIZING VOICE BIOMETRICS

Bank of America Corporati...

1. A computing device, comprising:
at least one processor; and
memory storing computer readable instructions that, when executed by the at least one processor, cause the computing device
to:

receive a voice sample associated with a telephone call, wherein receiving the voice sample associated with the telephone
call comprises capturing one or more utterances that are responsive to prompts provided by a customer service representative
during an in-progress call;

determine a voice biometric confidence score based on the voice sample;
determine to route the telephone call to a first endpoint based on the voice biometric confidence score, wherein determining
to route the telephone call to the first endpoint based on the voice biometric confidence score comprises:

based on the voice biometric confidence score falling below a threshold during the in-progress call, providing routing information
to the customer service representative, the routing information being configured to cause the customer service representative
to transfer the telephone call to a specialized customer service representative for handling as a potentially illegitimate
call; and

based on the telephone call being transferred to the specialized customer service representative, determine to initiate recording
and analysis of the telephone call, wherein a recording of the telephone call is saved and sampled to create a defensive voiceprint
for identifying a caller associated with the telephone call as an illegitimate caller.

US Pat. No. 9,176,727

INFRASTRUCTURE SOFTWARE PATCH REPORTING AND ANALYTICS

Bank of America Corporati...

1. An article of comprising a non-transitory computer usable medium having computer readable program code embodied therein,
the code when executed by one or more processors configures a computer to execute a method for determining whether or not
a tool for deploying a software patch should be invoked, the method comprising:
receiving historical information regarding patch deployment over a first pre-determined amount of time;
using the historical information regarding patch deployment to determine a first patch deployment index, said index characterizing
patch deployment as a number of patches deployed per unit time;

receiving historical information regarding patch deployment over a second pre-determined amount of time;
using the historical information regarding patch deployment of the second pre-determined amount of time to determine a second
patch deployment index, said second index characterizing patch deployment as a number of patches deployed per unit time;

when the second index is greater than the first index by a pre-determined threshold, invoking the tool.

US Pat. No. 9,159,102

CLIENT DEPOSIT TRACKING

Bank of America Corporati...

1. A system for tracking depositable items packaged by a client and transferred to an offsite vault, the system comprising:
a deposit packager configured to:
store the depositable items in a cartridge;
determine an attribute corresponding to the depositable items; and
generate a first electronic identifier corresponding to the attribute;
a programmable tag affixed to the cartridge and configured to receive the first electronic identifier; and
a first scanner including hardware, configured to capture the first electronic identifier from the programmable tag;
a second scanner configured to:
capture the first electronic identifier from the programmable tag; and
transmit to a computer system:
the first electronic identifier; and
a second electronic identifier corresponding to an armored courier; and
a third scanner configured to:
capture the first electronic identifier from the programmable tag; and
transmit to the computer system:
the first electronic identifier; and
a third electronic identifier corresponding to the vault; andwherein, the computer system comprises a processor and a non-transitory computer readable media storing computer executable
instructions, that when executed by the processor configure the computer system to:
receive the first electronic identifier, the second electronic identifier and the third electronic identifier; and
calculate a projected time when at least a portion of a value of the depositable items will be credited to an account of the
client held at a bank.

US Pat. No. 9,160,865

MOBILE PLATFORM AS A DELIVERY MECHANISM FOR SECURITY CAPABILITIES

Bank of America Corporati...

1. A system for making a trust determination of a telephone number, comprising:
a memory operable to store a telephone number; and
a processor communicatively coupled to the memory and operable to:
transmit a request message to a service provider, the request message comprising the telephone number and at least two of
the following:

a telephone porting information request, requesting whether the telephone number has been ported from one service provider
to another service provider;

a call forwarding information request, requesting whether calls to the telephone number are being forwarded to a different
telephone number;

a telephone switching information request, requesting whether telephone hardware associated with the telephone number has
been switched to different telephone hardware; and

a telephone simultaneous ring information request, requesting whether calls to the telephone number will ring on another telephone
number simultaneously;

receive a response message from the service provider, the response message comprising at least two of the following:
a telephone porting information response associated with the telephone number and responsive to the telephone porting information
request;

a call forwarding information response associated with the telephone number and responsive to the call forwarding information
request;

a telephone switching information response associated with the telephone number and responsive to the telephone switching
information request; and

a telephone simultaneous ring information response associated with the telephone number and responsive to the telephone simultaneous
ring information request; and

determine a tampering concern associated with at least one of the telephone porting information response, the call forwarding
information response, the telephone switching information response, and the telephone simultaneous ring information response;
and

increase an inquiry level based at least upon the tampering concern.

US Pat. No. 9,159,069

SYSTEM FOR ENCODING CUSTOMER DATA

Bank of America Corporati...

1. A system, comprising:
a rules engine operable to:
store customer data, a first rule comprising a first plurality of conditions, and a second rule comprising a second plurality
of conditions, wherein the customer data is associated with a particular customer;

transform a first portion of the customer data into a first code segment by applying the first rule and by satisfying a condition
of the first plurality of conditions of the first rule;

transform a second portion of the customer data into a second code segment by applying the second rule and by satisfying a
condition of the second plurality of conditions of the second rule; and

combine at least the first code segment and the second code segment to form a customer profile code, wherein the customer
profile code is associated with a customer identifier;

a decision engine communicatively coupled to the rules engine and operable to:
store third party data associated with a request for customer information; and
match the customer identifier of the customer profile code to the third party data; and
an interface engine communicatively coupled to the decision engine and operable to communicate the customer profile code to
a third party if the customer identifier of the customer profile code matches the third party data.

US Pat. No. 9,483,660

ENTERPRISE CONTENT MANAGEMENT PLATFORM VALIDATOR

BANK OF AMERICA CORPORATI...

1. A system for executing a validation process for validating one or more repositories to ensure proper and consistent functionality
of one or more repositories, the system comprising:
at least one memory;
at least one processor; and
at least one module stored in memory, executable by the at least one processor, and configured to cause said at least one
processor to:

electronically receive, from a networked environment of one or more computing devices, repository identification information,
wherein the repository identification information comprises information associated with one or more repositories, wherein
the information comprises one or more parameters within which each of the one or more repositories are expected to function,
wherein the repository identification information is assigned, via a user computing device, to the one or more repositories,
wherein assigning further comprises:

establishing an electronic communication link with the user computing device:
initiating, via the established communication link, a user interface for display on the user computing device, the user interface
comprising at least one or more selectable pieces of information to be assigned to the repository and one or more options
to schedule a validation process; and

receiving, via the user interface, an input indicating identification information associated with the one or more repositories
and information associated with validating the one or more repositories;

identify at least one repository to be validated based on the received repository identification information;
electronically receive one or more validation criteria for validating the at least one repository to be validated;
generate a validation request to validate the identified at least one repository, wherein the validation request comprises
generating a script of identification associated with the at least one repository identified and the one or more validation
criteria for validating the at least one identified repository;

initiate, via the user computing device, the validation process based on at least generating the validation request, wherein
the validation process comprises initiating the execution of the one or more validation criteria, wherein validating further
comprises:

establishing a communication link with the at least one identified repository to enable transfer of information to and from
the at least one identified repository; and

validating the repository by executing the generated script evaluating various functions of the repository, and confirming
that the various functions of the repository comply with the one or more assigned repository parameters associated with the
at least one repository; and

generate a validation report of the at least one identified repository based on validation of the at least one identified
repository to be validated.

US Pat. No. 9,473,487

NETWORK IDENTITY CERTIFICATE PINNING

Bank of America Corporati...

1. An apparatus, comprising:
at least one processor; and
a memory storing computer-readable instructions that, when executed by the at least one processor, cause the apparatus to:
generate a pair of certificates for providing secure access to a network, the pair of certificates including a first, private
certificate and a second, public certificate;

associate the first, private certificate with the network, the first, private certificate configured to indicate to a user
of a computing device that the network is associated with an expected entity;

receive, from the computing device, a request to connect to the network, the request to connect to the network including selection
of the network from a list of networks available for connection;

upon selection of the network from the list of networks available for selection, determine whether a certificate provided
on the computing device is the second, public certificate paired with the first, private certificate associated with the network;

subsequent to determining that the certificate provided on the computing device is the second, public certificate paired with
the first, private certificate associated with the network, request authentication information from the user;

determine, based on the authentication information, whether the user is authenticated; and
responsive to determining that certificate provided on the computing device is the second, public certificate paired with
the first, private certificate associated with the network and that the user is authenticated, connect the computing device
to the network and transmit data over the network; and

responsive to determining that the certificate provided on the computing device is not the second, public certificate paired
with the first, private certificate associated with the network, prevent the computing device from connecting to the network
and transmitting data over the network.

US Pat. No. 9,460,588

METHODS FOR PRODUCING STATE-AGNOSTIC WAVEFORMS UPON MAGNETIC READING OF A UNIVERSAL COUNTER DEPOSIT TICKET

Bank of America Corporati...

1. A counter deposit ticket for use with a financial institution teller and an automated teller machine, said counter deposit
ticket including a top face and a bottom face, said counter deposit ticket comprising:
a universal routing transit number printed in MICR ink on the top face of the ticket, said universal routing transit number
devoid of any state of origin indication in the MICR ink;

a plurality of boxes on the top face of the ticket, said plurality greater than twenty-five, wherein each box includes the
name of one of the fifty states of the United States of America, said each box holding a state name distinct from the other
twenty-four box; and

a portion at least two inches by two inches square on the bottom face of the ticket, said portion comprising empty space,
said portion being designated by the legend “do not write in this area”.

US Pat. No. 9,449,328

SYSTEM FOR ENCODING CUSTOMER DATA

Bank of America Corporati...

1. A system for transforming customer data, comprising:
a network interface that:
communicates a request for customer data associated with a particular geographical area;
receives a customer profile code associated with the customer data in response to the request, wherein the customer profile
code comprises a first code segment and a second code segment;

receives a first rule associated with the customer profile code, wherein the first rule comprises a first plurality of conditions;
and

receives a second rule associated with the customer profile code, wherein the second rule comprises a second plurality of
conditions;

and
a processor that:
transforms the first code segment into a first portion of customer data using the first rule and the first plurality of conditions;
transforms the second code segment into a second portion of customer data using the second rule and the second plurality of
conditions; and

analyzes the particular geographical area using the customer data.

US Pat. No. 9,398,167

DISASTER RELIEF EVENT CALL FLAGGING

Bank of America Corporati...

1. A system for temporarily suspending customer contact associated with disaster relief events, the apparatus comprising:
a memory;
one or more computing processors; and
a software module stored in the memory, said software module comprising instruction code executable by one or more computing
processors, and configured to cause the one or more computing processors to:

create a disaster relief event associated with a plurality of customer accounts maintained by an entity, wherein the disaster
relief event comprises one or more parameters that identify locations associated with the disaster relief event;

create a temporary dialer file for use in contacting the plurality of customers in reference to the accounts, wherein the
temporary dialer file is based at least partially on the one or more parameters of the disaster relief event, and wherein
creating the temporary dialer file comprises:

determining to exclude a telephone number from the temporary dialer file in response to determining the telephone number is
associated with the disaster relief event, and

determining to exclude a telephone number from the temporary dialer file in response to determining the account related to
the telephone number is associated with the disaster relief event;

wherein the customer has a first and second account maintained by the entity, and wherein the disaster relief event is only
associated with the first account;

automatically suspend contact to one or more customers based at least partially in response to the telephone numbers of the
one or more customer being excluded from the temporary dialer file, wherein automatically suspending contact comprises:

determining to not contact a customer based at least partially on determining the reason for contacting the customer is associated
with the first account; and

determining to contact a customer based at least partially on determining the reason for contacting the customer is associated
with the second account.

US Pat. No. 9,367,836

SYSTEM FOR PROCESSING AND TRACKING MERCHANT DEPOSITS

Bank of America Corporati...

1. An apparatus for processing and tracking merchant deposits, the apparatus comprising:
a memory;
a computer processing device operatively coupled to the memory; and
a module stored in the memory, executable by the computer processing device, and configured to cause said computer processing
device to:

receive a deposit package at a financial institution, wherein one or more deposit items have been placed in the deposit package
by a merchant;

read visual indicia coupled with the deposit package, wherein the visual indicia is created by the merchant, and wherein the
visual indicia contains information about the one or more deposit items that have been placed in the deposit package by the
merchant such that reading the visual indicia further comprises receiving an itemized list of the one or more deposit items
that have been placed in the deposit package by the merchant, wherein the itemized list is in an electronic form;

verify the contents of the deposit package in response to reading the visual indicia, wherein an electronic device automatically
determines the contents of the deposit package after it has been received, and wherein the electronic device receives the
electronic form of the itemized list such that the contents of the deposit package are verified in response to determining
whether or not the contents of the deposit package match the itemized list of the one or more deposit items that have been
placed in the deposit package by the merchant; and

in response to determining the contents of the deposit package do not match the itemized list of the one or more deposit items
that have been placed in the deposit package by the merchant, alert the merchant and the financial institution of a deposit
package error; and

in response to receiving the alert, automatically track the deposit package based at least partially on the visual indicia
and determine where the deposit package error originated.

US Pat. No. 9,344,409

METHOD AND APPARATUS FOR MASKING NON-PUBLIC DATA ELEMENTS IN UNIFORM RESOURCE INDENTIFIERS (“URI”)

Bank of America Corporati...

1. A hand-held device, said device for masking non-public data elements in uniform resource identifiers, said hand-held device
comprising:
a resource;
a uniform resource identifier (“URI”), which is configured to identify the resource;
a processor, on said hand-held device, said processor configured to determine, within said hand-held device, the presence
of a non-public data element in the URI;

the processor further configured to generate a random number, within said hand-held device, wherein the length of the random
number is at least as long as the length of the non-public data element, in response to the determination of the presence
of the non-public data element;

the processor further configured to compute, within said hand-held device, a resultant number based on the exclusive disjunction
of the random number and the non-public data element; and

the processor further configured to substitute, within said hand-held device, the resultant number for the non-public data
element in the URI, said substituting occurring prior to transmission of the URI to a server.

US Pat. No. 9,264,667

DETERMINING ELECTRONIC MEDIA FORMAT WHEN TRANSFERRING A CUSTOMER BETWEEN SPECIALISTS OR AMONGST COMMUNICATION SOURCES AT A CUSTOMER SERVICE OUTLET

BANK OF AMERICA CORPORATI...

1. A system for selecting the electronic media format when transferring a customer between business knowledge sources at a
business location, the system comprising:
an apparatus including a computing platform having a memory and at least one processor in communication with the apparatus,
wherein the apparatus further includes one or more of a display, a video camera, a speaker and a microphone, each of which
is operatively in communication with the processor,

wherein the apparatus is configured to implement one or more of the display, the video camera, the speaker and the microphone
to provide a customer a communication platform for conducting a communication session with a first specialist located remote
from the business location; and

a customer transferring module stored in a memory, executable by a processor and configured to (1) receive a request to transfer
a customer from the first specialist to a second specialist during the communication session, (2) in response to receiving
the request, apply at least one business rule to determine a media format to implement for communication between the customer
and the second specialist, and (3) transfer the customer from the first specialist to the second specialist using the determined
media format.

US Pat. No. 9,253,197

METHOD AND APPARATUS FOR TOKEN-BASED REAL-TIME RISK UPDATING

Bank of America Corporati...

1. An apparatus comprising:
a memory for storing a plurality of tokens indicating a user is accessing a resource over a network, wherein:
the plurality of tokens comprises a risk token indicating a risk associated with access by the user to the resource; and
each token of the plurality of tokens is associated with a layer of the Open Systems Interconnection stack; and
a processor for:
determining, based at least in part upon a form of authentication performed by the user, a numeric identity assurance level;
determining, based at least in part upon a form of security provided by the resource, a numeric trust level; and
determining, based at least in part upon the risk token, a numeric risk level;
detecting a network token indicating the network is experiencing jitter;
determining at least one token-based rule associated with the network token;
determining, based at least in part upon the at least one token-based rule, that the jitter triggers a risk update;
generating, in response to the determination that the jitter triggers the risk update, a dataset token that represents the
risk token and the network token;

communicating the dataset token to a token provider to perform the risk update;
receiving a recomputed risk token representing an updated risk, the updated risk indicating the risk associated with continuing
access to the resource with the change;

updating, based at least in part upon the at least one token-based rule and the recomputed risk token, the numeric risk level;
comparing the updated numeric risk level to a threshold risk level;
determining, based at least in part upon comparing the numeric risk level to the threshold risk level and based at least in
part upon the identity assurance level and the trust level, that access to the resource should be terminated;

generating, in response to the determination that access to the resource should be terminated, a decision token representing
the determination that access to the resource should be terminated; and

communicating the decision token to facilitate terminating access to the resource.

US Pat. No. 9,191,707

AUTOMATIC DISPLAY OF USER-SPECIFIC FINANCIAL INFORMATION BASED ON AUDIO CONTENT RECOGNITION

Bank of America Corporati...

8. A method comprising:
identifying, by a multimedia viewing device having a display, a viewer of the display, wherein said multimedia viewing device
provides a split screen view on the display of the multimedia viewing device, the split screen view including a first portion
and a second portion;

receiving, by a wireless communication device having a least one processor from the multimedia viewing device, audio content
generated by the multimedia viewing device, the audio content including an audio signal, the wireless communication device
being paired to the multimedia viewing device;

performing, by the wireless communication device, audio content recognition of the audio signal from the audio content generated
by the multimedia viewing device;

first determining whether said recognized audio content describes one or more products or services provided by a financial
institution;

correlating said one or more products or services with a financial profile of the viewer of the multimedia viewing device,
the viewer being associated with the wireless communication device, the financial profile including financial characteristics
of the viewer;

second determining a subset of said one or more products or services representing products or services that are provided by
the financial institution and are of interest to said viewer based on said correlation exceeding a predetermined threshold;
and

transmitting data associated with said subset from the wireless communication device to the multimedia viewing device from
which the audio content was generated for displaying said subset on a display of the multimedia viewing device, the subset
being displayed on one of the first portion and the second portion simultaneously with content displayed on the other of the
first portion and the second portion, the content displayed on the other of the first portion and the second portion being
content from which the audio content was received.

US Pat. No. 9,177,317

SYSTEM AND METHOD FOR CONSUMER PROTECTION

Bank of America Corporati...

1. A computer-assisted method comprising:
storing, in memory, registration information for a user having a financial account with a financial institution, the registration
information comprising user login information for a website associated with the financial institution, wherein the website
has a webpage with an interface having a visual icon attribute configured to be customized by the user;

receiving a first entry of the user login information for the user, at a processor in communication with the memory, via the
website;

issuing a marker, from the processor, to be stored on a computer used by the user to access the website;
providing a prompt, from the processor to the computer, for the user to customize the visual icon attribute, wherein the prompt
is mandatory and is provided after receiving the first entry of the user login information;

receiving, at the processor, instructions from the user to customize the visual icon attribute, in response to the prompt,
wherein the prompt is delivered as at least one of: (i) a link on the webpage, (ii) an e-mail, (iii) an instant message, and
(iv) text message;

receiving, at the processor, a request from the user to access the financial account via the website on the computer, subsequent
to receiving the instructions, wherein a second entry of the user login information is required to access the financial account;

recognizing the user, by the processor, based on the marker;
providing the webpage, from the processor to the computer, in response to the request, wherein the interface of the webpage
has the visual icon attribute customized according to the instructions;

receiving the second entry of the user login information for the user, at the processor, via the website, subsequent to providing
the webpage with the visual icon attribute customized; and

providing the user access to the financial account upon receiving the second entry of the user login information.

US Pat. No. 9,516,060

MALWARE ANALYSIS METHODS AND SYSTEMS

Bank of America Corporati...

1. A method comprising:
initializing, by an administrative computing device, a virtual machine;
installing, by the administrative computing device, a first malware sample onto the virtual machine;
analyzing, by the administrative computing device, the behavior of the first malware sample on the virtual machine to identify
at least one virtual machine malware action;

causing, by the administrative computing device, a physical computing device to be booted from a secondary boot source different
from a primary boot source, the primary boot source being a hard disk on the physical computing device, wherein the physical
computing device is a separate device from the administrative computing device, and wherein the physical computing device
does not initialize a virtual machine after booting;

installing, by the administrative computing device, the first malware sample onto the physical computing device;
analyzing, by the administrative computing device, the behavior of the first malware sample on the physical computing device
to identify at least one physical computing device malware action;

determining, by the administrative computing device, based on the analyzing, whether the behavior of the first malware sample
on the virtual machine was different from the behavior of the first malware sample on the physical computing device by comparing
the at least one virtual machine malware action and the at least one physical computing device malware action;

responsive to determining that the behavior of the first malware sample on the virtual machine was different from the behavior
of the first malware sample on the physical computing device, generating, by the administrative computing device, a notification
indicating the first malware sample behaved differently;

restarting, by the administrative computing device, the virtual machine such that it is ready for subsequent malware analysis;
causing, by the administrative computing device, the physical computing device to be rebooted using an IP-enabled power strip,
wherein the physical computing device is configured to be rebooted from the secondary boot source such that it is ready for
subsequent malware analysis;

installing, by the administrative computing device, at least a second malware sample onto the physical computing device and
the virtual machine;

analyzing, by the administrative computing device, the behavior of the at least a second malware sample on the virtual machine;
analyzing, by the administrative computing device, the behavior of the at least a second malware sample on the physical computing
device;

determining, by the administrative computing device, based on the analyzing, whether the behavior of the at least a second
malware sample on the virtual machine was different from the behavior of the at least a second malware sample on the physical
computing device; and

responsive to determining that the behavior of the at least a second malware sample on the virtual machine was different from
the behavior of the at least a second malware sample on the physical computing device, generating, by the administrative computing
device, a notification indicating the at least a second malware sample behaved differently.

US Pat. No. 9,406,055

SHUTTING DOWN ACCESS TO ALL USER ACCOUNTS

BANK OF AMERICA CORPORATI...

1. A system for restricting access to a user's account via one or more account access channels, comprising:
a computer apparatus including a processor and a memory; and
an access restriction module stored in the memory, executable by the processor and configured for:
integrating a first account access channel associated with the user's account with a first access restriction procedure, wherein
the first access channel comprises a mobile device associated with the user's account, wherein integrating the first account
access channel with the first access restriction procedure comprises integrating device identification information associated
with the mobile device with the first access restriction procedure;

integrating a third account access channel associated with the user's account with the first access restriction procedure,
the third account access channel comprising an online banking account associated with the user's account;

receiving a request from the user to implement the first access restriction procedure via a second account access channel,
the second account access channel comprising an online banking interface; and

based on receiving the request via the second account access channel from the user to implement the first access restriction
procedure, implementing the first access restriction procedure, wherein implementing the first access restriction procedure
comprises (i) disabling access to the user's account via the mobile device and (ii) implementing an authentication procedure
that requires secondary authentication before permitting access to the user's account via the online banking account.

US Pat. No. 9,367,874

MOBILE KIOSK FOR ENHANCED FINANCIAL PRODUCT OFFERINGS

Bank of America Corporati...

1. A mobile kiosk comprising a vehicle and a kiosk portion coupled to the vehicle, the mobile kiosk operable to:
receive information for a first configuration of financial products;
apply the first configuration to the mobile kiosk at a first time;
provision a first set of the financial products while the mobile kiosk is configured according to the first configuration;
receive information for a second configuration of the financial products, wherein the second configuration differs from the
first configuration;

apply the second configuration to the mobile kiosk at a second time; and
provision a second set of the financial products while the mobile kiosk is configured according to the second configuration.

US Pat. No. 9,319,388

CRYPTOGRAPHIC KEY PAIR GENERATION SYSTEM

Bank of America Corporati...

1. A cryptographic key pair generation system, comprising: an interface configured to:
communicate a request for a user to provide a thought to facilitate generating a cryptographic key pair;
receive a request for a first trigger, the first trigger to facilitate initiating the thought by the user;
transmit the first trigger, the first trigger comprising a sound for the user to listen to and a message to the user to interact
with a physical object;

receive a string of characters corresponding to the thought, wherein the string is generated based at least in part upon electromagnetic
signals, and the user generates the electromagnetic signals by developing the thought associated with the first trigger;

receive a request to access the cryptographic key pair to encrypt data;
in response to receiving the request to access the cryptographic key pair, transmit a second trigger to be presented to the
user, the second trigger associated with a second thought to facilitate authenticating the user to access the cryptographic
key pair;

receive a second string of characters corresponding to the second thought, wherein the second string of characters is generated
based at least in part upon second electromagnetic signals, and the user generates the second electromagnetic signals by developing
the second thought;

in response to determining that the user is authenticated to access the key pair, transmit a message that the user is authenticated
and requesting the data to encrypt; and

receive the data; and one or more processors communicatively coupled to the interface and configured to:
generate a cryptographic key pair based at least in part upon the string of characters, the cryptographic key pair configured
to encrypt and decrypt data;

delete the string of characters corresponding to the thought;
compare the second string of characters to a stored string that corresponds to a stored thought of the user to authenticate
the user;

based at least in part upon the comparison, determine whether the user is authenticated to access the cryptographic key pair;
and

encrypt the data using the cryptographic key pair.

US Pat. No. 9,262,759

WEARABLE DEVICE AS A PAYMENT VEHICLE

BANK OF AMERICA CORPORATI...

1. A system configured to facilitate a financial transaction using a wearable device as a payment vehicle, the system comprising:
the wearable device comprising:
a wearable article, wherein the wearable article comprises one or more features securing the wearable article to a person
or an item associated with the person; and

a portion of said wearable article comprising at least one machine-readable indicia, wherein the at least one machine-readable
indicia, when successfully read, provides payment information for facilitating the financial transaction; and

a mobile communication device comprising:
a memory;
at least one processor; and
a module stored in memory, executable by the at least one processor, and configured to cause the at least one processor to:
receive from a second device the at least one readable indicia, which was scanned via a sensor associated with the second
device, the readable indicia being associated with the wearable device of the user;

receive a first user input that assigns the at least one readable indicia to a financial payment account;
receive a second user input that assigns at least one limit associated with a user spending to the at least one readable indicia;
continuously monitor the user spending, wherein monitoring further comprises comparing the user spending with the at least
one limit, wherein comparing further comprises assigning a spending index to indicate whether the user spending is lesser
than, equal to, or greater than the at least one limit; and

display the spending index on a display device associated with the wearable device.

US Pat. No. 9,197,655

STEGANOGRAPHY DETECTION

Bank of America Corporati...

1. A computer-implemented method of detecting potential steganography use comprising:
identifying an electronic communication associated with a first computer file;
locating a second computer file that at least appears to be a copy of the first computer file based on at least one file characteristic
the first computer file and the second computer file have in common;

comparing at least one file characteristic of the first computer file to a corresponding file characteristic of the second
computer file;

applying a set of steganographic criteria to at least one result of the comparing; and
determining whether the first computer file potentially includes hidden content based on whether at least a portion of the
steganographic criteria are satisfied.

US Pat. No. 9,176,722

WEB MANAGEMENT SOFTWARE CONFIGURATION AUTOMATION

BANK OF AMERICA CORPORATI...

1. A system for installing web management software, whereby the system communicates requests to entity servers for the purpose
of executing instructions on the entity servers, the system comprising:
a storage device with computer-readable program code stored thereon;
a communication device; and
a computer processing device operatively coupled to said storage device and said communication device, wherein said computer
processing device is configured to execute the computer-readable program code stored on said storage device to:

receive, via said communication device, installation parameters comprising hardware, software, and network information associated
with an entity server;

based upon the installation parameters, generate a list of commands to install web management software on the entity server,
wherein each command in the list of commands is executable by the entity server for performing a function to install the web
management software on the entity server;

initiate a server communication session with the entity server; and
for each command in the list of commands, communicate, via said communication device, a request comprising the command to
be executed by the entity server, wherein the requests are sent in a selected order and at selected times to install web management
software on the entity server.

US Pat. No. 9,171,336

CUMULATIVE CONNECTEDNESS

BANK OF AMERICA CORPORATI...

1. A method to determine connectedness from a first individual to a second individual on a social network, the method comprising:
receiving information associated with the social network of a first individual;
determining, based at least partially on the received information, using a processor, a direct connection between the first
individual and the second individual;

calculating a connection path length between the first individual and the second individual on a social network based at least
partially on the received social network information associated with the first individual;

comparing the calculated connection path length to a predetermined connection path length threshold value;
determining the calculated connection path length is greater than the predetermined connection path length threshold value;
determining an indirect connection between the first individual and the second individual based on at least determining that
the connection path length is greater than the predetermined connection path length threshold value, wherein the indirect
connection comprises one or more intermediate individuals;

calculating a cumulative connectedness weight (CCW) factor based on at least partially on the received network information
and the calculated path length;

comparing the calculated CCW factor to a dynamic predetermined CCW threshold value, wherein the dynamic predetermined CCW
threshold value is calculated based at least partially on determining at least a predetermined number of interactions between
the first individual and the second individual during a predetermined period of time;

determining that the calculated CCW factor is greater than the dynamic predetermined CCW threshold value;
confirming the indirect connection between the first individual and the second individual based on determining that the calculated
CCW factor is lower than the dynamic predetermined CCW threshold value; and

in response to determining no direct connection:
determining, based at least partially on the received information, one or more indirect connections between the first individual
and the second individual;

determining an exchange of social network exchangeables between the first individual and the second individual, the social
network exchangeables comprising multimedia;

determining unexchanged information common to the first individual and the second individual, the unexchanged information
not exchanged between the first individual and the second individual, the unexchanged information comprising a picture tagging
both the first individual and the second individual;

determining the connectedness based at least partially on: a number of indirect connections between the first individual and
the second individual, a type of each indirect connection, the unexchanged information, and the exchange of social network
exchangeables.

US Pat. No. 9,075,791

ENTERPRISE CONCEPT DEFINITION MANAGEMENT

Bank of America Corporati...

1. A computer-implemented method comprising:
maintaining an electronic master dictionary that corresponds to an electronic enterprise concept dictionary and includes one
or more concept entries, one or more concept identifiers respectively associated with the one or more concept entries, and
one or more concept definitions respectively associated with the one or more concept entries;

maintaining an electronic local dictionary wherein the local dictionary includes one or more of the concept identifiers included
in the master dictionary;

determining whether the local dictionary includes a concept identifier corresponding to a concept associated with a modeling
component;

associating the modeling component with the concept identifier in response to a determination that the local dictionary includes
the concept identifier;

determining whether the master dictionary includes the concept identifier in response to a determination that the local dictionary
does not include the concept identifier;

including the concept identifier in the local dictionary and associating the modeling component with the concept identifier
in response to a determination that the master dictionary includes the concept identifier; and

creating a new concept entry for the concept in the master dictionary to obtain a new concept identifier, including the new
concept identifier in the local dictionary, and associating the modeling component with the new concept identifier in response
to a determination that the master dictionary does not include the concept identifier.

US Pat. No. 9,070,010

IMAGE CHECK CONTENT ESTIMATION AND USE

Bank of America Corporati...

1. Apparatus for processing a transaction record based on handwritten check content, wherein each check is associated with
a separate transaction record and each transaction record comprises a plurality of fields corresponding to content of one
of a plurality of segments on the face of the check, the apparatus comprising:
a processor device that is configured to present to a customer actual handwritten check segment content from a check signed
by the customer or by an associated signatory party and estimated check segment content based on the handwritten check segment
content; and

a receiver that is configured to receive from the customer revised estimated check segment content;
wherein the processor is configured to associate the revised estimated check segment content with a transaction field and
store the revised estimated check segment content in the transaction record;

wherein, when the check segment is a comment segment, the processor is further configured to:
associate a phrase in the comment segment revised estimated check content with a comment family;
populate a comment family field in the transaction record with the comment family associated with the phrase; and
store the transaction record in an electronic folder associated with the comment family, wherein, in response selection of
the folder by the customer, the processor is configured to present to the customer one or more transaction records associated
with the comment family.

US Pat. No. 9,483,561

SERVER INVENTORY TRENDS

Bank of America Corporati...

1. A computer-implemented method, comprising:
receiving, at a processor of a managing computing server, a request for server inventory trends, wherein the managing computing
server is in communication with one or more support servers, wherein the one or more support servers operate on one or more
platforms, wherein the managing computing server is in communication with one or more databases comprising pertinent server
information associated with the one or more support servers, and wherein the request comprises a trend selection;

responsive to receiving the request, executing, at the processor, one or more Structured Query Language (SQL) procedures and
one or more SQL queries, wherein the one or more SQL procedures and the one or more SQL queries cause the processor to retrieve
the pertinent server information from one or more databases based, at least in part, on the trend selection, and wherein the
pertinent server information comprises whether the one or more support servers are active, deactivated, retired, when they
were added, and when they were retired;

transferring, at the processor, the pertinent server information from the one or more databases to a fusion chart as an Extensible
Markup Language (XML) data string, and storing the fusion chart in the managing computing server;

plotting, at the fusion chart, the pertinent server information, wherein the plotting generates output data; and
outputting, at the processor, the output data, wherein the output data includes modified stats and total stats associated
with the one or more support servers, and wherein the output data is displayed at intervals.

US Pat. No. 9,471,908

ATM CUSTOMER DEFINED USER INTERFACE FOR SECURITY PURPOSES

BANK OF AMERICA CORPORATI...

1. A system for displaying a custom interface associated with a customer on a screen of an automated teller machine (ATM),
the system comprising
a non-transitory storage device;
a communication device;
a processing device operatively coupled to the storage device and the communication device;
at least one module stored in said storage device and comprising instruction code that is executable by at least one processor
and configured to cause said at least one processor to:

present, to the customer, an option to create a customization for displaying on the screen of the ATM when the customer initiates
a session with the ATM, wherein the customization is associated with a function to perform a financial transaction when the
customer interacts with the customization on the screen of the ATM, wherein the customization comprises a security credential;

receive the customization;
receive a request to display the customization on the screen of the ATM based on the customer initiating the session with
the ATM;

receive the security credential based upon the customer;
communicate the customization to display on the screen of the ATM based on receiving the request to display the customization;
receive a request to perform the financial transaction based on the customer interacting with the customization on the screen
of the ATM; and

perform the financial transaction based on receiving the request to perform the financial transaction.

US Pat. No. 9,467,652

DETERMINING ELECTRONIC MEDIA FORMAT WHEN TRANSFERRING A CUSTOMER BETWEEN SPECIALISTS OR AMONGST COMMUNICATION SOURCES AT A CUSTOMER SERVICE OUTLET

BANK OF AMERICA CORPORATI...

1. A method for selecting the media format when transferring a user between business knowledge sources, the method comprising:
receiving, by a computing device processor, a request to transfer a user from a first specialist to a second specialist during
an electronic communication session,

in response to receiving the request, determining, by a computing device processor, a media format to implement for communication
between the user and the second specialist based on application of one or more business rules; and

during the communication session, initiate, by a computing device processor, transfer of the user from the first specialist
to the second specialist using the determined media format.

US Pat. No. 9,361,304

AUTOMATED DATA PURGE IN AN ELECTRONIC DISCOVERY SYSTEM

BANK OF AMERICA CORPORATI...

1. An apparatus for automated data purge in an electronic discovery (e-discovery) system, the apparatus comprising:
a computing platform including a memory and at least one processor in communication with the memory;
a data purge application stored in the memory, executable by the processor and configured to:
determine one or more purge-eligible e-discovery cases by querying an e-discovery system metadata database with predetermined
purge criteria to determine one or more purge-eligible cases,

determine (1) files within an e-discovery file system that are associated with the purge-eligible cases and qualify for purging
based on identified purge policies, wherein the purge policies include at least (i) purging e-discovery work product data
based on an associated case being closed, (ii) purging all data associated with a closed case after a predetermined period
of time, and (iii) purging data stored at an external repository after a predetermined period of time commencing from a date,
and (2) storage locations within the e-discovery file system associated with the files by querying an e-discovery system metadata
database with the purge policies,

determine replicated source data files within the e-discovery file system that are associated with the purge-eligible cases
and qualify for purging by scanning an e-discovery system file directory to identify the replicated source data files that
qualify for purging based on the one or more identified purge policies,

purge data from (1) the storage locations within the e-discovery file system associated with the files, and (2) the replicated
source data files, and

in response to purging the data, automatically (1) update the e-discovery file system to reflect that the data has been purged
by creating a purge entry in a file system log that includes details of the data purge, and (2) update metadata that is stored
in an e-discovery system metadata database and associated with the purged files, to indicate that the data has been purged
and is no longer accessible.

US Pat. No. 9,213,974

REMOTE REVOCATION OF APPLICATION ACCESS BASED ON NON-CO-LOCATION OF A TRANSACTION VEHICLE AND A MOBILE DEVICE

BANK OF AMERICA CORPORATI...

1. A system for accessing a remotely located mobile device of a user, the system comprising:
a computer apparatus including a processor and a memory; and
a software module stored in the memory, comprising executable instructions that when executed by the processor cause the processor
to:

monitor one or more transactions involving a physical payment transaction vehicle of a user, wherein the payment transaction
vehicle includes a positioning device;

determine, via the positioning device on the transaction vehicle, a geographic location of the payment transaction vehicle
based at least partially on the one or more transactions;

determine, via a positioning device in a mobile device of the user, a geographic location of the mobile device, wherein the
mobile device is associated with the payment transaction vehicle;

determine whether the payment transaction vehicle of the user and the mobile device of the user are co-located, based on a
predefined proximity bridge, which is a distance range between the geographic location of the payment transaction vehicle
and the geographic location of the mobile device and is predefined by the user or the system, wherein the mobile device and
the payment transaction vehicle are not co-located if the geographic location of the mobile device and the geographic location
of the payment transaction vehicle are not within the predefined proximity bridge;

disable functionality of one or more applications or one or more features on the mobile device, based at least partially on
determining that the mobile device and the payment transaction vehicle are not co-located, wherein disabling comprises reconfiguring
the one or more applications or the one or more features on the mobile device; and

provide a notification to the user indicating that functionality of the one or more applications or the one or more features
accessible to the mobile device are disabled.

US Pat. No. 9,158,655

COMPUTER DEVELOPMENT ASSESSMENT SYSTEM

Bank of America Corporati...

1. An apparatus for assessing standards compliance during computer development, comprising:
an interface operable to receive a first selection from a user, the first selection comprising a design assessment ruleset
to be used for evaluating a computer change, the design assessment ruleset comprising one or more design assessment rules,
each design assessment rule associated with a condition that determines whether the design assessment rule is evaluated, the
condition indicating whether the assessment rule is associated with one or more of a pilot project and a completed project;

a memory operable to store the design assessment ruleset; and
a processor communicatively coupled to the interface and the memory, the processor operable to:
determine whether the computer change is associated with a pilot project;
communicate to the user a design evaluation question relating to each design assessment rule whose associated condition indicates
that the assessment rule is associated with a pilot project, an answer to the design evaluation question indicating an extent
to which the computer change complies with the design assessment rule, the answer indicating one of compliance, noncompliance,
or partial compliance; and

determine one or more design scores based on the answer to each design evaluation question.

US Pat. No. 9,128,799

PROGRAMMATIC CREATION OF TASK SEQUENCES FROM MANIFESTS

Bank of America Corporati...

1. A method, comprising:
receiving, by a computer, data representing a first manifest and a second manifest, the first manifest identifying at least
some of a plurality of software components and the second manifest identifying at least some of the plurality of software
components;

determining a first one of the software components that is identified by, but not part of, the second manifest and not identified
by the first manifest;

transferring, by the computer, the first one of the software components to a logically protected region of a computer-readable
medium;

generating, by the computer, an updated separate task sequence comprising a set of instructions for installing the first one
of the software components to the a software stack residing on the computer;

transferring by the computer, the updated to separate task sequence to the logically protected region of the computer-readable
medium;

identifying a version of a software component that resides on both the first and the second manifest;
comparing the version identified residing on the first manifest and the version identified residing on the second manifest;
determining based on the comparing that the version identified on the second manifest is a higher version number than a version
number of the version identified by the first manifest; and

generating the separate task sequence so as to comprise a set of instructions for de-installing from the software stack the
one of the software components with a lower version number identified as residing on the first manifest and installing to
the software stack the software component with the higher version number residing on the second manifest.

US Pat. No. 9,069,943

METHOD AND APPARATUS FOR TOKEN-BASED TAMPER DETECTION

Bank of America Corporati...

1. An apparatus comprising:
a memory storing:
a first set of a plurality of tokens, the first set of the plurality of tokens comprising:
a hard token representing identification information of a device,
a network token representing the status of a network that facilitates communication from the device, and
a resource token representing information associated with a resource; and
a second set of a plurality of tokens, the second set comprising secured copies of the hard token, network token, and resource
token, the second set generated when the hard token, network token, and resource token of the first set were first generated;
and

a processor:
receiving, based on network jitter, a suspect token indicating a risk that at least one of the device, the network, and the
resource has been tampered;

in response to receiving the suspect token, applying one or more token tampering rules that specify which of the at least
one of the hard token, network token, and resource token may have been affected as result of the risk indicated in the suspect
token;

comparing the at least one of the hard token, network token, and resource token of the first set that is identified by the
one or more token tampering rules as being associated with the suspect token with its corresponding secured copy of the second
set;

in response to determining that the at least one of the hard token, network token, and resource token of the first set does
not match the corresponding secured copy of the second set, communicating a revalidation token indicating the at least one
token has been tampered;

computing, based upon the revalidation token, a risk token representing an increased level of risk associated with the at
least one of the device, the network, and the resource; and

determining, based on the risk token, an access decision associated with the at least one of the device, the network, and
the resource.

US Pat. No. 9,818,266

REMOTE DISABLING OF TARGET POINT-OF-SALE (“POS”) TERMINALS

Bank of America Corporati...

1. A system for controlling operation of a target point-of-sale (“POS”) terminal at a merchant location, the system comprising:
a payment instrument comprising a reprogrammable chip;
a first card reader that is configured to:
provide power to the chip; and
load, onto the chip, executable instructions that, when run, power-off the target POS terminal; and
a second card reader linked to the target POS terminal that is configured to provide power to the chip and run the executable
instructions loaded on the chip;
wherein the executable instructions, when run, power-off the target POS terminal within a pre-determined period of time after
the chip is inserted into the second card reader.

US Pat. No. 9,332,013

NEURAL AUTHENTICATION SYSTEM

Bank of America Corporati...

1. A system for neural authentication of a user, comprising: an interface configured to:
receive a first request from a user to perform a function with an enterprise;
in response to receiving the first request to perform the function with the enterprise, communicate a trigger and a second
request for the user to provide a thought to facilitate authenticating the user with the enterprise, the trigger to facilitate
initiating the thought by the user, the trigger requiring the user to use three senses while initiating the thought by the
user;

receive a string of characters corresponding to the thought, wherein the string is generated based at least in part upon electromagnetic
signals, and the user generates the electromagnetic signals by developing the thought associated with the trigger; and one
or more processors communicatively coupled to the interface and configured to:

compare the received string to a stored string that corresponds to a thought of the user to authenticate the user;
determine, based on the comparison, whether the received string and the stored string are a full match;
in response to determining that the received string and the stored string are a full match:
the processor further configured to determine that the user is authenticated to perform the function; and
the interface further configured to transmit a message indicating the user is to proceed with performing the function;
in response to determining that the received string and the stored string are not a full match:
determine whether the received string and the stored string are a partial match;
in response to determining that the received string and the stored string are a partial match:
the interface further configured to:
transmit a message that the user is not authenticated to perform the function; and
request additional information from the user.

US Pat. No. 9,203,844

VISUAL REPRESENTATION FOR PERMISSION TO CONTACT

BANK OF AMERICA CORPORATI...

1. A system for assigning visual representation to contacts, the system comprising:
a computer apparatus including a processor and a memory; and
a software module stored in the memory, comprising executable instructions that when executed by the processor cause the processor
to:

receive selection criteria;
identify data associated with a plurality of customers meeting the selection criteria, wherein each of the customers is associated
with one or more contacts;

determine that at least one contact associated with each customer comprises one or more contact statuses; and
assign one or more indicators to the at least one contact based on the one or more statuses, wherein the one or more statuses
include at least one of a contact locked status, a contact external request status, a contact geography status, a contact
time period status, a contact velocity status, and a permission-to-communicate status; and

determine whether the one or more indicators assigned to the at least one contact indicates a communication restriction, said
determining comprising:

identifying a requirement to receive permission associated with the customer for communication with the at least one contact;
determining whether permission has been received from the customer; and
determining that communication with the at least one contact is restricted when permission from the customer to communicate
with the at least one contact has not been received, wherein the one or more indicators assigned to the at least one contact
indicates the communication restriction.

US Pat. No. 9,092,258

TASK CONCURRENCY LIMITER

Bank of America Corporati...

1. An apparatus, comprising:
one or more processors operable to:
intercept, via a shell script executed through a command line interface of the apparatus, a first task sent from a task scheduler,
the first task specifying one or more actions to be performed and not specifying a computing system for performing the one
or more actions;

select, using the shell script, a first computing system to perform the first task, the first computing system coupled to
the apparatus via a network;

determine, using the shell script, whether the first computing system is subject to a first concurrency evaluation;
determine, via the shell script, a number of active tasks initiated by the task scheduler that are being performed by the
first computing system;

upon a determination that the first computing system is subject to the first concurrency evaluation, determine, using the
shell script, whether the number of active tasks being performed by the first computing system is greater than or equal to
a first predetermined task limit;

upon a determination that the number of active tasks being performed by the first computing system is less than the first
predetermined task limit associated with the first computing system, facilitate communicating, using the shell script, the
first task to the first computing system; and

upon a determination that the number of active tasks is greater than or equal to the first predetermined task limit associated
with the first computing system, determine whether the first task is excluded from the first concurrency evaluation;

an interface communicatively coupled to the one or more processors and operable to:
upon a determination that the first task is excluded from the first concurrency evaluation, communicate the first task to
the first computing system; and

the one or more processors further operable to:
upon a determination that the first task is not excluded from the first concurrency evaluation, delay, via the shell script,
the communication of the first task to the first computing system.

US Pat. No. 9,508,070

TRANSACTION PREPARATION USING MOBILE DEVICE

BANK OF AMERICA CORPORATI...

1. An apparatus for serving a user at a facility, the apparatus comprising:
a memory;
at least one processor; and
a module stored in the memory, wherein said module comprising computer instruction code executable by the at least one processor,
and structured to cause said at least one processor to:

determine a user has entered a facility or is a predetermined distance from the facility, wherein the user has a mobile device,
and wherein the user is waiting to interact with at least one of an agent at the facility or a computing device at the facility,
wherein the facility is a financial institution;

electronically transmit a readable indicia for display on a computing device at an entrance associated with the facility,
wherein transmitting further comprises transmitting control signals to reconfigure the computing device at the entrance to
display the readable indicia, wherein the readable indicia is associated with one or more options related to one or more reasons
for the user's visit to the facility;

receive an indication that the mobile device associated with the user has received the readable indicia, wherein the readable
indicia is received using an image capturing component associated with the mobile device;

initiate communication with the mobile device of the user based on at least receiving the indication that the mobile device
has received the readable indicia, wherein initiating further comprises establishing a communication link with a wireless
transceiver associated with the mobile device of the user comprising a radio circuit that enables wireless transmission and
reception of information with the mobile device of the user;

electronically receive information from the mobile device, the information comprising at least one of information associated
with the mobile device, information associated with the user, or information associated with the user's account;

identify the user based on at least information received from the mobile device;
initiate a facility service application on the mobile device of the user based on at least the initiated communication, wherein
the facility service application comprises a user interface, wherein the user interface comprises the one or more options
associated with a reason for the user's visit to the facility, the reason comprising a transaction intended to be executed
by the user at the facility;

electronically receive an indication that the user has selected the reason for the user's visit to the facility;
electronically transmit via the established communication link, information associated with the transaction intended to be
executed by the user at the facility based on at least receiving an indication that the user has selected the reason for the
user's visit to the facility, wherein the transmitted information guides the user on how to execute the transaction prior
to meeting with an agent associated with the financial institution;

determine the transaction can be completely executed on the mobile device;
electronically transmit via the established communication link, a form associated with the intended transaction to the user's
mobile device based on at least the user selection of the intended transaction, the form prompting the user to input information
associated with the intended transaction;

electronically monitor via the established communication link, communication traffic associated with the user's mobile device
to determine portions of form filled by the user using the user's mobile device;

determine that the user has executed at least a partial execution associated with the transaction based on at least monitoring
the communication traffic associated with the user's mobile device;

store the partially executed transaction on a financial institution database, wherein storing further comprises generating
a bookmark to be associated with the user's account, wherein the bookmark comprises a point of continuity to continue performing
a remaining portion of the transaction, wherein the bookmark further comprises an indication of the storage location of the
partially executed transaction on the financial institution database;

direct the user to the agent based on at least a predetermined time after the user execution of the partial action on the
mobile device, wherein directing further comprises electronically transmitting the bookmark to a mobile device associated
with the agent;

electronically receive the bookmark from the mobile device associated with the agent;
retrieve the partially executed transaction from the financial institution database based on at least receiving the bookmark
from the mobile device associated with the agent;

electronically continue execution of the remaining portion of the intended transaction using a computing device associated
with the facility;

electronically receive, via computing device associated with the facility, an indication from the user that the user has to
leave the facility prior to completing the execution of the remaining portion of the intended transaction at the facility;

update the bookmark based on at least the user's continued execution of the remaining portion of the intended transaction
using the computing device associated with the facility, wherein the updated bookmark comprises a point of continuity indicating
a portion of the transaction executed by the user at the facility;

receive an indication that the user wishes to continue execution of the remaining portion of the intended transaction;
determine that the indication is received from a second computing device different from the mobile device of the user;
establish a communication link with the second computing device, wherein establishing further comprises creating a data channel
with the second computing device;

initiate, via the established communication link, an authentication interface prompting the user to enter additional authentication
credentials to access the updated bookmark based on at least determining that the user wishes to continue execution of the
remaining portion of the intended transaction using the second computing device that is different from the mobile device of
the user used to initially create the bookmark;

electronically validate the authentication credentials received from the user;
retrieve a partially executed transaction from the financial institution database based on at least validating the authentication
credentials received from the user and receiving the updated bookmark from the second computing device of the user; and

electronically enable the user to complete execution of the remaining portion of the intended transaction using the second
computing device.

US Pat. No. 9,442,915

SEMANTIC APPLICATION LOGGING AND ANALYTICS

Bank of America Corporati...

1. A non-transitory computer-readable medium storing computer-readable instructions that, when read by a computing device,
cause the computing device to:
determine that a data security event or a data logging event occurs at an application running on a computing domain;
in response to determining that the data security event or the data logging event occurs at the application running on the
computing domain, determine that the application uses a first concept name from an application dictionary associated with
the application to describe the data security event or the data logging event;

generate an entry for the data security event or the data logging event and add the entry to a data log for the application
running on the computing domain, wherein the entry includes the first concept name from the application dictionary associated
with the application;

determine that the first concept name from the application dictionary corresponds to a second concept name from a domain dictionary
associated with a plurality of applications running on the computing domain; and

generate a mapping of the first concept name from the application dictionary to the second concept name from the domain dictionary
associated with the plurality of applications running on the computing domain.

US Pat. No. 9,392,012

APPLICATION SECURITY TESTING SYSTEM

BANK OF AMERICA CORPORATI...

1. An apparatus for an exposure based application security testing system, the apparatus comprising:
a memory;
a processor; and
a module stored in memory and comprising instruction code that is executable by the processor, and configured to cause the
processor to:

access an application, wherein the application comprises an assessment parameter, wherein the assessment parameter comprises
one or more assessment sub-parameters, wherein the one or more assessment sub-parameters comprise one or more assessment indicators;

receive an input from a user, wherein the input from the user associates the one or more assessment indicators with the assessment
parameter, wherein the assessment parameter is selected by the user based on at least an association of the application with
one or more other applications;

map the input received from the user to a predetermined exposure score resulting in a mapped score;
calculate an application exposure score based on at least the mapped score thereby creating an exposure profile for the application,
wherein calculating the application exposure score comprises summing the mapped score of the assessment parameter based on
at least a normalization of the mapped score with the one or more sub-parameters associated with the assessment parameter;

process the application, wherein processing the application comprises calculating a total exposure score for the application
based on at least the application exposure score and a protective control score, wherein calculating the protective control
score is based on at least an existence of a protective security firewall to limit unauthorized use and access to the application,
wherein the total exposure score is a summation of the application exposure score and the protective control score;

determine whether the application qualifies for security testing based on at least the calculated total exposure score;
compare the total exposure score to a predetermined threshold score;
determine whether the total exposure score is greater than the predetermined threshold score; and
initiate a presentation of the application to the user to implement security testing based on at least determining whether
the total exposure score is greater than the predetermined threshold score.

US Pat. No. 9,105,018

BILL-PAY INTEGRATION

Bank of America Corporati...

1. A central management apparatus (“CMA”) controlled by a drawee bank, the CMA comprising:
a non-transitory computer readable medium having computer readable program code embodied therein; and
a processor configured to execute the computer readable program code wherein the computer readable program code when executed
by the processor configures the CMA to:

receive, by the drawee bank, first payment information from a bill-pay vendor, the first payment information:
displayed on a first check issued by the bill-pay vendor to a first payee on behalf of a payer; and
comprising a first identifier assigned to the first check by the bill-pay vendor;
receive second payment information displayed on a second check issued directly by the payer to a second payee, the second
payment information comprising a second identifier assigned to the second check by the drawee bank;

assign to the first payment information a third identifier that visually identifies the first payment information as being
sourced from the bill-pay vendor and not from the drawee bank;

generate a file comprising:
the first payment information;
the third identifier assigned to the first payment information; and
the second payment information;
receive a request to view the file on a mobile device;
filter the second payment information out of the file based on an entitlement associated with the mobile device, creating
a filtered file;

display the filtered file to the payer on the mobile device;
receive a confirmation of the first payment information from the payer after the first check has been issued to the first
payee by the bill-pay vendor, based on the displayed filtered file;

debit an account of the payer held at the drawee bank in response to the confirmation of the first payment information;
generate a first image of the first check based on the first payment information;
generate a second image of the second check based on the second payment information; and
display the first image and the second image to the payer; wherein:
the third identifier is a member of a set of identifiers, the set of identifiers corresponding to the bill-pay vendor;
the set of identifiers does not include the first identifier or the second identifier;
the bill-pay vendor is unaffiliated with the drawee bank; and
the drawee bank assigns the third identifier to the first payment information.

US Pat. No. 9,390,393

ROUTING FROM A MAIL SORTING ASSEMBLY SIMILARLY ADDRESSED MAIL ITEMS TO DIFFERENT DESTINATIONS

Bank of America Corporati...

1. Apparatus for routing mail items to different destinations, the apparatus comprising:
a driven mail conveyor that is configured to receive:
a first physical mail item that includes a paper envelope displaying in an addressee segment an institution name and institution
address information, the first mail item including a first part; and

a second physical mail item that includes a paper envelope displaying in the addressee segment the institution name and the
institution address information and no other institution address information, the second mail item including a second part;
and

a processor in mechanical communication with the mail conveyor and configured to:
electronically route, based on a first text string vector of the first part, the first physical mail item to a first mail
item destination in the institution via the mail conveyor; and

electronically route, based on a second text string vector of the second part, the second physical mail item to a second mail
item destination in the institution via the mail conveyor, the second mail item destination being different from the first
mail item destination;
wherein:
to electronically route the first mail item, the processor is further configured to:
tally a first number of matches between the first string vector and a first library;
tally a third number of matches between the first string vector and a third library that corresponds to a third item destination;
score the first number to determine a first score;
score the third number to determine a third score; and
select that of the first and third destinations that corresponds to a higher one of the first and third scores; and
to electronically route the second mail item, the processor is configured to:
tally a second number of matches between the second string vector and a second library;
tally a fourth number of matches between the second string vector and a fourth library that corresponds to a fourth mail item
destination;

score the second number to determine a second score for the second library;
score the fourth number to determine a fourth score for the fourth library; and
select that of the second and fourth destinations that corresponds to a higher one of the second and fourth scores;wherein:
to score the first number, the processor is further configured to:
identify the number of text strings in the first library;
identify the number of text strings in the first string vector; and
calculate the multiplicative product of the first number and the reciprocal of (the number of text strings in the first library×the
number of text strings in the first string vector) to arrive at the first score; and

to score the third number, the processor is further configured to:
identify the number of text strings in the third library;
identify the number of text strings in the third string vector; and
calculate the multiplicative product of the third number and the reciprocal of (the number of text strings in the third library×the
number of test strings in the third string vector) to arrive at a the third score.

US Pat. No. 9,384,366

SYSTEM FOR ENCODING CUSTOMER DATA

Bank of America Corporati...

1. A system for encoding customer data, comprising:
a memory operable to store:
customer data, wherein some of the customer data is associated with a first service level and some of the customer data is
associated with a second service level;

a first rule comprising a first plurality of conditions; and
a second rule comprising a second plurality of conditions;
a decision engine operable to:
receive a request for customer data from a third party;
determine that the third party is associated with the first service level;
retrieve the customer data that is associated with the first service level in response to determining that the third party
is associated with the first service level;

a rules engine operable to:
transform a first portion of the retrieved customer data into a first code segment by applying the first rule and by satisfying
a condition of the first plurality of conditions of the first rule;

transform a second portion of the customer data into a second code segment by applying the second rule and by satisfying a
condition of the second plurality of conditions of the second rule; and

combine at least the first code segment and the second code segment to form a customer profile code; and
an interface engine communicatively coupled to the rules engine and operable to communicate the customer profile code to the
third party.

US Pat. No. 9,323,428

ON-BOARDING FRAMEWORK

BANK OF AMERICA CORPORATI...

1. A system for on-boarding entities to comply with compliance regulations utilizing an integration framework, the system
comprising:
one or more memory devices having computer readable program code store thereon; and
one or more processing devices operatively coupled to the one or more memory devices, wherein the one or more processing devices
are configured to execute the computer readable program code to:

receive an indication from a first user from an institution to log into an on-boarding application for on-boarding one or
more entities to comply with the compliance regulations and to determine that the institution can enter into transactions
with the one or more entities being on-boarded;

identify an on-boarding template for the on-boarding application;
determine first user profile data, wherein the first user profile data comprises at least a first user type and a first user
style-sheet, wherein the first user type includes an entitlement type that indicates what the first user is approved to view
and take actions on, and wherein the first user style-sheet includes how to display a plurality of on-boarding questions and
pre-defined answers in an on-boarding interface to the first user;

display the on-boarding interface to the first user in a first user interface based on the first user type, and the first
user style-sheet;

receive an entity selection from the first user to on-board an entity within the on-boarding interface;
receive a region in which the first user is on-boarding the entity, and wherein the region in which the first user is on-boarding
the entity determines at least a portion of the compliance regulations;

determine a plurality of first on-boarding questions and pre-defined answers for on-boarding the entity based on the user
profile data, the entity selection, and the region, wherein the plurality of questions and pre-defined answers for on-boarding
the entity at least comprise product questions regarding products for which the institution is entering transactions with
the entity, and wherein the plurality of questions and pre-defined answers for on-boarding the entity at least comprise regulatory
questions related to if the entity is regulated by an agency and verification questions related to if the entity is a verified
entity;

display the plurality of first on-boarding questions and pre-defined answers in the on-boarding interface based on the template;
receive an action from the first user that answers one or more of the plurality of first on-boarding questions;
store the answers to the one or more of the plurality of first on-boarding questions;
determine one or more second on-boarding questions and pre-defined answers based on the answers to one or more of the plurality
of first on-boarding questions;

display the second one or more questions and pre-defined answers in the template in the on-boarding interface; and
on-board the entity to allow the institution to enter into transactions with the entity when the pre-defined answers to the
product questions and regulatory questions meet the compliance regulations.

US Pat. No. 9,098,846

CONTACTLESS AUTOMATED TELLER MACHINE

Bank of America Corporati...

1. A contactless automated teller machine (ATM) comprising:
at least one user interface;
at least one memory device;
at least one communication interface comprising a contactless interface; and
at least one processing device operatively coupled to the user interface, the at least one memory device, and the at least
one communication interface, wherein the at least one processing device comprises circuitry specific to an automated teller
machine (ATM) and is configured to execute computer-readable program code to:

identify a communication sticker associated with a user, wherein the communication sticker is affixed to an external apparatus
associated with the user;

establish a connection between the contactless ATM and the external apparatus, wherein the connection is established without
contact, wherein the connection allows for real-time information transferring without the use of a carrier network associated
with the external apparatus or ATM and, wherein the external apparatus is a mobile device;

receive a contactless transmission directly from the communication sticker affixed to the external apparatus comprising authentication
information, wherein the user associated with the external apparatus inputted the authentication information into the external
apparatus prior to transmission;

authenticate the user associated with the external apparatus with a two-factor authentication, wherein the authentication
is based on the authentication information that was inputted into the external apparatus by the user and directly transmitted
to the contactless ATM by the communication sticker affixed to the external apparatus and an identification of the external
apparatus as associated with the user, based on a recognition of the communication sticker affixed to the external apparatus;

create a secure two-way communication between the contactless ATM and the external apparatus, wherein the two-way communication
is a communication between the contactless ATM and the communication sticker affixed to the external apparatus, wherein the
communication sticker affixed to the external apparatus provides the communication to the external apparatus;

receive financial transaction instructions from an authenticated user associated with the external apparatus via the secure
connection between the contactless ATM and the communication sticker affixed to the external apparatus, wherein financial
transactions include withdrawing, depositing, or transferring funds and ordering financial institution products; and

send information associated with the financial transaction instructions from the contactless ATM to the authenticated user
via the external apparatus using the secure connection between the contactless ATM and the communication sticker affixed to
the external apparatus.

US Pat. No. 9,460,428

ATM CUSTOMER DEFINED USER INTERFACE FOR SECURITY PURPOSES

BANK OF AMERICA CORPORATI...

1. A system for displaying a custom interface associated with a customer on a screen of an automated teller machine (ATM),
the system comprising
a non-transitory storage device;
a communication device;
a processing device operatively coupled to the storage device and the communication device;
at least one module stored in said storage device and comprising instruction code that is executable by at least one processor
and configured to cause said at least one processor to:

present, to the customer, an option to create a customization for displaying on the screen of the ATM when the customer initiates
a session with the ATM, wherein the customization is associated with a function to perform a financial transaction when the
customer interacts with the customization on the screen of the ATM;

receive the customization, wherein the customization comprises an instruction for the ATM to communicate an audible signal
when the customer interacts with the customization;

receive a request to display the customization on the screen of the ATM based on the customer initiating the session with
the ATM;

communicate the customization to display on the screen of the ATM based on receiving the request to display the customization;
receive a request to perform the financial transaction based on the customer interacting with the customization on the screen
of the ATM; and

perform the financial transaction based on receiving the request to perform the financial transaction.

US Pat. No. 9,098,827

INTERACTIVE QUERY TOOL

Bank of America Corporati...

1. A computer-assisted method comprising:
receiving a query message from a user device;
when the query message is addressed to an automated processing entity through a chat room system, wherein the query message
includes an address of the automated processing entity,

passing the query message to the automated processing entity;
extracting, by the automated processing entity, at least one keyword from the query message;
obtaining response information from a data structure based on the at least one keyword;
when a non-zero amount of available information accessed from the data structure is less than a predetermined amount based
on the at least one keyword, redirecting the query message from the automated processing entity through the chat room system;

returning the response to the user device, wherein the response includes at least one of user statistics, trade statistics
for a client, user permissions for the user device, and user group and account information; and

when the response exceeds a predetermined size, sending a first portion of the response to the user device through instant
messaging and a second portion of the response to the user device through e-mail; and

when the query message is not addressed to the automated processing entity through the chat room system,
forwarding the query message to a support group entity through the chat room system.

US Pat. No. 9,064,248

REMOTE CAPTURE OF MULTIPLE DEPOSIT ITEMS USING A GRID

BANK OF AMERICA CORPORATI...

1. An apparatus comprising:
a remote capture device, wherein the remote capture device is configured to capture an image that shows multiple deposit items;
a display associated with the remote capture device, wherein the display is configured to display a grid comprising a plurality
of grid portions; and

a processor operatively connected to the remote capture device and the display, and wherein the processor is configured to:
prompt a user of the remote capture to provide the number of the multiple deposit items, wherein the display is configured
to display a number of grid portions on the display based at least partially on the number provided by the user and a resolving
power associated with the remote capture device, wherein the resolving power defines the resolution with which an image can
be captured by the remote capture device;

prompt the user to arrange the multiple deposit items, or to position or operate the remote capture device, such that each
of the deposit items in the multiple deposit items appears in a single grid portion of the display before the image is captured;

prompt the user to capture a first image, such that the first image shows the front of the multiple deposit items;
prompt the user to capture a second image, such that the second image shows the back of the multiple deposit items;
receive the first and second image that show the multiple deposit items;
for each of the multiple deposit items, determine that a first received image and a second received image correspond to a
single deposit item based on determining that (i) an identifier located on the first received image corresponds to an identifier
located on the second received image and determining that (ii) the size of the first received image matches the size of the
second received image;

determine that the first and second image are satisfactory for identifying deposit item information;
identify, based at least partially on the first and second image, the deposit item information associated with the multiple
deposit items; and

transmit the deposit item information to a server located remotely from the processor, wherein the server is configured to
credit an account based at least partially on the deposit item information.