← Back to Home

Integration Guide

Add secure stablecoin escrow payments to your website in minutes

🚀 Quick Start

Get started with three simple steps. No backend integration required!

Step 1: Include the Script

Add this line to your website's HTML, just before the closing </body> tag:

<script src="https://app.instantescrow.nz/conduit-checkout.js"></script>

Step 2: Initialize with Your Wallet

Configure the checkout with your merchant wallet address:

<script>
  ConduitCheckout.init({
    // Your wallet address to receive payments
    sellerAddress: '0xYourWalletAddressHere',

    // Base URL of checkout page
    baseUrl: 'https://app.instantescrow.nz',

    // Default token: 'USDC' or 'USDT' (default: 'USDC')
    tokenSymbol: 'USDC',

    // Days until auto-release to seller (default: 7)
    expiryDays: 7,

    // Display mode: 'popup' or 'redirect'
    mode: 'popup',

    // Success callback
    onSuccess: function(data) {
      console.log('Payment completed!', data);
      alert('Thank you! Payment received: ' + data.transactionHash);
    },

    // Error callback
    onError: function(error) {
      console.error('Payment failed:', error);
      alert('Payment failed: ' + error);
    },

    // Cancel callback
    onCancel: function() {
      console.log('Payment cancelled');
    }
  });
</script>

Step 3: Add Payment Buttons

Create buttons that open the checkout:

<button onclick="ConduitCheckout.open({
  amount: '50.00',
  description: 'Premium Product'
})">
  Pay $50 with USDC
</button>

✨ Try It Live

See the integration in action with a working example page:

View Interactive Demo →

🎨 Display Modes

Popup Window

Opens in a centered popup. Best for minimal disruption.

mode: 'popup'

Full Redirect

Redirects to checkout page. Best for mobile.

mode: 'redirect'

💡 Common Examples

Basic Product Payment

<button onclick="ConduitCheckout.open({
  amount: '29.99',
  description: 'Premium Widget - Blue',
  orderId: 'ORDER-12345'
})">
  Buy Now - $29.99
</button>

Product with Extended Protection

<button onclick="ConduitCheckout.open({
  amount: '99.00',
  description: 'Professional Service Package',
  orderId: 'SERVICE-' + Date.now(),
  expiryDays: 30,  // 30-day buyer protection
  email: 'customer@example.com'
})">
  Purchase - $99
</button>

Custom Amount (Donations, Tips)

<input type="number" id="amount" placeholder="Enter amount" min="1.001" step="0.01">
<button onclick="
  const amount = document.getElementById('amount').value;
  ConduitCheckout.open({
    amount: amount,
    description: 'Support our project',
    orderId: 'DONATION-' + Date.now()
  });
">
  Donate with USDC
</button>

Accept USDT Instead of USDC

<button onclick="ConduitCheckout.open({
  amount: '500.00',
  description: 'Enterprise License',
  tokenSymbol: 'USDT',  // Use USDT instead of USDC
  expiryDays: 14
})">
  Pay $500 with USDT
</button>

⚙️ Configuration Options

ConduitCheckout.init(options)

OptionTypeRequiredDefaultDescription
sellerAddressstringYes-Your wallet address to receive payments
baseUrlstringYes-Base URL of checkout page
tokenSymbolstringNo'USDC''USDC' or 'USDT'
expiryDaysnumberNo7Days until auto-release to seller
modestringNo'popup''popup' or 'redirect'
onSuccessfunctionNo-Callback when payment completes
onErrorfunctionNo-Callback when payment fails
onCancelfunctionNo-Callback when user cancels

ConduitCheckout.open(params)

ParameterTypeRequiredDescription
amountstring/numberYesPayment amount (e.g., '50.00')
descriptionstringYesPayment description (max 160 chars)
orderIdstringNoYour internal order/transaction ID
emailstringNoCustomer email address
tokenSymbolstringNoOverride default token for this payment
expiryDaysnumberNoOverride default expiry
webhookUrlstringNoWebhook URL for payment verification
metadataobjectNoCustom metadata to include

🔔 Webhook Integration

Receive server-to-server notifications when payments are completed. Perfect for fulfilling orders automatically.

Webhook Payload

{
  "transaction_hash": "0x1234...",
  "contract_address": "0x5678...",
  "contract_id": "abc123",
  "order_id": "1234",
  "expected_amount": 50.00,
  "expected_recipient": "0x9abc...",
  "merchant_wallet": "0xdef0..."
}

Example Webhook Handler (Node.js)

app.post('/api/payment-webhook', express.json(), async (req, res) => {
  const {
    transaction_hash,
    contract_id,
    order_id,
    expected_amount
  } = req.body;

  // Verify payment on blockchain (optional)
  // Update your database
  // Fulfill order
  // Send confirmation email

  console.log(`Payment received for order ${order_id}: ${transaction_hash}`);

  res.json({ success: true });
});

🔒 Features & Security

✓ Buyer Protection

  • • Funds held in escrow smart contract
  • • Time-delayed release (default 7 days)
  • • Dispute mechanism for buyer protection
  • • Admin arbitration for disputes

✓ No Gas Fees

  • • Platform covers all blockchain fees
  • • Users only pay $1 platform fee
  • • Minimum payment: $1.001
  • • Fee included in payment amount

✓ Client-Side Security

  • • Users sign transactions with own wallet
  • • No custody of user funds
  • • HTTPS required for all integrations
  • • Open-source smart contracts

✓ Multi-Token Support

  • • USDC (default)
  • • USDT (optional)
  • • Base network (Ethereum L2)
  • • Low transaction costs

❓ Frequently Asked Questions

What tokens are supported?
Currently USDC and USDT on the Base network (Ethereum Layer 2). More tokens coming soon!
What are the fees?
Fixed $1 platform fee per transaction (included in the amount). Minimum payment is $1.001. No gas fees for users - we cover all blockchain costs.
How long until I receive funds?
Funds are automatically released after the expiry period (default 7 days) unless the buyer raises a dispute. You can customize the expiry period per payment.
Can buyers get refunds?
Buyers can raise a dispute within the protection period by emailing the dispute address. Our admin team reviews disputes and can release funds to either party based on the evidence.
Do I need a crypto wallet?
Yes, you need a wallet address to receive payments. We recommend MetaMask, Coinbase Wallet, or any Web3-compatible wallet. Buyers can use email + social login (we create embedded wallets for them).
Is this secure?
Yes! Payments are secured by immutable smart contracts on the Base blockchain. Users sign transactions with their own wallets (we never custody funds). All transactions are auditable on-chain. HTTPS is required for all integrations.
What about chargebacks?
Cryptocurrency transactions are irreversible - there are no chargebacks like with credit cards. However, our escrow system provides buyer protection through the dispute mechanism during the protection period.

Ready to Get Started?

Try the interactive demo or integrate directly into your site

© 2025 Conduit UCPI. Secure stablecoin escrow payments.