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.
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"
}
}'{
"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.
Transfers API
Create payouts to bank accounts and mobile money destinations. Amounts are integers in minor units; fees are computed by the server.
Balances backed by a ledger
Every balance change is an append-only ledger entry. Funds are reserved before a provider is called and settled or released afterwards.
Idempotent by design
Requests that create side effects require an Idempotency-Key. Retries replay the original response instead of moving money twice.
Signed webhooks
HMAC-SHA256 signatures with timestamps, automatic retries with backoff, and a delivery log per endpoint.
Environment-bound keys
gs_test_ keys only work in the Sandbox, gs_live_ keys only in Live. Scoped, rotatable, revocable, and shown exactly once.
Send Box
A request workbench in the dashboard. It can only call documented GLORESEND endpoints — never arbitrary hosts.
Request logs
Every authenticated API call is logged with status, latency and error code — never bodies or credentials.
Audit trail
Key creation, rotation, role changes, Live requests and sign-ins are recorded for review.
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 URL | https://api.gloresend.com/sandbox/v1 | https://api.gloresend.com/v1 |
| Key prefix | gs_test_ | gs_live_ |
| Money | Simulated, labelled test_data | Real, once a provider is authorized |
| Provider | Deterministic simulator — no network calls | Per-provider adapter, separate credentials |
| Access | Any account, immediately | Approved 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
Validate
Schema validation, scope check and Idempotency-Key lookup. Malformed requests never touch balances.
- 2
Reserve
Lock the wallet, confirm available ≥ amount + fee, move funds from available to reserved.
- 3
Call the provider
Sandbox uses the simulator. Live uses the authorized provider adapter — or fails closed if none exists.
- 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 overviewStart 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