Test payments

Two ways to test, and they answer different questions. Test tokens run the whole pipeline on real networks; simulation drives statuses with no chain involved at all.

The one difference between test and live

There is no separate sandbox host, no test API surface, no feature flag. The base URL, the endpoints, the fields, the statuses, the webhooks, and the dashboard are the same. What makes a payment a test payment is its asset. Create it with a test asset id and nothing costs money; create it with a live asset id and it is production.

Why this matters for your rollout

Whatever you get working on test assets works in production unchanged. Going live is a one-line asset swap plus a live key. → Going live checklist

Two paths

Whole pipeline

Test tokens

Free, valueless tokens on real networks. Real transfers, real confirmations, real webhook timing — everything except value. Use this to trust your integration.

Statuses only

Simulate

Each API call advances a payment or deposit by one legal transition — chain them to walk the flow. No wallet, no gas, no waiting. Use this to write and test your handler code.

Question you're answeringUse
"Does my webhook handler branch correctly on every status?"Simulate
"Does an actual transfer reach Accepted, and how long does it take?"Test tokens
"Does my checkout render the address and QR correctly?"Either — both issue a real address
"Does my reconciliation match transfers to orders?"Test tokens (real txHash, real transfers list)
"Does my code survive an underpaid / overpaid / expired payment?"Simulate

Test assets

Test assets carry the TESTCOIN_ and TESTSTABLECOIN_ prefixes. The authoritative list — with decimals for smallest-unit math — is served live:

terminal
curl https://api.suward.com/v1/assets

A complete test run

  1. Create a payment with a test asset. → Quickstart
  2. Mint free test tokens to your own wallet. → Mint test coins
  3. Pay the deposit address like a customer would, or call simulate to skip the chain.
  4. Watch payment.detectedpayment.acceptedpayment.success arrive at your endpoint, and verify every signature. → Webhooks
  5. Reconcile: the payment's externalId against your order, GET /v1/payments/{paymentId}/transactions against the chain.

What you cannot test with test assets

  • Fees are not charged. To see the economics of a live payment, quote it: POST /v1/payments/quote. → Fees & who pays what
  • Withdrawals of test balances. Withdrawal rules operate on settled live funds. → Auto-withdrawals
  • Screening against real counterparties. Screening runs on every transaction, but a valueless test token has no meaningful exposure history. → Screening levels

When the flow works end to end → Going live checklist; create your account any time — accepting starts right after sign-up.

Something unclear? payments@suward.com — we treat every integration question as a documentation defect.