All systems normal

← Back to blog

Developer Guide

5 min read

March 6, 2026

Userless Payment API: The Simplest Way to Accept Crypto in Your App

D

Dynopay Team

Developer Relations

Share


The Problem with Traditional Crypto Payment APIs

Most crypto payment gateways require a multi-step integration:

1.

Create a customer account

2.

Store the customer token

3.

Use the token to create payments

4.

Handle token expiration and refresh

This means more code, more database storage, more things that can break. For many use cases (one-time purchases, donations, simple checkouts), this complexity is unnecessary.

Introducing Userless Payment

Dynopay's Userless Payment feature eliminates all that complexity. You can create a payment with a single API call using just your API key:

curl -X POST https://api.dynopay.com/api/user/createPayment \
  -H "x-api-key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"amount": 50, "redirect_uri": "https://yoursite.com/thanks"}'

That's it. One call. No customer creation, no token management, no complexity.

How It Works Under the Hood

When you make an API call with only your x-api-key header (no Authorization/Bearer token), Dynopay:

1.

Validates your API key — confirms your merchant identity

2.

Auto-creates an internal customer — handled transparently, you never see it

3.

Processes the payment — returns a checkout URL or QR code immediately

The internal customer is reused across calls, so there's no performance overhead.

Two Flavors of Userless Payment

Hosted Checkout (createPayment)

Redirect customers to Dynopay's hosted checkout page:

const res = await axios.post('https://api.dynopay.com/api/user/createPayment', {
  amount: 25.00,
  redirect_uri: 'https://yoursite.com/success',
  webhook_url: 'https://yoursite.com/webhooks/payment'
}, {
  headers: { 'x-api-key': API_KEY }
});

// Redirect customer
window.location.href = res.data.data.redirect_url;

Direct QR Code (cryptoPayment)

Generate a QR code and wallet address for your own UI:

const res = await axios.post('https://api.dynopay.com/api/user/cryptoPayment', {
  amount: 25.00,
  currency: 'BTC',
  redirect_uri: 'https://yoursite.com/success'
}, {
  headers: { 'x-api-key': API_KEY }
});

// Display in your UI
const { qr_code, address, amount, currency } = res.data.data;

When to Use Userless vs Customer-Based

Use CaseRecommended Flow
E-commerce checkout✅ Userless
Donation page✅ Userless
Invoice payments✅ Userless
SaaS subscriptions✅ Customer-based
Marketplace (per-seller wallets)✅ Customer-based
In-app wallet balance✅ Customer-based

Backward Compatible

The best part? Userless payment is fully backward compatible. If you later decide you need per-customer tracking, just add the Authorization: Bearer header — the same endpoints work both ways.

Try It Now

Get your API key from the Dynopay dashboard and make your first userless payment in under 5 minutes.

Read the full API docs →


Share

Ready to accept crypto payments?

Get started in minutes with Dynopay's simple API integration.

Start accepting payments