# PayPal Micro Transactions



## Aldryic C'boas (Apr 21, 2015)

Like many hosts out there, the bulk of our recurring payments come in via PayPal.  And like most hosts that sell some of our services at decently low pricing, we've never been a fan of PayPal's fees taking a noticeable chunk out of the incoming payments.

Standard PayPal fees are 2.9% + 0,30$ per transaction.  On a 5$ per month service, this amounts to 0,45$ in fees, leaving a 4,55$ income for the service.  If you're a respectable sized operation, let's say running 25 nodes with 75 of these 5$ plans each, that means PayPal is taking 843,75$ of your 9375$ income, leaving you with some change over 8500$.  Almost 10% of your income gone right off the top, before you even start looking at operating costs.

For those that frequently collect smaller payments via PayPal, they also have a nifty program dubbed Micropayments.  It's a different fee rate you can have applied to your account, in which instead of 2,9% + 0,30$, it's 5% + 0,05$ applied to the sale.  So for our 5$ per month service, that puts you at 0,30$ in fees rather than 0,45$.  And if you're the respectable sized operation we mentioned before, it means your fees on that 9375$ income would only be 562,50$ rather than 843,75$ - an extra ~300$ in your pocket each month.  Sounds great!  But there's a catch:

Do the math on those two fee structures, and you'll find the cutoff point is 12,00$ exactly.  Anything under 12$, and you pay less fees with Micropayment rates.  Anything over 12$, and you pay less on the standard fees.  Since few providers out there sell solely on the 12$ and under side of things, this means larger sales would take a bigger hit in fees if you switched to Micropayment rates.  Unless you had two PayPal accounts - one to receive the 12$+ payments at normal rates, and one for your <12$ payments are Micro rates.  Best of both worlds, and better yet this does *not* violate PayPal's TOS regarding holding more than one account per entity.  In fact, while speaking with our PayPal rep about holding a second account for the Micro rates, they encouraged us to pursue that course of action.

But then, the catch strikes again.  WHMCS supports PayPal, but only a single account.  While the more crafty among us could indeed find a way to enable the PayPal gateway multiple times for multiple PayPal accounts (*WARNING: I *strongly* advise against attempting to do this, as it leads to a rather nasty vulnerability*), there's no sure-fire way to ensure clients would be using the correct one when paying their invoice, and you could end up being worse off than just eating the standard fees alone.

About a year ago, after a ridiculous amount of testing and development, I wrote two scripts to add a 'PayPal Micro' gateway to WHMCS.  Superficially, it looks and behaves just like the normal PayPal gateway, except that you're entering two sets of information: Main PayPal Email, Micro Email; Main API creds; Micro API creds (API creds optional, only needed for refunds just like the regular PayPal gateway).  Simply displaying as 'PayPal' to clients, the entire process is done behind the scenes and requires no additional scripting or file modification.  When a client makes payment over 12$, the gateway pushes the information to your normal PayPal account, where normal fees are processed.  When the payment is under 12$, the gateway pushes to the micro-paypal account, where you get to take advantage of the lower fees on smaller payments, reducing your overhead and adding more to your bottom line.  Refunds work exactly the same as they do normally: when you press the 'Refund' button in WHMCS (or trigger it via API/etc), the gateway will select the correct PayPal account to push API credentials for, regardless of how much you're actually refunding of the payment.  To clarify: a 3$ refund from a 25$ transaction will still be processed properly by the 'Main' account, since that's where the transaction originally happened.

Now, unlike my previous work, I'm not giving this away for free.  As I mentioned earlier, a modest sized operation will be saving hundreds of dollars a month - and obviously the more transactions you have, the more you benefit.  There won't be any licensing or recurring payments or any of that mess - a simple one-off payment and you receive two Ioncube encoded .php files - one goes into _/whmcs/modules/gateways/_ and the other into _/whmcs/modules/gateways/callback/_.  If for whatever reason PayPal decides to change up their API or any adjustments are needed to the files, I'll do so and hand out the updates to the folks that already paid at no cost.  This is also not theoretical work - we're using the exact same code at BuyVM/BuyShared, and have been for about a year, with no complications.  That's also a pretty solid guarantee that if any updates did have to be made, I'd have it done pretty quickly.

This is a fairly unique setup, so I'm not going to put a price tag here.  But if you're interested in grabbing a copy, drop me a PM here on VPSB, and we'll work out a fair price.


----------



## MannDude (Apr 21, 2015)

Sounds like it'd be a great feature to have.


----------



## Steven F (Apr 21, 2015)

Maybe include some numbers? Here are a few.

(5 * .971) - .3 = $4.56 per transaction

(5 * .95) - .05 = $4.70 per transaction

715 VPS at $5 a month per VPS costs you $100 a month if you don't use Micro Transactions.

(3.5 * .971) - .3 = $3.10

(3.5 * .95) - .05 = $3.28

556 VPS at $3.50 a month per VPS costs you $100 a month if you don't use Micro Transactions.


----------



## Aldryic C'boas (Apr 21, 2015)

I did include some numbers - see the second and third paragraphs, where I went into extended detail with numbers


----------



## XFS_Duke (Apr 22, 2015)

Nice. I'll send you a pm. Seems like a very nice product.


----------



## trewq (Apr 22, 2015)

Forgive me if I misunderstood but if your account has micropayments active isn't it whichever fee schedule is lower, under $10, the one that is applied?


----------



## nixstats (Apr 22, 2015)

trewq said:


> Forgive me if I misunderstood but if your account has micropayments active isn't it whichever fee schedule is lower, under $10, the one that is applied?


I thought so too but apparently not -> https://www.paypal.com/us/webapps/helpcenter/helphub/article/?solutionId=FAQ664&topicID=PAYMENT_METHODS&m=TCI


----------



## trewq (Apr 22, 2015)

nixstats said:


> I thought so too but apparently not -> https://www.paypal.com/us/webapps/helpcenter/helphub/article/?solutionId=FAQ664&topicID=PAYMENT_METHODS&m=TCI


It's obviously a bit different for Australian accounts https://www.paypal.com/au/webapps/helpcenter/helphub/article/?solutionId=FAQ664&topicID=&m=ARA


----------



## SkylarM (Apr 22, 2015)

Surprisingly annoying how big of a difference the price really is, even at the 2.2% + $0.30 rate. Blah


----------



## Steven F (Apr 22, 2015)

Aldryic C said:


> I did include some numbers - see the second and third paragraphs, where I went into extended detail with numbers


Scammer, that totally was added in after!


----------



## perennate (Apr 22, 2015)

trewq said:


> It's obviously a bit different for Australian accounts https://www.paypal.com/au/webapps/helpcenter/helphub/article/?solutionId=FAQ664&topicID=&m=ARA


Uh, the link you quoted clearly states:

"If you sign up for micropayments, you will be charged the micropayments rate on all transactions regardless of payment size."

Edit: at least it says that for me, maybe it says something if you visit it from AU?


----------



## trewq (Apr 23, 2015)

perennate said:


> Uh, the link you quoted clearly states:
> 
> "If you sign up for micropayments, you will be charged the micropayments rate on all transactions regardless of payment size."
> 
> Edit: at least it says that for me, maybe it says something if you visit it from AU?


"Micropayments are small payments for digital goods, under $10 in value. You can apply for a special micropayments pricing fee as outlined in the Fees and Charges statement. If approved, you’ll pay the lesser of the micropayments fee or the standard transaction fee."

Copy of what is displayed for me.


----------



## Aldryic C'boas (Apr 23, 2015)

Looks like you AU gents get the better end of that deal, then


----------



## Aldryic C'boas (Apr 23, 2015)

A quick query for if you'd like to know exactly how much micro fees can save you:


```
SELECT 
  ROUND(SUM((amount*0.029)+.3),2) AS 'Standard Fees', 
  ROUND(SUM((amount*0.05)+.05),2) AS 'Micro Fees', 
  (ROUND(SUM((amount*0.029)+.3),2) - ROUND(SUM((amount*0.05)+.05),2)) AS 'Difference (m)', 
  ((ROUND(SUM((amount*0.029)+.3),2) - ROUND(SUM((amount*0.05)+.05),2))*12) AS 'Difference (y)' 
FROM 
  tblhosting 
WHERE 
  domainstatus IN ('Active', 'Suspended') AND 
  billingcycle = 'Monthly' AND 
  amount < 12.01;
```


----------



## MartinD (Apr 23, 2015)

So, in summary, you need to run 2 PayPal accounts but your script will automatically chose which one to use based on the amount being charged... right?

Might be a bit of a pain with regards to linked bank accounts.


----------



## Aldryic C'boas (Apr 23, 2015)

MartinD said:


> So, in summary, you need to run 2 PayPal accounts but your script will automatically chose which one to use based on the amount being charged... right?
> 
> 
> Might be a bit of a pain with regards to linked bank accounts.


Correct on the former. No issues on the bank accounts though - you can tie the same bank to both.


----------



## MartinD (Apr 24, 2015)

It may be different in the US but here I've never had luck getting them to do that, even with pro accounts. They simply refuse.


----------



## KwiceroLTD (Apr 24, 2015)

So in essence all you're doing is hooking the payment attempt via paypal checking if they amount is under $12.01 if so, go to secondary configuration (ie: [email protected] | api: http://company.tel/api2.php),if not use the default?


----------



## Aldryic C'boas (Apr 24, 2015)

Heh, if only things were that simple. But no, I'm not releasing the source, so I won't be explaining the specifics on how it works either


----------



## InertiaNetworks-Ryan (Apr 24, 2015)

https://www.paypal.com/us/webapps/helpcenter/helphub/article/?solutionId=FAQ2330&topicID=&m=ARA- No point if the limit is $4 USD.


----------



## William (Apr 24, 2015)

Good for US users - Not useable for most non-US countries however, Germany/Austria blocks your PayPal accounts if you have more than one per entity :/


----------



## Aldryic C'boas (Apr 24, 2015)

William said:


> Good for US users - Not useable for most non-US countries however, Germany/Austria blocks your PayPal accounts if you have more than one per entity :/


US will do this as well - Micropayment accounts are the sole exception, and it's typically best to ask first to be on the safe side.


----------



## AnthonySmith (Apr 28, 2015)

This idea has been on the WHMCS forums for some time, its a great one, I approached 2 devs about making a plugin that used a different paypal account based on the transaction value for full licence i.e. not released for general use I was quoted $500 and $899, if they could release it they agreed to 25% and first year free.

so if your going to do this I am in, I know you have not asked for feedback specifically but I would be happy to pay around $300 p/year for something like this if it comes with support and updates.

Edit: for clarity this is still on my ever growing list of things to get done, I will be doing it anyway but would much rather my money goes in your pocket as I know that you know exactly how this needs to work so the chances of any issues are reduced.


----------

