Skip to main content
The Paxos Sandbox is a separate environment for testing your integration without real money or real identity verification. It mirrors the production API at api.sandbox.paxos.com with separate credentials and isolated test data.

Enabling Sandbox Mode

Pass the sandbox option when creating your client:
client, err := paxos.NewClient(
    os.Getenv("PAXOS_CLIENT_ID"),
    os.Getenv("PAXOS_CLIENT_SECRET"),
    paxos.WithSandbox(),
)
Sandbox credentials are different from production credentials. Create them in the Sandbox Dashboard.

Simulating Deposits

Use CreateSandboxDeposit to add test funds to a profile:
deposit, err := client.Sandbox.CreateSandboxDeposit(ctx, &paxos.CreateSandboxDepositRequest{
    ProfileID: "profile_123",
    Asset:     "USD",
    Amount:    "10000.00",
})
if err != nil {
    log.Fatal(err)
}
fmt.Printf("Deposited %s %s\n", deposit.Amount, deposit.Asset)

Setting Identity Status

Bypass the identity verification process in Sandbox by setting the status directly:
err := client.Sandbox.SetIdentityStatus(ctx, &paxos.SetIdentityStatusRequest{
    IdentityID:              "identity_123",
    IDVerificationStatus:    "APPROVED",
    SanctionsVerificationStatus: "APPROVED",
})

Test Workflow Example

A typical Sandbox test scenario: ➊ Create a profile ➋ Create an identity and approve it with SetIdentityStatus ➌ Fund the profile with CreateSandboxDeposit ➍ Execute transfers, orders, or other operations ➎ Verify results using the List and Get endpoints

Sandbox Limitations

  • No real blockchain transactions — Crypto withdrawals don’t execute on a live network (testnets are available for some chains)
  • Simulated settlements — Settlement operations complete immediately
  • More permissive rate limits — Sandbox has higher rate limits than production
  • Separate data — Sandbox data is completely isolated from production
For testnet details, withdrawal limits, and fiat transfer testing, see the Sandbox reference.