Available Now

Hanzo Pay

Crypto payments made simple

A complete payment gateway bridging fiat and crypto. Accept stablecoins, process card payments, enable on/off-ramps, and handle compliance—all through a single API.

Crypto Checkout

Accept USDC, USDT, ETH, and 100+ tokens. Embeddable checkout widget included.

Card Payments

Traditional card processing with instant crypto settlement.

On/Off Ramps

Let users buy crypto with cards or sell crypto to their bank account.

Multi-Currency

Accept payments in 50+ fiat currencies with automatic conversion.

Back to Web3 Overview

Get Your API Key

Start building in under 5 minutes

99.999%
Uptime
<50ms
Latency
100+
Chains

No credit card required. Free tier includes 300M compute units/month.

Trusted by developers building:

DeFiNFTsPaymentsGamingAI Agents

Key Capabilities

Everything you need, nothing you don't.

Crypto Checkout

Accept USDC, USDT, ETH, and 100+ tokens. Embeddable checkout widget included.

Card Payments

Traditional card processing with instant crypto settlement.

On/Off Ramps

Let users buy crypto with cards or sell crypto to their bank account.

Multi-Currency

Accept payments in 50+ fiat currencies with automatic conversion.

KYC/AML Built-In

Integrated compliance checks. Stay compliant in 100+ countries.

Invoicing

Generate and send crypto invoices. Track payment status automatically.

Instant Settlement

Receive funds instantly in your preferred currency—crypto or fiat.

QR Payments

Generate QR codes for in-person payments. Mobile-optimized flows.

Business Dashboard

Track revenue, refunds, and disputes. Export reports for accounting.

Simple to Integrate

Get started with just a few lines of code. SDKs for every language.

PaymentReceiver.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import "@hanzo/pay/IHanzoPay.sol";
import "@hanzo/pay/IPaymentReceiver.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

contract MerchantContract is IPaymentReceiver {
    IHanzoPay public hanzoPay;
    mapping(bytes32 => bool) public processedPayments;

    event PaymentReceived(bytes32 indexed paymentId, address token, uint256 amount);

    constructor(address _hanzoPay) {
        hanzoPay = IHanzoPay(_hanzoPay);
    }

    // Receive payment callback from HanzoPay
    function onPaymentReceived(
        bytes32 paymentId,
        address payer,
        address token,
        uint256 amount,
        bytes calldata metadata
    ) external override {
        require(msg.sender == address(hanzoPay), "Only HanzoPay");
        require(!processedPayments[paymentId], "Already processed");

        processedPayments[paymentId] = true;

        // Decode order info from metadata
        (string memory orderId) = abi.decode(metadata, (string));

        // Process order fulfillment
        _fulfillOrder(orderId, payer, amount);

        emit PaymentReceived(paymentId, token, amount);
    }

    // Create payment intent on-chain
    function createPaymentIntent(
        uint256 amount,
        address[] calldata acceptedTokens
    ) external returns (bytes32 paymentId) {
        paymentId = hanzoPay.createIntent(
            amount,
            acceptedTokens,
            address(this),
            abi.encode("order_123")
        );
    }

    function _fulfillOrder(string memory orderId, address buyer, uint256 amount) internal {
        // Custom fulfillment logic
    }
}

Built For

E-Commerce

Accept crypto alongside traditional payments. Automatic conversion to your preferred currency.

SaaS Subscriptions

Recurring crypto payments with automatic retry and dunning.

Marketplaces

Split payments, escrow, and multi-party settlements for marketplace transactions.

In-Person Retail

POS integration with QR payments. Instant settlement to your bank.

Supported Chains

Lux
Ethereum
Polygon
Arbitrum
Optimism
Base
Solana
BNB Chain

Start Building with Hanzo Pay

Get your free API key and ship your first request in under 5 minutes. No credit card required.