Skip to main content
Never use a real card number in sandbox. Use only the test cards below — sandbox tokenizes and processes them exactly like production, without touching a real card issuer.
Work through the scenarios below against your sandbox keys before you request production access. Each row links back to the guide it belongs to; the go-live checklist turns this into a per-integration checklist.

Test cards

RadiumOne hasn’t published a verified sandbox test-card list yet. Until then, contact support for test-card numbers for the scenario you need, and use only the numbers support gives you — never a real card, and never a number you find elsewhere.
Use Redirect to hosted checkout or Embed hosted checkout with a test card from the table above.See Handle failures for the full catalog — expired sessions, missed redirects, invalid signatures, and more.

Payments API

These scenarios apply wherever you call the Payments API directly: purchase, authorize, capture, void, referenced refund, and standalone refunds.

Purchase and authorize

Capture

Void

Refund

Refunds — referenced and standalone alike — are disabled by default and need enablement for your sandbox outlet’s acquirer channel before either of these succeeds; see Refunds require enablement.
Void while the settlement batch is OPEN. Refund once it’s CLOSED. You can’t do either the other way around:
  • Voiding a transaction whose batch has already closed returns 409 urn:radiumone:tx:void-on-non-open-batch.
  • Refunding a transaction whose batch is still open returns 409 urn:radiumone:tx:refund-on-open-batch.
The boundary is the settlement batch closing, not the card network settling with the issuer. Check GET /v1/transactions/{id}/status or a settlement.* webhook if you’re unsure which state you’re in. See Resolve void and refund conflicts if you hit either error.

Standalone refunds

Once your sandbox outlet has standalone refunds enabled, issue an open refund against a test card token directly — see Standalone refunds. Without enablement, expect 409 urn:radiumone:routing:operation-disabled.

Idempotent replay

Body mismatch

Timeouts and retries

Simulate a client-side timeout (shorten your own HTTP client’s timeout). Confirm your integration:
  1. Retries the same request_id/operation_id rather than minting a new one, or
  2. Calls GET /v1/transactions/{id}/status to resolve the outcome without creating anything new — see Check a transaction’s status.
Never treat a timeout as a decline, and never retry with a new key — see Charge or authorize a payment.

PENDING handling

PENDING means the outcome isn’t known yet — most often after a processor timeout. Don’t assume success or failure. Recover it one of two ways:
  1. Wait for a webhook (payment.*, authorization.*, refund.* — see Webhook event types).
  2. Call GET /v1/transactions/{id}/status for a live inquiry against the acquirer.
If you don’t have the transaction id yet — a client-side timeout before the first response arrived — replay the same request with the same request_id and body. The replay returns the stored transaction and its id, whatever status it’s reached. Never re-submit with a new idempotency key just because the first attempt is slow — that risks a second charge for the same order.

Declined is still a 2xx

Confirm your code branches on data.status, never on the HTTP status code alone — a decline is 201 (or 200 for capture/void/referenced refund) with status: "DECLINED" in the body, not an error response. Any 2xx response is a result you must branch on status — never on response_code (that’s the verbatim host/acquirer code; useful for support tickets, not for your app logic).

Failure scenarios

See Handle failures for the full catalog — timeouts, automatic reversals, capture/void/refund conflicts, and operations unavailable for your outlet.

Errors

See Problem format and retries for the response shape and retry rules, and Decline codes for how declines surface and what to tell the shopper.

Sandbox limits

Sandbox environment setup, hosts, and key types are covered in Sandbox and API keys — this page only covers the payment scenarios to test.

Next steps

Go-live checklist

Work through this once every scenario above passes.

Problem format and retries

Response shape, retry rules, rate limits, and links to the full URN catalog.
Last modified on September 15, 2026