Who this is for: Product, Engineering, Ops, and Finance teams shipping a checkout that can accept crypto and settle fiat without creating audit headaches.
Supported assets: DOGE, LTC, PEPE, SHIB, SOL, TRUMP, TRX, XRP, USDT
Settle to: USD, EUR, GBP, AUD
Decide your integration path
There are three common patterns. Pick the one that matches your flow:
Hosted Checkout
- You create a payment intent server-side and redirect the buyer to WCT Pay’s hosted page (QR, status, confirmations).
- Best for web stores and simple invoice links.
In-App / SDK Checkout
- You render the payment UI in your app, while your server still creates/validates the intent and handles webhooks.
- Best for branded experiences.
Server-to-Server
- You build the entire UI and call the API directly: create intent → show address/QR → handle confirmations → mark order paid.
- Best for platforms or PSPs.
The end-to-end flow
Create intent → show pay details → on-chain confirm → convert → settle → reconcile
- Create a payment intent with: amount, asset (e.g., USDT, XRP, TRX…), optional chain, your order reference, and desired fiat.
- Display pay details: address/QR and, if required, memo/tag (e.g., XRP destination tag).
- Wait for confirmations: your backend receives a webhook when funds reach the intent.
- (Optional) Lock a quote for larger tickets, then convert.
- Settle to your bank (USD/EUR/GBP/AUD), then reconcile with receipts and CSV exports.
UX details that prevent support tickets
- Show the memo/tag prominently if the chain uses one
- XRP needs a destination tag.
- TRON/some flows can carry a memo.
If it’s missing or wrong, funds may be delayed—make the field unmissable.
- XRP needs a destination tag.
- Real-time status
Show “Awaiting payment → Confirming → Confirmed → Converting → Settled.” Buyers trust progress bars. - Time windows
Display quote expiry timers (if you use price locks) and local banking cut-offs for same-day expectations. - Retry/Resume
If a session is lost, let buyers reopen their payment status via a link in email/order history.
Compliance & policy
- KYC built into the flow: your policy can require screening before or after an intent is created.
- Approvals for big amounts: e.g., anything over $250k needs dual approval.
- Asset allow-list: limit to DOGE, LTC, PEPE, SHIB, SOL, TRUMP, TRX, XRP, USDT.
- Geo & sanctions: keep a central allow/deny list; surface clear error messages to users.
Testing plan
- Sandbox keys in your staging app; enable webhook endpoint (publicly reachable).
- Create an intent for USDT on TRON, small amount (e.g., 10 USDT).
- Simulate payment (or send a real test amount if allowed).
- Watch your server log the confirmed event; verify your order status updates.
- Trigger conversion/settlement; confirm you receive settlement.sent with a bank reference (sandboxed).
- Download receipts & CSV and hand to Finance to check column mapping.
Production readiness checklist
- ✅ Idempotency on all POSTs
- ✅ Webhook signature verification + retries with backoff
- ✅ Timeouts and user-friendly error states in the checkout
- ✅ Memo/tag displayed and validated where required (XRP/TRON)
- ✅ Quote timers and cut-off hints for same-day
- ✅ Policy profile set (limits, approvals, assets, countries)
- ✅ Reconciliation exports tested with your ERP/GL
- ✅ Runbook for exceptions (late funds, wrong memo/tag, expired quote)
Common pitfalls (and quick fixes)
- Funds sent to the right address but missing memo/tag
- Fix: show memo/tag in large type, copy buttons, and confirmation step before pay.
- Fix: show memo/tag in large type, copy buttons, and confirmation step before pay.
- Order marked paid too early
- Fix: only flip to “paid” after the payment_intent.confirmed webhook and your confirmation threshold.
- Fix: only flip to “paid” after the payment_intent.confirmed webhook and your confirmation threshold.
- Surprises on large tickets
- Fix: use an OTC price lock and state the expiry on screen; if it expires, request a new quote.
- Fix: use an OTC price lock and state the expiry on screen; if it expires, request a new quote.
- Month-end scramble
- Fix: schedule a weekly export of receipts/CSV; give Finance a shared folder and a data dictionary.
When to use API vs Invoicing vs OTC
- API Checkout: ecommerce, in-app, and marketplace flows.
- Crypto Invoicing: B2B, services, and offline sales (shareable links/PDF).
- OTC: high-value conversions with price lock and operator coordination (real estate, aviation, large invoices).
You can run all three and route each payment to the right rail.
Ready to add crypto checkout your finance team will actually like?
Talk to our team → https://wctpay.com/api-solutions