Accepting XRP and RLUSD Payments: An Operational Guide for Businesses
FINTECH

Accepting XRP and RLUSD Payments: An Operational Guide for Businesses

No merchant account application. No 2.9% processing fees. No 30-day fund holds. XRP payments arrive in 3 seconds, finalize permanently, and cost fractions of a cent. The operational challenge isn't the technology — it's structuring the workflow.

TokenForge HQ Staff·Feb 27, 2026·8 min read

Accepting XRP or RLUSD requires fundamentally different infrastructure than accepting card payments. There's no gateway to approve you, no payment processor managing reconciliation, no dispute process. You're working directly with a settlement network that operates at the protocol level.

That simplicity is also the operational gap: without proper tooling for invoice management, payment matching, and on-chain verification, you're doing a lot of manual work. Here are four implementation patterns, from zero infrastructure to fully automated.

What You Need Before Starting

Three prerequisites, in order of importance:

Method 1: Pure Manual (Zero Infrastructure)

PATTERN 01 / MANUAL — FREELANCERS AND LOW VOLUME

Share your wallet address and a unique destination tag per invoice. Customer pays in XAMAN or any XRPL wallet. Verify receipt by checking XRPScan or Bithomp.

For single-person operations or very low transaction volume, this works. The XRPL payment URI format makes it slightly more professional than sharing a raw address:

xrpl:rYourWalletAddress?amount=50000000&dt=1001&sl=Invoice%20%231

Where amount is in drops (1 XRP = 1,000,000 drops), dt is your destination tag, and sl is a memo. This URI, when clicked on mobile, opens XAMAN with everything pre-filled. The customer sees exactly what they're paying and to whom before confirming.

Limitation: verification is manual, doesn't scale beyond handful of transactions per week, and provides no automated receipts or bookkeeping.

Method 2: QR Code Payment Pages

PATTERN 02 / QR CODES — IN-PERSON OR PDF INVOICES

Generate a QR code from the XRPL payment URI and embed it in your invoice PDF or checkout page. Customer scans with XAMAN on mobile — app opens with payment pre-populated. No URL typing, no address entry.

Any QR code library encodes the payment URI. For web applications:

// Using any QR library
const xrpDrops = Math.floor(invoiceAmountXRP * 1_000_000)
const paymentUri = `xrpl:${WALLET_ADDRESS}?amount=${xrpDrops}&dt=${destinationTag}`
// or XAMAN deep link for mobile-first:
const xamanLink = `https://xaman.app/detect/pay?to=${WALLET_ADDRESS}&amount=${invoiceAmountXRP}&dt=${destinationTag}`

For RLUSD invoices specifically, the XAMAN deep link format handles the token specification automatically — the customer sees "Pay 250 RLUSD" rather than needing to configure anything themselves.

Method 3: Automated On-Chain Verification

PATTERN 03 / API VERIFICATION — E-COMMERCE AND SAAS

Poll the XRPL JSON-RPC API to verify payment arrival. Show the customer a payment pending screen; confirm automatically when funds arrive with correct amount and destination tag.

The verification logic queries XRPL's public RPC endpoint:

// Verify XRP payment
const response = await fetch('https://xrplcluster.com', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    method: 'account_tx',
    params: [{ account: WALLET_ADDRESS, limit: 20, ledger_index_min: -1 }]
  })
})
const { result } = await response.json()
const confirmed = result.transactions.find(t =>
  t.tx.TransactionType === 'Payment' &&
  t.tx.DestinationTag === EXPECTED_TAG &&
  t.tx.Amount === String(EXPECTED_DROPS)  // XRP amount in drops
  // For RLUSD: t.tx.Amount.currency === 'USD' && t.tx.Amount.issuer === RLUSD_ISSUER
)
XRPL finality note: Unlike Ethereum, you do not wait for multiple confirmations. A transaction in a validated XRPL ledger is absolutely final. One confirmation from the validated ledger is equivalent to 30 confirmations on Ethereum from a settlement risk perspective. Your verification logic should check meta.TransactionResult === 'tesSUCCESS' and that the ledger is validated — nothing more.

XRP vs. RLUSD for Business Payments

RLUSD is often preferable for invoicing and B2B settlement. The customer pays exactly $X regardless of XRP price movements between invoice generation and payment. For recurring billing, service contracts, or any scenario where invoice amount and received amount need to match exactly, RLUSD eliminates exchange rate variance from the accounting workflow.

XRP remains useful when speed and cost are paramount and the parties are comfortable with a brief settlement window to handle spot price conversion at either end.

Method 4: Managed Invoice Platform

PATTERN 04 / MANAGED PLATFORM — PROFESSIONAL SERVICES AND B2B

A dedicated XRPL invoicing tool manages the complete payment lifecycle: invoice creation, payment page generation, destination tag assignment, on-chain monitoring, and confirmation notifications. No backend code required.

The InvoiceDLT workflow illustrates this pattern: create an invoice via dashboard or API, receive a shareable payment URL with embedded QR code and XAMAN deep link, the platform monitors XRPL until the payment arrives and sends confirmation to both parties. The entire flow is automated after invoice creation.

Common Implementation Mistakes

Tax and Accounting Treatment

In the US, XRP received as payment is treated as property under IRS guidance. You recognize income equal to the fair market value of XRP at the time of receipt. Maintain records of each payment with timestamp, XRP amount received, and XRP spot price at receipt time.

RLUSD received simplifies this: $1 in = $1 of income. No exchange rate tracking required. For businesses preferring clean accounting, invoicing in RLUSD and holding in RLUSD (or immediately converting to USD via exchange) is the operationally simplest approach.

XRPL's full transaction history is public and permanently on-chain. Export your complete payment history via any XRPL analytics API for accounting software integration — no manual reconciliation against bank statements required.

Accept XRPL Payments Without the Infrastructure Work

OnRampDLT includes invoice generation, on-chain payment verification, and RLUSD settlement for token-related distributions. No backend code required to start accepting payments on XRPL.

Start Accepting Payments →