What Is a Stablecoin Payment Link? Accept USDC and USDT Without Code
Learn how stablecoin payment links package amount, network, asset, expiry, and order tracking so you can accept USDC or USDT without building a checkout.
A stablecoin payment link is a shareable checkout URL. The merchant configures the amount, accepted stablecoins, and networks; each payer who starts a new attempt receives an independent order, exact payment instructions, and an expiry. It is easier to reconcile than sending a wallet address and faster to launch than building a checkout.
The URL itself is not proof of payment. A reliable system must still match the chain, asset, address, and amount, wait for onchain finality, and notify the merchant before fulfillment. StableOps hosts the checkout interface but never takes custody of merchant funds: USDC or USDT goes directly to a merchant-controlled receiving address.
What is a stablecoin payment link?
A stablecoin payment link stores reusable collection settings and opens a web checkout for the payer. Those settings commonly include:
- a product or service name and description;
- a base amount;
- accepted networks and assets such as USDC or USDT;
- the expiry applied to each Payment Order;
- completion, cancellation, branding, and merchant-support details.
Every new payment attempt creates a Payment Order from that configuration. The order then defines the exact amount, candidate receiving addresses, deadline, and status. A reusable URL is therefore not one order that many people pay repeatedly.
A payment link is also more than a wallet URI behind a short URL. ERC-681 can encode Ethereum native-asset or ERC-20 transaction requests, but its amount and other arguments are suggestions that the payer can edit. The Solana Pay specification likewise defines transfer requests for URLs and QR codes, while telling applications to confirm that a transaction is valid before releasing goods or services. A URI improves wallet handoff; the order layer supplies matching, expiry, finality, and fulfillment evidence.
How do payment links compare with wallet addresses, hosted checkout, and APIs?
Separate two concepts that product names often blur. Hosted interface means a provider operates the checkout page. Custody means a provider or partner controls the funds before settlement. A provider can host the interface while funds still move directly to the merchant wallet.
| Collection method | Payer experience | Order and status model | Typical fund path | Best fit |
|---|---|---|---|---|
| Raw wallet address | Address plus informal instructions | Usually no independent order | Direct to the address | Occasional transfers between known people |
| Static onchain payment URI | Wallet pre-fills address, asset, and amount | Merchant must build it separately | Usually direct to the address | Single-network QR or wallet launch |
| Non-custodial Payment Link | Branded page, chain, asset, amount, countdown | Independent order for each attempt | Direct to merchant-controlled addresses | Fixed-price services, invoices, QR codes |
| Custodial checkout service | Provider checkout and account balance | Provider records the payment | Provider or partner controls funds first | Conversion, stored balance, bank payout |
| API-created one-time Checkout | A URL bound to a specific business order | Merchant supplies its ID and context | Depends on the provider's custody model | Commerce, SaaS, and deep integration |
A wallet address can receive funds, but it does not explain which order they pay. When two customers send the same amount, someone pays after a deadline, a payer selects the wrong network, or support receives a screenshot, the merchant must reconstruct the payment across chat history, block explorers, and business records.
A Payment Link removes frontend work, not payment-operations responsibility. The merchant still defines fulfillment thresholds, exception policy, refund approval, and financial posting.
When should you use a fixed, open-amount, or one-time link?
“Payment Link” covers several product models. Choose based on whether price and business context are stable.
| Model | Who determines the amount | Good uses | Main limitation |
|---|---|---|---|
| Reusable fixed-amount link | Merchant at link creation | Standard consulting, plans, tickets, events | Each payment still needs customer attribution |
| Open-amount link | Payer at checkout | Tips, donations, pay-what-you-want offers | Amount alone cannot settle a particular invoice |
| One-time order URL | Merchant backend calculates each order | Commerce, dynamic quotes, taxes, unique invoices | Requires backend creation and idempotency |
StableOps Dashboard Payment Links currently use a fixed base amount; they are not open-amount links. Merchants can choose:
exact, which preserves the same exact amount for every order;auto, which changes the payable amount by the token's smallest unit only when the base amount conflicts across all candidate shared addresses.
Both modes require the payer to send the returned order.amount exactly. auto is not variable pricing and does not accept underpayment or overpayment. If every customer needs a different amount, an internal order ID, richer customer context, or mobile-wallet support, create a one-time Checkout Session from the backend instead of manually issuing reusable links.
What happens after a payer opens the link?
A production-ready flow has seven stages:
- Open the link. The payer arrives at
/p/{slug}from an invoice, email, message, product page, or QR code. - Create this attempt. The service reads the link configuration and creates an independent Checkout Session and Payment Order. Refreshing the same browser tab reuses the active attempt instead of reserving another address.
- Choose a network and asset. Checkout offers only merchant-approved pairs, such as USDC on Base or USDT on TRON, rather than an ambiguous token symbol.
- Receive exact instructions. The page shows the amount, network, asset, receiving address, and countdown. The payer can use an injected browser wallet or a manual transfer.
- Broadcast and detect. After the wallet submits the transaction, chain scanners compare the candidate transfer with open orders.
- Wait for confirmation and finality. Checkout may display detected or confirming earlier, but irreversible fulfillment waits for the required final state.
- Notify and fulfill. The merchant backend verifies and deduplicates the webhook before provisioning service, posting a ledger entry, or arranging delivery.
Closing the page cannot reverse a broadcast transaction. A redirect to a success page cannot prove final payment either. The server-side Payment Order and canonical chain evidence are the source of truth.
Why are the link, order, address, and expiry separate objects?
A reliable collection flow has at least three layers:
| Object | Question it answers | Lifecycle |
|---|---|---|
| Payment Link | “How may customers pay this merchant?” | Reusable until deactivated; can later be reactivated |
| Payment Order | “What is due in this attempt, and by when?” | Created for one attempt; completes or expires |
| Address | “Where does the asset move onchain?” | Dedicated or allocated from a pool under strict rules |
Conflating them creates predictable errors: deactivating a public link and assuming old orders were canceled; continuing to wait on an expired instruction; crediting an arbitrary order because an address balance increased; or reusing a completed order for another customer.
A StableOps reusable link stores collection configuration only. A new attempt gets an independent order, exact amount, candidate addresses, and expiry. Deactivating the link prevents new sessions; it does not revoke an existing order or an onchain transfer.
Why must the network and token stay together?
USDC and USDT exist on multiple networks, so the ticker does not uniquely identify the asset. Circle's official USDC contract list distinguishes mainnet, testnet, and token address. Tether's supported protocols list likewise identifies USD₮ by blockchain and contract or asset details.
Checkout should therefore present one inseparable instruction containing:
- network and environment;
- stablecoin name;
- contract or mint when necessary;
- receiving address;
- exact amount and expiry.
Do not display a bare 0x… address and expect the payer to infer whether it belongs to Ethereum, Base, or another EVM network. Network choice affects fees, wallet compatibility, and support burden. Start with the few networks customers actually use; the stablecoin network selection guide provides a fuller decision framework.
What happens to underpayments, overpayments, late transfers, and wrong networks?
An exception must not become success because the amount looks close.
| Situation | What the original order should do | Merchant response |
|---|---|---|
| Underpayment | Remain incomplete | Refund, or credit manually and create a new order for the balance |
| Overpayment | Not treat the requested portion as success | Choose a surplus or full refund; retain approval and tx evidence |
| Payment after expiry | Remain terminal; never reactivate | Reconcile transaction, time, and allocation history manually |
| Wrong network | Not advance the target-network order | Check actual chain and key control; never promise recovery |
| Wrong token | Not credit by ticker alone | Verify contract, liquidity, and wallet support |
| Split transfers | Not aggregate by default | Refund, credit separately, or issue one new exact payment |
Funds that reached a merchant-controlled address remain controlled by the merchant, but receiving an asset and satisfying an order are different facts. StableOps never holds merchant private keys, so it cannot sign a refund or wrong-network recovery transaction. The underpayment and wrong-network guide provides a complete operational matrix.
How should merchants confirm payment and send notifications?
Checkout can display progress in real time, but a screenshot, wallet popup, or frontend redirect is not a fulfillment signal. The backend should consume signed payment events and map each state to a constrained action:
| State | Permitted action | Do not do this |
|---|---|---|
detected | Show “payment received, confirming”; reserve reversibly | Ship or grant irreversible value |
confirmed | Run low-risk, compensatable preparation | Assume the transfer can never roll back |
finalized | Post the payment and trigger formal fulfillment | Let the browser redirect decide business state |
reverted | Stop subsequent work and compensate optimistic actions | Silently retain prematurely granted value |
expired | Close the attempt and offer a new order | Keep asking the payer to use old instructions |
Verify the webhook against the raw body, deduplicate by event ID, and persist the event and business transition atomically. A successful endpoint response proves receipt, not that every downstream effect completed, so delivery, entitlement, and email jobs must also be idempotent by business order. See stablecoin payment confirmations for the finality and rollback boundary.
Which businesses benefit from stablecoin payment links?
Fixed-price remote consulting
A consultant can create separate links for 30- and 60-minute services and send them through email or messaging. Send the scheduling invitation only after final payment. Use a one-time order when pricing, taxes, or discounts vary by client.
Digital services and standard plans
Design packages, report downloads, course enrollment, and standard service tiers fit reusable links. The merchant still needs customer context—perhaps an email captured in its own order form—and must join that record to the Payment Order. A public link cannot infer who should receive the entitlement.
Invoices and bills
A fixed invoice can include a Payment Link in its PDF. If an invoice must carry a unique invoice number, customer identity, due date, or tax fields, create a one-time Checkout Session from the backend and bind that business reference to the Payment Order.
In-person QR codes and event registration
Encode a reusable link into a booth, poster, or register QR code. Public codes can circulate indefinitely, so deactivate the link after the campaign, monitor suspicious traffic, and keep enough receiving-address capacity.
Workflows that need more than a link
Dynamic carts, recurring billing, complex marketplace splits, high-volume user deposit addresses, and quotations that must bind to internal objects usually require a Payment API and merchant backend. A link can support an early pilot, but it cannot remove those system requirements.
How do you create a test Payment Link in StableOps?
StableOps Payment Links require no frontend code and no order-creation API call. To test one:
- import a testnet receiving address you control into Sandbox and make sure its pool has capacity;
- open the Payment Links Dashboard, then enter a name, description, amount, allocation mode, and accepted chain–asset pairs;
- copy the generated
https://pay.stableops.dev/p/{slug}URL and open it in a fresh browser tab; - verify the network, asset, exact amount, receiving address, and expiry shown to the payer;
- complete one correct testnet payment, then test an underpayment, wrong token, and expiry;
- inspect Payment Order status, webhook delivery, and the 30-day conversion funnel, and verify that your business fulfills once.
The StableOps Checkout documentation covers page configuration, wallet methods, branding, analytics, and security boundaries. Configure Sandbox and Live independently, and never carry test addresses, credentials, or assets into production.
StableOps is a non-custodial payment-operations layer. It creates orders, presents instructions, observes transfers, and delivers events, while funds move to wallets imported and controlled by the merchant. It does not collect funds for merchants, convert to fiat, settle to a bank, or make the merchant's identity, tax, refund, and fulfillment decisions.
What should you verify before launch?
- Checkout displays network, asset, address, exact amount, and expiry together.
- Every new attempt has its own order and status; completed orders are never reused.
- Link deactivation, order expiry, and address release are separate operations.
- Underpayment, overpayment, late, wrong-network, and wrong-token transfers enter structured exception handling.
- Only a verified, deduplicated final event triggers irreversible fulfillment.
- Support can trace a business object to its order, onchain transaction, and events.
- Merchant treasury policy approves and signs refunds; transaction sender is not assumed to be the refund address.
- Public links have rate limits, address-capacity monitoring, and a deactivation plan.
- Revenue, refunds, network fees, and manual adjustments reconcile to the merchant ledger.
- Sandbox tests cover success, exceptions, duplicate events, and outage recovery.
Frequently asked questions
How is a stablecoin payment link different from a wallet address?
A wallet address only says where funds should go. A Payment Link also fixes the network, asset, amount, expiry, and an independently tracked order for each attempt. It reduces payment and reconciliation errors without replacing the merchant's fulfillment, refund, or compliance policies.
Do I need code to create a USDC or USDT payment link?
You do not need code to create a fixed-amount StableOps Payment Link in the Dashboard. You still need receiving addresses you control, and safe automated fulfillment requires a backend webhook handler. Use the API for dynamic amounts, internal order binding, or richer customer context.
Can several customers use the same link?
Yes. The URL holds reusable configuration; each new attempt gets an independent Checkout Session and Payment Order. A refresh in the same browser tab reuses the active creation request until expiry instead of reserving another address.
Can the payer change the amount?
StableOps Payment Links are not open-amount links. exact keeps the fixed amount. auto only adjusts the exact payable amount by the token's smallest unit when shared-address conflicts require it. The payer must send the amount shown by Checkout.
Does StableOps receive or custody merchant funds?
No. StableOps hosts the checkout page, but the stablecoin moves directly to a merchant-controlled receiving address. StableOps has no merchant private key and cannot transfer, refund, or convert the funds.
Does the reusable link itself expire?
Distinguish link lifetime from order lifetime. A reusable link may remain active, while every Payment Order it creates has its own expiry. After an order expires, the payer should reopen the link for a new attempt; paying the old instruction does not revive it.
What if the payer uses the wrong network or amount?
The original order should not complete. The merchant must inspect the actual chain, token, transaction hash, and key control before refunding or manually crediting the transfer. Recovery depends on the real network and wallet setup and cannot be guaranteed.
Can I fulfill from the success page redirect?
No. A redirect can be forged or occur before finality. Trigger irreversible fulfillment from a verified and deduplicated payment.finalized event, and retain an API and reconciliation path for recovery.
Start with one Sandbox link
Choose one network your customers use, one testnet stablecoin, and one fixed-price service. After the happy path, test an underpayment, expiry, and duplicate webhook. A Payment Link saves more than the effort of copying an address: it turns each collection into an order with a deadline, explicit state, and auditable evidence.
Protocol references, asset lists, and StableOps product boundaries were verified on September 17, 2026. Recheck supported networks, token contracts, finality policy, and local compliance requirements before accepting production funds.
Related articles
Compare stablecoin payment APIs across custody, order matching, finality, webhooks, reconciliation, testing, and portability with a practical 2026 scorecard.
Learn how to test crypto payments with a sandbox, testnet USDC, webhook fixtures, and a pre-launch checklist—without risking real money.
Create a hosted USDC Checkout Session in Next.js, redirect securely, and fulfill only from verified webhooks.
Use this 12-point production checklist to evaluate AI agent wallet security across credentials, policy, approvals, constrained signing, retries, and audits.