Skip to content

Barclays ePDQ Payment Gateway

Hello all!

Today we will be talking about Barclays online payment gateway valled ePDQ.
You can take a look at what they have got to say by clicking here to view Barclays’ site or you could keep reading ๐Ÿ™‚
Well, for all you php guys out there, this post if for you!

Barclays ePDQ encrypts your data string of products in your basket and returns a result that is sent with your HTML form on your site.

<?php $url = ''; $params = "clientid=myclientid&amp;password=mypassword&amp;oid=4&amp;chargetype=Auth&amp;total=100&amp;currencycode=826"; $user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"; $ch = curl_init(); curl_setopt($ch, CURLOPT_POST,1); curl_setopt($ch, CURLOPT_POSTFIELDS,$params); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // this line makes it work under https $result=curl_exec($ch); curl_close($ch);
Code language: HTML, XML (xml)
<form action="" method="POST"><!--?php print "$result"; ?--> <input name="returnurl" type="hidden" value="" /> <input name="merchantdisplayname" type="hidden" value="My Store" /> <input type="submit" value="purchase" /> </form>
Code language: HTML, XML (xml)

As you can see, it all seems quite easy.
You send through your data and it encodes it to look like something like this:

<form action="" method="POST"><input name="epdqdata" type="hidden" value="B5C14CFDF42DE6F1F3EE38CA469E4345927CFD45C2191AEBA3CB93A004679724369A7F64F5B0E991A 79C39EA37A8727C3BE49ADF13556356021E5EBB361089F0" /> <input name="returnurl" type="hidden" value="" /> <input name="merchantdisplayname" type="hidden" value="My Store" /> <input type="submit" value="purchase" /></form>
Code language: HTML, XML (xml)

Remember to read the following documents, they are very useful in troubleshooting:

See also  How to Tilt a Binary Tree in Java

Here are some sample scripts from Barclays themselves:

Hope that helped someone!

Always feel free to leave a comment or ask a question ๐Ÿ™‚

Notify of
Oldest Most Voted
Inline Feedbacks
View all comments
9 years ago

I am getting the following error when trying to use Jersey as delivery country.It works for all others.Doesnt ePDQ support this country?
Any body has encountered this ?

“Sorry, there has been a problem processing your payment.
Billing Country is invalid, received JE.”

11 years ago

How do I get this to work ? Where is the value coming from, can the user input a total or is it based on something else?

10 years ago
Reply to  Andrew


This is the bit I’m stuck on. When I submit the form is says ‘Mandatory information not present.’.

$params = “clientid=myclientid&password=mypassword&oid=4&chargetype=Auth&total=100&currencycode=826?;

The above is from your post and is the same as the CURL script from Barclays. Can you explain how I enter my details as the parameters? Where it says clientid=myclientid, do I just change ‘myclientid’ for the 5 digit client id? same with mypassword, do I put the passphrase entered during the admin set up? oid=4? do I change this, it’s not madatory, so can I delete it? the total=100 surely has to change to maybe $cartTotal?

Please help! It seems easy but there are loads of people over the net asking for help. I’ve found this post very helpful. I was using the php encryption and have changed to use the CURL encryption.

11 years ago

Do you have an example of handling the response back from ePDQ?

11 years ago

Hi , im looking for Barclay epdq integration.

11 years ago

I have a website that has a one page form that collects simple customer details to pay for a booking on a holiday home. I have the website working well but need to integrate Barclays ePDQ. I have sat and read the integration document over several times and am now stuck. I have never really used Perl or PHP so have installed the scripts given by Barclays to do the server side bit.
This is the link given to the help document but ( am not really sure on how the encryption bit works.
Is anyone out there willing to help do a “walkthrough”? I cant imagine its too difficult if you know what your doing.
Thanks in anticipation…

11 years ago

Wow! its wonderful! I was looking for this integration…. many many many Thanks

11 years ago

It is very uncomplicated to create a payment by means of MyEasyPayment. Financial institution of America card accounts is accessible 24 hours each day via on the net account access. The web site is clean and simple to use. MyEasyPayment are dedicated to protecting your individual information and facts online to keep it secure and confidential.

12 years ago

How can i integrate ePDQ and how can i send session data through php html code ? how can i set session value in hidden field.

Would love your thoughts, please comment.x