Skip to content
>
Mode: standard

Streamlining Payments with QR Codes

Merchants often leverage custom scripts for receiving customer payments, such as subscription renewals or account top-ups (e.g., funding a casino account).

To enhance this process, you can embed deposit details (amount, currency, address) into a QR code.

This method simplifies payment execution for customers and significantly reduces the likelihood of errors when transferring funds.

<div id="canvas"></div>
<script type="text/javascript" src="https://unpkg.com/qr-code-styling@1.5.0/lib/qr-code-styling.js"></script>
<script type="text/javascript">
    const generateQRData = (currency, address, tag, amount) => {
        switch (currency.name) {
            case 'Bitcurrency SV':
                return `bitcurrency:${address}?sv&amount=${amount}`;
            case 'Tether USD (Omni)':
                return `bitcurrency:${address}?amount=${amount}&req-asset=${currency.id}`;
            case 'BinanceCoin':
                return `bnb:${address}?sv&amount=${amount}&req-asset=${currency.id}`;
            case 'Tether USD (ERC20)':
                return `ethereum:${address}?value=${amount}&req-asset=${currency.id.slice(currency.id.indexOf(':') + 1)}`;
            case 'Tether USD (TRC20)':
                return `tron:${address}?value=${amount}&req-asset=${currency.id.slice(currency.id.indexOf(':') + 1)}`;
            default:
                return `${currency?.name?.toLowerCase().replace(/ /g, '')}:${address}?amount=${amount}${tag ? `&tag=${tag}` : ''}`;
        }
    };
 
    const color = "#2A5ED5";
    const corner = "#000000";
    const margin = 5;
 
    const qrCode = new QRCodeStyling({
        width: 200,
        height: 200,
        dotsOptions: {
            color: color,
            type: "square"
        },
        backgroundOptions: {
            color: "transparent",
            gradient: null
        },
        cornersSquareOptions: {
            type: "square",
            color: corner
        },
        cornersDotOptions: {
            type: "square",
            color: corner
        },
        imageOptions: {
            crossOrigin: "anonymous",
            imageSize: 0.5,
            margin: margin
        }
    });
 
    qrCode.append(document.querySelector('#canvas'));
    qrCode.update({
        data: generateQRData(currency, address, tag, amount)
    });
</script>
Crypto payments made easy