Production Readiness Checklist
Use this checklist to confirm your integration is production-ready. Complete every section before processing real shipments.
Credentials & environments
- Created a production account at accounts.envia.com/signup
- Generated a production API key (Dashboard → Settings → Developers → API Keys → Add)
- Stored production and sandbox keys in separate secret stores
- Configured your application to use the correct base URLs:
| API | Sandbox | Production |
|---|---|---|
| Shipping | https://api-test.envia.com/ | https://api.envia.com/ |
| Queries | https://queries-test.envia.com/ | https://queries.envia.com/ |
| Geocodes | N/A — production only | https://geocodes.envia.com/ |
- Verified that production tokens are never used in sandbox and vice versa
Core shipping flow
- Rate quoting works for all carriers you plan to use
- Label creation returns a tracking number and downloadable PDF
- Tracking returns status and events for created labels
- Cancellation voids labels and returns balance (tested with a sandbox label)
- If using pickups: Pickup scheduling returns a confirmation
Address validation
- Customer addresses are validated with the Geocodes API before label creation
- Invalid postal codes are caught and surfaced to the user
- Address forms adapt to country-specific requirements (using address structure from Queries API)
Error handling
- Your application handles 401 Unauthorized (expired or wrong-environment token)
- Your application checks the
metafield in Shipping API responses — some errors return HTTP 200 with"meta": "error"in the body - Your application handles the different error formats for each API (see Error Response Formats)
- Your application handles 5xx errors with retry logic
- Error messages are logged for debugging and not exposed raw to end users
Webhooks
- Webhook endpoint is publicly reachable via HTTPS
- Webhook endpoint responds with 2xx within 5 seconds
- Registered separate webhook URLs for sandbox and production
- Tested webhook delivery using Test Webhook
- Implemented idempotency (handle duplicate webhook deliveries gracefully)
Billing
- Production account has sufficient balance to create labels
- You have a process to monitor and top up balance before it runs out
- You understand how refunds work for cancelled labels — cancelling a label before the carrier scans it triggers an automatic refund to your account balance
Security
- API keys are stored in environment variables or a secrets manager, not in source code
- API keys are rotated on a regular schedule
- Unused or old keys are revoked
- Webhook payloads are validated before processing
Testing summary
Before going live, confirm you have successfully completed these end-to-end flows in the sandbox:
- Domestic shipment: Quote → Label → Track → Cancel
- International shipment (if applicable): Quote → Label with customs → Commercial invoice → Track
- Pickup scheduling (if applicable): Create labels → Schedule pickup
- Webhook flow: Register → Receive test event → Process payload
Ready to go live
Once every item is checked:
- Switch your application's base URLs to production
- Use your production API token
- Create your first live shipment
- Monitor the first few shipments closely in your dashboard
Need Help?Have questions or need assistance going to production? Our support team is ready to help.
Create a support ticket here and we'll guide you through the process.
What to read next
- Check carrier availability – See Supported Carriers for a full list of carriers, services, and label formats.
- Stay up to date – The Changelog lists API changes, new features, and deprecation notices.
- Explore use cases – See how other businesses integrate: E-commerce, Marketplace, or Warehouse & 3PL.
Updated about 12 hours ago
