node package manager



A simple wrapper for the DIBS Payment Services API.


$ npm install dibs


Please note the following:

  • a basic understanding of the DIBS API is required to use this library
  • the DIBS payment services gateway is NOT a free service and this library is useless without a DIBS account - please see for further information.
  • an HMAC key is used to encode the requests. That key can be found on the DIBS account adminstration page under Integration > HMAC Key.


var dibs = require('dibs');


The HMAC key can be set per request or globally. To set a default HMAC Key use:

dibs.hmacKey = '355a26 . . . 35c48d';


With the exception of pingSatellite, all methods recieve the same arguments and returns a promise.

dibs.[methodName](options, hmacKey)

options - object with the request parameters.

  • check for a list of mandatory and optional parameters to use in the options object, for each of the available methods.
  • the parameter types must be followed or a MAC error will be returned.
  • please note: the MAC string should not be included. It is calculated internally by the module.

hmacKey - the HMAC key to encode the request or null (if set globally).

callback - a callback function that receives a data object. The data object contains the answer from DIBS.


This service performs the first part of a credit card transaction (the authorisation). The authorisation includes credit and debit card control and reservation of the required amount for later capture.

dibs.authorizeCard(options, hmacKey);

Please note: the cvc, expMonth and expYear are mandatory fields in the options object, despite being listed as optional in the API docs.


This service performs a credit and debit card check and saves the credit card information for recurring payments.

dibs.createTicket(options, hmacKey);

Please note: the cvc, expMonth and expYear are mandatory fields in the options object, despite being listed as optional in the API docs.


Make a recurring payment using a ticket previously created via the createTicket service.

dibs.authorizeTicket(options, hmacKey);


The second part of any transaction is the capture process. Usually this take place at the time of shipping the goods to the customer.

dibs.captureTransaction(options, hmacKey);


The cancelTransaction service cancels an authorization. If the acquirer used supports reversals, the system automatically sends one such along and thereby releasing any reserved amounts.

dibs.cancelTransaction(options, hmacKey);


The refundTransaction service refunds a captured transaction and transfers the money back to the card holders account.

dibs.refundTransaction(options, hmacKey);


The ping service checks if the satellite system is up and running.

dibs.pingSatellite(function (err, data){ ... });


dibs uses the q library. It allows the following syntax:

    return dibs.captureTransaction(transInfo);
.then(function onSuccess(data){
}, function onError(err){