STORED-VALUE CARD TRANSFER AGENT
A stored-value card transfer agent includes a database and a card processor. The card processor receives from a wallet client a request identifying a transfer amount, confirms from the database that a balance value in a ledger associated with the client at least equals the transfer amount, reduces the balance value by the transfer amount, adds an additional ledger to the database, updates the balance value thereof to equal the transfer amount, and uniquely associates the additional ledger with a transferee. The card processor also receives a request identifying a withdrawal amount, confirms that a balance value in the additional ledger at least equals the withdrawal amount, reduces by the withdrawal amount the balance value in the additional ledger, and initiates a funds transfer of the withdrawal amount from a first account maintained by a computer server to a second account associated with the transferee.
1 . A stored-value card transfer agent comprising:
a computer memory storing a database, the database storing a plurality of ledgers each uniquely associated with a respective wallet client in the database, each said ledger storing a respective current balance value; and
a card processor coupled to the computer memory and configured to:
receive from one of the wallet clients via a communications network a payment transfer request identifying a transfer amount and particulars of a transferee;
retrieve from the database the current balance value in the ledger uniquely associated with the one wallet client, confirm that the current balance value is at least equal to the transfer amount, reduce the current balance value in the ledger by the transfer amount, add to the database an additional one of the ledgers, update the current balance value of the additional one ledger to equal the transfer amount, and in the database uniquely associate the additional one ledger with the transferee;
receive from a communications device, via the communications network, a withdrawal request identifying a withdrawal amount; and
retrieve from the database the current balance value in the additional one ledger uniquely associated with the transferee, confirm that the current balance value in the additional one ledger is at least equal to the withdrawal amount, reduce by the withdrawal amount the current balance value in the additional one ledger, and initiate an electronic funds transfer of the withdrawal amount from a first account maintained by a computer server to a second account associated with the transferee by transmitting to the computer server a funds transfer request identifying the withdrawal amount.
2 . The stored-value card funds transfer agent according to claim 1 , wherein the card processor is configured to uniquely associate the additional one ledger with the transferee by:
saving in the database a temporary identifier in association with the additional one ledger;
providing the transferee with the temporary identifier;
receiving a finalize account request from another one of the wallet clients, the finalize account request including the temporary identifier;
locating the additional one ledger in the database from the temporary identifier;
saving a device identifier in the database in association with the additional one ledger; and
configuring the another one wallet client with the device identifier, the device identifier being uniquely associated with the another one wallet client.
3 . The stored-value card transfer agent according to claim 1 , wherein the card processor is configured to add the additional one ledger to the database by (i) transmitting to a stored-value card network a stored-value card token request message, the stored-value card token request message including a nil payment amount and requesting a stored-value card identifier uniquely associated with the nil payment amount and a stored-value card account maintained by the stored-value card network, (ii) receiving the stored-value card identifier from the stored-value card network, and (iii) configuring the stored-value card account with the stored-value card identifier and the nil payment amount.
4 . The stored-value card transfer agent according to claim 1 , wherein the card processor is configured to configure the plurality of ledgers by:
receiving from the one wallet client a transaction payment request identifying a payment amount and requesting authorization for an anonymous electronic payment with a point-of-sale terminal in the payment amount;
retrieving from the computer memory the current balance value in the ledger uniquely associated with the one wallet client;
confirming that the current balance value in the ledger uniquely associated with the one wallet client is at least equal to the payment amount;
reducing by the payment amount the current balance value in the ledger uniquely associated with the one wallet client; and
providing the authorization for an anonymous electronic payment by initiating an electronic funds transfer of the payment amount from the first account to a stored-value card account maintained by a stored-value card network, the first account having a balance amount at least equal to the payment amount.
5 . The stored-value card transfer agent according to claim 1 , wherein the card processor is configured to configure the plurality of ledgers by:
effecting an electronic funds transfer of a deposit amount to the first account; and
increasing by the deposit amount the current balance value in the ledger uniquely associated with the one wallet client.
6 . A method of transferring funds within a stored-value card network, comprising:
configuring in a computer memory a plurality of ledgers each uniquely associated with a respective wallet client in the computer memory, each said ledger storing a respective current balance value;
receiving from one of the wallet clients a payment transfer request identifying a transfer amount and particulars of a transferee;
retrieving from the computer memory the current balance value in the ledger uniquely associated with the one wallet client, confirming that the current balance value is at least equal to the transfer amount, reducing the current balance value in the ledger by the transfer amount, adding to the computer memory an additional one of the ledgers, updating the current balance value of the additional one ledger to equal the transfer amount, and in the computer memory uniquely associating the additional one ledger with the transferee;
receiving a withdrawal request from a communications device, the withdrawal request including a withdrawal amount; and
retrieving from the computer memory the current balance value in the additional one ledger uniquely associated with the transferee, confirming that the current balance value in the additional one ledger is at least equal to the withdrawal amount, reducing by the withdrawal amount the current balance value in the additional one ledger, and initiating an electronic funds transfer of the withdrawal amount from a first account maintained by a computer server to a second account associated with the transferee, the first account having a balance amount at least equal to the withdrawal amount, the initiating an electronic funds transfer of the withdrawal amount comprising transmitting to the computer server a funds transfer request identifying the withdrawal amount.
7 . The method according to claim 6 , wherein the uniquely associating the additional one ledger with the transferee comprises:
saving in the computer memory a temporary identifier in association with the additional one ledger;
providing the transferee with the temporary identifier;
receiving a finalize account request from another one of wallet clients, the finalize account request including the temporary identifier;
locating the additional one ledger in the computer memory from the temporary identifier;
saving a device identifier in the computer memory in association with the additional one ledger; and
configuring the another one wallet client with the device identifier, the device identifier being uniquely associated with the another one wallet client.
8 . The method according to claim 6 , wherein the adding to the computer memory an additional one of the ledgers comprises (i) transmitting to a stored-value card network a stored-value card token request message, the stored-value card token request message including a nil payment amount and requesting a stored-value card identifier uniquely associated with a stored-value card account maintained by the stored-value card network, (ii) receiving the stored-value card identifier from the stored-value card network, and (iii) configuring the stored-value card account with the stored-value card identifier and the nil payment amount.
9 . The method according to claim 6 , wherein the configuring a plurality of ledgers comprises:
receiving from the one wallet client a transaction payment request identifying a payment amount and requesting authorization for an anonymous electronic payment with a point-of-sale terminal in the payment amount;
retrieving from the computer memory the current balance value in the ledger uniquely associated with the one wallet client;
confirming that the current balance value in the ledger uniquely associated with the one wallet client is at least equal to the payment amount;
reducing by the payment amount the current balance value in the ledger uniquely associated with the one wallet client; and
providing the authorization for an anonymous electronic payment by initiating an electronic funds transfer of the payment amount from the first account to a stored-value card account maintained by a stored-value card network, the first account having a balance amount at least equal to the payment amount.
10 . The method according to claim 6 , wherein the configuring a plurality of ledgers comprises:
effecting an electronic funds transfer of a deposit amount to the first account; and
increasing by the deposit amount the current balance value in the ledger uniquely associated with the one wallet client.
11 . A non-transient computer-readable medium carrying computer processing instructions stored thereon which, when executed by a computer, cause the computer to:
configure in a computer memory a plurality of ledgers each uniquely associated with a respective wallet client in the memory, each said ledger storing a respective current balance value;
receive from one of the wallet clients a payment transfer request identifying a transfer amount and particulars of a transferee;
retrieve from the computer memory the current balance value from the ledger uniquely associated with the one wallet client, confirm that the current balance value is at least equal to the transfer amount, reduce the current balance value in the ledger by the transfer amount, add an additional one of the ledgers, update the current balance value of the additional one ledger to equal the transfer amount, and in the computer memory uniquely associate the additional one ledger with the transferee;
receive from a communications device a withdrawal request identifying a withdrawal amount; and
retrieve from the computer memory the current balance value from the additional one ledger uniquely associated with the transferee, confirm that the current balance value in the additional one ledger is at least equal to the withdrawal amount, reduce by the withdrawal amount the current balance value in the additional one ledger, and initiate an electronic funds transfer of the withdrawal amount from a first account maintained by a computer server to a second account associated with the transferee by transmitting to the computer server a funds transfer request identifying the withdrawal amount, the first account having a balance amount at least equal to the withdrawal amount.
12 . The computer-readable medium according to claim 11 , wherein the computer processing instructions further cause the computer to uniquely associate the additional one ledger with the transferee by:
saving a temporary identifier in association with the additional one ledger;
providing the transferee with the temporary identifier;
receiving a finalize account request from another one of the wallet clients, the finalize account request including the temporary identifier;
locating the additional one ledger from the temporary identifier;
saving a device identifier in association with the additional one ledger; and
configuring the another one wallet client with the device identifier, the device identifier being uniquely associated with the another one wallet client.
13 . The computer-readable medium according to claim 11 , wherein the computer processing instructions further cause the computer to add an additional one of the ledgers by (i) transmitting to a stored-value card network a stored-value card token request message, the stored-value card token request message including a nil payment amount and requesting a stored-value card identifier uniquely associated with the nil payment amount and a stored-value card account maintained by the stored-value card network, (ii) receiving the stored-value card identifier from the stored-value card network, and (iii) configuring the stored-value card account with the stored-value card identifier and the nil payment amount.
14 . The computer-readable medium according to claim 11 , wherein the computer processing instructions further cause the computer to configure the plurality of ledgers by:
receiving from the one wallet client a transaction payment request identifying a payment amount and requesting authorization for an anonymous electronic payment with a point-of-sale terminal in the payment amount;
retrieving the current balance value from the ledger uniquely associated with the one wallet client;
confirming that the current balance value in the ledger uniquely associated with the one wallet client is at least equal to the payment amount;
reducing by the payment amount the current balance value in the ledger uniquely associated with the one wallet client; and
providing the authorization for an anonymous electronic payment by initiating an electronic funds transfer of the payment amount from the first account to a stored-value card account maintained by a stored-value card network, the first account having a balance amount at least equal to the payment amount.
15 . The computer-readable medium according to claim 11 , wherein the computer processing instructions further cause the computer to configure the plurality of ledgers by:
effecting an electronic funds transfer of a deposit amount to the first account; and
increasing by the deposit amount the current balance value in the ledger uniquely associated with the one wallet client.