Generate payment QR codes and deep links for Verus Mobile using VerusID names or addresses.
Enter a VerusID or address and an amount to create a scannable QR code and deep link.
The payment flow from name resolution to mobile confirmation.
name@), i-addresses, and R-addresses as inputUse the pay-deeplink endpoint to generate payment requests from your own app.
// POST /verus/pay-deeplink
const res = await fetch('/verus/pay-deeplink', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
address: 'veruscx@',
amount: 5
})
});
const { deep_link } = await res.json();
console.log(deep_link);
Accept payment in any currency — the protocol converts automatically. Set accepts_conversion: true and max_slippage (0.005 = 0.5%).
// POST /verus/pay-deeplink — conversion mode
const res = await fetch('/verus/pay-deeplink', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
address: 'veruscx@',
amount: 0.20,
currency_id: 'iGBs4DWztRNvNEJBt4mqHszLxfKTNHTkhM', // DAI.vETH
accepts_conversion: true,
max_slippage: 0.005 // 0.5%
})
});
const { deep_link } = await res.json();
// QR encodes: "pay 0.20 DAI — buyer can convert from any currency"
The invoice includes the VERUSPAY_ACCEPTS_CONVERSION flag and slippage tolerance. When scanned, Verus Mobile queries all DeFi basket routes via getcurrencyconverters and lets the buyer choose which currency to pay with. The conversion and payment happen atomically in one on-chain transaction.
<canvas id="qr"></canvas>
<script src="https://cdn.jsdelivr.net/npm/qrcode/build/qrcode.min.js"></script>
<script>
// After fetching deep_link from /verus/pay-deeplink
QRCode.toCanvas(
document.getElementById('qr'),
deep_link,
{ width: 220, margin: 2 }
);
</script>
Any of these address formats can be passed in the address field.
| Format | Example |
|---|---|
| VerusID name | veruscx@ |
| i-address | i6QEbNsGThm2JHUwpLwxSu77DwzFWvfHv6 |
| R-address | RAhD9vgrWZ3ALkq541xdqL2oLYEvsLNrzn |