Skip to main content

Sandbox Testing

Use the staging environment to test your integration without hitting production watchlists.

Staging Environment

Value
Base URLhttps://api.korastratum.com/api/v1
API KeyUse your staging API key from the dashboard

The staging environment mirrors the production API but uses test data for screening results.

Test Scenarios

Clean Subject (No Matches)

Screen a subject that won't match any watchlist entries:

curl -X POST https://api.korastratum.com/api/v1/screenings \
-H "Authorization: Bearer YOUR_STAGING_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"mode": "SYNC",
"purpose": "ONBOARDING",
"subject": {
"type": "INDIVIDUAL",
"name": "Test Clean User",
"date_of_birth": "1990-01-15",
"nationality": "US"
},
"checks": ["SANCTIONS", "PEP"]
}'

Expected: risk_band: "LOW", decision.outcome: "APPROVE"

Sanctions Match

Use a known sanctioned entity name to trigger a sanctions match:

curl -X POST https://api.korastratum.com/api/v1/screenings \
-H "Authorization: Bearer YOUR_STAGING_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"mode": "SYNC",
"purpose": "ONBOARDING",
"subject": {
"type": "ENTITY",
"name": "Test Sanctioned Entity",
"country": "IR"
},
"checks": ["SANCTIONS"]
}'

Expected: risk_band: "CRITICAL", decision.outcome: "BLOCK", matches array populated

PEP Match

curl -X POST https://api.korastratum.com/api/v1/screenings \
-H "Authorization: Bearer YOUR_STAGING_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"mode": "SYNC",
"purpose": "ONBOARDING",
"subject": {
"type": "INDIVIDUAL",
"name": "Test PEP Person",
"nationality": "NG"
},
"checks": ["PEP"]
}'

Expected: risk_band: "HIGH", decision.outcome: "REVIEW_REQUIRED", PEP match in results

Async Mode with Webhook

Test the full async flow:

# 1. Create async screening
curl -X POST https://api.korastratum.com/api/v1/screenings \
-H "Authorization: Bearer YOUR_STAGING_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"mode": "ASYNC",
"purpose": "ONBOARDING",
"callback_url": "https://your-server.com/webhooks/compliance",
"subject": {
"type": "INDIVIDUAL",
"name": "Test Async User",
"nationality": "US"
},
"checks": ["SANCTIONS", "PEP"]
}'

# 2. Poll for results
curl https://api.korastratum.com/api/v1/screenings/SCREENING_ID \
-H "Authorization: Bearer YOUR_STAGING_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID"

Batch Screening

curl -X POST https://api.korastratum.com/api/v1/screenings/batch \
-H "Authorization: Bearer YOUR_STAGING_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"purpose": "BATCH",
"checks": ["SANCTIONS", "PEP"],
"subjects": [
{"external_id": "test_1", "type": "INDIVIDUAL", "name": "Test User One", "nationality": "US"},
{"external_id": "test_2", "type": "INDIVIDUAL", "name": "Test User Two", "nationality": "GB"},
{"external_id": "test_3", "type": "ENTITY", "name": "Test Company", "country": "US"}
]
}'

Transaction Monitoring

curl -X POST https://api.korastratum.com/api/v1/monitoring/evaluate \
-H "Authorization: Bearer YOUR_STAGING_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"transaction_id": "test_txn_001",
"subject_id": "test_subj_001",
"type": "TRANSFER",
"amount": 50000.00,
"currency": "USD",
"direction": "OUTBOUND",
"counterparty": {
"name": "Test Counterparty",
"country": "KY"
}
}'

Testing Webhooks

With a Test Subscription

# Create a test subscription pointing to your webhook endpoint
curl -X POST https://api.korastratum.com/api/v1/webhooks/subscriptions \
-H "Authorization: Bearer YOUR_STAGING_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"name": "Test Webhook",
"url": "https://your-server.com/webhooks/compliance",
"events": ["screening.completed", "case.created"]
}'

# Send a test event
curl -X POST https://api.korastratum.com/api/v1/webhooks/subscriptions/SUBSCRIPTION_ID/test \
-H "Authorization: Bearer YOUR_STAGING_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID"

With a Local Tunnel

For local development, use a tool like ngrok to expose your local server:

# Terminal 1: Start your server
node server.js # listening on port 3000

# Terminal 2: Expose via ngrok
ngrok http 3000

# Use the ngrok URL as your webhook URL
# e.g., https://abc123.ngrok.io/webhooks/compliance

Staging vs Production

FeatureStagingProduction
Watchlist dataTest fixturesLive data (826,000+ entries)
Rate limitsSame tiersSame tiers
WebhooksFull supportFull support
API surfaceIdenticalIdentical
Screening resultsDeterministicReal matching