This application for letters patent disclosure document describes inventive aspects directed at various novel innovations (hereinafter “disclosure”) and contains material that is subject to copyright, mask work, and/or other intellectual property protection. The respective owners of such intellectual property have no objection to the facsimile reproduction of the disclosure by anyone as it appears in published Patent Office file/records, but otherwise reserve all rights.
The present innovations are directed generally to merchant promotion distribution and redemption, and more particularly, to MERCHANT-CONSUMER BRIDGING PLATFORM APPARATUSES, METHODS AND SYSTEMS.
Consumers may shop for products they are interested at a variety of places, e.g., a supermarket, a department store, etc. For example, a consumer may go to a supermarket to look for a desired product. He may find and pick up the desired product at the supermarket, bring the product to a check-out lane, and pay for the product at a point of sale (POS) terminal at the supermarket to complete the purchase.
Service providers such as banks and merchants run loyalty or rewards programs to reward their customers for being loyal to their business, encourage more spending, or entice new customers. These rewards may be in the form of points, cash back, gift cards, miles, etc.
The accompanying appendices and/or drawings illustrate various non-limiting, example, innovative aspects in accordance with the present descriptions:
The leading number of each reference number within the drawings indicates the figure in which that reference number is introduced and/or detailed. As such, a detailed discussion of reference number 101 would be found and/or introduced in
The MERCHANT-CONSUMER BRIDGING PLATFORM APPARATUSES, METHODS AND SYSTEMS (hereinafter “MCB-Platform”) provides a merchant-consumer bridging platform, whereby merchants and consumer electronic wallet accounts are registered with the MCB-Platform to facilitate consumer targeted offer distribution, redemption and payment during a purchasing transaction. In one implementation, the MCB-Platform may maintain a merchant database storing merchant information to provide matching offers to a consumer. In one implementation, the MCB-Platform may monitor and update merchant information such as, but not limited to merchant inventory, merchant product category, merchant geographical location, merchant business promotion, and/or the like.
In one embodiment, a consumer may register his smartphone (e.g., an Apple iPhone) with an electronic wallet service on the MCB-Platform. The consumer may receive discount information, electronic coupons, offers, rewards, etc., from an enrolled merchant website via emails, text messages, and/or the like. For example, if McDonalds is an enrolled merchant at MCB-Platform, a registered consumer may receive a “$2.99 happy meal” SMS from the MCB-Platform, and may walk to a McDonalds store to purchase the “$2.99 happy meal” by providing his electronic wallet information, e.g., by swiping a MCB-Platform magstripe card, by engaging a NFC contactless handshake via his smartphone, and/or the like.
For another example, a consumer may visit a merchant's website, and select a desired product from the merchant's website to associate the product to his electronic wallet account. In one implementation, the consumer may pick up the product at an enrolled merchant store and the MCB-Platform may automatically process the payment with the enrolled merchant store, upon submission of the consumer's electronic wallet information. In further implementations, the consumer may engage in MCB-Platform in multiple channels, such as, but not limited to mobile networks/devices, social networks, and/or the like.
In a further embodiment, the MCB-Platform may facilitate a merchant collecting information related to consumer's purchasing habits, preferences of products, and/or the like, based on which the merchants may design targeted campaign programs and marketing promotions. For another example, the MCB-Platform may facilitate loyalty/affinity programs for merchants. In one implementation, the merchant registry at a MCB-Platform database may match a consumer loyalty/affinity program membership, which facilitates delivery of offers, rewards and/or the like, to consumers. For example, a merchant may launch a “15% off invitation” offer to attract first-time consumers, and a “25% off loyalty” offer for returning consumers.
In one implementation, the MCB-Platform 120, upon obtaining the consumer opt-in activity data 105, may find merchant offers that match with the consumer's interest 106. For example, the MCB-Platform 120 may determine “John Smith” is interested in coffee products 103a based on his constant purchasing at Starbucks. In one implementation, the MCB-Platform 120 may prompt matched offers to the user, e.g., via his mobile wallet at 108. Such offers may comprise a coupon of a coffee shop located close to “John Smith's” location based on his GPS coordinates, which matches the consumer's interests in coffee 103b.
In further implementations, the MCB-Platform cloud 120 may obtain various information from the Internet and/or the cloud, such as music 113a, video 113b, photos 113c, applications and documents 113d, shopping experiences 113e, and/or the like. Within implementations, such contents may provide insights to the MCB-Platform cloud 120 on merchant updates, e.g., a news article reporting a merchant store's grand opening, a Facebook advertisement of a merchant, etc. Further implementations of MCB-Platform web claws are described in
Continuing on in
In one embodiment, a consumer 202, may be associated with an electronic wallet 203, which may comprise one or more of a bank account, a MCB-Platform service account, a merchant membership account, and/or the like, possessed with the consumer 202. For example, a consumer may possess an electronic wallet linked a Bank of America checking account, a Chase credit card account, a Sam's Club membership account, and/or the like. For another example, the consumer's electronic wallet may be registered for the MCB-Platform service.
In one embodiment, upon registering with a MBC-Platform, the consumer may visit a participating merchant store's website and obtain product information 218. For example, the consumer 202 may browse a merchant's online catalogue, a third party shopping website featuring the merchant's product (e.g., Amazon.com, Zappos.com, etc.) and/or visit product advertisement via social media 250 (e.g., Facebook, Twitter, etc.). The consumer 203 may submit an online purchase request and/or a subscription to a desired product 213. For example, a consumer device (e.g., a browser running on a consumer smartphone, computers, etc.) may generate a Hypertext Transfer Protocol Secure (HTTPS) POST message to make a subscription/purchase request including the desired item information in the form of data formatted according to the XML. Below is an example HTTP(S) POST message including an XML-formatted subscription message 211 for the MCB-Platform server:
The merchant website 250 may synchronize the purchase request 253 (e.g., which may take a similar form to the subscription request 211) to a merchant store for consumer's pickup, and may also provide the consumer a geographical location of a merchant store that features the desired product.
In one embodiment, the consumer 202 may provide his MCB-Platform wallet information 207 to a merchant store 210 prior to his check-out. For example, in one implementation, the consumer may swipe a MBC-Platform membership magstripe card at a POS terminal of the merchant store. For another example, the consumer may operate a smart phone for registration with the POS via short messages. For another example, the consumer may register with the merchant via bar code scan of the consumer's MBC-Platform membership card and/or the product.
In one embodiment, the merchant store 210 may obtain the “wallet” information 207 at its POS terminal, which may comprise the consumer's wallet account information (e.g., a wallet ID, the associated bank information, etc.), the product reservation information, and/or the like. The merchant store 210 may generate a payment request 250 to a MCB-Platform server, wherein the payment request may comprise merchant store/terminal identification information, consumer wallet identification information, a payment amount, and/or the like. For example, the merchant terminal 210 may generate a HTTPS POST message to make a payment request including the desired item information in the form of data formatted according to the XML. Below is an example HTTP(S) POST message including an XML-formatted payment request message 250 for the MCB-Platform server:
In one embodiment, the MCB-Platform server 220 may process the payment request, and communicate with a financial network 230 to exchange financial data 233b to perform the financial transaction (as further illustrated in
In one embodiment, the MCB-Platform server 220 may send payment approval 255 (e.g., see also 316b in
In one embodiment, the MCB-Platform server 220 may establish data records of registered consumers, merchants, past transactions 223 for storage in a database 219. A merchant registry at the MCB-Platform may comprise data entries such as, but not limited to merchant ID, merchant URL, URI, US DMA, MSA, NAICS codes, position coordinates, latitude, longitude, consumer preferences, opt-in activities, history, offer notifications, messaging campaign settings, campaign management, offer delivery, messaging, redemption, analytics, and/or the like.
For example, an exemplar XML code of a merchant record may take a form similar to the following:
Further implementations of the database 219 are discussed in
In a further implementation, the MCB-Platform may support wholesale API delivery of embodiments of the MCB-Platform.
In one implementation, upon registration 209, a merchant may bridge with consumers in a variety of electronic wallet vehicles. For example, the merchant may cooperate with carriers to provide smartphone applications for NFC handshakes. For another example, a merchant may equip MCB-Platform products barcode/NFC plate reading machines at its POS terminals. For another example, a merchant may accept magstripe cards to provide electronic wallet information.
In one embodiment, a consumer may browse a merchant website to reserve a desired product online 212. In another implementation, a consumer may retrieve coupon information from the merchant website, e.g., a “$2.99 happy meal” from McDonalds, etc. In another implementation, a consumer may click a product advertisement on a social media platform (e.g., Facebook, Twitter, etc.) and select to reserve a product.
The merchant web-server may generate a pre-order 221 and transmit the tentative pre-order information 222 to the MCB-Platform. For example, the pre-order information may comprise product information, consumer wallet information, and/or the like. In one implementation, the MCB-Platform 220 may form a query based on the product information for a list of locations of merchant stores that feature the product, e.g., at 224a. In a further implementation, the consumer information may comprise GPS information of the consumer, e.g., the consumer may operate a GPS-enabled smart phone (e.g., Apple iPhone, etc.) to submit the pre-order; the consumer wallet information may comprise one or more consumer's home addresses, etc. The MCB-Platform may then provide a list of merchant stores ranked by the distance to the consumer's location, e.g., 224b.
In one implementation, at a merchant store, the consumer may submit consumer's wallet information 232. For example, while waiting in the line for check-out, the consumer may swipe a magstripe card at a POS terminal. For another example, the consumer wallet information may be submitted via a bar code reading and/or NFC handshake machine.
In one implementation, the MCB-Platform may receive consumer wallet information from a merchant store, and then retrieve the consumer's pre-order information, and verify the consumer/merchant status 235. For example, in one implementation, upon receiving consumer wallet information, the MCB-Platform may confirm the wallet holder (e.g., the consumer) is physically present at a merchant store, and also confirm the merchant store is an MCB-Platform service enrolled acceptor. In a further implementation, the MCB-Platform may verify whether restriction may be applied for the MCB-Platform wallet service. For example, a consumer may specify a maximum payment amount allowable in MCB-Platform purchase to improve security.
In one embodiment, the merchant store may generate a transaction payment order at a POS terminal 238 based on the pre-order information associated with the consumer wallet. The consumer may then verify whether the payment amount is correct, e.g., whether the payment amount matches the amount that was offered online, etc. If the consumer agrees with the payment amount, he may enter an amount in his electronic wallet 241 to purchase. For example, the consumer may choose a variety of payment methods, such as, but not limited to mobile pay with electronic cash register (ECR), and/or the like. If the amount is not correct, e.g., a consumer receive a payment of “$4.56” for an order of “$2.99 happy meal” at McDonalds, etc., the consumer may request customer service 242.
In one embodiment, when the MCB-Platform receives consumer's payment notification, the MCB-Platform may confirm payment ability of the consumer and initiate payment 245. For example, the MCB-Platform may communicate with a financial account of the consumer to check payment ability, and if a checking amount with insufficient funds is associated with the wallet, the MCB-Platform may reject the transaction.
In one embodiment, the MCB-Platform may send payment approval to the merchant store 251 to approve the transaction, and the consumer may receive a purchase receipt 255 from the merchant. In another example, the consumer may receive a report of transaction from the MCB-Platform via emails, text messages, and/or the like.
In one embodiment, the MCB-Platform 120 may form a query for merchant offers based on received information 263. For example, in one implementation, if the received information indicates the consumer engaged in online grocery purchase and delivery, the MCB-Platform may query for online grocery delivery offers from the merchants. The MCB-Platform may then determine whether there is a consumer device available, e.g., whether the consumer has a registered phone number, email, membership card, and/or the like. If yes, the MCB-Platform may send a list of matched offers to the consumer 264. Otherwise if not, the MCB-Platform may send the matched offers to the merchant store 265.
In one embodiment, upon receiving a list of matched offers, the consumer 102, and/or the merchant store 110 may determine whether there is any indication of redeeming the offer. If yes, the offer may be redeemed by the consumer 266 and/or the merchant store 267. For example, the consumer may receive an offer code for “10% OFF grocery delivery” via SMS, and he may redeem the offer by entering the offer code at the check-out page of ordering grocery delivery online. For another example, the merchant store may receive an indication of redeem the offer “10% OFF grocery delivery” when the consumer proceeds at check-out by providing his wallet information, and the merchant may redeem the offer by applying the discount for the consumer.
In one implementation, the MCB-Platform 120 may update the transaction record 268, recording information such as, but not limited to consumer information, product information, transaction time, transaction amount, offer redeemed, and/or the like.
In one implementation, the MCB-Platform may retrieve matched merchant offers based on specified heuristics 273. For example, the list of matched merchant offers may be sorted by the top sponsored merchants. For another example, the list of matched offers may be sorted by relevance.
In one implementation, the MCB-Platform may send the list of matched offers to the selected consumer 274, such as, but not limited to emails, SMS, customer service calls, and/or the like. The MCB-Platform may then de-queue the consumer entry, and proceed with the next consumer entry in the consumer record.
In one implementation, the MCB-Platform may update the matched offers for each consumers periodically, e.g., on a daily basis, and/or the like.
If there is a POS terminal associated with the merchant, the MCB-Platform may parse the merchant URL page and extract information such as, but not limited to IP address, country origin, title, and other HTML tags 283, and store the parsed information into a merchant database 284.
In one implementation, the MCB-Platform may retrieve stored information 285 for merchant offer matching. The MCB-Platform may parse the stored values to query the merchant ID database 286. For example, for a shopping website selling brand shoes, the MCB-Platform may parse information from the webpage such as the brand names, the shoe type names, and/or the like, and form a query to find merchant stores that carry the shoes.
In one implementation, upon obtaining a list of merchant stores from the query, the MCB-Platform may determine whether there is a MCB-Platform service enabled POS associated with each merchant ID. If not, the MCB-Platform may proceed with the next merchant ID. If yes, the merchant may verify additional heuristics 287, such as, but not limited to whether the merchant is a top sponsor of MCB-Platform, whether the merchant is the most relevant, and/or the like.
In one implementation, the MCB-Platform may bind the matched merchant ID with parsed merchant webpage record 288, and retrieve geographic information associated with the merchant ID 289.
In a further implementation, the MCB-Platform may create and/or update a merchant campaign profile with the geo-location of a merchant store and the stored parsed merchant page 290. For example, for a merchant brand “GAP,” the MCB-Platform may associate its campaign program profile with the queried geo-locations of merchant stores, such as “GAP” stores, department stores that carries “GAP” products, and/or the like, and the parsed information from “www.gap.com”.
In a further implementation, the MCB-Platform may devise merchant campaign programs based on consumer opt-in activities heuristics. For example, the MCB-Platform may send individual in-store coupons to a consumer for the merchant 12 “GAP” at a fixed “GAP” store, if the consumer opt-in activities show a regular purchasing pattern at the fixed “GAP” store location.
For example, in one implementation, an employee checkout terminal 310.1 (e.g., with an electronic cash register, etc.) may be installed with the merchant 310, e.g., connected via analog dial or IP. If the merchant 310 is with no NFC reader, it may receive payment information from the consumer 302 by reading a magnetic strip card 302.1. In one implementation, the employee checkout terminal 310.1 may be connected to a payment network via TC40 303a.
In another implementation, the merchant 310 may employ a self-checkout terminal 310.2 which may comprise a NFC component to receive payment information from NFC handshake 303b, e.g., from a RFID card 302.2, etc. The POS terminal 310.2 may be equipped with radio component, such as NFC-296/896 Antenna Tuning Unit 6 (ATU), and/or the like).
In another implementation, the merchant 310 may employ feature phone checkout terminal 310.4. For example, a store employee may operate a feature phone to checkout consumer's purchases. In one implementation, the consumer may operate a feature phone 302.4 to checkout, which may send and receive SMS via a cellular network from the merchant feature phone 310.4. In further implementations, the feature phone may be equipped with a card reader plug-in 307a, and/or a NFC 307b component, e.g., the feature phone PANDA N1, etc., so that the consumer's magnetic card 302.1 and RFID card 302.2 may be read by the feature phone terminal 310.4, or the consumer feature phone 302.4. Within implementations, the feature phone checkout may be operated via cellular communication networks, TON, audio phone communication 303c, and/or the like.
In another implementation, the merchant 310 may employ a smartphone checkout terminal 310.3. For example, a store employee may operate a smart phone 310.3 to checkout consumer's purchases. For another example, the consumer 302 may operate a smartphone 302.3 which has an electronic wallet application for checkout. For example, to checkout, SMS messages including transaction request and authorization code may be exchanged between merchant and consumer phones via a cellular network. In further implementations, the feature phone may be equipped with a card reader plug-in 307a (e.g., Square card reader accessory, etc.), and/or a NFC 307b component, etc., so that the consumer's magnetic card 302.1 and RFID card 302.2 may be read by the smartphone terminal 310.e, or the consumer's smartphone 302.3. Within implementations, the smartphone checkout may be operated cellular communication networks, TCP/IP, Bluetooth, GPS, audio phone communication, video/image capturing, accelerometer 303d, and/or the like. For another example, the consumer may snap a photo of the barcode of the purchased item (and/or a generated QR code generated at the terminal) with the smartphone 302.3, which may transmit an image of the barcode or the QR code to a processing network. In another implementation, instead of operating smartphones 310.3 as barcode readers, the POS terminal may be equipped with barcode readers, such as, but not limited to Unitech All Terminals Ms146i-3ps2g Ms146 Barcode Slot Reader Ps2 Conn Infrared Ip54 Std, Intel 14 IMAGETEAM 3800LR Bar Code Reader, and/or the like.
In one implementation, a merchant may be equipped with a mobile phone as an acceptance device, but may not require two phones to tap or connect via blue tooth, wifi, or NFC in order to connect to each other to allow flexible usage of mobile checkout with different types of mobile phones and smartphones. In one implementation, the consumer device and merchant mobile terminal may be connected via WAP or data connections that would facilitate a connection to the MCB-Platform server via USSD or IP.
Within implementations, a variety of consumer merchant checkout formats discussed at 300a may further facilitate data collection such as, but not limited to web claws, merchant statistics, dollar ranges of merchant products, card history, and/or the like. Such data collection is further discussed in
In one implementation, the NFC enabled POS 310a may send a pre-check request 306 to the MCB-Platform server 302, e.g., to check whether the merchant has participated with MCB-Platform services. For example, POS 310a may generate a HTTPS POST message to make a merchant eligibility pre-check including the merchant information in the form of data formatted according to the XML. Below is an example HTTP(S) POST message including an XML-formatted pre-check request message 306 for the MCB-Platform server:
In the above example, the pre-check message 306 include information as to check whether the merchant has registered to participate in a MCB-Platform transaction, e.g., a transaction using MCB-Platform issued wallet, a merchant offer bridging transaction, and/or the like.
In one implementation, the MCB-Platform may query on a merchant database 319 based on a merchant ID to determine whether the requesting merchant has enrolled. If yes, the MCB-Platform may retrieve previously stored merchant information 308 (e.g., see also 26o in
Once the pre-check eligibility has been established, a cashier 305 may enter a sale request 309 at the ECR 310b, including a payment amount 311. For example, the payment amount may be told by the cashier to the consumer 302. For another example, the payment amount may be sent to the consumer's mobile wallet via SMS, as further discussed in
In one implementation, the consumer may confirm the payment amount, and the POS 310a may then generate a payment request 312 to the MCB-Platform server 2732o. For example, POS 310a may generate a HTTPS POST message to make a transaction payment request including the purchasing information and consumer account information in the form of data formatted according to the XML. Below is an example HTTP(S) POST message including an XML-formatted payment request message 312 for the MCB-Platform server:
In one implementation, the MCB-Platform server 320 may verify the received payment request information 312 with the retrieved merchant information 308, e.g., to avoid fraudulent transaction requests, etc. If there is any inconsistency, e.g., the merchant address in 312 differs from that in 308 (see also
In the above example, the confidence inquiry message 324 provide merchant information associated with the request activity, consumer information, and an activity type as “transaction payment.” The MCB-Platform scoring component 315 may determine how confident they are with the inconsistent new merchant information based on a variety of information, such as, but not limited to web claws 325 from Internet web 325 (e.g., news articles, merchant websites, etc.), consumer inputs 322 (e.g., consumer social media activities showing interactions of the merchant, purchasing history in the wallet, etc.), merchant updates, and/or the like. For example, one indicator for the confidence determination would be whether similar inconsistent information included in the payment request 312 (e.g., the address change as reflected in the above example) has been shown in additional information inputs such as 322-323.
Further implementations of the scoring component are discussed in
In one implementation, the MCB-Platform scoring component 315 may generate a confidence decision 326 to the MCB-Platform server 320 indicating whether the transaction may be processed in light of the inconsistent merchant information. For example, the MCB-Platform scoring component 315 may generate a HTTPS POST message to inform the confidence decision 326 in the form of data formatted according to the XML. Below is an example HTTP(S) POST message including an XML-formatted confidence decision message 326 for the MCB-Platform server:
In the above example, the confidence decision indicates the confidence score of the requested payment transaction in 312 has met the threshold requirement. Therefore, the MCB-Platform may approve the transaction and update the merchant database. In one implementation, a processing request 313 may be sent to the financial network 330 (e.g., the payment account's associated bank, etc.) for processing. For example, the MCB-Platform 32o may generate a HTTPS POST message to request financial processing in the form of data formatted according to the XML. Below is an example HTTP(S) POST message including an XML-formatted processing request message 326 for the financial network 330:
For another example, the processing request message 326 may take a form similar to the Visa Single Message System (SMS) format, Visa Original Credit Transaction (OCT) format, and/or the like.
In one implementation, upon the transaction has been processed at the financial network, an approval message 316a may be sent to the merchant 310 through an acquirer 340. For example, the acquirer may facilitate routing the approval message 316b to the merchant terminal 310b. In another implementation, the approval notice may be sent to the consumer via his electronic wallet 303, e.g., email, instant messages, SMS, and/or the like. For example, the MCB-Platform 32o may generate a HTTPS POST message to notify approval of the transaction in the form of data formatted according to the XML. Below is an example HTTP(S) POST message including an XML-formatted transaction approval message 315 for the consumer (and/or the merchant):
In one implementation, the merchant may send the pre-check request to confirm the merchant is an enrolled acceptor via NFC handshake, bar code read or merchant beacon, and/or the like.
Upon receiving the pre-check request, the MCB-Platform may form a query in a merchant database 340. If the merchant 310 is not an eligible participating member 343, the merchant 310 may receive a denial 345 at the terminal, e.g., a notice at the terminal that “wallet not acceptable,” etc. Alternatively, if the merchant is eligible, the merchant may initiate the wallet payment at its ECR 346. For example, a cashier may selects a wallet payment button (e.g., a “Visa V” button, a “V.me” button, etc, on a touch screen panel) on ECR/terminal so it is prepared to record the sale.
In one implementation, the cashier may inform the consumer of the amount. In another implementation, the MCB-Platform may provide offers that may be redeemable for the purchase to the consumer via the consumer's wallet, or via the merchant terminal, and/or the like. For example, when the MCB-Platform receives purchase information of an Toshiba product at BestBuy, the MCB-Platform may query its offer database and provide a “5% off Any Toshiba Laptop” offer to the consumer or the POS terminal at BestBuy. The purchase price may then be calculated to reflect redemption of the offer. Further implementations of offer matching are discussed in
In one implementation, the consumer may enter amount in wallet, select payment type and authenticate themselves 348 by entering wallet password (e.g., by login onto his mobile wallet, by entering a password at the POS terminal, etc.).
In one implementation, the MCB-Platform may verify merchant accepts payment type, apply merchant offers, discounts, loyalty calculations, confirm ability to pay (issuer approval) and initiate merchant payment to send an approval code (e.g., see in
In one implementation, the MCB-Platform may send the transaction to a financial network 33o for processing 353, e.g., to deduct funds from the consumer's account and credit the funds to the merchant's account. Upon authorizing the transaction, the MCB-Platform may send an approval (e.g., see 316a/b in
In alternative embodiments, e.g., at 338, the merchant may establish that the wallet is at the merchant via NFC handshake (e.g., Paveway, etc.), and the consumer wallet may receive a requested purchase amount from ECR. In such scenarios, the merchant ECR/POS may associate the consumer's wallet ID with an “open ticket” (e.g., the wallet information has been reserved for subsequent payment).
In one implementation, the consumer 402 may submit a mobile phone number 404 to the merchant terminal 410 which operates a mobile phone 410a. For example, the consumer may tell the mobile number to a cashier. For another example, the consumer may instantiate his wallet application 403 which may capture the consumer's mobile number and send it to the merchant mobile phone 410a, e.g., via SMS.
The merchant may then generate a payment request summary message to the consumer via SMS including a payment amount, a reference number and/or the like 411. For example, in one implementation, the SMS 411 may take a form similar to the following:
The consumer may then inserts the amount and the reference number in the SMS to his mobile wallet 412. For example, the mobile wallet may comprise an entry for extracting payment amount and reference number obtained via SMS. The MCB-Platform may then generate a payment request 407 to the merchant database, and perform confidence authorization to proceed the transaction via the scoring component 415, in a similar manner as discussed at 324 and 326 in
In one implementation, the MCB-Platform may generate a processing request 413 to the financial network 430, which may take a form similar to 313 in
In another implementation, the approval 414 may be sent to the consumer via SMS. For example, in one implementation, the SMS 414 may take a form similar to the following:
In one implementation, the merchant may send a SMS (e.g., 411 in
Within implementations, consumer may receive the SMS with amount from merchant number (e.g., a proxy for merchant ID), inserts securely to his mobile wallet, and submit consumer authentication credentials 445 to the MCB-Platform.
Within implementations, the MCB-Platform may verify merchant accepts payment type selected 446, and then apply merchant offers, discounts, loyalty calculations 452. The MCB-Platform may then confirm ability to pay (issuer approval on the available funds in the account, e.g., credit limit, funds in a debit account, etc.) 455 and process the financial transaction 453 with the financial network.
In one implementation, the consumer may receive an approval message at his wallet, e.g., via SMS 455 (see 414 in
Within implementations, the MCB-Platform may send approval to merchant via acquirer 457, which may require insertion of acquirer merchant ID based on the mobile number proxy. Within implementations, the approval message may be used to pay the merchant when the wallet account manager created the “auth response,” e.g., receipt to consumer wallet, SMS, print receipt at the terminal, etc.
Within implementations, merchant mobile checkout app may close ticket (e.g., app authenticates incoming confirmation with reference number sent in SMS and merchant ID), with final amount, identifies discounts 460 on virtual receipt/in system. The consumer may receive a purchase receipt via SMS 465.
In further implementations, interacting with the wallet in real time at the POS may provide real time rewards, redemptions and offers to the consumer 402. The offer matching to the consumer may be performed in a similar manner as discussed in
In one implementation, the MCB-Platform server 520 may require the card to be compliant with regulatory acts, e.g., the Durbin Amendment, etc. In one implementation, the financial network 530 (e.g., the card's issuing bank) may provide a token 514a, which may be converted a tokenized PAN number 514b for the consumer wallet 503. In one implementation, the card information is replaced with the tokenized PAN 514b that preserves the BIN so as not to impede merchant routing choice at the POS terminals. For example, the tokenized PAN 514b may comprise an integer value.
In one implementation, the consumer 502 may initiate a transaction by submitting wallet information 504 (e.g., see 304 in
Alternatively, the merchant may determine a BIN number from the wallet info based on the token of a selected account and send the BIN number 508 to an acquirer which may determine the issuer network 516b to route the payment transaction message on behalf of the merchant 510. For example, the acquirer may generate a HTTPS POST message to send issuer network brand in the form of data formatted according to the XML. Below is an example HTTP(S) POST message including an XML-formatted issuer network brand message 516b for the MCB-Platform:
The MCB-Platform may then route a processing request 518 (e.g., see 313 in
Upon enrollment, the merchant routing 500b may be performed based on the token number. Within implementations, upon consumer submitting wallet information including the token number of an enrolled card 552, the merchant 510, who may be a wallet POS acceptor, may retrieve a BIN number 553 from the token number in the wallet. The merchant may then determine whether an issuer network is determined 555. If yes, the merchant may insert the brand code for the network (e.g., an issuer network) they select (e.g., a new field in the auth) based on the BIN number 558. If the merchant POS can not designate the network brand 555, then the merchant may send the BIN number to the acquirer and the acquirer may do so on behalf of the merchant 560.
Within implementations, the transaction may come to MCB-Platform for “token conversion” 563 (acquirers may know this from the fact the POS service is identified as a wallet payment, e.g., “V,me,” etc.), which may convert the token to retrieve card information, and routed to the appropriate issuer/network. The financial network 53o may develop pricing 564 for the transactions that do not cause the acquirers to assert that choosing a processing platform other than MCB-Platform may result in a “penalty.”
Within implementations, an approval message may be sent to the merchant via the acquirer 565. In further implementations, the MCB-Platform may develop a fee structure that charges any other network 566, and not the merchant for delivering secure wallet transactions from the POS, e.g., a licensing fee or a delivery/transport fee, etc.
In one implementation, the MCB-Platform may provide a user login request 573 to the consumer, e.g., by displaying a login request to the consumer at the consumer's mobile device (e.g., see
Within implementations, the MCB-Platform may route an issuer authorization request message 575 to a processing gateway 540, e.g., based on the BIN number of the selected payment card 574. For example, the MCB-Platform may generate a HTTPS POST message to request issuer authorization in the form of data formatted according to the XML. Below is an example HTTP(S) POST message including an XML-formatted issuer authorization request message 574 for the processing gateway 540:
The processing gateway 540 may transmit the issuer authorization message 576 to the issuer 550, which may in turn generate an issuer authorization response 577 (e.g., see also 519a in
Within implementations, the MCB-Platform may generate session results 580a to the merchant 510, wherein the session results may comprise the status of the transaction, e.g., an approval message. Upon merchant receiving the session results 580b, the processing gateway may capture a transaction file 581a and send it to the acquirer 581b. In one implementation, the processing gateway may provide acquirer advice 579 to the acquirer.
In one implementation, the MCB-Platform scoring component may obtain various data inputs related to merchant information. For example, the scoring component 605 may obtain web claws 623 from the Internet 62o, merchant updates and transaction record 627 from merchant site 615 and merchant stores 610, mobile information 626 from mobile carriers 640, social media activities 624 from social media 630, and/or the like.
For example, in one implementation, the web claws 623 may comprise new articles from a news page that mentions the merchant name, product information, and/or the like. For another example, the merchant updates 628 and/or the transaction record 627 may comprise merchant profile information, inventory information, pricing information, and/or the like. For another example, social media updates 624 may comprise a merchant's Facebook page updates, merchant Twitter updates, consumer comments, “Likes” on a merchant product on Facebook, consumer tweets about the merchant and/or the products, and/or the like. For another example, mobile information 626 may comprise checkout request (e.g., see
Within implementations, the MCB-Platform scoring component may extract data fields from the various raw inputs, such as, but not limited to risk indexes, number of items for a defined merchant record, average item price on site, item diversity on site, defined merchant information verses estimated merchant information, average price on site verse average print by merchant information, hosting country, hosting service, average number of hosting services a year, site age, and/or the like.
In another implementation, the MCB-Platform scoring component may create a look-up table to determine whether a received merchant data field change indication has been verified. For example, such look up table may comprise data fields such as, but not limited to valid email, valid address, valid phone, verified email, verified address, verified phone, known spammer, deny list, allow list, and/or the like. For example,
Within implementations, the MCB-Platform may obtain information via a consumer 602 initiating a transaction payment at a merchant terminal via various protocols 604, such as, but not limited RFID 604a, TCP/IP 604b, mobile 604c, alias telephone 604d, and/or the like. The scoring component 605 may receive information such as a RFID 616, GPS 617, snapshot 618 (e.g., a picture of the storefront), audio feedbacks 614 (e.g., audio recording of the store atmosphere), accelerometer data 612 (e.g., movement data of a consumer smartphone), and/or the like. Further examples of merchant consumer checkout protocol stacks are discussed in
In one implementation, upon verification of a confidence score (e.g., see
As shown in
Alternatively, as shown in
Within implementations, the MCB-Platform may add a merchant URL from merchant enrollment to a hash table 6010, and then launch several threads 6040 which would get new URLs from hash table 6015, scrape content of the URL 6018, extract URLs from contents 6020, pop URLs from hash table 6030, add reviewed URL to a list of seen URLs 6025. The MCB-Platform may then sleep for random amount of time 6035, and pick one URL 6040 from extracted URLs to resume at 6015. If no URL exists 6040, the MCB-Platform may continue monitoring.
In one implementation, the MCB-Platform may extract table fields information from “spider” URLs, such as, but not limited to url, date time, metadata, content, images, javascript, css, referring sites, country of origin, hosting service, tcp/ip packets, and/or the like.
For example, the consumer may submit in-store merchant information 7 (e.g., GPS information, snapshot pictures, audio recording, etc.) 635, e.g., the consumer may submit such information to “check-in” via social media in order to obtain related offers, submit a purchase transaction request, and/or the like.
In another implementation, the MCB-Platform may obtain transaction information submission 636 from the merchant store 110, such as but not limited to a server IP, physical store location, and/or the like. For example, a merchant store POS terminal may submit a transaction request to the MCB-Platform, which includes merchant store information. For another example, the merchant may submit a request to the MCB-Platform to update merchant profile information.
In another implementation, the MCB-Platform may obtain miscellaneous non-instant transaction information, such as web claws, social media updates, 637, and/or the like.
Within implementations, the MCB-Platform may extract merchant key terms from the merchant information 642 embedded in the activity request, e.g., a merchant ID. The MCB-Platform may then query the merchant database based on the merchant ID 643, and retrieve the previously stored merchant record. The MCB-Platform may compare the stored merchant information with the received information from the received activity request 645, to determine whether the received information is new or inconsistent with the previously stored information 648. For example, the MCB-Platform may receive a purchase transaction request which indicates a different physical merchant store address from the previously stored merchant address (e.g., see FIG. 1C.(b)). For another example, the purchase transaction request may comprise a product that is not included in the inventory information from the previously stored merchant information.
When there is no new or inconsistent merchant information at 648, the MCB-Platform may periodic monitor the process, and proceed with 641.
When there is such new or inconsistent merchant information 648, continuing on with
In one embodiment, the MCB-Platform scoring component may use the adopt a structure to provide confidence levels for the types of inputs discussed. An exemplary XML-formatted scoring structure may take a form similar to the following:
Further examples of scoring structures may be illustrated in the centralized personal information platform as discussed in
Continuing on with 653 in
The MCB-Platform may determine whether the obtained confidence score is greater than the retrieved threshold 655. If yes, the MCB-Platform may update the merchant record 657 with the new or updated information (e.g., see 123 in
In another implementation, if the confidence score fails to meet the threshold value at 655, the MCB-Platform may timestamp the received information and activity request 656 for the scoring component (e.g., such received information itself will be integrated into the centralized personal information platform evaluation, as discussed in
In one implementation, if the data source comprises web/press news from the Internet web, the MCB-Platform may determine whether it is a new web URL 667. If not, the MCB-Platform may assign a confidence level associated with the known web/press source 669. If yes, the MCB-Platform may assign a new confidence level, e.g., 0.1, to a new web 668.
In another implementation, if the data source comprises consumer submitted data, the MCB-Platform may further determine a data type 670. For example, if it comprises purchase transaction information and the consumer's GPS coordinates, the MCB-Platform may extract merchant information from the transaction information 671a, and assign a higher confidence level, e.g., 0.4 671b, as the transaction record may indicate better accuracy. If the received data includes a storefront snapshot and GPS coordinates, the MCB-Platform may extract tiff information of the snapshot photo 672a, and perform optical character recognition (OCR) to extract merchant information from the photo 672b. Such data may be assigned a confidence score of 0.4, 23672b. In another implementation, if the received data comprises audio recording and the consumer's GPS coordinates, the MCB-Platform may perform audio analysis to extract merchant information from the background recording 673a. Such data may be assigned to a lower confidence level, e.g., 0.1 673b, as audio background sounds may be less indicative or accurate.
In further implementations, if the data source comprises a merchant, e.g., merchant requested data updates, etc., the MCB-Platform may extract merchant information 674a, and assign a higher confidence level of 0.4 674b.
In other implementations, if the data source comprises social media, the MCB-Platform may extract merchant information 678a from the social media feeds, news, activities, etc., and determine a confidence level based on the social media message source 678b. For example, a consumer's post indicating an address change of a merchant on Facebook may have a lower score of 0.1, but news posted on an official merchant social media channel (e.g., a Starbucks page on Facebook, a Starbucks Twitter account, etc.) may have a higher score of 0.3, and/or the like.
If not, the MCB-Platform may form a search on available merchant information update based on the inconsistent merchant information 685. For example, if the received merchant updates include a different store address from the record, the MCB-Platform may query on the new store address. If such additional data exist 687, the MCB-Platform may retrieve the data record 690 and its associated confidence level. The MCB-Platform may then update the aggregated confidence score 692 to determine whether it meets the threshold value 695.
For example, if a transaction request requires a threshold of 0.5, a first received transaction request indicates a different terminal address than previously stored in the merchant database, but a singular transaction request is assigned a confidence level of 0.3, and fails to meet the threshold. If a second transaction request indicating the different terminal address, the new confidence score of the different terminal address would be 0.3×2=0.6, which satisfy the threshold requirement.
In one implementation, the MCB-Platform may score the received information progressively. If all information has been exhausted but the accumulated confidence score fails to meet the threshold, the MCB-Platform may decline the merchant update 699.
As shown in
As shown in
As shown in
As shown in
As shown in
As shown in
As shown in
As shown in
As shown in
As shown in
As shown in
As shown in
As shown in
As shown at 800h in
FB.ui({method:“payment, id: A547B243, on Complete: myCallback});
As shown at the offer bridging screen 900a in
As shown at the UI 900b in
As shown at the UI 900c in
In some implementations, a user may desire to aggregate purchasing power from a variety of source, and apply the purchasing power towards executing a single transaction. For example, with reference to
In some implementations, the universal value exchange controller may obtain the restrictions and/or conditions of the sources and destinations of the currencies, and may determine a currency exchange flow path based on the restrictions and/or conditions at the currency sources and/or destinations. Upon determining a currency exchange flow path, the universal value exchange controller 1003 may provide request messages to the components in the currency exchange flow path, e.g., exchanges (e.g., 1002a, 1004a), banks (e.g., 1002b, 1004b), merchants (e.g., 1002, 1004) and/or the like, requesting the components to provide and/or accept currency value, based on the determined currency exchange flow path. Upon completing the currency withdrawal and/or deposits into each of the currency accounts involved in the cross-ecosystem currency exchange, the universal value exchange controller may provide notifications to the users loom, 1001b notifying them of completion of the requested cross-ecosystem currency transaction. Various currency exchange flow paths of the MCB-Platform embodiments are discussed throughout the specification.
With reference to
In some implementations, the program provider may also set an exchange rate with respect to each of the selected program provider partners. The exchange rate, in some implementations, may be established via bilateral agreement between the program provider and each partner. In such a situation, there may be no need for a base or intermediate currency. For example, United Airlines may enter into a bilateral agreement with Hilton and establish an exchange rate where 5 United Airline miles can be exchanged for 1 Hilton Honors point. In some other implementations, the exchange rate may be established using a base/intermediate currency. The intermediary may be, for example, a MCB-Platform currency (e.g., MCB-Platform point) or a non-denominational currency (e.g., a unit). In such a case, the program provider may need to negotiate with the MCB-Platform to set the exchange rate between the provider currency and the MCB-Platform currency. These bilateral agreements may be carried out electronically. As a part of the program provider enrollment, the program provider may need to expose API(s) to their rewards/loyalty program such that the MCB-Platform may obtain currency balance information and may credit/debit currency after an exchange transaction. Referring to
In some implementations, the MCB-Platform may also act as a gateway to point aggregators 1014. For example, MCB-Platform may transact with point aggregators to sell off or buy points when necessary. In some other implementations, various merchants 1020 such as Amazon, may also utilize the facilities of the MCB-Platform gateway to access the points/currencies from various program providers, and allow customers to use the value of their points/currencies towards payment of purchases made via the merchant. In some implementations, at the back end standard settlement processes may be employed. In some implementations, such redemption may be for online purchases or brick and mortar purchases using an electronic or mobile wallet, a physical payment device or other methods. Further, redemption may occur prior to a transaction or dynamically at the time of transaction.
From the point of view of a user 1018, the MCB-Platform provides a single place where points/currencies from various program providers 1010 can be managed, redeemed, exchanged 1012b, or linked to a wallet. Further, via the MCB-Platform, the user may have the flexibility to make a redemption dynamically at the time of purchase or prior to the purchase. The user may also have the option to combine points/currencies during the redemption. In some implementations, the user may also swap and liquidate points/currencies and open and closed loop gift cards.
In one implementation, a partner 1024 may configure an exchange program 1040 with a loyalty broker 1028. At 1050, the partner may provide bank identification number (BIN), logos, accept any terms and conditions of the program, and/or the like to create and/or update the exchange program. If the partner does not have a BIN, one may be created. The BIN creation may be handled by an admin server 1026 or the loyalty broker server. At 1052, the information provided by the provider and/or confirmation of the exchange program creation may be provided to the loyalty broker 1028.
Once the program has been configured, the partner or the partner's rewards program administrator 1030 may set exchange rates and other conditions applicable to the exchange program 1042. In some implementations, the configuration may be performed by the provider accessing a configuration UI in a merchant/provider self-service portal 1032. In some implementations, at 1054a, the provider may set the exchange rate for its points/currencies. The exchange rate may specify point/currency to MCB-Platform point ratio. For example, the program provider may set the exchange rate where the 105,000 miles (the provider's currency) is equivalent to 1 MCB-Platform point. In one implementation, the value of the MCB-Platform point may be with respect to a monetary currency such as US dollar, Canadian dollar, Yen, etc. For example, 1 MCB-Platform point may be equivalent to one US dollar. In one implementation the price for points may be changed as frequently as the partner wishes to change it. For example, it could be changed daily, weekly, monthly, yearly, etc. The exchange rate may be associated with a time period for which it is effective in some implementations.
In some implementations, the partners may set exchange rules/rates for various customer segments or even one customer segment. In some other implementations, partners may set up exchange rules at the product (e.g., Stock-Keeping Unit SKU) level. For example, some partners may wish to run a promotional type of exchange rules that may not apply across the partner's business overall, but may be applicable for a short period of time or a small or select group where it may not be applicable or convenient to set up a separate program. In one implementation, for example, a partner may set an exchange rule where customers who fall into Chase segment 82C would get a different exchange rate from customers who fall into other segments. In yet another implementation, for example, a partner may set an exchange rule where customers who enrolled in the partner program in the last 3o days would receive a special exchange rate on purchases of select items (e.g., SKU level data) at another merchant (e.g., Best Buy).
At 1054b, the partner may specify rules and restrictions for any exchange of the program provider's points/currencies. In some implementations, the rules and restrictions may be negotiated between the provider and the loyalty broker. In other implementations, the rules and restrictions may be specified via the configuration UI. For example, the provider may set a minimum redemption group of 500 (e.g., redeem in groups of 500 miles). In some implementations, the partner may also provide or upload a pre-enrollment file at the self-service portal at 1056. Such a pre-enrollment file may include information relating to customers of the program provider (e.g., customer reward ID or membership ID, name, address, etc.). The pre-enrollment file may be stored in one or more databases of the loyalty broker and may be used to validate users when they enroll in the loyalty broker. In one implementation, at 1058 the partner may also access the self-service portal to fetch reports. Example of reports available to the partner provider may include report of exchange activities by customer and/or time period, report on customer enrollment, and/or the like.
Once the exchange program is configured and the exchange rate and conditions set up, the loyalty broker may accept customer enrollment 1044. The customer may enroll in the exchange program with the loyalty broker by accessing a customer facing portal, a web or mobile application, a wallet having loyalty broker facilities. At 1060, the customer 1034 provide program details such as membership ID, password, and any other information necessary to verify the customer as the owner of the membership account. At 1060, the customer may also provide usage and other preferences (e.g., use my MCB-Platform points for travel, gas, any purchase, when I send a text, exchange my miles as soon as they exceed 25,000, exchange my miles when the exchange rate is better than or equal to 100:1, etc.). At 1062, the loyalty broker may receive the customer provided program details and may verify the details to confirm the customer ownership of the membership account with the reward provider. Alternatively, the loyalty broker may also utilize information in the pre-enrollment file to confirm some or all of the customer/program details. At 1064, the program provider may confirm the membership of the customer to the loyalty broker. At 1064, the program provider may also provide the customer in question's current points/currency balance information to the loyalty provider.
Referring to
When the bill is paid, the customer portion is credited to the MCB-Platform points BIN or a Debit Processing Service (DPS) type BIN for each card. In some implementations, the customer may be issued a prepaid card having the value of the total MCB-Platform points obtained from the exchange. At 1076, the exchange is complete. The customer's MCB-Platform points balance is incremented by the total MCB-Platform points gained (e.g., +225), his/her miles balance is decremented by the number of miles used in the exchange (e.g., 25,000 miles). The examples discussed herein assume that a unit MCB-Platform point is equivalent to $1. Other equivalency between the MCB-Platform point and currency are contemplated in some implementations of the loyalty broker.
Some embodiments of the MCB-Platform facilitate gift card exchanges and conversions. The facilities of the MCB-Platform may support open loop, closed loop and hybrid gift cards. Open loop gift cards can be redeemed in a variety of businesses, while closed loop gift cards can be redeemed at a specific business (e.g., Apple Store card, Best Buy card) or select businesses (e.g., Westfield mall gift card). For example, a user A may have a gift card for the Apple Store, but the user never shops in the Apple Store, and would instead prefer to exchange the Apple gift card for a Best Buy gift card. Similarly, another user B may have a Best Buy gift card, but would like to exchange for an Apple Store gift card. In such a situation, the MCB-Platform may facilitate the exchange of the Apple and Best Buy gift cards such that both users A and B can have their preferred gift cards. As another example, a user may have various gift cards in his or her hands or in the wallet. The user may prefer to combine the value of all the gift cards in one gift card or prepaid card, a bank account or obtain cash. In such as situation, the MCB-Platform may provide facilities to consolidate the gift card values and automatically apply them in a purchase transaction.
In some implementations, using the user's input, the client may generate a transfer request, e.g., 1114 and provide the transfer request to the MCB-Platform server. For example, the client may provide a (Secure) Hypertext Transfer Protocol (“HTTP(S)”) POST message including data formatted according to the eXtensible Markup Language (“XML”). An example transfer request 1114, substantially in the form of a HTTP(S) POST message including XML-formatted data, is provided below:
The MCB-Platform server may receive the transfer request 1114 and may extract the details of the transfer request (e.g., XML data). In one implementation, the MCB-Platform server may identify the issuer of the source gift card nice and may send a balance request 1116 to the issuer of the source gift card lima. In one implementation, the request 1116 may be in the form of a web service/API call. The gift card issuer server may return the balance information message 1120 to the MCB-Platform server. At 1122, the MCB-Platform server may determine equivalent value that the user may obtain after the exchange. Determination of the equivalent value may be based on risk exposure, the details of which are discussed with respect to
In one implementation, the MCB-Platform server may send to the client a request 1124 that the user confirm acceptance of the equivalent value. For example, the MCB-Platform server may provide an HTML page to the client. The client may display, for example, a summary of the transfer request identifying the source and destination gift cards, the equivalent value of the destination gift card, terms and conditions, buttons to accept or cancel the exchange, and/or the like. At 1126 the user may confirm acceptance of the equivalent value, which may then be passed on as the confirmation message 1128 by the client to the MCB-Platform server.
In one implementation, the MCB-Platform may have a number of gift card accounts associated with a number of merchants. For example, the MCB-Platform may have a gift card account for Apple, Best Buy, Macys, Barneys, and/or the like. These gift card accounts may be referred to as pool gift card accounts. In one implementation, the MCB-Platform server may send a balance transfer request 1130 to the source gift card issuer server nice. The balance transfer request 1130 may include information such as source gift card ID, pool source gift card ID, transfer amount, and/or the like. In one implementation, the pool source gift card ID may correspond to a gift card issued by the source gift card issuer and owned and maintained by the MCB-Platform (e.g., MCB-Platform's apple gift card). In one implementation, the source gift card issuer server may transfer the balance from the source gift card (e.g., the user's Apple gift card) to the pool source gift card (e.g., MCB-Platform's Apple gift card) and may send a confirmation message 1132 including the updated pool source gift card balance to the MCB-Platform server. In one implementation, the source gift card issuer server may send the client the updated source gift card balance 1136 confirming the transfer of the source gift card value. In one implementation, the MCB-Platform server may send a target gift card order 1138 to the target gift card issuer. The target gift card order may include a request to transfer the determined equivalent value from the pool target gift card to a target gift card. An example target gift card order 1138, substantially in the form of a HTTP(S) POST message including XML-formatted data, is provided below:
The target gift card issuer server may then issue a target gift card having the equivalent value to the user. The target gift card issuer server may send the client the target gift card issue message 1140. In one implementation, the target gift card issue message 1140 may include the target gift card ID which the user may obtain electronically and utilize for purchase with the merchant associated with the target gift card. An example target gift card issue message 1140 formatted in XML is provided below:
At 1142, the MCB-Platform server may store updated pool source gift card balance (e.g., previous balance incremented by the value of the source gift card) and the updated pool target gift card balance (e.g., previous value decremented by the equivalent amount). In some embodiments of the MCB-Platform, when the balance in any one of the pool gift cards exceeds a threshold, the MCB-Platform may initiate a sell off. In one implementation, the sell off may involve issuing gift cards and selling them at a discount. For example, the MCB-Platform may accumulate over time an excess balance of $10000 in one or more merchant gift card accounts. The MCB-Platform may then issue (e.g., via the gift card issuer) 100 gift cards each worth $100. The MCB-Platform may then sell each gift card at a discount to users to collect some revenue. The MCB-Platform may aggregate such excess balances over time by apportioning value from records in the MCB-Platform database, e.g., value card 11219u. For example, when source and destination field values in the value card table record reach $0 and yet there is residual value left on the card, that residual value may be used to generate such excess balances for the MCB-Platform. In one example, the MCB-Platform may observe consumers making purchases with merchants accepting such value; e.g., the MCB-Platform may be made part of a payment network which may parse PAN/account identifiers and compare such account identifiers embedded in transaction request/authentication with records in the MCB-Platform database, e.g., users 11219a, accounts 11219g, etc., tables. In those instances, the MCB-Platform may take a credit and use its points/value equivalence to pay for the consumer's purchase and take direct charge from the consumer's payment source for that value. In one embodiment the user would not be aware that the purchase was made using the pool points equivalence. In an alternative embodiment, the MCB-Platform would show up on the consumer's bills as the merchant taking the charge for the value of the item. In yet another embodiment, the user may be offered a discount on the item (e.g., the consumer would be charged 10% less from their payment source while the merchant would receive full value in point equivalence supplied by the MCB-Platform), thereby providing a liquidation method for the MCB-Platform to obtain currency exchange for its pool points/currency.
In some implementations, at 1228, the MCB-Platform server may determine liquidity of the source/target gift cards. For example, the MCB-Platform may query one or more databases and/or tables to determine the balance in the pool target gift card, and the approximate number of target gift cards the balance may support. In one implementation, the MCB-Platform may use the source/target transaction rate and the number of target gift cards in the MCB-Platform pool to calculate a liquidity ratio. In a further implementation, a liquidity ratio greater than 1 may be indicative of high liquidity, while a ratio less than 1 may indicate low liquidity. At 1230, based on the risk exposure and/or the liquidity, the MCB-Platform may determine an exchange rate for the source/target gift card exchange. For example, when the liquidity ratio is greater than or equal to 1, the risk exposure weight may be equivalent to the exchange rate. When the liquidity ratio is less than 1, a product of the risk exposure weight and liquidity ratio may determine the exchange rate. In some implementations, the calculation of the liquidity ratio may be optional such that the risk exposure weight alone may determine the exchange rate.
Exchange−Rate=WeighRISK-EXPOSURE when liquidity≧1 (1)
Exchange−Rate=WeightRISK-EXPOSURE×liquidity when liquidity<1 (2)
Upon determining the exchange rate, the MCB-Platform may determine the equivalent value that client would receive in the form of a target gift card at 1232. For example, with a source gift card valued at $100, and an exchange rate at 0.8, the target gift card may have an equivalent value of $80. At 1234, the MCB-Platform server may send a request to the client to confirm the transfer of the source gift card value to the equivalent value of a target gift card. At 1236, the client may receive and display the confirmation request. At 1238, the client may receive an input from the user, and may send the input message to the MCB-Platform server. Referring to
In one implementation, the source gift card issuer server may also send a confirmation once the balance transfer has occurred. At 1256, the MCB-Platform server may receive the confirmation of the balance transfer. At 1258, the MCB-Platform server may request the target gift card issuer to transfer the equivalent value determined from the pool target gift card to a target gift card. The target gift card issuer may receive the transfer request at 1260, and may execute the requested transfer. In one implementation, at 1262, upon executing the transfer, the target gift card issuer server may send the issued target gift card having the equivalent value to the client. The client may receive and display the target gift card at 1254. In one implementation, the target gift card issuer server may send an email or text message to notify and/or provide the user an electronic target gift card. In another implementation, the issued target gift card may be mailed to the user's physical address. In yet another implementation, the target gift card may pop up in the user's electronic wallet. In one implementation, the source gift card issuer server may also send a source gift card balance confirmation (e.g., $o balance) to the client at 1252.
In one implementation, in the instance where funds cannot be reassigned from a source gift card to a pool gift card, a deallocation of the source gift card in the user's wallet may be effected such that the user may no longer see it or use it or exchange it. The source gift card may be reallocated later to another user wanting a similar exchange as further described with respect to
In one implementation, when the user 1102b makes a purchase using the destination gift card, the MCB-Platform server may route the charge request 1176 to the target gift card issuer server 1107b. In addition to other example charge requests and authorizations provided throughout, the following is an example. An example charge request 1176, substantially in the form of a HTTP(S) POST message including XML-formatted data, is provided below:
The target gift card issuer mob may receive the charge request and send a charge authorization message 1178 to the MCB-Platform server. In addition to other example charge requests and authorizations provided throughout, the following is an example. An example authorization message 1178, substantially in the form of a HTTP(S) POST message including XML-formatted data, is provided below:
The MCB-Platform server may then update the destination gift card balance at 1180.
The MCB-Platform server may then send a gift card balance request 1183 to the gift card issuer server 1108c to obtain the current gift card balance. The gift card issuer server may look up the gift card balance information using gift card ID in the request 1183. The gift card issuer server may then provide the gift card balance message 1184 to the MCB-Platform server. At 1185, the MCB-Platform server may determine the equivalent transferable value (e.g., using process outlined in
In one implementation, the liquidated gift card may be allocated to another user. In such a situation, the MCB-Platform server may send a charge request 1190, corresponding to the user 1102C's (liquidated) gift card on behalf of the new user (and not user 1102c) to the gift card issuer 1108c.
The gift card issuer may receive the charge request. In one implementation, the gift card issuer may look up the balance in the gift card to ensure that the balance in the gift card covers the purchase amount. In a further implementation, the issuer may confirm that the user ID associated with the gift card number matches the user ID to whom the gift card was initially authorized. Upon making payment request validation, the gift card issuer may authorize the charge request and send an authorization message 1191 to the MCB-Platform server. An example authorization message 1191, substantially in the form of a HTTP(S) POST message including XML-formatted data, is provided below:
Once the purchase is authorized, the gift card balance may be exhausted or decremented. In one implementation, the MCB-Platform server may update the gift card balance at 1193 (e.g., update value card table record 5119u) to indicate the new balance.
At 1290, the MCB-Platform server may deallocate the value of the target gift card such that the value of the target gift card is not available for the target gift card for anyone else. At 1291, the destination gift card is allocated the equivalent value. In one implementation, the destination gift card is linked to the target gift card. When the user makes a purchase using his or her destination gift card, a charge request is sent to the issuer of the target gift card to charge the value of the purchase (up to the equivalent amount) to the target gift card. As such, the allocation and deallocation are ledger entries made to track the exchange of the gift cards between users without actually moving funds from one account to another. In some implementations, the payment gateway may assist in the routing of the charge requests to the appropriate issuer or issuer bank. At 1292, the MCB-Platform server may update the ledger entry balances for the source, destination and target gift card, concluding the process at 1275.
Referring to
The MCB-Platform server may extract details from the authentication request 1312 (e.g., XML data) to validate the authentication request. If the authentication request cannot be verified, the user may be asked to re-enter login credentials. The MCB-Platform server may identify all the loyalty programs that the user is currently enrolled in at 1314. The MCB-Platform server may also identify the program providers of the enrolled programs. In one implementation, the MCB-Platform may query its user database to obtain a list of the user's enrolled programs. For example, the MCB-Platform server may issue PHP/SQL commands to query a database table for enrolled program data associated with the user. An example query, substantially in the form of PHP/SQL commands, is provided below:
In one implementation, the MCB-Platform server may query an issuer database to obtain issuer balance/exchange rate request template to process the exchange. The issuer template may include instructions, data, login URL, login API call template, rules and restrictions file, exchange rate file and/or the like for facilitating data exchange between the MCB-Platform server and the program issuer server. An example PHP/SQL command listing, illustrating substantive aspects of querying the database, is provided below:
In one implementation, the MCB-Platform may create and send a current oints/currency balance and exchange rate request 1316 to the identified program provider servers 1308. The request 1316 may be in the form of an API/web service call in some implementations. The program provider servers may respond to the MCB-Platform server's request with the requested points/currency balance. For example, the program provider server may provide an HTTP(S) POST message, e.g., 1318, similar to the example below:
The MCB-Platform server may then provide program points/currency balance message 1320 to the user's client 1304. In one implementation, the client may display the contents of the message 1320 to the user. The user may initiate a points/currency exchange transaction at 1322. In one implementation, the user may select a source program to initiate an exchange transaction. The client may generate and send a points/currency exchange request 1324 to the MCB-Platform server. In one implementation, the request 1324 may include user ID, source program ID, and/or the like. An example exchange request 1312, substantially in the form of a HTTP(S) POST request including XML-formatted data, is provided below:
The MCB-Platform server may receive the exchange request and parse the request to obtain details (e.g., XML data). For example, the MCB-Platform server may identify the source program, and using the user ID, identify destination programs to which the source program points/currencies could be transferred. At 1326, the MCB-Platform server may query one or more databases and/or tables to determine rules and restrictions for the source program. Further, in some implementations, the MCB-Platform server may examine the rules and restrictions to determine potential destinations programs that are available for exchange, unavailable for exchange and preferred for exchange.
The potential destination programs and their corresponding indications may be displayed by the client. The client may specifically grey out unavailable destination programs to indicate that the unavailable program cannot be selected by the user for the exchange transaction. Further the client may highlight the preferred options to draw the user's attention to the most optimal option for the exchange transaction. In one implementations, potential destination programs that are neither unavailable nor preferred may be displayed normally and may be available to the user for selection even though the option may not be the most optimal.
At 1330 the user may select an available or preferred destination program. Upon selection of the source program, the client may display an option for the user to select or input an amount of the source program points/currency to exchange. In some implementations, a default amount (e.g., available balance) may be pre-populated. The client may package the user's input of the selected destination program and the amount of the source program points/currency into an equivalent value request 1332 and send the request to the MCB-Platform server. In one implementation, the equivalent value request 1332 may include user ID, destination program ID, source program ID, source program amount, and/or the like. The MCB-Platform server may receive the request 1332 and parse the request to identify the source program, destination program as well as the amount to be exchanged. The MCB-Platform server may query one or more databases and/or tables to determine the exchange rate between source program and the destination program. The MCB-Platform server may then utilize the exchange rate to calculate the equivalent value in destination points/currency at 1334. The MCB-Platform server may send a request 1336 to the client to confirm exchange for the equivalent destination points/currency. In one implementation, the request 1336 may include user ID, source program ID, destination program ID, equivalent value, exchange rate, validity time period, and/or the like. The user may view the equivalent value and exchange rate and may agree to proceed with the exchange transaction at 1338. The confirmation message 1340 may then be generated by the client and sent to the MCB-Platform server. Upon receiving confirmation from the user, the MCB-Platform server may send a payment request 1342 to the program provider to request payment for the exchange transaction. In one implementation, the payment request 1342 may include provider ID, source program ID, destination program ID, user ID, exchange rate, equivalent value, points/currency amount for exchange, bill amount and/or the like. An example payment request 1342, substantially in the form of a HTTP(S) POST request including XML-formatted data, is provided below:
The program provider may authorize payment and may send a payment confirmation message 1344 to the MCB-Platform server. The payment confirmation message may include provider ID, source program ID, destination program ID, user ID, exchange rate, equivalent value, points/currency amount for exchange, payment ID, bill amount and/or the like. In one implementation, both the source and destination program providers may be billed for the services provided. Upon receiving the payment confirmation message 1344, the MCB-Platform server may execute the exchange transaction at 1346. In one implementation, executing the exchange transaction may include decrementing the user's source program points/currency and incrementing the destination program points/currency. Upon execution of the exchange transaction, the source/destination gift card balances may be updated and the updated balance information may be provided to the program providers via a balance message 1348.
At 1424, the user may select a source currency/point program to initiate an exchange transaction. The client may communicate the selected source program to the MCB-Platform server which may receive the selection at 1426. At 1428, the MCB-Platform server may parse the message received and may query the rules and restrictions database to determine any rules and restrictions associated with the source program.
In some implementations, each program may have rules and restrictions associated therewith that allow certain exchanges to proceed while forbidding others. Example rules and restrictions include: a minimum redemption group (e.g., redeem in groups of 1400 miles), minimum redemption amount (e.g., users with 10,000 miles or more can redeem), non-refundable exchange, exchange amount limit, number of transactions per period limit, and/or the like.
At 1430, the MCB-Platform server may obtain the associated rules and restrictions file and may evaluate each of the other enrolled programs against the source program rules and restrictions. Referring to
In other implementations, the preferred program may have additional rewards/points that may be obtained after the completion of the exchange. In yet other implementations, preferred programs may be selected based upon other factors such as acceptance, transaction history, and/or the like. Exchange rate evaluation and preferred program determination are discussed in detail with respect to
At 1440, the MCB-Platform server may provide to the client the identified programs and indications whether each program is unavailable, available or preferred for exchange with the source program. The client may receive the identified program information and may display the unavailable program as an unselectable option at 1442. In one implementation, the unavailable program may be grayed out to clearly identify that the source program rules and restrictions forbid conversion of the source program to the unavailable program. At 1444, the client may display the available programs as options that can be selected. In a further implementation, the client may highlight the preferred program so as to clearly identify that the highlighted program is the preferred program to which the source program points/currency should be converted to.
The user may select a destination program from the available list of programs and may input an amount of the source/currency points at 1446. The client receives the input and sends the information to the MCB-Platform server which receives the selected destination program and the amount of the source program points/currency for exchange at 1448. At 1450, the MCB-Platform may determine equivalent amount of destination currency/points for the selected amount of source program currency points. In one implementation, the equivalent amount may be calculated based on the exchange rate between the source and destination program points/currency. In some implementations, the exchange rate of each program may be with respect to a base currency/unit such as the MCB-Platform point, from which the exchange rate between the two program points/currency may be determined. At 1452, the MCB-Platform may provide the equivalent destination currency/points to the client which may display the information at 1454. The client may also display controls for the user to adjust or change the transaction. For example, the user may go back and change the destination program or may adjust the source program points/currency amount. At 1456, the user may confirm the exchange, adjust or cancel the exchange transaction. At 1458, if the user does not confirm the transaction, the client may inquire if the user may want to adjust the transaction. At 1472, if the user wants to adjust the transaction, the process may move to 1446, where the user is provided an option to select another destination program or adjust the amount for conversion. If at 1472, the user does not wish to adjust the transaction, the client may notify the MCB-Platform server to cancel the exchange transaction at 1474. The exchange transaction may then come to its conclusion at 1468. On the other hand, if the user confirms the exchange at 1458, the client sends a confirmation message 1459 to the MCB-Platform server. At 146o, the MCB-Platform server may request payment from the program provider for exchange of the amount of source points/currency. Referring to
The user selection of a destination program and an amount of the points/currency may be obtained at 1522. In one implementation, a determination may be made whether the user selected amount meets the source program rules/restrictions at 1524. For example, the source program rules and restrictions may require the source amount to be selected in groups of 500. As another example, a user may have to have select a minimum amount of points/currency or may not select more than a maximum amount of points/currency. If the user selected amount does not meet the rules and restrictions, the amount may be automatically adjusted at 530 by rounding up or down. If the user selected amount meets the rules and restrictions, or once the user selected amount has been adjusted to meet the rules and restrictions, transaction fees and/or payment for the points/currency may be billed to (or deducted from) the source/destination program providers at 1526. At 1528, the user may be provided the equivalent destination points/currency, completing the transaction at 1550.
In one implementation, when the source program provider is not a MCB-Platform partner (as determined at 1504) or when there are no unrestricted programs (as determined at 1512), referring to
In some implementations, the universal value exchange controller may also determine whether there are any restrictions and/or conditions at each of the sources of the currencies, as well as the destinations of the currencies. For example, the universal value exchange controller may query a database to obtain the restrictions and/or conditions for the sources and/or destinations. In some implementations, the universal value exchange controller may generate, e.g., 1620, a currency exchange flow path based on the restrictions and/or conditions at the currency sources and/or destinations. Upon generating the currency exchange flow path, the universal value exchange controller may, n some implementations, if an API is available, e.g., 1624, initiate currency exchange along the generated currency exchange flow path, for example, by providing request messages to the components in the currency exchange flow path to provide and/or accept currency value, based on the generated currency exchange flow path. The universal value exchange controller may monitor the currency exchange flow among the components in the currency exchange flow path until the currency exchange is complete, e.g., 1628-1630. Alternatively if an API is not available, e.g., 1624, the MCB-Platform controller may deallocate a specified value from the source account e.g., 1638 and allocate an equivalent value calculated using the valuation rate to the destination account, e.g., 1640. Upon completing the currency withdrawal and/or deposits into each of the currency accounts involved in the cross-ecosystem currency exchange, the universal value exchange controller may provide notifications, e.g., 1632, for the users of the universal value exchange controller notifying them of completion of the requested cross-ecosystem currency transaction. In some implementations, the universal value exchange controller may determine whether there are more cross-ecosystem currency exchange instructions remaining to be processed (e.g., 1634, option “Y”), and perform the cross-ecosystem currency exchanges until all the cross-ecosystem currency exchange instructions have been processed (e.g., 1634, option “N”).
When the exchange option 1701 is selected from the left UI, the exchange UI (right) may be displayed. The exchange UI may display various options for selecting a source currency. For example, a user may select the loyalty tab 1706a as a source currency. When the loyalty tab is selected a loyalty panel 1706b may be displayed. As shown, the loyalty panel may include a listing of loyalty cards or accounts. The user may select one or more of these loyalty accounts as a source currency. Further for each selected account, the user may view the total available points/currency as well as select the amount of currency the user would like to exchange. Also shown in the right UI is a value equivalent selection panel 1706c. The user may select any of the options as the destination into which the loyalty currencies may be converted to. The back button 1706d allows the user to go back to the left UI, while the exchange button 1706e allows the user to initiate the exchange.
Referring to
Referring to
Referring to
A non-limiting, example listing of data that the MCB-Platform may return based on a query is provided below. In this example, a user may log into a website via a computing device. The computing device may provide a IP address, and a timestamp to the MCB-Platform. In response, the MCB-Platform may identify a profile of the user from its database, and based on the profile, return potential merchants for offers or coupons:
LIVRARIASICILIAN
GDPCOLTD
GOODWILLINDUSTRIES
DISCOUNTDE
BARELANCHOE
BLOOMINGDALES
PARCWORLDTENNIS
STRIDERITEOUTLET
PARCCEANOR
PONTOFRIO
FNACPAULISTA
FINISHLINE
WALMARTCENTRAL
BESNIINTERLARGOS
PARCLOJASCOLOMBO
SHOPTIMEINTER
BEDBATHBEYOND
MACYSWEST
PARCRIACHUELOFILIAL
JCPENNEYCORPINC
PARCLOJASRENNERFL
PARCPAQUETAESPORTES
MARISALJ
PARCLEADERMAGAZINE
INTERFLORA
DECATHLON
PERNAMBUCANASFL
KARSTADTDE
PARCCEAMCO
CHAMPS
ACCESSORIZE
BLOOMINGDALESDVRS
PARCLIVRARIACULTURA
PARCCEALOJA
ARQUIBANCADA
KITBAG
FREDERICKSOFHLWD
WALMART
PARCLOJASINSINUANTE
WALMARTCONTAGEM
FOOTLOCKER
PARCSANTALOLLA
RICARDOELETRO
PARCPONTOFRIO
DOTPAYPLPOLSKA
CAMICADO
KARSTADT
PARCRAMSONS
PARCGREGORY
GREMIOFBPA
WALMARTSJC
PRODIRECTSOCCERLTD
LAVIEENROSE
PARCMARISALJ
ORDERS
PARCNSNNATALNORTE
LOJASINSINUANTE
B
CITYCOUNTY
WALMARTPACAEMBU
SOHO
WALMARTOSASCO
FOSSILSTORESIINC
MENARDSCLIO
PARCPEQUENTE
BEALLS
THEHOMEDEPOT
VIAMIA
PARCLOJASRIACHUELO
PARCLOJASMILANO
NORDSTROM
WAILANACOFFEEHOUSE
LANCHOEBELLA
PUKET
WALMARTSTORESINC
PARCPERNAMBUCANASFL
SMARTSHOPPER
PARCMAGAZINELUIZASP
COLUMBIASPORTSWEARCO
BARELANCESTADA
DONATEEBAY
PARCRICARDOELETRO
PARCDISANTINNI
SCHUHCOUK
CEANOR
PARCCAMICADO
PARCCENTAUROCE
PARCMARLUIJOIAS
ALBADAH
MARTINEZ
MONEYBOOKERSLTD
MACYS
PARCRIOCENTER
PARCCASASBAHIA
PARCSUBMARINOLOJA
INC
SUBMARINOLOJA
LOJASRENNERFL
RIACHUELOFILIAL
PARCSONHODOSPES
PINKBIJU
PARCCEAMRB
KITBAG
COLUMBIASPORTSWEARCO
GREMIOFBPA
In some embodiments, the MCB-Platform may provide access to information on a need-to-know basis to ensure the security of data of entities on which the MCB-Platform stores information. Thus, in some embodiments, access to information from the centralized platform may be restricted based on the originator as well as application services for which the data is requested. In some embodiments, the MCB-Platform may thus allow a variety of flexible application services to be built on a common database infrastructure, while preserving the integrity, security, and accuracy of entity data. In some implementations, the MCB-Platform may generate, update, maintain, store and/or provide profile information on entities, as well as a social graph that maintains and updates interrelationships between each of the entities stored within the MCB-Platform. For example, the MCB-Platform may store profile information on an issuer bank 1802a (see profile 1803a), a acquirer bank 1802b (see profile 1803b), a consumer 1802c (see profile 1803c), a user 1802d (see profile 1803d), a merchant 1802e (see profile 1803e), a second merchant 1802f (see profile 18030. The MCB-Platform may also store relationships between such entities. For example, the MCB-Platform may store information on a relationship of the issuer bank 1802a to the consumer 1802c shopping at merchant 1802e, who in turn may be related to user 1802d, who might bank at the back 1802b that serves as acquirer for merchant 1802f.
MERCHANT_ABC
MERCHANT_XYZ
MERCHANT_123
MERCHANT_FGH
MERCHANT_789
MERCHANT_456
MERCHANT_WER
MERCHANT_496
MERCHANT_SDF
In alternate examples, the MCB-Platform may store data in a JavaScript Object Notation (“JSON”) format. The stored information may include data regarding the object, such as, but not limited to: commands, attributes, group information, payment information, account information, etc., such as in the example below:
In some embodiments, the MCB-Platform may acquire the aggregated data, and normalize the data into formats that are suitable for uniform storage, indexing, maintenance, and/or further processing via data record normalization component(s) 2006 (e.g., such as described in
In some embodiments, the search engine servers may query, e.g., 2117a-c, their search databases, e.g., 2102a-c, for search results falling within the scope of the search keywords. In response to the search queries, the search databases may provide search results, e.g., 2118a-c, to the search engine servers. The search engine servers may return the search results obtained from the search databases, e.g., 2119a-c, to the pay network server making the search requests. An example listing of search results 2119a-c, substantially in the form of JavaScript Object Notation (JSON)-formatted data, is provided below:
In some embodiments, the pay network server may store the aggregated 34 search results, e.g., 2120, in an aggregated search database, e.g., 2110.
In some implementations, the client may generate a purchase order message, e.g., 2312, and provide, e.g., 2313, the generated purchase order message to the merchant server. For example, a browser application executing on the client may provide, on behalf of the user, a (Secure) Hypertext Transfer Protocol (“HTTP(S)”) GET message including the product order details for the merchant server in the form of data formatted according to the eXtensible Markup Language (“XML”). Below is an example HTTP(S) GET message including an XML-formatted purchase order message for the merchant server:
In some implementations, the merchant server may obtain the purchase order message from the client, and may parse the purchase order message to extract details of the purchase order from the user. The merchant server may generate a card query request, e.g., 2314 to determine whether the transaction can be processed. For example, the merchant server may attempt to determine whether the user has sufficient funds to pay for the purchase in a card account provided with the purchase order. The merchant server may provide the generated card query request, e.g., 2315, to an acquirer server, e.g., 2304. For example, the acquirer server may be a server of an acquirer financial institution (“acquirer”) maintaining an account of the merchant. For example, the proceeds of transactions processed by the merchant may be deposited into an account maintained by the acquirer. In some implementations, the card query request may include details such as, but not limited to: the costs to the user involved in the transaction, card account details of the user, user billing and/or shipping information, and/or the like. For example, the merchant server may provide a HTTP(S) POST message including an XML-formatted card query request similar to the example listing provided below:
In some implementations, the acquirer server may generate a card authorization request, e.g., 2316, using the obtained card query request, and provide the card authorization request, e.g., 2317, to a pay network server, e.g., 2305. For example, the acquirer server may redirect the HTTP(S) POST message in the example above from the merchant server to the pay network server.
In some implementations, the pay network server may determine whether the user has enrolled in value-added user services. For example, the pay network server may query 2318 a database, e.g., pay network database 2307, for user service enrollment data. For example, the server may utilize PHP/SQL commands similar to the example provided above to query the pay network database. In some implementations, the database may provide the user service enrollment data, e.g., 2319. The user enrollment data may include a flag indicating whether the user is enrolled or not, as well as instructions, data, login URL, login API call template and/or the like for facilitating access of the user-enrolled services. For example, in some implementations, the pay network server may redirect the client to a value-add server (e.g., such as a social network server where the value-add service is related to social networking) by providing a HTTP(S) REDIRECT 300 message, similar to the example below:
In some implementations, the pay network server may provide payment information extracted from the card authorization request to the value-add server as part of a value add service request, e.g., 2320. For example, the pay network server may provide a HTTP(S) POST message to the value-add server, similar to the example below:
In some implementations, the value-add server may provide a service input request, e.g., 2321, to the client. For example, the value-add server may provide a HTML input/login form to the client. The client may display, e.g., 2322, the login form for the user. In some implementations, the user may provide login input into the client, e.g., 2323, and the client may generate a service input response, e.g., 2324, for the value-add server. In some implementations, the value-add server may provide value-add services according to user value-add service enrollment data, user profile, etc., stored on the value-add server, and based on the user service input. Based on the provision of value-add services, the value-add server may generate a value-add service response, e.g., 2326, and provide the response to the pay network server. For example, the value-add server may provide a HTTP(S) POST message similar to the example below:
In some implementations, upon receiving the value-add service response from the value-add server, the pay network server may extract the enrollment service data from the response for addition to a transaction data record. In some implementations, the pay network server may forward the card authorization request to an appropriate pay network server, e.g., 2328, which may parse the card authorization request to extract details of the request. Using the extracted fields and field values, the pay network server may generate a query, e.g., 2329, for an issuer server corresponding to the user's card account. For example, the user's card account, the details of which the user may have provided via the client-generated purchase order message, may be linked to an issuer financial institution (“issuer”), such as a banking institution, which issued 29 the card account for the user. An issuer server, e.g., 2308a-n, of the issuer may maintain details of the user's card account. In some implementations, a database, e.g., pay network database 2307, may store details of the issuer servers and card account numbers associated with the issuer servers. For example, the database may be a relational database responsive to Structured Query Language (“SQL”) commands. The pay network server may execute a hypertext preprocessor (“PHP”) script including SQL commands to query the database for details of the issuer server. An example PHP/SQL command listing, illustrating substantive aspects of querying the database, is provided below:
In response to obtaining the issuer server query, e.g., 2329, the pay network database may provide, e.g., 2330, the requested issuer server data to the pay network server. In some implementations, the pay network server may utilize the issuer server data to generate a forwarding card authorization request, e.g., 2331, to redirect the card authorization request from the acquirer server to the issuer server. The pay network server may provide the card authorization request, e.g., 2332a-n, to the issuer server. In some implementations, the issuer server, e.g., 2308a-n, may parse the card authorization request, and based on the request details may query 2333a-n database, e.g., user profile database 2309a-n, for data of the user's card account. For example, the issuer server may issue PHP/SQL commands similar to the example provided below:
In some implementations, on obtaining the user data, e.g., 2334a-n, the issuer server may determine whether the user can pay for the transaction using funds available in the account, e.g., 2335a-n. For example, the issuer server may determine whether the user has a sufficient balance remaining in the account, sufficient credit associated with the account, and/or the like. If the issuer server determines that the user can pay for the transaction using the funds available in the account, the server may provide an authorization message, e.g., 2336a-n, to the pay network server. For example, the server may provide a HTTP(S) POST message similar to the examples above.
In some implementations, the pay network server may obtain the authorization message, and parse the message to extract authorization details. Upon determining that the user possesses sufficient funds for the transaction, the pay network server may generate a transaction data record from the card authorization request it received, and store, e.g., 2339, the details of the transaction and authorization relating to the transaction in a database, e.g., pay network database 2307. For example, the pay network server may issue PHP/SQL commands similar to the example listing below to store the transaction data in a database:
In some implementations, the pay network server may forward the authorization message, e.g., 2340, to the acquirer server, which may in turn forward the authorization message, e.g., 2340, to the merchant server. The merchant may obtain the authorization message, and determine from it that the user possesses sufficient funds in the card account to conduct the transaction. The merchant server may add a record of the transaction for the user to a batch of transaction data relating to authorized transactions. For example, the merchant may append the XML data pertaining to the user transaction to an XML data file comprising XML data for transactions that have been authorized for various users, e.g., 2341, and store the XML data file, e.g., 2342, in a database, e.g., merchant database 2304. For example, a batch XML data file may be structured similar to the example XML data structure template provided below:
In some implementations, the server may also generate a purchase receipt, e.g., 2343, and provide the purchase receipt to the client. The client may render and display, e.g., 2344, the purchase receipt for the user. For example, the client may render a webpage, electronic message, text/SMS message, buffer a voicemail, emit a ring tone, and/or play an audio message, etc., and provide output including, but not limited to: sounds, music, audio, video, images, tactile feedback, vibration alerts (e.g., on vibration-capable client devices such as a smartphone etc.), and/or the like.
With reference to
In some implementations, the issuer server may generate a payment command, e.g., 2358. For example, the issuer server may issue a command to deduct funds from the user's account (or add a charge to the user's credit card account). The issuer server may issue a payment command, e.g., 2359, to a database storing the user's account information, e.g., user profile database 2308. The issuer server may provide a funds transfer message, e.g., 2360, to the pay network server, which may forward, e.g., 2361, the funds transfer message to the acquirer server. An example HTTP(S) POST funds transfer message is provided below:
In some implementations, the acquirer server may parse the funds transfer message, and correlate the transaction (e.g., using the request_ID field in the example above) to the merchant. The acquirer server may then transfer the funds specified in the funds transfer message to an account of the merchant, e.g., 2362.
In some implementations, the pay network server may determine whether the user has enrolled in value-added user services. For example, the pay network server may query a database, e.g., 2407, for user service enrollment data. For example, the server may utilize PHP/SQL commands similar to the example provided above to query the pay network database. In some implementations, the database may provide the user service enrollment data, e.g., 2408. The user enrollment data may include a flag indicating whether the user is enrolled or not, as well as instructions, data, login URL, login API call template and/or the like for facilitating access of the user-enrolled services. For example, in some implementations, the pay network server may redirect the client to a value-add server (e.g., such as a social network server where the value-add service is related to social networking) by providing a HTTP(S) REDIRECT 300 message. In some implementations, the pay network server may provide payment information extracted from the card authorization request to the value-add server as part of a value add service request, e.g., 2410.
In some implementations, the value-add server may provide a service input request, e.g., 2411, to the client. The client may display, e.g., 2412, the input request for the user. In some implementations, the user may provide input into the client, e.g., 2413, and the client may generate a service input response for the value-add server. In some implementations, the value-add server may provide value-add services according to user value-add service enrollment data, user profile, etc., stored on the value-add server, and based on the user service input. Based on the provision of value-add services, the value-add server may generate a value-add service response, e.g., 2417, and provide the response to the pay network server. In some implementations, upon receiving the value-add service response from the value-add server, the pay network server may extract the enrollment service data from the response for addition to a transaction data record, e.g., 2419-2420.
With reference to
In some implementations, the pay network server may obtain the authorization message, and parse the message to extract authorization details. Upon determining that the user possesses sufficient funds for the transaction (e.g., 2430, option “Yes”), the pay network server may extract the transaction card from the authorization message and/or card authorization request, e.g., 2433, and generate a transaction data record using the card transaction details. The pay network server may provide the transaction data record for storage, e.g., 2434, to a database. In some implementations, the pay network server may forward the authorization message, e.g., 2435, to the acquirer server, which may in turn forward the authorization message, e.g., 2436, to the merchant server. The merchant may obtain the authorization message, and parse the authorization message o extract its contents, e.g., 2437. The merchant server may determine whether the user possesses sufficient funds in the card account to conduct the transaction. If the merchant server determines that the user possess sufficient funds, e.g., 2438, option “Yes,” the merchant server may add the record of the transaction for the user to a batch of transaction data relating to authorized transactions, e.g., 2439-2440. The merchant server may also generate a purchase receipt, e.g., 2441, for the user. If the merchant server determines that the user does not possess sufficient funds, e.g., 2438, option “No,” the merchant server may generate an “authorization fail” message, e.g., 2442. The merchant server may provide the purchase receipt or the “authorization fail” message to the client. The client may render and display, e.g., 2443, the purchase receipt for the user.
In some implementations, the merchant server may initiate clearance of a batch of authorized transactions by generating a batch data request, e.g., 2444, and providing the request to a database. In response to the batch data request, the database may provide the requested batch data, e.g., 2445, to the merchant server. The server may generate a batch clearance request, e.g., 2446, using the batch data obtained from the database, and provide the batch clearance request to an acquirer server. The acquirer server may generate, e.g., 2448, a batch payment request using the obtained batch clearance request, and provide the batch payment request to a pay network server. The pay network server may parse, e.g., 2449, the batch payment request, select a transaction stored within the batch data, e.g., 245o, and extract the transaction data for the transaction stored in the batch payment request, e.g., 2451. The pay network server may generate a transaction data record, e.g., 2452, and store the transaction data, e.g., 2453, the transaction in a database. For the extracted transaction, the pay network server may generate an issuer server query, e.g., 2454, for an address of an issuer server maintaining the account of the user requesting the transaction. The pay network server may provide the query to a database. In response, the database may provide the issuer server data requested by the pay network server, e.g., 2455. The pay network server may generate an individual payment request, e.g., 2456, for the transaction for which it has extracted transaction data, and provide the individual payment request to the issuer server using the issuer server data from the database.
In some implementations, the issuer server may obtain the individual payment request, and parse, e.g., 2457, the individual payment request to extract details of the request. Based on the extracted data, the issuer server may generate a payment command, e.g., 2458. For example, the issuer server may issue a command to deduct funds from the user's account (or add a charge to the user's credit card account). The issuer server may issue a payment command, e.g., 2459, to a database storing the user's account information. In response, the database may update a data record corresponding to the user's account to reflect the debit/charge made to the user's account. The issuer server may provide a funds transfer message, e.g., 246o, to the pay network server after the payment command has been executed by the database.
In some implementations, the pay network server may check whether there are additional transactions in the batch that need to be cleared and funded. If there are additional transactions, e.g., 2461, option “Yes,” the pay network server may process each transaction according to the procedure described above. The pay network server may generate, e.g., 2462, an aggregated funds transfer message reflecting transfer of all transactions in the batch, and provide, e.g., 2463, the funds transfer message to the acquirer server. The acquirer server may, in response, transfer the funds specified in the funds transfer message to an account of the merchant, e.g., 2464.
In some embodiments, the social network servers may query, e.g., 2717a-c, their databases, e.g., 2702a-c, for social data results falling within the scope of the social keywords. In response to the queries, the databases may provide social data, e.g., 2718a-c, to the search engine servers. The social network servers may return the social data obtained from the databases, e.g., 2719a-c, to the pay network server making the social data requests. An example listing of social data 2719a-c, substantially in the form of JavaScript Object Notation (JSON)-formatted data, is provided below:
In some embodiments, the pay network server may store the aggregated search results, e.g., 2720, in an aggregated search database, e.g., 2710.
In some implementations, using the user's input, the client may generate an enrollment request, e.g., 2912, and provide the enrollment request, e.g., 2913, to the pay network server. For example, the client may provide a (Secure) Hypertext Transfer Protocol (“HTTP(S)”) POST message including data formatted according to the eXtensible Markup Language (“XML”). Below is an example HTTP(S) POST message including an XML-formatted enrollment request for the pay network server:
In some implementations, the pay network server may obtain the enrollment request from the client, and extract the user's payment detail (e.g., XML data) from the enrollment request. For example, the pay network server may utilize a parser such as the example parsers described below in the discussion with reference to
In some implementations, the pay network server may redirect the client to a social network server by providing a HTTP(S) REDIRECT 300 message, similar to the example below:
In some implementations, the pay network server may provide payment information extracted from the card authorization request to the social network server as part of a social network authentication enrollment request, e.g., 2917. For example, the pay network server may provide a HTTP(S) POST message to the social network server, similar to the example below:
In some implementations, the social network server may provide a social network login request, e.g., 2918, to the client. For example, the social network server may provide a HTML input form to the client. The client may display, e.g., 2919, the login form for the user. In some implementations, the user may provide login input into the client, e.g., 2920, and the client may generate a social network login response, e.g., 2921, for the social network server. In some implementations, the social network server may authenticate the login credentials of the user, and access payment account information of the user stored within the social network, e.g., in a social network database. Upon authentication, the social network server may generate an authentication data record for the user, e.g., 2922, and provide an enrollment notification, e.g., 2924, to the pay network server. For example, the social network server may provide a HTTP(S) POST message similar to the example below:
Upon receiving notification of enrollment from the social network server, the pay network server may generate, e.g., 2925, a user enrollment data record, and store the enrollment data record in a pay network database, e.g., 2926, to complete enrollment. In some implementations, the enrollment data record may include the information from the enrollment notification 2924.
In some implementations, the server may query a database for a normalized data record template, e.g., 3101. The server may parse the normalized data record template, e.g., 3102. Based on parsing the normalized data record template, the server may determine the data fields included in the normalized data record template, and the format of the data stored in the fields of the data record template, e.g., 3103. The server may obtain transaction data records for normalization. The server may query a database, e.g., 3104, for non-normalized records. For example, the server may issue PHP/SQL commands to retrieve records that do not have the ‘norm_flag’ field from the example template above, or those where the value of the ‘norm_flag’ field is ‘false’. Upon obtaining the non-normalized transaction data records, the server may select one of the non-normalized transaction data records, e.g., 3105. The server may parse the non-normalized transaction data record, e.g., 3106, and determine the fields present in the non-normalized transaction data record, e.g., 3107. For example, the server may utilize a procedure similar to one described below with reference to
With reference to
In some embodiments, the server may obtain the structured data, and perform a standardization routine using the structured data as input (e.g., including script commands, for illustration). For example, the server may remove extra line breaks, spaces, tab spaces, etc. from the structured data, e.g. 3131. The server may determine and load a metadata library, e.g., 3132, using which the server may parse subroutines or functions within the script, based on the metadata, e.g., 3133-3134. In some embodiments, the server may pre-parse conditional statements based on the metadata, e.g., 3135-3136. The server may also parse data 3137 to populate a data/command object based on the metadata and prior parsing, e.g., 3138. Upon finalizing the data/command object, the server may export 3139 the data/command object as XML in standardized encryptmatics format.
The server may select an unclassified data record for processing, e.g., 3303. The server may also select a classification rule for processing the unclassified data record, e.g., 3304. The server may parse the classification rule, and determine the inputs required for the rule, e.g., 3305. Based on parsing the classification rule, the server may parse the normalized data record template, e.g., 3306, and extract the values for the fields required to be provided as inputs to the classification rule. The server may parse the classification rule, and extract the operations to be performed on the inputs provided for the rule processing, e.g., 3307. Upon determining the operations to be performed, the server may perform the rule-specified operations on the inputs provided for the classification rule, e.g., 3308. In some implementations, the rule may provide threshold values. For example, the rule may specify that if the number of products in the transaction, total value of the transaction, average luxury rating of the products sold in the transaction, etc. may need to cross a threshold in order for the label(s) associated with the rule to be applied to the transaction data record. The server may parse the classification rule to extract any threshold values required for the rule to apply, e.g., 3309. The server may compare the computed values with the rule thresholds, e.g., 3310. If the rule threshold(s) is crossed, e.g., 3311, option “Yes,” the server may apply one or more labels to the transaction data record as specified by the classification rule, e.g., 3312. For example, the server may apply a classification rule to an individual product within the transaction, and/or to the transaction as a whole. In some implementations, the server may process the transaction data record using each rule (see, e.g., 3313). Once all classification rules have been processed for the transaction record, e.g., 3313, option “No,” the server may store the transaction data record in a database, e.g., 3314. The server may perform such processing for each transaction data record until all transaction data records have been classified (see, e.g., 3315).
In one embodiment, for example, a user may select the option current items 3915, as shown in the left most user interface of
With reference to
With reference to
In one implementation, a user may select Joe P. for payment. Joe P., as shown in the user interface, has an email icon 3917g next to his name indicating that Joe P. accepts payment via email. When his name is selected, the user interface may display his contact information such as email, phone, etc. If a user wishes to make a payment to Joe P. by a method other than email, the user may add another transfer mode 3917J to his contact information and make a payment transfer. With reference to
With reference to
For example, the list may be one that is curated by the user, merchants where the user most frequently shops or spends more than an x amount of sum or shopped for three consecutive months, and/or the like. In one implementation, the user may further select one of the merchants, Amazon 3918a for example. The user may then navigate through the merchant's listings to find items of interest such as 3918f-j. Directly through the wallet and without visiting the merchant site from a separate page, the user may make a selection of an item 3918j from the catalog of Amazon 3918a. As shown in the right most user interface of
With reference to
With reference to
In one implementation, the user may combine funds from multiple sources to pay for the transaction. The amount 4015 displayed on the user interface may provide an indication of the amount of total funds covered so far by the selected forms of payment (e.g., Discover card and rewards points). The user may choose another form of payment or adjust the amount to be debited from one or more forms of payment until the amount 4015 matches the amount payable 4014. Once the amounts to be debited from one or more forms of payment are finalized by the user, payment authorization may begin.
In one implementation, the user may select a secure authorization of the transaction by selecting the cloak button 4022 to effectively cloak or anonymize some (e.g., pre-configured) or all identifying information such that when the user selects pay button 4021, the transaction authorization is conducted in a secure and anonymous manner. In another implementation, the user may select the pay button 4021 which may use standard authorization techniques for transaction processing. In yet another implementation, when the user selects the social button 4023, a message regarding the transaction may be communicated to one of more social networks (set up by the user) which may post or announce the purchase transaction in a social forum such as a wall post or a tweet. In one implementation, the user may select a social payment processing option 4023. The indicator 4024 may show the authorizing and sending social share data in progress.
In another implementation, a restricted payment mode 4025 may be activated for certain purchase activities such as prescription purchases. The mode may be activated in accordance with rules defined by issuers, insurers, merchants, payment processor and/or other entities to facilitate processing of specialized goods and services. In this mode, the user may scroll down the list of forms of payments 4026 under the funds tab to select specialized accounts such as a flexible spending account (FSA) 4027, health savings account (HAS), and/or the like and amounts to be debited to the selected accounts. In one implementation, such restricted payment mode 1925 processing may disable social sharing of purchase information.
In one embodiment, the wallet mobile application may facilitate importing of funds via the import funds user interface 4028. For example, a user who is unemployed may obtain unemployment benefit fund 4029 via the wallet mobile application. In one implementation, the entity providing the funds may also configure rules for using the fund as shown by the processing indicator message 4030. The wallet may read and apply the rules prior, and may reject any purchases with the unemployment funds that fail to meet the criteria set by the rules. Example criteria may include, for example, merchant category code (MCC), time of transaction, location of transaction, and/or the like. As an example, a transaction with a grocery merchant having MCC 5411 may be approved, while a transaction with a bar merchant having an MCC 5813 may be refused.
With reference to
Similarly, when a German user operates a wallet in Germany, the mobile wallet application user interface may be dynamically updated to reflect the country of operation 4032 and the currency 4034. In a further implementation, the wallet application may rearrange the order in which different forms of payment 4036 are listed based on their acceptance level in that country. Of course, the order of these forms of payments may be modified by the user to suit his or her own preferences.
With reference to
With reference to
With reference to
With reference to
In one implementation, the user may select a transaction, for example transaction 4115, to view the details of the transaction. For example, the user may view the details of the items associated with the transaction and the amounts 4116 of each item. In a further implementation, the user may select the show option 4117 to view actions 4118 that the user may take in regards to the transaction or the items in the transaction. For example, the user may add a photo to the transaction (e.g., a picture of the user and the iPad the user bought). In a further implementation, if the user previously shared the purchase via social channels, a post including the photo may be generated and sent to the social channels for publishing. In one implementation, any sharing may be optional, and the user, who did not share the purchase via social channels, may still share the photo through one or more social channels of his or her choice directly from the history mode of the wallet application. In another implementation, the user may add the transaction to a group such as company expense, home expense, travel expense or other categories set up by the user. Such grouping may facilitate year-end accounting of expenses, submission of work expense reports, submission for value added tax (VAT) refunds, personal expenses, and/or the like. In yet another implementation, the user may buy one or more items purchased in the transaction. The user may then execute a transaction without going to the merchant catalog or site to find the items. In a further implementation, the user may also cart one or more items in the transaction for later purchase.
The history mode, in another embodiment, may offer facilities for obtaining and displaying ratings 4119 of the items in the transaction. The source of the ratings may be the user, the user's friends (e.g., from social channels, contacts, etc.), reviews aggregated from the web, and/or the like. The user interface in some implementations may also allow the user to post messages to other users of social channels (e.g., TWITTER or FACEBOOK). For example, the display area 4120 shows FACEBOOK message exchanges between two users. In one implementation, a user may share a link via a message 4121. Selection of such a message having embedded link to a product may allow the user to view a description of the product and/or purchase the product directly from the history mode.
In one embodiment, the history mode may also include facilities for exporting receipts. The export receipts pop up 4122 may provide a number of options for exporting the receipts of transactions in the history. For example, a user may use one or more of the options 4125, which include save (to local mobile memory, to server, to a cloud account, and/or the like), print to a printer, fax, email, and/or the like. The user may utilize his or her address book 4123 to look up email or fax number for exporting. The user may also specify format options 4124 for exporting receipts. Example format options may include, without limitation, text files (.doc, .txt, .rtf, iif, etc.), spreadsheet (.csv, .xls, etc.), image files (.jpg, .tff, .png, etc.), portable document format (.pdf), postscript (.ps), and/or the like. The user may then click or tap the export button 4127 to initiate export of receipts.
With reference to
As shown, the user may enter a search term (e.g., bills) in the search bar 2121. The user may then identify in the tab 4222 the receipt 4223 the user wants to reallocate. Alternatively, the user may directly snap a picture of a barcode on a receipt, and the snap mode may generate and display a receipt 4223 using information from the barcode. The user may now reallocate 4225. In some implementations, the user may also dispute the transaction 4224 or archive the receipt 4226.
In one implementation, when the reallocate button 4225 is selected, the wallet application may perform optical character recognition (OCR) of the receipt. Each of the items in the receipt may then be examined to identify one or more items which could be charged to which payment device or account for tax or other benefits such as cash back, reward points, etc. In this example, there is a tax benefit if the prescription medication charged to the user's Visa card is charged to the user's FSA. The wallet application may then perform the reallocation as the back end. The reallocation process may include the wallet contacting the payment processor to credit the amount of the prescription medication to the Visa card and debit the same amount to the user's FSA account. In an alternate implementation, the payment processor (e.g., Visa or MasterCard) may obtain and OCR the receipt, identify items and payment accounts for reallocation and perform the reallocation. In one implementation, the wallet application may request the user to confirm reallocation of charges for the selected items to another payment account. The receipt 4227 may be generated after the completion of the reallocation process. As discussed, the receipt shows that some charges have been moved from the Visa account to the FSA.
With reference to
In one implementation, the user may decide to pay with default 4234. The wallet application may then use the user's default method of payment, in this example the wallet, to complete the purchase transaction. Upon completion of the transaction, a receipt may be automatically generated for proof of purchase. The user interface may also be updated to provide other options for handling a completed transaction. Example options include social 4237 to share purchase information with others, reallocate 4238 as discussed with regard to
With reference to
In one implementation, after the offer or coupon 4246 is applied, the user may have the option to find qualifying merchants and/or products using find, the user may go to the wallet using 4248, and the user may also save the offer or coupon 4246 for later use.
With reference to
For example, a user may go to doctor's office and desire to pay the co-pay for doctor's appointment. In addition to basic transactional information such as account number and name, the app may provide the user the ability to select to transfer medical records, health information, which may be provided to the medical provider, insurance company, as well as the transaction processor to reconcile payments between the parties. In some implementations, the records may be sent in a Health Insurance Portability and Accountability Act (HIPAA)-compliant data format and encrypted, and only the recipients who are authorized to view such records may have appropriate decryption keys to decrypt and view the private user information.
With reference to
In some implementations, the MCB-Platform may utilize a text challenge procedure to verify the authenticity of the user, e.g., 4425. For example, the MCB-Platform may communicate with the user via text chat, SMS messages, electronic mail, Facebook® messages, Twitter™ tweets, and/or the like. The MCB-Platform may pose a challenge question, e.g., 4426, for the user. The app may provide a user input interface element(s) (e.g., virtual keyboard 4428) to answer the challenge question posed by the MCB-Platform. In some implementations, the challenge question may be randomly selected by the MCB-Platform automatically; in some implementations, a customer service representative may manually communicate with the user. In some implementations, the user may not have initiated the transaction, e.g., the transaction is fraudulent. In such implementations, the user may cancel the text challenge. The MCB-Platform may cancel the transaction, and/or initiate fraud investigation on behalf of the user.
In some embodiments, the merchant server may obtain the checkout request from the client, and extract the checkout detail (e.g., XML data) from the checkout request. For example, the merchant server may utilize a parser such as the example parsers described below in the discussion with reference to
In some embodiments, in response to obtaining the product data, the merchant server may generate, e.g., 4516, checkout data to provide for the PoS client. In some embodiments, such checkout data, e.g., 4517, may be embodied, in part, in a HyperText Markup Language (“HTML”) page including data for display, such as product detail, product pricing, total pricing, tax information, shipping information, offers, discounts, rewards, value-added service information, etc., and input fields to provide payment information to process the purchase transaction, such as account holder name, account number, billing address, shipping address, tip amount, etc. In some embodiments, the checkout data may be embodied, in part, in a Quick Response (“QR”) code image that the PoS client can display, so that the user may capture the QR code using a user's device to obtain merchant and/or product data for generating a purchase transaction processing request. In some embodiments, a user alert mechanism may be built into the checkout data. For example, the merchant server may embed a URL specific to the transaction into the checkout data. In some embodiments, the alerts URL may further be embedded into optional level 3 data in card authorization requests, such as those discussed further below with reference to FIGA. 47-48. The URL may point to a webpage, data file, executable script, etc., stored on the merchant's server dedicated to the transaction that is the subject of the card authorization request. For example, the object pointed to by the URL may include details on the purchase transaction, e.g., products being purchased, purchase cost, time expiry, status of order processing, and/or the like. Thus, the merchant server may provide to the payment network the details of the transaction by passing the URL of the webpage to the payment network. In some embodiments, the payment network may provide notifications to the user, such as a payment receipt, transaction authorization confirmation message, shipping notification and/or the like. In such messages, the payment network may provide the URL to the user device. The user may navigate to the URL on the user's device to obtain alerts regarding the user's purchase, as well as other information such as offers, coupons, related products, rewards notifications, and/or the like. An example listing of a checkout data 4517, substantially in the form of XML-formatted data, is provided below:
In alternate embodiments, the merchant server may invoke a component to generate checkout data, such as the example PoS terminal checkout discussed above with reference to
In some embodiments, upon authenticating the user for access to virtual wallet features, the user wallet device may provide a transaction authorization input, e.g., 4714, to a point-of-sale (“PoS”) client, e.g., 4702. For example, the user wallet device may communicate with the PoS client via Bluetooth, Wi-Fi, cellular communication, one- or two-way near-field communication (“NFC”), and/or the like. In embodiments where the user utilizes a plastic card instead of the user wallet device, the user may swipe the plastic card at the PoS client to transfer information from the plastic card into the PoS client. For example, the PoS client may obtain, as transaction authorization input 4714, track 1 data from the user's plastic card (e.g., credit card, debit card, prepaid card, charge card, etc.), such as the example track 1 data provided below:
In embodiments where the user utilizes a user wallet device, the user wallet device may provide payment information to the PoS client, formatted according to a data formatting protocol appropriate to the communication mechanism employed in the communication between the user wallet device and the PoS client. An example listing of transaction authorization input 4714, substantially in the form of XML-formatted data, is provided below:
In some embodiments, the PoS client may generate a card authorization request, e.g., 4715, using the obtained transaction authorization input from the user wallet device, and/or product/checkout data (see, e.g.,
In some embodiments, the card authorization request generated by the user device may include a minimum of information required to process the purchase transaction. For example, this may improve the efficiency of communicating the purchase transaction request, and may also advantageously improve the privacy protections provided to the user and/or merchant. For example, in some embodiments, the card authorization request may include at least a session ID for the user's shopping session with the merchant. The session ID may be utilized by any component and/or entity having the appropriate access authority to access a secure site on the merchant server to obtain alerts, reminders, and/or other data about the transaction(s) within that shopping session between the user and the merchant. In some embodiments, the PoS client may provide the generated card authorization request to the merchant server, e.g., 4716. The merchant server may forward the card authorization request to a pay gateway server, e.g., 4704a, for routing the card authorization request to the appropriate payment network for payment processing. For example, the pay gateway server may be able to select from payment networks, such as Visa, Mastercard, American Express, Paypal, etc., to process various types of transactions including, but not limited to: credit card, debit card, prepaid card, B2B and/or like transactions. In some embodiments, the merchant server may query a database, e.g., merchant/acquirer database 4703b, for a network address of the payment gateway server, for example by using a portion of a user payment card number, or a user ID (such as an email address) as a keyword for the database query. For example, the merchant server may issue PHP/SQL commands to query a database table (such as
In response, the merchant/acquirer database may provide the requested payment gateway address, e.g., 4718. The merchant server may forward the card authorization request to the pay gateway server using the provided address, e.g., 4719. In some embodiments, upon receiving the card authorization request from the merchant server, the pay gateway server may invoke a component to provide one or more services associated with purchase transaction authorization. For example, the pay gateway server may invoke components for fraud prevention, loyalty and/or rewards, and/or other services for which the user-merchant combination is authorized. In some embodiments, the pay gateway server may invoke a component to provide point-of-sale value-add services. The pay gateway server may forward the card authorization request to a pay network server, e.g., 4705a, for payment processing. For example, the pay gateway server may be able to select from payment networks, such as Visa, Mastercard, American Express, Paypal, etc., to process various types of transactions including, but not limited to: credit card, debit card, prepaid card, B2B and/or like transactions. In some embodiments, the pay gateway server may query a database, e.g., pay gateway database 4704b, for a network address of the payment network server, for example by using a portion of a user payment card number, or a user ID (such as an email address) as a keyword for the database query. For example, the pay gateway server may issue PHP/SQL commands to query a database table (such as
In response, the payment gateway database may provide the requested payment network address, e.g., 4722. The pay gateway server may forward the card authorization request to the pay network server using the provided address, e.g., 4723.
With reference to
In some embodiments, the pay network server may generate a query, e.g., 4724, for issuer server(s) corresponding to the user-selected payment options. For example, the user's account may be linked to one or more issuer financial institutions (“issuers”), such as banking institutions, which issued the account(s) for the user. For example, such accounts may include, but not be limited to: credit card, debit card, prepaid card, checking, savings, money market, certificates of deposit, stored (cash) value accounts and/or the like. Issuer server(s), e.g., 4706a, of the issuer(s) may maintain details of the user's account(s). In some embodiments, a database, e.g., pay network database 4705b, may store details of the issuer server(s) associated with the issuer(s). In some embodiments, the pay network server may query a database, e.g., pay network database 4705b, for a network address of the issuer(s) server(s), for example by using a portion of a user payment card number, or a user ID (such as an email address) as a keyword for the database query. For example, the merchant server may issue PHP/SQL commands to query a database table (such as
In response to obtaining the issuer server query, e.g., 4724, the pay network database may provide, e.g., 4725, the requested issuer server data to the pay network server. In some embodiments, the pay network server may utilize the issuer server data to generate funds authorization request(s), e.g., 4726, for each of the issuer server(s) selected based on the pre-defined payment settings associated with the user's virtual wallet, and/or the user's payment options input, and provide the funds authorization request(s) to the issuer server(s). In some embodiments, the funds authorization request(s) may include details such as, but not limited to: the costs to the user involved in the transaction, card account details of the user, user billing and/or shipping information, and/or the like. An example listing of a funds authorization request 4726, substantially in the form of a HTTP(S) POST message including XML-formatted data, is provided below:
In some embodiments, an issuer server may parse the authorization request(s), and based on the request details may query a database, e.g., user profile database 4706b, for data associated with an account linked to the user. For example, the merchant server may issue PHP/SQL commands to query a database table (such as
In some embodiments, on obtaining the user account(s) data, e.g., 4728, the issuer server may determine whether the user can pay for the transaction using funds available in the account, 4729. For example, the issuer server may determine whether the user has a sufficient balance remaining in the account, sufficient credit associated with the account, and/or the like. Based on the determination, the issuer server(s) may provide a funds authorization response, e.g., 4730, to the pay network server. For example, the issuer server(s) may provide a HTTP(S) POST message similar to the examples above. In some embodiments, if at least one issuer server determines that the user cannot pay for the transaction using the funds available in the account, the pay network server may request payment options again from the user (e.g., by providing an authorization fail message to the user device and requesting the user device to provide new payment options), and re-attempt authorization for the purchase transaction. In some embodiments, if the number of failed authorization attempts exceeds a threshold, the pay network server may abort the authorization process, and provide an “authorization fail” message to the merchant server, user device and/or client.
In some embodiments, the pay network server may obtain the funds authorization response including a notification of successful authorization, and parse the message to extract authorization details. Upon determining that the user possesses sufficient funds for the transaction, e.g., 4731, the pay network server may invoke a component to provide value-add services for the user. In some embodiments, the pay gateway server may invoke a component to provide point-of-sale value-add services. In various embodiments, such value-add services may be provided at any point in the purchase transaction process, including before the pay gateway server(s) and/or pay network server(s) obtain verification from the issuer server(s) that the user has funds sufficient for the transaction to be processed, or prior to obtaining such verification.
In some embodiments, the pay network server may generate a transaction data record from the authorization request and/or authorization response, and store the details of the transaction and authorization relating to the transaction in a transactions database. For example, the pay network server may issue PHP/SQL commands to store the data to a database table (such as
In some embodiments, the pay network server may forward a transaction authorization response, e.g., 4732, to the user wallet device, PoS client, and/or merchant server. The merchant may obtain the transaction authorization response, and determine from it that the user possesses sufficient funds in the card account to conduct the transaction. The merchant server may add a record of the transaction for the user to a batch of transaction data relating to authorized transactions. For example, the merchant may append the XML data pertaining to the user transaction to an XML data file comprising XML data for transactions that have been authorized for various users, e.g., 4733, and store the XML data file, e.g., 4734, in a database, e.g., merchant database 404. For example, a batch XML data file may be structured similar to the example XML data structure template provided below:
In some embodiments, the server may also generate a purchase receipt, e.g., 4733, and provide the purchase receipt to the client, e.g., 4735. The client may render and display, e.g., 4736, the purchase receipt for the user. In some embodiments, the user's wallet device may also provide a notification of successful authorization to the user. For example, the PoS client/user device may render a webpage, electronic message, text/SMS message, buffer a voicemail, emit a ring tone, and/or play an audio message, etc., and provide output including, but not limited to: sounds, music, audio, video, images, tactile feedback, vibration alerts (e.g., on vibration-capable client devices such as a smartphone etc.), and/or the like.
In some embodiments, upon authenticating the user for access to virtual wallet features, the user wallet device may provide a transaction authorization input, e.g., 4804, to a point-of-sale (“PoS”) client. For example, the user wallet device may communicate with the PoS client via Bluetooth, Wi-Fi, cellular communication, one- or two-way near-field communication (“NFC”), and/or the like. In embodiments where the user utilizes a plastic card instead of the user wallet device, the user may swipe the plastic card at the PoS client to transfer information from the plastic card into the PoS client. In embodiments where the user utilizes a user wallet device, the user wallet device may provide payment information to the PoS client, formatted according to a data formatting protocol appropriate to the communication mechanism employed in the communication between the user wallet device and the PoS client.
In some embodiments, the PoS client may obtain the transaction authorization input, and parse the input to extract payment information from the transaction authorization input, e.g., 4805. For example, the PoS client may utilize a parser, such as the example parsers provided below in the discussion with reference to
In some embodiments, the PoS client may provide the generated card authorization request to the merchant server. The merchant server may forward the card authorization request to a pay gateway server, for routing the card authorization request to the appropriate payment network for payment processing. For example, the pay gateway server may be able to select from payment networks, such as Visa, Mastercard, American Express, Paypal, etc., to process various types of transactions including, but not limited to: credit card, debit card, prepaid card, B2B and/or like transactions. In some embodiments, the merchant server may query a database, e.g., 4808, for a network address of the payment gateway server, for example by using a portion of a user payment card number, or a user ID (such as an email address) as a keyword for the database query. In response, the merchant/acquirer database may provide the requested payment gateway address, e.g., 4810. The merchant server may forward the card authorization request to the pay gateway server using the provided address. In some embodiments, upon receiving the card authorization request from the merchant server, the pay gateway server may invoke a component to provide one or more service associated with purchase transaction authorization, e.g., 4811. For example, the pay gateway server may invoke components for fraud prevention (see e.g., VerifyChat,
The pay gateway server may forward the card authorization request to a pay network server for payment processing, e.g., 4814. For example, the pay gateway server may be able to select from payment networks, such as Visa, Mastercard, American Express, Paypal, etc., to process various types of transactions including, but not limited to: credit card, debit card, prepaid card, B2B and/or like transactions. In some embodiments, the pay gateway server may query a database, e.g., 4812, for a network address of the payment network server, for example by using a portion of a user payment card number, or a user ID (such as an email address) as a keyword for the database query. In response, the payment gateway database may provide the requested payment network address, e.g., 4813. The pay gateway server may forward the card authorization request to the pay network server using the provided address, e.g., 4814.
With reference to
In response to obtaining the issuer server query, the pay network database may provide, e.g., 4816, the requested issuer server data to the pay network server. In some embodiments, the pay network server may utilize the issuer server data to generate funds authorization request(s), e.g., 4817, for each of the issuer server(s) selected based on the pre-defined payment settings associated with the user's virtual wallet, and/or the user's payment options input, and provide the funds authorization request(s) to the issuer server(s). In some embodiments, the funds authorization request(s) may include details such as, but not limited to: the costs to the user involved in the transaction, card account details of the user, user billing and/or shipping information, and/or the like. In some embodiments, an issuer server may parse the authorization request(s), e.g., 4818, and based on the request details may query a database, e.g., 4819, for data associated with an account linked to the user.
In some embodiments, on obtaining the user account(s) data, e.g., 482o, the issuer server may determine whether the user can pay for the transaction using funds available in the account, e.g., 4821. For example, the issuer server may determine whether the user has a sufficient balance remaining in the account, sufficient credit associated with the account, and/or the like. Based on the determination, the issuer server(s) may provide a funds authorization response, e.g., 4822, to the pay network server. In some embodiments, if at least one issuer server determines that the user cannot pay for the transaction using the funds available in the account, the pay network server may request payment options again from the user (e.g., by providing an authorization fail message to the user device and requesting the user device to provide new payment options), and re-attempt authorization for the purchase transaction. In some embodiments, if the number of failed authorization attempts exceeds a threshold, the pay network server may abort the authorization process, and provide an “authorization fail” message to the merchant server, user device and/or client.
In some embodiments, the pay network server may obtain the funds authorization response including a notification of successful authorization, and parse the message to extract authorization details. Upon determining that the user possesses sufficient funds for the transaction, e.g., 4823, the pay network server may invoke a component to provide value-add services for the user, e.g., 4823.
In some embodiments, the pay network server may forward a transaction authorization response to the user wallet device, PoS client, and/or merchant server. The merchant may parse, e.g., 4824, the transaction authorization response, and determine from it that the user possesses sufficient funds in the card account to conduct the transaction, e.g., 4825, option“Yes.” The merchant server may add a record of the transaction for the user to a batch of transaction data relating to authorized transactions. For example, the merchant may append the XML data pertaining to the user transaction to an XML data file comprising XML data for transactions that have been authorized for various users, e.g., 4826, and store the XML data file, e.g., 4827, in a database. In some embodiments, the server may also generate a purchase receipt, e.g., 4828, and provide the purchase receipt to the client. The client may render and display, e.g., 4829, the purchase receipt for the user. In some embodiments, the user's wallet device may also provide a notification of successful authorization to the user. For example, the PoS client/user device may render a webpage, electronic message, text/SMS message, buffer a voicemail, emit a ring tone, and/or play an audio message, etc., and provide output including, but not limited to: sounds, music, audio, video, images, tactile feedback, vibration alerts (e.g., on vibration-capable client devices such as a smartphone etc.), and/or the like.
With reference to
In some embodiments, the issuer server may generate a payment command, e.g., 4927. For example, the issuer server may issue a command to deduct funds from the user's account (or add a charge to the user's credit card account). The issuer server may issue a payment command, e.g., 4927, to a database storing the user's account information, e.g., user profile database 4906b. The issuer server may provide an individual payment confirmation, e.g., 4928, to the pay network server, which may forward, e.g., 4929, the funds transfer message to the acquirer server. An example listing of an individual payment confirmation 4928, substantially in the form of a HTTP(S) POST message including XML-formatted data, is provided below:
In some embodiments, the acquirer server may parse the individual payment confirmation, and correlate the transaction (e.g., using the request_ID field in the example above) to the merchant. The acquirer server may then transfer the funds specified in the funds transfer message to an account of the merchant. For example, the acquirer server may query, e.g. 4930, an acquirer database 4907b for payment ledger and/or merchant account data, e.g., 4931. The acquirer server may utilize payment ledger and/or merchant account data from the acquirer database, along with the individual payment confirmation, to generate updated payment ledger and/or merchant account data, e.g., 4932. The acquirer server may then store, e.g., 4933, the updated payment ledger and/or merchant account data to the acquire database.
The pay network server may parse the batch payment request obtained from the acquirer server, and extract the transaction data for each transaction stored in the batch payment request, e.g., 5008. The pay network server may store the transaction data, e.g., 5009, for each transaction in a pay network database. In some embodiments, the pay network server may invoke a component, e.g., 5010, to provide analytics based on the transactions of the merchant for whom purchase transaction are being cleared. For example, the pay network server may invoke a component such as the example card transaction-based social data aggregation component discussed above with reference to
With reference to
In some embodiments, the acquirer server may parse the individual payment confirmation, and correlate the transaction (e.g., using the request_ID field in the example above) to the merchant. The acquirer server may then transfer the funds specified in the funds transfer message to an account of the merchant. For example, the acquirer server may query, e.g. 5019, an acquirer database for payment ledger and/or merchant account data, e.g., 5020. The acquirer server may utilize payment ledger and/or merchant account data from the acquirer database, along with the individual payment confirmation, to generate updated payment ledger and/or merchant account data, e.g., 5021. The acquirer server may then store, e.g., 5022, the updated payment ledger and/or merchant account data to the acquire database.
Typically, users, which may be people and/or other systems, may engage information technology systems (e.g., computers) to facilitate information processing. In turn, computers employ processors to process information; such processors 5103 may be referred to as central processing units (CPU). One form of processor is referred to as a microprocessor. CPUs use communicative circuits to pass binary encoded signals acting as instructions to enable various operations. These instructions may be operational and/or data instructions containing and/or referencing other instructions and data in various processor accessible and operable areas of memory 5129 (e.g., registers, cache memory, random access memory, etc.). Such communicative instructions may be stored and/or transmitted in batches (e.g., batches of instructions) as programs and/or data components to facilitate desired operations. These stored instruction codes, e.g., programs, may engage the CPU circuit components and other motherboard and/or system components to perform desired operations. One type of program is a computer operating system, which, may be executed by CPU on a computer; the operating system enables and facilitates users to access and operate computer information technology and resources. Some resources that may be employed in information technology systems include: input and output mechanisms through which data may pass into and out of a computer; memory storage into which data may be saved; and processors by which information may be processed. These information technology systems may be used to collect data for later retrieval, analysis, and manipulation, which may be facilitated through a database program. These information technology systems provide interfaces that allow users to access and operate various system components.
In one embodiment, the MCB-Platform controller 5101 may be connected to and/or communicate with entities such as, but not limited to: one or more users from user input devices 5111; peripheral devices 5112; an optional cryptographic processor device 5128; and/or a communications network 5113.
Networks are commonly thought to comprise the interconnection and interoperation of clients, servers, and intermediary nodes in a graph topology. It should be noted that the term “server” as used throughout this application refers generally to a computer, other device, program, or combination thereof that processes and responds to the requests of remote users across a communications network. Servers serve their information to requesting “clients.” The term “client” as used herein refers generally to a computer, program, other device, user and/or combination thereof that is capable of processing and making requests and obtaining and processing any responses from servers across a communications network. A computer, other device, program, or combination thereof that facilitates, processes information and requests, and/or furthers the passage of information from a source user to a destination user is commonly referred to as a “node.” Networks are generally thought to facilitate the transfer of information from source points to destinations. A node specifically tasked with furthering the passage of information from a source to a destination is commonly called a “router.” There are many forms of networks such as Local Area Networks (LANs), Pico networks, Wide Area Networks (WANs), Wireless Networks (WLANs), etc. For example, the Internet is generally accepted as being an interconnection of a multitude of networks whereby remote clients and servers may access and interoperate with one another.
The MCB-Platform controller 5101 may be based on computer systems that may comprise, but are not limited to, components such as: a computer systemization 5102 connected to memory 5129.
A computer systemization 5102 may comprise a clock 5130, central processing unit (“CPU(s)” and/or “processor(s)” (these terms are used interchangeable throughout the disclosure unless noted to the contrary)) 5103, a memory 5129 (e.g., a read only memory (ROM) 5106, a random access memory (RAM) 5105, etc.), and/or an interface bus 5107, and most frequently, although not necessarily, are all interconnected and/or communicating through a system bus 5104 on one or more (mother)board(s) 5102 having conductive and/or otherwise transportive circuit pathways through which instructions (e.g., binary encoded signals) may travel to effectuate communications, operations, storage, etc. The computer systemization may be connected to a power source 5186; e.g., optionally the power source may be internal. Optionally, a cryptographic processor 5126 and/or transceivers (e.g., ICs) 5174 may be connected to the system bus. In another embodiment, the cryptographic processor and/or transceivers may be connected as either internal and/or external peripheral devices 5112 via the interface bus I/O. In turn, the transceivers may be connected to antenna(s) 5175, thereby effectuating wireless transmission and reception of various communication and/or sensor protocols; for example the antenna(s) may connect to: a Texas Instruments WiLink WL1283 transceiver chip (e.g., providing 802.11n, Bluetooth 3.0, FM, global positioning system (GPS) (thereby allowing MCB-Platform controller to determine its location)); Broadcom BCM4329FKUBG transceiver chip (e.g., providing 802.11n, Bluetooth 2.1+EDR, FM, etc.); a Broadcom BCM4750IUB8 receiver chip (e.g., GPS); an Infineon Technologies X-Gold 618-PMB9800 (e.g., providing 2G/3G HSDPA/HSUPA communications); and/or the like. The system clock typically has a crystal oscillator and generates a base signal through the computer systemization's circuit pathways. The clock is typically coupled to the system bus and various clock multipliers that will increase or decrease the base operating frequency for other components interconnected in the computer systemization. The clock and various components in a computer systemization drive signals embodying information throughout the system. Such transmission and reception of instructions embodying information throughout a computer systemization may be commonly referred to as communications. These communicative instructions may further be transmitted, received, and the cause of return and/or reply communications beyond the instant computer systemization to: communications networks, input devices, other computer systemizations, peripheral devices, and/or the like. It should be understood that in alternative embodiments, any of the above components may be connected directly to one another, connected to the CPU, and/or organized in numerous variations employed as exemplified by various computer systems.
The CPU comprises at least one high-speed data processor adequate to execute program components for executing user and/or system-generated requests. Often, the processors themselves will incorporate various specialized processing units, such as, but not limited to: integrated system (bus) controllers, memory management control units, floating point units, and even specialized processing sub-units like graphics processing units, digital signal processing units, and/or the like. Additionally, processors may include internal fast access addressable memory, and be capable of mapping and addressing memory 5129 beyond the processor itself; internal memory may include, but is not limited to: fast registers, various levels of cache memory (e.g., level 1, 2, 3, etc.), RAM, etc. The processor may access this memory through the use of a memory address space that is accessible via instruction address, which the processor can construct and decode allowing it to access a circuit path to a specific memory address space having a memory state. The CPU may be a microprocessor such as: AMD's Athlon, Duron and/or Opteron; ARM's application, embedded and secure processors; IBM and/or Motorola's DragonBall and PowerPC; IBM's and Sony's Cell processor; Intel's Celeron, Core (2) Duo, Itanium, Pentium, Xeon, and/or XScale; and/or the like processor(s). The CPU interacts with memory through instruction passing through conductive and/or transportive conduits (e.g., (printed) electronic and/or optic circuits) to execute stored instructions (i.e., program code) according to conventional data processing techniques. Such instruction passing facilitates communication within the MCB-Platform controller and beyond through various interfaces. Should processing requirements dictate a greater amount speed and/or capacity, distributed processors (e.g., Distributed MCB-Platform), mainframe, multi-core, parallel, and/or super-computer architectures may similarly be employed. Alternatively, should deployment requirements dictate greater portability, smaller Personal Digital Assistants (PDAs) may be employed.
Depending on the particular implementation, features of the MCB-Platform may be achieved by implementing a microcontroller such as CAST's R8051XC2 microcontroller; Intel's MCS 51 (i.e., 8051 microcontroller); and/or the like. Also, to implement certain features of the MCB-Platform, some feature implementations may rely on embedded components, such as: Application-Specific Integrated Circuit (“ASIC”), Digital Signal Processing (“DSP”), Field Programmable Gate Array (“FPGA”), and/or the like embedded technology. For example, any of the MCB-Platform component collection (distributed or otherwise) and/or features may be implemented via the microprocessor and/or via embedded components; e.g., via ASIC, coprocessor, DSP, FPGA, and/or the like. Alternately, some implementations of the MCB-Platform may be implemented with embedded components that are configured and used to achieve a variety of features or signal processing.
Depending on the particular implementation, the embedded components may include software solutions, hardware solutions, and/or some combination of both hardware/software solutions. For example, MCB-Platform features discussed herein may be achieved through implementing FPGAs, which are a semiconductor devices containing programmable logic components called “logic blocks”, and programmable interconnects, such as the high performance FPGA Virtex series and/or the low cost Spartan series manufactured by Xilinx. Logic blocks and interconnects can be programmed by the customer or designer, after the FPGA is manufactured, to implement any of the MCB-Platform features. A hierarchy of programmable interconnects allow logic blocks to be interconnected as needed by the MCB-Platform system designer/administrator, somewhat like a one-chip programmable breadboard. An FPGA's logic blocks can be programmed to perform the operation of basic logic gates such as AND, and XOR, or more complex combinational operators such as decoders or mathematical operations. In most FPGAs, the logic blocks also include memory elements, which may be circuit flip-flops or more complete blocks of memory. In some circumstances, the MCB-Platform may be developed on regular FPGAs and then migrated into a fixed version that more resembles ASIC implementations. Alternate or coordinating implementations may migrate MCB-Platform controller features to a final ASIC instead of or in addition to FPGAs. Depending on the implementation all of the aforementioned embedded components and microprocessors may be considered the “CPU” and/or “processor” for the MCB-Platform.
The power source 5186 may be of any standard form for powering small electronic circuit board devices such as the following power cells: alkaline, lithium hydride, lithium ion, lithium polymer, nickel cadmium, solar cells, and/or the like. Other types of AC or DC power sources may be used as well. In the case of solar cells, in one embodiment, the case provides an aperture through which the solar cell may capture photonic energy. The power cell 5186 is connected to at least one of the interconnected subsequent components of the MCB-Platform thereby providing an electric current to all subsequent components. In one example, the power source 5186 is connected to the system bus component 5104. In an alternative embodiment, an outside power source 5186 is provided through a connection across the I/O 5108 interface. For example, a USB and/or IEEE 1394 connection carries both data and power across the connection and is therefore a suitable source of power.
Interface bus(ses) 5107 may accept, connect, and/or communicate to a number of interface adapters, conventionally although not necessarily in the form of adapter cards, such as but not limited to: input output interfaces (I/O) 5108, storage interfaces 5109, network interfaces 5110, and/or the like. Optionally, cryptographic processor interfaces 5127 similarly may be connected to the interface bus. The interface bus provides for the communications of interface adapters with one another as well as with other components of the computer systemization. Interface adapters are adapted for a compatible interface bus. Interface adapters conventionally connect to the interface bus via a slot architecture. Conventional slot architectures may be employed, such as, but not limited to: Accelerated Graphics Port (AGP), Card Bus, (Extended) Industry Standard Architecture ((E)ISA), Micro Channel Architecture (MCA), NuBus, Peripheral Component Interconnect (Extended) (PCI(X)), PCI Express, Personal Computer Memory Card International Association (PCMCIA), and/or the like.
Storage interfaces 5109 may accept, communicate, and/or connect to a number of storage devices such as, but not limited to: storage devices 5114, removable disc devices, and/or the like. Storage interfaces may employ connection protocols such as, but not limited to: (Ultra) (Serial) Advanced Technology Attachment (Packet Interface) ((Ultra) (Serial) ATA(PI)), (Enhanced) Integrated Drive Electronics ((E)IDE), Institute of Electrical and Electronics Engineers (IEEE) 1394, fiber channel, Small Computer Systems Interface (SCSI), Universal Serial Bus (USB), and/or the like.
Network interfaces 5110 may accept, communicate, and/or connect to a communications network 5113. Through a communications network 5113, the MCB-Platform controller is accessible through remote clients 5133b (e.g., computers with web browsers) by users 5133a. Network interfaces may employ connection protocols such as, but not limited to: direct connect, Ethernet (thick, thin, twisted pair 10/100/1000 Base T, and/or the like), Token Ring, wireless connection such as IEEE 802.11a-x, and/or the like. Should processing requirements dictate a greater amount speed and/or capacity, distributed network controllers (e.g., Distributed MCB-Platform), architectures may similarly be employed to pool, load balance, and/or otherwise increase the communicative bandwidth required by the MCB-Platform controller. A communications network may be any one and/or the combination of the following: a direct interconnection; the Internet; a Local Area Network (LAN); a Metropolitan Area Network (MAN); an Operating Missions as Nodes on the Internet (OMNI); a secured custom connection; a Wide Area Network (WAN); a wireless network (e.g., employing protocols such as, but not limited to a Wireless Application Protocol (WAP), I-mode, and/or the like); and/or the like. A network interface may be regarded as a specialized form of an input output interface. Further, multiple network interfaces 5110 may be used to engage with various communications network types 5113. For example, multiple network interfaces may be employed to allow for the communication over broadcast, multicast, and/or unicast networks.
Input Output interfaces (I/O) 5108 may accept, communicate, and/or connect to user input devices 5111, peripheral devices 5112, cryptographic processor devices 5128, and/or the like. I/O may employ connection protocols such as, but not limited to: audio: analog, digital, monaural, RCA, stereo, and/or the like; data: Apple Desktop Bus (ADB), IEEE 1394a-b, serial, universal serial bus (USB); infrared; joystick; keyboard; midi; optical; PC AT; PS/2; parallel; radio; video interface: Apple Desktop Connector (ADC), BNC, coaxial, component, composite, digital, Digital Visual Interface (DVI), high-definition multimedia interface (HDMI), RCA, RF antennae, S-Video, VGA, and/or the like; wireless transceivers: 802.11a/b/g/n/x; Bluetooth; cellular (e.g., code division multiple access (CDMA), high speed packet access (HSPA(+)), high-speed downlink packet access (HSDPA), global system for mobile communications (GSM), long term evolution (LTE), WiMax, etc.); and/or the like. One typical output device may include a video display, which typically comprises a Cathode Ray Tube (CRT) or Liquid Crystal Display (LCD) based monitor with an interface (e.g., DVI circuitry and cable) that accepts signals from a video interface, may be used. The video interface composites information generated by a computer systemization and generates video signals based on the composited information in a video memory frame. Another output device is a television set, which accepts signals from a video interface. Typically, the video interface provides the composited video information through a video connection interface that accepts a video display interface (e.g., an RCA composite video connector accepting an RCA composite video cable; a DVI connector accepting a DVI display cable, etc.).
User input devices 5111 often are a type of peripheral device 512 (see below) and may include: card readers, dongles, finger print readers, gloves, graphics tablets, joysticks, keyboards, microphones, mouse (mice), remote controls, retina readers, touch screens (e.g., capacitive, resistive, etc.), trackballs, trackpads, sensors (e.g., accelerometers, ambient light, GPS, gyroscopes, proximity, etc.), styluses, and/or the like.
Peripheral devices 5112 may be connected and/or communicate to I/O and/or other facilities of the like such as network interfaces, storage interfaces, directly to the interface bus, system bus, the CPU, and/or the like. Peripheral devices may be external, internal and/or part of the MCB-Platform controller. Peripheral devices may include: antenna, audio devices (e.g., line-in, line-out, microphone input, speakers, etc.), cameras (e.g., still, video, webcam, etc.), dongles (e.g., for copy protection, ensuring secure transactions with a digital signature, and/or the like), external processors (for added capabilities; e.g., crypto devices 528), force-feedback devices (e.g., vibrating motors), network interfaces, printers, scanners, storage devices, transceivers (e.g., cellular, GPS, etc.), video devices (e.g., goggles, monitors, etc.), video sources, visors, and/or the like. Peripheral devices often include types of input devices (e.g., cameras).
It should be noted that although user input devices and peripheral devices may be employed, the MCB-Platform controller may be embodied as an embedded, dedicated, and/or monitor-less (i.e., headless) device, wherein access would be provided over a network interface connection.
Cryptographic units such as, but not limited to, microcontrollers, processors 5126, interfaces 5127, and/or devices 5128 may be attached, and/or communicate with the MCB-Platform controller. A MC68HC16 microcontroller, manufactured by Motorola Inc., may be used for and/or within cryptographic units. The MC68HC16 microcontroller utilizes a 16-bit multiply-and-accumulate instruction in the MHz configuration and requires less than one second to perform a 512-bit RSA private key operation. Cryptographic units support the authentication of communications from interacting agents, as well as allowing for anonymous transactions. Cryptographic units may also be configured as part of the CPU. Equivalent microcontrollers and/or processors may also be used. Other commercially available specialized cryptographic processors include: Broadcom's CryptoNetX and other Security Processors; nCipher's nShield; SafeNet's Luna PCI (e.g., 7100) series; Semaphore Communications' 40 MHz Roadrunner 184; Sun's Cryptographic Accelerators (e.g., Accelerator 6000 PCIe Board, Accelerator 500 Daughtercard); Via Nano Processor (e.g., L2100, L2200, U2400) line, which is capable of performing 500+MB/s of cryptographic instructions; VLSI Technology's 33 MHz 6868; and/or the like.
Generally, any mechanization and/or embodiment allowing a processor to affect the storage and/or retrieval of information is regarded as memory 5129. However, memory is a fungible technology and resource, thus, any number of memory embodiments may be employed in lieu of or in concert with one another. It is to be understood that the MCB-Platform controller and/or a computer systemization may employ various forms of memory 5129. For example, a computer systemization may be configured wherein the operation of on-chip CPU memory (e.g., registers), RAM, ROM, and any other storage devices are provided by a paper punch tape or paper punch card mechanism; however, such an embodiment would result in an extremely slow rate of operation. In a typical configuration, memory 5129 will include ROM 5106, RAM 5105, and a storage device 5114. A storage device 5114 may be any conventional computer system storage. Storage devices may include a drum; a (fixed and/or removable) magnetic disk drive; a magneto-optical drive; an optical drive (i.e., Blueray, CD ROM/RAM/Recordable (R)/ReWritable (RW), DVD R/RW, HD DVD R/RW etc.); an array of devices (e.g., Redundant Array of Independent Disks (RAID)); solid state memory devices (USB memory, solid state drives (SSD), etc.); other processor-readable storage mediums; and/or other devices of the like. Thus, a computer systemization generally requires and makes use of memory.
The memory 5129 may contain a collection of program and/or database components and/or data such as, but not limited to: operating system component(s) 5115 (operating system); information server component(s) 5116 (information server); user interface component(s) 5117 (user interface); Web browser component(s) 5118 (Web browser); database(s) 5119; mail server component(s) 5121; mail client component(s) 5122; cryptographic server component(s) 5120 (cryptographic server); the MCB-Platform component(s) 5135; and/or the like (i.e., collectively a component collection). These components may be stored and accessed from the storage devices and/or from storage devices accessible through an interface bus. Although non-conventional program components such as those in the component collection, typically, are stored in a local storage device 5114, they may also be loaded and/or stored in memory such as: peripheral devices, RAM, remote storage facilities through a communications network, ROM, various forms of memory, and/or the like.
The operating system component 5115 is an executable program component facilitating the operation of the MCB-Platform controller. Typically, the operating system facilitates access of I/O, network interfaces, peripheral devices, storage devices, and/or the like. The operating system may be a highly fault tolerant, scalable, and secure system such as: Apple Macintosh OS X (Server); AT&T Nan 9; Be OS; Unix and Unix-like system distributions (such as AT&T's UNIX; Berkley Software Distribution (BSD) variations such as FreeBSD, NetBSD, OpenBSD, and/or the like; Linux distributions such as Red Hat, Ubuntu, and/or the like); and/or the like operating systems. However, more limited and/or less secure operating systems also may be employed such as Apple Macintosh OS, IBM OS/2, Microsoft DOS, Microsoft Windows 2000/2003/3.1/95/98/CE/Millenium/NT/Vista/XP (Server), Palm OS, and/or the like. An operating system may communicate to and/or with other components in a component collection, including itself, and/or the like. Most frequently, the operating system communicates with other program components, user interfaces, and/or the like. For example, the operating system may contain, communicate, generate, obtain, and/or provide program component, system, user, and/or data communications, requests, and/or responses. The operating system, once executed by the CPU, may enable the interaction with communications networks, data, I/O, peripheral devices, program components, memory, user input devices, and/or the like. The operating system may provide communications protocols that allow the MCB-Platform controller to communicate with other entities through a communications network 5113. Various communication protocols may be used by the MCB-Platform controller as a subcarrier transport mechanism for interaction, such as, but not limited to: multicast, TCP/IP, UDP, unicast, and/or the like.
An information server component 5116 is a stored program component that is executed by a CPU. The information server may be a conventional Internet information server such as, but not limited to Apache Software Foundation's Apache, Microsoft's Internet Information Server, and/or the like. The information server may allow for the execution of program components through facilities such as Active Server Page (ASP), ActiveX, (ANSI) (Objective-) C (++), C# and/or .NET, Common Gateway Interface (CGI) scripts, dynamic (D) hypertext markup language (HTML), FLASH, Java, JavaScript, Practical Extraction Report Language (PERL), Hypertext Pre-Processor (PHP), pipes, Python, wireless application protocol (WAP), WebObjects, and/or the like. The information server may support secure communications protocols such as, but not limited to, File Transfer Protocol (FTP); HyperText Transfer Protocol (HTTP); Secure Hypertext Transfer Protocol (HTTPS), Secure Socket Layer (SSL), messaging protocols (e.g., America Online (AOL) Instant Messenger (AIM), Application Exchange (APEX), ICQ, Internet Relay Chat (IRC), Microsoft Network (MSN) Messenger Service, Presence and Instant Messaging Protocol (PRIM), Internet Engineering Task Force's (IETF's) Session Initiation Protocol (SIP), SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE), open XML-based Extensible Messaging and Presence Protocol (XMPP) (i.e., Jabber or Open Mobile Alliance's (OMA's) Instant Messaging and Presence Service (IMPS)), Yahoo! Instant Messenger Service, and/or the like. The information server provides results in the form of Web pages to Web browsers, and allows for the manipulated generation of the Web pages through interaction with other program components. After a Domain Name System (DNS) resolution portion of an HTTP request is resolved to a particular information server, the information server resolves requests for information at specified locations on the MCB-Platform controller based on the remainder of the HTTP request. For example, a request such as http://123.124.125.126/myInformation.html might have the IP portion of the request “123.124.125.126” resolved by a DNS server to an information server at that IP address; that information server might in turn further parse the http request for the “/myInformation.html” portion of the request and resolve it to a location in memory containing the information “myInformation.html.” Additionally, other information serving protocols may be employed across various ports, e.g., FTP communications across port 21, and/or the like. An information server may communicate to and/or with other components in a component collection, including itself, and/or facilities of the like. Most frequently, the information server communicates with the MCB-Platform database 5119, operating systems, other program components, user interfaces, Web browsers, and/or the like.
Access to the MCB-Platform database may be achieved through a number of database bridge mechanisms such as through scripting languages as enumerated below (e.g., CGI) and through inter-application communication channels as enumerated below (e.g., CORBA, WebObjects, etc.). Any data requests through a Web browser are parsed through the bridge mechanism into appropriate grammars as required by the MCB-Platform. In one embodiment, the information server would provide a Web form accessible by a Web browser. Entries made into supplied fields in the Web form are tagged as having been entered into the particular fields, and parsed as such. The entered terms are then passed along with the field tags, which act to instruct the parser to generate queries directed to appropriate tables and/or fields. In one embodiment, the parser may generate queries in standard SQL by instantiating a search string with the proper join/select commands based on the tagged text entries, wherein the resulting command is provided over the bridge mechanism to the MCB-Platform as a query. Upon generating query results from the query, the results are passed over the bridge mechanism, and may be parsed for formatting and generation of a new results Web page by the bridge mechanism. Such a new results Web page is then provided to the information server, which may supply it to the requesting Web browser.
Also, an information server may contain, communicate, generate, obtain, and/or provide program component, system, user, and/or data communications, requests, and/or responses.
Computer interfaces in some respects are similar to automobile operation interfaces. Automobile operation interface elements such as steering wheels, gearshifts, and speedometers facilitate the access, operation, and display of automobile resources, and status. Computer interaction interface elements such as check boxes, cursors, menus, scrollers, and windows (collectively and commonly referred to as widgets) similarly facilitate the access, capabilities, operation, and display of data and computer hardware and operating system resources, and status. Operation interfaces are commonly called user interfaces. Graphical user interfaces (GUIs) such as the Apple Macintosh Operating System's Aqua, IBM's OS/2, Microsoft's Windows 2000/2003/3.1/95/98/CE/Millenium/NT/XP/Vista/7 (i.e., Aero), Unix's X-Windows (e.g., which may include additional Unix graphic interface libraries and layers such as K Desktop Environment (KDE), mythTV and GNU Network Object Model Environment (GNOME)), web interface libraries (e.g., ActiveX, AJAX, (D)HTML, FLASH, Java, JavaScript, etc. interface libraries such as, but not limited to, Dojo, jQuery(UI), MooTools, Prototype, script.aculo.us, SWFObject, Yahoo! User Interface, any of which may be used and) provide a baseline and means of accessing and displaying information graphically to users.
A user interface component 5117 is a stored program component that is executed by a CPU. The user interface may be a conventional graphic user interface as provided by, with, and/or atop operating systems and/or operating environments such as already discussed. The user interface may allow for the display, execution, interaction, manipulation, and/or operation of program components and/or system facilities through textual and/or graphical facilities. The user interface provides a facility through which users may affect, interact, and/or operate a computer system. A user interface may communicate to and/or with other components in a component collection, including itself, and/or facilities of the like. Most frequently, the user interface communicates with operating systems, other program components, and/or the like. The user interface may contain, communicate, generate, obtain, and/or provide program component, system, user, and/or data communications, requests, and/or responses.
A Web browser component 5118 is a stored program component that is executed by a CPU. The Web browser may be a conventional hypertext viewing application such as Microsoft Internet Explorer or Netscape Navigator. Secure Web browsing may be supplied with 128 bit (or greater) encryption by way of HTTPS, SSL, and/or the like. Web browsers allowing for the execution of program components through facilities such as ActiveX, AJAX, (D)HTML, FLASH, Java, JavaScript, web browser plug-in APIs (e.g., FireFox, Safari Plug-in, and/or the like APIs), and/or the like. Web browsers and like information access tools may be integrated into PDAs, cellular telephones, and/or other mobile devices. A Web browser may communicate to and/or with other components in a component collection, including itself, and/or facilities of the like. Most frequently, the Web browser communicates with information servers, operating systems, integrated program components (e.g., plug-ins), and/or the like; e.g., it may contain, communicate, generate, obtain, and/or provide program component, system, user, and/or data communications, requests, and/or responses. Also, in place of a Web browser and information server, a combined application may be developed to perform similar operations of both. The combined application would similarly affect the obtaining and the provision of information to users, user agents, and/or the like from the MCB-Platform enabled nodes. The combined application may be nugatory on systems employing standard Web browsers.
A mail server component 5121 is a stored program component that is executed by a CPU 5103. The mail server may be a conventional Internet mail server such as, but not limited to sendmail, Microsoft Exchange, and/or the like. The mail server may allow for the execution of program components through facilities such as ASP, ActiveX, (ANSI) (Objective-) C (++), C# and/or .NET, CGI scripts, Java, JavaScript, PERL, PHP, pipes, Python, WebObjects, and/or the like. The mail server may support communications protocols such as, but not limited to: Internet message access protocol (IMAP), Messaging Application Programming Interface (MAPI)/Microsoft Exchange, post office protocol (POP3), simple mail transfer protocol (SMTP), and/or the like. The mail server can route, forward, and process incoming and outgoing mail messages that have been sent, relayed and/or otherwise traversing through and/or to the MCB-Platform.
Access to the MCB-Platform mail may be achieved through a number of APIs offered by the individual Web server components and/or the operating system.
Also, a mail server may contain, communicate, generate, obtain, and/or provide program component, system, user, and/or data communications, requests, information, and/or responses.
A mail client component 5122 is a stored program component that is executed by a CPU 5103. The mail client may be a conventional mail viewing application such as Apple Mail, Microsoft Entourage, Microsoft Outlook, Microsoft Outlook Express, Mozilla, Thunderbird, and/or the like. Mail clients may support a number of transfer protocols, such as: IMAP, Microsoft Exchange, POP3, SMTP, and/or the like. A mail client may communicate to and/or with other components in a component collection, including itself, and/or facilities of the like. Most frequently, the mail client communicates with mail servers, operating systems, other mail clients, and/or the like; e.g., it may contain, communicate, generate, obtain, and/or provide program component, system, user, and/or data communications, requests, information, and/or responses. Generally, the mail client provides a facility to compose and transmit electronic mail messages.
A cryptographic server component 5120 is a stored program component that is executed by a CPU 5103, cryptographic processor 5126, cryptographic processor interface 5127, cryptographic processor device 5128, and/or the like. Cryptographic processor interfaces will allow for expedition of encryption and/or decryption requests by the cryptographic component; however, the cryptographic component, alternatively, may run on a conventional CPU. The cryptographic component allows for the encryption and/or decryption of provided data. The cryptographic component allows for both symmetric and asymmetric (e.g., Pretty Good Protection (PGP)) encryption and/or decryption. The cryptographic component may employ cryptographic techniques such as, but not limited to: digital certificates (e.g., X.509 authentication framework), digital signatures, dual signatures, enveloping, password access protection, public key management, and/or the like. The cryptographic component will facilitate numerous (encryption and/or decryption) security protocols such as, but not limited to: checksum, Data Encryption Standard (DES), Elliptical Curve Encryption (ECC), International Data Encryption Algorithm (IDEA), Message Digest 5 (MD5, which is a one way hash operation), passwords, Rivest Cipher (RC5), Rijndael, RSA (which is an Internet encryption and authentication system that uses an algorithm developed in 1977 by Ron Rivest, Adi Shamir, and Leonard Adleman), Secure Hash Algorithm (SHA), Secure Socket Layer (SSL), Secure Hypertext Transfer Protocol (HTTPS), and/or the like. Employing such encryption security protocols, the MCB-Platform may encrypt all incoming and/or outgoing communications and may serve as node within a virtual private network (VPN) with a wider communications network. The cryptographic component facilitates the process of “security authorization” whereby access to a resource is inhibited by a security protocol wherein the cryptographic component effects authorized access to the secured resource. In addition, the cryptographic component may provide unique identifiers of content, e.g., employing and MD5 hash to obtain a unique signature for an digital audio file. A cryptographic component may communicate to and/or with other components in a component collection, including itself, and/or facilities of the like. The cryptographic component supports encryption schemes allowing for the secure transmission of information across a communications network to enable the MCB-Platform component to engage in secure transactions if so desired. The cryptographic component facilitates the secure accessing of resources on the MCB-Platform and facilitates the access of secured resources on remote systems; i.e., it may act as a client and/or server of secured resources. Most frequently, the cryptographic component communicates with information servers, operating systems, other program components, and/or the like. The cryptographic component may contain, communicate, generate, obtain, and/or provide program component, system, user, and/or data communications, requests, and/or responses.
The MCB-Platform database component 5119 may be embodied in a database and its stored data. The database is a stored program component, which is executed by the CPU; the stored program component portion configuring the CPU to process the stored data. The database may be a conventional, fault tolerant, relational, scalable, secure database such as Oracle or Sybase. Relational databases are an extension of a flat file. Relational databases consist of a series of related tables. The tables are interconnected via a key field. Use of the key field allows the combination of the tables by indexing against the key field; i.e., the key fields act as dimensional pivot points for combining information from various tables. Relationships generally identify links maintained between tables by matching primary keys. Primary keys represent fields that uniquely identify the rows of a table in a relational database. More precisely, they uniquely identify rows of a table on the “one” side of a one-to-many relationship.
Alternatively, the MCB-Platform database may be implemented using various standard data-structures, such as an array, hash, (linked) list, struct, structured text file (e.g., XML), table, and/or the like. Such data-structures may be stored in memory and/or in (structured) files. In another alternative, an object-oriented database may be used, such as Frontier, ObjectStore, Poet, Zope, and/or the like. Object databases can include a number of object collections that are grouped and/or linked together by common attributes; they may be related to other object collections by some common attributes. Object-oriented databases perform similarly to relational databases with the exception that objects are not just pieces of data but may have other types of capabilities encapsulated within a given object. If the MCB-Platform database is implemented as a data-structure, the use of the MCB-Platform database 5119 may be integrated into another component such as the MCB-Platform component 5135. Also, the database may be implemented as a mix of data structures, objects, and relational structures. Databases may be consolidated and/or distributed in countless variations through standard data processing techniques. Portions of databases, e.g., tables, may be exported and/or imported and thus decentralized and/or integrated.
In one embodiment, the database component 5119 includes several tables 5119a-u. A Users table 5119a may include fields such as, but not limited to: user_id, ssn, dob, first_name, last_name, address, age, state, address_firstline, address_secondline, zipcode, application_id, application_type, exchange_preferences_list, exchange_preferences_values, devices_list, user_accounts_list, user_passwords_list, security_level, and/or the like. The Users table may support and/or track multiple entity accounts on a MCB-Platform. A confidence score table 5119b includes fields such as, but not limited to: merchant_id, data_source, source_ip, merchant_info, confidence_score, score_timestamp, score_status, activity_status, and/or the like. An Exchanges table 5119c may include fields such as, but not limited to: user_id, currency_type, currency_id, currency_name, currency_float_flag, currency exchange_restrictions, unit_currency_value, exchange_rate, exchange_refresh_rate, baseline_rate, market_symbol, market_name, exchange_rate_startdate, exchange_rate_enddate, base_currency, and/or the like. A Merchants/provider table 5119d may include fields such as, but not limited to: provider_id, program_name, address_firstline, address_secondline, zipcode, application_id, application_type, exchange_preferences_list, exchange_preferences_values, devices_list, registered_users_list, currency_type and/or the like. A Banks/issuer table 5119e includes fields such as, but not limited to: bank_id, bank_bame, aba_number, routing_number, micr, branch_name, branch_code, address_first_line, address_secondline, zipcode, issuer address, ip_address, mac_address, auth_key, port_num, security settings_list, and/or the like. A rules and restrictions table 5119f includes fields such as, but not limited to: rules_ID, rulesrestriction_list, and/or the like. An accounts table 5119g includes fields such as, but not limited to: user_ID, program_ID, enrolled status, points_balance, last_update_date, account_number, account_security_code, account_name, issuer_acquirer_flag, issuer_name, acquirer_name, account_address, routing_number, access_API_call, linked_wallets_list, and/or the like. An exchange rates table 5119h includes fields such as, but not limited to: program_ID, base_currency, exchangerate, date, and/or the like. A payment devices/cards table 5119i includes fields such as, but not limited to: user_ID, payment_device_type, payment_device_identifier, payment_device_securitycode, billing_address, bank_account_number, and/or the like. An analytics table 5119j includes fields such as, but not limited to: program_ID, user_ID, transaction_volume, time_period, and/or the like. A programs table 5119k includes fields such as, but not limited to program_ID, rules_ID, notallowedprogram_IDs, preferred_program_IDs, normal_exchange_rate, preferred_exchange_rate, and/or the like. A Web Data table 5119l includes fields such as, but not limited to: web_data_feed_ID, web_data_source, web_URL, web_image, web_content, web_content_URL, web_viewing_status, and/or the like. An Acquirers table 5119m may include fields such as, but not limited to: merchant_ID, account_firstname, account_lastname, account_type, account_num, account_balance_list, billingaddress_liner, billingaddress_line2, billing_zipcode, billing_state, shipping_preferences, shippingaddress_line1, shippingaddress_line2, shipping_zipcode, shipping_state, and/or the like. A Pay Gateways table 5119n may include fields such as, but not limited to: gateway_ID, gateway_IP, gateway_MAC, gateway_secure_key, gateway_access_list, gateway_API_call_list, gateway_services_list, and/or the like. A Transactions table 51190 may include fields such as, but not limited to: order_id, user_id, timestamp, transaction cost, purchase details_list, num_products, products_list, product_type, product_params_list, product_title, product_summary, quantity, user_id, client_id, client_ip, client_type, client_model, operating_system, os_version, app_installed_flag, user_id, account_firstname, account_lastname, account_type, account_num, account_priority_account_ratio, billingaddress_line1, billingaddress_line2, billing_zipcode, billing_state, shipping_preferences, shippingaddress_line1, shippingaddress_line2, shipping_zipcode, shipping_state, merchant_id, merchant_name, merchant_auth_key, and/or the like. A Batches table 5119p may include fields such as, but not limited to: batch_id, transaction_id_list, timestamp_list, cleared_flag_list, clearance_trigger settings, and/or the like. A Ledgers table 5119q may include fields such as, but not limited to: request_id, timestamp, deposit amount, batch_id, transaction_id, clear_flag, deposit_account, transaction summary, payor_name, payor_account, and/or the like. A Products table 5119r may include fields such as, but not limited to: product_ID, product_title, product_attributes_list, product_price, tax_info_list, related_products_list, offers_list, discounts_list, rewards_list, merchants_list, merchant_availability_list, and/or the like. An Offers table 5119s may include fields such as, but not limited to: offer_ID, offer_title, offer attributes_list, offer_price, offer_expiry, related_products_list, discounts_list, rewards_list, merchants_list, merchant_availability_list, and/or the like. An Apps table 5119t may include fields such as, but not limited to: app_ID, app_name, app_type, app_dependencies, and/or the like. A value card table 5119u may include fields such as, but not limited to: value_card_ID, value_amount, tracking_equivalent_amount, source_user_ID, destination_user_ID, current_user_ID, and/or the like.
In one embodiment, the MCB-Platform database may interact with other database systems. For example, employing a distributed database system, queries and data access by search MCB-Platform component may treat the combination of the MCB-Platform database, an integrated data security layer database as a single database entity.
In one embodiment, user programs may contain various user interface primitives, which may serve to update the MCB-Platform. Also, various accounts may require custom database tables depending upon the environments and the types of clients the MCB-Platform may need to serve. It should be noted that any unique fields may be designated as a key field throughout. In an alternative embodiment, these tables have been decentralized into their own databases and their respective database controllers (i.e., individual database controllers for each of the above tables). Employing standard data processing techniques, one may further distribute the databases over several computer systemizations and/or storage devices. Similarly, configurations of the decentralized database controllers may be varied by consolidating and/or distributing the various database components 5119a-u. The MCB-Platform may be configured to keep track of various settings, inputs, and parameters via database controllers.
The MCB-Platform database may communicate to and/or with other components in a component collection, including itself, and/or facilities of the like. Most frequently, the MCB-Platform database communicates with the MCB-Platform component, other program components, and/or the like. The database may contain, retain, and provide information regarding other nodes and data.
The MCB-Platform component 5135 is a stored program component that is executed by a CPU. In one embodiment, the MCB-Platform component incorporates any and/or all combinations of the aspects of the MCB-Platform that was discussed in the previous figures. As such, the MCB-Platform affects accessing, obtaining and the provision of information, services, transactions, and/or the like across various communications networks.
The MCB-Platform transforms various activity requests (e.g., transaction request, merchant information update request, offer issuance request, etc.) via MCB-Platform components, such as but not limited to web claw component 5149, offer bridging component 5150, scoring component 5151, DB update component 5152 and centralized personal information platform component 5153 into transaction records and merchant database updates outputs. In other embodiments, the MCB-Platform transforms value exchange requests via CLGC-MCB-Platform 5144, GC-MCB-Platform 5145, SD-MCB-Platform 5146, EVD 5147, CE-MCB-Platform 5148 into currency exchanges outputs. In one embodiment, the MCB-Platform component 5135 takes inputs (e.g., checkout request 4511; product data 4515; wallet access input 4711; transaction authorization input 4714; payment gateway address 4718; payment network address 4722; issuer server address(es) 4725; funds authorization request(s) 476; user(s) account(s) data 4728; batch data 4912; payment network address 4916; issuer server address(es) 4924; individual payment request 4925; payment ledger, merchant account data 4931; and/or the like) etc., and transforms the inputs via various components (e.g., UPC 5141; PTA 5142; PTC 5143; and/or the like), into outputs (e.g., checkout request message 4513; checkout data 4517; card authorization request 4716, 4723; funds authorization response(s) 4730; transaction authorization response 4732; batch append data 4734; purchase receipt 4735; batch clearance request 4914; batch payment request 4918; transaction data 4920; individual payment confirmation 4928, 4929; updated payment ledger, merchant account data 4933; and/or the like).
The MCB-Platform component enabling access of information between nodes may be developed by employing standard development tools and languages such as, but not limited to: Apache components, Assembly, ActiveX, binary executables, (ANSI) (Objective-) C (++), C# and/or .NET, database adapters, CGI scripts, Java, JavaScript, mapping tools, procedural and object oriented development tools, PERL, PHP, Python, shell scripts, SQL commands, web application server extensions, web development environments and libraries (e.g., Microsoft's ActiveX; Adobe AIR, FLEX & FLASH; AJAX; (D)HTML; Dojo, Java; JavaScript; jQuery(UI); MooTools; Prototype; script.aculo.us; Simple Object Access Protocol (SOAP); SWFObject; Yahoo! User Interface; and/or the like), WebObjects, and/or the like. In one embodiment, the MCB-Platform server employs a cryptographic server to encrypt and decrypt communications. The MCB-Platform component may communicate to and/or with other components in a component collection, including itself, and/or facilities of the like. Most frequently, the MCB-Platform component communicates with the MCB-Platform database, operating systems, other program components, and/or the like. The MCB-Platform may contain, communicate, generate, obtain, and/or provide program component, system, user, and/or data communications, requests, and/or responses.
The structure and/or operation of any of the MCB-Platform node controller components may be combined, consolidated, and/or distributed in any number of ways to facilitate development and/or deployment. Similarly, the component collection may be combined in any number of ways to facilitate deployment and/or development. To accomplish this, one may integrate the components into a common code base or in a facility that can dynamically load the components on demand in an integrated fashion.
The component collection may be consolidated and/or distributed in countless variations through standard data processing and/or development techniques. Multiple instances of any one of the program components in the program component collection may be instantiated on a single node, and/or across numerous nodes to improve performance through load-balancing and/or data-processing techniques. Furthermore, single instances may also be distributed across multiple controllers and/or storage devices; e.g., databases. All program component instances and controllers working in concert may do so through standard data processing communication techniques.
The configuration of the MCB-Platform controller will depend on the context of system deployment. Factors such as, but not limited to, the budget, capacity, location, and/or use of the underlying hardware resources may affect deployment requirements and configuration. Regardless of if the configuration results in more consolidated and/or integrated program components, results in a more distributed series of program components, and/or results in some combination between a consolidated and distributed configuration, data may be communicated, obtained, and/or provided. Instances of components consolidated into a common code base from the program component collection may communicate, obtain, and/or provide data. This may be accomplished through intra-application data processing communication techniques such as, but not limited to: data referencing (e.g., pointers), internal messaging, object instance variable communication, shared memory space, variable passing, and/or the like.
If component collection components are discrete, separate, and/or external to one another, then communicating, obtaining, and/or providing data with and/or to other component components may be accomplished through inter-application data processing communication techniques such as, but not limited to: Application Program Interfaces (API) information passage; (distributed) Component Object Model ((D)COM), (Distributed) Object Linking and Embedding ((D)OLE), and/or the like), Common Object Request Broker Architecture (CORBA), Jini local and remote application program interfaces, JavaScript Object Notation (JSON), Remote Method Invocation (RMI), SOAP, process pipes, shared files, and/or the like. Messages sent between discrete component components for inter-application communication or within memory spaces of a singular component for intra-application communication may be facilitated through the creation and parsing of a grammar. A grammar may be developed by using development tools such as lex, yacc, XML, and/or the like, which allow for grammar generation and parsing capabilities, which in turn may form the basis of communication messages within and between components.
For example, a grammar may be arranged to recognize the tokens of an HTTP post command, e.g.:
where Value1 is discerned as being a parameter because “http://” is part of the grammar syntax, and what follows is considered part of the post value. Similarly, with such a grammar, a variable “Value1” may be inserted into an “http://” post command and then sent. The grammar syntax itself may be presented as structured data that is interpreted and/or otherwise used to generate the parsing mechanism (e.g., a syntax description text file as processed by lex, yacc, etc.). Also, once the parsing mechanism is generated and/or instantiated, it itself may process and/or parse structured data such as, but not limited to: character (e.g., tab) delineated text, HTML, structured text streams, XML, and/or the like structured data. In another embodiment, inter-application data processing protocols themselves may have integrated and/or readily available parsers (e.g., JSON, SOAP, and/or like parsers) that may be employed to parse (e.g., communications) data. Further, the parsing grammar may be used beyond message parsing, but may also be used to parse: databases, data collections, data stores, structured data, and/or the like. Again, the desired configuration will depend upon the context, environment, and requirements of system deployment.
For example, in some implementations, the MCB-Platform controller may be executing a PHP script implementing a Secure Sockets Layer (“SSL”) socket server via the information sherver, which listens to incoming communications on a server port to which a client may send data, e.g., data encoded in JSON format. Upon identifying an incoming communication, the PHP script may read the incoming message from the client device, parse the received JSON-encoded text data to extract information from the JSON-encoded text data into PHP script variables, and store the data (e.g., client identifying information, etc.) and/or extracted information in a relational database accessible using the Structured Query Language (“SQL”). An exemplary listing, written substantially in the form of PHP/SQL commands, to accept JSON-encoded input data from a client device via a SSL connection, parse the data to extract variables, and store the data to a database, is provided below:
Also, the following resources may be used to provide example embodiments regarding SOAP parser implementation:
and other parser implementations:
all of which are hereby expressly incorporated by reference.
Additional embodiments of MCB-Platform universal value equivalents may further include:
1. A universal value exchange processor-implemented method embodiment to transform value equivalent exchange instructions into cross-ecosystem currency exchanges, comprising:
2. The embodiment of claim 1, wherein the currency exchange flow paths are generated based on the currency exchange restrictions and conditions associated with the sources.
3. The embodiment of claim 1, further comprising automatically selecting a currency exchange flow path from the generated currency exchange flow paths based on exchange rates between the sources and the destinations.
4. The embodiment of claim 3, wherein said one of the destinations corresponds to the selected currency exchange flow path.
5. The embodiment of claim 1, further comprising selecting a currency exchange flow path from the generated currency exchange flow paths based on user preference.
6. The embodiment of claim 1, further comprising selecting a currency exchange flow path from the generated currency exchange flow paths based on affiliate relationship between the sources and the destinations.
7. The embodiment of claim 1, wherein determining the exchange rates of the currency types includes determining liquidity of the currency types.
8. The embodiment of claim 1, wherein the cross-ecosystem currency exchange instruction further comprises source currency amounts in accounts of the one or more sources.
9. The embodiment of claim 8, wherein the issued currency transfer requests to the sources include a request to deallocate the source currency amounts from the accounts of the one or more sources.
10. The embodiment of claim 8, wherein the issued currency transfer requests include a request to allocate an equivalent amount to an account corresponding to said one of the destinations.
11. The embodiment of claim 10, wherein the equivalent amount is determined by the exchange rates.
12. A universal value exchange system, comprising means to:
13. A processor-readable medium storing processor-issuable instructions to:
14. A universal value exchange apparatus, comprising:
a memory;
a processor disposed in communication with said memory, and configured to issue a plurality of processing instructions stored in the memory, wherein the processor issues instructions to:
15. A processor-implemented cross-ecosystem brokerage embodiment, comprising:
16. The embodiment of claim 15, wherein offer provider is an issuer of the first ecosystem currency.
17. The embodiment of claim 15, wherein the first, second and third ecosystem currencies are selected from a group consisting of: (i) loyalty program currency; (ii) virtual currency; and (iii) financial currency.
18. The embodiment of claim 15, wherein obtaining the authorization includes:
19. The embodiment of claim 15, wherein reducing the user's first ecosystem currency balance includes:
20. The embodiment of claim 15, wherein the cross-ecosystem exchange is executed on a third ecosystem having the third ecosystem currency.
21. The embodiment of claim 15, wherein the third amount charged to the offer provider is determined based on the first amount of the first ecosystem currency and the first exchange rate relative to the second ecosystem currency.
22. The embodiment of claim 15, wherein the received offer includes one or more rules and restrictions.
23. The embodiment of claim 22, further comprising:
24. The embodiment of claim 23, further comprising:
25. The embodiment of claim 15, wherein the offer provider is associated with a first ecosystem having the first ecosystem currency.
26. The embodiment of claim 25, wherein the first ecosystem has a bilateral relationship with a third ecosystem having the third ecosystem currency, allowing cross-ecosystem exchange between the first and third ecosystems.
27. The embodiment of claim 26, wherein the user is program member in third ecosystem.
28. A cross-ecosystem brokerage system, comprising means to:
29. A processor-readable medium storing processor-issuable instructions to:
30. A cross-ecosystem brokerage apparatus, comprising:
a memory;
a processor disposed in communication with said memory, and configured to issue a plurality of processing instructions stored in the memory, wherein the processor issues instructions to:
31. A processor-implemented gift card exchange and transaction facilitation embodiment, comprising:
32. The embodiment of claim 31, wherein the target gift card is associated with a second user associated with a complimentary request to transfer funds from a gift card issued by the second gift card issuer to a gift card issued by the first gift card issuer.
33. A processor-implemented gift card exchange and transaction facilitation embodiment, comprising:
34. A processor-implemented low-latency value equivalent exchange embodiment, comprising:
receiving a specified consumer value equivalent swap request to exchange a value source for a value substitute as part of a purchase transaction;
determining a conversion exchange rate and amount of a denomination amount specified in the swap request from the value source to a denomination amount specified in the swap request for the value substitute;
identifying, within a low-latency purchase transaction time-frame, a target source for the value substitute having sufficient value to supply the swap request based on the determined conversion exchange rate and amount;
associating the value source with a holder of the target source by modifying a value source record;
associating the target source with the holder of the value source by modifying the value source record;
deallocating the determined conversion rate and amount specified in the swap request for the value source holder and allocating it to the target source holder by modifying the value source record to reduce network transactions and decrease network and transaction latency; and
charging the determined conversion rate and amount specified in the swap request to the target source to assist the payment of the purchase transaction for the value source holder by using target source account information from a target source record to decrease network and transaction latency.
Further embodiments of the MCB-Platform illustrating a centralized information scoring may comprise:
A centralized personal information platform processor-implemented method, comprising: aggregating data records including search results, purchase transaction data, service usage data, service enrollment data, and social data; identifying data field types within the data records and their associated data values; identifying an entity from the data field types and their associated data values; generating, via a processor, correlations of the entity to other entities identifiable from the data field types and their associated data values; associating, via the processor, attributes to the entity by drawing inferences related to the entity from the data field types and their associated data values; generating an updated profile and social graph of the entity using the generated correlations and associated attributes; and providing the updated profile and social graph for an automated web form filling request.
Further embodiments of the MCB-Platform may comprise the following:
1. A merchant consumer bridging low-latency processor-implemented method embodiment, comprising:
receiving an activity request including merchant information associated with a merchant;
retrieving a previously stored merchant record from a database;
determining merchant information update indicia based on a comparison of the merchant information and the previously stored merchant record;
determining a confidence metric for the merchant information update;
retrieving a confidence requirement based on the activity request;
determining, within a low-latency processing time-frame, whether the determined confidence metric satisfies the retrieved confidence requirement;
performing the requested activity and updating the previously stored merchant record with the merchant information update indicia when the determined confidence metric satisfies the retrieved confidence requirement; and
declining the activity request when the determined confidence metric satisfies the retrieved confidence requirement.
2. The method embodiment of embodiment 1, wherein the activity request comprises any of a transaction payment request, a merchant database update request, and an offer issuance request.
3. The method embodiment of embodiment 1, wherein the activity request is received from a merchant point of sale terminal.
4. The method embodiment of embodiment 2, wherein the transaction payment request further comprises consumer wallet information.
5. The method embodiment of embodiment 1, wherein the merchant record comprises any of a merchant ID, merchant address, merchant inventory, merchant alias, and merchant name.
6. The method embodiment of embodiment 1, wherein the merchant record comprises any of a merchant URL, merchant web server ID, and merchant web server address.
7. The method embodiment of embodiment 1, further comprising:
forming a query on the merchant database based on a merchant ID.
8. The method embodiment of embodiment 1, wherein merchant information update indicia comprises an inconsistent data field between the received merchant information and the previously stored merchant record.
9. The method embodiment of embodiment 1, wherein the confidence metric comprise a numeric value.
10. The method embodiment of embodiment 1, wherein the confidence metric is determined by a scoring component.
11. The method embodiment of embodiment 10, wherein the scoring component receives a variety of merchant related information.
12. The method embodiment of embodiment 11, wherein the variety of merchant related information comprises web claws from merchant websites.
13. The method embodiment of embodiment 11, wherein the variety of merchant related information comprises merchant statistics.
14. The method embodiment of embodiment 11, wherein the variety of merchant related information comprises prior transaction history with the merchant.
15. The method embodiment of embodiment 11, wherein the scoring component generate the confidence metric based on the received variety of merchant related information, wherein the confidence metric is indicative of a confidence level of accuracy of the merchant information update indicia.
16. The method embodiment of embodiment 1, wherein the confidence requirement comprises a numeric confidence metric threshold.
17. The method embodiment of embodiment 1, wherein the confidence requirement is dependent on the activity type.
18. The method embodiment of embodiment 1, wherein the confidence requirement comprises a threshold value of 0.8 to allow a transaction request.
19. The method embodiment of embodiment 1, wherein the confidence requirement comprises a threshold value of 0.5 to allow an offer issuance request.
20. The method embodiment of embodiment 1, wherein the confidence requirement comprises a threshold value of 0.5 to allow a merchant record update request.
21. A merchant consumer bridging system embodiment, comprising:
a memory;
a processor disposed in communication with said memory, and configured to issue a plurality of processing instructions stored in the memory, wherein the processor issues instructions to:
receive an activity request including merchant information associated with a merchant;
retrieve a previously stored merchant record from a database;
determine merchant information update indicia based on a comparison of the merchant information and the previously stored merchant record;
determine a confidence metric for the merchant information update;
retrieve a confidence requirement based on the activity request;
determine, within a low-latency processing time-frame, whether the determined confidence metric satisfies the retrieved confidence requirement;
perform the requested activity and updating the previously stored merchant record with the merchant information update indicia when the determined confidence metric satisfies the retrieved confidence requirement; and
decline the activity request when the determined confidence metric satisfies the retrieved confidence requirement.
22. The system embodiment of embodiment 21, wherein the activity request comprises any of a transaction payment request, a merchant database update request, and an offer issuance request.
23. The system embodiment of embodiment 21, wherein the activity request is received from a merchant point of sale terminal.
24. The system embodiment of embodiment 22, wherein the transaction payment request further comprises consumer wallet information
25. The system embodiment of embodiment 21, wherein the merchant record comprises any of a merchant ID, merchant address, merchant inventory, merchant alias, and merchant 26. The system embodiment of embodiment 21, wherein the merchant record comprises any of a merchant URL, merchant web server ID, and merchant web server address.
27. The system embodiment of embodiment 21, wherein the processor further issues instructions to:
form a query on the merchant database based on a merchant ID.
28. The system embodiment of embodiment 21, wherein merchant information update indicia comprises an inconsistent data field between the received merchant information and the previously stored merchant record.
29. The system embodiment of embodiment 21, wherein the confidence metric comprise a numeric value.
30. The system embodiment of embodiment 21, wherein the confidence metric is determined by a scoring component.
31. The system embodiment of embodiment 30, wherein the scoring component receives a variety of merchant related information.
32. The system embodiment of embodiment 31, wherein the variety of merchant related information comprises web claws from merchant websites.
33. The system embodiment of embodiment 31, wherein the variety of merchant related information comprises merchant statistics.
34. The system embodiment of embodiment 31, wherein the variety of merchant related information comprises prior transaction history with the merchant.
35. The system embodiment of embodiment 31, wherein the scoring component generate the confidence metric based on the received variety of merchant related information, wherein the confidence metric is indicative of a confidence level of accuracy of the merchant information update indicia.
36. The system embodiment of embodiment 21, wherein the confidence requirement comprises a numeric confidence metric threshold.
37. The system embodiment of embodiment 21, wherein the confidence requirement is dependent on the activity type.
38. The system embodiment of embodiment 21, wherein the confidence requirement comprises a threshold value of 0.8 to allow a transaction request.
39. The system embodiment of embodiment 21, wherein the confidence requirement comprises a threshold value of 0.5 to allow an offer issuance request.
40. The system embodiment of embodiment 21, wherein the confidence requirement comprises a threshold value of 0.5 to allow a merchant record update request.
41. A merchant consumer bridging processor-readable storage medium embodiment storing processor-executable instructions executable by a processor to:
receive an activity request including merchant information associated with a merchant;
retrieve a previously stored merchant record from a database;
determine merchant information update indicia based on a comparison of the merchant information and the previously stored merchant record;
determine a confidence metric for the merchant information update;
retrieve a confidence requirement based on the activity request;
determine, within a low-latency processing time-frame, whether the determined confidence metric satisfies the retrieved confidence requirement;
perform the requested activity and updating the previously stored merchant record with the merchant information update indicia when the determined confidence metric satisfies the retrieved confidence requirement; and
decline the activity request when the determined confidence metric satisfies the retrieved confidence requirement.
42. The medium embodiment of embodiment 41, wherein the activity request comprises any of a transaction payment request, a merchant database update request, and an offer issuance request.
43. The medium embodiment of embodiment 41, wherein the activity request is received from a merchant point of sale terminal.
44. The medium embodiment of embodiment 42, wherein the transaction payment request further comprises consumer wallet information.
45. The medium embodiment of embodiment 41, wherein the merchant record comprises any of a merchant ID, merchant address, merchant inventory, merchant alias, and merchant name.
46. The medium embodiment of embodiment 41, wherein the merchant record comprises any of a merchant URL, merchant web server ID, and merchant web server address.
47. The medium embodiment of embodiment 41, wherein the processor further issues instructions to:
form a query on the merchant database based on a merchant ID.
48. The medium embodiment of embodiment 41, wherein merchant information update indicia comprises an inconsistent data field between the received merchant information and the previously stored merchant record.
49. The medium embodiment of embodiment 41, wherein the confidence metric comprise a numeric value.
50. The medium embodiment of embodiment 41, wherein the confidence metric is determined by a scoring component.
51. The system embodiment of embodiment 50, wherein the scoring
component receives a variety of merchant related information.
52. The system embodiment of embodiment 51, wherein the variety of merchant related information comprises web claws from merchant websites.
53 The system embodiment of embodiment 51, wherein the variety of merchant related information comprises merchant statistics.
54 The system embodiment of embodiment 51, wherein the variety of merchant related information comprises prior transaction history with the merchant.
55. The system embodiment of embodiment 51, wherein the scoring component generate the confidence metric based on the received variety of merchant related information, wherein the confidence metric is indicative of a confidence level of accuracy of the merchant information update indicia.
56 The medium embodiment of embodiment 41, wherein the confidence requirement comprises a numeric confidence metric threshold.
57. The medium embodiment of embodiment 41, wherein the confidence requirement is dependent on the activity type.
58. The medium embodiment of embodiment 41, wherein the confidence requirement comprises a threshold value of 0.8 to allow a transaction request.
59. The medium embodiment of embodiment 41, wherein the confidence requirement comprises a threshold value of 0.5 to allow an offer issuance request.
60. The medium embodiment of embodiment 41, wherein the confidence requirement comprises a threshold value of 0.5 to allow a merchant record update request.
61. A merchant-consumer bridging processor-implemented method embodiment to transform consumer and merchant registration information to product purchase transaction, comprising:
receiving consumer indentifying information from a consumer electronic wallet vehicle;
receiving merchant information and a proposed transaction from a merchant terminal;
verifying consumer and merchant qualification to engage in the proposed transaction;
initiating consumer payment by sending a payment approval to an electronic wallet account; and
completing the proposed transaction by sending an approval to the merchant terminal.
62. A merchant-consumer bridging processor-implemented method embodiment to transform consumer and merchant registration information to product purchase transaction, comprising:
receiving information related to consumer opt-in activities of a consumer from a merchant;
retrieve a record of merchant offers;
generating a query based on the received information on the record of merchant offers;
obtaining a list of matched offers from the query; and
sending the list of matched offers to the consumer.
In order to address various issues and advance the art, the entirety of this application for MERCHANT-CONSUMER BRIDGING PLATFORM APPARATUSES, METHODS AND SYSTEMS (including the Cover Page, Title, Headings, Field, Background, Summary, Brief Description of the Drawings, Detailed Description, Claims, Abstract, Figures, Appendices, and otherwise) shows, by way of illustration, various embodiments in which the claimed innovations may be practiced. The advantages and features of the application are of a representative sample of embodiments only, and are not exhaustive and/or exclusive. They are presented only to assist in understanding and teach the claimed principles. It should be understood that they are not representative of all claimed innovations. As such, certain aspects of the disclosure have not been discussed herein. That alternate embodiments may not have been presented for a specific portion of the innovations or that further undescribed alternate embodiments may be available for a portion is not to be considered a disclaimer of those alternate embodiments. It will be appreciated that many of those undescribed embodiments incorporate the same principles of the innovations and others are equivalent. Thus, it is to be understood that other embodiments may be utilized and functional, logical, operational, organizational, structural and/or topological modifications may be made without departing from the scope and/or spirit of the disclosure. As such, all examples and/or embodiments are deemed to be non-limiting throughout this disclosure. Also, no inference should be drawn regarding those embodiments discussed herein relative to those not discussed herein other than it is as such for purposes of reducing space and repetition. For instance, it is to be understood that the logical and/or topological structure of any combination of any program components (a component collection), other components and/or any present feature sets as described in the figures and/or throughout are not limited to a fixed operating order and/or arrangement, but rather, any disclosed order is exemplary and all equivalents, regardless of order, are contemplated by the disclosure. Furthermore, it is to be understood that such features are not limited to serial execution, but rather, any number of threads, processes, services, servers, and/or the like that may execute asynchronously, concurrently, in parallel, simultaneously, synchronously, and/or the like are contemplated by the disclosure. As such, some of these features may be mutually contradictory, in that they cannot be simultaneously present in a single embodiment. Similarly, some features are applicable to one aspect of the innovations, and inapplicable to others. In addition, the disclosure includes other innovations not presently claimed. Applicant reserves all rights in those presently unclaimed innovations including the right to claim such innovations, file additional applications, continuations, continuations in part, divisions, and/or the like thereof. As such, it should be understood that advantages, embodiments, examples, functional, features, logical, operational, organizational, structural, topological, and/or other aspects of the disclosure are not to be considered limitations on the disclosure as defined by the claims or limitations on equivalents to the claims. It is to be understood that, depending on the particular needs and/or characteristics of a MCB-Platform individual and/or enterprise user, database configuration and/or relational model, data type, data transmission and/or network framework, syntax structure, and/or the like, various embodiments of the MCB-Platform, may be implemented that enable a great deal of flexibility and customization. For example, aspects of the MCB-Platform may be adapted for exchanging securities, rights, obligations, debt, and/or the like. While various embodiments and discussions of the MCB-Platform have been directed to currency exchange, however, it is to be understood that the embodiments described herein may be readily configured and/or customized for a wide variety of other applications and/or implementations.
Applicant hereby claims priority under 35 USC §119 for U.S. provisional patent application Ser. No. 61/439,879, filed Feb. 5, 2011, entitled “Apparatuses, Methods And Systems For A Merchant-Consumer Bridging Platform,” attorney docket no. P-42003PRV|20270-102PV, and U.S. provisional patent application Ser. No. 61/444,100, filed Feb. 17, 2011, entitled “Apparatuses, Methods And Systems For A Universal Value Exchange Merchant-Consumer Bridging Platform,” attorney docket no. P-42012PRV|20270-125PV. The instant application is related to PCT application serial no. ______ filed Feb. 3, 2012, entitled “Merchant-Consumer Bridging Platform Apparatuses, Methods And Systems,” attorney docket no. P-42003WO01|20270-102PC. The entire contents of the aforementioned applications are herein expressly incorporated by reference.
Number | Date | Country | |
---|---|---|---|
61439879 | Feb 2011 | US | |
61444100 | Feb 2011 | US |