Sandbox vs Production
Every API key issued today is a Sandbox (test) key. No real money moves.
ReBate Pay currently issues only rbp_test_... test keys. Every API response carries a sandbox field ({ mode: "sandbox", realMoney: false }) that makes this explicit.
Production (real charges) is not yet available — it requires completing merchant review (KYB) and an external acceptance sign-off before live keys are issued. Any mention of "Production" in this documentation describes future behavior, not something you can use today.
The Sandbox scenario picker
In Sandbox, payment/refund/reconcile-style API calls accept a chargeScenario (or sandboxScenario) parameter so you can simulate outcomes without a real test card:
| Value | Behavior |
|---|---|
success | Payment succeeds immediately |
decline | Payment fails immediately (bank decline) |
timeout | Payment status becomes unknown — not a failure, it means "undetermined"; call reconcile to resolve it, never blindly retry the charge |
Checking the environment
Call GET /api/Capability to see the current environment, or just read the sandbox field on any response. The rbp_test_ key prefix itself already tells you it's a test key.
ReBate Pay Docs