Skip to content
GLORESEND

Sandbox open · Live by approval

The money movement API you can integrate end-to-end before going live.

GLORESEND gives your team environment-separated API keys, an idempotent transfers API on top of a real ledger, signed webhooks and a request workbench. Build against the Sandbox today; Live operations are enabled per organization once provider integrations and authorizations are complete.

Sandbox · create a transfer
curl -X POST "https://api.gloresend.com/sandbox/v1/transfers" \
  -H "Authorization: Bearer $GLORESEND_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 125000,
    "currency": "XOF",
    "destination": {
      "type": "bank_account",
      "account_number": "GS0000000001",
      "bank_code": "GSBANK",
      "account_name": "Ada Example",
      "country": "BJ"
    },
    "reference": "INV-2026-0042",
    "description": "Supplier payout",
    "metadata": {
      "order_id": "A-1042"
    }
  }'
201 Created
{
  "id": "tr_4k2m9q8w7e6r5t3y",
  "object": "transfer",
  "environment": "sandbox",
  "amount": 125000,
  "fee": 0,
  "currency": "XOF",
  "status": "succeeded",
  "destination": {
    "type": "bank_account",
    "account_name": "Ada Example",
    "country": "BJ",
    "bank_code": "GSBANK",
    "last4": "0001"
  },
  "reference": "INV-2026-0042",
  "description": "Supplier payout",
  "metadata": {
    "order_id": "A-1042"
  },
  "failure_code": null,
  "failure_message": null,
  "created_at": "2026-10-15T09:30:00.000Z",
  "completed_at": "2026-10-15T09:30:00.120Z",
  "test_data": true
}

Environment status

Sandbox API
Available

Simulated transfers, balances and webhooks. No real money.

Live API
By approval

Authentication works; money movement stays disabled until a provider is authorized.

Payment providers
Not yet connected

Provider adapters are added as contracts and credentials are finalized.

What is built today

Everything below is implemented and documented against the running API — no roadmap items dressed up as features.

Two environments. Never mixed.

Sandbox and Live have separate base URLs, separate keys, separate data and separate provider adapters. A Sandbox key sent to Live is rejected — there is no silent fallback in either direction.

How environments work
Property Sandbox Live
Base URLhttps://api.gloresend.com/sandbox/v1https://api.gloresend.com/v1
Key prefixgs_test_gs_live_
MoneySimulated, labelled test_dataReal, once a provider is authorized
ProviderDeterministic simulator — no network callsPer-provider adapter, separate credentials
AccessAny account, immediatelyApproved organizations, owners and admins with 2FA

How a transfer moves through the ledger

Balances are never edited in place by business logic. Each step below is an atomic database transaction that locks the wallet row and appends a ledger entry, so concurrent requests cannot overdraw a wallet.

  1. 1

    Validate

    Schema validation, scope check and Idempotency-Key lookup. Malformed requests never touch balances.

  2. 2

    Reserve

    Lock the wallet, confirm available ≥ amount + fee, move funds from available to reserved.

  3. 3

    Call the provider

    Sandbox uses the simulator. Live uses the authorized provider adapter — or fails closed if none exists.

  4. 4

    Settle or release

    On success, reserved funds are settled. On failure or timeout, they return to available. A webhook event is queued.

Security is part of the product surface

Hashed API keys, argon2id passwords, TOTP two-factor authentication, CSRF and SSRF protections, per-key rate limits and audit logging are implemented — and the remaining work before production is documented openly.

Read the security overview

Start in the Sandbox

Create an account, generate a gs_test_ key and send your first request from Send Box in a few minutes.

Create a Sandbox account