Bolt provides separate sandbox and production environments. Each has its own Merchant Dashboard, API keys, and divisions.
URLs
| Type | Sandbox | Production |
|---|
| API | https://api-sandbox.bolt.com | https://api.bolt.com |
| CDN (Connect) | https://connect-sandbox.bolt.com | https://connect.bolt.com |
| Merchant dashboard | merchant-sandbox.bolt.com | merchant.bolt.com |
| Shopper dashboard | account-sandbox.bolt.com | account.bolt.com |
All transactions that flow through Bolt checkout appear in the Merchant Dashboard for the matching environment.
Set BOLT_ENV and derive the API base URL in your application:
# Sandbox
BOLT_ENV=sandbox
BOLT_API_BASE_URL=https://api-sandbox.bolt.com
# Production
# BOLT_ENV=production
# BOLT_API_BASE_URL=https://api.bolt.com
const env = process.env.BOLT_ENV ?? "sandbox";
const baseUrl =
process.env.BOLT_API_BASE_URL ??
(env === "production"
? "https://api.bolt.com"
: "https://api-sandbox.bolt.com");
import os
env = os.environ.get("BOLT_ENV", "sandbox")
base_url = os.environ.get(
"BOLT_API_BASE_URL",
"https://api.bolt.com" if env == "production" else "https://api-sandbox.bolt.com",
)
Sandbox and production keys are separate. Never point https://api.bolt.com at sandbox credentials or https://api-sandbox.bolt.com at production credentials.
Divisions
A merchant account can have one or many divisions: separately configured checkout instances (e.g. storefront vs back office). Each division has its own publishable key and webhook URLs.
Common divisions include Pay by Link and Back Office.
Collaborating with many developers across multiple sandboxes does not require multiple divisions. Add each URL to your Approved Domains list.
Account types
Merchant account types are tied to payment processors. Switching processors requires a new Bolt merchant account aligned with the new processor.