Sandbox
Every AltFiScore tenant comes with a fully isolated sandbox environment. Three pre-seeded consumers cover every KYC tier and decision outcome. Sandbox traffic is free, runs against the same engine as production, and returns identical response shapes.
Getting set up
Your sandbox tenant is provisioned automatically when you sign up. To generate a sandbox API key:
- Log in to lenders.altfiscore.com
- Go to
Settings → API Keys - Click Generate new key and choose
sandbox - Copy the key (shown once) — it'll look like
altfi_test_*
Sandbox is free, forever
Pre-seeded test consumers
Three consumers are seeded into every sandbox tenant. Each represents a different KYC tier path — designed to exercise the orchestration without requiring you to build a synthetic identity pipeline.
Sarah Park — soft KYC (low-value, returning customer)
consumer details
{
"consumer_id": "11111111-1111-1111-1111-111111111001",
"first_name": "Sarah",
"last_name": "Park",
"email": "sarah.park.demo@altfiscore.com",
"identity_status": "verified"
}Sarah is a returning customer with verified identity. Use her for testing low-value transactions where you expect a fast soft-KYC path. Try her with $25-$200 baskets:
Sarah · $25 coffee
curl -X POST 'https://api.altfiscore.com/v1/decisions/bnpl' \
-H 'Authorization: Bearer altfi_test_YOUR_KEY' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: $(uuidgen)' \
-d '{
"consumer": { "consumer_id": "11111111-1111-1111-1111-111111111001" },
"transaction": {
"amount": 25.00, "currency": "USD",
"merchant_name": "Bluebird Cafe",
"merchant_category": "food_beverage",
"product_description": "Coffee subscription"
},
"plan_preference": "pay_in_4"
}'Marcus Chen — enhanced KYC (mid-value)
consumer details
{
"consumer_id": "11111111-1111-1111-1111-111111111002",
"first_name": "Marcus",
"last_name": "Chen",
"email": "marcus.chen.demo@altfiscore.com",
"identity_status": "verified"
}Marcus has a verified identity but is set up to demonstrate enhanced-KYC flows on mid-value transactions ($500–$5,000). Use him to test the consumer_complete_url + polling flow.
Marcus · $850 sofa
curl -X POST 'https://api.altfiscore.com/v1/decisions/bnpl' \
-H 'Authorization: Bearer altfi_test_YOUR_KEY' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: $(uuidgen)' \
-d '{
"consumer": { "consumer_id": "11111111-1111-1111-1111-111111111002" },
"transaction": {
"amount": 850.00, "currency": "USD",
"merchant_name": "Sunset Furniture",
"merchant_category": "furniture",
"product_description": "Mid-century sofa"
},
"plan_preference": "pay_in_4"
}'David Thompson — hard KYC (high-value)
consumer details
{
"consumer_id": "11111111-1111-1111-1111-111111111003",
"first_name": "David",
"last_name": "Thompson",
"email": "david.thompson.demo@altfiscore.com",
"identity_status": "verified"
}David is set up to demonstrate hard-KYC flows on high-value transactions ($5,000+). The response will include a consumer_complete_url indicating that additional verification is required before the decision finalizes.
David · $5,500 e-bike
curl -X POST 'https://api.altfiscore.com/v1/decisions/bnpl' \
-H 'Authorization: Bearer altfi_test_YOUR_KEY' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: $(uuidgen)' \
-d '{
"consumer": { "consumer_id": "11111111-1111-1111-1111-111111111003" },
"transaction": {
"amount": 5500.00, "currency": "USD",
"merchant_name": "Velo Workshop",
"merchant_category": "sporting_goods",
"product_description": "Designer e-bike"
},
"plan_preference": "monthly"
}'Polling pending decisions
For consumers in the enhanced or hard tier, the initial response status is needs_consumer_action. You can poll the decision using the returned polling_url until status becomes complete:
GET /v1/decisions/bnpl/{decision_id}
curl 'https://api.altfiscore.com/v1/decisions/bnpl/8496f4b6-...' \
-H 'Authorization: Bearer altfi_test_YOUR_KEY'Webhooks are coming
Resetting state
Sandbox consumers are durable — their identity status, linked accounts, and historical applications persist across sessions. If you need to test a fresh flow (e.g., a first-time consumer experience), use the lender portal's Reset consumer state action.
Resets are scoped to your sandbox tenant
Next steps
- Make your first call with the Quickstart
- Set up idempotent retries
- Try the all-three-tiers flow in the live demo