Advice and answers from the BitPay Team


In config.php:

  • Set $storeURL to the URL of your store's homepage.
  • Set $storeID to your ecwid store ID found in the bottom-right of the Ecwid control panel.
  • Set $bitpayURL to the URL of the bitpay/ folder which you extracted from this plugin.
  • Set $apiKey to the key you created at in the My Account > API Access Keys section.
  • Adjust $speed if desired.

In your Ecwid control panel:

  • Click System Settings > Payment, then click Authorize. Rename this to Bitpay or whatever you'd prefer.
  • Change Payment Processor to Credit Card: SIM
  • Click Account Details
  • API Login ID: choose something random here and copy it to config.php's $login variable.
  • Transaction Key: choose something random
  • MD5 Hash Value: choose something random here and copy it to config.php's $hashValue variable.
  • Transaction Type: choose Authorize and Capture.
  • Click Advanced Settings.
  • Type in the url to bitpay/redirect2bitpay.php on your server.
  • Click Save.
  • Click Save again.
  • Click Design > CSS Themes.
  • Either click New CSS Theme or edit your own theme.
  • Add this to the text area of your custom theme to display the Bitcoin payment logo:
/* bitpay checkout image */
img.defaultCCImage {
    padding: 25px 263px 0px 0px; 
    background: url(''); 
    height: 0px;
  • Click Save.


The official BitPay API documentation should always be your first reference for development:

  • Verify that your "notificationURL" for the invoice is "https://" (not "http://")
  • Ensure a valid SSL certificate is installed on your server. Also ensure your root CA cert is updated. If your CA cert is not current, you will see curl SSL verification errors.
  • Verify that your callback handler at the "notificationURL" is properly receiving POSTs. You can verify this by POSTing your own messages to the server from a tool like Chrome Postman.
  • Verify that the POST data received is properly parsed and that the logic that updates the order status on the merchants web server is correct.
  • Verify that the merchants web server is not blocking POSTs from servers it may not recognize. Double check this on the firewall as well, if one is being used.
  • Use the logging functionality to log errors during development. If you contact BitPay support, they will ask to see the log file to help diagnose any problems.
  • Check the version of this plugin against the official repository to ensure you are using the latest version. Your issue might have been addressed in a newer version of the library.
  • If all else fails, send an email describing your issue in detail to
Did this answer your question?