Bittylicious Client

From Bittylicious
Jump to navigation Jump to search


You are only permitted to use the Bittylicious client if you have filled in the NDA. This is available in the following formats:

Please fill in the relevant files and email Also state which type of bank account (see below) you use.

Overall client setup

In order to run the Bittylicious client, you must have:

  • PHP working via the command line.
  • The PHP cURL module.
  • Your OpenSSL private key saved as private.key in the Bittylicious client directory.
  • The bank account details set up as per the Bank account setup section.

The Bittylicious client checks whether you have any active trades from Bittylicious every 60 seconds. If one is active, it will log into your bank account to fetch a transaction list. If a transaction matches, the client will sign the transaction on your behalf and notify Bittylicious that the trade has been found.


How often does the client log into the bank account

The client will only log into the bank account when there is at least one active and paid trade for your offer. These are trades in the PAID state.

The client will log into the bank account and every minute attempt a refresh (either the equivalent of pressing F5 or going to another page and pack to the statement page). It will not restart the login process unless necessary.

Once there are no more active trades, the client will attempt to log out cleanly.

Is there any feedback sent from the client?

There is no feedback if trades are not found. Once a trade enters the DISPUTE state, an email will be sent by the main Bittylicious system.

What happens if a reference number does not match, or the amount is wrong

The client will not consider a bank transaction a match unless at least the reference number matches. In the code, there is a tolerance value and any transactions within that tolerance (but never for less than the trade fiat value) will be matched.

Bank account setup



Status: Production quality

$bank = new UK_Halifax("Username", "Password", "Memorable word", "Account name");


$bank = new UK_Halifax("mm34789", "P@ssw0rd", "M3M0RABLE", "Easycash");


  • The Account name is as it appears on your Internet banking screen.


Status: Production quality

$bank = new UK_Santander("Banking ID", "Registration or Security number", "Passcode", "Account name", array("memorable question 1" => "answer 1", "memorable question 2" => "answer 2"));


$bank = new UK_Santander("19031846985", "12345", "P@ssw0rd", "BUSINESS CURRENT ACCOUNT", array("maiden" => "Shelly", "car" => "Polo", "born" => "London"));


  • The memorable questions work on a substring basis, e.g. maiden will be a match for What is your mother's maiden name and car is a match for What make was your first car.
  • The Account name is as it appears on your Internet banking screen.
  • This is only proven to work with Santander business but it should also work with Santander personal


Status: Under development

Lloyds TSB (personal accounts)

Status: Production quality

$bank = new UK_LloydsTSB(Customer ID, "Customer password", "Memorable word", "Account number");

Co-Operative, HSBC, Lloyds TSB (business accounts)

These are lower priority as they will require human input because a physical token or card reader even to log in. This is bad and annoying so consider switching to another bank.


There will never be a client for Nationwide as they do not provide any payment references online. This is bad and insecure so consider switching to another bank.