Skip to main content

Environments

Matchstra provides multiple environments to support your development lifecycle. This guide explains each environment and how to use them effectively.

Available Environments​

Production​

Base URL: https://api.matchstra.ca

The production environment is the live system serving real customer data.

Use for:

  • Live customer-facing applications
  • Production workloads
  • Real identity verification and screening

Characteristics:

  • ✅ 99.9% uptime SLA
  • ✅ Full feature set
  • ✅ Real sanctions and PEP data
  • ✅ Charges count against your license quota
  • ⚠️ Use production API keys only

Example:

curl -X POST https://api.matchstra.ca/api/Screening/screen \
-H "X-API-Key: sk_live_abc123..." \
-H "Content-Type: application/json" \
-d '{"name": "John Doe", "entityType": "Individual"}'

Staging (Coming Soon)​

Base URL: https://staging-api.matchstra.ca (Planned)

A pre-production environment mirroring production for final testing.

Use for:

  • Pre-release testing
  • Integration testing
  • Load testing
  • Reproducing production issues

Characteristics:

  • Mirrors production configuration
  • Test data only (no real PII)
  • Separate API keys
  • Does not count against production quota

Sandbox (Coming Soon)​

Base URL: https://sandbox-api.matchstra.ca (Planned)

A fully isolated testing environment with mock data.

Use for:

  • Development and prototyping
  • CI/CD automated tests
  • Learning and experimentation
  • Demo applications

Characteristics:

  • Mock responses (predictable test data)
  • Unlimited requests (no quota limits)
  • No real screening or verification
  • Separate API keys

Environment Selection​

Choose the appropriate environment based on your use case:

Use CaseEnvironmentAPI Key Type
Live customer trafficProductionsk_live_...
Pre-deployment QAStagingsk_staging_...
DevelopmentSandboxsk_sandbox_...
CI/CD testsSandboxsk_sandbox_...
DemosSandboxsk_sandbox_...

Configuration Examples​

Environment Variables​

Store environment-specific configuration in environment variables:

# .env.production
MATCHSTRA_API_URL=https://api.matchstra.ca
MATCHSTRA_API_KEY=sk_live_abc123...

# .env.staging
MATCHSTRA_API_URL=https://staging-api.matchstra.ca
MATCHSTRA_API_KEY=sk_staging_xyz789...

# .env.development
MATCHSTRA_API_URL=https://sandbox-api.matchstra.ca
MATCHSTRA_API_KEY=sk_sandbox_test123...

JavaScript/Node.js​

// config.js
const config = {
production: {
apiUrl: 'https://api.matchstra.ca',
apiKey: process.env.MATCHSTRA_API_KEY_PROD
},
staging: {
apiUrl: 'https://staging-api.matchstra.ca',
apiKey: process.env.MATCHSTRA_API_KEY_STAGING
},
development: {
apiUrl: 'https://sandbox-api.matchstra.ca',
apiKey: process.env.MATCHSTRA_API_KEY_SANDBOX
}
};

const env = process.env.NODE_ENV || 'development';
module.exports = config[env];

C# (.NET)​

// appsettings.json (per environment)
{
"Matchstra": {
"ApiUrl": "https://api.matchstra.ca",
"ApiKey": "sk_live_abc123..."
}
}

// Usage in code
public class MatchstraConfig
{
public string ApiUrl { get; set; }
public string ApiKey { get; set; }
}

// Startup.cs or Program.cs
services.Configure<MatchstraConfig>(
Configuration.GetSection("Matchstra")
);

Python​

# config.py
import os

ENVIRONMENTS = {
'production': {
'api_url': 'https://api.matchstra.ca',
'api_key': os.getenv('MATCHSTRA_API_KEY_PROD')
},
'staging': {
'api_url': 'https://staging-api.matchstra.ca',
'api_key': os.getenv('MATCHSTRA_API_KEY_STAGING')
},
'development': {
'api_url': 'https://sandbox-api.matchstra.ca',
'api_key': os.getenv('MATCHSTRA_API_KEY_SANDBOX')
}
}

ENV = os.getenv('ENVIRONMENT', 'development')
config = ENVIRONMENTS[ENV]

API Compatibility​

All environments share the same API contract:

  • Identical endpoint paths
  • Same request/response schemas
  • Consistent error codes
  • Matching HTTP status codes

This ensures code written for one environment works seamlessly in others (with only configuration changes).

Testing Across Environments​

Development Workflow​

  1. Develop in sandbox with mock data
  2. Test in staging with production-like conditions
  3. Deploy to production with confidence

Sample Test Script​

// test-all-environments.js
const environments = ['sandbox', 'staging', 'production'];

for (const env of environments) {
const config = getConfigForEnv(env);

console.log(`Testing ${env}...`);

const response = await fetch(`${config.apiUrl}/api/Screening/screen`, {
method: 'POST',
headers: {
'X-API-Key': config.apiKey,
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Test User',
entityType: 'Individual'
})
});

const data = await response.json();
console.log(`${env} result:`, data.success ? '✅' : '❌');
}

Environment-Specific Behaviors​

Production​

  • Data: Real PEP and sanctions databases
  • Quota: Counted against your license
  • Images: Stored securely for 90 days
  • Logs: Detailed audit logs maintained

Staging (Planned)​

  • Data: Anonymized test data resembling production
  • Quota: Separate allowance (e.g., 1,000 requests/month)
  • Images: Stored for 7 days
  • Logs: Available for debugging

Sandbox (Planned)​

  • Data: Static mock responses
  • Quota: Unlimited
  • Images: Not stored
  • Logs: Basic logging only

Troubleshooting​

Wrong Environment​

Symptom: API calls fail with 401 or unexpected responses

Cause: Using the wrong API key for the environment

Solution:

  • Verify the API key prefix matches the environment (sk_live_, sk_staging_, sk_sandbox_)
  • Check your configuration is loading the correct environment variables
  • Confirm the base URL matches the intended environment

Cross-Environment Key Usage​

API keys are environment-specific and cannot be used across environments:

Key TypeValid Environments
sk_live_...Production only
sk_staging_...Staging only
sk_sandbox_...Sandbox only

Best Practices​

1. Separate Keys Per Environment​

Never reuse API keys across environments. Create dedicated keys for each.

2. Automate Environment Switching​

Use environment variables or configuration files to switch environments automatically based on your deployment target.

3. Test in Staging First​

Always test changes in staging before deploying to production.

4. Monitor All Environments​

Set up monitoring and alerting for all environments to catch issues early.

5. Document Environment Setup​

Maintain clear documentation on how to configure and access each environment for your team.

Migration Path​

When new environments launch, we'll provide:

  1. Migration guides with step-by-step instructions
  2. Code examples for each supported language
  3. Test scripts to verify environment setup
  4. Support during the transition period

FAQ​

Is there a free sandbox environment?​

Sandbox environment is planned and will be free with unlimited requests for testing and development.

Can I create custom environments?​

Enterprise customers can request dedicated environments. Contact [email protected] for details.

How do I access staging?​

Staging access will be available soon. Subscribe to our changelog for updates.

Do sandbox requests count against my quota?​

No, sandbox requests (when available) will not count against your production quota.

Next Steps​