Introduction to Stored Value Accounts
A Stored Value Account (SVA) is a financial account used to store digital money on a customer's eWallet, or what is sometimes referred to as a digital wallet. SVAs are conveniently accessed from the internet using devices like smartphones, tablets, or from a website.
To use an SVA, digital cash is loaded to the SVA account using separate funding sources such as credit cards, bank accounts, or transferred from another person’s SVA account.
The use of SVA accounts include, but are not limited to the following:
- Ecommerce purchase
- Payment to merchant/store
- Money transfer to friends and relatives.
Manage SVA Funds
The APIs listed below are all required for the management of an SVA. From the initial SVA creation to the management of funds stored on an SVA.
Create Account Creates the SVA and the money container associated with the stored value account.
Get Account Balance - Retrieve the balance of the SVA’s money container.
Remove Money Container - Removes the functionality of a money container, but does not remove it completely from the system. For auditing purposes, we keep the last 4 digits of the account number if any suspicious activity occurs.
Use Cases
The purpose of this section is to describe a variety of scenarios and to describe the user's interaction required for payment processing.
Add Credit Cards to an eWallet
Credit cards are added to an eWallet to fund an SVA account or to authorize payments made by the Add Money Account API.
Note: For security, all credit card data is stored in the system per PCI DSS requirements.
SVA Cash In APIs
Here’s how to add money to a new SVA, or to replenish funds onto an existing SVA.
This section examines the phases of payment, and the steps involved in each phase through a variety of use cases. The purpose of this section is to describe a variety of scenarios present in each step of a payment process.
Make a Purchase using an SVA
A Consumer can make payments using funds from their Stored Value Account (SVA). To pay using an SVA, the consumer performs the following steps:
Make a Purchase using a Credit Card already added to an eWallet
Once a user has added a credit card to their wallet, the user can pay directly from their credit card using the Debit API.
The steps for making a purchase are:
Make a Purchase by Swiping a Credit Card on a POS Terminal
LiftCommerce configures and supports Point-to-Point encryption (P2PE) terminals for PCI-validated credit card processing. When paying at a Point of Sale (POS) Terminal using a credit card, the Pay With Card API is the first step that is triggered when a consumer is ready to make a payment at the store. This API initiates the call to the 3rd party gateway through ‘Switch’ so the user can swipe their card and their transaction is processed. The Payment Gateway either authorizes and approves the card information, or card authorization is denied.
Prerequisites:
- A PCI-compliant terminal device is available.
- A store cashier or store representative (POS user) is already registered and authenticated in MoTEAF.
The following items are verified and performed at a card swipe terminal:
- The store cashier initiates a 10 minute session on the BOLT terminal by calling the Get Session Key API. A session must always be initiated before processing a payment with a credit card and is only optional if the payment gateway is an Invoice Processing Platform (IPP).
The next steps the consumer makes for this type of purchase are: - The Consumer swipes their card on the POS terminal and the card gets approved or denied based on the authorization from payment gateway. - Card Connect, or any 3rd party payment gateway server processes the transaction and either approves or denies the request, and sends the response to our Switch connector which in turn sends it to POS MicroService as a response to Pay with Card API call. - Any errors returned from the BOLT terminal are listed in the Bolt Errors section.
Note: The Pay with Card API is part of our POS Microservices APIs, included with the Payments API.
Make a Purchase using Web Based Virtual Terminal
Virtual terminals are web-based applications that allows merchants to accept credit card payments. This card-not present transaction is primarily used for collecting credit card details from a consumer who is calling the CSR representing a merchant from a phone. This solution enables merchants to take a payment without a card reader.
The following steps are used to simulate a terminal.
Prerequisite: - The Customer Service Representative (CSR) is already registered and authenticated into the portal.
The following steps are then used to simulate the actions performed on a terminal.
- A Consumer calls a Customer Service Representative (CSR) or the merchant.
- From a phone, the CSR collects card details from the Consumer.
- The CSR executes the Execute - CVT API after collecting information from the Consumer.
SVA Cash Out APIs
Digital money stored in an SVA can be transferred back to consumer’s bank or it can be cashed-out of the SVA by using an Money Transfer Code (MTC). Any of the following APIs can be used for a Cashout.
SVA Withdrawal Agent - A Company User who has access to corporate financial accounts can withdraw funds from a money container belonging to a Company's SVA and process a credit to the recipient's bank account money container. Both SVAs must belong to the same entity.
Send Money To MTC Code - This operation lets a Subscriber or a Company User transfer money from their SVA’s money container to a company holding account. These funds are only accessible through the use of a MTC that gets generated when the funds are placed into a company holding account. Funds are removed using the Encash MTC API at an agent or correspondent location.
Encash MTC - This operation lets a Subscriber or a Company User cash out from a money transfer. A recipient visits an agent location with the MTC that was generated from the Send Money to MT Code API. After verifying the recipient's identity and MTC, the Encash MTC is executed by a Company User such as an Agent, who then physically hands cash to the recipient.
Cancel
Credit card processing is performed in two stages. The first stage is authorization stage and the second is settlement. A small window exists between the two as to when to cancel a transaction without it affecting the customer's balance. If cancellation is not possible, a customer may require a refund. The Cancel API operation cancels any previous transactions that have been executed. By providing a Transaction ID, the transaction history can be accessed and all steps reversed.
Refund Service
A refund is used to return some or all funds on a transaction that are in the Settled status. Refund requests are automatically captured and if no amount is supplied, a refund for the full original payment amount is issued. To initiate a Refund with Reference, a call is made to the Refund API service, passing the: - Merchant ID - Retrieval Reference Number (retref) from original authorization. - The amount of the requested refund.
Refund requests are automatically captured. Each individual cardholder's bank imposes a maximum time frame allowed to Refund with Reference. This can take up to six months following a transaction. To initiate a Refund without Reference, a call is made to the Authorization Service passing the amount of the refund as a negative value in the amount parameter. Refunds without Reference do not require a Retrieval Reference Number passed, but it is configured so our Merchants have this functionality.
Get Transaction History
The Get Transaction History API allows cashiers and store management to view information about cash deposits, cash withdrawals, inbound and outbound transfers, and internal transfers for accounts. Consumers may only view their own transaction history.
Get Transaction Details
The Get Transaction Details API, allows consumers or store managers view the details of any transaction. Consumers may only view the details of their own account.
Error Codes from P2PE Bolt Reader
Status Code | Description |
---|---|
200 | Success |
401 | Unauthorized |
403 | Invalid HSN for MerchantID. |
500 | Bolt Client or Server Error. |
To access the Switch APIs, see Switch.