PayPal Virtual Terminal PHP Application

(14 customer reviews)


This web-based PayPal Virtual Terminal can be used as a replacement for the one that PayPal provides.  You may place it on your web host and run it directly from your own website domain.

  • Compatible with Website Payments Pro 3.0, Payments Pro 2.0, and REST
  • Lower Transaction Fees
  • Ability to Swipe Credit Cards Using a USB Credit Card Reader
  • Run from Your Own Website and Avoid Logging in to PayPal


Product Description

PayPal Virtual Terminal

The PayPal Virtual Terminal is provided by PayPal as an add-on to the Payments Pro product.  It allows you to easily process phone, fax, and mail orders instantly from within your account.  This PHP application replicates this functionality (and improves upon it) in a basic PayPal Virtual Terminal replica that you install on your own website domain.  This allows you to process credit cards the same way you would using the PayPal Virtual Terminal they provide, but with a few added benefits.

Lower Transaction Fees

PayPal typically charges a flat-rate for processing payments based on your avg. monthly volume.  The break-down is as follows:

Avg. Monthly Volume PayPal Fee Rate
$0 – $3,000 2.9% + 30¢
$3,001 – $10,000 2.5% + 30¢
$10,001 – $100k 2.2% + 30¢
$100k+ Negotiable with PayPal.

What many people don’t realize, though, is that PayPal charges a slightly higher rate for PayPal Virtual Terminal transactions than they do for other transactions. Virtual Terminal transactions would follow a similar model, but with slightly higher fees:

Avg. Monthly Volume PayPal Fee Rate
$0 – $3,000 3.1% + 30¢
$3,001 – $10,000 2.7% + 30¢
$10,001 – $100k 2.4% + 30¢
$100k+ Negotiable with PayPal.

Because our PayPal Virtual Terminal PHP application utilizes the Payments Pro and REST APIs you will get the lower rate model. This can save you a lot of money over the course of a year if you are processing a lot of PayPal Virtual Terminal transactions.


PayPal provides a variety of products that allow you to process credit cards including PayPal Website Payments Pro 3.0, PayPal Payments Pro 2.0, and the PayPal REST API. However, the PayPal Virtual Terminal is only provided if you have the full Payments Pro solution.

Our PayPal Virtual Terminal PHP application is compatible with each of these products, so you can use it even if you’re using the REST API, which does not require PayPal Pro and carries no monthly fee.

Credit Card Swipe

The PayPal Virtual Terminal requires you to key in all of the credit card data in order to process credit cards. This can be time consuming, especially if you are in a retail shop or at a trade show or something similar where you have a line of people waiting to pay for their products. Our PayPal Virtual Terminal PHP application adds the ability to swipe the credit card instead of typing the information which can save you lots of time and avoids data entry errors.

In order to use the swipe capability provided by the solution you will need a USB credit card reader that outputs data as keyboard emulation and includes both track 1 and track 2 from the card stripe. We recommend using credit card readers from our partner, USBSwiper.

Avoid Logging in to PayPal Account

The website can be annoyingly slow at times, and it will timeout on you quite often forcing you to keep logging in again. This can be problematic if you’re trying to process payments through-out the course of a day.

Our PayPal Virtual Terminal PHP app is installed on your own website host and loaded from your own domain. This way you do not have to log in to PayPal to use it, and you can protect the solution using your own methods from your own server.

14 reviews for PayPal Virtual Terminal PHP Application

Powered byCusRev
Based on 9 reviews
  1. Anonymous (verified owner)

    Thanks for make it free. I was looking for something to get started with PayPal integrations.

    (0) (0)
    • Drew (store manager)

      Happy it’s helping! This will work for now, but please be aware this is a bit outdated now. PayPal has replaced this with “PayPal Commerce Platform” which is a REST API that includes “Advanced Credit Cards”. You get reduced fees so you’ll save money on this new system. Please contact me directly at our help desk and I can give you some more guidance on getting setup with an updated solution we have available.

  2. Paul

    Great stuff

    (0) (0)
  3. Long Doan (verified owner)


    (1) (0)
  4. Don West (verified owner)

    Excellent way to host your own virtual PayPal terminal to use in store or any location where you need to take payments. All you need is a card swiped, this plug-in, and you’re ready to roll! This company creates THE best apps for integrating PayPal to your site and business. Great support as well!

    (0) (0)
    • Drew (store manager)

      Thanks so much for the kind words! Glad you like the VT tool! 🙂

  5. rafael cedano (verified owner)

    Ican make it work for some reasons

    (0) (0)
    • Drew (store manager)

      Please submit a ticket to our Help Desk and we can get you taken care of.

  6. Ivan Don Francisco (verified owner)

    need virtual terminal for my business will grow

    Image #1 from Ivan Don Francisco
    (0) (0)
    • Drew (store manager)

      Happy that it’s working well for you! 🙂

  7. Joseph Lee (verified owner)


    (0) (0)
  8. Theo Kossenas

    WOW! Brilliant work. No words to describe how easy it was to implement your code to our POS. Fast, clean and easy. As you are mentioning it’s just a bare bone but the concept allows working with it, without being a PHP Guru! PayPal’s API it’s serious “staff” and needs a lot of reading in order to make it work. We saved a lot of hours… Please provide a link for a donation. It’s the least that we can do.

    (1) (0)
    • Andrew Angell (store manager)

      I’m glad you were able to make use of it! If you would like to make a donation you may do so here, and we definitely appreciate it. Thanks!


    Hi; Is there any update on the magento plug in? Thanks!

    (0) (0)
    • Andrew Angell (store manager)

      Magento 1.9 includes a basic virtual terminal with it now, so I haven’t been focused on this project at all. There are still some improvements that can be made, and I do have a module that’s about 90% done which makes some improvements, but again, it’s just not something I’ve had much of a demand for since they added it into the 1.9 core feature set.

  10. Brian

    I have just implemented this external to Magento, usually in PayPal Virtual Terminal we select the currency (We sell international Australia (primary) and New Zealand in this deployment) is there some way to add this to the script? what does it default to when taking payment? Thanks for the help.

    (0) (0)
    • Andrew Angell (store manager)

      Hi Brian,

      You know, I’ve actually been working on building this sort of functionality directly into Magento as an official Magento extension that will be available on MagentoConnect soon. I think you’ll love it!

      To answer your question, though, the solution is currently hard coded to use USD. If you want to change that you can add a currency option into the form on the index.php page wherever you’d like, and then adjust the direct-payment.php file accordingly. To follow the same patter as the rest of the data, set a session variable for it at the top and load the form POST data into that session variable. Then on (or around) line 140 of the direct-pament.php you’ll see where it’s setting the currencycode to USD. You would just change that to use your session variable value.

      That would do it for you. Again, though, keep your eye out for our Magento tool coming soon!

      • Brian

        Thanks Andrew, I am looking forward to the Magento plugin, be sure to let me know when its available.

        Is there a way on the results screen to request the Unique Payment ID to be displayed on successful payment? I need to record this number against the magento orders for reference? It does not come up as standard

      • Brian

        All good, the code is so clean I managed to echo it to the output screen within 5 minutes of writing that last post. Cant wait for the Magento Tool.

  11. ed

    Are you planing to develop something similar for Braintreegateway

    I would very much interested


    (0) (0)
    • Andrew Angell (store manager)

      Yes, but I’m not sure when I’ll have it done.

  12. Brian

    Is this script able to output the Transaction ID on the confirmation screen? I would really love to have this kind of thing added as a payment method (admin only) in Magento so it can be seamless for taking manual/phone orders (and perhaps even post a comment to the order confirming payment and auto invoice)!

    (0) (0)
    • Andrew Angell (store manager)

      Hi Brian,

      Sure, this script is just a bare bones template, but it’s complete. The Transaction ID is included in the result data, so you could easily display it or do whatever you want with it.

      I’m actually starting the development of a Magento extension that adds this functionality. It may be a month or two before it’s completely done, thoroughly tested, and ready for release, though. Sorry I don’t have better immediate news on that.

      • Brian

        I would be very interested in that as a plugin. Please do keep me informed, would be happy to pay a fee for its purchase.

  13. Dean

    Is there anyway to get this to print a receipt, to a receipt printer?

    (0) (0)
  14. Nick Steele

    Incredible! Within 10 minutes of downloading this I was up and running a sandbox site. You’re making the world a better place! Thank you!

    (0) (0)
    • Andrew Angell (store manager)

      Glad it helped! One caveat you’ll want to look out for is that you need to make sure your live PayPal account is configured to use DoDirectPayment. Some versions of Payments Pro only work with the PayFlow gateway. If you happen to have that this would need to be integrated with PayFlow instead of DoDirectPayment, but my class library can handle that pretty easily for you.

Add a review

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.