Skip to main content

Accepting Crypto Payments with Commerce API

To start accepting cryptocurrency payments you need to create a request for payment, also known as a charge.

Creating a Charge

When you create a charge, we generate payment addresses on your behalf for each cryptocurrency that’s enabled. We provide you with a hosted page that you can send to customers to complete the payment.

Here’s an example of dynamically creating a charge:

curl -X POST https://api.commerce.coinbase.com/charges/ \
-H "Content-Type: application/json" \
-H "X-CC-Api-Key: YOUR_API_KEY" \
-H "X-CC-Version: 2018-03-22" \
-d "@data.json"

Where data.json is simply a JSON object:

{
"name":"The Human Fund",
"description":"Money For People",
"pricing_type":"no_price"
}

A charge object is returned with payment addresses for each currency plus a URL to a hosted page where a customer can complete their payment.

info

When you don't specify a price, as in this example, the customer can send any amount.

Accepting a Payment

Unlike credit cards where merchants must obtain payment credentials in order to charge a customer, cryptocurrencies are more like digital cash and rely on the customer explicitly sending money to the merchant.

After creating a charge, Coinbase Commerce continuously monitors each blockchain network for a payment. As cryptocurrencies are push payments, we set an expiration time for the charge, which is currently 1 hour after the creation date. If the customer does not make a payment within that timeframe, we consider the charge to be expired.

Once a payment has been sent, we update your Dashboard with the payment information. To get more information about the payment, simply retrieve the charge by supplying the unique charge code that was returned when the charge was created.

Here’s an example of retrieving a charge:

curl https://api.commerce.coinbase.com/charges/2E8YCQWQ \
-H "X-CC-Version: 2018-03-22"

A charge object is returned with specific information about the payment including, but not limited to, the transaction hash and the number of confirmations that have been received. Learn more.

See Also:

Was this helpful?