Sandbox vs Production
Understanding the difference between Sandbox and Production environments is crucial for safely testing and deploying your QuickBooks integration. This guide explains when to use each environment and how to transition between them.
Overview
Intuit provides two separate environments for QuickBooks Online apps:
- Sandbox (Development): For testing with sample data
- Production: For live customer data
Sandbox Environment
What is Sandbox?
The Sandbox environment is a complete testing environment that mimics QuickBooks Online functionality without affecting real business data.
Key Characteristics
- Separate data: Completely isolated from production QuickBooks companies
- Test companies: Create unlimited test companies for free
- Sample data: Pre-populated with sample invoices, customers, and products
- No cost: Free to use for development and testing
- Development credentials: Uses Development Client ID and Secret
When to Use Sandbox
✅ Use Sandbox for:
- Initial development and testing
- Testing new features before production release
- Training and demonstrations
- Troubleshooting issues without risking real data
- QA and regression testing
- Beta testing with internal teams
❌ Don’t use Sandbox for:
- Live customer transactions
- Real business operations
- Production deployments
- Customer-facing features
Creating Sandbox Companies
To test your integration, you’ll need a QuickBooks Sandbox company:
- Sign in to developer.intuit.com
- Go to Dashboard or Sandbox
- Click Create a sandbox company
- Choose a company type (e.g., Service-based, Product-based)
- Your sandbox company is created instantly
Note: Sandbox companies have the same features as production companies but use test data.
Production Environment
What is Production?
The Production environment connects to real QuickBooks Online companies with actual business data.
Key Characteristics
- Real data: Connects to live QuickBooks companies
- Real transactions: Creates actual invoices and financial records
- Customer-facing: Used by your end users
- Requires credentials: Uses Production Client ID and Secret
- Compliance required: Must provide Privacy Policy and EULA
When to Use Production
✅ Use Production for:
- Live customer deployments
- Real business transactions
- Production invoicing
- Customer-facing features
- After thorough sandbox testing
❌ Don’t use Production for:
- Initial development
- Untested features
- Training or demos
- Experimental functionality
Production Requirements
Before you can use Production credentials, you must:
- Privacy Policy: Publicly accessible URL explaining data handling
- EULA: End-User License Agreement URL
- Testing: Thorough testing in Sandbox environment
- Documentation: User-facing setup instructions
Important: Production credentials cannot be generated without providing Privacy Policy and EULA URLs.
Comparison Table
| Feature | Sandbox | Production |
|---|---|---|
| Purpose | Testing and development | Live customer use |
| Data | Test/sample data | Real business data |
| Companies | Sandbox companies only | Real QuickBooks companies |
| Credentials | Development keys | Production keys |
| Cost | Free | Included with QB subscription |
| Requirements | Developer account only | Privacy Policy + EULA |
| API Rate Limits | 500 requests/minute | 500 requests/minute |
| Data Persistence | May be reset | Permanent |
| Customer Impact | None | Direct impact on business |
Transitioning from Sandbox to Production
Step 1: Complete Sandbox Testing
Before moving to production:
- All features work correctly in Sandbox
- Invoice creation tested thoroughly
- Email functionality verified
- Customer sync working properly
- Error handling tested
- Edge cases covered
Step 2: Prepare Production Requirements
Gather the required documentation:
- Privacy Policy URL ready
- EULA URL ready
- App description written
- Support contact information updated
Step 3: Generate Production Keys
- Go to your app in Intuit Developer Portal
- Navigate to Keys & credentials
- Go to the Production section
- Enter Privacy Policy URL
- Enter EULA URL
- Click Create Production Keys
- Copy and save your Production credentials
Step 4: Update HubSpot Configuration
In your HubSpot integration settings:
- Switch from Sandbox to Production environment
- Enter your Production Client ID
- Enter your Production Client Secret
- Save and test the connection
- Authorize with a real QuickBooks company
Step 5: Test with Real Data
Perform final testing in production:
- Create a test invoice in a real QuickBooks company
- Verify the invoice appears correctly in QuickBooks
- Test email functionality
- Confirm customer sync works
- Monitor for any errors
Warning: Test with a non-critical QuickBooks company first, or create a dedicated test company for final production testing.
Best Practices
Development Workflow
- Develop in Sandbox: Build all features using sandbox
- Test thoroughly: Complete comprehensive testing
- Internal QA: Have team members test in sandbox
- Beta test: Test with select customers in sandbox
- Migrate to Production: Only after everything works perfectly
- Monitor: Watch for issues in production
Switching Environments
In the HubSpot integration settings:
- Environment selector: Choose “Sandbox” or “Production”
- Credentials: Different for each environment
- Re-authentication: Required when switching environments
- Company data: Separate between environments
Common Pitfalls to Avoid
❌ Don’t:
- Test new features in production first
- Use production credentials in sandbox
- Mix sandbox and production data
- Skip thorough sandbox testing
- Deploy untested code to production
✅ Do:
- Always test in sandbox first
- Keep credentials separate
- Document your testing process
- Have a rollback plan
- Monitor production closely after deployment
Sandbox Limitations
While sandbox closely mirrors production, there are some limitations:
- Data reset: Sandbox data may be periodically reset
- Performance: May be slower than production
- Email: Emails may not actually send (simulation mode)
- Webhooks: May have different behavior
- Third-party integrations: May not work in sandbox
Note: Always verify critical features in production during final testing, even after thorough sandbox testing.
OAuth Considerations
Sandbox OAuth
- Uses Development Client ID and Secret
- Redirects to sandbox QuickBooks companies
- Users select from their sandbox companies
- Tokens are specific to sandbox environment
Production OAuth
- Uses Production Client ID and Secret
- Redirects to real QuickBooks companies
- Users select from their actual companies
- Tokens work only in production environment
Important: Tokens are not interchangeable between environments. A sandbox token cannot access production data and vice versa.
Troubleshooting
Can’t Create Sandbox Company
- Verify your developer account is active
- Check that you’re signed in to the developer portal
- Try a different browser
- Contact Intuit support
Production Keys Not Available
- Ensure you’ve provided Privacy Policy URL
- Verify EULA URL is accessible
- Check that URLs are publicly accessible (not behind login)
- URLs must use HTTPS
Wrong Environment Connected
If you’re connected to the wrong environment:
- Go to HubSpot integration settings
- Change the environment selector
- Enter the correct credentials for that environment
- Disconnect and reconnect to QuickBooks
- Authorize with the appropriate company type
Data Migration
Note: There is no automatic data migration from Sandbox to Production. Data in sandbox companies stays in sandbox. When you connect to production, you start fresh with real QuickBooks company data.
If you created test data in sandbox that you need in production:
- Recreate it manually in production
- Use QuickBooks import tools
- Consider using the QuickBooks API to migrate data
Next Steps
- Still in development? Continue with Sandbox testing
- Ready for production? Proceed to Installation
- Need help? Check Troubleshooting