How to accept Bitcoin (BTC) payments with PHP

Over the last decade, the way we can receive value over the internet has dramatically shifted from traditional payments to programmable money. Cryptocurrencies like Bitcoin have emerged and can be embedded into online shops or e-commerce sites to receive customer payments.

In its simplest form, all that is needed to receive Bitcoin (BTC) payments in PHP is to display a Bitcoin address to the customer. Albeit outside of the scope of this document, it is easy to create a Bitcoin address programmatically and obtain control of the private key. This is a good starting point if you are a PHP developer and wish to create your own Bitcoin address.

This simple type of Bitcoin payment integration is suitable for anonymous donations, but requires a lot of additional overhead to make it play well with accounting systems, compliance, and regulatory requirements. Connecting them with customer information and monitoring the Bitcoin Network to detect the correct payment transaction and mark the sale as completed, introduces plenty of additional complexity in PHP.

Fortunately, Whalestack provides a suite of APIs and a convenient PHP software development kit (SDK) for online merchants and e-commerce sites that wish to accept Bitcoin payments. Using Whalestack, it is no longer necessary to continuously monitor various blockchains for payment transactions. Whalestack creates cryptocurrency payment transactions on your behalf and automatically notifies you once the payment has been settled.

Read our SDK guide and learn how to accept Bitcoin payments with this tutorial.

Creating a Bitcoin payment request is as simple as firing the below API request using the PHP SDK.

$response = $client->post('/checkout/hosted', array(
    'charge' => array(
        'billingCurrency' => 'EUR', // a billing currency as given by GET /currencies
        'lineItems' => array( // a list of line items included in this charge
            array(
                'description' => 'PCI Graphics Card',
                'netAmount' => 169.99, // denominated in the currency specified above
                'quantity' => 1
            )
        ),
        'discountItems' => array() // an optional list of discounts
        'shippingCostItems' => array() // any shipping costs?
        'taxItems' => array() // any taxes?
    ),
    'settlementAsset' => 'USDC:GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN' // your settlement asset as given by GET /assets (or ORIGIN to omit conversion) 
));

The API request returns a list of cryptocurrency payment methods and deposit addresses, including Bitcoin. These can be displayed back to a customer to complete payment.

Moreover, Whalestack's platform provides built-in business accounting tools, invoicing and customer management. Most importantly, payments in Bitcoin can automatically be settled in your national fiat currency and withdrawn directly into your bank account. Inspect our PHP SDK on GitHub to get started.

Last Update: Oct 2, 2023

Developers