5-minute setup · No coding skills needed

Add Bitcoin payments
to your website

Follow the steps below. We'll give you a single line of code to paste — that's it. No backend needed.

No backend required
Free to set up
Works on any website
0.1% fee only
1
Requirements
2
Your details
3
Get the code
4
Test it
Step 1 of 4
What do you need?
Before we start, check that you have these 3 things. That's all OpPay needs.
🌐
A website with HTML access
You need to be able to edit your site's HTML — a <head> tag or theme settings. Works with Shopify, WooCommerce, plain HTML, React, any platform.
Required
A Bitcoin wallet address
Where you want to receive payments. Any Bitcoin wallet works — Electrum, Exodus, Ledger, OPNet wallet, etc.
Required
📧
An email address
Just for your OpPay merchant account. We don't send spam — only important transaction alerts.
Required
💻
Coding knowledge
You only need to paste 1 line of code. If you can edit a Word document, you can do this.
Not needed
Step 2 of 4
Tell us about your business
We use this to personalise your embed code and show your customers who they're paying.
🏪
🛈 This is shown to your customers as "Paying to: My Online Shop"
🌐
🛈 Optional — just for your own reference in the dashboard
📧
🛈 Payments go directly to this address — OpPay never holds your funds
🔑
🔑
🛈 Used to log into your merchant dashboard
Step 3 of 4
Here's your code
Add this to your website. Choose your platform below for exact instructions.
1
Add the script to your <head>
Open your HTML file, find the <head> section, and paste this before the closing </head> tag.
index.html — <head> section
<!-- OpPay Bitcoin Payments --> <script src="http://localhost:3001/oppay.js" data-oppay-key="op_live_YOUR_KEY" data-merchant="Your Shop"></script>
2
Add a Pay button wherever you want
Place this button next to any product. Change data-amount to the price in your currency.
Product page — button
<button data-oppay data-amount="49.99" data-currency="EUR" data-description="Order #1234"> ₿ Pay with Bitcoin </button>
3
That's it — save and open your site
The Pay button will automatically open the OpPay checkout when clicked. No extra JavaScript needed.
1
Go to Online Store → Themes → Edit code
In your Shopify admin, click Online StoreThemes → click the ⋯ menuEdit code.
2
Open theme.liquid and add the script
Find theme.liquid in the left sidebar under Layout. Paste this just before the closing </head> tag.
theme.liquid — before </head>
<script src="http://localhost:3001/oppay.js" data-oppay-key="op_live_YOUR_KEY" data-merchant="Your Shop"></script>
3
Add a Pay button to your product template
Open product.liquid or product-form.liquid and add the button next to the Add to Cart button.
product.liquid — button
<button data-oppay data-amount="{{ product.price | money_without_currency }}" data-currency="{{ cart.currency.iso_code }}" data-description="{{ product.title }}"> ₿ Pay with Bitcoin </button>
1
Go to Appearance → Theme Editor
In your WordPress admin, click AppearanceTheme File Editor. Or use a plugin like WPCode to inject scripts — that's even easier.
2
Add to functions.php or header.php
Open header.php and paste this before </head>. Or use WPCode → Header & Footer to avoid editing theme files.
header.php — before </head>
<script src="http://localhost:3001/oppay.js" data-oppay-key="op_live_YOUR_KEY" data-merchant="Your Shop"></script>
3
Add via shortcode or button block
On your product page, add an HTML block and place the pay button. Use [oppay amount="49.99" currency="EUR"] if the shortcode plugin is installed, or paste the raw button HTML.
1
Add the script to public/index.html
Open public/index.html in your React project and add this before </head>.
public/index.html
<script src="http://localhost:3001/oppay.js" data-oppay-key="op_live_YOUR_KEY" data-merchant="Your Shop"></script>
2
Use the OpPay hook in your component
Call window.OpPay.open() from any React component or button handler.
PayButton.jsx
export function PayButton({ amount, currency, description }) { const handlePay = () => { window.OpPay.open({ amount, currency, description, merchant: "Your Shop", onSuccess: (d) => console.log('Paid!', d.txId), onCancel: () => console.log('Cancelled'), }); }; return <button onClick={handlePay}>₿ Pay with Bitcoin</button>; }
Step 4 of 4 — You're almost done!
Test your integration
Click the Pay button below to test the exact checkout flow your customers will see.
Your API key
op_live_YOUR_KEY
Live test — this is what your customers see
Test Product
€ 9.99
Your Product
€ 49.99
Subscription
€ 19.00 / mo