How To Setup Multiple IPN Receivers in PayPal
Instant Payment Notifications (IPN) allow your applications to receive notifications from PayPal on payments made. This means that your application can fulfill an order automatically upon receiving such a notification. However, when you get your second application up with its own IPN you suddenly find out that PayPal lets you set only one Notification URL.
Of course there’s the whole notify_url sharade and counterparts for all of PayPal’s APIs, but, unfortunately, there are cases when you simply can’t get to set those:
- Plugins that are hard-coded, where you can’t alter their core and they just force you to set the URL, so you end up locked in; this may be true for all sorts of applications in all sorts of languages (especially true for compiled ones)
- Third-party billing services like e-Junkie, Kajabi, 1shoppingcart and many others, they just lock you in, and tell you to set the IPN in PayPal
- Subscriptions and Recurring Payments; yep, PayPal does not allow you to bind a specific IPN for subscriptions at all (let me know if I’m incorrect, but I’ve spent days looking at the manuals)
- Multiplexing one IPN to two or more sources, for synchronization, custom alerts etc.
For everything else, modify your forms and API calls to include the notify_url attribute.
The easiest and most straightforward solution would be to get multiple PayPal accounts, right? Right, BUT:
No Multiple Accounts. Should you register for more than one Personal Account, PayPal reserves the right to terminate all of your accounts and will restrict you from the system going forward. Users may register and hold one Personal Account and either one Premier or one Business Account.
…from PayPal’s Terms and Conditions
So unless you have a separate legal business entity (company) for each Business Account), you’re out of luck. However, there a simple and sweet way to overcome this single IPN URL business – receive IPN and broadcast it.
The concept
An single IPN URL is setup for PayPal to notify your application of payments. The IPN handler code broadcasts PayPal’s payload to other IPN URLs you may have selectively or in bulk.
Advantages:
- multiple PayPal IPN URLs now possible
- no need to change any IPN code unless it filters requests by IP
- can centralize IP filtering into the broadcast IPN, which means easier to maintain when PayPal’s IP ranges change
- can centralize logging
- can have queuing and rebroadcast if satellites (all your other IPN URLs) are unreachable
Disadvantages:
- if broadcast IPN goes down – complete blackout (PayPal will notify you, though)
The code
This IPN broadcast code is in PHP, but the concept is non-language specific. Simply port the code and it will do equally well or even better.
<?php
/*
* This is a PayPal IPN (Instant Payment Notification) broadcaster
* Since PayPal does not provide any straightforward way to add
* multiple IPN listeners we'll have to create a central IPN
* listener that will broadcast (or filter and dispatch) Instant
* Payment Notifications to different destinations (IPN listeners)
*
* Destination IPN listeners must not panic and recognize IPNs sent
* by this central broadcast as valid ones in terms of source IP
* and any other fingerprints. Any IP filtering must add this host,
* other adjustments made as necessary.
*
* IPNs are logged into files for debugging and maintenance purposes
*
* this code comes with absolutely no warranty
* http://codeseekah.com
*/
ini_set( 'max_execution_time', 0 ); /* Do not abort with timeouts */
ini_set( 'display_errors', 'Off' ); /* Do not display any errors to anyone */
$urls = array(); /* The broadcast session queue */
/* List of IPN listener points */
$ipns = array(
'mystore' => 'http://mystore.com/ipn.php',
'myotherstore' => 'http://mybigstore.com/paypal_ipn.php',
'myotherandbetterstore' => 'http://slickstore.com/paypal/ipn.php'
);
/* Fingerprints */
if ( /* My Store IPN Fingerprint */
preg_match( '#^\d+\|[a-f0-9]{32}$#', $_POST['custom'] ) /* Custom hash */
and $_POST['num_cart_items'] == 2 /* alwayst 1 item in cart */
and strpos( $_POST['item_name1'], 'MySite.com Product' ) == 0 /* First item name */
) $urls []= $ipns['mystore']; /* Choose this IPN URL if all conditions have been met */
if ( /* My Other Store IPN Fingerprint */
sizeof( explode('_', $_POST['custom']) ) == 7 /* has 7 custom pieces */
) $urls []= $ipns['myotherstore']; /* Choose this IPN URL if all conditions have been met */
/* My Other And Better Store IPN Fingerprint */
$custom = explode('|', $_POST['custom']);
if (
isset($custom[2]) and $custom[2] == 'FROM_OB_STORE' /* custom prefixes */
) $urls []= $ipns['myotherandbetterstore']; /* Choose this IPN URL if all conditions have been met */
/* ... */
/* Broadcast */
if ( !sizeof($urls) ) $urls = $ipns; /* No URLs have been matched */
$urls = array_unique( $urls ); /* Unique, just in case */
/* Broadcast (excluding IPNs from the list according to filter is possible */
foreach ( $urls as $url ) broadcast( $url );
header( 'HTTP/1.1 200 OK', true, 200 );
exit(); /* Thank you, bye */
/* Perform a simple cURL-powered proxy request to broadcast */
function broadcast( $url ) {
/* Format POST data accordingly */
$data = array();
foreach ($_POST as $key => $value) $data []= urlencode($key).'='.urlencode($value);
$data = implode('&', $data);
/* Log the broadcast */
file_put_contents('_logs/'.time().'.'.reverse_lookup( $url ).'-'.rand(1,100), $data);
$ch = curl_init(); /* Initialize */
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($data));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch); /* Execute HTTP request */
curl_close($ch); /* Close */
}
function reverse_lookup( $url ) {
global $ipns;
foreach ( $ipns as $tag => $_url ) {
if ( $url == $_url ) return $tag;
}
return 'unknown';
}
?>
Grab the source here: Multiple PayPal IPN Broadcast PHP Script
The script is quite simple:
- be ready to receive an IPN from PayPal
- construct a list of broadcast targets by looking at the IPN data
- broadcast (the script uses cURL as you can see)
You can remove any fingerprint filtering and have this central IPN broadcast to all your URLs regardless, but filtering is a good idea. Nothing beats the custom IPN POST variable, if it’s possible have all your payments go to PayPal with a unique prefix in the custom field and then filter based on that prefix. Refer to the PayPal IPN variables list in order to construct reliable fingerprints.
PayPal Business Accounts can also have up to 8 associated non-primary e-mails, so you can build a fingerprint based on the receiver_email IPN variable instead.
Remember to always verify all IPN requests with PayPal in your satellites or in your broadcast IPN (check PHP PayPal IPN script example).
The conclusion
Thus, multiple PayPal IPN with one PayPal account is absolutely possible and is not too difficult. I’d love to hear what improvements you do to this snippet, so give me a shout anytime.

Thank you! Just what I was looking for and that rage face image is so fitting to how I felt when I noticed only one field for an IPN address
The problem here is that specified IPN URL in the user dashboard can be (and is) overwritten by services such as Wufoo and Fetch APP, which means this ‘broadcaster’ will not even be reached!
To clarify, as mentioned in the post Wufoo (for example, sets the ‘notify_url’ parameter, which will mean only that specific URL is used – boo)
Such a pain hey.
Rob, if Wufoo sets the ‘notify_url’ parameter the broadcaster is not required, since PayPal knows where to send the IPN and the broadcaster is irrelevant. If the broadcaster is required for other purposes, such as logging, etc. then some modifications in Wufoo, such as hooks shall have to be used. Let me know if I’m missing the point.
Wouldn’t it be safer and easier to just issue a 302/303 redirect instead of re-sending the data using curl?
Yes, that probably would be much better. Thanks for sharing!
I’m not a coder but I need this! Could you help me figure out how to install this for what I’m doing? I’m not sure what I need to put where..
kevin[at]cloutlab.com
Kevin
I mailed you, Kevin.
Soulseekah, I’m in the same boat. need to set this up but I’m not a programmer…any chance I could hire you?
I sent you an e-mail requesting more details on your particular case. Thanks.
Hi Soulseekah, The post and the script is very useful to many of us; thanks for sharing, but can you put or send me some instruction, where I can run this script?
Many thanks mate! Great Job!
Followed up via e-mail.
Yeah, same here. Pls help. Does this $_POST['custom'] variable is really ‘custom’ or is it some variable from returned paypal ipn variables I can customize? This would be great help. And, does it have anything to do with return_url. Coz if it is from different sites, I will have to specify different return url per site. :’( Im still googling about this. Please help Thanks a lot
Charm, yes, the `custom` is a value that you supply in your form and contains arbitrary data. The `return_url` is the URL which visitors are taken to after paying. You can view all the available variables and their descriptions in https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_Appx_websitestandard_htmlvariables
sorry if im making this a QandA which is supposed to be just a comment box. I just cant seem to find any lead somewhere else. Just here. Well, I have set my return_url in the merchant acct. But, since the case is I have different websites which are totally different from one another in purpose, the problem is, how can I tell paypal to redirect back to a page related to where it came from. Assuming I have website A and B, if the paypal buy now is clicked from website A, how can I tell paypal to redirect back to A? I have set a path for return_url in the ipnconfig to where it should redirect but in my own observation of the behaviour of paypal, it does not overwrite the return_url set in the merchant account settings. Thanks.
You use those variable when constructing your form. Please refer to the documentation here https://cms.paypal.com/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_formbasics it should work no problem.
Why not just use Paypals own “notify_URL”? If this is used on button code the IPN you have set in your account will become null and use the url you specify in “notify_URL”. Easy, fast, works!
Exactly, Kevin!
Hello,
fine, that works!!
Unfortunately one problem: The IPN is too fast. So it goes faster to my online order processing as the order message from magento. The paypal IPN is 3 seconds faster, so the papal IPN cannot be assiged to the order (which is received three seconds later).
Could there be a possibility in the script to delay the ipn message per listener point by x seconds?
Perhaps:
listener point 1: delay = 0 sec,
listener point 2: delay = 3 sec,
best regards,
hub
Yes, look into http://php.net/manual/en/function.sleep.php, the PHP
sleep()function.I need help with this, I’m not much of a coder – could I hire you?
I currently have site 1 through aMember and site 2 is an open source shopping cart.
Both use paypal pro.
Sent you an e-mail; most of the time the broadcaster is not required at all. I’ll be glad to help you out.
Hi,
I have set up your code (thanks!!), and it seems to be working too good.. I am getting the IPN twice on every location I specified in $urls.. maybe even three times. What could possibly be wrong?
Lots of things could be going wrong; you’d need to setup logging to capture the IP address of whatever hits your broadcast, and make sure that it gets hit only once per IPN. You may also paste your code to pastebin and send it over for me to have a look, since you modified the URL something may be amiss, who knows. Good luck in finding out.
I didn’t change much of the code, just commented out the “fingerprints” and changed $ipns to my own URLS.
Both url’s have their own parameters too, like:
‘mystore’ => ‘http://something.com/?paypalListener=IPN’
Could this be the problem?
I’m not much of a programmer, took me a few hours just to figure out how to install your script right. Could you point me to a good direction as to how to set up the broadcast logging?
thanks!
I send you my contact details to the e-mail you posted your comment with; contact me I have a couple of spare minutes to investigate your issue.
Hi,
This would be very helpful, I am setting up multiple IPNs now for my Paypal account.
But can you elaborate it more how to install and use this?
Because what I know on the IPN section of paypal is to place the url, so how can I do this with this approach of yours?
Does this means I do need to host this php file on my site and place it as the IPN URL?
Example:
http://mysite.com/paypal-mul-ipn.php
copy this url and place it on the IPN URL on paypal.
Am I getting this right?
Thanks for any insight, and hopefully you can help me out.
Yes, this is right. However make sure you really need this, and you can’t set the
notify_urlin your forms, buttons or APIs.Hi Soulseekah, thanks for the immediate reply, but what do you mean of ” you can’t set the notify_url in your forms, buttons or APIs.” ?
Semaj,depending on the way you’re integrating PayPal into your application, you’ll have to read the documentation if you want to understand this https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/howto_api_overview in short there are variables you can set when using the APIs to dynamically modify the IPN URL on a per-purchase basis if you want. You can look at some PayPal tutorials around in Google.
Thanks for everything Soulseekah, I just use the advance features on the Button configuration and use some custom variables available on paypal.
Hi,
May I know how to install this? Also how to add new finger prints? I don’t to how to add manually. Thanks!
John, installing this is quite simple, drop it into a server which is accessible by PayPal and has the cURL PHP libraries. You can get your developer to help you set them up to your particular needs.
Hi Soulseekah,
I have ipn configured for my website, in which i use an addon email for the payment.
But ipn returns my default email in the ipn message which is not recognized by my membership plugin as the email to which payment has been sent is different and the ipn message payment is different.
Do you have any idea how to resolve this, and how can i get an addon email sent from an ipn message without changing the default email and without changing the payment email on my website.
Thanks
According to https://cms.paypal.com/cms_content/US/en_US/files/developer/IPNGuide.pdf the
businessvariable in the IPN is “…Equivalent to the values of receiver_email (if payment issent to primary account)…”, which means that it will otherwise contain your secondary e-mail.
If you look at your IPN in your IPN History you’ll see this containing your secondary e-mail address (the address that the payment was really sent to). You should modify the membership plugin (or contact the developers with a bug report and a nice patch).
According to the guide,
receiver_emailis “[the] Primary email address of the payment recipient (that is, the merchant). If the payment is sent to a non-primary email address on your PayPal account, the receiver_email is still your primary email.” so checking thereceiver_emailis not the correct way to validate the payment and is a very common mistake put forth by tutorials online and made in code. In fact, the guide itself fails to mention this important subtlety when providing guidelines on which variables to check and which variables to disregard in an IPN message.Hope this makes sense, good luck!
I *think* this is what I need…. but its a bit over my hed to be sure. I have two separate websites that both want the IPN field filled out in a specific way. Will this help me fix my problem. How do I set this up, this post is far to detailed for me to understand,
Bruce, you need in rare cases, when you cannot set the `notify_url` variable in your form by any means (closed source, core code, etc.); what is your setup? Does your code allow you to pass the `notify_url` variable along?
Hi thanks for this script I have 3 application I would like to use each have their own ipn I have replaced the ipn you had set but I am not sure what to do for the
/* Fingerprints */ section of the code any help appreciated
That section can most often be simply omitted and have all IPNs be multicast to all endpoints without being filtered for any particular one. Most endpoints will simply ignore the invalid IPNs and only the one that it was meant for will accept it. Does this make sense?
This is what I need to do as well, I have one site working perfectly, with woocommerce and subscriptions and so on, selling a monthly newspaper, and another site that I sell single issues and subscriptions one a weekly basis. Different newspapers, different sites, using the same commerce software, and I want to use the same Paypal. IPN is giving me headaches.
Is there a form within the website where we change the “notify_url” for the site your using the standard paypal gateway?
Would be great if PayPal would just build in the ability to use multiple IPN.
Trevor, each of the payment gateway components should ideally be setting a `notify_url` variable when sending forms. You should read through the source code to identify those components which do not (or cannot) do this and figure out how to proceed best, by either altering their code or setting up a multiple IPN broadcaster.
Hello Soulseekah, I tried to configure the script by myself, but I think I will need some assistance. Could you send me your terms?
Sent you an e-mail requesting more details.
I have a wordpress website where I accept payments for a membership (using wp eMember), but a separate piece of software requires an IPN notification as well to set up the accounts automatically. So the IPN needs to go 2 places. As I gather, this script would do it for me. Am I right? If so, can I possibly employ you to set it up? I can probably do it… but you’re obviously much more experiences with this than I.
I would like to ditto mvancleve’s comment. I am a website site user, not a developer and I would also like to know if I can employ you to set it up for me. I have nearly the identical problem. I have a member site using S2Member on WordPress and also a store on Corecommerce, both needing an IPN.
Sent you an e-mail.
Just wanted to say thank you for this wonderful script, it worked perfectly!
I have 2 Opencart websites, I need to now use a single Paypal account to process the payments for each site, I have read all the comments and realize that I could do with your professional help in setting this up, please can you send me your costs etc.
Nigel, believe it or not there have been no cases where the broadcaster was required by people here so far.
Anyone who contacted me for help ended up employing the `notify_url` variable instead.
The broadcaster exists for the few obscure reasons mentioned at the beginning of the article.
In any case, I sent you an e-mail to sort things out.
Hi,
i am not sure if your code can help me. I have two different websites with their own WHMCS and am using the same paypal account. Paypal only provides one IPN website and i have two.
Is this something that can help me with that?
Not familiar with WHMCS, I’ll need access to check it out. Dropped you an e-mail.
Yes, it works, I use WHMCS too. Just have to point to where WHMCS is installed for IPN. For example, if it is installed in a subfolder, it will be something like:
http://yourdomain.com/whmcs
Thanks for your comment, David. Doesn’t WHMCS generate its `notify_url` values automatically like normal software is supposed to? Or does the issue pertain to something more sinister?
I don’t know why, it stopped working all together when I started to use e-junkie and other shopping carts, notify_url didn’t help either. This saved that problem
This is just what I need! Can I hire you to set it up for me? When it comes to people’s money, it needs to be set up right! Thanks…
Sharon
Mailed you back for more information. As I said, most systems today spew out a `notify_url` so you’ll probably not require the code above, but I’ll be happy to have a peek at your setup and advise you on how to best proceed without charging you cent.
Hey Soulseekah,
I am a medium level type on messing with code. I do not write it thats for sure!LOL
My question is I simply need to know the edits to make. Once you show me the way it goes I can take it from there.
I am 100% sure i need this script. I am using gravity forms which have their own ipn destination script and I am using another fundraising script with its own ipn destination. I also believe I will have about 3 more unique ipn destinations when I am done.
So just email me your conditions and what-not and I would appreciate any help.
Thanks M.Byrd
Each script should be setting their own
ipn_urlon all payments. Most of the time everything works out of the box. I still e-mailed you to sort things out.I need to do this, and while I am fairly good with coding I am far from pro and really don’t want to mess with it and screw up, haha. Did I miss something, – or is it not stated which file that code needs to go in? Will this work with Zen Cart? I currently have my IPN URL set to my Opencart site but I have 3 other websites I am working on that will be with Zen Cart. An email would be much appreciated
Marcy, you should not require the code above at all unless you’re doing subscriptions. Both ZenCart and OpenCart set the
ipn_urlin their payment forms last time I checked. I encourage you to test it out by performing test transactions (either using a Developer account with PayPal or setting the price to $0.01) to see if that’s the case. If this doesn’t work, let me know and I’ll get in touch with you for further investigation.Hi,
I have need of a ipn listener/handler that does a few extra things and was wondering if you do this sort of thing for people on a freelance basis? I don’t want to fill your comments up with me talking about what I need so if this is something you might be interested in then please drop me a quick line. I was just doing some research on this before posting a job on Odesk.com
Thanks
Jim
Jim, e-mail incoming
Hello,
very good post. Im not some php pro and have one question. To be broadcast be redirected to good IPN, it need to be added in fingerprint area?
No, fingerprints are only used to filter out and selectively pick an IPN destination instead of an anycast type of retransmission. In short, it means that you can remove the fingerprints area completely, and have the code retransmit the incoming IPN to all endpoints. Each endpoint is expected to behave well in regards to IPNs that are not meant for it (fake, illegal IPN payloads), meaning that an IPN meant for shop A will not be an inconvenience when received by shop B and C as well; shop B and C should be able to ignore or discard such IPNs out of the box. So simply removing filtering (fingerprints) should work well with stable code. Does this make sense?
First of all, thank you for really fast answer and explanation.
Looks that i didn’t asked right question.
When i upload reciever and add his address to paypal, where to add address of mine existing IPN processors who need to get that notifications?
I suppose its this part?
/* List of IPN listener points */
$ipns = array(
‘mystore’ => ‘http://mystore.com/ipn.php’,
‘myotherstore’ => ‘http://mybigstore.com/paypal_ipn.php’,
‘myotherandbetterstore’ => ‘http://slickstore.com/paypal/ipn.php’
Yes, you have to change that array; the keys (“mystore”, “myotherstore”, etc.) can be whatever you like, the URLs should be the IPNs for each store. Let me know if this doesn’t help and good luck!
I think that i configured it right. Thank you for help. I will know in 1-2 days is it works. If you have free 2-3 mins to contact me via mail or skype just to check it. I already started to spam here
Configurated and works perfect. Thanks.
Will be nice to add some PP address for donations.
Excellent. Donation link is above called “Buy me some tea” http://codeseekah.com/tea/ sorry for not being obvious.
Hi Codeseekah,
I reckon this could help me replace the zapier zap I’m using at the minute.
I’ve got 2 websites running S2Member which use 2 different IPNs…I think I know how to implement this code, can i just check that i’m on the right page?
1 – grab .php file and host it on my server
2 – change URLs in:
/* List of IPN listener points */
$ipns = array(
‘mystore’ => ‘http://mystore.com/ipn.php’,
‘myotherstore’ => ‘http://mybigstore.com/paypal_ipn.php’,
‘myotherandbetterstore’ => ‘http://slickstore.com/paypal/ipn.php’
);
I only need 2 so can I just leave the ‘myotherandbetterstore’?
3 – point paypal towards http://myserver/ipn.php
that’s it?
Ryan, that’s pretty much right. Did it work?
Hey! I think this script is exactly what I’m looking for. I need some assistance in setting it up however. I am running two different databases that needs the same values to work with my website and another service (a game server plugin for checking in-game user groups).
Please contact me with your terms or if you think you could help out.
Best regards
Emanuel
Sent you an e-mail. Broadcasting one IPN payload to several endpoints is pretty straightforward with the code above.
After reading a ton of paypal docs, internet searches and email discussions with 1 differen software vendors (that I need to inerface with) I figured out that I needed a “paypal listener” that mope or less does what this is described as doing. In my case I need to send a single IPN message from paypal to two different “things”. The fiirst is the paypal button payment logic (a joomla extension), which then authorizes a download of desktop software I’ve developed. The second is a software licensing servcice, when they get the message they send the purchaser a key to be entered into my software that I then react to and allow to execute.
I’ve asked both of those vendors what they thought of this approach, my concern is that based on the paypal docs I’ve read that there is interaction between paypal and anyone who sends them payment information, ie. it isn’t just a single handshake, but return message trafic to ask paypal, “ok, was it valid” following the initial receipt of the IPN message. Am I correct or just making the problem more difficult?
If I get a positive reply from these two vendors can we discuss you modifying this for me? I’m an experienced programmer / analyst, etc. (now retired) but the experience is mainframe assembler and desktop C++, php would be an entirely new world for me and I would expect that there are nuances of internet programming that take a lot of experience to understand and I’d hate to make a purchase experience on my site bad when I finally roll it out.
In addition to what this does already I’d want a database to be updated (doesn’t exist as yet) with purchase details since I don’t intend to require registration to purchase but I do want to be able to communicate with a purchaser for subsequent add-on or releases.
Thanks – Mike
I’m a bit confused by what I’ve read, not sure what goes where and how – the setup is quite difficult to grasp from the above description. PayPal has several APIs that have different flows, the regular button/form API (PayPal Express Checkout API) has a `notify_url` variable that can be set to let PayPal know which endpoint to contact for this particular payment. So your Joomla extension is using this API it seems.
As for your second service, the “software licensing” one, if it acts on this same payment information it should probably simply get contacted by the Joomla extension directly to signal a new payment (after the IPN comes in and is properly verified), or contact it directly (to get pending verified payments) and then act based on these payments. Alternatively, you could set the IPN to contact your licensing service instead, if you can get away with not having Joomla know about the payment.
I don’t really see the need for the code that I provide above, it’s very rarely useful, since you’re working with good old Express API, no subscriptions, no routing or duplication required, nothing. You should be able to get away with writing a simple bridge between the two services if data consolidation is required. i.e. you shouldn’t have multiple endpoints listening for the same IPN unless really required somehow (or you’d like to verify the payment at every node against PayPal), which is yet to be proven. I’m going to contact you via e-mail to see what is really going on there if you’re willing to follow up and explain more.
Soulseekah,
Im going to ask you the same question that everyone else seems to have asked you. Im hoping you can assist. It looks like you reply to everyone by emailing them ???
I have two completely seperate WP sites each which have their own PayPal systems. This problem be completed if PayPal had an area to insert 2 IPN URLs and the additional PDT ID but they dont. My first site is setup and works fine.
Im in PayPal now and am trying to setup a second URL as I require a PDT ID token. No doubt if I steal the token that is already written there it will relate to my first URL and throw things right out of whack ?????
Im not a developer and but can follow basic instructions in WP? If you can assist.
Thanks heaps
Mailed you for further information. As far as I remember PDTs aren’t tied to any specific domain, so you can get away with verifying the PDT tokens on any of your sites. By using the `return_url` and `notify_url` you should be able to get away with almost anything.