I run joomla 2.5 with civicrm. This will probably work for any civicrm installation, but the path to folders may differ. The code is found here and the developer notes are found here. When I installed the code version was last updated on 9/5/2014.

  • download and extract the zip file to media/civcrm/extensions (may need to create extensions directory)
  • Create a bitpay.com account. Link the account to your bank account. Under "Your Account", create an API key if you don't already have one.
  • Open Joomla admin panel for site and go to the extension civicrm
  • go to Administer -> System Settings -> Extensions and make sure extensions directory is media/civicrm/extensions
  • go to Administer -> System Settings -> Manage Extensions
  • Click "Add New". Then press Refresh. It should then show the Bitcoin extension - press Install and confirm to finish installation.
  • Administer -> System Settings -> Payment Processors. Add a new payment processor. Select type of BitPay (BitCoin won't work at this time), give it a name (the name will show up as an option for your users), and select Payment Processor Account for account. Paste in your BitPay api key. Uncheck the default payment checkbox (unless that is what you want).
  • create or edit a contribution page. Select the payment processors you want to be allowed for options including the new BitCoin payment processor. At this point your code will work, however transactions will get stuck as Pending.
  • set up a civicrm cron job to run every 10-15 minutes or so. I did this with cpanel. Other options may be available to you. I first created a civicrm-cron.php file in my home directory. In it I had the following:
    system('/usr/local/bin/php /PATHTOPUBLICHTML/administrator/components/com_civicrm/civicrm/bin/cli.php -u cronuser -p PASSWORD -e Job -a execute');

cronuser is a joomla user with admin access. I then set the cron to execute this file. The cron command is: "/usr/local/bin/php /MYHOMEPATH/civicrm-cron.php" and is set to run every 13 minutes.

  • set up the civicrm scheduled jobs by logging into the civicrm admin panel. Administer->System Settings -> Scheduled Jobs. Enable Update Bit Pay Invoices to run every time the cron runs. (I had known nothing about this cron. I suggest also enabling the Membership Status Processor if you are new to these settings as well.)

That should do it! BitPay only transfers to your bank account once you have more than $20 in credit.

If you need any additional help feel free to contact me at This email address is being protected from spambots. You need JavaScript enabled to view it..

Additional Notes

The cron on my system sends out an email alert to me if anything is returned. This was useful in figuring out errors. However once I got it running I was still getting a non-consequential error (. I fixed by adding " >/dev/null 2>&1" to the cron command.

It takes awhile for the contribution to be shown as completed (about 20 minutes).

The code had a problem that I fixed by adding a call to bitcoin_init to civicrm_api3_job_update_bitpay_invoices. I let the developer know. I'm not sure if the extension was updated to fix this problem.

At some point I had a problem with the display of the bitpay iframe so I added &view=iframe to the address shown in custom/templates/BitPay/Payments/page.tpl. (see comments on the authors developer page for more info).