Environment

Tulu Switch has two environments: TEST (sandbox) and LIVE (production), each with its own API base URL.

EnvironmentBase URL
TEST (Sandbox)https://api.sandbox.switch.tulupay.com
LIVE (Production)https://api.switch.tulupay.com

TEST (Sandbox) Environment

Use TEST keys during development and integration. All operations are sandbox-scoped: no real money moves, and providers use their own test/sandbox APIs.

Base URL

https://api.sandbox.switch.tulupay.com

Key prefixes

pk_test_...sk_test_...

Key characteristics

  • Uses provider sandbox APIs (Paystack test keys, Flutterwave test keys, Seerbit test keys)
  • Wallet balances, transactions, and pool data are scoped to TEST — entirely separate from LIVE data
  • Webhooks fire to your TEST-configured URL
  • Stablecoin operations use testnet chains (e.g. base-sepolia, hedera-testnet)
  • No KYB requirement — any registered account can generate TEST keys
  • Bank transfer (payout) operations are hard-blocked in TEST mode — attempting them returns a 400 error
There are no hardcoded test card numbers in Tulu Switch. For deposit simulation, use the test credentials from the provider directly (Paystack, Flutterwave, or Seerbit test cards).

LIVE (Production) Environment

LIVE keys route all operations to production provider APIs and process real money. LIVE access is gated — your account must pass additional checks before LIVE keys can be generated.

Base URL

https://api.switch.tulupay.com

Key prefixes

pk_live_...sk_live_...

Environment Resolution

Point your requests at the correct base URL for the environment you want, and use the matching key prefix:

  1. Use https://api.sandbox.switch.tulupay.com with pk_test_ / sk_test_ keys for TEST.
  2. Use https://api.switch.tulupay.com with pk_live_ / sk_live_ keys for LIVE.
  3. All wallet lookups, pool operations, and webhook deliveries are scoped to whichever environment the request targets.

Using a TEST key against the LIVE base URL (or vice versa) will be rejected — base URL and key prefix must match.

LIVE Access Gate

Your account must meet all of these requirements before LIVE keys can be generated or LIVE operations can proceed:

  • Email address verified
  • Account status is ACTIVE
  • KYB compliance status is APPROVED — not DRAFT, PENDING, or REJECTED

Accounts that are SUSPENDED, DEACTIVATED, or INACTIVE cannot access either environment until the status is resolved.

Complete your compliance review via the KYB & KYC Verification guide.

Key Differences

AspectTESTLIVE
API Base URLhttps://api.sandbox.switch.tulupay.comhttps://api.switch.tulupay.com
Key prefixpk_test_ / sk_test_pk_live_ / sk_live_
Real moneyNoYes
Provider APIsProvider sandbox (test) APIsProvider production APIs
Bank payouts (transfers)Blocked — returns 400Allowed
KYB requiredNoYes (complianceStatus = APPROVED)
Stablecoin chainsTestnets (base-sepolia, etc.)Mainnets (base, etc.)
Hedera chainhedera-testnethedera
Webhook URLTEST-configured URLLIVE-configured URL
Wallet / pool dataSeparate (test) rowsSeparate (live) rows

Best Practices

  • Keep TEST and LIVE key pairs in separate environment variable files and never mix them
  • Complete all integration testing in TEST before generating LIVE keys
  • Configure separate webhook URLs for TEST and LIVE so test events do not pollute your production event log
  • Use the Swagger API Reference (/docs/builder or /docs/customer) to explore endpoints before coding