Crypto payments — troubleshooting
You're here because something about your crypto payment looks
wrong. Walk through the decision tree below — it covers the
99% of cases support sees. If your symptom doesn't fit, jump
straight to support
with your order_id.
Where's my order_id?
Three places, depending on how you got here:
- Dashboard — Billing → Crypto orders shows every order on your account with its current state.
- API —
GET /v1/billing/crypto-ordersreturns the same list, newest first. - Email — every order mint sends a confirmation email with the order id in the subject line.
Symptom: I paid but the order is still pending
- Check the block explorer first. Paste your TX hash into the canonical explorer for the network you used (mempool.space, etherscan, tronscan, etc). If the explorer shows not yet broadcast, the issue is on your wallet side — retry the send. If it shows broadcast + 0 confirmations, you're just waiting on the network.
- Check the order's required confirmations.
Bitcoin needs 2 blocks (~20 min); Ethereum needs 12 (~3 min);
USDC/USDT on Tron is near-instant. The order stays at
pendinguntil NowPayments sees enough confirmations, then transitions toconfirming, thenpaid. - Wait at least 30 minutes. Mempool congestion + RPC propagation lag can easily push a normally-fast network to 15+ minutes. If you're past 30 min with a confirmed TX, skip to the support escalation below.
Symptom: my order is partial
Means an on-chain payment arrived but the dollar-amount it represents is below the invoice. Common causes:
- The exchange rate moved between when we generated the quote and when your wallet broadcast.
- Network fees were deducted on your side and we received less than the displayed amount.
- You sent the wrong coin to the right address (e.g. USDC instead of USDT) and our deposit detector saw partial value.
Partial orders need a human. Email
[email protected]
with your order_id + the TX hash. We'll generate
a top-up invoice for the difference — that's the resolution
path. Crypto payments are non-refundable
(policy), so we don't send the
partial back; we complete the order via top-up instead.
Symptom: my order moved to failed
failed means one of: NowPayments rejected the
payment, the order timed out (24h with no on-chain activity),
or the provider declined the payment on their side. In all
three cases the next step is the same — open a fresh order
from /pricing and try again.
If funds left your wallet but the order is failed: that's a reconciliation problem — escalate to support immediately with the TX hash. In the rare event the upstream provider (NowPayments) returns funds to you on their own, that is a NowPayments-side action and outside Driftstack's non-refundable scope.
Symptom: I sent funds on the wrong network
USDC-ERC20 vs USDC-TRC20 is the classic landmine. The displayed deposit address only works on the network shown in the checkout UI. If you sent on a different network:
- EVM ↔ EVM (e.g. ERC-20 → BSC): addresses look identical but funds land at the same address on the wrong chain. Often recoverable if you control the destination — contact support with the TX hash.
- EVM → non-EVM (or vice versa): different address formats; the transaction usually rejects. If it didn't, the funds are stuck on the wrong chain. Recovery depends on the chain.
We do our best to help recover wrong-network sends but cannot guarantee it. Always double-check the network indicator in the checkout UI before broadcasting.
Symptom: I can't see the deposit address anymore
The checkout page is single-use — refreshing it does not re-display the address. Either:
- Find the order in Billing → Crypto orders and click it to re-open the address modal, or
- Cancel the order (only possible while still
pendingwith no payment activity) and start fresh from /pricing.
Symptom: I want to download a receipt
Three formats are available once an order is paid:
# JSON envelope (programmatic)
curl -H "Authorization: Bearer $DRIFTSTACK_API_KEY" \
https://api.driftstack.dev/v1/billing/crypto-orders/ord_…/receipt
# Plain text (cron / wget pipelines)
curl -H "Authorization: Bearer $DRIFTSTACK_API_KEY" \
https://api.driftstack.dev/v1/billing/crypto-orders/ord_…/receipt.txt
# PDF (accounting / archival)
curl -H "Authorization: Bearer $DRIFTSTACK_API_KEY" \
https://api.driftstack.dev/v1/billing/crypto-orders/ord_…/receipt.pdf \
-o receipt.pdf The dashboard's Billing view exposes the same as a one-click download.
Escalation: contact support
Email [email protected] with as much of the following as possible:
- Your account email (or account_id if you have it handy).
- The
order_idwe minted at checkout. - The TX hash (any explorer link is fine).
- The network you sent on (Ethereum mainnet, Tron, BSC, etc.).
- A screenshot of your wallet's send confirmation if you still have it.
Response SLA is 1 business day on the free trial + paid tiers; enterprise contracts get a per-contract SLA. Most payment escalations resolve same-day once we have the TX hash.