Skip to main content
Use rmf_test_ keys against https://api.remitflex.io/v1. Create keys in the dashboard with api:read and api:write (full access). Environment is encoded in the key prefix (or dashboard X-Remitflex-Environment header for JWT sessions). There is no separate sandbox hostname.
All curl examples below use rmf_test_ keys. They exercise Remitflex APIs end-to-end with simulated provider settlement — not testnet deposits or real fiat rails.

Simulated settlement

Test mode never calls external Relay, PayCrest, or StRails APIs. Instead:
  1. Create — Your API call returns a simulated deposit address and provider id (for example sim_relay_…).
  2. Auto-settle — After about 8 seconds (SANDBOX_AUTO_SETTLE_MS), the in-process simulator marks the request successful and fills synthetic tx hashes.
  3. Sync — Background jobs and read paths sync simulated status into your payment routes, collections, swaps, and offramps — same as live mode.
  4. Force — Skip the wait with POST /v1/sandbox/simulate (test environment only).
Check simulator settings:
Force a provider request to complete immediately:
Supported provider values: relay, paycrest, strails. Optional status overrides the default terminal status (for example "failed"). Requires a test key with an api:write secret key.
Open the returned payUrl. The pay page shows a simulated deposit address. Settlement completes automatically (~8s) or when you call /sandbox/simulate with the Relay request id from the collection.
Share the same payUrl for every visitor. Each quote creates a session — list them with GET /collections/{collectionId} (checkout parent UUID).

Payment route

Route deposits sync from the simulated Relay client — no on-chain transfer required.

Offramp quote

Verify your key has api:read:
Fiat rate and institution endpoints use simulators in test mode. See Local fiat for the full payout flow.

Webhooks

Create a key with api:write, then register an HTTPS receiver:
Copy secret once, then POST /webhooks/{webhookEndpointId}/test to queue a webhook.test ping for that endpoint ({webhookEndpointId} is the RemitFlex webhook endpoint UUID from POST /webhooks; the test bypasses the event allowlist). Simulated settlements still emit real outbound webhooks to your endpoint. See Webhooks. If you register with a narrow events allowlist, money events still require those types to be listed — only the dedicated test ping is exempt.

Retries

Send Idempotency-Key on every mutating request. Reuse the same key to safely retry after a timeout; use a new key for each distinct operation.
Do not commit API keys to git or expose them in client-side code. Revoke compromised keys in the dashboard.