GroundedPay Documentation
Everything you need to accept crypto payments on your website. From one-click Shopify installs to full API access, we have you covered.
Getting Started
GroundedPay is a non-custodial crypto payment gateway. Funds go directly to your wallet -- we never hold your money. Here is how to get up and running:
Create your account
Head to the sign-up page and register with your business name, email, and an EVM-compatible wallet address (MetaMask, Coinbase Wallet, etc.). This is the address where you will receive payments.
Complete onboarding
After registration, the setup wizard will walk you through configuring your store, choosing a plan, and copying your embed code. Save your Merchant ID and API Key -- you will need them for integration.
Add the checkout widget
Paste the embed code into your site (see the Installation Guide below). The widget adds a "Pay with Crypto" button at checkout.
Go live
Test a payment from your storefront. Once confirmed, you are live. Monitor transactions from your dashboard.
Installation Guide
Choose your platform below. All integrations use a lightweight JavaScript snippet that loads the GroundedPay checkout widget.
Shopify Integration
There are two ways to add GroundedPay to your Shopify store:
Option A: One-Click App Install
Search for GroundedPay in the Shopify App Store and click Install. The app will automatically configure itself with your merchant credentials. No code required.
Option B: Manual Script Tag
If you prefer manual installation, add this script to your Shopify theme:
- Go to Online Store → Themes → Edit Code
- Open
theme.liquid - Paste the following code just before the closing
</body>tag:
<!-- GroundedPay Checkout Widget -->
<script
src="https://cdn.groundedpay.com/checkout.js"
data-merchant="YOUR_MERCHANT_ID"
data-key="YOUR_API_KEY"
defer>
</script>
WooCommerce Integration
Add the GroundedPay widget to your WooCommerce store by inserting the script tag into your theme:
- Go to Appearance → Theme Editor in your WordPress admin
- Open your theme's
footer.phpfile - Paste the following code before
<?php wp_footer(); ?>:
<!-- GroundedPay Checkout Widget -->
<script
src="https://cdn.groundedpay.com/checkout.js"
data-merchant="YOUR_MERCHANT_ID"
data-key="YOUR_API_KEY"
data-platform="woocommerce"
defer>
</script>
The widget will automatically detect WooCommerce cart data and display the "Pay with Crypto" button on your checkout page.
Custom Website
For any website, add the GroundedPay script and trigger checkout programmatically:
1. Include the Script
<script src="https://cdn.groundedpay.com/checkout.js" defer></script>
2. Initialize and Launch Checkout
const gp = new GroundedPay({
merchantId: 'YOUR_MERCHANT_ID',
apiKey: 'YOUR_API_KEY',
});
// When the user clicks "Pay with Crypto"
document.getElementById('pay-btn').addEventListener('click', () => {
gp.open({
amount: '49.99', // USD amount
label: 'Order #1234', // Description shown in widget
onSuccess: (tx) => {
console.log('Payment confirmed:', tx.hash);
},
onCancel: () => {
console.log('Payment cancelled');
}
});
});
Widget Customization
Customize the checkout widget appearance using data attributes on the script tag or through the JavaScript API.
Available Options
| Attribute / Option | Type | Default | Description |
|---|---|---|---|
| data-color | string | #6366f1 | Primary accent color for buttons and highlights |
| data-button-text | string | "Pay with Crypto" | Text displayed on the checkout button |
| data-logo | URL | none | URL to your business logo, displayed in the checkout modal |
| data-coins | string | "ETH,USDC,USDT,BTC" | Comma-separated list of accepted cryptocurrencies |
| data-theme | string | "dark" | Widget theme: dark or light |
| data-position | string | "inline" | Button position: inline, fixed-bottom, or floating |
Example: Custom Colors and Coins
<script
src="https://cdn.groundedpay.com/checkout.js"
data-merchant="YOUR_MERCHANT_ID"
data-key="YOUR_API_KEY"
data-color="#22c55e"
data-button-text="Checkout with Crypto"
data-coins="ETH,USDC"
data-logo="https://yoursite.com/logo.png"
defer>
</script>
Supported Cryptocurrencies
- ETH -- Ethereum (mainnet & Base L2)
- USDC -- USD Coin (ERC-20 & Base)
- USDT -- Tether (ERC-20)
- BTC -- Bitcoin (on-chain)
API Reference
All API requests require your API key in the x-api-key header. The base URL is https://api.groundedpay.com.
x-api-key: YOUR_API_KEY. You can find your key in the merchant dashboard.
Create a Payment
Create a new payment session. Returns a checkout URL and payment ID.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| amount | number | required | Payment amount in USD (e.g., 49.99) |
| label | string | optional | Description shown to the customer (e.g., "Order #1234") |
| metadata | object | optional | Arbitrary key-value data attached to the payment |
| redirect_url | string | optional | URL to redirect after successful payment |
| webhook_url | string | optional | Override the default webhook URL for this payment |
Example Request
curl -X POST https://api.groundedpay.com/api/checkout/create \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"amount": 49.99,
"label": "Order #1234",
"metadata": { "order_id": "1234", "customer": "jane@example.com" },
"redirect_url": "https://yoursite.com/thanks"
}'
Example Response
{
"id": "pay_abc123def456",
"checkout_url": "https://pay.groundedpay.com/c/pay_abc123def456",
"amount_usd": "49.99",
"status": "pending",
"created_at": "2026-04-14T12:00:00Z",
"expires_at": "2026-04-14T12:30:00Z"
}
Check Payment Status
Retrieve the current status of a payment.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | required | The payment ID returned from the create endpoint |
Example Request
curl https://api.groundedpay.com/api/checkout/status/pay_abc123def456 \
-H "x-api-key: YOUR_API_KEY"
Example Response
{
"id": "pay_abc123def456",
"status": "confirmed",
"amount_usd": "49.99",
"amount_crypto": "0.02841",
"coin": "ETH",
"tx_hash": "0x8a3f...b7e2",
"confirmed_at": "2026-04-14T12:05:23Z"
}
Status Values
| Status | Description |
|---|---|
| pending | Waiting for customer to send payment |
| detected | Transaction seen on-chain, awaiting confirmations |
| confirmed | Payment confirmed and settled to your wallet |
| expired | Payment window expired (30 minutes) |
| failed | Transaction failed or insufficient amount sent |
Webhooks
GroundedPay sends webhook notifications to your server when payment status changes. Configure your webhook URL in the dashboard settings.
Webhook Payload
Webhooks are sent as POST requests with a JSON body:
{
"event": "payment.confirmed",
"payment": {
"id": "pay_abc123def456",
"status": "confirmed",
"amount_usd": "49.99",
"amount_crypto": "0.02841",
"coin": "ETH",
"tx_hash": "0x8a3f...b7e2",
"metadata": { "order_id": "1234" }
},
"timestamp": "2026-04-14T12:05:23Z"
}
Webhook Events
| Event | Description |
|---|---|
| payment.detected | Transaction seen on-chain |
| payment.confirmed | Payment fully confirmed and settled |
| payment.expired | Payment window expired without completion |
| payment.failed | Payment failed (wrong amount, reverted, etc.) |
Verifying Webhooks
Each webhook includes a x-groundedpay-signature header containing an HMAC-SHA256 signature. Verify it using your API key:
const crypto = require('crypto');
function verifyWebhook(body, signature, apiKey) {
const expected = crypto
.createHmac('sha256', apiKey)
.update(body)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}
200 status code to acknowledge receipt. Failed deliveries are retried up to 5 times with exponential backoff.
Pricing
GroundedPay offers simple, transparent pricing. Lower per-transaction rates as you grow -- no hidden fees, no surprises.
| Plan | Monthly Fee | Transaction Fee | Volume Limit | Key Features |
|---|---|---|---|---|
| Free | $0 | 1.5% | Unlimited | Basic widget, 1 store, email support |
| Starter | $99 | 1.2% | $10K/mo | Shopify integration, analytics dashboard |
| Growth | $299 | 0.9% | $50K/mo | Multi-store, custom branding, priority support |
| Pro | $749 | 0.5% | $100K/mo | White-label checkout, custom integrations, phone support |
| Enterprise | Custom | Custom | Unlimited | Dedicated account manager, SLA guarantees |
Need higher volume or custom rates? Contact Sales for Enterprise pricing.
Frequently Asked Questions
Support
We are here to help you get set up and answer any questions.
Priority Support
Available on Growth, Pro, and Enterprise plans. Faster response times.
Upgrade your plan