How to accept Cardano (ADA) payments for your business
Cardano has a large, loyal community and cheap transactions, but very few checkout tools support it. Here's how to accept ADA directly into your own wallet with automatic order matching — no custodian, no KYC, no node to run.
What you need
- A Cardano mainnet address starting with
addr1from a wallet you control: Eternl, Lace, Yoroi, Daedalus, Typhon, or a Ledger/Trezor. - CryptoInvoice to create payment requests and watch the chain.
How invoices are told apart on Cardano
Cardano has no destination tags, so CryptoInvoice uses unique amounts: each invoice gets a few random digits in the last decimals, for example 43.105347 ADA instead of 43.105. The payer sends exactly that amount (every wallet supports 6 decimals) and the payment is matched to the invoice instantly. If a payer rounds the amount, the oldest open invoice for your address with ≥ 99% of its value is matched instead, and you can always reconcile by transaction hash.
Outputs that you send to yourself (wallet consolidation, change) are ignored, so they never get mistaken for customer payments.
Step by step
- Create a workspace in the dashboard with your
addr1…address. Save the secret key. - Create an invoice in USD/EUR/GBP or ADA, or share your pay page
/pay/yournamefor open amounts. - The customer scans the QR (address) and types the exact amount, or uses the wallet deep-link (
web+cardano:) which pre-fills it in wallets that support CIP-13. - Detection within a block or two. Status goes to paid when the transaction is in a block and confirmed after 6 blocks (~2 minutes). Webhooks fire for both.
Minimum amounts
Cardano requires roughly 1 ADA in any output (the “min-UTxO” rule), so CryptoInvoice sets the minimum invoice at 1.5 ADA. For very small items, consider batching or using USDC on Ethereum.
Integration example
const res = await fetch("https://cryptoinvoice.dev/api/invoices", {
method: "POST",
headers: { Authorization: "Bearer sk_live_…", "Content-Type": "application/json" },
body: JSON.stringify({ amount: "15", currency: "USD", asset: "ADA", memo: "Premium month", metadata: { user_id: 42 }, redirect_url: "https://app.example/welcome" }),
});
const { invoice } = await res.json();
// send the user to invoice.url, listen for the webhook to unlock the feature
FAQ
Do you support native tokens or stablecoins on Cardano?
Not yet — ADA only. For dollar-denominated payments, USDC and USDT on Ethereum are supported.
Which explorer do you use?
Detection uses Koios (a community-run open API); links on the checkout page point to Cardanoscan.
Can I use a stake-key (stake1…) or a Byron address?
No — use a Shelley payment address that starts with addr1.
Start accepting payments today
Create a workspace, paste your address, and send your first payment link. Free for 50 invoices a month, no sign-up form.
Open the dashboard API docsMore guides: XRP · Cardano · Ethereum · USDC & USDT