DirectCryptoPay Docs

Frequently Asked Questions

General

What is DirectCryptoPay?

DirectCryptoPay is a non-custodial crypto payment gateway that enables merchants to accept cryptocurrency payments directly to their wallets. We never hold, custody, or control your funds.

How is DirectCryptoPay different from other crypto payment gateways?

Most crypto payment gateways are custodial -- they receive customer payments, hold the funds, and pay you out later (often after converting to fiat). DirectCryptoPay is non-custodial: payments go directly from the customer's wallet to yours on the blockchain. There is no intermediary holding your funds.

Do I need a crypto wallet to use DirectCryptoPay?

Yes. You need an EVM-compatible wallet (MetaMask, Rabby, Ledger, etc.) to receive payments. Your wallet address is where customer payments are sent directly.

Which blockchains are supported?

DirectCryptoPay supports Ethereum, Polygon, and BNB Chain. On testnet, it supports Sepolia, Amoy, and BSC Testnet.

Which tokens can my customers pay with?

Your customers can pay with native tokens (ETH, POL, BNB) and major stablecoins (USDC, USDT, DAI). The available tokens depend on the chain. See Supported Tokens for details.

Pricing & Billing

What does DirectCryptoPay cost?

DirectCryptoPay charges a flat monthly subscription fee. There are no per-transaction percentage fees from DCP. The only variable cost is the blockchain gas fee, which is paid by the customer.

Is there a free trial?

Testnet is completely free to use. You can set up and test your entire integration using test tokens at no cost. A subscription is only required when you switch to mainnet.

Who pays the gas fees?

The customer pays the gas fee as part of the blockchain transaction. Gas fees vary by chain: near-zero on Polygon, a few cents on BNB Chain, and $1-5 on Ethereum. See Gas Fees for details.

Integration

Do I need to be a developer to use DirectCryptoPay?

No. You can use DirectCryptoPay without writing any code:

  • Payment Links -- Create and share payment links from the dashboard
  • WordPress Plugin -- Install the plugin and configure it in WooCommerce settings
  • Payment Buttons -- Create embeddable buttons from the dashboard

For custom integrations, the widget requires basic HTML/JavaScript knowledge.

Can I use DirectCryptoPay with WordPress/WooCommerce?

Yes. We provide a dedicated WooCommerce plugin that integrates directly into the checkout flow. See the WordPress guide for installation instructions.

Do you have a REST API?

The public REST API is currently under development. See the API Reference for planned endpoints. In the meantime, the widget, payment links, and WordPress plugin provide full payment functionality.

How do I know when a payment is confirmed?

Set up a webhook endpoint. When a payment is confirmed on the blockchain, DCP sends an HMAC-signed POST request to your server with the payment details. Never rely on client-side callbacks alone.

Payments

How long does a payment take to confirm?

Confirmation time depends on the blockchain:

Chain Approximate Time
Ethereum 2-3 minutes (12 confirmations)
Polygon ~1 minute (30 confirmations)
BNB Chain ~45 seconds (15 confirmations)

What happens if a payment fails?

If a customer's transaction fails (reverts on-chain), the payment intent status is updated to "failed" and you receive a payment.failed webhook. The customer is not charged, as the transaction was reverted by the blockchain.

Can I issue refunds?

Since DirectCryptoPay is non-custodial, refunds are handled directly by you. To refund a customer, send tokens from your wallet to their wallet address (which is included in the webhook payload and visible in the dashboard).

What about chargebacks?

Blockchain transactions are final and irreversible. There are no chargebacks with crypto payments. Once a transaction is confirmed on-chain, it cannot be reversed by anyone.

Can customers pay with credit/debit cards?

No. DirectCryptoPay is a crypto-only payment gateway. Customers need a crypto wallet with sufficient token balance to make payments.

Security

Is DirectCryptoPay secure?

Yes. The security model is built on several principles:

  1. Non-custodial -- We never hold your funds, so there is nothing for us to lose or be hacked for
  2. Zero-trust verification -- All payment confirmations are done by the backend reading the blockchain directly; the frontend cannot fake payments
  3. HMAC-signed webhooks -- Every webhook is cryptographically signed so your server can verify authenticity
  4. No private keys -- DCP never has access to your wallet's private keys

What if DirectCryptoPay goes down?

Since DCP is non-custodial, your funds are always in your wallet. If DCP experiences downtime, new payments cannot be initiated, but all confirmed payments remain safely in your wallet. There is no risk of losing funds due to DCP downtime.

How do I verify webhook authenticity?

Every webhook includes an X-Webhook-Signature header with an HMAC-SHA256 signature. Verify this using your webhook secret. See Webhooks for code examples in Node.js, Python, PHP, and Go.

Troubleshooting

The payment widget is not loading

  1. Check that the widget script is loaded correctly
  2. Verify your Integration ID is valid
  3. Check the browser console for JavaScript errors
  4. Try in an incognito window to rule out cache issues
  5. Ensure your Content Security Policy allows the widget domain

I am not receiving webhooks

  1. Verify your webhook URL is publicly accessible (not localhost)
  2. Check that the URL is correct in the dashboard
  3. Ensure your server returns a 2xx response within 10 seconds
  4. Check server logs for incoming requests
  5. For local development, use ngrok to expose your local server

Payment shows as pending but never confirms

  1. Check the transaction hash on a block explorer (Etherscan, Polygonscan, etc.)
  2. Verify the transaction was not reverted
  3. Ensure the DCP backend has access to the correct RPC endpoint
  4. Contact support if the issue persists

Need more help? Contact us at support@directcryptopay.com.