The present invention relates generally to the electronic and computer arts, and, more particularly, to apparatus and methods for bill payment transactions, such as consumer and/or business bill payment transactions, and the like.
A number of existing systems seek to enhance convenience and efficiency of electronic payments. MasterCard International Incorporated of Purchase, N.Y. currently offers MasterCard Remote Payment and Presentment Services (RPPS® brand provision of secure electronic delivery of billing remittance data and funds).
U.S. Pat. No. 5,699,528 to Hogan discloses a system and method for bill delivery and payment over a communications network. In a bill delivery and payment system, users are able to access a server computer on a communications network to obtain bill information and pay bills. For example, such a communications network may be the Internet or the World Wide Web thereof. Using a personal computer, a user can access a Web site provided by the server computer to view the bill information and instruct the server computer as to the details of the bill payment. In a second embodiment, without visiting the web site, users are provided with electronic bills containing bill information in the form of electronic mail (e-mail) at their e-mail addresses. After opening an electronic bill, a user can make the bill payment by replying to the electronic bill.
Principles of the present invention provide techniques related to a transaction processing engine for consumer bill payment transactions and the like. At least some aspects of the techniques may be facilitated by the operator of a payment network or other service provider.
In one aspect, an exemplary method includes obtaining, by an operator of a payment processing network, from a plurality of customer service providers, a first plurality of messages specifying a plurality of bill payments to a plurality of biller entities, the first plurality of messages specifying, for each of the bill payments, an amount and an intended one of the biller entities to be paid; based on the first plurality of messages, dispatching, by the operator of the payment processing network, to the plurality of biller entities, a second plurality of messages to initiate the plurality of bill payments; and obtaining, by the operator of the payment processing network, at least one of:
The operator of the payment processing network carries out at least one of:
As used herein, “facilitating” an action includes performing the action, making the action easier, helping to carry the action out, or causing the action to be performed. Thus, by way of example and not limitation, instructions executing on one processor might facilitate an action carried out by instructions executing on a remote processor, by sending appropriate data or commands to cause or aid the action to be performed. For the avoidance of doubt, where an actor facilitates an action by other than performing the action, the action is nevertheless performed by some entity or combination of entities.
One or more embodiments of the invention or elements thereof can be implemented in the form of a computer program product including a tangible computer readable recordable storage medium with computer usable program code for performing the method steps indicated stored thereon in a non-transitory manner. Furthermore, one or more embodiments of the invention or elements thereof can be implemented in the form of a system (or apparatus) including a memory and at least one processor that is coupled to the memory and operative to perform exemplary method steps. Yet further, in another aspect, one or more embodiments of the invention or elements thereof can be implemented in the form of means for carrying out one or more of the method steps described herein; the means can include (i) specialized hardware module(s), (ii) software module(s) stored in a non-transitory manner in a tangible computer-readable recordable storage medium (or multiple such media) and implemented on a hardware processor, or (iii) a combination of (i) and (ii); any of (i)-(iii) implement the specific techniques set forth herein.
One or more embodiments of the invention can provide substantial beneficial technical effects, including any one, some, or all of the following:
These and other features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.
Inventive techniques can be employed in a number of different environments. In one or more embodiments, inventive techniques can be employed in connection with the MASTERCARD RPPS® electronic payment system of MasterCard International Incorporated of Purchase, N.Y., USA. This example is non-limiting; for example, other types of electronic bill payment systems could be employed in other instances. Thus, references to RPPS in one or more embodiments are not intended to be limiting and other embodiments may be employed in connection with other types of electronic payment systems.
Attention should now be given to
The ICs 104, 114 can contain processing units 106, 116 and memory units 108, 118. Preferably, the ICs 104, 114 can also include one or more of control logic, a timer, and input/output ports. Such elements are well known in the IC art and are not separately illustrated. One or both of the ICs 104, 114 can also include a co-processor, again, well-known and not separately illustrated. The control logic can provide, in conjunction with processing units 106, 116, the control necessary to handle communications between memory unit 108, 118 and the input/output ports. The timer can provide a timing reference signal from processing units 106, 116 and the control logic. The co-processor could provide the ability to perform complex computations in real time, such as those required by cryptographic algorithms.
The memory portions or units 108, 118 may include different types of memory, such as volatile and non-volatile memory and read-only and programmable memory. The memory units can store transaction card data such as, e.g., a user's primary account number (“PAN”) and/or personal identification number (“PIN”). The memory portions or units 108, 118 can store the operating system of the cards 102, 112. The operating system loads and executes applications and provides file management or other basic card services to the applications. One operating system that can be used is the MULTOS® operating system licensed by licensed by MAOSCO Limited. (MAOSCO Limited, St. Andrews House, The Links, Kelvin Close, Birchwood, Warrington, WA3 7PB, United Kingdom). Alternatively, JAVA CARD™-based operating systems, based on JAVA CARD™ technology (licensed by Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, Calif. 95054 USA), or proprietary operating systems available from a number of vendors, could be employed. Preferably, the operating system is stored in read-only memory (“ROM”) within memory portion 108, 118. In an alternate embodiment, flash memory or other non-volatile and/or volatile types of memory may also be used in the memory units 108, 118.
In addition to the basic services provided by the operating system, memory portions 108, 118 may also include one or more applications. At present, one possible specification to which such applications may conform is the EMV interoperable payments specification set forth by EMVCo, LLC (901 Metro Center Boulevard, Mailstop M3-3D, Foster City, Calif., 94404, USA). It will be appreciated that applications can be configured in a variety of different ways.
In some cases, aspects conform to pertinent ISO standards, such as ISO 8583. Individual entities or groups may develop specifications within this standard.
As noted, cards 102, 112 are examples of a variety of payment devices that can be employed. The primary function of the payment devices may not be payment, for example, they may be cellular phone handsets. Such devices could include cards having a conventional form factor, smaller or larger cards, cards of different shape, key fobs, personal digital assistants (PDAs), appropriately configured cell phone handsets, or indeed any device with the appropriate capabilities. The cards, or other payment devices, can include body portions (e.g., laminated plastic layers of a payment card, case or cabinet of a PDA, chip packaging, and the like), memories 108, 118 associated with the body portions, and processors 106, 116 associated with the body portions and coupled to the memories. The memories 108, 118 can contain appropriate applications. The processors 106, 116 can be operative to facilitate execution of one or more techniques. The applications can be, for example, application identifiers (AIDs) linked to software code in the form of firmware plus data in a card memory such as an electrically erasable programmable read-only memory (EEPROM). Again, note that “smart” cards are not necessarily required and a magnetic stripe card can be employed; furthermore, in some cases no physical presentment of a card to a terminal is required, and in one or more instances, a payment card account with an account number but no physical card could even be employed. Again, in some instances, no use of cards is made and payment is by EFT. All of these scenarios are exemplary and non-limiting.
A number of different types of terminals can be employed with system 100. Such terminals can include a contact terminal 122 configured to interface with contact-type device 102, a wireless terminal 124 configured to interface with wireless device 112, a magnetic stripe terminal 125 configured to interface with a magnetic stripe device 150, or a combined terminal 126. Combined terminal 126 is designed to interface with any type of device 102, 112, 150. Some terminals can be contact terminals with plug-in contactless readers. Combined terminal 126 can include a memory 128, a processor portion 130, a reader module 132, and optionally an item interface module such as a bar code scanner 134 and/or a radio frequency identification (RFID) tag reader 136. Items 128, 132, 134, 136 can be coupled to the processor 130. Note that the principles of construction of terminal 126 are applicable to other types of terminals and are described in detail for illustrative purposes. Reader module 132 can be configured for contact communication with card or device 102, contactless communication with card or device 112, reading of magnetic stripe 152, or a combination of any two or more of the foregoing (different types of readers can be provided to interact with different types of cards e.g., contacted, magnetic stripe, or contactless). Terminals 122, 124, 125, 126 can be connected to one or more processing centers 140, 142, 144 via a computer network 138. Network 138 could include, for example, the Internet, or a proprietary network (for example, a virtual private network, such as the BANKNET® virtual private network (VPN) of MasterCard International Incorporated off Purchase, N.Y., USA. More than one network could be employed to connect different elements of the system. For example, a local area network (LAN) could connect a terminal to a local server or other computer at a retail establishment. A payment network could connect acquirers and issuers. Processing centers 140, 142, 144 can include, for example, a host computer of an issuer of a payment device (or processing functionality of other entities discussed in other figures herein).
Many different retail or other establishments, as well as other entities, generally represented by points-of-sale 146, 148, can be connected to network 138. Each such establishment can have one or more terminals. Further, different types of portable payment devices, terminals, or other elements or components can combine or “mix and match” one or more features depicted on the exemplary devices in
Portable payment devices can facilitate transactions by a user with a terminal, such as 122, 124, 125, 126, of a system such as system 100. Such a device can include a processor, for example, the processing units 106, 116 discussed above. The device can also include a memory, such as memory portions 108, 118 discussed above, that is coupled to the processor. Further, the device can include a communications module that is coupled to the processor and configured to interface with a terminal such as one of the terminals 122, 124, 125, 126. The communications module can include, for example, the contacts 110 or antennas 120 together with appropriate circuitry (such as the aforementioned oscillator or oscillators and related circuitry) that permits interfacing with the terminals via contact or wireless communication. The processor of the apparatus can be operable to perform one or more steps of methods and techniques. The processor can perform such operations via hardware techniques, and/or under the influence of program instructions, such as an application, stored in one of the memory units.
The portable device can include a body portion. For example, this could be a laminated plastic body (as discussed above) in the case of “smart” cards 102, 112, or the handset chassis and body in the case of a cellular telephone.
Again, conventional magnetic stripe cards 150 can be used instead of or together with “smart” or “chip” cards, and as noted in some cases, a card account with no physical card can be employed. Yet again, in some instances, no use of cards is made and payment is by EFT. All of these scenarios are exemplary and non-limiting.
It will be appreciated that the terminals 122, 124, 125, 126 are examples of terminal apparatuses for interacting with a payment device of a holder. The apparatus can include a processor such as processor 130, a memory such as memory 128 that is coupled to the processor, and a communications module such as 132 that is coupled to the processor and configured to interface with the portable apparatuses. The processor 130 can be operable to communicate with portable payment devices of a user via the communications module 132. The terminal apparatuses can function via hardware techniques in processor 130, or by program instructions stored in memory 128. Such logic could optionally be provided from a central location such as processing center 140 over network 138. In some instances, the aforementioned bar code scanner 134 and/or RFID tag reader 136 can be provided, and can be coupled to the processor, to gather data, such as a product identification, from a UPC code or RFID tag on a product to be purchased.
The above-described devices 102, 112 can be ISO 7816-compliant contact cards or devices or NFC (Near Field Communications) or ISO 14443-compliant proximity cards or devices. In operation, card 112 can be touched or tapped on the terminal 124 or 126, which then contactlessly transmits the electronic data to the proximity IC chip in the card 112 or other wireless device. Magnetic stripe cards can be swiped in a well-known manner. Again, in one or more instances, the card number is simply provided via telephone, web site, or the like. Yet again, in some instances, no use of cards is made and payment is by EFT. All of these scenarios are exemplary and non-limiting.
One or more of the processing centers 140, 142, 144 can include a database such as a data warehouse 154 for storing information of interest. Network(s) 138 could, as noted, include a virtual private network (VPN) and/or the Internet; the VPN could be, for example, the aforementioned BANKNET® network.
With reference to
A number of different users 2002, U1, U2 . . . UN, interact with a number of different merchants 2004, P1, P2 . . . PM. Users 2002 could be, for example, consumers, payors, or other holders of payment cards. Merchants 2004 interact with a number of different acquirers 2006, A1, A2 . . . AI. Acquirers 2006 interact with a number of different issuers 2010, II, I2 . . . IJ, through, for example, a single operator 2008 of a payment network configured to facilitate transactions between multiple issuers and multiple acquirers; for example, MasterCard International Incorporated, operator of the BANKNET® network, or Visa International Service Association, operator of the VISANET® network. In general, N, M, I, and J are integers that can be equal or not equal.
During a conventional credit authorization process, the cardholder 2002 pays for the purchase and the merchant 2004 submits the transaction to the acquirer (acquiring bank) 2006. The acquirer verifies the card number, the transaction type and the amount with the issuer 2010 and reserves that amount of the cardholder's credit limit for the merchant. Authorized transactions are stored in “batches,” which are sent to the acquirer 2006. During clearing and settlement, the acquirer sends the batch transactions through the credit card association, which debits the issuers 2010 for payment and credits the acquirer 2006. Once the acquirer 2006 has been paid, the acquirer 2006 pays the merchant 2004.
It will be appreciated that the network 2008 shown in
In a payment phase, consumer 1010 sends bill payment instructions to CSP 1008, as seen at 1020. CSP 1008 in turn sends the bill payment information to the system 1006, as at 1022. The system sends funds and data electronically to BSP 1004, as at 1024. The BSP 1004 posts payment information to the biller 1002, as at 1026.
Currently, to carry out a straight transfer of a file from one party to another, GFT (Global File Transfer) takes advantage of in-place connectivity and does not offer file transfer protocol (FTP) services. A straight transfer may be carried out because of a relationship with a member and a vendor or third party. As will be appreciated by the skilled artisan, GFT is a system available from MasterCard International Incorporated wherein files are transferred over a payment network of the kind shown in
There are a number of methods of passing a file through a payment system; for example:
As noted, in one or more embodiments, inventive techniques can be employed in connection with the MASTERCARD RPPS® electronic payment system of MasterCard International Incorporated of Purchase, N.Y., USA. The RPPS application was initially developed to support remote banking payments and since has been extensively modified to provide additional functionality and to support new lines of business.
One or more embodiments process payments (e.g., electronic funds transfer “EFT”) in a batch mode, edit the information received from payment originators to ensure completeness, feed a settlement system (for example, one operated and/or provided by a payment network operator such as MasterCard International Incorporated of Purchase, N.Y., USA), feed a billing system (for example, one operated and/or provided by a payment network operator such as MasterCard International Incorporated of Purchase, N.Y., USA), and forward remittance information to a party such as, for example, a concentrator representing the biller.
One or more embodiments are supported by various web applications. In some instances, these web applications are largely standalone and not integrated; other approaches can be used in other instances. Non-limiting examples of web applications include:
Non-limiting exemplary system architecture will now be described. With reference to
As depicted in
Discussion of exemplary bill payment processors will now be provided.
The inbound daemon processor 650 reads the messages from the request queue, processes the data and persists to the database. After successfully processing the inbound data, it queues up work in the internal queues such as the confirmation queue, remittance queue, immediate schedule queue, and the like. Once it is done with processing the inbound file and batch data, it performs several post process tasks. For example; query the file and verify the batch count. If this batch is the last batch for that file, then it implies that file inbound processing is complete, and it is time to kick off other downstream processing tasks such as confirmation queuing. Another post process task is monitor processing.
In a non-limiting example, the bill payment inbound daemon processor 650 can receive 3 types of request messages from the BP4 inbound process:
Bill payment inbound daemon processor 650 reads the messages from the request queue, processes the data and persists it to the database. After successfully processing the inbound data, it queues up work in the internal queues such as the confirmation queue, remittance queue, immediate schedule queue, reporting queue, and the like.
When the business rule validation is complete, three messages are sent to the workflow from the inbound daemon processor 650. These messages are delivered independently of each other. The actions produced by the messages may run at the same time as other processes in the system as they are only dependent on data generated before the messages are delivered.
The confirmation group queue processor 652 reads the internal work message from the confirmation queue, fetches the file ID, and begins the confirmation group queue processor.
The remittance group queue processor 654 reads the internal work message from the remittance queue, fetches the file ID, and begins the remittance group queue processor.
The immediate schedule processor 656 reads the internal work message from the immediate schedule queue, fetches the file ID, and begins the immediate schedule processor. The processor sends a message when it has identified work that needs to be done “right now.”
The scheduler daemon processor 658 wakes up at intervals and checks the task list table to see if there are any tasks to be done immediately. If so, it will send an outbound ready message to the outbound organizer processor 660 as follows; with no attributes and puts the message in the outbound ready queue 799.
<internalwork worktype=“BeginOutbounding”>
</internalwork>
Any business data is preferably passed via the attribute list in the internal work object. For example, when an inbound process is done with processing and when it verifies that the inbound file has completed in-bounding the data, it puts an
<internalwork> (with an <inboundfileid> attribute in it)
to a list of internal processes, such as confirmation queuing, remittance queuing, scheduler daemon, and reporting process.
The bill payment scheduler daemon processor 658, once it identifies that there are tasks to be done by the outbound organizer processor 660, puts an internal work object (in a non-limiting exemplary embodiments, at present no attributes are identified) in the outbound ready queue.
The outbound organizer processor 660 process builds the outbound files and produces messages that the bill payment outbound generator processor 662 uses to send the files to the participants 502. Three messages are sent—outbound physical file, outbound logical file, and outbound batch and details.
The outbound generator processor 662 reads the messages in the outbound organizer processor ready queue. If an outbound ready message exists, then this processor 662 starts generating the outbound data and will queue up the data in the outbound tables. It then reads the data from these table(s), and generates work request message(s) to the BP4 system 504.
With regard to the back post remittance processor 664, this process includes creation of transaction feeds to settlement, billing and data warehouse. Items in
The processors within the bill payment system preferably communicate with each other using internal work object representation. When a process is done with its processing, it might put an internal work message in the queue, and the other process listening to the messages in the queue will start processing after reading the internal work message. For example, the inbound process will generate the internal work instances and put the message in the confirmation queue, remittance queue, and immediate schedule queue respectively. See also
The MQ BP4/bill payment inbound queues include (see
The MQ BP4/bill payment outbound queues include:
The MQ bill payment Internal Workflow Queues include:
Work dispatcher 791 is discussed below.
Exemplary bill payment support components include post remittance script 668 which generates the settlement in full (SIF) file and accumulates billing statistics.
It should be noted that in some instances, flags for payments addenda may be set to “no” where payments with addenda are not allowed. Other instances may permit such addenda.
In one or more embodiments, a series of lookup tables is employed to contain valid values for file, batch and detail fields. These tables are used instead of hard-coding values in the program. A separate table is not needed for each field—a generic set of tables can be provided to cover lookups. Some fields have only single lookup values. Other fields have lookups keyed on multiple inputs (relations between this field and another field).
Note that fixed outbound formats could have overflows in the amount totals.
One or more embodiments may include capability to design reports for audit and exception reporting to aid customer support.
In one or more embodiments, the bill payment inbound preprocessor is capable of breaking a physical file into multiple logical files, as shown at 504. Furthermore, the bill payment inbound preprocessor, in at least some instances, passes the number of rejected batches in the file message in addition to the number of total batches; the bill payment inbound preprocessor is capable of determining the bulk type (a label that defines the physical characteristic of files that are exchanged to & from customers), file name and deliver date/time for files associated with the specific file IDs (workflow IDs). Alternately, the preprocessor provides a workflow for re-queuing a file for input; in some instances, the re-queuing would only apply to files received on the current processing day.
In one or more embodiments, Focus is employed to determine the record type based on field 1 on the transaction detail/addenda record in combination with the record type of the parent record in the file structure hierarchy. UMT (or FOCUS) is a Universal Message Translator that translates messages to and from the customer's format to the application's generic format. This allows the core business processing logic to be format agnostic.
One or more embodiments interface with other applications, either internal or external to bill payment. Most, but not all, of these “interfaces” involve data interfaces. Areas where non-data related changes to other applications are required may also be present in some instances.
The below table presents a non-limiting exemplary summary of interfaces, and documents, for a non-limiting exemplary embodiment, all the interfaces that the application platform has with customers and/or internal applications.
One or more embodiments may be linked to an appropriate bill payment database model.
One or more embodiments employ a customer-initiated entry (CIE) batch entry description lookup table which defines the valid entries and assigns an ID for each batch with description: ‘RPS PAYMNT’, ‘REVERSAL’, ‘RETURN’, ‘RPS SDAY’, ‘EXCEPTION’, and ‘E PAYMENT’. Again, references to the RPPS system are exemplary and non-limiting.
The CIE service class code lookup table defines the valid entries and associates them back to the batch entry descriptions with which they may appear.
The CIE transaction code lookup table defines the valid entries and associates them back to the service class code.
This CIE batch entry to transaction code lookup table defines the valid transaction codes for each batch entry description.
The date range entity gives the various date ranges needed by the application.
In some cases, it is appropriate to check whether the inbound format is compatible with the biller's outbound format. In some embodiments, all formats are compatible with each other except that inbound ACH-CTX (National Automated Clearing House (NACHA) Corporate Trade Exchange (CTX)) batches must be associated with billers that accept outbound ACH-CTX. Other approaches could be used in other instances.
Non-limiting exemplary actors and use cases for the system will now be described. This view presents the needs of the user by work streams. One or more embodiments include the following components interacting with each other via messages posted through a workflow engine.
In a non-limiting example, the standard payment work stream accounts for more than 80% of the transaction volume through the bill payment system (other embodiments may have different percentages). Furthermore, in some instances, many of the other bill payment work streams flow through standard payment processes as well. Aspects of standard payment processing and the corresponding outbound remittance data, confirmation file, billing, and settlement processes will now be discussed.
In general, the bill payment inbound preprocessor 650 receives data from GFT. After file integrity and data integrity checks, the bill payment inbound preprocessor communicates the file level fields to the bill payment business rules processor 506. The fields are saved into the bill payment relational database 508 and validated. If the file level validation results in a status of accepted, the bill payment inbound preprocessor 650 communicates the batch data (along with the detail transactions contained in the batch) one by one to the bill payment business rule processor 506. Again, the fields are saved into the bill payment relational database and validated. When the process is finished, the relational database 508 has all data needed to issue a confirmation file and remittance files. In one or more embodiments, one of the last actions that the business rules validation takes is to post a message saying that there are transactions available for downstream processes. The bill payment confirmation file and outbound remittance processes will be interested in this message.
An overview data flow in the bill payment core system is shown in
In one or more embodiments, significant outbound components include:
Start of Day Process: This process 930 performs tasks to be performed at the start of each processing day. In some cases, each originator has a daily credit cap amount, and the accumulated net amount of transactions from the originator received during the processing day may not exceed this cap. In one or more instances, a table will be set up to keep track of the running net credit amount used for the day. The following fields are available in the table, in an example:
When a temporary credit cap update is made to allow inbounds to process, there is preferably an option for the entry of an expiration date associated with the new cap. At start of day, the caps that are expired will typically be rolled back to their previous values.
In the following illustrative example the credit cap amount for the participant is set at 1800. (The skilled artisan will appreciate that 1800 in this context is a value and not a reference character.) On Jun. 19, 2008, the participant has a particularly busy day and needs to temporarily update the cap amount. Support staff raises the cap to 3000, but sets the expiration date time to the next start of day. The original amount of 1800 is put as the default cap amount. Then the start of day procedures on Jun. 20, 2008 detect that the row is expiring and so insert the third row to revert the cap amount back to normal.
The configuration data is information that is specific to the bill payment application in general:
Elements 14, 16, 18, 20, 901, 903, 905, 990, 1440, 1442, and 1444 in
With regard to confirmation and remittance outbound file message design, in an exemplary embodiment, the message flow to the various bill payment components is as depicted in
In one or more embodiments, when the business rule validation is complete at 3001, three messages are sent to the workflow:
These messages are delivered independently of each other, in some instances. The actions produced by the messages may run at the same time as other processes in the system as they are typically only dependent on data generated before the messages are delivered.
In one or more embodiments, the work schedule process 12 sends the following message when it has identified work that needs to be done “right now” (i.e., as per “bill payment schedule immediate” block 3009):
In one or more embodiments, the process 14 that builds outbound files produces messages that the bill payment postprocessor uses to send the files to the participants. In some cases, three messages are sent.
With reference to
In one or more embodiments, the batch and detail tables have a status table associated with them to keep track of the data life cycle. Valid status settings are, for example:
The inbound detail table also preferably has a reference to the remittance group queue row associated with it. It is preferably null-able because it will typically not be populated until the remittance queuing process is run. This column may also be updated from the build outbound files process to adjust batches for batch limits or duplicate trace numbers.
With regard to an exemplary confirmation queuing process 1200, refer to
A sample depiction of the resulting table 1202 is given below.
When the process is finished, this data is ready to be related back to the inbound tables to be able to produce confirmation out-bounds. For the inserted confirmation groups, the status of the associated rows in the inbound batch and inbound transactions are updated to “queued for confirmation.”
The outbound logical file ID and post-processor work ID columns will typically start out null. During the build outbound files process the columns will be assigned a value. These columns will allow the tracing of batches to the output confirmation files.
With regard to an exemplary remittance queuing process 10, refer to
A sample depiction of the resulting table 1302 is shown below.
In one or more embodiments, when the process is finished, this data is ready to be related back to the inbound tables to be able to produce remittance out-bounds. For the inserted remittance groups the status of the associated rows in the inbound batch is updated to “queued for remittance.”
Note that during the building of the remittance outbound files, in one or more embodiments, rows in this queue destined for the same biller will be combined into a single outbound batch if the batch types are compatible.
The outbound logical file ID and post-processor work ID columns will typically start out null. During the build outbound files process the columns will be assigned a value. These columns will allow the tracing of transaction details to the output remittance files.
With regard to scheduler processes, in one or more embodiments, the schedule parameters table(s) 990 will hold the settings that each participant has chosen for receiving confirmation and remittance files. The bill payment system support staff will maintain these parameters along with the other parameter data. Each outbound type may have different schedule parameters from the following options, for example:
Sample data depicting schedule parameters is given below.
In some instances, the following configuration tables are employed in association with the schedule table:
In one or more embodiments, the work categories table defines the grouping and granularity of the configurable outbound types. In the sample data all types can be addressed by the term “Outbound.” “Remittance” is further divided into five other types.
Referring to
Sample data depicting the daily schedule is given in
In some cases, the overall schedule for the current day is generated just once during start of day processing. However, items that are set up as “immediate” typically cannot be added to the schedule until the associated inbound files actually arrive. Throughout the processing day rows for the “immediate” items will be added as a time event with the current time as the event DTM. For example:
If dynamic scheduling of remittance is needed, those items are also inserted into the daily schedule table with similar settings.
In one or more embodiments, the valid status settings in the task list are:
Referring to
The items in the task list table with the status “queued” are those to be done “right now.” For outbound processing, it lists the items by participant, work type, destination end point and bulk type. To facilitate the list creation, the following configuration tables are utilized in one or more embodiments.
The list of queued tasks is joined to the following configuration tables to enable the building of outbound files.
The outbound default bulk type table gives the default bulk type defined for each outbound type. Participants may elect to send some outbound types to a different bulk type for easier identification.
The participant outbound parameters record the choices the participant has made regarding delivery destination options. The main entry giving the default bulk type and end point designations are given as outbound type “Outbound,” the most general type in the hierarchy. Overrides for sub-categories indicate a different destination for the specific category. Participants can choose different bulk type and/or end point for any outbound type. In the sample data:
These configuration tables then allow the schedule daemon to produce the list of tasks ready to perform now for the outbound process. The following sample data can be produced by combining the tables. Note that in one or more embodiments, the following sample is a virtual table produced by the program code; there is no physical table in the database corresponding to it. Other embodiments could take a different approach.
In the sample data, the tasks to be done now are:
Note that in the virtual task list, each unique combination of ICA (Interbank Card Association number), bulk type and end point is a unique outbound physical file.
In one or more embodiments, valid values in the task status table are:
If the schedule daemon starts its processing at the end of day, an additional sweep will be made to ensure that there are no tasks left over for the start of the next day. The sweep should consider the following:
The final step of the daemon execution is to produce a message to start the building of the outbound files. The timing of this message is straight forward if the task list is produced only from “Time” events in the daily schedule. However, in some instances, special processing is needed when “Window” events are involved.
When the time arrives for window processing, the system must typically delay the building of the outbound files to give the system time to finish the inbound process for any data already received. To do this, a list of files that have been received but not queued for confirmation or remittance is produced. The starting of the outbound building process is delayed until all batches for those files have been received and until all details in those files have been queued for confirmation and remittance.
The task list may, in some cases, be built before all inbounds are queued; it is dependent only on the schedule and configuration tables. However, if the task list is built before all the inbounds are queued, files received in the meantime (during the delay) to be confirmed or remitted in the “immediate” mode will wait until the next task list is built.
If decision block 1610 yields a “YES,” then proceed to step 1612 and select all inbound files that have a status of “pending.” Then, in step 1614, pause until all the batches are validated for these files. Further, in step 1616, pause until confirmation and remittances are queued for all the files in questions, and proceed to step 1618.
In an alternative approach for delaying the start of processing at a window, send a message to the pre-processor to send back: a list of files queued for processing, their size, and the time they arrived from GFT. For all files that arrived by the cutoff time and (optionally) are under a certain size, wait until their confirmation and remittance groups are complete.
Reference should now be had to
In one or more embodiments, the following configuration tables are employed to help this process (some exemplary participant parameters).
The exemplary participant table holds parameters for each participant. Some of those parameters are shown here as a non-limiting example. The outbound format type tells the formats the participant may use for outbound files. The no data style tells whether a “no data file” is to be sent to the participant if no detail transactions are received for them on a window that they have chosen. The no data style may have the values:
The confirmation style code tells what level of detail is to be included in confirmation files for this participant. The values are:
The below table presents exemplary configuration data for the outbound file Structure:
The outbound file structure configuration tells which outbound types can be grouped together in the same logical files and what order those types are to appear in the file.
The below table presents exemplary Outbound Physical File data:
The above table contains the description of the physical files to be outbound. There is one row for each physical file. The outbound file ID is a sequence number. This ID is put back into the confirmation queue and remittance queue tables showing which groups are associated with which physical file. As noted above, each unique combination of ICA, bulk type and end point in the task list table represents a distinct outbound physical file. The rows in this table are generated by querying the task list.
The below table presents exemplary outbound logical file data:
This table lists all the logical files containing outbound information. It is built by correlating the task list table with the outbound file configuration table. The following are combined to tell whether the confirmation and remittance groups can be combined into a single logical file or whether multiple logical files are needed:
Each logical file may combine one or more confirmation and remittance groups.
After the content is placed in the two outbound file tables, messages to the bill payment post-processor are generated to guide the creation of the actual outbound files.
This process preferably also addresses:
In one or more embodiments, the remittance group queue table will be the driver table for the SIF creation process. An example of sample remit group data follows:
For the SIF version 3, the payment party account reference code is a mandatory field. This field can be obtained from the MPS (Members Parameter System) parameter system. This is unique for the settlement service—payment party combination. This field is profiled in the SAM (Settlement Account Management) profile system and propagated to the MPS parameter system. Of course, throughout this exemplary embodiment, items which are mandatory may be optional in other embodiments.
The MPS tables which will be accessed are as follows. A DB2® connection (registered mark of International Business Machines Corporation) to the MPS tables can be established from the bill payment database, for example.
The logical details of the originator/concentrator values are summarized as follows (table for direction code):
In a non-limiting example, payment party type code “04” always goes with direction code “S,” and payment party type code “05” always goes with direction code “R.” It is dependent on who is sending or receiving the actual transactions. Debit credit code is dependent on the direction of the funds. For example for all the payment transactions, it is a debit for originator and a credit for the concentrators. For payment transactions, the originator is the sender so the direction code is ° S′ and the concentrator is the receiver of the funds, hence the direction code is ‘R.’
During the SIF process, a record is inserted in the SIF status table corresponding to a single SIF file. The SIF file serial number is a unique number assigned to each of the physical SIF files. It is a sequential count of each file starting at 1 and rolling over to 1 after reaching 99999. This feature can be used to track individual files. This file serial number is also used during the Settlement Notification (SINF) process to identify the status of the file. Furthermore, in one or more embodiments, the relevant SIF details are created in the SIF detail table. This table can be used to generate settlement reports in the future. Refer to the two tables of
In one or more embodiments, the SIF files will be transmitted to the SAM system using an internal GFT bulk type. Since GFT already stores the files by default, the physical files will not be stored in the bill payment system. Other embodiments may take a different approach.
After processing the SIF file, the SAM system will generate the corresponding Settlement Notification (SINF) files. The SINF file will be transmitted to the bill payment system using internal bulk type in GFT. A new TWS (Tivoli Workload Scheduler) job will be created which will be triggered on the arrival of the SINF file in the specified directory location. The SINF files will be processed by the bill payment system looking for the return status. The status will be stored and if there are errors then a FATAL error will be logged and notification will be generated for immediate attention by the bill payment system support team, using, for example, IBM Tivoli® software (registered mark of International Business Machines Corporation). Again, other approaches may be used in different embodiments.
The retention of data in the SIF tables can be decided based on appropriate considerations.
An exemplary end of day process 932 will now be described with respect to
The following table shows the mapping of the Data warehouse fields and the corresponding bill payment tables which contains the data.
In some instances, the billing process is kicked off as a part of the end of the day processing. For the specified day of processing, the billing process will accumulate all the details required for the creation of the billing files.
The billing process will create the following files and deliver them to a suitable billing system application, such as the MCBS (MasterCard Billing System) application.
The inbound detail table contains all the necessary data related to the accepted and rejected detail records. The billing process will get all the transaction records for the given processing day from the inbound detail table, ICA/RPPS ID information from the related tables, and generate the physical billing files. At the end of the processing it will update the inbound file status table with the completion of the billing status. The physical billing files will not be stored in the bill payment system. These files will be accessible from the GFT for the internal users. Other approaches could be used in other embodiments.
In some instances, one or more embodiments will replace or supplement an existing system. Purely by way of example and not limitation, in some such cases, only a VRU summary table will be populated and VRU maintenance information will be copied from a current (e.g., legacy) VRU contacts table. In some cases, one or more embodiments do not involve the addition of new members; in such cases, there may not be any anticipated changes for VRU maintenance. An interface for maintaining members may be covered in the internal tools requirements. A “PHONE” table may contain a phone type indicating VRU.
In some cases, such as, for example, a transition process, a new VRU summary table can be compared to an existing one, but not actually be used as the data source to perform the VRU calls. Later, when the table will start to be used to perform the actual VRU calls, the ‘call completed’ switch on all the existing records can be set to ‘Y’ first.
In a non-limiting example, a process for verifying that the voice response unit (VRU) calls have been completed can be performed by a Perl script that is kicked off on a specific schedule. If there is no information from the prior day's processing cycles, or if calls have not been completed for any information from the prior day's processing cycle, then the system will send an alert e-mail to the RPPS help desk and to RPPS account support. If the calls actually failed, Account Support will manually make the calls and update the VRU Summary table via the customer service representative (CSR) Tool.
With regard to reversal processing, one or more embodiments allow RPPS originators to reverse any payment transactions that were sent to RPPS (concentrators and/or billers) erroneously, such as duplicate payment submitted by the consumers, duplicate file being sent by the originator, and the like.
With regard to return payment & return reversal processing, one or more embodiments allow an RPPS concentrator and/or biller to return any payment transactions or reversal transactions to the originators due to an un-postable situation on the biller's side. This may be due to the account number being closed, incorrect, or the like.
With regard to non financial transaction processing, one or more embodiments allow both the RPPS originator and RPPS concentrator and/or biller to exchange non payment transaction information that may require action on the receiving side, such as an account number change.
Again, purely by way of a non-limiting example of transitioning from a legacy system to a system employing one or more aspects of the invention, during an initial part of the transition, data views or feeds from the bill payment (e.g., new application) tables will be created. These will be used to manually compare existing legacy system data to the corresponding bill payment data. In future phases of the transition, the bill payment views or feeds will replace the current methods of populating RPPS or similar data warehouse tables.
In one or more embodiments, concentrators can create returns using the payments center for their billers or they can give their billers access to the return functionality in the payments center. An issue in some circumstances is that there is no easy way for the concentrator to be able to identify which returns were created by a biller and then be able to charge back the biller for their returns. This is a reconciliation issue that is a barrier to many concentrators giving their billers the convenience of self-service via the returns functionality on the payments center. In some cases, the mainframe has the information required to create a report and/or a file of required data to assist the concentrators in reconciling returns created by billers using the payments center. This information is accessed and a report and/or a file is created that can be sent to or accessed by the concentrator.
Currently, the returns information is rolled into high level confirmation totals in existing concentrator confirmation files. One or more embodiments provide an enhancement that allows the user to choose how he or she wishes to receive this information. In some cases, the user selects whether he or she wants to receive a high level summary or details on the returns information. For each selection, the user can choose the method of delivery. Examples regarding the delivery of information include:
Some instances allow a user to have view-only access to this information. This restricts editing and submitting of returns but allows querying and downloading of the information, based on the user's set-up. Concentrators who have billers who can use payments center to reconcile are an example of entities that may benefit from such functionality.
With regard to portfolio conversion, some embodiments allow RPPS participants (concentrators and/or billers) to convert account numbers due to acquisition of new portfolio(s) or migrating their account numbers. Refer, for example, to co-assigned U.S. Pat. No. 7,917,435 of Hall et al., entitled “Apparatus and method for facilitating account restructuring in an electronic bill payment system,” the complete disclosure of which is expressly incorporated herein by reference in its entirety for all purposes, and to co-assigned US Patent Publication 2010/0174644 of Rosano et al., entitled “Integrated File Structure Useful in Connection with Apparatus and Method for Facilitating Account Restructuring in an Electronic Bill Payment System,” the complete disclosure of which is also expressly incorporated herein by reference in its entirety for all purposes.
Where the biller changes the concentrator, as at 2210, portfolio conversion is set up between the old biller and/or concentrator and new biller and/or concentrator, with a service payer that is either the old or new biller, and with a start date. In this process, if any of the information changes, then the existing relationship should preferably be inactivated and a new one should be set up.
In the SOD process 930, for all portfolio account conversion file registrations that have a start date of today, set the registration to active and for all portfolio account conversion file registrations that have an end date of today, set the registration to inactive.
In the portfolio account conversion process 2212, the details of portfolio account conversion files are validated and uploaded in the data base 508.
During the payment processing 2214, in some cases, apply additional business rule to the standard payment transaction to identify the concentrator(s) and/or biller(s) registered for portfolio account conversion. Element 2214 represents the payment processing techniques described elsewhere herein.
With regard to SIF 2216, in some cases, the SIF file creation process considers the RPPS ID/ICA details of the new biller and/or concentrator for converted transactions. With regard to SBF 2218 (Simple Billing Feed), in some cases, during the SBF process 2218, monthly fee, file upload fee, account upload fee and portfolio conversion transaction fee are maintained in bill payment at the biller enrollment level.
Note that useful information on portfolio conversion can be found in co-assigned US Patent Publications US 2008-0046364 A1 of Hall et al. and US 2010-0174644 A1 of Rosano et al., the complete disclosures of both of which are expressly incorporated herein by reference in their entireties for all purposes.
RPPS has the capability to allow billers and concentrators the option of receiving a file and/or settlement through the automated clearing house (ACH). This allows prompt settlement without the high cost of a “fedwire.” RPPS supports two ACH settlement models. ACH settlement for billers is achieved for processors that do not want to participate in settlement but do process the posting file. ACH settlement can also be achieved for participants that want to receive their posting data and settlement transaction through the ACH.
Non-limiting exemplary details will now be provided regarding a design solution, including system design details. In the non-limiting example, a presentation layer is not employed, nor is an infrastructure layer; other embodiments might employ one or both of these layers.
With regard to process architecture, in some instances, the bill payment application is built based on Java 5 technology and will run on UNIX on suitable high-end servers. The system will is designed to run in a standalone JAVA virtual machine (JVM), within the JAVA 5 runtime environment. The following components and APIs (application program interfaces) are chosen for use in development; others could be used in other cases:
With reference to
In one or more embodiments, the Data Access layer, in the bill payment system, uses ORM (object relational mapping) technologies such as Hibernate (a powerful, high performance object/relational persistence and query service) for most of the CRUD (CReate, Update, Delete) operations. In certain situations, the IBatis data mapper can be used to run bulk queries. The DAO (Data Access Object) layer uses queries from the ORM framework as well as native SQLs, where appropriate (SQL=Structured Query Language). There are also several stored procedures called from the Java Program and Shell scripts. In some cases, a mixture of both Hibernate and IBatis is used to obtain good performance.
Exemplary details will now be provided regarding an exemplary implementation using JAVA, it being understood that languages other than JAVA, or different approaches using JAVA, could be employed in some instances.
The following is an exemplary JAVA namespace that can be used as the package root for classes in the bill payment application:
The following is an exemplary JAVA namespace that can be used for the classes specific to inbound daemon process:
The following is an exemplary JAVA namespace that can be used for the classes specific to confirmation queuing process:
The following is an exemplary JAVA namespace that can be used for the classes specific to remittance queuing process:
In a non-limiting example, the following class represents a generic class that can be used to start up the bill payment processes, such as the inbound daemon process, outbound daemon process, confirmation queuing process, remittance queuing process, immediate schedule process, reporting process, and the like:
In a non-limiting example, it loads the spring bean factory using the SingletonBeanFactoryLocator class which will look for file “beanReffactory.xml” in the root of the classpath. It also initializes all the start-up application components that need to be initialized during the daemon process start up.
Reference should be had to the following table and to
Bill payment preferably has embedded scheduling functionality (bpScheduler) for processing and outbounding customer data. A customer can opt to receive his or her transactions immediately (bpImmediateScheduler) upon arrival. This scheduler is a long running process (bpSchedulerDaemon, bpScheduleWork) that keeps probing for any transactions in the outbound queues ready to be transmitted to the customer.
One or more embodiments include a bill payment monitor component, part of bpInboundDaemon, which may include, for example, threads running continuously; sleeping and waking up at intervals and executing business criteria. Once the business criterion is met they perform any post execution tasks and die.
One or more embodiments include a bill payment Work Dispatcher 791. This component's main responsibility is to dispatch the internal work objects to several internal destination queues as specified in the configuration. For example, when an inbound process 650 has validated its inbound data, it generates an internal work message to be put in the internal process queues. Another responsibility of this component is to build the internal work objects based on the workflow configuration (specified as a map of key value pairs (queuename and InternalWorkType); a configurable value via spring configuration. Values should match with the “enum” constants as defined in the InterWorkType class; that is to say, valid values should be verified against the predefined list of valid values.
One or more embodiments include a bill payment scheduler component, bpScheduler 2516, wherein all scheduler processes are dependent upon parameter maintenance being performed for the scheduling setup information.
One or more embodiments include a bill payment confirmation component (see, e.g., block 1200); a bill payment remittance component (see, e.g., block 10); and/or a bill payment outbound files generation component (see, e.g., block 14).
In one or more embodiments, some utility classes are defined, such as, for example:
com.acme.billpay.util.CommonUtils
See also
In some instances, the above utility methods can be used to verify null validity of the method arguments, where appropriate.
One or more embodiments include exception handling capability wherein there is capability for defining a custom exception and/or any new internal error codes.
One or more embodiments employ the well-known log4j tool for logging. In some instances, whenever an error is logged, bill payment will record some standard information for any log:
Error message
Work ID, file ID, Batch ID (as applicable)
Stack trace
In some instances, the bill payment process, before putting a message into a local error queue, will log the error message with the logging level of FATAL. These messages with log level set as FATAL will be monitored using TIVOLI service manager software or the like and a notification will be sent to the support staff.
In a non-limiting example, the following logging levels/priority are chosen while logging to the application log:
The following clarifications are provided re certain terminology employed herein:
One or more embodiments provide a system and/or method for use by an operator of a payment processing network, wherein such operator interconnects a plurality of customer service providers (such as banks of consumers) with a plurality of biller service providers (such as banks of billers). The system processes on-line bill payment transactions. Consumers utilize a service, such as a web site, made available by one of the customer service providers, to specify payment of one or more bills (e.g., electric, phone, gas). Optionally, presentment functionality is provided wherein bills from the billers are presented to the consumers electronically, such as on-line. Reference is made to co-assigned US Patent Publication 2011/0251952 of Kelly et al., entitled “APPARATUS AND METHOD FOR BILL PRESENTMENT AND PAYMENT,” the complete disclosure of which is expressly incorporated herein by reference in its entirety for all purposes. These transactions are routed to the bill payment system according to one or more embodiments of the invention, which helps clear, settle, and move funds from the consumer to the biller. Clearing is a function of processing transactions from the sender and transmitting them to the receiver. The receiver uses this information to reconcile consumer accounts. Settlement is the act of deriving and releasing financial information, from the transactions, to the appropriate financial networks to effect moving funds between the payee and the payor. In one or more embodiments, the front end (online application for consumers to specify payments) is provided by the customer service provider bank and the bank batches the transactions to RPPS or bill payment systems at regular times throughout the day (in RPPS, five pre-defined clearing and settlement times).
One or more embodiments of a bill payment system allow sending files, transactions, or batches all through the day and for processing them at any time of day. In some instances, an entity such as an operator of a payment processing network will process a batch as soon as received; depending on how the receiver has chosen the frequency at which they wish to receive, such entity will forward to them. In essence, one or more embodiments move from first-n-first-out (FIFO) to customer-based processing wherein the originator can define when to process and the receiver can define when to receive. Options include processing at a specified time, specifying whether to process immediately, and/or specifying a window for processing. Unlike the file-based RPPS approach, one or more embodiments of a bill payment system can process in near real time. Some embodiments even afford real-time clearing (but not necessarily settlement) of individual transactions. Such clearing of individual transactions may be effectuated, for example, by interfacing the bill payment system to web services.
In another aspect, each sender and receiver can have their own format; an up-front component translates incoming data into an internal format and switches it back upon dispatch. This is called UMT or Universal Message Translator, as defined earlier.
In a further aspect, business rules may be specified in a file accessed by a business rules engine so as to externalize the rules from the code.
An overall system may include additional servers, clients, or other computers of other entities, interconnected by one or more networks as discussed herein.
Given the discussion thus far, it will be appreciated that, in general terms, an exemplary method, according to an aspect of the invention, includes the step of obtaining, by an operator of a payment processing network, from a plurality of customer service providers (e.g., external members 502), a first plurality of messages. In general, messages can be of many types, such as, for example, payment transactions, returns, reversals, bill presentments, and the like. In the exemplary method, the first plurality of messages specify a plurality of bill payments to a plurality of biller entities. As used herein, “biller entities” is defined to include billers, biller service providers, and/or concentrators. In some instances, this step is carried out by messaging component 522 and inbound daemon processor 650. The first plurality of messages specify, for each of the bill payments, an amount and an intended one of the biller entities to be paid.
Another step includes, based on the first plurality of messages, dispatching, by the operator of the payment processing network, to the plurality of biller entities, a second plurality of messages to initiate the plurality of bill payments. In some instances, this step is carried out by outbound organizer processor 660 and outbound generator processor 662.
Still another step includes obtaining, by the operator of the payment processing network, at least one of:
In at least some instances, the first data specifies when the instructions are to be obtained from the particular customer service provider (CSP) in question, and the second data specifies when the messages are to be dispatched to the particular biller entity in question. In some instances, the first and second data is stored in bill payment relational database 508 and retrieved as necessary.
The operator of the payment processing network carries out at least one of:
In the context of the above two bullet points, “in accordance with” is defined to cover cases where there are instructions for scheduling all or only some of the pertinent messages. Scheduling the step of obtaining the first plurality of messages may be carried out, for example, using functionality embedded in bill payment inbound preprocessor 504. Scheduling the step of dispatching the second plurality of messages may be carried out, for example, using scheduler daemon processor 658.
In some cases, the second data obtained by the operator of the payment processing network specifies at least one of: immediate dispatch; periodic dispatch; and dispatch at at least one specific time.
In some embodiments, at least some of the second plurality of messages to initiate the plurality of bill payments initiate real time clearing of individual transactions.
In some instances, at least one of:
is carried out in accordance with a periodic schedule, and a further step includes periodically generating the periodic schedule. Optionally, in the generating step, the periodic schedule is a daily schedule.
In some cases, at least some messages of the first plurality of messages obtained by the operator of the payment processing network are obtained between instances of the periodic schedule generation, and the second data specifies immediate dispatch as to at least some instructions of the second plurality of instructions, and a further step includes updating the periodic schedule between the instances of the periodic schedule generation to reflect the second data specifying the immediate dispatch.
In some embodiments, the scheduling of the step of dispatching the second plurality of messages in accordance with the second data is carried out in accordance with the periodic schedule by having a schedule daemon wake at intervals to check the periodic schedule so as to determine whether start times associated with given ones of the messages have been reached.
In some instances, in the step of obtaining the first plurality of messages, the first plurality of messages further specify, for each of the bill payments, a corresponding payor. In some cases, a batch of messages could be sent with just the amount and the biller, and all messages in the batch are from the same payor.
As is also discussed elsewhere herein, some embodiments further include the additional step of providing a system, wherein the system comprises distinct software modules. Each of the distinct software modules is embodied, in a non-transitory manner, on a computer-readable storage medium. The distinct software modules include a messaging module 522, an inbound daemon processor module 650, an outbound organizer processor module 660, outbound generator processor module 662, a bill payment relational database module 508; a bill payment inbound preprocessor module 504; and a scheduler daemon processor module 658.
In such cases, the step of obtaining the first plurality of messages is carried out by the messaging module 522 and the inbound daemon processor module 650 executing on at least one hardware processor; and the step of dispatching the second plurality of messages is carried out by the outbound organizer processor module 660 and the outbound generator processor module 662 executing on the at least one hardware processor. Furthermore, in the step of obtaining, by the operator of the payment processing network, the at least one of the first data and the second data, the at least one of first data and second data is retrieved from the bill payment relational database module 508. Yet further, the carrying out of the at least one of scheduling the step of obtaining the first plurality of messages and scheduling the step of dispatching the second plurality of messages is carried out by at least a respective one of the bill payment inbound preprocessor module 504 and the scheduler daemon processor module 658, executing on the at least one hardware processor.
In another aspect, one or more embodiments of the invention or elements thereof can be implemented in the form of a system (or apparatus) including a memory and at least one processor that is coupled to the memory and operative to perform method steps as described. In some cases, the at least one processor is operative to perform the steps when instructions, tangibly stored in a non-transitory manner on a computer readable storage medium, are loaded into the memory for execution by the at least one processor.
In still another aspect, an article of manufacture includes a computer program product, and the computer program product in turn includes a tangible computer-readable recordable storage medium, storing in a non-transitory manner computer readable program code. The computer readable program code includes computer readable program code configured to carry out or otherwise facilitate any one, some, or all of the method steps herein.
Embodiments of the invention can employ hardware and/or hardware and software aspects. Software includes but is not limited to firmware, resident software, microcode, etc. Software might be employed, for example, in connection with one or more of a terminal 122, 124, 125, 126; a reader 132; payment devices such as cards 102, 112; a host, server, and/or processing center 140, 142, 144 (optionally with data warehouse 154) of a merchant, issuer, acquirer, processor, concentrator, payment network operator, originator, or any other entity as depicted in the figures; and the like; purely by way of further example and not limitation, the elements in
The notation “to/from network” is indicative of a variety of possible network interface devices.
As is known in the art, part or all of one or more aspects of the methods and apparatus discussed herein may be distributed as an article of manufacture that itself comprises a tangible computer readable recordable storage medium having computer readable code means embodied thereon. The computer readable program code means is operable, in conjunction with a computer system, to carry out all or some of the steps to perform the methods or create the apparatuses discussed herein. A computer-usable medium may, in general, be a recordable medium (e.g., floppy disks, hard drives, compact disks, EEPROMs, or memory cards) or may be a transmission medium (e.g., a network comprising fiber-optics, the world-wide web, cables, or a wireless channel using time-division multiple access, code-division multiple access, or other radio-frequency channel). Any medium known or developed that can store information suitable for use with a computer system may be used. The computer-readable code means is any mechanism for allowing a computer to read instructions and data, such as magnetic variations on a magnetic media or height variations on the surface of a compact disk. The medium can be distributed on multiple physical devices (or over multiple networks). For example, one device could be a physical memory media associated with a terminal and another device could be a physical memory media associated with a processing center. As used herein, a tangible computer-readable recordable storage medium is intended to encompass a recordable medium, examples of which are set forth above, but is not intended to encompass a transmission medium or disembodied signal.
The computer systems and servers described herein each contain a memory that will configure associated processors to implement the methods, steps, and functions disclosed herein. Such methods, steps, and functions can be carried out, e.g., by processing capability on the various elements, platforms, and so on, processors associated with any entities as depicted in the figures, and the like, or by any combination of the foregoing. The memories could be distributed or local and the processors could be distributed or singular. The memories could be implemented as an electrical, magnetic or optical memory, or any combination of these or other types of storage devices. Moreover, the term “memory” should be construed broadly enough to encompass any information able to be read from or written to an address in the addressable space accessed by an associated processor. With this definition, information on a network is still within a memory because the associated processor can retrieve the information from the network.
Thus, elements of one or more embodiments of the invention, such as, for example, processors associated with any entities as depicted in the figures; and the like, can make use of computer technology with appropriate instructions to implement method steps described herein. Some aspects can be implemented, for example, using one or more servers which include a memory and at least one processor coupled to the memory. The memory could load appropriate software. The processor can be operative to perform one or more method steps described herein or otherwise facilitate their performance.
Accordingly, it will be appreciated that one or more embodiments of the invention can include a computer program comprising computer program code means adapted to perform one or all of the steps of any methods or claims set forth herein when such program is run on a computer, and that such program may be embodied on a computer readable storage medium. Further, one or more embodiments of the invention can include a computer comprising code adapted to cause the computer to carry out one or more steps of methods or claims set forth herein, together with one or more apparatus elements or features as depicted and described herein.
As used herein, including the claims, a “server” includes a physical data processing system (for example, system 2700 as shown in
Furthermore, it should be noted that any of the methods described herein can include an additional step of providing a system comprising distinct software modules embodied on one or more tangible computer readable storage media. All the modules (or any subset thereof) can be on the same medium, or each can be on a different medium, for example. The modules can include any or all of the components shown in the figures (e.g., servers, engines, hosts, queues, databases, and so on). The method steps can then be carried out using the distinct software modules of the system, as described above, executing on the one or more hardware processors. Further, a computer program product can include a tangible computer-readable recordable storage medium with code adapted to be executed to carry out one or more method steps described herein, including the provision of the system with the distinct software modules.
Thus, aspects of the invention can be implemented, for example, by one or more appropriately programmed general purpose computers, such as, for example, servers or personal computers, located at one or more of the entities in the figures, as well as within the payment network. Such computers can be interconnected, for example, by one or more of a payment processing network, another VPN, the Internet, a local area and/or wide area network (LAN and/or WAN), via an EDI layer, and so on. The computers can be programmed, for example, in compiled, interpreted, object-oriented, assembly, and/or machine languages, for example, one or more of C, C++, Java, Visual Basic, and the like (an exemplary and non-limiting list), and can also make use of, for example, Extensible Markup Language (XML), known application programs such as relational database applications, spreadsheets, and the like. The computers can be programmed to implement the logic and/or data flow depicted in the figures. The following table lists presently preferred, but non-limiting, software useful in one or more embodiments.
Although illustrative embodiments of the invention have been described herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be made by one skilled in the art without departing from the scope or spirit of the invention. For example, items listed as mandatory in some exemplary embodiments may be optional in others, and vice versa.
This patent application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/438,106 filed on Jan. 31, 2011, and entitled “Transaction Processing Engine for Consumer Bill Payment Transactions and the Like.” The disclosure of the aforementioned Provisional Patent Application Ser. No. 61/438,106, including all three appendices thereof, is expressly incorporated herein by reference in its entirety for all purposes.
Number | Date | Country | |
---|---|---|---|
61438106 | Jan 2011 | US |