Payment links provide a simple way to accept stablecoin payments without requiring customers to have a Blockradar account or integrate with your application directly.

Introduction

Payment links are shareable URLs that allow anyone to send stablecoin payments to your wallet. They’re perfect for:
  • E-commerce: Send to customers for product purchases
  • Invoicing: Include in invoices for services rendered
  • Donations: Share on social media or websites
  • Marketplace payments: Facilitate peer-to-peer transactions
  • Subscription billing: Recurring payment collection

Creation

Create a payment link with specific parameters like amount, name, description, and payment limits.

Sharing

Share the generated URL with your customers through email, messaging, or embed it on your website.

Payment

Customers click the link, enter their payment details, and complete the transaction.

Confirmation

You receive webhook notifications and can track payment status in real-time.
  • Customizable Parameters: Set amount, description, payment limits, and metadata
  • Shareable URLs: Generate unique payment links for each transaction
  • Customer Pre-filling: Pre-populate customer details via URL query parameters
  • Real-time Tracking: Monitor payment status and receive webhook notifications
  • Multi-network Support: Accept payments across different blockchain networks
  • Auto-sweep Integration: Funds automatically consolidated to master wallet

Multi-Asset Support

  • USDT, USDC, DAI, BUSD across multiple blockchains
  • Ethereum, BSC, Polygon, Base, Arbitrum, Optimism, Tron, Solana, Celo
  • Automatic conversion and routing for optimal user experience

Flexible Configuration

  • Fixed amounts for specific products/services
  • Variable amounts for donations or custom payments
  • Payment limits to ensure timely payments
  • Custom metadata for tracking and analytics
  • Webhook notifications for real-time updates

Security & Compliance

  • AML screening on all incoming payments
  • Address validation and verification
  • Fraud detection and prevention
  • Regulatory compliance across jurisdictions

Payment Flow

When you create a payment link, Blockradar returns a unique payment URL:
{
  "id": "pl_123456789",
  "name": "Product Purchase",
  "url": "https://pay.blockradar.co/payment-link-10012",
  "amount": "100.00",
  "currency": "USD",
  "active": true
}

2. Customer Pre-filling with Query Parameters

You can enhance the payment URL with query parameters to automatically pre-fill customer details on the payment page:
https://pay.blockradar.co/payment-link-10012?name=Customer&email=customer@example.com&reference=ORDER123&amount=99.99&redirectUrl=https://yoursite.com/payment-success
Supported Optional Query Parameters:
  • name - Customer’s name (appears on payment page)
  • email - Customer’s email address
  • reference - Custom reference that will be included in transaction responses
  • amount - Pre-fill the payment amount (overrides link’s default amount if set)
  • redirectUrl - URL to redirect to after payment completion

3. Post-Payment Redirect

When a redirectUrl is provided, customers will be automatically redirected to your specified URL after payment processing is complete. The redirect URL will include the following query parameters: Redirect Query Parameters:
  • status - Payment status (success, failed, pending)
  • tx_reference - Transaction reference ID
  • reference - Your custom reference (if provided)
  • slug - Payment link identifier
Example Redirect URL:
https://yoursite.com/payment-success?status=success&tx_reference=tx_abc123&reference=ORDER123&slug=payment-link-10012
The redirect only occurs after payment processing is complete. If no redirectUrl is provided, customers will see the default payment completion page.

4. Amount Configuration

Payment links support two amount modes: Fixed Amount (Pre-set)
  • When you specify an amount during creation, customers cannot modify the payment amount
  • Ideal for specific products or services with set pricing
  • Example: Product purchase for exactly $99.99
Variable Amount (Customer Input)
  • When no amount is specified, customers can enter their own payment amount
  • Perfect for donations, tips, or flexible pricing scenarios
  • Customers see an amount input field on the payment page

4. Payment Processing

Customers visit the payment link, review pre-filled details, and complete the transaction using their preferred stablecoin.

5. Transaction Response

The reference parameter from the URL will be included in the transaction response and webhook payloads, allowing you to link payments back to your internal systems.

Try It Out

Experience Blockradar payment links firsthand with our live demo: 🔗 Demo Payment Link: https://pay.blockradar.co/demo This demo showcases:
  • Payment Flow: Complete customer experience from link to completion
  • UI/UX: Modern, intuitive payment interface
  • Stablecoin Options: Multiple payment methods and networks
  • Real-time Updates: Live transaction status and confirmations
The demo payment link is for testing purposes only. No real transactions will be processed.
Create a simple payment link for a fixed amount:
{
  "name": "Product Purchase",
  "description": "Payment for Laptop Pro 2024",
  "amount": "100.00",
  "redirectUrl": "https://store.example.com/thank-you",
  "successMessage": "Thank you for your purchase!",
  "metadata": "{\"product_id\": \"prod_123\", \"order_id\": \"ord_456\"}"
}
Allow customers to choose their payment amount:
{
  "name": "Donation Campaign",
  "description": "Support our disaster relief efforts",
  "redirectUrl": "https://charity.example.com/thank-you",
  "successMessage": "Thank you for your generous donation!",
  "metadata": "{\"campaign\": \"disaster_relief_2024\"}"
}
Include a file (e.g., invoice, product image) with your payment link using form-data: Form Data Fields:
  • name: Service Invoice
  • description: Web development services - January 2024
  • amount: 1500.00
  • redirectUrl: https://company.example.com/payment-success
  • successMessage: Payment received! We’ll start working on your project.
  • metadata: invoice_id: INV-2024-001, service: web_development
  • file: [cover.png] (file upload)
When including file uploads, use form-data instead of JSON. The file will be stored and accessible via the payment link.

Required Parameters

ParameterTypeDescription
namestring (max: 250)The name of the payment link

Optional Parameters

ParameterTypeDescription
descriptionstring (max: 250)A description of the payment link
slugstring (max: 250)A unique identifier (URL-friendly). Must match regex: ^[a-zA-Z0-9-]+$
amountstringThe amount for the payment link. Must be a valid string number > 0
redirectUrlstring (URL)The URL to redirect the user after payment. Must include http:// or https://
successMessagestring (max: 500)Message shown when the payment succeeds
inactiveMessagestring (max: 500)Message shown when the payment link is inactive
metadataobject (JSON string)Custom metadata as key-value pairs (string or number). Must be sent as a JSON string in form-data
paymentLimitnumber (min: 1)Maximum number of payments allowed for this link
filefileAn optional file upload (e.g., image or document) attached to the payment link

Payment Flow

Customer Experience

  1. Click Payment Link
    • Customer receives and clicks the payment link
    • Link opens to a secure payment page
  2. Select Payment Method
    • Choose from available stablecoins
    • Select preferred blockchain network
    • Enter payment amount (if variable)
  3. Complete Payment
    • Customer confirms transaction details
    • Payment is processed on the blockchain
    • Real-time confirmation and status updates
  4. Success Confirmation
    • Payment confirmation page
    • Optional redirect to your website
    • Receipt and transaction details

Merchant Experience

  1. Real-time Notifications
    • Webhook events for payment status
    • Email notifications (if configured)
    • Dashboard updates
  2. Payment Tracking
    • Transaction history and status
    • Payment analytics and reporting
    • Integration with your systems

Webhook Events

Payment links trigger the following webhook events when payments are received:
EventDescription
deposit.successPayment was received via the payment link
deposit.failedPayment attempt failed

Webhook Payload Example

{
  "event": "deposit.success",
  "data": {
    "id": "0d7a0b98-943c-48d0-8baa-216c29956050",
    "reference": "bjXPk7d00",
    "senderAddress": "0x451dEFC27B45808078e875556AF06bCFdC697BA4",
    "recipientAddress": "0x9D8dF15628B737CAf63a92Abd8E8bb304210eA94",
    "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "1",
    "amountPaid": "1",
    "amountUSD": "1",
    "rateUSD": "1",
    "fee": null,
    "feeHash": null,
    "currency": "USD",
    "toCurrency": null,
    "blockNumber": 34771099,
    "blockHash": "0xa9dc060dbe649676a15ae1faee725851fe1ecf2401b200e60fff33fc0ff41e84",
    "hash": "0x9f01af8f517afb3fd3ee17f36dabee03a4d6514885473115815de86c28ea7dfb",
    "confirmations": 6,
    "confirmed": true,
    "gasPrice": "7026436",
    "gasUsed": "62159",
    "gasFee": "0.000000436756235324",
    "status": "SUCCESS",
    "type": "DEPOSIT",
    "note": null,
    "amlScreening": {
      "provider": "ofac, fbi, tether, circle",
      "status": "success",
      "message": "Address is not sanctioned"
    },
    "assetSwept": true,
    "assetSweptAt": "2025-08-27T21:53:22.300Z",
    "assetSweptGasFee": "0.000000489848406004",
    "assetSweptHash": "0xe85efcf15ff8eaa2429aea32515347d65ff8098f22dac567611c258441bde809",
    "assetSweptSenderAddress": "0x9D8dF15628B737CAf63a92Abd8E8bb304210eA94",
    "assetSweptRecipientAddress": "0xb55c054D8eE75224E1033e6eC775B4F62D942b43",
    "assetSweptAmount": "1",
    "reason": "Funds swept successfully",
    "network": "mainnet",
    "chainId": 8453,
    "metadata": {},
    "toAmount": null,
    "signedTransaction": null,
    "rate": null,
    "createdAt": "2025-08-27T21:52:19.839Z",
    "updatedAt": "2025-08-27T21:53:22.303Z",
    "asset": {
      "id": "3a18a31a-86ad-44a0-9b9c-cdb69d535c64",
      "name": "USD Coin",
      "symbol": "USDC",
      "decimals": 6,
      "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "standard": null,
      "currency": "USD",
      "isActive": true,
      "logoUrl": "https://res.cloudinary.com/blockradar/image/upload/v1716800083/crypto-assets/usd-coin-usdc-logo_fs9mhv.png",
      "network": "mainnet",
      "isNative": false,
      "createdAt": "2024-06-08T12:59:11.303Z",
      "updatedAt": "2025-06-03T11:34:36.288Z"
    },
    "address": {
      "id": "824d8ff9-1ee4-43d1-bec0-c77f25699cd6",
      "address": "0x9D8dF15628B737CAf63a92Abd8E8bb304210eA94",
      "name": null,
      "isActive": true,
      "type": "INTERNAL",
      "derivationPath": "m/44'/60'/0'/0/503",
      "metadata": null,
      "configurations": {
        "aml": {
          "status": "success",
          "message": "Address is not sanctioned",
          "provider": "ofac, fbi, tether, circle"
        }
      },
      "network": "mainnet",
      "createdAt": "2025-08-27T21:52:19.839Z",
      "updatedAt": "2025-08-27T21:52:19.839Z"
    },
    "blockchain": {
      "id": "28a730d3-211b-40f7-bb8f-dd589dcc738e",
      "name": "base",
      "symbol": "eth",
      "slug": "base",
      "derivationPath": "m/44'/60'/0'/0",
      "isEvmCompatible": true,
      "isL2": true,
      "logoUrl": "https://res.cloudinary.com/blockradar/image/upload/v1716800080/crypto-assets/Base_Network_Logo_vqyh7r.png",
      "isActive": true,
      "tokenStandard": null,
      "createdAt": "2024-06-07T11:09:56.586Z",
      "updatedAt": "2025-11-26T15:26:21.825Z"
    },
    "wallet": {
      "id": "6b741fbc-8a9c-48a1-92b0-ae7b52de8b9e",
      "name": "Base Mainnet Wallet",
      "description": "This is base mainnet wallet",
      "address": "0xb55c054D8eE75224E1033e6eC775B4F62D942b43",
      "derivationPath": "m/44'/60'/0'/0/0",
      "isActive": true,
      "status": "ACTIVE",
      "network": "mainnet",
      "configurations": {
        "withdrawal": {
          "gasless": {
            "isActive": true
          }
        },
        "autoSweeping": {
          "isActive": true
        }
      },
      "createdAt": "2024-06-15T02:53:23.409Z",
      "updatedAt": "2025-08-18T23:26:13.469Z",
      "business": {
        "id": "a109729b-3b97-4fb3-a90a-769a0cbf6a25",
        "name": "Blockradar",
        "sector": "infrastructure",
        "userId": "831b739e-ed85-499a-b273-8a1a5b41b7a0",
        "status": "ACTIVE",
        "pipedriveOrganizationId": "308",
        "createdAt": "2023-04-28T17:40:18.541Z",
        "updatedAt": "2025-06-19T23:51:01.019Z"
      }
    },
    "beneficiary": null,
    "paymentLink": {
      "id": "dd8eb830-0971-4f61-97bc-b1ad352e1c48",
      "name": "Blockradar Checkout Demo",
      "description": "Blockradar payment links simplify stablecoin transactions into a clean, intuitive experience. This demo shows how users can pay securely using stablecoins with just a few clicks, fast, transparent, and onchain.",
      "slug": "demo",
      "amount": null,
      "currency": "USD",
      "imageUrl": "https://res.cloudinary.com/blockradar/image/upload/v1752049884/payment-links/ndlbgyb5wg70bpr3p1uu.png",
      "redirectUrl": null,
      "successMessage": null,
      "active": true,
      "inactiveMessage": null,
      "network": "mainnet",
      "type": "payment",
      "createdChannel": "dashboard",
      "metadata": {},
      "configurations": {},
      "createdAt": "2024-06-20T05:38:13.863Z",
      "updatedAt": "2025-07-09T08:31:25.328Z"
    },
    "toAsset": null,
    "toBlockchain": null,
    "toWallet": null
  }
}

Key Webhook Data Fields

The webhook payload includes comprehensive information about the payment:
FieldDescription
referenceCustom reference from URL query parameters (e.g., ORDER123, customer ID)
paymentLinkComplete payment link details including name, description, and metadata
assetAsset information (USDC, USDT, etc.) with network details
blockchainNetwork information (Base, Ethereum, etc.)
walletMaster wallet details and configurations
addressCustomer address that received the payment
amlScreeningAnti-money laundering screening results
assetSweptAuto-sweep status and details
metadataCustom data from the payment link
The reference field in webhook payloads corresponds to the reference query parameter you include in the payment URL. This allows you to track payments back to specific orders, customers, or internal references in your system.

Best Practices

Security

  • Use HTTPS for all payment link sharing
  • Monitor webhook events for suspicious activity
  • Implement rate limiting on your webhook endpoints

User Experience

  • Clear descriptions of what the payment is for
  • Mobile-optimized payment pages
  • Multiple payment options when possible

Integration

  • Store payment link IDs for tracking
  • Use metadata to link payments to your systems
  • Implement webhook retry logic for reliability
  • Test webhooks in sandbox environment first

Use Cases & Examples

E-commerce Store

{
  "name": "Laptop Pro 2024",
  "description": "High-performance laptop with latest specifications",
  "amount": "299.99",
  "redirectUrl": "https://store.example.com/thank-you",
  "successMessage": "Thank you for your purchase! Your order has been confirmed.",
  "metadata": "{\"product_id\": \"laptop_pro_2024\", \"category\": \"electronics\", \"customer_email\": \"customer@example.com\"}",
  "paymentLimit": 1
}

Service Invoice

{
  "name": "Web Development Services",
  "description": "Professional web development services - January 2024",
  "amount": "1500.00",
  "redirectUrl": "https://company.example.com/payment-success",
  "successMessage": "Payment received! We'll start working on your project immediately.",
  "metadata": "{\"invoice_id\": \"INV-2024-001\", \"service\": \"web_development\", \"client_id\": \"client_789\"}",
  "paymentLimit": 1
}

Donation Campaign

{
  "name": "Disaster Relief 2024",
  "description": "Support our disaster relief efforts in affected regions",
  "amount": "10.00",
  "redirectUrl": "https://charity.example.com/thank-you",
  "successMessage": "Thank you for your generous donation! Every contribution makes a difference.",
  "metadata": "{\"campaign\": \"disaster_relief_2024\", \"organization\": \"charity_foundation\", \"tax_deductible\": true}",
  "paymentLimit": 1000
}

Subscription Service

{
  "name": "Premium Plan Monthly",
  "description": "Monthly subscription to our premium service",
  "amount": "29.99",
  "redirectUrl": "https://service.example.com/welcome",
  "successMessage": "Welcome to Premium! Your subscription is now active.",
  "metadata": "{\"plan\": \"premium_monthly\", \"billing_cycle\": \"monthly\", \"features\": \"unlimited_access\"}",
  "paymentLimit": 100
}
These examples use the correct Blockradar payment links API parameters. The metadata field must be sent as a JSON string in form-data, and file uploads are supported for additional content.

Testing & Development

Sandbox Environment

  • Use testnet networks for development
  • Test webhook delivery and handling
  • Verify payment flows end-to-end
  • Test edge cases and error scenarios

Webhook Testing

  • Use tools like webhook.site for testing
  • Verify signature validation
  • Test retry mechanisms
  • Monitor webhook delivery rates

Support & Resources

API Reference

Getting Help

Payment links are a powerful way to accept stablecoin payments with minimal integration effort. Start with simple use cases and gradually add complexity as you become more familiar with the system.