node package manager


Build Status


EPDQ is a node library for interfacing with Barclaycard's ePDQ payment gateway.


First, configure the EPDQ module for your settings:

var EPDQ = require('epdq');
EPDQ.config.shaType = "sha1";
EPDQ.config.pspid  = "MyPSPID";
EPDQ.config.shaIn  = "Mysecretsig1875!?";
EPDQ.config.shaOut = "yourshaoutstring";

Then you can build the form for a user to POST to, starting in the controller: All the options keys are named after the downcased fields in the ePDQ documentation, provided as strings.

var request = new EPDQ.Request({amount: 1500, currency: 'EUR', language: 'en_US', orderid: '1234'});

You can then generate a signature for the request.

var signature = request.shaSign(); // => 'F4CC376CD7A834D997B91598FA747825A238BE0A'

and generate form parameters including the required ePDQ configuration values for your views.

request.formAttributes(); // => { 'AMOUNT' : '1500', 'CURRENCY' : 'EUR', 'LANGUAGE' : 'en_US', 'ORDERID' : '1234', 'PSPID' : 'MyPSPID', 'SHASIGN' : 'F4CC376CD7A834D997B91598FA747825A238BE0A' }


$ npm test

or more explicitly

$ mocha -R spec test/*