Understand Sandbox and Production environments, access URLs, testing strategies, and migration best practices.
A complete test environment that mirrors production functionality without affecting live data or operations.
Prop
Type
Description
Web Application?URL[app-sandbox.fndev.net](https://app-sandbox.fndev.net)
API Base URL?URL[api-sandbox.fndev.net](https://api-sandbox.fndev.net)
Webhooks UI?URL[ui-sandbox.fndev.net/integrations/webhooks](https://ui-sandbox.fndev.net/integrations/webhooks)
Swagger UI?URL[ui-sandbox.fndev.net/integrations/webhooks/_api](https://ui-sandbox.fndev.net/integrations/webhooks/_api)
Access Required: Request sandbox access through a support case with your Company ID and integration requirements.
Whitelist these IPs if your webhook endpoint uses IP filtering:
18.215.51.196
3.223.100.250
44.199.193.222The live Field Nation platform where real work orders, payments, and operations occur.
Prop
Type
Description
Web Application?URL[app.fieldnation.com](https://app.fieldnation.com)
API Base URL?URLContact Field Nation support for production access
Status Page?URL[status.fieldnation.com](https://status.fieldnation.com)
Production Access: Requires approval and thorough testing in sandbox first. Contact Field Nation support to request production API credentials.
Contact Field Nation support for production webhook IP addresses to whitelist.
| Feature | Sandbox | Production |
|---|---|---|
| Purpose | Development & Testing | Live Operations |
| Data | Test data only | Real customer data |
| Payments | No real payments | Real payments processed |
| Work Orders | Test work orders | Live work orders |
| API Credentials | Sandbox-specific | Production-specific |
| Availability | On request | Requires approval |
| Error Impact | No real impact | Affects operations |
| Testing | Encouraged | After sandbox validation |
Submit a support case with:
Subject: Sandbox Access Request
Company ID: [Your Company ID]
Company Name: [Your Company Name]
Integration Type: [REST API / Webhooks / Connector]
Purpose: [Development and testing of integration]
Technical Contact:
Name: [Name]
Email: [Email]
Phone: [Phone]Field Nation team will:
Log in to sandbox and start building:
Ensure your integration:
Submit a support case:
Subject: Production API Access Request
Company ID: [Your Production Company ID]
Company Name: [Your Company Name]
Integration Type: [REST API / Webhooks / Connector]
Sandbox Testing Complete:
- Testing Duration: [X weeks/months]
- Test Scenarios: [List key scenarios tested]
- Issues Resolved: [Any issues found and fixed]
Production Use Case:
[Describe your production integration]
Expected Volume:
- Work Orders per day: [Estimate]
- API Requests per day: [Estimate]
- Webhooks per day: [Estimate]Field Nation will:
Follow deployment best practices:
Goals: Build core functionality
Best Practices:
Goals: Validate end-to-end flows
Define realistic workflows:
Run comprehensive tests:
Track integration health:
Based on results:
Goals: Production-like validation
Staging Checklist:
Goals: Safe, monitored launch
Pre-Deployment
# Verify environment variables
echo $FN_CLIENT_ID
echo $FN_CLIENT_SECRET
echo $FN_BASE_URL
# Test connectivity
curl https://api.fieldnation.com/healthDeployment
Post-Deployment
Critical Metrics:
// Track these in production
const metrics = {
// Webhook health
webhookSuccessRate: '>99%',
webhookLatency: '<2s p95',
deliveryFailures: '<1%',
// API health
apiErrorRate: '<1%',
apiLatency: '<500ms p95',
// Business metrics
workOrdersCreated: 'track daily',
syncFailures: 'alert immediately'
};Set Up Alerts:
If Issues Arise:
Immediate Actions
# Deactivate webhook
curl -X PUT https://api.fieldnation.com/api/v1/webhooks/wh_prod \
-H "Authorization: Bearer $TOKEN" \
-d '{"status": "inactive"}'
# Stop API calls
# Revert to previous versionAssess Impact
Fix and Redeploy
// ❌ Don't hardcode environments
const baseUrl = 'https://api-sandbox.fndev.net';
// ✅ Use environment variables
const baseUrl = process.env.FN_BASE_URL;
// ❌ Don't commit credentials
const clientId = 'sandbox_client_id';
// ✅ Use environment variables
const clientId = process.env.FN_CLIENT_ID;FN_BASE_URL=https://api-sandbox.fndev.net
FN_CLIENT_ID=sandbox_client_id
FN_CLIENT_SECRET=sandbox_secret
FN_WEBHOOK_SECRET=sandbox_webhook_secretFN_BASE_URL=https://api.fieldnation.com
FN_CLIENT_ID=prod_client_id
FN_CLIENT_SECRET=prod_secret
FN_WEBHOOK_SECRET=prod_webhook_secretSymptom: API calls work in sandbox but fail in production
Check:
console.log('Base URL:', process.env.FN_BASE_URL);
console.log('Client ID:', process.env.FN_CLIENT_ID.substring(0, 10) + '...');
// Verify you're calling correct environment
if (process.env.FN_BASE_URL.includes('sandbox')) {
console.log('✅ Using SANDBOX');
} else {
console.log('✅ Using PRODUCTION');
}Symptom: Authentication fails unexpectedly
Solution: Verify credentials match environment
# Check which environment credentials are for
curl -X POST https://api-sandbox.fndev.net/authentication/api/oauth/token \
-d "grant_type=client_credentials" \
-d "client_id=$FN_CLIENT_ID" \
-d "client_secret=$FN_CLIENT_SECRET"Last updated on