Environments
GoRoute provides two environments: Test and Production. Use Test for development and integration testing, then switch to Production when you're ready to go live.
Environment Overviewโ
| Aspect | Test Environment | Production Environment |
|---|---|---|
| Base URL | https://app.goroute.ai/peppol-api | https://app.goroute.ai/peppol-api |
| Peppol Network | Peppol Test Network (ACC) | Peppol Production Network |
| Real Invoices | โ No | โ Yes |
| Billing | Free (unlimited) | Per-invoice pricing |
| SMP | smp-test.goroute.ai | smp.goroute.ai |
| AP Endpoint | ap-test.goroute.ai | ap.goroute.ai |
Identifying Your Environmentโ
Ask the API which environment a base URL resolves to. GET /health answers that, sits
outside /api/v1 and needs no API key:
curl -X GET https://app.goroute.ai/peppol-api/health
Response:
{
"status": "healthy",
"version": "1.0.0",
"environment": "production",
"timestamp": "2026-08-06T06:09:57.050723"
}
Confirm "environment": "production" before you go live, and "environment": "test" while
you are developing. version is the API version. See
Health Endpoints for the readiness and liveness probes.
This section used to tell you to identify your environment from the Peppol code list version endpoint, and showed it returning an environment name, a Peppol network name and an Access Point identifier. It returns none of those three โ it reports the eDEC code list version, its published and fetched dates, and whether it is active โ and no endpoint on this API returns an Access Point identifier.
Test Environmentโ
Purposeโ
- Develop and test your integration
- Validate invoice formats
- Test webhook handling
- No real invoices are transmitted
Test Participantsโ
Use these test participants for development:
| Peppol ID | Description | Capabilities |
|---|---|---|
9915:phase4test | GoRoute Test Receiver | Invoice, Credit Note |
0088:5060012349998 | OpenPeppol Test | Invoice |
9959:testparticipant | Generic Test | Invoice, Credit Note, Order |
Test Flowโ
Your System โ GoRoute (Test) โ Peppol ACC Network โ Test Receivers
Invoices sent in test mode are delivered to the test SMP/AP infrastructure. You can receive them back if you're registered as a test receiver.
Production Environmentโ
Purposeโ
- Send real invoices to real businesses
- Receive production invoices
- Full compliance and legal validity
Prerequisitesโ
Before going to production:
- โ Complete integration testing
- โ Pass all validation scenarios
- โ Configure production webhooks
- โ Set up error handling
- โ Request production API key
Production Flowโ
Your System โ GoRoute (Prod) โ Peppol Production Network โ Real Recipients
Invoices sent in production are legally binding documents. Ensure your integration is thoroughly tested before switching.
Switching Environmentsโ
Step 1: Request Production Accessโ
Contact GoRoute to enable production access:
- Go to Settings โ Production Access
- Complete the production readiness checklist
- Submit for review
- Receive production API key (usually within 24 hours)
Step 2: Update Configurationโ
Update your application configuration:
# Development
GOROUTE_API_KEY = os.environ.get("GOROUTE_TEST_API_KEY")
# Production
GOROUTE_API_KEY = os.environ.get("GOROUTE_PROD_API_KEY")
Step 3: Verify Production Connectionโ
curl -X GET https://app.goroute.ai/peppol-api/peppol/version \
-H "X-API-Key: YOUR_PRODUCTION_API_KEY"
Confirm "environment": "production" in the response.
Environment Variablesโ
Recommended setup for multiple environments:
# .env.development
GOROUTE_API_KEY=sk_test_abc123
GOROUTE_ENVIRONMENT=test
# .env.production
GOROUTE_API_KEY=pk_live_xyz789
GOROUTE_ENVIRONMENT=production
Best Practicesโ
Development Workflowโ
1. Local Development โ Test Environment
2. Staging/QA โ Test Environment
3. Production โ Production Environment
Environment-Specific Webhooksโ
Configure different webhook URLs per environment:
| Environment | Webhook URL |
|---|---|
| Test | https://staging.yourapp.com/webhooks/goroute |
| Production | https://yourapp.com/webhooks/goroute |
Data Isolationโ
- Test and production data are completely isolated
- Organizations created in test don't exist in production
- You must re-register participants for production
Frequently Asked Questionsโ
Can I use test API keys in production?โ
No. Test API keys only work with the Peppol test network. Production requires a production API key.
Are test invoices legally binding?โ
No. Test invoices are not transmitted on the production Peppol network and have no legal effect.
How do I test receiving invoices?โ
- Register a test participant in the test SMP
- Send a test invoice to your participant ID
- The invoice will be delivered to your webhook
Can I switch back to test after going production?โ
Yes. You can maintain both test and production API keys. Use test for ongoing development while production handles real traffic.