#A Credit Card Processing Virtual Terminal
####Changelog:
Please see the changelog.txt file if you used version 1 (prior to February 2017). Version 2 (Feb. 14, 2017 and forward) has breaking changes.
####Intro:
This app is basically a "virtual terminal" for collection and charging credit cards. This is meant to be used for businesses that collect credit cards from customers and then charge this card repeadly for orders. It removes the need to ask for card information at every purchase, stops you from storing credit cards in your database or on paper, and does not require PCI compliance since you are not storing any data about the cards.
All processing and storing of credit card data is done via Stripe (https://stripe.com). Since this uses Stripe you get the benefits of vastly easier to understand pricing, a modern administrative interface, and the ability to store cards without needing PCI compliance or worrying about someone hacking your database.
When you install this app, you deploy it to Google App Engine. The app lives "in the cloud" so your employees can access it from anywhere. This also reduces complexity and the needs for IT personel.
Please see the wiki pages for in-depth install, usage, and other details.
####Quick Screenshots:

####What can you do with this app?:
- Add credit cards to charge now or in the future.
- Remove cards that already exist.
- Charge credit cards (and refund charges).
- View transaction reports.
- Add or remove user's as needed.
- Control users' permissions to add, remove, or charge cards, and view reports.
- Block a user.
- Set your own Statement Descriptor so your customers recognize your charge.
- Print receipts.
- Make API-style requests to autofill the card, amount, invoice, and purchase order.
####Who should use this app?:
- Any company who processes credit cards via a virtual terminal.
####Benefits over other virtual terminals:
- Does not require PCI compliance.
- No storing of credit card information on your servers.
- Simple, clean, easy to use, and modern interface.
- You control the user's and access rights.
- Simple pricing via Stripe.
- Very quick deposits to your bank acount. As short as 1-day.
####How it works:
- You create a new customer by providing the customer's name and card information.
- The card data is saved to Stripe and an ID is saved to the app.
- When you want to charge a card, the ID is used to send the charge to Stripe.
- Stripe looks up the credit card's information and processes the charge.
- If the charge is successful, a receipt is shown. If the card was declined, an error is shown.
####Limitations:
- Currency is currently hardcoded as USD.
- This can be changed in card/card.go as the currency constant.
- You must access this app over HTTPS.
- Stripe requires this for security and it makes absolute sense.
- If you use this app with the *.appspot.com URL, your app can be accessed by HTTPS without any changes.
- Only the basic company information and address are editable on the receipt.
- You can only store one credit card per customer.
- This app only works on App Engine, not in a normal Golang environment.
####Install & Setup:
- Please see the wiki page for more thorough instructions.
- Create a Stripe account.
- Activate your Stripe account.
- Create a Google Account.
- Create an App Engine project.
- Download this app's source code.
- Configure the app.
- Deploy to App Engine.
- Done!
####Pricing:
This app is 100% free to install and use. However, the processing of credit cards and hosting are not free. There are two pricing considerations for this app. Stripe, and Google App Engine. Please see the wiki page that details the costs to use this app.
This app uses the following: